equal
deleted
inserted
replaced
91 |
91 |
92 if(!cmd) |
92 if(!cmd) |
93 return; |
93 return; |
94 if(fork() == 0) { |
94 if(fork() == 0) { |
95 if(fork() == 0) { |
95 if(fork() == 0) { |
96 setsid(); |
|
97 if(dpy) |
96 if(dpy) |
98 close(ConnectionNumber(dpy)); |
97 close(ConnectionNumber(dpy)); |
99 execlp(shell, "shell", "-c", cmd, NULL); |
98 setsid(); |
100 fprintf(stderr, "gridwm: execvp %s", cmd); |
99 fprintf(stderr, "gridwm: execlp %s %s -c %s", shell, shell, cmd); |
|
100 execlp(shell, shell, "-c", cmd, NULL); |
|
101 fprintf(stderr, "gridwm: execlp %s", cmd); |
101 perror(" failed"); |
102 perror(" failed"); |
102 } |
103 } |
103 exit (0); |
104 exit (0); |
104 } |
105 } |
105 wait(0); |
106 wait(0); |
121 perror("pipe"); |
122 perror("pipe"); |
122 exit(1); |
123 exit(1); |
123 } |
124 } |
124 |
125 |
125 if(fork() == 0) { |
126 if(fork() == 0) { |
126 setsid(); |
|
127 if(dpy) |
127 if(dpy) |
128 close(ConnectionNumber(dpy)); |
128 close(ConnectionNumber(dpy)); |
|
129 setsid(); |
129 dup2(pfd[1], STDOUT_FILENO); |
130 dup2(pfd[1], STDOUT_FILENO); |
130 close(pfd[0]); |
131 close(pfd[0]); |
131 close(pfd[1]); |
132 close(pfd[1]); |
132 execlp(shell, "shell", "-c", cmd, NULL); |
133 execlp(shell, shell, "-c", cmd, NULL); |
133 fprintf(stderr, "gridwm: execvp %s", cmd); |
134 fprintf(stderr, "gridwm: execlp %s", cmd); |
134 perror(" failed"); |
135 perror(" failed"); |
135 } |
136 } |
136 else { |
137 else { |
137 n = 0; |
138 n = 0; |
138 close(pfd[1]); |
139 close(pfd[1]); |