=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-queue.c,v retrieving revision 1.113 retrieving revision 1.114 diff -u -r1.113 -r1.114 --- src/usr.bin/tmux/cmd-queue.c 2023/01/03 11:43:24 1.113 +++ src/usr.bin/tmux/cmd-queue.c 2023/02/05 21:15:32 1.114 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-queue.c,v 1.113 2023/01/03 11:43:24 nicm Exp $ */ +/* $OpenBSD: cmd-queue.c,v 1.114 2023/02/05 21:15:32 nicm Exp $ */ /* * Copyright (c) 2013 Nicholas Marriott @@ -826,68 +826,7 @@ 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. */