192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
-
+
|
close(pout[0]);
close(pout[1]);
close(1);
fd = dup(pin[1]);
if( fd!=1 ) fossil_panic("popen() failed to open file descriptor 1");
close(pin[0]);
close(pin[1]);
close(2); dup(1); /* Redirect stderr into the stdout pipe */
close(2); (void)dup(1); /* Redirect stderr into the stdout pipe */
if( bDirect ){
execl(zCmd, zCmd, (char*)0);
}else{
execl("/bin/sh", "/bin/sh", "-c", zCmd, (char*)0);
}
return 1;
}else{
|