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

Diff for /src/usr.bin/tmux/control.c between version 1.17 and 1.18

version 1.17, 2016/01/19 15:59:12 version 1.18, 2016/10/16 17:55:14
Line 49 
Line 49 
         server_client_push_stdout(c);          server_client_push_stdout(c);
 }  }
   
   /* Control error callback. */
   static enum cmd_retval
   control_error(struct cmd_q *cmdq, void *data)
   {
           struct client   *c = cmdq->client;
           char            *error = data;
   
           cmdq_guard(cmdq, "begin", 1);
           control_write(c, "parse error: %s", error);
           cmdq_guard(cmdq, "error", 1);
   
           free(error);
           return (CMD_RETURN_NORMAL);
   }
   
 /* Control input callback. Read lines and fire commands. */  /* Control input callback. Read lines and fire commands. */
 void  void
 control_callback(struct client *c, int closed, __unused void *data)  control_callback(struct client *c, int closed, __unused void *data)
Line 56 
Line 71 
         char            *line, *cause;          char            *line, *cause;
         struct cmd_list *cmdlist;          struct cmd_list *cmdlist;
         struct cmd      *cmd;          struct cmd      *cmd;
           struct cmd_q    *cmdq;
   
         if (closed)          if (closed)
                 c->flags |= CLIENT_EXIT;                  c->flags |= CLIENT_EXIT;
Line 70 
Line 86 
                 }                  }
   
                 if (cmd_string_parse(line, &cmdlist, NULL, 0, &cause) != 0) {                  if (cmd_string_parse(line, &cmdlist, NULL, 0, &cause) != 0) {
                         c->cmdq->time = time(NULL);                          cmdq = cmdq_get_callback(control_error, cause);
                         c->cmdq->number++;                          cmdq_append(c, cmdq);
   
                         cmdq_guard(c->cmdq, "begin", 1);  
                         control_write(c, "parse error: %s", cause);  
                         cmdq_guard(c->cmdq, "error", 1);  
   
                         free(cause);  
                 } else {                  } else {
                         TAILQ_FOREACH(cmd, &cmdlist->list, qentry)                          TAILQ_FOREACH(cmd, &cmdlist->list, qentry)
                                 cmd->flags |= CMD_CONTROL;                                  cmd->flags |= CMD_CONTROL;
                         cmdq_run(c->cmdq, cmdlist, NULL);                          cmdq = cmdq_get_command(cmdlist, NULL, NULL, 0);
                           cmdq_append(c, cmdq);
                         cmd_list_free(cmdlist);                          cmd_list_free(cmdlist);
                 }                  }
   

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18