From 1ec736a3dc43755a283c22c090f8d3183623cce6 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Fri, 26 Jun 2009 15:13:39 +0000 Subject: Status line fixes: don't truncate status-right now the length calculation is done for UTF-8, limit to the maximum length correctly when printing, and always print a space even if the left string is longer than the width available. --- status.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'status.c') diff --git a/status.c b/status.c index 98061dd0..8aea62a7 100644 --- a/status.c +++ b/status.c @@ -91,7 +91,6 @@ status_redraw(struct client *c) rlen2 = screen_write_strlen(utf8flag, "%s", right); if (rlen2 < rlen) rlen = rlen2; - right[rlen] = '\0'; /* * Figure out how much space we have for the window list. If there isn't @@ -167,8 +166,8 @@ draw: screen_write_start(&ctx, NULL, &c->status); if (llen != 0) { screen_write_cursormove(&ctx, 0, yy); - screen_write_nputs( - &ctx, llen + 1, &stdgc, utf8flag, "%s ", left); + screen_write_nputs(&ctx, llen, &stdgc, utf8flag, "%s", left); + screen_write_putc(&ctx, &stdgc, ' '); if (larrow) screen_write_putc(&ctx, &stdgc, ' '); } else { @@ -225,8 +224,8 @@ draw: /* Draw the last item. */ if (rlen != 0) { screen_write_cursormove(&ctx, c->tty.sx - rlen - 1, yy); - screen_write_nputs( - &ctx, rlen + 1, &stdgc, utf8flag, " %s", right); + screen_write_putc(&ctx, &stdgc, ' '); + screen_write_nputs(&ctx, rlen, &stdgc, utf8flag, "%s", right); } /* Draw the arrows. */ -- cgit