]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix imenu--generic-function after fix for Bug#32024.
authorFilipp Gunbin <fgunbin@fastmail.fm>
Wed, 18 Jul 2018 13:11:47 +0000 (16:11 +0300)
committerFilipp Gunbin <fgunbin@fastmail.fm>
Wed, 18 Jul 2018 13:11:47 +0000 (16:11 +0300)
* lisp/imenu.el (imenu--generic-function): Restore returning of nconc
  result from the function.  Move filtering out empty menus so it is
  done before removing dummy element and splicing main element into
  index-alist.

lisp/imenu.el

index edca51e3ade53746bcde2b33f46962a4ce6705c9..7285b1057484d787235ab3b000c934776bbab3be 100644 (file)
@@ -832,15 +832,14 @@ depending on PATTERNS."
     (dolist (item index-alist)
       (when (listp item)
        (setcdr item (sort (cdr item) 'imenu--sort-by-position))))
-    (let ((main-element (assq nil index-alist)))
-      (nconc (delq main-element (delq 'dummy index-alist))
-             (cdr main-element)))
     ;; Remove any empty menus.  That can happen because of skipping
     ;; things inside comments or strings.
-    (when (consp (car index-alist))
-      (setq index-alist  (cl-delete-if-not
-                          (lambda (it) (cdr it))
-                          index-alist)))))
+    (setq index-alist (cl-delete-if
+                       (lambda (it) (and (consp it) (null (cdr it))))
+                       index-alist))
+    (let ((main-element (assq nil index-alist)))
+      (nconc (delq main-element (delq 'dummy index-alist))
+             (cdr main-element)))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;