emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/emacs-23 r99967: Fix query-replace-regexp i


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-23 r99967: Fix query-replace-regexp incomplete highlighting (Bug#6808).
Date: Sun, 08 Aug 2010 16:55:52 -0400
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 99967
author: Johan Bockgård  <address@hidden>
committer: Chong Yidong <address@hidden>
branch nick: emacs-23
timestamp: Sun 2010-08-08 16:55:52 -0400
message:
  Fix query-replace-regexp incomplete highlighting (Bug#6808).
  
  * replace.el (replace-highlight): Bind isearch-forward and
  isearch-error, ensuring that highlighting is updated if the user
  switches the search direction (Bug#6808).
  
  * isearch.el (isearch-lazy-highlight-forward): New var.
  (isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search):
  (isearch-lazy-highlight-update): Use it.
modified:
  lisp/ChangeLog
  lisp/isearch.el
  lisp/replace.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-08-06 08:15:12 +0000
+++ b/lisp/ChangeLog    2010-08-08 20:55:52 +0000
@@ -1,3 +1,13 @@
+2010-08-08  Johan Bockgård  <address@hidden>
+
+       * replace.el (replace-highlight): Bind isearch-forward and
+       isearch-error, ensuring that highlighting is updated if the user
+       switches the search direction (Bug#6808).
+
+       * isearch.el (isearch-lazy-highlight-forward): New var.
+       (isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search):
+       (isearch-lazy-highlight-update): Use it.
+
 2010-08-06  Kenichi Handa  <address@hidden>
 
        * international/mule.el (define-charset): Store NAME as :base

=== modified file 'lisp/isearch.el'
--- a/lisp/isearch.el   2010-02-19 21:36:29 +0000
+++ b/lisp/isearch.el   2010-08-08 20:55:52 +0000
@@ -2574,6 +2574,7 @@
 (defvar isearch-lazy-highlight-case-fold-search nil)
 (defvar isearch-lazy-highlight-regexp nil)
 (defvar isearch-lazy-highlight-space-regexp nil)
+(defvar isearch-lazy-highlight-forward nil)
 
 (defun lazy-highlight-cleanup (&optional force)
   "Stop lazy highlighting and remove extra highlighting from current buffer.
@@ -2613,7 +2614,9 @@
                  (not (= (window-start)
                          isearch-lazy-highlight-window-start))
                  (not (= (window-end)   ; Window may have been split/joined.
-                         isearch-lazy-highlight-window-end))))
+                        isearch-lazy-highlight-window-end))
+                (not (eq isearch-forward
+                         isearch-lazy-highlight-forward))))
     ;; something important did indeed change
     (lazy-highlight-cleanup t) ;kill old loop & remove overlays
     (when (not isearch-error)
@@ -2628,7 +2631,8 @@
            isearch-lazy-highlight-case-fold-search isearch-case-fold-search
            isearch-lazy-highlight-regexp       isearch-regexp
             isearch-lazy-highlight-wrapped      nil
-           isearch-lazy-highlight-space-regexp search-whitespace-regexp)
+           isearch-lazy-highlight-space-regexp search-whitespace-regexp
+           isearch-lazy-highlight-forward      isearch-forward)
       (unless (equal isearch-string "")
        (setq isearch-lazy-highlight-timer
              (run-with-idle-timer lazy-highlight-initial-delay nil
@@ -2644,7 +2648,8 @@
            (search-invisible nil)      ; don't match invisible text
            (retry t)
            (success nil)
-           (bound (if isearch-forward
+           (isearch-forward isearch-lazy-highlight-forward)
+           (bound (if isearch-lazy-highlight-forward
                       (min (or isearch-lazy-highlight-end-limit (point-max))
                            (if isearch-lazy-highlight-wrapped
                                isearch-lazy-highlight-start
@@ -2678,7 +2683,7 @@
            (select-window isearch-lazy-highlight-window))
        (save-excursion
          (save-match-data
-           (goto-char (if isearch-forward
+           (goto-char (if isearch-lazy-highlight-forward
                           isearch-lazy-highlight-end
                         isearch-lazy-highlight-start))
            (while looping
@@ -2691,7 +2696,7 @@
                    (let ((mb (match-beginning 0))
                          (me (match-end 0)))
                      (if (= mb me)     ;zero-length match
-                         (if isearch-forward
+                         (if isearch-lazy-highlight-forward
                              (if (= mb (if isearch-lazy-highlight-wrapped
                                            isearch-lazy-highlight-start
                                          (window-end)))
@@ -2711,7 +2716,7 @@
                          (overlay-put ov 'priority 1000)
                          (overlay-put ov 'face lazy-highlight-face)
                          (overlay-put ov 'window (selected-window))))
-                     (if isearch-forward
+                     (if isearch-lazy-highlight-forward
                          (setq isearch-lazy-highlight-end (point))
                        (setq isearch-lazy-highlight-start (point)))))
 
@@ -2721,7 +2726,7 @@
                        (setq looping nil
                              nomore  t)
                      (setq isearch-lazy-highlight-wrapped t)
-                     (if isearch-forward
+                     (if isearch-lazy-highlight-forward
                          (progn
                            (setq isearch-lazy-highlight-end (window-start))
                            (goto-char (max (or 
isearch-lazy-highlight-start-limit (point-min))

=== modified file 'lisp/replace.el'
--- a/lisp/replace.el   2010-01-13 08:35:10 +0000
+++ b/lisp/replace.el   2010-08-08 20:55:52 +0000
@@ -1893,7 +1893,9 @@
       (let ((isearch-string string)
            (isearch-regexp regexp)
            (search-whitespace-regexp nil)
-           (isearch-case-fold-search case-fold))
+           (isearch-case-fold-search case-fold)
+           (isearch-forward t)
+           (isearch-error nil))
        (isearch-lazy-highlight-new-loop range-beg range-end))))
 
 (defun replace-dehighlight ()


reply via email to

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