1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-27 07:37:33 +00:00

(imenu): Widen temporary before scan the file.

Widen if the user asks to move to an object
that is outside the current accessible region.
This commit is contained in:
Richard M. Stallman 1994-11-24 11:26:41 +00:00
parent 007f6f5ad2
commit 056ab24479

View 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