summaryrefslogtreecommitdiff
path: root/lisp/replace.el
diff options
context:
space:
mode:
authorJambunathan K <kjambunathan@gmail.com>2013-02-16 14:56:42 +0530
committerJambunathan K <kjambunathan@gmail.com>2013-02-16 14:56:42 +0530
commit2b0afdd959577f6049dbcb64e17885fcf75a95b9 (patch)
tree9bf18e94b289d27a62dd1ec9809b57b81df3109c /lisp/replace.el
parenta7a84eea2d2f38e0029e656faa6566ae11de03a3 (diff)
downloademacs-2b0afdd959577f6049dbcb64e17885fcf75a95b9.tar.gz
(read-regexp): Add regexp for symbol at point to the defaults (Bug#13687).
* lisp/replace.el (read-regexp): Tighten the regexp that matches tag. When tag is retrieved with `find-tag-default', use regexp that matches tag at point. Also update docstring.
Diffstat (limited to 'lisp/replace.el')
-rw-r--r--lisp/replace.el23
1 files changed, 14 insertions, 9 deletions
diff --git a/lisp/replace.el b/lisp/replace.el
index 7757426cf95..0b8aaa7d349 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -585,27 +585,32 @@ of `history-length', which see.")
When PROMPT doesn't end with a colon and space, it adds a final \": \".
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.
+Optional arg DEFAULTS is a string or a list of strings that are
+prepended to a list of standard default values, which include the
+tag 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* ((default (if (consp defaults) (car defaults) defaults))
- (defaults
+ (let* ((defaults
(append
(if (listp defaults) defaults (list defaults))
- (list (regexp-quote
- (or (funcall (or find-tag-default-function
+ (list
+ ;; Regexp for tag at point.
+ (let* ((tagf (or find-tag-default-function
(get major-mode 'find-tag-default-function)
'find-tag-default))
- ""))
+ (tag (funcall tagf)))
+ (cond ((not tag) "")
+ ((eq tagf 'find-tag-default)
+ (format "\\_<%s\\_>" (regexp-quote tag)))
+ (t (regexp-quote tag))))
(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))))
+ (default (car defaults))
;; Do not automatically add default to the history for empty input.
(history-add-new-input nil)
(input (read-from-minibuffer