[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.24 and 1.25

version 1.24, 2019/07/09 13:19:36 version 1.25, 2019/12/12 11:39:56
Line 30 
Line 30 
 void  void
 control_write(struct client *c, const char *fmt, ...)  control_write(struct client *c, const char *fmt, ...)
 {  {
         va_list          ap;          va_list ap;
   
         va_start(ap, fmt);          va_start(ap, fmt);
         evbuffer_add_vprintf(c->stdout_data, fmt, ap);          file_vprint(c, fmt, ap);
           file_print(c, "\n");
         va_end(ap);          va_end(ap);
   
         evbuffer_add(c->stdout_data, "\n", 1);  
         server_client_push_stdout(c);  
 }  }
   
 /* Write a buffer, adding a terminal newline. Empties buffer. */  
 void  
 control_write_buffer(struct client *c, struct evbuffer *buffer)  
 {  
         evbuffer_add_buffer(c->stdout_data, buffer);  
         evbuffer_add(c->stdout_data, "\n", 1);  
         server_client_push_stdout(c);  
 }  
   
 /* Control error callback. */  /* Control error callback. */
 static enum cmd_retval  static enum cmd_retval
 control_error(struct cmdq_item *item, void *data)  control_error(struct cmdq_item *item, void *data)
Line 65 
Line 54 
 }  }
   
 /* Control input callback. Read lines and fire commands. */  /* Control input callback. Read lines and fire commands. */
 void  static void
 control_callback(struct client *c, int closed, __unused void *data)  control_callback(__unused struct client *c, __unused const char *path,
       int error, int closed, struct evbuffer *buffer, __unused void *data)
 {  {
         char                    *line;          char                    *line;
         struct cmdq_item        *item;          struct cmdq_item        *item;
         struct cmd_parse_result *pr;          struct cmd_parse_result *pr;
   
         if (closed)          if (closed || error != 0)
                 c->flags |= CLIENT_EXIT;                  c->flags |= CLIENT_EXIT;
   
         for (;;) {          for (;;) {
                 line = evbuffer_readln(c->stdin_data, NULL, EVBUFFER_EOL_LF);                  line = evbuffer_readln(buffer, NULL, EVBUFFER_EOL_LF);
                 if (line == NULL)                  if (line == NULL)
                         break;                          break;
                   log_debug("%s: %s", __func__, line);
                 if (*line == '\0') { /* empty line exit */                  if (*line == '\0') { /* empty line exit */
                         free(line);                          free(line);
                         c->flags |= CLIENT_EXIT;                          c->flags |= CLIENT_EXIT;
Line 103 
Line 94 
   
                 free(line);                  free(line);
         }          }
   }
   
   void
   control_start(struct client *c)
   {
           file_read(c, "-", control_callback, c);
   
           if (c->flags & CLIENT_CONTROLCONTROL)
                   file_print(c, "\033P1000p");
 }  }

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25