* lisp/replace.el (read-regexp): Don't add ": " when PROMPT already
authorJuri Linkov <juri@jurta.org>
Thu, 20 Sep 2012 21:21:46 +0000 (00:21 +0300)
committerJuri Linkov <juri@jurta.org>
Thu, 20 Sep 2012 21:21:46 +0000 (00:21 +0300)
ends with a colon and space.

Fixes: debbugs:12321

lisp/ChangeLog
lisp/replace.el

index ca544b0..1ec43f2 100644 (file)
@@ -1,3 +1,8 @@
+2012-09-20  Juri Linkov  <juri@jurta.org>
+
+       * replace.el (read-regexp): Don't add ": " when PROMPT already
+       ends with a colon and space.  (Bug#12321)
+
 2012-09-20  Tassilo Horn  <tsdh@gnu.org>
 
        * doc-view.el (doc-view-display): Better fix for the cl-assertion
index 001f7d1..2f5a9cb 100644 (file)
@@ -576,10 +576,10 @@ of `history-length', which see.")
 
 (defun read-regexp (prompt &optional default-value)
   "Read regexp as a string using the regexp history and some useful defaults.
-Prompt for a regular expression with PROMPT (without a colon and
-space) in the minibuffer.  The optional argument DEFAULT-VALUE
-provides the value to display in the minibuffer prompt that is
-returned if the user just types RET.
+When PROMPT doesn't end with a colon and space, it adds a final \": \".
+If DEFAULT-VALUE is non-nil, it displays the first default in the prompt.
+The optional argument DEFAULT-VALUE provides the value to display
+in the minibuffer prompt that is returned if the user just types RET.
 Values available via M-n are the string at point, the last isearch
 regexp, the last isearch string, and the last replacement regexp."
   (let* ((defaults
@@ -595,13 +595,15 @@ regexp, the last isearch string, and the last replacement regexp."
         (defaults (delete-dups (delq nil (delete "" defaults))))
         ;; Don't add automatically the car of defaults for empty input
         (history-add-new-input nil)
-        (input
-         (read-from-minibuffer
-          (if default-value
-              (format "%s (default %s): " prompt
-                      (query-replace-descr default-value))
-            (format "%s: " prompt))
-          nil nil nil 'regexp-history defaults t)))
+        (input (read-from-minibuffer
+                (cond ((string-match-p ":[ \t]*\\'" prompt)
+                       prompt)
+                      (default-value
+                        (format "%s (default %s): " prompt
+                                (query-replace-descr default-value)))
+                      (t
+                       (format "%s: " prompt)))
+                nil nil nil 'regexp-history defaults t)))
     (if (equal input "")
        (or default-value input)
       (prog1 input