- Match GNU behavior of exit code

- Rename variable that has a different meaning now

PR:		bin/162930
Submitted by:	Jan Beich <jbeich@tormail.net>
MFC after:	1 week
This commit is contained in:
Gabor Kovesdan 2011-12-07 12:25:28 +00:00
parent 20df026c9a
commit 6f4cbf7cb3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=228319
3 changed files with 5 additions and 6 deletions

View File

@ -148,7 +148,7 @@ static inline const char *init_color(const char *);
bool first = true; /* flag whether we are processing the first match */
bool prev; /* flag whether or not the previous line matched */
int tail; /* lines left to print */
bool notfound; /* file not found */
bool file_err; /* file reading error */
/*
* Prints usage information and returns 2.
@ -728,5 +728,5 @@ main(int argc, char *argv[])
/* Find out the correct return value according to the
results and the command line option. */
exit(c ? (notfound ? (qflag ? 0 : 2) : 0) : (notfound ? 2 : 1));
exit(c ? (file_err ? (qflag ? 0 : 2) : 0) : (file_err ? 2 : 1));
}

View File

@ -119,7 +119,7 @@ extern char *label;
extern const char *color;
extern int binbehave, devbehave, dirbehave, filebehave, grepbehave, linkbehave;
extern bool first, matchall, notfound, prev;
extern bool file_err, first, matchall, prev;
extern int tail;
extern unsigned int dpatterns, fpatterns, patterns;
extern struct pat *pattern;

View File

@ -130,7 +130,7 @@ grep_tree(char **argv)
case FTS_DNR:
/* FALLTHROUGH */
case FTS_ERR:
notfound = true;
file_err = true;
if(!sflag)
warnx("%s: %s", p->fts_path, strerror(p->fts_errno));
break;
@ -195,10 +195,9 @@ procfile(const char *fn)
f = grep_open(fn);
}
if (f == NULL) {
file_err = true;
if (!sflag)
warn("%s", fn);
if (errno == ENOENT)
notfound = true;
return (0);
}