changeset 91785:eb602dd246b2

* isearch.el: (isearch-fail): New face. (isearch-message): Highlight failure part of input.
author Bastien Guerry <bzg@altern.org>
date Tue, 12 Feb 2008 00:50:44 +0000
parents 580c9788f924
children 459312b90930
files lisp/ChangeLog lisp/isearch.el
diffstat 2 files changed, 26 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Mon Feb 11 21:18:06 2008 +0000
+++ b/lisp/ChangeLog	Tue Feb 12 00:50:44 2008 +0000
@@ -1,3 +1,9 @@
+2008-02-11 Drew Adams  <drew.adams@oracle.com>
+
+	* isearch.el:
+	(isearch-fail): New face.
+	(isearch-message): Highlight failure part of input.
+
 2008-02-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* ibuffer.el (ibuffer-header-line-format): New var.
@@ -49,6 +55,7 @@
 
 	* calendar/time-date.el (emacs-uptime): New function.
 
+>>>>>>> 1.12767
 2008-02-10  Bastien Guerry  <bzg@altern.org>
 
 	* mail/rmail.el (rmail-nonignored-headers): Allow to be nil.
--- a/lisp/isearch.el	Mon Feb 11 21:18:06 2008 +0000
+++ b/lisp/isearch.el	Tue Feb 12 00:50:44 2008 +0000
@@ -231,6 +231,10 @@
   :group 'basic-faces)
 (defvar isearch 'isearch)
 
+(defface isearch-fail '((t (:foreground "Black" :background "Plum")))
+  "Face for highlighting failed part in Isearch echo-area message."
+  :group 'isearch)
+
 (defcustom isearch-lazy-highlight t
   "*Controls the lazy-highlighting during incremental search.
 When non-nil, all text in the buffer matching the current search
@@ -1955,21 +1959,22 @@
 (defun isearch-message (&optional c-q-hack ellipsis)
   ;; Generate and print the message string.
   (let ((cursor-in-echo-area ellipsis)
-	(m (concat
+          (cmds isearch-cmds)
+          succ-msg m)
+      (while (not (isearch-success-state (car cmds))) (pop cmds))
+      (setq succ-msg (and cmds (isearch-message-state (car cmds))))
+      (setq m (concat
 	    (isearch-message-prefix c-q-hack ellipsis isearch-nonincremental)
-	    (if (and (not isearch-success)
-                     (string-match " +$" isearch-message))
-                (concat
-                 (substring isearch-message 0 (match-beginning 0))
-                 (propertize (substring isearch-message (match-beginning 0))
-                             'face 'trailing-whitespace))
-              isearch-message)
-	    (isearch-message-suffix c-q-hack ellipsis)
-	    )))
-    (if c-q-hack
-	m
-      (let ((message-log-max nil))
-	(message "%s" m)))))
+               succ-msg
+               (and (not isearch-success)
+                    (string-match (regexp-quote succ-msg) isearch-message)
+                    (not (string= succ-msg isearch-message))
+                    (propertize (substring isearch-message (match-end 0))
+                                'face 'isearch-fail))))
+      (when (and (not isearch-success) (string-match " +$" m))
+        (put-text-property (match-beginning 0) (length m) 'face 'trailing-whitespace m))
+      (setq m (concat m (isearch-message-suffix c-q-hack ellipsis)))
+      (if c-q-hack m (let ((message-log-max nil)) (message "%s" m)))))
 
 (defun isearch-message-prefix (&optional c-q-hack ellipsis nonincremental)
   ;; If about to search, and previous search regexp was invalid,