pike.git / NT / tools / lib.pike

version» Context lines:

pike.git/NT/tools/lib.pike:41:    string tmp=getcwd();    string mnt=getenv("NTMOUNT");    if(mnt && strlen(mnt)) tmp=replace(tmp,mnt,"");    cmd=({getenv("NTDRIVE")+replace(tmp,"/","\\")})+cmd;    f->write(sprintf("%4c",sizeof(cmd)));    for(int e=0;e<sizeof(cmd);e++)    f->write(sprintf("%4c%s",strlen(cmd[e]),cmd[e]));    return f;   }    - int silent_do_cmd(string *cmd, mixed|void filter) + int silent_do_cmd(string *cmd, mixed|void filter, int|void silent)   {    object(Stdio.File) f=low_do_cmd(cmd);       handle_input(f);    string ret="";    while(1)    {    string s;    sscanf(f->read(4),"%4c",int len);    if(!len) break; -  write(s=f->read(len)); +  s=f->read(len); +  if(!silent) write(s);    ret+=s;    }    if(filter) filter(ret);    sscanf(f->read(4),"%4c",int code);    f->close("r");    f->close("w");    destruct(f);    return code;   }    -  + string tmp; +  + string popen_cmd(string *cmd) + { +  tmp=""; +  silent_do_cmd(cmd,lambda(string x) { tmp=x; }, 1); +  return tmp; + } +    string getntenv(string var)   {    string s="";    object(Stdio.File) f=low_do_cmd( ({"getenv",var}) );       while(1)    {    sscanf(f->read(4),"%4c", int len);    if(!len) break;    s+=f->read(len);