summaryrefslogtreecommitdiffstats
path: root/control-notify.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2013-03-25 11:40:54 +0000
committerNicholas Marriott <nicm@openbsd.org>2013-03-25 11:40:54 +0000
commit87fe1c0b0e47298de2cee7914d173cc18c4cd345 (patch)
tree8f2794feb00761857b82842a36319d018b33817c /control-notify.c
parent114d822d27b2d4d20d707361629aaab6ba5a1a9f (diff)
Include prefix on ids, from George Nachman.
Diffstat (limited to 'control-notify.c')
-rw-r--r--control-notify.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/control-notify.c b/control-notify.c
index 6bc98b6f..0931c23a 100644
--- a/control-notify.c
+++ b/control-notify.c
@@ -46,8 +46,12 @@ control_notify_input(struct client *c, struct window_pane *wp,
if (winlink_find_by_window(&c->session->windows, wp->window) != NULL) {
message = evbuffer_new();
evbuffer_add_printf(message, "%%output %%%u ", wp->id);
- for (i = 0; i < len; i++)
- evbuffer_add_printf(message, "%02hhx", buf[i]);
+ for (i = 0; i < len; i++) {
+ if (buf[i] < ' ' || buf[i] == '\\')
+ evbuffer_add_printf(message, "\\%03o", buf[i]);
+ else
+ evbuffer_add_printf(message, "%c", buf[i]);
+ }
control_write_buffer(c, message);
evbuffer_free(message);
}
@@ -104,7 +108,7 @@ control_notify_window_unlinked(unused struct session *s, struct window *w)
continue;
cs = c->session;
- control_write(c, "%%window-close %u", w->id);
+ control_write(c, "%%window-close @%u", w->id);
}
}
@@ -122,9 +126,9 @@ control_notify_window_linked(unused struct session *s, struct window *w)
cs = c->session;
if (winlink_find_by_window_id(&cs->windows, w->id) != NULL)
- control_write(c, "%%window-add %u", w->id);
+ control_write(c, "%%window-add @%u", w->id);
else
- control_write(c, "%%unlinked-window-add %u", w->id);
+ control_write(c, "%%unlinked-window-add @%u", w->id);
}
}
@@ -141,7 +145,7 @@ control_notify_window_renamed(struct window *w)
continue;
s = c->session;
- control_write(c, "%%window-renamed %u %s", w->id, w->name);
+ control_write(c, "%%window-renamed @%u %s", w->id, w->name);
}
}
@@ -154,7 +158,7 @@ control_notify_attached_session_changed(struct client *c)
return;
s = c->session;
- control_write(c, "%%session-changed %d %s", s->id, s->name);
+ control_write(c, "%%session-changed $%u %s", s->id, s->name);
}
void
@@ -165,10 +169,10 @@ control_notify_session_renamed(struct session *s)
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
c = ARRAY_ITEM(&clients, i);
- if (!CONTROL_SHOULD_NOTIFY_CLIENT(c) || c->session != s)
+ if (!CONTROL_SHOULD_NOTIFY_CLIENT(c))
continue;
- control_write(c, "%%session-renamed %s", s->name);
+ control_write(c, "%%session-renamed $%u %s", s->id, s->name);
}
}
@@ -180,7 +184,7 @@ control_notify_session_created(unused struct session *s)
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
c = ARRAY_ITEM(&clients, i);
- if (!CONTROL_SHOULD_NOTIFY_CLIENT(c) || c->session == NULL)
+ if (!CONTROL_SHOULD_NOTIFY_CLIENT(c))
continue;
control_write(c, "%%sessions-changed");
@@ -195,7 +199,7 @@ control_notify_session_close(unused struct session *s)
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
c = ARRAY_ITEM(&clients, i);
- if (!CONTROL_SHOULD_NOTIFY_CLIENT(c) || c->session == NULL)
+ if (!CONTROL_SHOULD_NOTIFY_CLIENT(c))
continue;
control_write(c, "%%sessions-changed");