Mercurial > emacs
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