From: Mattias EngdegÄrd Date: Sat, 18 Sep 2021 11:39:09 +0000 (+0200) Subject: Regexp-quote literal symbols when grepping X-Git-Tag: emacs-28.0.90~866 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=031e1c28f9ee3971b1376f30f1c8a010432e529b;p=emacs.git 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. --- 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)