emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 3bffc09: * lisp/replace.el (perform-replace): Move


From: Juri Linkov
Subject: [Emacs-diffs] master 3bffc09: * lisp/replace.el (perform-replace): Move save-match-data here
Date: Sun, 7 Jul 2019 18:18:14 -0400 (EDT)

branch: master
commit 3bffc09d17cf7edf46e3834edd84520a493d2239
Author: Juri Linkov <address@hidden>
Commit: Juri Linkov <address@hidden>

    * lisp/replace.el (perform-replace): Move save-match-data here
    
    from replace-highlight for isearch-lazy-highlight-new-loop (bug#36328).
---
 lisp/replace.el | 27 ++++++++++++++-------------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/lisp/replace.el b/lisp/replace.el
index db305ad..ab1ff32 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -2316,11 +2316,7 @@ It is called with three arguments, as if it were
            (isearch-forward (not backward))
            (isearch-other-end match-beg)
            (isearch-error nil))
-       (save-match-data
-         ;; Preserve match-data for perform-replace since
-         ;; isearch-lazy-highlight-new-loop calls `sit-for' that
-         ;; does redisplay that might clobber match data (bug#36328).
-         (isearch-lazy-highlight-new-loop range-beg range-end)))))
+       (isearch-lazy-highlight-new-loop range-beg range-end))))
 
 (defun replace-dehighlight ()
   (when replace-overlay
@@ -2582,10 +2578,14 @@ characters."
            (if (not query-flag)
                (progn
                  (unless (or literal noedit)
-                   (replace-highlight
-                    (nth 0 real-match-data) (nth 1 real-match-data)
-                    start end search-string
-                    regexp-flag delimited-flag case-fold-search backward))
+                   (save-match-data
+                     ;; replace-highlight calls isearch-lazy-highlight-new-loop
+                     ;; and `sit-for' whose redisplay might clobber match data.
+                     ;; (Bug#36328)
+                     (replace-highlight
+                      (nth 0 real-match-data) (nth 1 real-match-data)
+                      start end search-string
+                      regexp-flag delimited-flag case-fold-search backward)))
                  (setq noedit
                        (replace-match-maybe-edit
                         next-replacement nocasify literal
@@ -2602,10 +2602,11 @@ characters."
                (while (not done)
                  (set-match-data real-match-data)
                   (run-hooks 'replace-update-post-hook) ; Before 
`replace-highlight'.
-                  (replace-highlight
-                  (match-beginning 0) (match-end 0)
-                  start end search-string
-                  regexp-flag delimited-flag case-fold-search backward)
+                 (save-match-data
+                   (replace-highlight
+                    (match-beginning 0) (match-end 0)
+                    start end search-string
+                    regexp-flag delimited-flag case-fold-search backward))
                   ;; Obtain the matched groups: needed only when
                   ;; regexp-flag non nil.
                   (when (and last-was-undo regexp-flag)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]