changeset 43982:a40fcee55faa

(imenu-menubar-modified-tick): Renamed from imenu-update-menubar-modified-tick. (imenu-update-menubar): Update imenu-menubar-modified-tick whenever outer condition succeeds.
author Richard M. Stallman <rms@gnu.org>
date Mon, 18 Mar 2002 04:27:30 +0000
parents 1b2a6ccacf7b
children 7bb123117932
files lisp/imenu.el
diffstat 1 files changed, 22 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/imenu.el	Mon Mar 18 04:24:57 2002 +0000
+++ b/lisp/imenu.el	Mon Mar 18 04:27:30 2002 +0000
@@ -980,33 +980,32 @@
 
 (defvar imenu-buffer-menubar nil)
 
-(defvar imenu-update-menubar-modified-tick 0
+(defvar imenu-menubar-modified-tick 0
   "The value of (buffer-modified-tick) as of last call to `imenu-update-menubar'.
 This value becomes local in every buffer when it is set.")
-(make-variable-buffer-local 'imenu-update-menubar-modified-tick)
+(make-variable-buffer-local 'imenu-menubar-modified-tick)
 
 (defun imenu-update-menubar ()
-  (and (current-local-map)
-       (keymapp (lookup-key (current-local-map) [menu-bar index]))
-       (not (eq (buffer-modified-tick)
-		imenu-update-menubar-modified-tick))
-       (let ((index-alist (imenu--make-index-alist t)))
-	 ;; Don't bother updating if the index-alist has not changed
-	 ;; since the last time we did it.
-	 (or (equal index-alist imenu--last-menubar-index-alist)
-	     (let (menu menu1 old)
-	       (setq imenu--last-menubar-index-alist index-alist)
-	       (setq index-alist (imenu--split-submenus index-alist))
-	       (setq menu (imenu--split-menu index-alist
-                                             (buffer-name)))
-	       (setq menu1 (imenu--create-keymap-1 (car menu)
-                                                   (if (< 1 (length (cdr menu)))
-                                                       (cdr menu)
-						     (cdr (car (cdr menu))))))
-	       (setq imenu-update-menubar-modified-tick
-		     (buffer-modified-tick))
-	       (setq old (lookup-key (current-local-map) [menu-bar index]))
-	       (setcdr old (cdr menu1)))))))
+  (when (and (current-local-map)
+	     (keymapp (lookup-key (current-local-map) [menu-bar index]))
+	     (not (eq (buffer-modified-tick)
+		      imenu-menubar-modified-tick)))
+    (setq imenu-menubar-modified-tick (buffer-modified-tick))
+    (let ((index-alist (imenu--make-index-alist t)))
+      ;; Don't bother updating if the index-alist has not changed
+      ;; since the last time we did it.
+      (unless (equal index-alist imenu--last-menubar-index-alist)
+	(let (menu menu1 old)
+	  (setq imenu--last-menubar-index-alist index-alist)
+	  (setq index-alist (imenu--split-submenus index-alist))
+	  (setq menu (imenu--split-menu index-alist
+					(buffer-name)))
+	  (setq menu1 (imenu--create-keymap-1 (car menu)
+					      (if (< 1 (length (cdr menu)))
+						  (cdr menu)
+						(cdr (car (cdr menu))))))
+	  (setq old (lookup-key (current-local-map) [menu-bar index]))
+	  (setcdr old (cdr menu1)))))))
 
 (defun imenu--menubar-select (item)
   "Use Imenu to select the function or variable named in this menu ITEM."