Fix show-buffer when run from inside tmux, GitHub issue 2314.

This commit is contained in:
nicm
2020-07-21 05:24:33 +00:00
parent 3b089fc69f
commit 743ab5728d
4 changed files with 30 additions and 4 deletions

View File

@ -74,11 +74,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) {
@ -94,9 +95,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;