]> git.eshelyaron.com Git - emacs.git/commitdiff
(imenu): Widen temporary before scan the file.
authorRichard M. Stallman <rms@gnu.org>
Thu, 24 Nov 1994 11:26:41 +0000 (11:26 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 24 Nov 1994 11:26:41 +0000 (11:26 +0000)
Widen if the user asks to move to an object
that is outside the current accessible region.

lisp/imenu.el

index 80b31229ee434db614ec2ec4c43b2965da15a101..9721677c7fbe8897ae86c779d93e64a5973a613f 100644 (file)
@@ -47,6 +47,7 @@
 ;;  [dean] - Dean Andrews ada@unison.com
 ;;  [alon] - Alon Albert al@mercury.co.il 
 ;;  [greg] - Greg Thompson gregt@porsche.visix.COM
+;;  [kai] - Kai Grossjohann grossjoh@linus.informatik.uni-dortmund.de
 
 ;;; Code
 (eval-when-compile (require 'cl))
@@ -474,17 +475,26 @@ See 'imenu' for more information."
   "Jump to a place in the buffer chosen using a buffer menu or mouse menu.
 See `imenu-choose-buffer-index' for more information."
   (interactive)
-  (let ((index-item (imenu-choose-buffer-index)))
+  (let ((index-item (save-restriction 
+                     (widen)
+                     (imenu-choose-buffer-index))))
     (and index-item
         (progn
           (push-mark)
           (cond
            ((markerp (cdr index-item))
+            (if (or ( > (marker-position (cdr index-item)) (point-min))
+                    ( < (marker-position (cdr index-item)) (point-max)))
+                ;; widen if outside narrowing
+                (widen))
             (goto-char (marker-position (cdr index-item))))
            (t
+            (if (or ( > (cdr index-item) (point-min))
+                    ( < (cdr index-item) (point-max)))
+                ;; widen if outside narrowing
+                (widen))
             (goto-char (cdr index-item))))))))
 
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;
 ;;;; Some examples of functions utilizing the framework of this