diff options
author | Thomas Adam <thomas@xteddy.org> | 2023-02-06 00:01:11 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2023-02-06 00:01:11 +0000 |
commit | e25926d3c4b7b836228d371a2c6450c913986c8f (patch) | |
tree | 2b383c5878f861659b047eab5070962be9e859a0 /cmd-queue.c | |
parent | 493922dc4b150218ab35fbbb8c5cf6a90fc4f24c (diff) | |
parent | 0cb75f1332f7d2b5a3c610c2d76c5c53ef129c7c (diff) |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-queue.c')
-rw-r--r-- | cmd-queue.c | 63 |
1 files changed, 1 insertions, 62 deletions
diff --git a/cmd-queue.c b/cmd-queue.c index 78b379de..e5188c54 100644 --- a/cmd-queue.c +++ b/cmd-queue.c @@ -825,68 +825,7 @@ cmdq_guard(struct cmdq_item *item, const char *guard, int flags) void cmdq_print_data(struct cmdq_item *item, int parse, struct evbuffer *evb) { - struct client *c = item->client; - void *data = EVBUFFER_DATA(evb); - size_t size = EVBUFFER_LENGTH(evb); - struct window_pane *wp; - struct window_mode_entry *wme; - char *sanitized, *msg, *line; - - if (!parse) { - utf8_stravisx(&msg, data, size, - VIS_OCTAL|VIS_CSTYLE|VIS_NOSLASH); - log_debug("%s: %s", __func__, msg); - } else { - msg = EVBUFFER_DATA(evb); - if (msg[size - 1] != '\0') - evbuffer_add(evb, "", 1); - } - - if (c == NULL) - goto out; - - if (c->session == NULL || (c->flags & CLIENT_CONTROL)) { - if (~c->flags & CLIENT_UTF8) { - sanitized = utf8_sanitize(msg); - if (c->flags & CLIENT_CONTROL) - control_write(c, "%s", sanitized); - else - file_print(c, "%s\n", sanitized); - free(sanitized); - } else { - if (c->flags & CLIENT_CONTROL) - control_write(c, "%s", msg); - else - file_print(c, "%s\n", msg); - } - goto out; - } - - wp = server_client_get_pane(c); - wme = TAILQ_FIRST(&wp->modes); - if (wme == NULL || wme->mode != &window_view_mode) - window_pane_set_mode(wp, NULL, &window_view_mode, NULL, NULL); - if (parse) { - do { - line = evbuffer_readln(evb, NULL, EVBUFFER_EOL_LF); - if (line != NULL) { - window_copy_add(wp, 1, "%s", line); - free(line); - } - } while (line != NULL); - - size = EVBUFFER_LENGTH(evb); - if (size != 0) { - line = EVBUFFER_DATA(evb); - window_copy_add(wp, 1, "%.*s", (int)size, line); - } - } else - window_copy_add(wp, 0, "%s", msg); - -out: - if (!parse) - free(msg); - + server_client_print(item->client, parse, evb); } /* Show message from command. */ |