diff options
author | nicm <nicm> | 2013-10-10 12:04:38 +0000 |
---|---|---|
committer | nicm <nicm> | 2013-10-10 12:04:38 +0000 |
commit | fc54bfe6b0b5a9053fe967e87f55fbe684abc679 (patch) | |
tree | 514d62aa50ecf649259d9d32361dfc1b5ec1b671 | |
parent | 1a49ebaa9f5e5b90ebb27eb5acd0ff5653e34a46 (diff) | |
download | rtmux-fc54bfe6b0b5a9053fe967e87f55fbe684abc679.tar.gz rtmux-fc54bfe6b0b5a9053fe967e87f55fbe684abc679.tar.bz2 rtmux-fc54bfe6b0b5a9053fe967e87f55fbe684abc679.zip |
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.
-rw-r--r-- | cmd-if-shell.c | 4 | ||||
-rw-r--r-- | 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--; |