aboutsummaryrefslogtreecommitdiff
path: root/cmd-queue.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2013-03-17 23:45:19 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2013-03-17 23:45:19 +0000
commitf5de847a0c8be02a16b06e2cae366c2edf539d10 (patch)
treef4e7d0eeca657405acb435296214033f0be9b9d4 /cmd-queue.c
parentb5516771d30536a7ee931a8331929bffd2103796 (diff)
parent6bdc947f6b8616e45ed0cf742ad143d138d3d6e2 (diff)
downloadrtmux-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.c21
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;