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

Diff for /src/usr.bin/tmux/tmux.c between version 1.102 and 1.103

version 1.102, 2011/01/12 22:23:58 version 1.103, 2011/01/23 11:03:43
Line 48 
Line 48 
 char             socket_path[MAXPATHLEN];  char             socket_path[MAXPATHLEN];
 int              login_shell;  int              login_shell;
 char            *environ_path;  char            *environ_path;
 pid_t            environ_pid;  pid_t            environ_pid = -1;
 u_int            environ_idx;  int              environ_idx = -1;
   
 __dead void      usage(void);  __dead void      usage(void);
 void             parseenvironment(void);  void             parseenvironment(void);
Line 125 
Line 125 
 void  void
 parseenvironment(void)  parseenvironment(void)
 {  {
         char            *env, *path_pid, *pid_idx, buf[256];          char    *env, path[256];
         size_t           len;          long     pid;
         const char      *errstr;          int      idx;
         long long        ll;  
   
         environ_pid = -1;  
         if ((env = getenv("TMUX")) == NULL)          if ((env = getenv("TMUX")) == NULL)
                 return;                  return;
   
         if ((path_pid = strchr(env, ',')) == NULL || path_pid == env)          if (sscanf(env, "%255s,%ld,%d", path, &pid, &idx) != 3)
                 return;                  return;
         if ((pid_idx = strchr(path_pid + 1, ',')) == NULL)          environ_path = xstrdup(path);
                 return;          environ_pid = pid;
         if ((pid_idx == path_pid + 1 || pid_idx[1] == '\0'))          environ_idx = idx;
                 return;  
   
         /* path */  
         len = path_pid - env;  
         environ_path = xmalloc(len + 1);  
         memcpy(environ_path, env, len);  
         environ_path[len] = '\0';  
   
         /* pid */  
         len = pid_idx - path_pid - 1;  
         if (len > (sizeof buf) - 1)  
                 return;  
         memcpy(buf, path_pid + 1, len);  
         buf[len] = '\0';  
   
         ll = strtonum(buf, 0, LONG_MAX, &errstr);  
         if (errstr != NULL)  
                 return;  
         environ_pid = ll;  
   
         /* idx */  
         ll = strtonum(pid_idx + 1, 0, UINT_MAX, &errstr);  
         if (errstr != NULL)  
                 return;  
         environ_idx = ll;  
 }  }
   
 char *  char *

Legend:
Removed from v.1.102  
changed lines
  Added in v.1.103