From: Filipp Gunbin Date: Wed, 18 Jul 2018 13:11:47 +0000 (+0300) Subject: Fix imenu--generic-function after fix for Bug#32024. X-Git-Tag: emacs-27.0.90~4664^2~63 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=343b29381cc53d53b1a2c1fdfacf0f5c4761f505;p=emacs.git Fix imenu--generic-function after fix for Bug#32024. * 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. --- diff --git a/lisp/imenu.el b/lisp/imenu.el index edca51e3ade..7285b105748 100644 --- a/lisp/imenu.el +++ b/lisp/imenu.el @@ -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))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;