1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-30 19:53:09 +00:00

(rgrep): Allow grep-find-ignored-directories

to be a cons cell (test . ignored-directory) to selectively ignore
some directories depending on the location of the search.
This commit is contained in:
Sam Steingold 2009-07-08 14:23:57 +00:00
parent c1d5ce9488
commit 49405d0e1b
2 changed files with 21 additions and 6 deletions

View File

@ -1,3 +1,9 @@
2009-07-08 Sam Steingold <sds@gnu.org>
* progmodes/grep.el (rgrep): Allow grep-find-ignored-directories
to be a cons cell (test . ignored-directory) to selectively ignore
some directories depending on the location of the search.
2009-07-08 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-set-file-uid-gid): Handle the case the

View File

@ -194,7 +194,9 @@ Customize or call the function `grep-apply-setting'."
(defcustom grep-find-ignored-directories
vc-directory-exclusion-list
"*List of names of sub-directories which `rgrep' shall not recurse into."
"*List of names of sub-directories which `rgrep' shall not recurse into.
If an element is a cons cell, the car is called on the search directory
to determine whether cdr should not be recursed into."
:type '(repeat string)
:group 'grep)
@ -891,11 +893,18 @@ This command shares argument histories with \\[lgrep] and \\[grep-find]."
(concat (shell-quote-argument "(")
;; we should use shell-quote-argument here
" -path "
(mapconcat #'(lambda (dir)
(shell-quote-argument
(concat "*/" dir)))
grep-find-ignored-directories
" -o -path ")
(mapconcat
#'(lambda (ignore)
(cond ((stringp ignore)
(shell-quote-argument
(concat "*/" ignore)))
((consp ignore)
(and (funcall (car ignore) dir)
(shell-quote-argument
(concat "*/"
(cdr ignore)))))))
grep-find-ignored-directories
" -o -path ")
" "
(shell-quote-argument ")")
" -prune -o ")))))