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.
This commit is contained in:
nicm 2013-10-10 12:04:38 +00:00
parent 1a49ebaa9f
commit fc54bfe6b0
2 changed files with 6 additions and 2 deletions

View File

@ -41,7 +41,6 @@ const struct cmd_entry cmd_if_shell_entry = {
"[-b] " CMD_TARGET_PANE_USAGE " shell-command command [command]", "[-b] " CMD_TARGET_PANE_USAGE " shell-command command [command]",
0, 0,
NULL, NULL,
NULL,
cmd_if_shell_exec 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_if_shell_data *cdata = cmdq1->data;
struct cmd_q *cmdq = cdata->cmdq; struct cmd_q *cmdq = cdata->cmdq;
if (cmdq1->client_exit >= 0)
cmdq->client_exit = cmdq1->client_exit;
if (!cmdq_free(cmdq) && !cdata->bflag) if (!cmdq_free(cmdq) && !cdata->bflag)
cmdq_continue(cmdq); cmdq_continue(cmdq);

View File

@ -37,7 +37,6 @@ const struct cmd_entry cmd_source_file_entry = {
"path", "path",
0, 0,
NULL, NULL,
NULL,
cmd_source_file_exec cmd_source_file_exec
}; };
@ -96,6 +95,9 @@ cmd_source_file_done(struct cmd_q *cmdq1)
{ {
struct cmd_q *cmdq = cmdq1->data; struct cmd_q *cmdq = cmdq1->data;
if (cmdq1->client_exit >= 0)
cmdq->client_exit = cmdq1->client_exit;
cmdq_free(cmdq1); cmdq_free(cmdq1);
cfg_references--; cfg_references--;