diff.c: remove output_prefix_length field

"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>

Junio C Hamano committed Aug 31, 2016 at 16:27 UTC cd48dadb8d840637f0f55b1ad0d8f50d892c767d
3 files changed +1 -4
diff.c
+1 -1
@@ -1625,7 +1625,7 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options)
1625 */
1626
1627 if (options->stat_width == -1)
1628 - width = term_columns() - options->output_prefix_length;
1628 + width = term_columns() - strlen(line_prefix);
1629 else
1630 width = options->stat_width ? options->stat_width : 80;
1631 number_width = decimal_width(max_change) > number_width ?
diff.h
-1
@@ -174,7 +174,6 @@ struct diff_options {
174 diff_format_fn_t format_callback;
175 void *format_callback_data;
176 diff_prefix_fn_t output_prefix;
177 - int output_prefix_length;
177 void *output_prefix_data;
178
179 int diff_path_counter;
graph.c
-2
@@ -197,7 +197,6 @@ static struct strbuf *diff_output_prefix_callback(struct diff_options *opt, void
197 assert(opt);
198 assert(graph);
199
200 - opt->output_prefix_length = graph->width;
200 strbuf_reset(&msgbuf);
201 graph_padding_line(graph, &msgbuf);
202 return &msgbuf;
@@ -245,7 +244,6 @@ struct git_graph *graph_init(struct rev_info *opt)
244 */
245 opt->diffopt.output_prefix = diff_output_prefix_callback;
246 opt->diffopt.output_prefix_data = graph;
248 - opt->diffopt.output_prefix_length = 0;
247
248 return graph;
249 }