summaryrefslogtreecommitdiffstats
path: root/status.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2012-04-23 22:23:14 +0000
committerNicholas Marriott <nicm@openbsd.org>2012-04-23 22:23:14 +0000
commite02d1bce98e35b5eeb3073ec9d891363493ed72a (patch)
tree43fadc181de53d55f89a1e90f1b8551711d8df74 /status.c
parented58b2d3534dfa6c2f8203710d2fbd3c76d46532 (diff)
Add window-status-separator option, from Thomas Adam.
Diffstat (limited to 'status.c')
-rw-r--r--status.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/status.c b/status.c
index 8338fbe4..33ac81ff 100644
--- a/status.c
+++ b/status.c
@@ -160,11 +160,12 @@ status_redraw(struct client *c)
struct winlink *wl;
struct screen old_status, window_list;
struct grid_cell stdgc, lgc, rgc, gc;
+ struct options *oo;
time_t t;
- char *left, *right;
+ char *left, *right, *sep;
u_int offset, needed;
u_int wlstart, wlwidth, wlavailable, wloffset, wlsize;
- size_t llen, rlen;
+ size_t llen, rlen, seplen;
int larrow, rarrow, utf8flag;
/* No status line? */
@@ -230,7 +231,11 @@ status_redraw(struct client *c)
if (wl == s->curw)
wloffset = wlwidth;
- wlwidth += wl->status_width + 1;
+
+ oo = &wl->window->options;
+ sep = options_get_string(oo, "window-status-separator");
+ seplen = screen_write_strlen(utf8flag, "%s", sep);
+ wlwidth += wl->status_width + seplen;
}
/* Create a new screen for the window list. */
@@ -241,7 +246,10 @@ status_redraw(struct client *c)
RB_FOREACH(wl, winlinks, &s->windows) {
screen_write_cnputs(&ctx,
-1, &wl->status_cell, utf8flag, "%s", wl->status_text);
- screen_write_putc(&ctx, &stdgc, ' ');
+
+ oo = &wl->window->options;
+ sep = options_get_string(oo, "window-status-separator");
+ screen_write_nputs(&ctx, -1, &stdgc, utf8flag, "%s", sep);
}
screen_write_stop(&ctx);