# HG changeset patch # User Bastien Guerry # Date 1202777444 0 # Node ID eb602dd246b2a076e89b7f9c7fdce9970b4a10bf # Parent 580c9788f924465c7cfa8873d1cad27a30e8957e * isearch.el: (isearch-fail): New face. (isearch-message): Highlight failure part of input. diff -r 580c9788f924 -r eb602dd246b2 lisp/ChangeLog --- 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 + + * isearch.el: + (isearch-fail): New face. + (isearch-message): Highlight failure part of input. + 2008-02-11 Stefan Monnier * 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 * mail/rmail.el (rmail-nonignored-headers): Allow to be nil. diff -r 580c9788f924 -r eb602dd246b2 lisp/isearch.el --- 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,