From 056ab24479e84187a8a7e25e5924f36d317b5e79 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 24 Nov 1994 11:26:41 +0000 Subject: [PATCH] (imenu): Widen temporary before scan the file. Widen if the user asks to move to an object that is outside the current accessible region. --- lisp/imenu.el | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/lisp/imenu.el b/lisp/imenu.el index 80b31229ee4..9721677c7fb 100644 --- a/lisp/imenu.el +++ b/lisp/imenu.el @@ -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 -- 2.39.5