emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/imenu.el


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/imenu.el
Date: Sun, 17 Mar 2002 23:27:31 -0500

Index: emacs/lisp/imenu.el
diff -c emacs/lisp/imenu.el:1.88 emacs/lisp/imenu.el:1.89
*** emacs/lisp/imenu.el:1.88    Mon Mar 11 04:16:37 2002
--- emacs/lisp/imenu.el Sun Mar 17 23:27:30 2002
***************
*** 980,1012 ****
  
  (defvar imenu-buffer-menubar nil)
  
! (defvar imenu-update-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)
  
  (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)))))))
  
  (defun imenu--menubar-select (item)
    "Use Imenu to select the function or variable named in this menu ITEM."
--- 980,1011 ----
  
  (defvar imenu-buffer-menubar nil)
  
! (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-menubar-modified-tick)
  
  (defun imenu-update-menubar ()
!   (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."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]