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

Diff for /src/usr.bin/tmux/server-client.c between version 1.328 and 1.329

version 1.328, 2020/04/20 09:07:55 version 1.329, 2020/04/20 13:25:36
Line 296 
Line 296 
         if (c->flags & CLIENT_TERMINAL)          if (c->flags & CLIENT_TERMINAL)
                 tty_free(&c->tty);                  tty_free(&c->tty);
         free(c->ttyname);          free(c->ttyname);
         free(c->term);          free(c->term_name);
   
         status_free(c);          status_free(c);
   
Line 1845 
Line 1845 
         datalen = imsg->hdr.len - IMSG_HEADER_SIZE;          datalen = imsg->hdr.len - IMSG_HEADER_SIZE;
   
         switch (imsg->hdr.type) {          switch (imsg->hdr.type) {
           case MSG_IDENTIFY_FEATURES:
         case MSG_IDENTIFY_FLAGS:          case MSG_IDENTIFY_FLAGS:
         case MSG_IDENTIFY_TERM:          case MSG_IDENTIFY_TERM:
         case MSG_IDENTIFY_TTYNAME:          case MSG_IDENTIFY_TTYNAME:
Line 2003 
Line 2004 
 {  {
         const char      *data, *home;          const char      *data, *home;
         size_t           datalen;          size_t           datalen;
         int              flags;          int              flags, feat;
         char            *name;          char            *name;
   
         if (c->flags & CLIENT_IDENTIFIED)          if (c->flags & CLIENT_IDENTIFIED)
Line 2013 
Line 2014 
         datalen = imsg->hdr.len - IMSG_HEADER_SIZE;          datalen = imsg->hdr.len - IMSG_HEADER_SIZE;
   
         switch (imsg->hdr.type) {          switch (imsg->hdr.type) {
           case MSG_IDENTIFY_FEATURES:
                   if (datalen != sizeof feat)
                           fatalx("bad MSG_IDENTIFY_FEATURES size");
                   memcpy(&feat, data, sizeof feat);
                   c->term_features |= feat;
                   log_debug("client %p IDENTIFY_FEATURES %s", c,
                       tty_get_features(feat));
                   break;
         case MSG_IDENTIFY_FLAGS:          case MSG_IDENTIFY_FLAGS:
                 if (datalen != sizeof flags)                  if (datalen != sizeof flags)
                         fatalx("bad MSG_IDENTIFY_FLAGS size");                          fatalx("bad MSG_IDENTIFY_FLAGS size");
Line 2023 
Line 2032 
         case MSG_IDENTIFY_TERM:          case MSG_IDENTIFY_TERM:
                 if (datalen == 0 || data[datalen - 1] != '\0')                  if (datalen == 0 || data[datalen - 1] != '\0')
                         fatalx("bad MSG_IDENTIFY_TERM string");                          fatalx("bad MSG_IDENTIFY_TERM string");
                 c->term = xstrdup(data);                  if (*data == '\0')
                           c->term_name = xstrdup("unknown");
                   else
                           c->term_name = xstrdup(data);
                 log_debug("client %p IDENTIFY_TERM %s", c, data);                  log_debug("client %p IDENTIFY_TERM %s", c, data);
                 break;                  break;
         case MSG_IDENTIFY_TTYNAME:          case MSG_IDENTIFY_TTYNAME:
Line 2084 
Line 2096 
                 control_start(c);                  control_start(c);
                 c->tty.fd = -1;                  c->tty.fd = -1;
         } else if (c->fd != -1) {          } else if (c->fd != -1) {
                 if (tty_init(&c->tty, c, c->fd, c->term) != 0) {                  if (tty_init(&c->tty, c, c->fd) != 0) {
                         close(c->fd);                          close(c->fd);
                         c->fd = -1;                          c->fd = -1;
                 } else {                  } else {
                         if (c->flags & CLIENT_UTF8)  
                                 c->tty.term_flags |= TERM_UTF8;  
                         if (c->flags & CLIENT_256COLOURS)  
                                 c->tty.term_flags |= TERM_256COLOURS;  
                         tty_resize(&c->tty);                          tty_resize(&c->tty);
                         c->flags |= CLIENT_TERMINAL;                          c->flags |= CLIENT_TERMINAL;
                 }                  }

Legend:
Removed from v.1.328  
changed lines
  Added in v.1.329