summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/which-func.el15
1 files changed, 9 insertions, 6 deletions
diff --git a/lisp/which-func.el b/lisp/which-func.el
index cf0e2e571dc..121ccf5a6b7 100644
--- a/lisp/which-func.el
+++ b/lisp/which-func.el
@@ -136,12 +136,15 @@ It creates the Imenu index for the buffer, if necessary."
(setq which-func-mode which-func-mode-global)
(setq which-func-mode nil))
- (if (and which-func-mode
- (not (member major-mode which-func-non-auto-modes))
- (or (< buffer-saved-size which-func-maxout)
- (= which-func-maxout 0)))
- (setq imenu--index-alist
- (save-excursion (funcall imenu-create-index-function)))))
+ (condition-case nil
+ (if (and which-func-mode
+ (not (member major-mode which-func-non-auto-modes))
+ (or (< buffer-saved-size which-func-maxout)
+ (= which-func-maxout 0)))
+ (setq imenu--index-alist
+ (save-excursion (funcall imenu-create-index-function))))
+ (error
+ (setq which-func-mode nil))))
(defun which-func-update ()
;; Update the string containing the current function.