Mercurial > emacs
changeset 42067:f38a270798ca
(isearch-start-hscroll): New variable.
(isearch-mode): Set isearch-start-hscroll.
(isearch-update): Restore original hscrolling if possible.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 16 Dec 2001 03:56:40 +0000 |
parents | 6612a220ef84 |
children | 81cd8cc0048d |
files | lisp/isearch.el |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/isearch.el Sun Dec 16 03:53:15 2001 +0000 +++ b/lisp/isearch.el Sun Dec 16 03:56:40 2001 +0000 @@ -366,6 +366,7 @@ (defvar isearch-wrapped nil) ; Searching restarted from the top (bottom). (defvar isearch-barrier 0) (defvar isearch-just-started nil) +(defvar isearch-start-hscroll 0) ; hscroll when starting the search. ; case-fold-search while searching. ; either nil, t, or 'yes. 'yes means the same as t except that mixed @@ -557,6 +558,7 @@ isearch-other-end nil isearch-small-window nil isearch-just-started t + isearch-start-hscroll (window-hscroll) isearch-opoint (point) search-ring-yank-pointer nil @@ -636,8 +638,13 @@ (window-hscroll)) (set-window-hscroll (selected-window) 0)) (other-window 1)) - (goto-char found-point))) - (if isearch-other-end + (goto-char found-point)) + ;; Keep same hscrolling as at the start of the search when possible + (let ((current-scroll (window-hscroll))) + (set-window-hscroll (selected-window) isearch-start-hscroll) + (unless (pos-visible-in-window-p) + (set-window-hscroll (selected-window) current-scroll)))) + (if isearch-other-end (if (< isearch-other-end (point)) ; isearch-forward? (isearch-highlight isearch-other-end (point)) (isearch-highlight (point) isearch-other-end))