+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
(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)
(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 ")))))