Merge branch 'nd/graph-width-padded' into maint

"log --graph --format=" learned that "%>|(N)" specifies the width
relative to the terminal's left edge, not relative to the area to
draw text that is to the right of the ancestry-graph section.  It
also now accepts negative N that means the column limit is relative
to the right border.

* nd/graph-width-padded:
  pretty.c: support <direction>|(<negative number>) forms
  pretty: pass graph width to pretty formatting for use in '%>|(N)'
This commit is contained in:
Junio C Hamano
2016-07-11 10:44:09 -07:00
6 changed files with 80 additions and 1 deletions

View File

@ -1022,9 +1022,15 @@ static size_t parse_padding_placeholder(struct strbuf *sb,
int width;
if (!end || end == start)
return 0;
width = strtoul(start, &next, 10);
width = strtol(start, &next, 10);
if (next == start || width == 0)
return 0;
if (width < 0) {
if (to_column)
width += term_columns();
if (width < 0)
return 0;
}
c->padding = to_column ? -width : width;
c->flush_type = flush_type;
@ -1299,6 +1305,7 @@ static size_t format_and_pad_commit(struct strbuf *sb, /* in UTF-8 */
if (!start)
start = sb->buf;
occupied = utf8_strnwidth(start, -1, 1);
occupied += c->pretty_ctx->graph_width;
padding = (-padding) - occupied;
}
while (1) {