From 031e1c28f9ee3971b1376f30f1c8a010432e529b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Sat, 18 Sep 2021 13:39:09 +0200 Subject: [PATCH] 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. --- lisp/cedet/semantic/symref/grep.el | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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) -- 2.39.5