aboutsummaryrefslogtreecommitdiff
path: root/pretty.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-07-11 10:44:09 -0700
committerJunio C Hamano <gitster@pobox.com>2016-07-11 10:44:09 -0700
commit5f30bb4a8144a2132568021a18972a89c1dfd3ca (patch)
tree04a2787bdea3c13f4abc343ae6afbcaec3c4c7df /pretty.c
parent52debb683198c50354c46a7745d45252b0989c7e (diff)
parent066790d7cb0fa22e64f1276d8a0e33d18484f62a (diff)
downloadgit-5f30bb4a8144a2132568021a18972a89c1dfd3ca.tar.gz
git-5f30bb4a8144a2132568021a18972a89c1dfd3ca.tar.xz
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)'
Diffstat (limited to 'pretty.c')
-rw-r--r--pretty.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/pretty.c b/pretty.c
index c3ec43022..8d182472e 100644
--- a/pretty.c
+++ b/pretty.c
@@ -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) {