changeset 45829:052a3fd9ef93

(grep-tree): Doc fixes. Added SUBDIRS arg for non-interactive use.
author Kim F. Storm <storm@cua.dk>
date Fri, 14 Jun 2002 13:58:28 +0000
parents ad50e4ff5888
children be6062b5c4cd
files lisp/progmodes/compile.el
diffstat 1 files changed, 17 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/compile.el	Fri Jun 14 13:14:23 2002 +0000
+++ b/lisp/progmodes/compile.el	Fri Jun 14 13:58:28 2002 +0000
@@ -860,14 +860,23 @@
 (defvar grep-tree-last-regexp "")
 (defvar grep-tree-last-files (car (car grep-tree-files-aliases)))
 
-(defun grep-tree (regexp files dir)
-  "Grep in directory tree with simplified prompting for search parameters.
+(defun grep-tree (regexp files dir &optional subdirs)
+  "Grep for REGEXP in FILES in directory tree rooted at DIR.
 Collect output in a buffer.
+Interactively, prompt separately for each search parameter.
+With prefix arg, reuse previous REGEXP.
+The search is limited to file names matching shell pattern FILES.
+FILES may use abbreviations defined in `grep-tree-files-aliases', e.g.
+entering `ch' is equivalent to `*.[ch]'.
+
 While find runs asynchronously, you can use the \\[next-error] command
 to find the text that grep hits refer to.
 
 This command uses a special history list for its arguments, so you can
-easily repeat a find command."
+easily repeat a find command.
+
+When used non-interactively, optional arg SUBDIRS limits the search to
+those sub directories of DIR."
   (interactive
    (let* ((regexp
 	   (if current-prefix-arg
@@ -896,7 +905,11 @@
 		       grep-tree-command
 		       (setq grep-tree-last-regexp regexp)
 		       (and files (concat "-name '" files "'"))
-		       nil  ;; we change default-directory to dir 
+		       (if subdirs
+			   (if (stringp subdirs)
+			       subdirs
+			     (mapconcat 'identity subdirs " "))
+			 nil)  ;; we change default-directory to dir 
 		       (and grep-tree-ignore-CVS-directories "-path '*/CVS' -prune -o ")
 		       grep-tree-ignore-case))
 	(default-directory dir)