range-diff: indent the diffs just like tbdiff
[gitweb.git] / builtin / range-diff.c
index 3b06ed9449a39168aa606994e6e2cf28fcd22fee..f0598005aece52c84b7b18fdd432f9d205a3aac5 100644 (file)
@@ -11,6 +11,11 @@ N_("git range-diff [<options>] <base> <old-tip> <new-tip>"),
 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 creation_factor = 60;
@@ -21,12 +26,16 @@ int cmd_range_diff(int argc, const char **argv, const char *prefix)
                OPT_END()
        };
        int i, j, res = 0;
+       struct strbuf four_spaces = STRBUF_INIT;
        struct strbuf range1 = STRBUF_INIT, range2 = STRBUF_INIT;
 
        git_config(git_diff_ui_config, NULL);
 
        diff_setup(&diffopt);
        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,
                             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(&range2);
+       strbuf_release(&four_spaces);
 
        return res;
 }