aboutsummaryrefslogtreecommitdiff
path: root/status.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-06-26 15:13:39 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-06-26 15:13:39 +0000
commit1ec736a3dc43755a283c22c090f8d3183623cce6 (patch)
tree1ed5548fe2a24f208d2789ff8531b42bf8c6c8de /status.c
parentc506e7f71194b25c4ba2bf0087c7ebc3fff34b05 (diff)
downloadrtmux-1ec736a3dc43755a283c22c090f8d3183623cce6.tar.gz
rtmux-1ec736a3dc43755a283c22c090f8d3183623cce6.tar.bz2
rtmux-1ec736a3dc43755a283c22c090f8d3183623cce6.zip
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.
Diffstat (limited to 'status.c')
-rw-r--r--status.c9
1 files changed, 4 insertions, 5 deletions
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. */