diff --git a/NT/tools/lib.pike b/NT/tools/lib.pike index 238b0c5cc76af4cdb30cc3ef58d46bed9e8da4f1..ae47ec08465bed940b1473ddd2ee1d5acc2f7b79 100644 --- a/NT/tools/lib.pike +++ b/NT/tools/lib.pike @@ -84,14 +84,19 @@ int silent_do_cmd(string *cmd, mixed|void filter, int|void silent) for(int e=0;e<sizeof(cmd);e++) f->write(sprintf("%4c%s",strlen(cmd[e]),cmd[e])); - if(f->proxy) - f->proxy(Stdio.File("stdin")); - else +// if(f->proxy) +// f->proxy(Stdio.File("stdin")); +// else +// werror("FNORD\n"); thread_create(lambda(object f) { object stdin=Stdio.File("stdin"); while(string s=stdin->read(1000,1)) + { + if(!strlen(s)) break; f->write(s); + } + f->close("w"); },f); while(1) @@ -107,7 +112,8 @@ int silent_do_cmd(string *cmd, mixed|void filter, int|void silent) if(filter) filter(ret); sscanf(f->read(4),"%4c",int code); f->close("r"); - f->close("w"); +// f->close("w"); +// werror("Closing stdout.\n"); destruct(f); return code; }