diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2013-03-17 23:45:19 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2013-03-17 23:45:19 +0000 |
commit | f5de847a0c8be02a16b06e2cae366c2edf539d10 (patch) | |
tree | f4e7d0eeca657405acb435296214033f0be9b9d4 /cmd-queue.c | |
parent | b5516771d30536a7ee931a8331929bffd2103796 (diff) | |
parent | 6bdc947f6b8616e45ed0cf742ad143d138d3d6e2 (diff) | |
download | rtmux-f5de847a0c8be02a16b06e2cae366c2edf539d10.tar.gz rtmux-f5de847a0c8be02a16b06e2cae366c2edf539d10.tar.bz2 rtmux-f5de847a0c8be02a16b06e2cae366c2edf539d10.zip |
Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code
Diffstat (limited to 'cmd-queue.c')
-rw-r--r-- | cmd-queue.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/cmd-queue.c b/cmd-queue.c index 17992a37..6ea6f468 100644 --- a/cmd-queue.c +++ b/cmd-queue.c @@ -152,19 +152,20 @@ cmdq_error(struct cmd_q *cmdq, const char *fmt, ...) } /* Print a guard line. */ -void +int cmdq_guard(struct cmd_q *cmdq, const char *guard) { struct client *c = cmdq->client; if (c == NULL || c->session == NULL) - return; + return 0; if (!(c->flags & CLIENT_CONTROL)) - return; + return 0; evbuffer_add_printf(c->stdout_data, "%%%s %ld %u\n", guard, (long) cmdq->time, cmdq->number); server_push_stdout(c); + return 1; } /* Add command list to queue and begin processing if needed. */ @@ -197,7 +198,7 @@ cmdq_continue(struct cmd_q *cmdq) { struct cmd_q_item *next; enum cmd_retval retval; - int empty; + int empty, guard; char s[1024]; notify_disable(); @@ -223,12 +224,14 @@ cmdq_continue(struct cmd_q *cmdq) cmdq->time = time(NULL); cmdq->number++; - cmdq_guard(cmdq, "begin"); + guard = cmdq_guard(cmdq, "begin"); retval = cmdq->cmd->entry->exec(cmdq->cmd, cmdq); - if (retval == CMD_RETURN_ERROR) - cmdq_guard(cmdq, "error"); - else - cmdq_guard(cmdq, "end"); + if (guard) { + if (retval == CMD_RETURN_ERROR) + cmdq_guard(cmdq, "error"); + else + cmdq_guard(cmdq, "end"); + } if (retval == CMD_RETURN_ERROR) break; |