(grep-tree): Doc fixes.
authorKim F. Storm <storm@cua.dk>
Fri, 14 Jun 2002 14:00:07 +0000 (14:00 +0000)
committerKim F. Storm <storm@cua.dk>
Fri, 14 Jun 2002 14:00:07 +0000 (14:00 +0000)
Added SUBDIRS arg for non-interactive use.

lisp/ChangeLog
lisp/progmodes/compile.el

index 6f8eb87..67dbd77 100644 (file)
@@ -1,3 +1,8 @@
+2002-06-14  Kim F. Storm  <storm@filanet.dk>
+
+       * progmodes/compile.el (grep-tree): Doc fixes.
+       Added SUBDIRS arg for non-interactive use.
+
 2002-06-14  Juanma Barranquero  <lektu@terra.es>
 
        * comint.el (comint-snapshot-last-prompt): Bind
index 7a759f1..54c5523 100644 (file)
@@ -860,14 +860,23 @@ easily repeat a find command."
 (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 @@ easily repeat a find command."
                       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)