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:
Nicholas Marriott
2013-10-01 23:31:09 +01:00
parent d0fa48db1e
commit 7be152412e
3 changed files with 8 additions and 2 deletions

View File

@ -35,7 +35,7 @@ cmdq_new(struct client *c)
cmdq->dead = 0;
cmdq->client = c;
cmdq->client_exit = 0;
cmdq->client_exit = -1;
TAILQ_INIT(&cmdq->queue);
cmdq->item = NULL;
@ -259,7 +259,7 @@ cmdq_continue(struct cmd_q *cmdq)
} while (cmdq->item != NULL);
empty:
if (cmdq->client_exit)
if (cmdq->client_exit > 0)
cmdq->client->flags |= CLIENT_EXIT;
if (cmdq->emptyfn != NULL)
cmdq->emptyfn(cmdq); /* may free cmdq */