X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=usystem.c;h=743c701c8c12744bf9c02280329fab83f52fbaa2;hb=f7f09e5d0b183a416c4069f2c28f865c680045c7;hp=572b910d091a384d7a55bd9dc24d478a36cefc2c;hpb=5f43600abc12449a5af5d7d8a4f12cdd88a40c99;p=xboard.git diff --git a/usystem.c b/usystem.c index 572b910..743c701 100644 --- a/usystem.c +++ b/usystem.c @@ -519,18 +519,25 @@ DestroyChildProcess (ProcRef pr, int signalType) char * BufferCommandOutput (char *command, int size) { - ChildProc *pr; char *res = (char *) calloc(1, size); if(res) { int count; FILE *f; +#if 0 + ChildProc *pr; StartChildProcess(command, ".", (ProcRef) &pr); // run command in daughter process f = fdopen(pr->fdFrom, "r"); count = fread(res, 1, size-1, f); // read its output fclose(f); - res[count > 0 ? count : 0] = NULLCHAR; DestroyChildProcess((ProcRef) pr, 9); free(pr); +#else + f = popen(command, "r"); + if(!f) return res; + count = fread(res, 1, size-1, f); // read its output + pclose(f); +#endif + res[count > 0 ? count : 0] = NULLCHAR; } return res; // return buffer with output }