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

Diff for /src/usr.bin/tmux/client.c between version 1.25 and 1.26

version 1.25, 2009/10/21 20:11:47 version 1.26, 2009/10/21 21:11:55
Line 36 
Line 36 
 struct imsgbuf  client_ibuf;  struct imsgbuf  client_ibuf;
 const char     *client_exitmsg;  const char     *client_exitmsg;
   
   void    client_send_identify(int);
 void    client_send_environ(void);  void    client_send_environ(void);
 void    client_write_server(enum msgtype, void *, size_t);  void    client_write_server(enum msgtype, void *, size_t);
 int     client_dispatch(void);  int     client_dispatch(void);
Line 44 
Line 45 
 struct imsgbuf *  struct imsgbuf *
 client_init(char *path, int cmdflags, int flags)  client_init(char *path, int cmdflags, int flags)
 {  {
         struct sockaddr_un              sa;          struct sockaddr_un      sa;
         struct stat                     sb;          struct stat             sb;
         struct msg_identify_data        data;          size_t                  size;
         struct winsize                  ws;          int                     fd, mode;
         size_t                          size;          char                    rpathbuf[MAXPATHLEN];
         int                             fd, fd2, mode;  
         char                           *term;  
         char                            rpathbuf[MAXPATHLEN];  
   
         if (realpath(path, rpathbuf) == NULL)          if (realpath(path, rpathbuf) == NULL)
                 strlcpy(rpathbuf, path, sizeof rpathbuf);                  strlcpy(rpathbuf, path, sizeof rpathbuf);
Line 103 
Line 101 
   
         if (cmdflags & CMD_SENDENVIRON)          if (cmdflags & CMD_SENDENVIRON)
                 client_send_environ();                  client_send_environ();
         if (isatty(STDIN_FILENO)) {          if (isatty(STDIN_FILENO))
                 if (ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) == -1)                  client_send_identify(flags);
                         fatal("ioctl(TIOCGWINSZ)");  
                 data.flags = flags;  
   
                 if (getcwd(data.cwd, sizeof data.cwd) == NULL)  
                         *data.cwd = '\0';  
   
                 *data.term = '\0';  
                 if ((term = getenv("TERM")) != NULL) {  
                         if (strlcpy(data.term,  
                             term, sizeof data.term) >= sizeof data.term)  
                                 *data.term = '\0';  
                 }  
   
                 if ((fd2 = dup(STDIN_FILENO)) == -1)  
                         fatal("dup failed");  
                 imsg_compose(&client_ibuf, MSG_IDENTIFY,  
                     PROTOCOL_VERSION, -1, fd2, &data, sizeof data);  
         }  
   
         return (&client_ibuf);          return (&client_ibuf);
   
 start_failed:  start_failed:
Line 136 
Line 116 
 }  }
   
 void  void
   client_send_identify(int flags)
   {
           struct msg_identify_data        data;
           struct winsize                  ws;
           char                           *term;
           int                             fd;
   
           if (ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) == -1)
                   fatal("ioctl(TIOCGWINSZ)");
           data.flags = flags;
   
           if (getcwd(data.cwd, sizeof data.cwd) == NULL)
                   *data.cwd = '\0';
   
           term = getenv("TERM");
           if (term == NULL ||
               strlcpy(data.term, term, sizeof data.term) >= sizeof data.term)
                   *data.term = '\0';
   
           if ((fd = dup(STDIN_FILENO)) == -1)
                   fatal("dup failed");
           imsg_compose(&client_ibuf,
               MSG_IDENTIFY, PROTOCOL_VERSION, -1, fd, &data, sizeof data);
   }
   
   void
 client_send_environ(void)  client_send_environ(void)
 {  {
         char                  **var;  
         struct msg_environ_data data;          struct msg_environ_data data;
           char                  **var;
   
         for (var = environ; *var != NULL; var++) {          for (var = environ; *var != NULL; var++) {
                 if (strlcpy(data.var, *var, sizeof data.var) >= sizeof data.var)                  if (strlcpy(data.var, *var, sizeof data.var) >= sizeof data.var)

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