Write escaped output in control mode rather than hex, from George Nachman.

This commit is contained in:
Nicholas Marriott 2013-03-12 22:48:58 +00:00
parent 8aa40ec1c7
commit 99934bf998
2 changed files with 7 additions and 3 deletions

View File

@ -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);
}

2
tmux.1
View File

@ -3672,7 +3672,7 @@ The new layout is
.It Ic %output Ar pane-id Ar value
A window pane produced output.
.Ar value
contains that output with each byte encoded as two hex digits.
escapes non-printable characters and backslash as octal \\xxx.
.It Ic %session-changed Ar session-id Ar name
The client is now attached to the session with ID
.Ar session-id ,