From fc54bfe6b0b5a9053fe967e87f55fbe684abc679 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 10 Oct 2013 12:04:38 +0000 Subject: [PATCH] Make cmdq->client_exit a tristate (-1 means "not set") so that if explicitly set it can be copied from child to parent cmdq by if-shell and source-file. This fixes using attach or new. From Chris Johnsen. --- cmd-if-shell.c | 4 +++- cmd-source-file.c | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd-if-shell.c b/cmd-if-shell.c index e810b0fc..4193944c 100644 --- a/cmd-if-shell.c +++ b/cmd-if-shell.c @@ -41,7 +41,6 @@ const struct cmd_entry cmd_if_shell_entry = { "[-b] " CMD_TARGET_PANE_USAGE " shell-command command [command]", 0, NULL, - NULL, cmd_if_shell_exec }; @@ -148,6 +147,9 @@ cmd_if_shell_done(struct cmd_q *cmdq1) struct cmd_if_shell_data *cdata = cmdq1->data; struct cmd_q *cmdq = cdata->cmdq; + if (cmdq1->client_exit >= 0) + cmdq->client_exit = cmdq1->client_exit; + if (!cmdq_free(cmdq) && !cdata->bflag) cmdq_continue(cmdq); diff --git a/cmd-source-file.c b/cmd-source-file.c index f50efbe3..8fcfe2f3 100644 --- a/cmd-source-file.c +++ b/cmd-source-file.c @@ -37,7 +37,6 @@ const struct cmd_entry cmd_source_file_entry = { "path", 0, NULL, - NULL, cmd_source_file_exec }; @@ -96,6 +95,9 @@ cmd_source_file_done(struct cmd_q *cmdq1) { struct cmd_q *cmdq = cmdq1->data; + if (cmdq1->client_exit >= 0) + cmdq->client_exit = cmdq1->client_exit; + cmdq_free(cmdq1); cfg_references--;