From 723e5b84bb1c1a0e3293b4aa95cc5e5f30ceb8b7 Mon Sep 17 00:00:00 2001 From: Bastien Guerry Date: Tue, 12 Feb 2008 00:50:44 +0000 Subject: [PATCH] * isearch.el: (isearch-fail): New face. (isearch-message): Highlight failure part of input. --- lisp/ChangeLog | 7 +++++++ lisp/isearch.el | 33 +++++++++++++++++++-------------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 7bacad73ca7..8a88010753b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -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 --git a/lisp/isearch.el b/lisp/isearch.el index 5937498073e..2ede11399af 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -231,6 +231,10 @@ Default value, nil, means edit the string instead." :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 @@ If there is no completion possible, say so and continue searching." (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, -- 2.39.5