* Output a padding row, that leaves all branch lines unchanged
*/
for (i = 0; i < graph->num_new_columns; i++) {
- graph_line_write_column(line, &graph->new_columns[i], '|');
+ if (graph_needs_truncation(graph, i)) {
+ graph_line_addstr(line, "~ ");
+ break;
+ }
+ if (graph->new_columns[i].is_placeholder)
+ graph_line_write_column(line, &graph->new_columns[i], ' ');
+ else
+ graph_line_write_column(line, &graph->new_columns[i], '|');
graph_line_addch(line, ' ');
}
}
graph_line_write_column(line, col, '\\');
else
graph_line_write_column(line, col, '|');
- graph_line_addch(line, ' ');
+ /*
+ * If it's between two lanes and next would be truncated,
+ * don't add space padding.
+ */
+ if (!graph_needs_truncation(graph, i + 1))
+ graph_line_addch(line, ' ');
} else {
- graph_line_write_column(line, col, '|');
+ if (col->is_placeholder) {
+ /*
+ * Same placeholder handling as in
+ * graph_output_commit_line().
+ */
+ if (seen_this)
+ continue;
+ graph_line_write_column(line, col, ' ');
+ } else {
+ graph_line_write_column(line, col, '|');
+ }
+
if (graph->merge_layout != 0 || i != graph->commit_index - 1) {
if (parent_col)
graph_line_write_column(