]> git.eshelyaron.com Git - emacs.git/commitdiff
Ensure there are no duplicate separators when creating a context menu
authorJim Porter <jporterbugs@gmail.com>
Thu, 2 Dec 2021 05:55:31 +0000 (21:55 -0800)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 2 Dec 2021 08:23:06 +0000 (09:23 +0100)
Previously, if there were three or more consecutive menu separators,
not all of them would be removed.

* lisp/mouse.el (context-menu-map): Ensure no duplicate separators
(bug#52237).

lisp/mouse.el

index 3ab9fbcdfe2a03ac9d81d43c7b2185d0c19d104e..ec43aecdd02f8d764e5c8c4d442eb7017a4a5674 100644 (file)
@@ -330,10 +330,10 @@ the function `context-menu-filter-function'."
     ;; Remove duplicate separators
     (let ((l menu))
       (while (consp l)
-        (when (and (equal (cdr-safe (car l)) menu-bar-separator)
-                   (equal (cdr-safe (cadr l)) menu-bar-separator))
-          (setcdr l (cddr l)))
-        (setq l (cdr l))))
+        (if (and (equal (cdr-safe (car l)) menu-bar-separator)
+                 (equal (cdr-safe (cadr l)) menu-bar-separator))
+            (setcdr l (cddr l))
+          (setq l (cdr l)))))
 
     (when (functionp context-menu-filter-function)
       (setq menu (funcall context-menu-filter-function menu click)))