X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fexternaltask.cpp;h=33ffcebc4622889eaed085e371cc19fbb8a348df;hb=7c2db9e2b91da953701be233336c5bfa1f3c4af0;hp=07ad870e6c35ec398e2885211e31fbfe890f7d28;hpb=2f55d54651622c5c3d9db2b67e9efeb141ff808d;p=builder.git diff --git a/source/externaltask.cpp b/source/externaltask.cpp index 07ad870..33ffceb 100644 --- a/source/externaltask.cpp +++ b/source/externaltask.cpp @@ -1,6 +1,4 @@ #include -#include -#include #include #include #include @@ -33,16 +31,16 @@ ExternalTask::~ExternalTask() string ExternalTask::get_command() const { string cmd; - for(vector::const_iterator i=argv.begin(); i!=argv.end(); ++i) + for(const string &a: argv) { - if(i!=argv.begin()) + if(!cmd.empty()) cmd += ' '; - for(string::const_iterator j=i->begin(); j!=i->end(); ++j) + for(char c: a) { - if(*j=='"' || *j=='\'' || *j==' ' || *j=='\\' || *j=='&') + if(c=='"' || c=='\'' || c==' ' || c=='\\' || c=='&') cmd += '\\'; - cmd += *j; + cmd += c; } } @@ -73,7 +71,11 @@ void ExternalTask::start() if(stdin_action==IGNORE || stdout_action==IGNORE || stderr_action==IGNORE) { +#ifdef _WIN32 + devnull = new IO::File("nul", IO::M_RDWR); +#else devnull = new IO::File("/dev/null", IO::M_RDWR); +#endif if(stdin_action==IGNORE) process->redirect_cin(*devnull); if(stdout_action==IGNORE)