X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmisc.cpp;h=0d7a13de81931dcfb2e5b7e82229d32c9711d5a7;hb=5d4bc56c55a3928d0a24f18d1ab06f243d39e0a7;hp=35953a74efb00b4a1ad1e1979469eecd74427c72;hpb=74266a6e650f019063cdcd1c9a7bd26d8f99041b;p=builder.git diff --git a/source/misc.cpp b/source/misc.cpp index 35953a7..0d7a13d 100644 --- a/source/misc.cpp +++ b/source/misc.cpp @@ -1,6 +1,5 @@ #include #include -#include #include "misc.h" using namespace std; @@ -21,12 +20,16 @@ string run_command(const StringList &argv) if(pid==0) { char *argv_[argv.size()+1]; - for(CountingIterator i=argv.begin(); i!=argv.end(); ++i) - argv_[i.count()]=strdup(i->c_str()); - argv_[argv.size()]=0; + + unsigned j=0; + for(StringList::const_iterator i=argv.begin(); i!=argv.end(); ++i) + argv_[j++]=strdup(i->c_str()); + argv_[j]=0; + close(pfd[0]); dup2(pfd[1], 1); dup2(pfd[1], 2); + execvp(argv_[0], argv_); ::exit(1); } @@ -48,7 +51,7 @@ string run_command(const StringList &argv) result.append(buf, len); } } - + return result; }