diff options
-rw-r--r-- | findutils/grep.c | 10 | ||||
-rw-r--r-- | grep.c | 10 |
2 files changed, 12 insertions, 8 deletions
diff --git a/findutils/grep.c b/findutils/grep.c index 6161ba766..3ee409c64 100644 --- a/findutils/grep.c +++ b/findutils/grep.c @@ -42,7 +42,7 @@ static int suppress_err_msgs = 0; /* globals */ static regex_t regex; /* storage space for compiled regular expression */ -static int nmatches = 0; /* keeps track of the number of matches */ +static int matched; /* keeps track of whether we ever matched */ static char *cur_file = NULL; /* the current file we are reading */ @@ -64,6 +64,7 @@ static void grep_file(FILE *file) char *line = NULL; int ret; int linenum = 0; + int nmatches = 0; while ((line = get_line_from_file(file)) != NULL) { linenum++; @@ -96,8 +97,9 @@ static void grep_file(FILE *file) printf("%i\n", nmatches); } - /* reset number of matches found to zero */ - nmatches = 0; + /* record if we matched */ + if (nmatches != 0) + matched = 1; } extern int grep_main(int argc, char **argv) @@ -176,7 +178,7 @@ extern int grep_main(int argc, char **argv) regfree(®ex); - if (nmatches == 0) + if (!matched) return 1; return 0; @@ -42,7 +42,7 @@ static int suppress_err_msgs = 0; /* globals */ static regex_t regex; /* storage space for compiled regular expression */ -static int nmatches = 0; /* keeps track of the number of matches */ +static int matched; /* keeps track of whether we ever matched */ static char *cur_file = NULL; /* the current file we are reading */ @@ -64,6 +64,7 @@ static void grep_file(FILE *file) char *line = NULL; int ret; int linenum = 0; + int nmatches = 0; while ((line = get_line_from_file(file)) != NULL) { linenum++; @@ -96,8 +97,9 @@ static void grep_file(FILE *file) printf("%i\n", nmatches); } - /* reset number of matches found to zero */ - nmatches = 0; + /* record if we matched */ + if (nmatches != 0) + matched = 1; } extern int grep_main(int argc, char **argv) @@ -176,7 +178,7 @@ extern int grep_main(int argc, char **argv) regfree(®ex); - if (nmatches == 0) + if (!matched) return 1; return 0; |