diff options
-rw-r--r-- | builtin-grep.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/builtin-grep.c b/builtin-grep.c index bc53546dc7..6973c66704 100644 --- a/builtin-grep.c +++ b/builtin-grep.c @@ -657,6 +657,13 @@ static int grep_object(struct grep_opt *opt, const char **paths, static const char builtin_grep_usage[] = "git-grep <option>* <rev>* [-e] <pattern> [<path>...]"; +static const char emsg_invalid_context_len[] = +"%s: invalid context length argument"; +static const char emsg_missing_context_len[] = +"missing context length argument"; +static const char emsg_missing_argument[] = +"option requires an argument -%s"; + int cmd_grep(int argc, const char **argv, char **envp) { int hit = 0; @@ -764,7 +771,7 @@ int cmd_grep(int argc, const char **argv, char **envp) case 'A': case 'B': case 'C': if (!arg[2]) { if (argc <= 1) - usage(builtin_grep_usage); + die(emsg_missing_context_len); scan = *++argv; argc--; } @@ -776,7 +783,7 @@ int cmd_grep(int argc, const char **argv, char **envp) break; } if (sscanf(scan, "%u", &num) != 1) - usage(builtin_grep_usage); + die(emsg_invalid_context_len, scan); switch (arg[1]) { case 'A': opt.post_context = num; @@ -795,7 +802,7 @@ int cmd_grep(int argc, const char **argv, char **envp) int lno = 0; char buf[1024]; if (argc <= 1) - usage(builtin_grep_usage); + die(emsg_missing_argument, arg); patterns = fopen(argv[1], "r"); if (!patterns) die("'%s': %s", argv[1], strerror(errno)); @@ -820,7 +827,7 @@ int cmd_grep(int argc, const char **argv, char **envp) argc--; continue; } - usage(builtin_grep_usage); + die(emsg_missing_argument, arg); } if (!strcmp("--", arg)) { /* later processing wants to have this at argv[1] */ |