diff.c: remove output_prefix_length field
authorJunio C Hamano <gitster@pobox.com>
Wed, 31 Aug 2016 23:27:19 +0000 (16:27 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 1 Sep 2016 01:07:08 +0000 (18:07 -0700)
"diff/log --stat" has a logic that determines the display columns
available for the diffstat part of the output and apportions it for
pathnames and diffstat graph automatically.

5e71a84a (Add output_prefix_length to diff_options, 2012-04-16)
added the output_prefix_length field to diff_options structure to
allow this logic to subtract the display columns used for the
history graph part from the total "terminal width"; this matters
when the "git log --graph -p" option is in use.

The field must be set to the number of display columns needed to
show the output from the output_prefix() callback, which is error
prone. As there is only one user of the field, and the user has the
actual value of the prefix string, let's get rid of the field and
have the user count the display width itself.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c
diff.h
graph.c
diff --git a/diff.c b/diff.c
index b43d3dd2ecb7b2154ce6c445983e23ce89c69111..ae069c303077862e3a4a1cdf943790df985d0d62 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -1625,7 +1625,7 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options)
         */
 
        if (options->stat_width == -1)
-               width = term_columns() - options->output_prefix_length;
+               width = term_columns() - strlen(line_prefix);
        else
                width = options->stat_width ? options->stat_width : 80;
        number_width = decimal_width(max_change) > number_width ?
diff --git a/diff.h b/diff.h
index 125447be09ebf1d79beb7312785c2e89654fbdb0..49e4aaafb2daf32b72103a20a4e6b43cc701a051 100644 (file)
--- a/diff.h
+++ b/diff.h
@@ -174,7 +174,6 @@ struct diff_options {
        diff_format_fn_t format_callback;
        void *format_callback_data;
        diff_prefix_fn_t output_prefix;
-       int output_prefix_length;
        void *output_prefix_data;
 
        int diff_path_counter;
diff --git a/graph.c b/graph.c
index dd1720148dc51740c96da0f4b17b59b97994abac..a4680384051125f829513ef9936a8432e4efe680 100644 (file)
--- a/graph.c
+++ b/graph.c
@@ -197,7 +197,6 @@ static struct strbuf *diff_output_prefix_callback(struct diff_options *opt, void
        assert(opt);
        assert(graph);
 
-       opt->output_prefix_length = graph->width;
        strbuf_reset(&msgbuf);
        graph_padding_line(graph, &msgbuf);
        return &msgbuf;
@@ -245,7 +244,6 @@ struct git_graph *graph_init(struct rev_info *opt)
         */
        opt->diffopt.output_prefix = diff_output_prefix_callback;
        opt->diffopt.output_prefix_data = graph;
-       opt->diffopt.output_prefix_length = 0;
 
        return graph;
 }