# # # patch "win32/process.cc" # from [ee730c09564abfbe59c02bf647d5b33dc5c5f865] # to [2ee5caad8eba13aef76de3d2f74323b06145b292] # ============================================================ --- win32/process.cc ee730c09564abfbe59c02bf647d5b33dc5c5f865 +++ win32/process.cc 2ee5caad8eba13aef76de3d2f74323b06145b292 @@ -78,10 +78,10 @@ munge_argument(string arg) { string result; string::size_type dos_cmd = arg.find(':'); - if (dos_cmd != string::size_type) + if (dos_cmd != string::npos) { result += arg.substr(0, dos_cmd + 1); - result += munge_inner_argument(string(dos_cmd + 1)); + result += munge_inner_argument(arg.substr(dos_cmd + 1)); } else result += arg; @@ -129,12 +129,12 @@ process_spawn(char const * const argv[]) process_spawn(char const * const argv[]) { vector realexe; - realexe.resize(strlen(argv[0]) + 1 + MAXPATH); + realexe.resize(strlen(argv[0]) + 1 + MAX_PATH); - L(FL("searching for exe: %s\n") % realexe); + L(FL("searching for exe: %s\n") % argv[0]); char const * filepart; if (SearchPath(NULL, argv[0], ".exe", realexe.size(), &*realexe.begin(), - &filepart) == 0) + const_cast(&filepart)) == 0) { os_err_t errnum = GetLastError(); L(FL("SearchPath failed, err=%s (%d)\n") % os_strerror(errnum) % errnum); @@ -151,15 +151,16 @@ process_spawn(char const * const argv[]) si.cb = sizeof(STARTUPINFO); /* We don't need to set any of the STARTUPINFO members */ - if (CreateProcess(realexe, const_cast(cmd.c_str()), NULL, NULL, TRUE, - 0, NULL, NULL, &si, &pi) == 0) + if (CreateProcess(&*realexe.begin(), const_cast(cmd.c_str()), NULL, + NULL, TRUE, 0, NULL, NULL, &si, &pi) == 0) { os_err_t errnum = GetLastError(); - L(FL("CreateProcess failed, err=%s (%d)\n") % os_strerror(errnum) % errnum); + L(FL("CreateProcess failed, err=%s (%d)\n") + % os_strerror(errnum) % errnum); return -1; } CloseHandle(pi.hThread); - return static_cast(pi.hProcess); + return reinterpret_cast(pi.hProcess); } struct redir @@ -250,7 +251,7 @@ process_wait(pid_t pid, int * res, int t int process_wait(pid_t pid, int * res, int timeout) { - HANDLE hProcess = static_cast(pid); + HANDLE hProcess = reinterpret_cast(pid); DWORD time = INFINITE; if (timeout != -1) time = timeout * 1000; @@ -263,8 +264,11 @@ process_wait(pid_t pid, int * res, int t return -1; } I(res); - if (GetExitCodeProcess(hProcess, static_cast(res)) == 0) + DWORD tmpres; + if (GetExitCodeProcess(hProcess, &tmpres) == 0) *res = -1; + else + *res = tmpres; CloseHandle(hProcess); /* Let the process die */ return 0; } @@ -272,7 +276,7 @@ process_kill(pid_t pid, int signal) int process_kill(pid_t pid, int signal) { - HANDLE hProcess = static_cast(pid); + HANDLE hProcess = reinterpret_cast(pid); if (TerminateProcess(hProcess, 1) == 0) return -1; return 0;