diff options
author | Filipp Gunbin <fgunbin@fastmail.fm> | 2018-07-18 16:11:47 +0300 |
---|---|---|
committer | Filipp Gunbin <fgunbin@fastmail.fm> | 2018-07-18 16:11:47 +0300 |
commit | 343b29381cc53d53b1a2c1fdfacf0f5c4761f505 (patch) | |
tree | b89158b012985e9d90ed67753793c78facae74b4 /lisp/imenu.el | |
parent | a68270785be1301fd4d416ae0bdfa06b81fb1cda (diff) | |
download | emacs-343b29381cc53d53b1a2c1fdfacf0f5c4761f505.tar.gz |
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.
Diffstat (limited to 'lisp/imenu.el')
-rw-r--r-- | lisp/imenu.el | 13 |
1 files changed, 6 insertions, 7 deletions
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))))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; |