diff options
author | Jeff King <peff@peff.net> | 2010-02-06 23:44:15 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-02-07 15:53:54 -0800 |
commit | 1123c67ceee2f310b08ab5d67b076ef04ab59bfc (patch) | |
tree | ebebcecbee1f010a1f073bd9bcb59e1e87af5b0d /builtin-grep.c | |
parent | 3c8f6c8c4f00414e66076c2c97c834d01f828491 (diff) | |
download | git-1123c67ceee2f310b08ab5d67b076ef04ab59bfc.tar.gz |
accept "git grep -- pattern"
Currently the only way to "quote" a grep pattern that might
begin with a dash is to use "git grep -e pattern". This
works just fine, and is also the way right way to do it on
many traditional grep implemenations.
Some people prefer to use "git grep -- pattern", however, as
"--" is the usual "end of options" marker, and at least GNU
grep and Solaris 10 grep support this. This patch makes that
syntax work.
There is a slight behavior change, in that "git grep -- $X"
used to be interpreted as "grep for -- in $X". However, that
usage is questionable. "--" is usually the end-of-options
marker, so "git grep" was unlike many other greps in
treating it as a literal pattern (e.g., both GNU grep and
Solaris 10 grep will treat "grep --" as missing a pattern).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-grep.c')
-rw-r--r-- | builtin-grep.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/builtin-grep.c b/builtin-grep.c index 26d4deb1cc..63d4b95b0d 100644 --- a/builtin-grep.c +++ b/builtin-grep.c @@ -861,6 +861,16 @@ int cmd_grep(int argc, const char **argv, const char *prefix) PARSE_OPT_STOP_AT_NON_OPTION | PARSE_OPT_NO_INTERNAL_HELP); + /* + * skip a -- separator; we know it cannot be + * separating revisions from pathnames if + * we haven't even had any patterns yet + */ + if (argc > 0 && !opt.pattern_list && !strcmp(argv[0], "--")) { + argv++; + argc--; + } + /* First unrecognized non-option token */ if (argc > 0 && !opt.pattern_list) { append_grep_pattern(&opt, argv[0], "command line", 0, |