summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--findutils/grep.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/findutils/grep.c b/findutils/grep.c
index a705df9..c3feb20 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -260,6 +260,7 @@ extern int grep_main(int argc, char **argv)
int matched;
unsigned long opt;
llist_t *fopt = NULL;
+ int error_open_count = 0;
/* do normal option parsing */
#ifdef CONFIG_FEATURE_GREP_CONTEXT
@@ -375,6 +376,7 @@ extern int grep_main(int argc, char **argv)
if (file == NULL) {
if (!suppress_err_msgs)
bb_perror_msg("%s", cur_file);
+ error_open_count++;
} else {
matched += grep_file(file);
if(matched < 0) {
@@ -382,9 +384,9 @@ extern int grep_main(int argc, char **argv)
* return success */
break;
}
- fclose(file);
- }
+ fclose(file);
}
+ }
#ifdef CONFIG_FEATURE_CLEAN_UP
/* destroy all the elments in the pattern list */
@@ -396,5 +398,7 @@ extern int grep_main(int argc, char **argv)
}
#endif
+ if(error_open_count)
+ return 2;
return !matched; /* invert return value 0 = success, 1 = failed */
}