[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.38 and 1.39

version 1.38, 2016/10/11 13:21:59 version 1.39, 2016/10/13 10:01:49
Line 182 
Line 182 
                 item->mouse.valid = 0;                  item->mouse.valid = 0;
 }  }
   
   /* Find hooks list. */
   static struct hooks *
   cmdq_get_hooks(struct cmd_q *cmdq)
   {
           struct session  *s;
   
           s = NULL;
           if (cmdq->state.tflag.s != NULL)
                   s = cmdq->state.tflag.s;
           else if (cmdq->state.sflag.s != NULL)
                   s = cmdq->state.sflag.s;
           else if (cmdq->state.c != NULL)
                   s = cmdq->state.c->session;
           if (s != NULL)
                   return (s->hooks);
           return (global_hooks);
   }
   
 /* Process one command. */  /* Process one command. */
 static enum cmd_retval  static enum cmd_retval
 cmdq_continue_one(struct cmd_q *cmdq)  cmdq_continue_one(struct cmd_q *cmdq)
 {  {
         struct cmd      *cmd = cmdq->cmd;          struct cmd      *cmd = cmdq->cmd;
         const char      *name = cmd->entry->name;          const char      *name = cmd->entry->name;
         struct session  *s;  
         struct hooks    *hooks;          struct hooks    *hooks;
         enum cmd_retval  retval;          enum cmd_retval  retval;
         char            *tmp;          char            *tmp;
Line 208 
Line 225 
                 goto error;                  goto error;
   
         if (~cmdq->flags & CMD_Q_NOHOOKS) {          if (~cmdq->flags & CMD_Q_NOHOOKS) {
                 s = NULL;                  hooks = cmdq_get_hooks(cmdq);
                 if (cmdq->state.tflag.s != NULL)  
                         s = cmdq->state.tflag.s;  
                 else if (cmdq->state.sflag.s != NULL)  
                         s = cmdq->state.sflag.s;  
                 else if (cmdq->state.c != NULL)  
                         s = cmdq->state.c->session;  
                 if (s != NULL)  
                         hooks = s->hooks;  
                 else  
                         hooks = global_hooks;  
   
                 if (~cmdq->flags & CMD_Q_REENTRY) {                  if (~cmdq->flags & CMD_Q_REENTRY) {
                         cmdq->flags |= CMD_Q_REENTRY;                          cmdq->flags |= CMD_Q_REENTRY;
                         if (hooks_wait(hooks, cmdq, NULL,                          if (hooks_wait(hooks, cmdq, NULL,
Line 236 
Line 242 
         if (retval == CMD_RETURN_ERROR)          if (retval == CMD_RETURN_ERROR)
                 goto error;                  goto error;
   
         if (hooks != NULL && hooks_wait(hooks, cmdq, NULL,          if (hooks != NULL) {
             "after-%s", name) == 0)                  if (cmd_prepare_state(cmd, cmdq, cmdq->parent) != 0)
                 retval = CMD_RETURN_WAIT;                          goto error;
                   hooks = cmdq_get_hooks(cmdq);
                   if (hooks_wait(hooks, cmdq, NULL, "after-%s", name) == 0)
                           retval = CMD_RETURN_WAIT;
           }
         cmdq_guard(cmdq, "end", flags);          cmdq_guard(cmdq, "end", flags);
   
         return (retval);          return (retval);
Line 260 
Line 270 
   
         cmdq->references++;          cmdq->references++;
         notify_disable();          notify_disable();
   
           cmd_find_clear_state(&cmdq->current, NULL, 0);
   
         log_debug("continuing cmdq %p: flags %#x, client %p", cmdq, cmdq->flags,          log_debug("continuing cmdq %p: flags %#x, client %p", cmdq, cmdq->flags,
             c);              c);

Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39