From 36bdf1ff3ca1e776bc4be74f10e20bfbdb8d617a Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Fri, 29 Aug 2008 19:15:19 +0000 Subject: [PATCH] (isearch-highlight-regexp): Fix case of highlighted string. --- lisp/isearch.el | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lisp/isearch.el b/lisp/isearch.el index 42c213a63dd..3aed19b9ceb 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -1393,14 +1393,21 @@ and reads its face argument using `hi-lock-read-face-name'." (isearch-done) (isearch-clean-overlays) (require 'hi-lock nil t) - ;; (add-to-history 'hi-lock-regexp-history regexp) - (let ((case-fold-search isearch-case-fold-search) - ;; TODO: add `search-upper-case' as in `isearch-occur' - ) - (hi-lock-face-buffer - (hi-lock-regexp-okay - (if isearch-regexp isearch-string (regexp-quote isearch-string))) - (hi-lock-read-face-name)))) + (let ((string (cond (isearch-regexp isearch-string) + ((if (and (eq isearch-case-fold-search t) + search-upper-case) + (isearch-no-upper-case-p + isearch-string isearch-regexp) + isearch-case-fold-search) + ;; Turn isearch-string into a case-insensitive + ;; regexp. + (replace-regexp-in-string + "[a-z]" + (lambda (m) + (format "[%s%s]" (upcase m) (downcase m))) + isearch-string)) + (t (regexp-quote isearch-string))))) + (hi-lock-face-buffer string (hi-lock-read-face-name)))) (defun isearch-delete-char () -- 2.39.5