diff --git a/cmd-confirm-before.c b/cmd-confirm-before.c index 1f592ae0..72e9d87d 100644 --- a/cmd-confirm-before.c +++ b/cmd-confirm-before.c @@ -92,6 +92,7 @@ cmd_confirm_before_exec(struct cmd *self, struct cmdq_item *item) cdata->confirm_key = confirm_key[0]; else { cmdq_error(item, "invalid confirm key"); + cmd_list_free(cdata->cmdlist); free(cdata); return (CMD_RETURN_ERROR); } diff --git a/cmd-new-session.c b/cmd-new-session.c index 06082653..a3e74888 100644 --- a/cmd-new-session.c +++ b/cmd-new-session.c @@ -117,8 +117,9 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item) as = target->s; if (as != NULL) { retval = cmd_attach_session(item, as->name, - args_has(args, 'D'), args_has(args, 'X'), 0, NULL, - args_has(args, 'E'), args_get(args, 'f')); + args_has(args, 'D'), args_has(args, 'X'), 0, + args_get(args, 'c'), args_has(args, 'E'), + args_get(args, 'f')); free(newname); return (retval); } diff --git a/cmd-paste-buffer.c b/cmd-paste-buffer.c index 09bf95ac..7233b7d2 100644 --- a/cmd-paste-buffer.c +++ b/cmd-paste-buffer.c @@ -49,7 +49,7 @@ cmd_paste_buffer_paste(struct window_pane *wp, const char *buf, size_t len) char *cp; size_t n; - n = utf8_stravisx(&cp, buf, len, VIS_SAFE); + n = utf8_stravisx(&cp, buf, len, VIS_SAFE|VIS_NOSLASH); bufferevent_write(wp->event, cp, n); free(cp); } diff --git a/cmd-send-keys.c b/cmd-send-keys.c index 6c2b0998..86e7daed 100644 --- a/cmd-send-keys.c +++ b/cmd-send-keys.c @@ -168,7 +168,7 @@ cmd_send_keys_exec(struct cmd *self, struct cmdq_item *item) u_int count = args_count(args); char *cause = NULL; - if (tc->flags & CLIENT_READONLY && !args_has(args, 'X')) { + if (tc != NULL && tc->flags & CLIENT_READONLY && !args_has(args, 'X')) { cmdq_error(item, "client is read-only"); return (CMD_RETURN_ERROR); }