diff options
author | Thomas Adam <thomas@xteddy.org> | 2020-07-21 08:01:19 +0100 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2020-07-21 08:01:19 +0100 |
commit | 90de0c1a9b044d1c180f3a10399f5372e7a434ab (patch) | |
tree | 1cd183948da7a6b68eb972037979d7b9d9a46711 /cmd-save-buffer.c | |
parent | 70a674dde1346ec9317a71afb8751aead355e40e (diff) | |
parent | 743ab5728da1ce950a3782d5bc08831f61c5d744 (diff) | |
download | rtmux-90de0c1a9b044d1c180f3a10399f5372e7a434ab.tar.gz rtmux-90de0c1a9b044d1c180f3a10399f5372e7a434ab.tar.bz2 rtmux-90de0c1a9b044d1c180f3a10399f5372e7a434ab.zip |
Merge branch 'obsd-master'
Diffstat (limited to 'cmd-save-buffer.c')
-rw-r--r-- | cmd-save-buffer.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cmd-save-buffer.c b/cmd-save-buffer.c index 656a89e1..ef02c202 100644 --- a/cmd-save-buffer.c +++ b/cmd-save-buffer.c @@ -73,11 +73,12 @@ static enum cmd_retval cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item) { struct args *args = cmd_get_args(self); + struct client *c = cmdq_get_client(item); struct paste_buffer *pb; int flags; const char *bufname = args_get(args, 'b'), *bufdata; size_t bufsize; - char *path; + char *path, *tmp; if (bufname == NULL) { if ((pb = paste_get_top(NULL)) == NULL) { @@ -93,9 +94,16 @@ cmd_save_buffer_exec(struct cmd *self, struct cmdq_item *item) } bufdata = paste_buffer_data(pb, &bufsize); - if (cmd_get_entry(self) == &cmd_show_buffer_entry) + if (cmd_get_entry(self) == &cmd_show_buffer_entry) { + if (c->session != NULL || (c->flags & CLIENT_CONTROL)) { + utf8_stravisx(&tmp, bufdata, bufsize, + VIS_OCTAL|VIS_CSTYLE|VIS_TAB); + cmdq_print(item, "%s", tmp); + free(tmp); + return (CMD_RETURN_NORMAL); + } path = xstrdup("-"); - else + } else path = format_single_from_target(item, args->argv[0]); if (args_has(args, 'a')) flags = O_APPEND; |