diff options
author | John Wiegley <johnw@newartisans.com> | 2016-01-11 22:48:10 -0800 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2016-01-11 22:48:10 -0800 |
commit | 4b739f70a54579b134ab6da313a3d665640a6a3f (patch) | |
tree | a5c8bba0bd10e8c4b2de062d6a5f905ac139f121 /lisp/cedet/semantic/symref/grep.el | |
parent | 540bfa7680268a55fc617ffb822e962cb9fb6c59 (diff) | |
parent | 43662a240b682de94299e797452ba56d01a04883 (diff) | |
download | emacs-4b739f70a54579b134ab6da313a3d665640a6a3f.tar.gz emacs-4b739f70a54579b134ab6da313a3d665640a6a3f.tar.bz2 emacs-4b739f70a54579b134ab6da313a3d665640a6a3f.zip |
Merge from origin/emacs-25
43662a2 ; Clarify that xref is still experimental
0a6e6ca ; * admin/release-process: Remove some obsolete records.
c2e9e3d * lisp/progmodes/fortran.el (fortran-make-syntax-propertize-function):
8637f3d (semantic-symref-derive-find-filepatterns): Return a list
0a7ad07 ; Re-arrange xref-related entries in NEWS.
fe903ef Fix xref-find-references on MS-Windows
55a28d8 ; Fixed visual bell artifact problem on NextStep.
d064034 Document new features of tildify-mode
964bea7 Document new features of Whitespace mode
cd68f47 Improve documentation of new Hide-IfDef features
723b8bf Fix regression in font-locking cl-assert and cl-check-type
Diffstat (limited to 'lisp/cedet/semantic/symref/grep.el')
-rw-r--r-- | lisp/cedet/semantic/symref/grep.el | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el index 52c8d3b972c..3b544d9f912 100644 --- a/lisp/cedet/semantic/symref/grep.el +++ b/lisp/cedet/semantic/symref/grep.el @@ -53,6 +53,8 @@ and those hits returned.") See find -name man page for format.") (defun semantic-symref-derive-find-filepatterns (&optional mode) + ;; FIXME: This should be moved to grep.el, where it could be used + ;; for "C-u M-x grep" as well. "Derive a list of file patterns for the current buffer. Looks first in `semantic-symref-filepattern-alist'. If it is not there, it then looks in `auto-mode-alist', and attempts to derive something @@ -64,28 +66,20 @@ Optional argument MODE specifies the `major-mode' to test." (when (not pat) ;; No hit, try auto-mode-alist. (dolist (X auto-mode-alist) - (when (eq (cdr X) mode) - ;; Only take in simple patterns, so try to convert this one. - (let ((Xp - (cond ((string-match "\\\\\\.\\([^\\'>]+\\)\\\\'" (car X)) - (concat "*." (match-string 1 (car X)))) - (t nil)))) - (when Xp - (setq pat (cons Xp pat)))) - ))) + (when (and (eq (cdr X) mode) + ;; Only take in simple patterns, so try to convert this one. + (string-match "\\\\\\.\\([^\\'>]+\\)\\\\'" (car X))) + (push (concat "*." (match-string 1 (car X))) pat)))) ;; Convert the list into some find-flags. - (cond ((= (length pat) 1) - (concat "-name \"" (car pat) "\"")) - ((consp pat) - (concat "\\( " - (mapconcat (lambda (s) - (concat "-name \"" s "\"")) - pat - " -o ") - " \\)")) - (t - (error "Customize `semantic-symref-filepattern-alist' for %s" major-mode)) - ))) + (if (null pat) + (error "Customize `semantic-symref-filepattern-alist' for %S" + major-mode) + (let ((args `("-name" ,(car pat)))) + (if (null (cdr args)) + args + `("(" ,@args + ,@(apply #'nconc (mapcar (lambda (s) `("-o" "-name" ,s)) pat)) + ")")))))) (defvar grepflags) (defvar greppattern) @@ -147,7 +141,8 @@ This shell should support pipe redirect syntax." ;; Find the root of the project, and do a find-grep... (let* (;; Find the file patterns to use. (rootdir (semantic-symref-calculate-rootdir)) - (filepattern (semantic-symref-derive-find-filepatterns)) + (filepatterns (semantic-symref-derive-find-filepatterns)) + (filepattern (mapconcat #'shell-quote-argument filepatterns " ")) ;; Grep based flags. (grepflags (cond ((eq (oref tool :resulttype) 'file) "-l ") |