From: Kaushal Modi Date: Mon, 14 Mar 2016 18:15:17 +0000 (+0200) Subject: Fix Isearch prompt when invoked with an argument X-Git-Tag: emacs-25.0.93~89^2~70 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/0ce37eac45f8b1279e89e854f71bb3f35fd43d29 Fix Isearch prompt when invoked with an argument * 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) --- diff --git a/lisp/isearch.el b/lisp/isearch.el index b8ada2c766..988503eaa4 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el @@ -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.