git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v8 1/8] diff.c: remove output_prefix_length field

From
Jacob Keller <jacob.e.keller@intel.com>
Date
Aug 19, 2016, 00:00 UTC
Message-ID
<20160819000031.24854-2-jacob.e.keller@intel.com>
In-Reply-To
<20160819000031.24854-1-jacob.e.keller@intel.com>
From: Junio C Hamano <gitster@pobox.com>

"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  | 2 +-
 diff.h  | 1 -
 graph.c | 2 --
 3 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/diff.c b/diff.c
index 534c12e28ea8..50bef1f07658 100644
--- 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 7883729edf10..747a204d75a4 100644
--- 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 dd1720148dc5..a46803840511 100644
--- 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;
 }
-- 
2.10.0.rc0.217.g609f9e8.dirty
Previous: Jacob KellerNext: Jacob Keller
Message 5 of 28 in “submodule show inline diff”
  1. 0/8 submodule show inline diffJacob Keller, Aug 19, 2016
  2. 6/8 submodule: refactor show_submodule_summary with helper functionJacob Keller, Aug 19, 2016
  3. Junio C HamanoAug 19, 2016
  4. Jacob KellerAug 19, 2016
  5. 1/8 diff.c: remove output_prefix_length fieldJacob Keller, Aug 19, 2016
  6. 3/8 diff: prepare for additional submodule formatsJacob Keller, Aug 19, 2016
  7. Junio C HamanoAug 19, 2016
  8. 2/8 graph: add support for --line-prefix on all graph-aware outputJacob Keller, Aug 19, 2016
  9. 7/8 cache: add empty_tree_oid objectJacob Keller, Aug 19, 2016
  10. Junio C HamanoAug 19, 2016
  11. Jacob KellerAug 19, 2016
  12. Junio C HamanoAug 19, 2016
  13. Junio C HamanoAug 19, 2016
  14. Jacob KellerAug 19, 2016
  15. Jeff KingAug 19, 2016
  16. Junio C HamanoAug 23, 2016
  17. 5/8 submodule: convert show_submodule_summary to use struct object_id *Jacob Keller, Aug 19, 2016
  18. Junio C HamanoAug 19, 2016
  19. 8/8 diff: teach diff to display submodule difference with an inline diffJacob Keller, Aug 19, 2016
  20. Junio C HamanoAug 19, 2016
  21. Jacob KellerAug 19, 2016
  22. 4/8 submodule: allow add_submodule_odb to work even if path is not checked outJacob Keller, Aug 19, 2016
  23. Junio C HamanoAug 19, 2016
  24. Jacob KellerAug 19, 2016
  25. Junio C HamanoAug 19, 2016
  26. Jacob KellerAug 19, 2016
  27. Junio C HamanoAug 19, 2016
  28. Jacob KellerAug 19, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.