]> git.eshelyaron.com Git - emacs.git/commitdiff
Let imenu to work on the menu bar when its list is a single non-nested member.
authorAlan Mackenzie <acm@muc.de>
Mon, 30 Mar 2020 19:25:40 +0000 (19:25 +0000)
committerAlan Mackenzie <acm@muc.de>
Mon, 30 Mar 2020 19:25:40 +0000 (19:25 +0000)
* lisp/imenu.el (imenu-update-menubar): No longer accept a list of length 1 as
being sufficient evidence for a nested list structure.  Instead, additionally
check whether or not certain elements are atoms.

lisp/imenu.el

index fb8b3de662bd441db50bf5e487847abfd505a234..1949f2f48f7f2ed204e17e207232d37cb694c77a 100644 (file)
@@ -911,11 +911,15 @@ to `imenu-update-menubar'.")
         (setq index-alist (imenu--split-submenus index-alist))
        (let* ((menu (imenu--split-menu index-alist
                                         (buffer-name)))
-               (menu1 (imenu--create-keymap (car menu)
-                                           (cdr (if (< 1 (length (cdr menu)))
-                                                    menu
-                                                  (car (cdr menu))))
-                                           'imenu--menubar-select)))
+               (menu1 (imenu--create-keymap
+                       (car menu)
+                      (cdr (if (or (< 1 (length (cdr menu)))
+                                    ;; Have we a non-nested single entry?
+                                    (atom (cdadr menu))
+                                    (atom (cadadr menu)))
+                               menu
+                             (car (cdr menu))))
+                      'imenu--menubar-select)))
          (setcdr imenu--menubar-keymap (cdr menu1)))))))
 
 (defun imenu--menubar-select (item)