diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2021-09-18 13:39:09 +0200 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2021-09-18 13:45:03 +0200 |
commit | 031e1c28f9ee3971b1376f30f1c8a010432e529b (patch) | |
tree | 788a466e0cb5299463f08ba1e3c31d83d7c140e9 /lisp/cedet/semantic/symref | |
parent | dd1220b96972d77e5bbe1094586514bae63fe1eb (diff) | |
download | emacs-031e1c28f9ee3971b1376f30f1c8a010432e529b.tar.gz emacs-031e1c28f9ee3971b1376f30f1c8a010432e529b.tar.bz2 emacs-031e1c28f9ee3971b1376f30f1c8a010432e529b.zip |
Regexp-quote literal symbols when grepping
`xref-find-references` was unable to find symbols like
`backquote-list*-macro`.
* lisp/cedet/semantic/symref/grep.el
(semantic-symref-grep--quote-extended): New function.
(semantic-symref-perform-search): Call it.
Diffstat (limited to 'lisp/cedet/semantic/symref')
-rw-r--r-- | lisp/cedet/semantic/symref/grep.el | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el index 53745b429a2..1e282c3052c 100644 --- a/lisp/cedet/semantic/symref/grep.el +++ b/lisp/cedet/semantic/symref/grep.el @@ -133,6 +133,12 @@ This shell should support pipe redirect syntax." :group 'semantic :type 'string) +(defun semantic-symref-grep--quote-extended (string) + "Quote STRING as an extended-syntax regexp." + (replace-regexp-in-string (rx (in ".^$*+?|{}[]()|\\")) + (lambda (s) (concat "\\" s)) + string nil t)) + (cl-defmethod semantic-symref-perform-search ((tool semantic-symref-tool-grep)) "Perform a search with Grep." ;; Grep doesn't support some types of searches. @@ -151,7 +157,10 @@ This shell should support pipe redirect syntax." ((eq (oref tool searchtype) 'regexp) "-nE ") (t "-nw "))) - (greppat (oref tool searchfor)) + (searchfor (oref tool searchfor)) + (greppat (if (eq (oref tool searchtype) 'regexp) + searchfor + (semantic-symref-grep--quote-extended searchfor))) ;; Misc (b (get-buffer-create "*Semantic SymRef*")) (ans nil) |