]> code.delx.au - gnu-emacs/commitdiff
Fix Isearch prompt when invoked with an argument
authorKaushal Modi <kaushal.modi@gmail.com>
Mon, 14 Mar 2016 18:15:17 +0000 (20:15 +0200)
committerEli Zaretskii <eliz@gnu.org>
Mon, 14 Mar 2016 18:15:17 +0000 (20:15 +0200)
* lisp/isearch.el (isearch--describe-regexp-mode): With
`search-default-mode' set to nil, if user does C-u C-s, the minibuffer
now displays "Regexp I-search: " again.  But if the user has set
`search-default-mode' to t, and then does C-s, the minibuffer now
displays "I-search: " because the default search mode is now regexp
mode.  Comments have been added to explain the priority of conditions
in the `cond' form.  (Bug#22991)

lisp/isearch.el

index b8ada2c766a8600ebf5242b7eb054cdb455c210e..988503eaa4f11c8343775c31e244664fca1d4950 100644 (file)
@@ -2574,15 +2574,26 @@ the word mode."
   (when (eq regexp-function t)
     (setq regexp-function #'word-search-regexp))
   (let ((description
-         ;; Don't use a description on the default search mode.
-         (cond ((equal regexp-function search-default-mode) "")
+         (cond
+          ;; 1. Do not use a description on the default search mode,
+          ;;    but only if the default search mode is non-nil.
+          ((or (and search-default-mode
+                    (equal search-default-mode regexp-function))
+               ;; Special case where `search-default-mode' is t
+               ;; (defaults to regexp searches).
+               (and (eq search-default-mode t)
+                    (eq search-default-mode isearch-regexp))) "")
+          ;; 2. Use the `isearch-message-prefix' set for
+          ;;    `regexp-function' if available.
                (regexp-function
                 (and (symbolp regexp-function)
                      (or (get regexp-function 'isearch-message-prefix)
                          "")))
+          ;; 3. Else if `isearch-regexp' is non-nil, set description
+          ;;    to "regexp ".
                (isearch-regexp "regexp ")
-               ;; We're in literal mode. If the default mode is not
-               ;; literal, then describe it.
+          ;; 4. And finally, if we're in literal mode (and if the
+          ;;    default mode is also not literal), describe it.
                ((functionp search-default-mode) "literal "))))
     (if space-before
         ;; Move space from the end to the beginning.