[RFC PATCH 2/3] grep: prepare grep for submodules
From: Chris Packham <hidden>
Date: 2016-06-15 22:49:39
Subsystem:
the rest · Maintainer:
Linus Torvalds
Add --submodule-prefix option to pass to subprocess grep invocations. The prefix is then used when outputting the results. Signed-off-by: Chris Packham <redacted> --- builtin/grep.c | 2 ++ grep.c | 8 ++++++++ grep.h | 1 + 3 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/builtin/grep.c b/builtin/grep.c
index da32f3d..8315ff0 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c@@ -927,6 +927,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix) "allow calling of grep(1) (ignored by this build)"), { OPTION_CALLBACK, 0, "help-all", &options, NULL, "show usage", PARSE_OPT_HIDDEN | PARSE_OPT_NOARG, help_callback }, + OPT_STRING(0, "submodule-prefix", &opt.submodule_prefix, "DIR", + "prepend this to submodule path output"), OPT_END() };
diff --git a/grep.c b/grep.c
index 63c4280..36bec98 100644
--- a/grep.c
+++ b/grep.c@@ -370,6 +370,10 @@ static void output_sep(struct grep_opt *opt, char sign) static void show_name(struct grep_opt *opt, const char *name) { + if (opt->submodule_prefix) { + output_color(opt, opt->submodule_prefix, + strlen(opt->submodule_prefix), opt->color_filename); + } output_color(opt, name, strlen(name), opt->color_filename); opt->output(opt, opt->null_following_name ? "\0" : "\n", 1); }
@@ -644,6 +648,10 @@ static void show_line(struct grep_opt *opt, char *bol, char *eol, } opt->last_shown = lno; + if (opt->submodule_prefix) { + output_color(opt, opt->submodule_prefix, + strlen(opt->submodule_prefix), opt->color_filename); + } if (opt->pathname) { output_color(opt, name, strlen(name), opt->color_filename); output_sep(opt, sign);
diff --git a/grep.h b/grep.h
index 06621fe..d918da4 100644
--- a/grep.h
+++ b/grep.h@@ -67,6 +67,7 @@ struct grep_opt { struct grep_expr *pattern_expression; const char *prefix; int prefix_length; + const char *submodule_prefix; regex_t regexp; int linenum; int invert;
--
1.7.3.dirty