This change itself only changes the internal communication and should have no visible effect to the user. We instruct the diff code that produces the inner diffs to use X, Y, Z instead of the usual markers for new, old and context lines Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> --- range-diff.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/range-diff.c b/range-diff.c index 347b4a79f25..a4ff945427e 100644 --- a/range-diff.c +++ b/range-diff.c @@ -38,6 +38,9 @@ static int read_patches(const char *range, struct string_list *list) argv_array_pushl(&cp.args, "log", "--no-color", "-p", "--no-merges", "--reverse", "--date-order", "--decorate=no", + "--output-indicator-new=X", + "--output-indicator-old=Y", + "--output-indicator-context=Z", "--no-abbrev-commit", range, NULL); cp.out = -1; @@ -108,8 +111,18 @@ static int read_patches(const char *range, struct string_list *list) * we are not interested. */ continue; - else + else if (line.buf[0] == 'X') { + strbuf_addch(&buf, '+'); + strbuf_add(&buf, line.buf + 1, line.len - 1); + } else if (line.buf[0] == 'Y') { + strbuf_addch(&buf, '-'); + strbuf_add(&buf, line.buf + 1, line.len - 1); + } else if (line.buf[0] == 'Z') { + strbuf_addch(&buf, ' '); + strbuf_add(&buf, line.buf + 1, line.len - 1); + } else { strbuf_addbuf(&buf, &line); + } strbuf_addch(&buf, '\n'); util->diffsize++; -- 2.18.0.597.ga71716f1ad-goog