# HG changeset patch # User Kenichi Handa # Date 1281321081 -32400 # Node ID c43b03a3b1c5c1e56803cabc4ff617e322689c01 # Parent 1741530211a6d1043389d8c805f09ad9c0c06528# Parent 3ec7871b5633d26f05d883c04f12628872f1d5e7 merge emacs-23 diff -r 1741530211a6 -r c43b03a3b1c5 lisp/ChangeLog --- a/lisp/ChangeLog Mon Aug 09 11:28:25 2010 +0900 +++ b/lisp/ChangeLog Mon Aug 09 11:31:21 2010 +0900 @@ -1,3 +1,18 @@ +2010-08-09 Geoff Gole (tiny change) + + * whitespace.el (whitespace-color-off): Remove post-command-hook + locally. + +2010-08-08 Johan Bockgård + + * 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 * international/mule.el (define-charset): Store NAME as :base diff -r 1741530211a6 -r c43b03a3b1c5 lisp/isearch.el --- a/lisp/isearch.el Mon Aug 09 11:28:25 2010 +0900 +++ b/lisp/isearch.el Mon Aug 09 11:31:21 2010 +0900 @@ -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)) diff -r 1741530211a6 -r c43b03a3b1c5 lisp/replace.el --- a/lisp/replace.el Mon Aug 09 11:28:25 2010 +0900 +++ b/lisp/replace.el Mon Aug 09 11:31:21 2010 +0900 @@ -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 () diff -r 1741530211a6 -r c43b03a3b1c5 lisp/whitespace.el --- a/lisp/whitespace.el Mon Aug 09 11:28:25 2010 +0900 +++ b/lisp/whitespace.el Mon Aug 09 11:31:21 2010 +0900 @@ -2297,7 +2297,7 @@ ;; turn off font lock (when (whitespace-style-face-p) (font-lock-mode 0) - (remove-hook 'post-command-hook #'whitespace-post-command-hook) + (remove-hook 'post-command-hook #'whitespace-post-command-hook t) (when whitespace-font-lock (setq whitespace-font-lock nil font-lock-keywords whitespace-font-lock-keywords))