# HG changeset patch # User Juri Linkov # Date 1111139985 0 # Node ID 77391bae98f130ef8b43c4a2fb0f93277deb2fba # Parent d37e83a2068351b1c02563c416060024853deb20 (perform-replace): Remove bindings of global variables isearch-string, isearch-regexp, isearch-case-fold-search. Add three new arguments to `replace-highlight'. (replace-highlight): Add arguments string, regexp, case-fold. Let-bind isearch-string, isearch-regexp, isearch-case-fold-search to allow isearch-lazy-highlight-new-loop to use these values to set corresponding isearch-lazy-highlight-... internal variables whose values lazy highlighting will use regardless of changes to global variables isearch-string, isearch-regexp, isearch-case-fold-search during lazy highlighting loop. (replace-dehighlight): Rename `isearch-lazy-highlight-cleanup' to `lazy-highlight-cleanup'. diff -r d37e83a20683 -r 77391bae98f1 lisp/replace.el --- a/lisp/replace.el Fri Mar 18 09:59:31 2005 +0000 +++ b/lisp/replace.el Fri Mar 18 09:59:45 2005 +0000 @@ -1344,9 +1344,6 @@ ;; (match-data); otherwise it is t if a match is possible at point. (match-again t) - (isearch-string isearch-string) - (isearch-regexp isearch-regexp) - (isearch-case-fold-search isearch-case-fold-search) (message (if query-flag (substitute-command-keys @@ -1380,10 +1377,7 @@ (regexp-quote from-string)) "\\b"))) (when query-replace-lazy-highlight - (setq isearch-string search-string - isearch-regexp (or delimited-flag regexp-flag) - isearch-case-fold-search case-fold-search - isearch-lazy-highlight-last-string nil)) + (setq isearch-lazy-highlight-last-string nil)) (push-mark) (undo-boundary) @@ -1453,9 +1447,10 @@ (let ((inhibit-read-only query-replace-skip-read-only)) (unless (or literal noedit) - (replace-highlight (nth 0 real-match-data) - (nth 1 real-match-data) - start end)) + (replace-highlight + (nth 0 real-match-data) (nth 1 real-match-data) + start end search-string + (or delimited-flag regexp-flag) case-fold-search)) (setq noedit (replace-match-maybe-edit next-replacement nocasify literal @@ -1471,8 +1466,10 @@ ;; `real-match-data'. (while (not done) (set-match-data real-match-data) - (replace-highlight (match-beginning 0) (match-end 0) - start end) + (replace-highlight + (match-beginning 0) (match-end 0) + start end search-string + (or delimited-flag regexp-flag) case-fold-search) ;; Bind message-log-max so we don't fill up the message log ;; with a bunch of identical messages. (let ((message-log-max nil)) @@ -1604,11 +1601,6 @@ unread-command-events)) (setq done t))) (when query-replace-lazy-highlight - ;; Restore isearch data for lazy highlighting - ;; in case of isearching during recursive edit - (setq isearch-string search-string - isearch-regexp (or delimited-flag regexp-flag) - isearch-case-fold-search case-fold-search) ;; Force lazy rehighlighting only after replacements (if (not (memq def '(skip backup))) (setq isearch-lazy-highlight-last-string nil)))) @@ -1648,21 +1640,25 @@ (defvar replace-overlay nil) -(defun replace-highlight (match-beg match-end range-beg range-end) +(defun replace-highlight (match-beg match-end range-beg range-end + string regexp case-fold) (if query-replace-highlight (if replace-overlay (move-overlay replace-overlay match-beg match-end (current-buffer)) (setq replace-overlay (make-overlay match-beg match-end)) (overlay-put replace-overlay 'priority 1) ;higher than lazy overlays (overlay-put replace-overlay 'face 'query-replace))) - (when query-replace-lazy-highlight - (isearch-lazy-highlight-new-loop range-beg range-end))) + (if query-replace-lazy-highlight + (let ((isearch-string string) + (isearch-regexp regexp) + (isearch-case-fold-search case-fold)) + (isearch-lazy-highlight-new-loop range-beg range-end)))) (defun replace-dehighlight () (when replace-overlay (delete-overlay replace-overlay)) (when query-replace-lazy-highlight - (isearch-lazy-highlight-cleanup lazy-highlight-cleanup) + (lazy-highlight-cleanup lazy-highlight-cleanup) (setq isearch-lazy-highlight-last-string nil))) ;; arch-tag: 16b4cd61-fd40-497b-b86f-b667c4cf88e4