diff options
author | Bernhard Rosenkraenzer <bero@arklinux.org> | 2006-08-18 22:00:30 +0000 |
---|---|---|
committer | Bernhard Rosenkraenzer <bero@arklinux.org> | 2006-08-18 22:00:30 +0000 |
commit | 29b030df67f46bdb351f5a6bd7d9d3b4dc6b5d63 (patch) | |
tree | 8cc7fd0f39c17d517f79d8e1b045fc5563717d66 /lib | |
parent | 423c4d156a9f9ef79a9df1302fadd9cfd8092cfe (diff) | |
download | grep-29b030df67f46bdb351f5a6bd7d9d3b4dc6b5d63.tar.gz |
--exclude-dir
* lib/savedir.c, lib/savedir.h, src/grep.c, doc/*:
Add --exclude-dir option (patch #5051)
Diffstat (limited to 'lib')
-rw-r--r-- | lib/savedir.c | 10 | ||||
-rw-r--r-- | lib/savedir.h | 3 |
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/savedir.c b/lib/savedir.c index 3990c266..974787e2 100644 --- a/lib/savedir.c +++ b/lib/savedir.c @@ -100,7 +100,7 @@ isdir1 (const char *dir, const char *file) Return NULL if DIR cannot be opened or if out of memory. */ char * savedir (const char *dir, off_t name_size, struct exclude *included_patterns, - struct exclude *excluded_patterns) + struct exclude *excluded_patterns, struct exclude *excluded_directory_patterns ) { DIR *dirp; struct dirent *dp; @@ -143,6 +143,14 @@ savedir (const char *dir, off_t name_size, struct exclude *included_patterns, && excluded_filename (excluded_patterns, dp->d_name, 0)) continue; } + + if ( excluded_directory_patterns + && isdir1 (dir, dp->d_name) ) + { + if (excluded_directory_patterns + && excluded_filename (excluded_directory_patterns, dp->d_name, 0)) + continue; + } if (size_needed > name_size) { diff --git a/lib/savedir.h b/lib/savedir.h index 49c331b5..a5f6e446 100644 --- a/lib/savedir.h +++ b/lib/savedir.h @@ -13,6 +13,7 @@ extern char * savedir PARAMS ((const char *dir, off_t name_size, - struct exclude *, struct exclude *)); + struct exclude *, struct exclude *, + struct exclude *)); #endif |