summaryrefslogtreecommitdiff
path: root/lisp/cedet/semantic/symref
diff options
context:
space:
mode:
authorDmitry Gutov <dgutov@yandex.ru>2015-05-10 17:27:16 +0300
committerDmitry Gutov <dgutov@yandex.ru>2015-05-10 20:45:38 +0300
commitf37d86ed0bd0857cfb5c606e9d5b5611d02783aa (patch)
tree5f4e160223c2edb0998e06fd6922960132bb717d /lisp/cedet/semantic/symref
parentcc64f157883030c443b24692ca4304e047e2aaf9 (diff)
downloademacs-f37d86ed0bd0857cfb5c606e9d5b5611d02783aa.tar.gz
emacs-f37d86ed0bd0857cfb5c606e9d5b5611d02783aa.tar.bz2
emacs-f37d86ed0bd0857cfb5c606e9d5b5611d02783aa.zip
semantic/symref/grep: Support regexp search
* lisp/cedet/semantic/symref.el (semantic-symref-hit-to-tag-via-buffer): Don't regexp-quote when the search type is regexp. * lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search): Support the regexp search type. Pass -E to Grep when it's used.
Diffstat (limited to 'lisp/cedet/semantic/symref')
-rw-r--r--lisp/cedet/semantic/symref/grep.el16
1 files changed, 9 insertions, 7 deletions
diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el
index 3fa1c5ff7d8..3cf841e4f2c 100644
--- a/lisp/cedet/semantic/symref/grep.el
+++ b/lisp/cedet/semantic/symref/grep.el
@@ -141,7 +141,7 @@ This shell should support pipe redirect syntax."
"Perform a search with Grep."
;; Grep doesn't support some types of searches.
(let ((st (oref tool :searchtype)))
- (when (not (eq st 'symbol))
+ (when (not (memq st '(symbol regexp)))
(error "Symref impl GREP does not support searchtype of %s" st))
)
;; Find the root of the project, and do a find-grep...
@@ -150,12 +150,14 @@ This shell should support pipe redirect syntax."
(filepattern (semantic-symref-derive-find-filepatterns))
;; Grep based flags.
(grepflags (cond ((eq (oref tool :resulttype) 'file)
- "-l ")
- (t "-n ")))
- (greppat (cond ((eq (oref tool :searchtype) 'regexp)
- (oref tool searchfor))
- (t
- (shell-quote-argument
+ "-l ")
+ ((eq (oref tool :searchtype) 'regexp)
+ "-nE ")
+ (t "-n ")))
+ (greppat (shell-quote-argument
+ (cond ((eq (oref tool :searchtype) 'regexp)
+ (oref tool searchfor))
+ (t
(concat "\\<" (oref tool searchfor) "\\>")))))
;; Misc
(b (get-buffer-create "*Semantic SymRef*"))