=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-queue.c,v retrieving revision 1.113 retrieving revision 1.114 diff -c -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 **** ! /* $OpenBSD: cmd-queue.c,v 1.113 2023/01/03 11:43:24 nicm Exp $ */ /* * Copyright (c) 2013 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-queue.c,v 1.114 2023/02/05 21:15:32 nicm Exp $ */ /* * Copyright (c) 2013 Nicholas Marriott *************** *** 826,893 **** 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); ! } /* Show message from command. */ --- 826,832 ---- void cmdq_print_data(struct cmdq_item *item, int parse, struct evbuffer *evb) { ! server_client_print(item->client, parse, evb); } /* Show message from command. */