[BACK]Return to cmd-queue.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/cmd-queue.c between version 1.3 and 1.4

version 1.3, 2013/03/25 10:06:13 version 1.4, 2013/03/25 11:35:55
Line 151 
Line 151 
         free(msg);          free(msg);
 }  }
   
   /* Print a guard line. */
   void
   cmdq_guard(struct cmd_q *cmdq, const char *guard)
   {
           struct client   *c = cmdq->client;
   
           if (c == NULL || c->session == NULL)
                   return;
           if (!(c->flags & CLIENT_CONTROL))
                   return;
   
           evbuffer_add_printf(c->stdout_data, "%%%s %ld %u\n", guard,
               cmdq->time, cmdq->number);
           server_push_stdout(c);
   }
   
 /* Add command list to queue and begin processing if needed. */  /* Add command list to queue and begin processing if needed. */
 void  void
 cmdq_run(struct cmd_q *cmdq, struct cmd_list *cmdlist)  cmdq_run(struct cmd_q *cmdq, struct cmd_list *cmdlist)
Line 179 
Line 195 
 int  int
 cmdq_continue(struct cmd_q *cmdq)  cmdq_continue(struct cmd_q *cmdq)
 {  {
         struct client           *c = cmdq->client;  
         struct cmd_q_item       *next;          struct cmd_q_item       *next;
         enum cmd_retval          retval;          enum cmd_retval          retval;
         int                      guards, empty;          int                      empty;
         char                     s[1024];          char                     s[1024];
   
         guards = 0;  
         if (c != NULL && c->session != NULL)  
                 guards = c->flags & CLIENT_CONTROL;  
   
         notify_disable();          notify_disable();
   
         empty = TAILQ_EMPTY(&cmdq->queue);          empty = TAILQ_EMPTY(&cmdq->queue);
Line 209 
Line 220 
                         log_debug("cmdq %p: %s (client %d)", cmdq, s,                          log_debug("cmdq %p: %s (client %d)", cmdq, s,
                             cmdq->client != NULL ? cmdq->client->ibuf.fd : -1);                              cmdq->client != NULL ? cmdq->client->ibuf.fd : -1);
   
                         if (guards)                          cmdq->time = time(NULL);
                                 cmdq_print(cmdq, "%%begin");                          cmdq->number++;
   
                           cmdq_guard(cmdq, "begin");
                         retval = cmdq->cmd->entry->exec(cmdq->cmd, cmdq);                          retval = cmdq->cmd->entry->exec(cmdq->cmd, cmdq);
                         if (guards) {                          if (retval == CMD_RETURN_ERROR)
                                 if (retval == CMD_RETURN_ERROR)                                  cmdq_guard(cmdq, "error");
                                         cmdq_print(cmdq, "%%error");                          else
                                 else                                  cmdq_guard(cmdq, "end");
                                         cmdq_print(cmdq, "%%end");  
                         }  
   
                         if (retval == CMD_RETURN_ERROR)                          if (retval == CMD_RETURN_ERROR)
                                 break;                                  break;

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4