X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fexternaltask.cpp;h=16d1df096dd4a23eee3f60b2e54a8cf289de9884;hb=8a98d59b2b4954f51eb3f649d3675af976154de6;hp=f7ab199b417121712ef3d9a408a58565cc6961d8;hpb=a5a1ecb806ec2dec26701b931b8d2d6cbe7f4928;p=builder.git diff --git a/source/externaltask.cpp b/source/externaltask.cpp index f7ab199..16d1df0 100644 --- a/source/externaltask.cpp +++ b/source/externaltask.cpp @@ -1,6 +1,4 @@ #include -#include -#include #include #include #include @@ -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) @@ -130,7 +132,7 @@ Task::Status ExternalTask::do_wait(bool block) { while(process) { - if(process->wait(!capture_pipe)) + if(process->wait(block && !capture_pipe)) { exit_code = process->get_exit_code(); delete process;