git-grep: fix exit code when we use external grep.
Upon hit, we should exit with status 0. Signed-off-by: Junio C Hamano <junkio@cox.net>maint
parent
5390590f6d
commit
fcfe34b5ac
|
@ -446,7 +446,7 @@ static int exec_grep(int argc, const char **argv)
|
||||||
|
|
||||||
static int external_grep(struct grep_opt *opt, const char **paths, int cached)
|
static int external_grep(struct grep_opt *opt, const char **paths, int cached)
|
||||||
{
|
{
|
||||||
int i, nr, argc, hit, len;
|
int i, nr, argc, hit, len, status;
|
||||||
const char *argv[MAXARGS+1];
|
const char *argv[MAXARGS+1];
|
||||||
char randarg[ARGBUF];
|
char randarg[ARGBUF];
|
||||||
char *argptr = randarg;
|
char *argptr = randarg;
|
||||||
|
@ -536,12 +536,17 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
|
||||||
argv[argc++] = name;
|
argv[argc++] = name;
|
||||||
if (argc < MAXARGS)
|
if (argc < MAXARGS)
|
||||||
continue;
|
continue;
|
||||||
hit += exec_grep(argc, argv);
|
status = exec_grep(argc, argv);
|
||||||
|
if (0 < status)
|
||||||
|
hit = 1;
|
||||||
argc = nr;
|
argc = nr;
|
||||||
}
|
}
|
||||||
if (argc > nr)
|
if (argc > nr) {
|
||||||
hit += exec_grep(argc, argv);
|
status = exec_grep(argc, argv);
|
||||||
return 0;
|
if (0 < status)
|
||||||
|
hit = 1;
|
||||||
|
}
|
||||||
|
return hit;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int grep_cache(struct grep_opt *opt, const char **paths, int cached)
|
static int grep_cache(struct grep_opt *opt, const char **paths, int cached)
|
||||||
|
|
Loading…
Reference in New Issue