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

Diff for /src/usr.bin/tmux/job.c between version 1.36 and 1.37

version 1.36, 2015/06/17 16:44:49 version 1.37, 2015/10/28 09:51:55
Line 45 
Line 45 
     void (*callbackfn)(struct job *), void (*freefn)(void *), void *data)      void (*callbackfn)(struct job *), void (*freefn)(void *), void *data)
 {  {
         struct job      *job;          struct job      *job;
         struct environ   env;          struct environ  *env;
         pid_t            pid;          pid_t            pid;
         int              nullfd, out[2];          int              nullfd, out[2];
   
         if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, out) != 0)          if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, out) != 0)
                 return (NULL);                  return (NULL);
   
         environ_init(&env);          env = environ_create();
         environ_copy(&global_environ, &env);          environ_copy(global_environ, env);
         if (s != NULL)          if (s != NULL)
                 environ_copy(&s->environ, &env);                  environ_copy(s->environ, env);
         server_fill_environ(s, &env);          server_fill_environ(s, env);
   
         switch (pid = fork()) {          switch (pid = fork()) {
         case -1:          case -1:
                 environ_free(&env);                  environ_free(env);
                 close(out[0]);                  close(out[0]);
                 close(out[1]);                  close(out[1]);
                 return (NULL);                  return (NULL);
Line 70 
Line 70 
                 if (cwd != -1 && fchdir(cwd) != 0)                  if (cwd != -1 && fchdir(cwd) != 0)
                         chdir("/");                          chdir("/");
   
                 environ_push(&env);                  environ_push(env);
                 environ_free(&env);                  environ_free(env);
   
                 if (dup2(out[1], STDIN_FILENO) == -1)                  if (dup2(out[1], STDIN_FILENO) == -1)
                         fatal("dup2 failed");                          fatal("dup2 failed");
Line 96 
Line 96 
         }          }
   
         /* parent */          /* parent */
         environ_free(&env);          environ_free(env);
         close(out[1]);          close(out[1]);
   
         job = xmalloc(sizeof *job);          job = xmalloc(sizeof *job);

Legend:
Removed from v.1.36  
changed lines
  Added in v.1.37