summaryrefslogtreecommitdiff
path: root/findutils
diff options
context:
space:
mode:
author"Vladimir N. Oleynik"2005-09-23 13:23:15 +0000
committer"Vladimir N. Oleynik"2005-09-23 13:23:15 +0000
commitcf40d8175b230e01eef7a1a0d1c7cb8d1409dab5 (patch)
tree7d0f12ea2040bfbde10bdfcdf65aa88f6708e8cb /findutils
parentb628409b1e18aa6cdcf485077a3a64276e817db9 (diff)
downloadbusybox-cf40d8175b230e01eef7a1a0d1c7cb8d1409dab5.zip
busybox-cf40d8175b230e01eef7a1a0d1c7cb8d1409dab5.tar.gz
grep must have exit code >1 if input file not found. Small indent correcion also.
Diffstat (limited to 'findutils')
-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 */
}