X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fcore%2Fwindows%2Fprocess.cpp;h=6123fa7aad6ab73c67beae3df08f3141cfbcfae8;hp=7b1efd693aff45fce41594914b4d16dc2264de70;hb=bff9d86e0e0ccf23ce4c34024fa2fc33e1f8ff68;hpb=ea60f3548d4769c356b796cb27cd690cdfe4b6d9 diff --git a/source/core/windows/process.cpp b/source/core/windows/process.cpp index 7b1efd6..6123fa7 100644 --- a/source/core/windows/process.cpp +++ b/source/core/windows/process.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include "process.h" #include "process_private.h" @@ -56,10 +57,7 @@ void Process::execute(const string &command, bool path_search, const Arguments & { string cmdline = quote_argument(command); for(Arguments::const_iterator i=args.begin(); i!=args.end(); ++i) - { - cmdline += ' '; - cmdline += quote_argument(*i); - } + append(cmdline, " ", quote_argument(*i)); STARTUPINFO startup; startup.cb = sizeof(STARTUPINFO); @@ -82,7 +80,7 @@ void Process::execute(const string &command, bool path_search, const Arguments & } const char *cmdptr = (path_search ? 0 : command.c_str()); const char *wd = (work_dir.empty() ? 0 : work_dir.c_str()); - if(!CreateProcess(cmdptr, const_cast(cmdline.c_str()), 0, 0, false, 0, 0, wd, &startup, &priv->info)) + if(!CreateProcess(cmdptr, const_cast(cmdline.c_str()), 0, 0, true, 0, 0, wd, &startup, &priv->info)) throw system_error("CreateProcess"); // XXX Should we close the duplicated handles? What if CreateProcess fails?