]> code.delx.au - gnu-emacs/blobdiff - lisp/imenu.el
Johan Bockg� <bojohan at gnu.org>
[gnu-emacs] / lisp / imenu.el
index d9c75c5fdd45bb73de3d18eb605a6d41b333a01c..401fc3ea2d210e62d7eb368f4130afc5908e321c 100644 (file)
@@ -1,7 +1,7 @@
 ;;; imenu.el --- framework for mode-specific buffer indexes
 
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2002, 2003, 2004,
-;;   2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003, 2004,
+;;   2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: Ake Stenhoff <etxaksf@aom.ericsson.se>
 ;;         Lars Lindberg <lli@sypro.cap.se>
@@ -13,7 +13,7 @@
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
@@ -727,7 +727,7 @@ definitions, etc.  It contains a substring which is the name to
 appear in the menu.  See the info section on Regexps for more
 information.  REGEXP may also be a function, called without
 arguments.  It is expected to search backwards.  It shall return
-true and set `match-data' iff it finds another element.
+true and set `match-data' if it finds another element.
 
 INDEX points to the substring in REGEXP that contains the
 name (of the function, variable or type) that is to appear in the
@@ -954,7 +954,8 @@ See the command `imenu' for more information."
          `(menu-item ,name ,(make-sparse-keymap "Imenu")))
        (use-local-map newmap)
        (add-hook 'menu-bar-update-hook 'imenu-update-menubar))
-    (error "The mode `%s' does not support Imenu" mode-name)))
+    (error "The mode `%s' does not support Imenu"
+           (format-mode-line mode-name))))
 
 ;;;###autoload
 (defun imenu-add-menubar-index ()
@@ -967,15 +968,15 @@ A trivial interface to `imenu-add-to-menubar' suitable for use in a hook."
 (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'.")
+  "The value of (buffer-chars-modified-tick) as of the last call
+to `imenu-update-menubar'.")
 (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))
+            (/= (buffer-chars-modified-tick) imenu-menubar-modified-tick))
+    (setq imenu-menubar-modified-tick (buffer-chars-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.