[PATCH] grep -z: do not use NUL to after line number
From: Mark Lodato <hidden>
Date: 2016-06-15 22:53:38
Subsystem:
the rest · Maintainer:
Linus Torvalds
This makes `git grep -z' consistent with GNU `grep -Z' and also allows the reader of the output to determine whether each line is a match, context, or function. Signed-off-by: Mark Lodato <redacted> --- It seems like this should have been the original behavior, but I don't know if it has been too long to change the output format, especially since this option is used exclusively for processing by scripts. Perhaps as a new option (-Z?) or environment variable? grep.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/grep.c b/grep.c
index 190139c..82958f2 100644
--- a/grep.c
+++ b/grep.c@@ -469,9 +469,9 @@ static void output_color(struct grep_opt *opt, const void *data, size_t size, opt->output(opt, data, size); } -static void output_sep(struct grep_opt *opt, char sign) +static void output_sep(struct grep_opt *opt, char sign, int after_name) { - if (opt->null_following_name) + if (after_name && opt->null_following_name) opt->output(opt, "\0", 1); else output_color(opt, &sign, 1, opt->color_sep);
@@ -762,13 +762,13 @@ static void show_line(struct grep_opt *opt, char *bol, char *eol, if (!opt->heading && opt->pathname) { output_color(opt, name, strlen(name), opt->color_filename); - output_sep(opt, sign); + output_sep(opt, sign, 1); } if (opt->linenum) { char buf[32]; snprintf(buf, sizeof(buf), "%d", lno); output_color(opt, buf, strlen(buf), opt->color_lineno); - output_sep(opt, sign); + output_sep(opt, sign, 0); } if (opt->color) { regmatch_t match;
@@ -1152,7 +1152,7 @@ static int grep_source_1(struct grep_opt *opt, struct grep_source *gs, int colle if (opt->count && count) { char buf[32]; output_color(opt, gs->name, strlen(gs->name), opt->color_filename); - output_sep(opt, ':'); + output_sep(opt, ':', 1); snprintf(buf, sizeof(buf), "%u\n", count); opt->output(opt, buf, strlen(buf)); return 1;
--
1.7.10