]> git.eshelyaron.com Git - emacs.git/commitdiff
(read-regexp): Add regexp for symbol at point to the defaults (Bug#13687).
authorJambunathan K <kjambunathan@gmail.com>
Sat, 16 Feb 2013 09:26:42 +0000 (14:56 +0530)
committerJambunathan K <kjambunathan@gmail.com>
Sat, 16 Feb 2013 09:26:42 +0000 (14:56 +0530)
* 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
lisp/replace.el

index 19d9404c8c43209f31d0ebc965dd4097556fd24e..eef4e033ed0c4dc528803b723c1bd028876121d2 100644 (file)
@@ -1,3 +1,9 @@
+2013-02-16  Jambunathan K  <kjambunathan@gmail.com>
+
+       * 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  <eliz@gnu.org>
 
        * autorevert.el (auto-revert-notify-add-watch): With 'w32notify',
index 7757426cf958b7a257432f5c7d61edabf5851fb9..0b8aaa7d3497f18997f64548fec3139060d4e497 100644 (file)
@@ -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