* imenu.el (imenu): Re-write for clarity.

This commit is contained in:
Leo Liu 2014-10-06 11:59:38 +08:00
parent 3f65970414
commit 195c5c4c92
2 changed files with 11 additions and 10 deletions

View file

@ -1,3 +1,7 @@
2014-10-06 Leo Liu <sdl.web@gmail.com>
* imenu.el (imenu): Re-write for clarity.
2014-10-06 Glenn Morris <rgm@gnu.org>
Remove calendar code obsolete since at least version 23.1.

View file

@ -1034,16 +1034,13 @@ for more information."
(if (stringp index-item)
(setq index-item (assoc index-item (imenu--make-index-alist))))
(when index-item
(push-mark nil t)
(let* ((is-special-item (listp (cdr index-item)))
(function
(if is-special-item
(nth 2 index-item) imenu-default-goto-function))
(position (if is-special-item
(cadr index-item) (cdr index-item)))
(args (if is-special-item (cdr (cddr index-item)))))
(apply function (car index-item) position args))
(run-hooks 'imenu-after-jump-hook)))
(pcase index-item
(`(,name ,pos ,fn . ,args)
(push-mark nil t)
(apply fn name pos args)
(run-hooks 'imenu-after-jump-hook))
(`(,name . ,pos) (imenu (list name pos imenu-default-goto-function)))
(_ (error "Unknown imenu item: %S" index-item)))))
(provide 'imenu)