summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/main.c b/src/main.c
index afd77c5c..70197f42 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2205,15 +2205,26 @@ main (int argc, char **argv)
do
{
char *file = argv[optind];
- if ((included_patterns || excluded_patterns)
- && !isdir (file))
+ if (!STREQ (file, "-")
+ && (included_patterns || excluded_patterns
+ || excluded_directory_patterns))
{
- if (included_patterns
- && excluded_file_name (included_patterns, file))
- continue;
- if (excluded_patterns
- && excluded_file_name (excluded_patterns, file))
- continue;
+ if (isdir (file))
+ {
+ if (excluded_directory_patterns
+ && excluded_file_name (excluded_directory_patterns,
+ file))
+ continue;
+ }
+ else
+ {
+ if (included_patterns
+ && excluded_file_name (included_patterns, file))
+ continue;
+ if (excluded_patterns
+ && excluded_file_name (excluded_patterns, file))
+ continue;
+ }
}
status &= grepfile (STREQ (file, "-") ? (char *) NULL : file,
&stats_base);