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

(perform-replace): Let-bind recenter-last-op to nil.

For def=recenter, replace `recenter' with `recenter-top-bottom'
that is called with `this-command' and `last-command' let-bound
to `recenter-top-bottom'.  When the last `def' was not `recenter',
set `recenter-last-op' to nil.  (Bug#4981)
This commit is contained in:
Juri Linkov 2009-11-30 16:05:47 +00:00
parent 20565545f2
commit 2952b1ae04
2 changed files with 20 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2009-11-30 Juri Linkov <juri@jurta.org>
* replace.el (perform-replace): Let-bind recenter-last-op to nil.
For def=recenter, replace `recenter' with `recenter-top-bottom'
that is called with `this-command' and `last-command' let-bound
to `recenter-top-bottom'. When the last `def' was not `recenter',
set `recenter-last-op' to nil. (Bug#4981)
2009-11-30 Stefan Monnier <monnier@iro.umontreal.ca>
Minor cleanup and simplification.

View File

@ -1549,6 +1549,7 @@ make, or the user didn't cancel the call."
(replace-count 0)
(nonempty-match nil)
(multi-buffer nil)
(recenter-last-op nil) ; Start cycling order with initial position.
;; If non-nil, it is marker saying where in the buffer to stop.
(limit nil)
@ -1785,7 +1786,12 @@ make, or the user didn't cancel the call."
((eq def 'skip)
(setq done t))
((eq def 'recenter)
(recenter nil))
;; `this-command' has the value `query-replace',
;; so we need to bind it to `recenter-top-bottom'
;; to allow it to detect a sequence of `C-l'.
(let ((this-command 'recenter-top-bottom)
(last-command 'recenter-top-bottom))
(recenter-top-bottom)))
((eq def 'edit)
(let ((opos (point-marker)))
(setq real-match-data (replace-match-data
@ -1839,9 +1845,12 @@ make, or the user didn't cancel the call."
unread-command-events))
(setq done t)))
(when query-replace-lazy-highlight
;; Force lazy rehighlighting only after replacements
;; Force lazy rehighlighting only after replacements.
(if (not (memq def '(skip backup)))
(setq isearch-lazy-highlight-last-string nil))))
(setq isearch-lazy-highlight-last-string nil)))
(unless (eq def 'recenter)
;; Reset recenter cycling order to initial position.
(setq recenter-last-op nil)))
;; Record previous position for ^ when we move on.
;; Change markers to numbers in the match data
;; since lots of markers slow down editing.