aboutsummaryrefslogtreecommitdiff
path: root/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'status.c')
-rw-r--r--status.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/status.c b/status.c
index deb1b60d..19b0ec88 100644
--- a/status.c
+++ b/status.c
@@ -121,12 +121,17 @@ status_set_window_at(struct client *c, u_int x)
{
struct session *s = c->session;
struct winlink *wl;
+ struct options *oo;
+ size_t len;
x += c->wlmouse;
RB_FOREACH(wl, winlinks, &s->windows) {
+ oo = &wl->window->options;
+
+ len = strlen(options_get_string(oo, "window-status-separator"));
if (x < wl->status_width && session_select(s, wl->idx) == 0)
server_redraw_session(s);
- x -= wl->status_width + 1;
+ x -= wl->status_width + len;
}
}
@@ -646,7 +651,7 @@ status_print(
}
/* Set a status line message. */
-void printflike2
+void
status_message_set(struct client *c, const char *fmt, ...)
{
struct timeval tv;
@@ -987,7 +992,7 @@ status_prompt_key(struct client *c, int key)
/* Insert the new word. */
size += strlen(s);
off = first - c->prompt_buffer;
- c->prompt_buffer = xrealloc(c->prompt_buffer, 1, size + 1);
+ c->prompt_buffer = xrealloc(c->prompt_buffer, size + 1);
first = c->prompt_buffer + off;
memmove(first + strlen(s), first, n);
memcpy(first, s, strlen(s));
@@ -1165,7 +1170,7 @@ status_prompt_key(struct client *c, int key)
break;
}
- c->prompt_buffer = xrealloc(c->prompt_buffer, 1, size + n + 1);
+ c->prompt_buffer = xrealloc(c->prompt_buffer, size + n + 1);
if (c->prompt_index == size) {
memcpy(c->prompt_buffer + c->prompt_index, pb->data, n);
c->prompt_index += n;
@@ -1205,7 +1210,7 @@ status_prompt_key(struct client *c, int key)
case MODEKEY_OTHER:
if ((key & 0xff00) != 0 || key < 32 || key == 127)
break;
- c->prompt_buffer = xrealloc(c->prompt_buffer, 1, size + 2);
+ c->prompt_buffer = xrealloc(c->prompt_buffer, size + 2);
if (c->prompt_index == size) {
c->prompt_buffer[c->prompt_index++] = key;