For files not named on the command line, only the basename is compared

to the exclude pattern.
Change this so that "grep --exclude='*/.svn/*' -[Rr] foo *" DWIM.

Obtained from:	dave+news001@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (Dave Gibson)
Obtained from:	comp.unix.questions [Thu, 15 Mar 2007 18:54:38 +0000]
Obtained from:	http://unix.derkeiler.com/Newsgroups/comp.unix.questions/2007-03/msg00046.html
This commit is contained in:
obrien 2009-01-30 00:22:08 +00:00
parent 87de705ad7
commit 6eaf14ce79

View File

@ -17,6 +17,9 @@
/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#if HAVE_CONFIG_H
# include <config.h>
#endif
@ -137,10 +140,10 @@ savedir (const char *dir, off_t name_size, struct exclude *included_patterns,
&& !isdir1 (dir, dp->d_name))
{
if (included_patterns
&& !excluded_filename (included_patterns, dp->d_name, 0))
&& !excluded_filename (included_patterns, path, 0))
continue;
if (excluded_patterns
&& excluded_filename (excluded_patterns, dp->d_name, 0))
&& excluded_filename (excluded_patterns, path, 0))
continue;
}