range-diff: indent the diffs just like tbdiff

The main information in the `range-diff` view comes from the list of
matching and non-matching commits, the diffs are additional information.
Indenting them helps with the reading flow.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2018-08-13 04:33:10 -07:00 committed by Junio C Hamano
parent a142f978e7
commit 5e242e63d0

View File

@ -11,6 +11,11 @@ N_("git range-diff [<options>] <base> <old-tip> <new-tip>"),
NULL NULL
}; };
static struct strbuf *output_prefix_cb(struct diff_options *opt, void *data)
{
return data;
}
int cmd_range_diff(int argc, const char **argv, const char *prefix) int cmd_range_diff(int argc, const char **argv, const char *prefix)
{ {
int creation_factor = 60; int creation_factor = 60;
@ -21,12 +26,16 @@ int cmd_range_diff(int argc, const char **argv, const char *prefix)
OPT_END() OPT_END()
}; };
int i, j, res = 0; int i, j, res = 0;
struct strbuf four_spaces = STRBUF_INIT;
struct strbuf range1 = STRBUF_INIT, range2 = STRBUF_INIT; struct strbuf range1 = STRBUF_INIT, range2 = STRBUF_INIT;
git_config(git_diff_ui_config, NULL); git_config(git_diff_ui_config, NULL);
diff_setup(&diffopt); diff_setup(&diffopt);
diffopt.output_format = DIFF_FORMAT_PATCH; diffopt.output_format = DIFF_FORMAT_PATCH;
diffopt.output_prefix = output_prefix_cb;
strbuf_addstr(&four_spaces, " ");
diffopt.output_prefix_data = &four_spaces;
argc = parse_options(argc, argv, NULL, options, argc = parse_options(argc, argv, NULL, options,
builtin_range_diff_usage, PARSE_OPT_KEEP_UNKNOWN | builtin_range_diff_usage, PARSE_OPT_KEEP_UNKNOWN |
@ -90,6 +99,7 @@ int cmd_range_diff(int argc, const char **argv, const char *prefix)
strbuf_release(&range1); strbuf_release(&range1);
strbuf_release(&range2); strbuf_release(&range2);
strbuf_release(&four_spaces);
return res; return res;
} }