]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/replace.el (read-regexp): Rename DEFAULT-VALUE arg to DEFAULTS
authorJuri Linkov <juri@jurta.org>
Thu, 20 Sep 2012 21:35:40 +0000 (00:35 +0300)
committerJuri Linkov <juri@jurta.org>
Thu, 20 Sep 2012 21:35:40 +0000 (00:35 +0300)
and allow accepting a list of strings prepended to a list of
standard default values.  Doc fix.

Fixes: debbugs:12321
lisp/ChangeLog
lisp/replace.el

index 5a07779e949cf70726d883c46afd528f6a823ae6..1d4dd0ed8278486e2a6df8c39122d8d4de7193c0 100644 (file)
@@ -1,5 +1,9 @@
 2012-09-20  Juri Linkov  <juri@jurta.org>
 
+       * replace.el (read-regexp): Rename DEFAULT-VALUE arg to DEFAULTS
+       and allow accepting a list of strings prepended to a list of
+       standard default values.  Doc fix.  (Bug#12321)
+
        * replace.el (read-regexp): Add HISTORY arg.  (Bug#7567)
 
        * replace.el (read-regexp): Don't add ": " when PROMPT already
index 70819ea255bc79b0823ce26f1272deba97e745c5..435c6c2fb60dfbc3f1f0c4edc092d6223050a2ef 100644 (file)
@@ -574,41 +574,45 @@ of `history-length', which see.")
 (defvar occur-collect-regexp-history '("\\1")
   "History of regexp for occur's collect operation")
 
-(defun read-regexp (prompt &optional default-value history)
-  "Read regexp as a string using the regexp history and some useful defaults.
+(defun read-regexp (prompt &optional defaults history)
+  "Read and return a regular expression as a string.
 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.
+If DEFAULTS is non-nil, it displays the first default in the prompt.
+
+Non-nil optional arg DEFAULTS is a string or a list of strings that
+are prepended to a list of standard default values, which include the
+string at point, the last isearch regexp, the last isearch string, and
+the last replacement regexp.
 
 Non-nil HISTORY is a symbol to use for the history list.
 If HISTORY is nil, `regexp-history' is used."
-  (let* ((defaults
-          (list (regexp-quote
-                 (or (funcall (or find-tag-default-function
-                                  (get major-mode 'find-tag-default-function)
-                                  'find-tag-default))
-                     ""))
-                (car regexp-search-ring)
-                (regexp-quote (or (car search-ring) ""))
-                (car (symbol-value
-                      query-replace-from-history-variable))))
+  (let* ((default (if (consp defaults) (car defaults) defaults))
+        (defaults
+          (append
+           (if (listp defaults) defaults (list defaults))
+           (list (regexp-quote
+                  (or (funcall (or find-tag-default-function
+                                   (get major-mode 'find-tag-default-function)
+                                   'find-tag-default))
+                      ""))
+                 (car regexp-search-ring)
+                 (regexp-quote (or (car search-ring) ""))
+                 (car (symbol-value
+                       query-replace-from-history-variable)))))
         (defaults (delete-dups (delq nil (delete "" defaults))))
-        ;; Don't add automatically the car of defaults for empty input
+        ;; Do not automatically add default to the history for empty input.
         (history-add-new-input nil)
         (input (read-from-minibuffer
                 (cond ((string-match-p ":[ \t]*\\'" prompt)
                        prompt)
-                      (default-value
+                      (default
                         (format "%s (default %s): " prompt
-                                (query-replace-descr default-value)))
+                                (query-replace-descr default)))
                       (t
                        (format "%s: " prompt)))
                 nil nil nil (or history 'regexp-history) defaults t)))
     (if (equal input "")
-       (or default-value input)
+       (or default input)
       (prog1 input
        (add-to-history (or history 'regexp-history) input)))))