From 2b0afdd959577f6049dbcb64e17885fcf75a95b9 Mon Sep 17 00:00:00 2001 From: Jambunathan K Date: Sat, 16 Feb 2013 14:56:42 +0530 Subject: [PATCH] (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. --- lisp/ChangeLog | 6 ++++++ lisp/replace.el | 23 ++++++++++++++--------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 19d9404c8c4..eef4e033ed0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2013-02-16 Jambunathan K + + * 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 (Bug#13687). + 2013-02-16 Eli Zaretskii * autorevert.el (auto-revert-notify-add-watch): With 'w32notify', 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 -- 2.39.5