changeset 10072:a7b70665c937

(imenu): Widen temporary before scan the file. Widen if the user asks to move to an object that is outside the current accessible region.
author Richard M. Stallman <rms@gnu.org>
date Thu, 24 Nov 1994 11:26:41 +0000
parents 1a498b87fdbd
children 71b3508d5418
files lisp/imenu.el
diffstat 1 files changed, 12 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/imenu.el	Thu Nov 24 08:51:11 1994 +0000
+++ b/lisp/imenu.el	Thu Nov 24 11:26:41 1994 +0000
@@ -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 @@
   "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