return attrs != INVALID_FILE_ATTRIBUTES;
}
+bool
+copyFile(const String &srcFileName, const String &dstFileName, bool override)
+{
+ return CopyFileA(srcFileName, dstFileName, !override);
+}
+
+bool
+removeFile(const String &srcFilename)
+{
+ return DeleteFileA(srcFilename);
+}
+
/**
* Determine whether an argument should be quoted.
*/
s.push_back('"');
while (true) {
c = *arg++;
- switch (c)
if (c == '\0') {
break;
} else if (c == '"') {
WaitForSingleObject(processInformation.hProcess, INFINITE);
- DWORD exitCode = ~0;
+ DWORD exitCode = ~0UL;
GetExitCodeProcess(processInformation.hProcess, &exitCode);
CloseHandle(processInformation.hProcess);
return EXCEPTION_CONTINUE_SEARCH;
}
+ /*
+ * Ignore .NET exception.
+ *
+ * http://ig2600.blogspot.co.uk/2011/01/why-do-i-keep-getting-exception-code.html
+ */
+ if (pExceptionRecord->ExceptionCode == 0xe0434352) {
+ return EXCEPTION_CONTINUE_SEARCH;
+ }
+
// Clear direction flag
#ifdef _MSC_VER
#ifndef _WIN64