* lisp/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. Fixes: debbugs:12321
This commit is contained in:
parent
eebbf404b8
commit
5825610b41
2 changed files with 29 additions and 21 deletions
|
@ -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
|
||||
|
|
|
@ -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)))))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue