From: Junio C Hamano Date: Wed, 5 Jul 2006 23:25:32 +0000 (-0700) Subject: Merge branch 'jc/grepfix' X-Git-Tag: v1.4.2-rc1~86 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/169c2e9d1e81b3e7129248d89de160a7bb242411?hp=d87b90e47f7430455385edcf8506288b9a73d3b5 Merge branch 'jc/grepfix' * jc/grepfix: git-grep: use a bit more specific error messages. git-grep: fix exit code when we use external grep. git-grep: fix parsing of pathspec separator '--' --- diff --git a/builtin-grep.c b/builtin-grep.c index 2e7986cece..6973c66704 100644 --- a/builtin-grep.c +++ b/builtin-grep.c @@ -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) { - int i, nr, argc, hit, len; + int i, nr, argc, hit, len, status; const char *argv[MAXARGS+1]; char randarg[ARGBUF]; char *argptr = randarg; @@ -536,12 +536,17 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached) argv[argc++] = name; if (argc < MAXARGS) continue; - hit += exec_grep(argc, argv); + status = exec_grep(argc, argv); + if (0 < status) + hit = 1; argc = nr; } - if (argc > nr) - hit += exec_grep(argc, argv); - return 0; + if (argc > nr) { + status = exec_grep(argc, argv); + if (0 < status) + hit = 1; + } + return hit; } static int grep_cache(struct grep_opt *opt, const char **paths, int cached) @@ -652,6 +657,13 @@ static int grep_object(struct grep_opt *opt, const char **paths, static const char builtin_grep_usage[] = "git-grep