зеркало из https://github.com/microsoft/git.git
Add "-h/-H" parsing to "git grep"
It turns out that I actually wanted to avoid the filenames (because I didn't care - I just wanted to see the context in which something was used) when doing a grep. But since "git grep" didn't take the "-h" parameter, I ended up having to do "grep -5 -h *.c" instead. So here's a trivial patch that adds "-h" (and thus has to enable -H too) to "git grep" parsing. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
38529e28a4
Коммит
7977f0ea53
|
@ -138,6 +138,7 @@ struct grep_opt {
|
|||
unsigned binary:2;
|
||||
unsigned extended:1;
|
||||
unsigned relative:1;
|
||||
unsigned pathname:1;
|
||||
int regflags;
|
||||
unsigned pre_context;
|
||||
unsigned post_context;
|
||||
|
@ -316,6 +317,7 @@ static int word_char(char ch)
|
|||
static void show_line(struct grep_opt *opt, const char *bol, const char *eol,
|
||||
const char *name, unsigned lno, char sign)
|
||||
{
|
||||
if (opt->pathname)
|
||||
printf("%s%c", name, sign);
|
||||
if (opt->linenum)
|
||||
printf("%d%c", lno, sign);
|
||||
|
@ -691,6 +693,8 @@ static int external_grep(struct grep_opt *opt, const char **paths, int cached)
|
|||
push_arg("-F");
|
||||
if (opt->linenum)
|
||||
push_arg("-n");
|
||||
if (!opt->pathname)
|
||||
push_arg("-h");
|
||||
if (opt->regflags & REG_EXTENDED)
|
||||
push_arg("-E");
|
||||
if (opt->regflags & REG_ICASE)
|
||||
|
@ -911,6 +915,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
|||
memset(&opt, 0, sizeof(opt));
|
||||
opt.prefix_length = (prefix && *prefix) ? strlen(prefix) : 0;
|
||||
opt.relative = 1;
|
||||
opt.pathname = 1;
|
||||
opt.pattern_tail = &opt.pattern_list;
|
||||
opt.regflags = REG_NEWLINE;
|
||||
|
||||
|
@ -970,10 +975,12 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
|||
opt.linenum = 1;
|
||||
continue;
|
||||
}
|
||||
if (!strcmp("-h", arg)) {
|
||||
opt.pathname = 0;
|
||||
continue;
|
||||
}
|
||||
if (!strcmp("-H", arg)) {
|
||||
/* We always show the pathname, so this
|
||||
* is a noop.
|
||||
*/
|
||||
opt.pathname = 1;
|
||||
continue;
|
||||
}
|
||||
if (!strcmp("-l", arg) ||
|
||||
|
|
Загрузка…
Ссылка в новой задаче