[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.37 and 1.38

version 1.37, 2015/10/28 09:51:55 version 1.38, 2015/10/31 08:13:58
Line 41 
Line 41 
   
 /* Start a job running, if it isn't already. */  /* Start a job running, if it isn't already. */
 struct job *  struct job *
 job_run(const char *cmd, struct session *s, int cwd,  job_run(const char *cmd, struct session *s, const char *cwd,
     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];
           const char      *home;
   
         if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, out) != 0)          if (socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, out) != 0)
                 return (NULL);                  return (NULL);
Line 67 
Line 68 
         case 0:         /* child */          case 0:         /* child */
                 clear_signals(1);                  clear_signals(1);
   
                 if (cwd != -1 && fchdir(cwd) != 0)                  if (cwd == NULL || chdir(cwd) != 0) {
                         chdir("/");                          if ((home = find_home()) == NULL || chdir(home) != 0)
                                   chdir("/");
                   }
   
                 environ_push(env);                  environ_push(env);
                 environ_free(env);                  environ_free(env);

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