diff options
Diffstat (limited to 'src/burn/engine/core.cpp')
-rw-r--r-- | src/burn/engine/core.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp index 4255fa6b..39836bce 100644 --- a/src/burn/engine/core.cpp +++ b/src/burn/engine/core.cpp | |||
@@ -1419,7 +1419,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
1419 | 1419 | ||
1420 | ++i; | 1420 | ++i; |
1421 | 1421 | ||
1422 | hr = StrAllocString(&pInternalCommand->sczLogFile, argv[i], 0); | 1422 | hr = PathExpand(&pInternalCommand->sczLogFile, argv[i], PATH_EXPAND_FULLPATH); |
1423 | ExitOnFailure(hr, "Failed to copy log file path."); | 1423 | ExitOnFailure(hr, "Failed to copy log file path."); |
1424 | } | 1424 | } |
1425 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"?", -1) || | 1425 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"?", -1) || |
@@ -1516,7 +1516,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
1516 | } | 1516 | } |
1517 | 1517 | ||
1518 | ++i; | 1518 | ++i; |
1519 | hr = StrAllocString(&pInternalCommand->sczOriginalSource, argv[i], 0); | 1519 | hr = PathExpand(&pInternalCommand->sczOriginalSource, argv[i], PATH_EXPAND_FULLPATH); |
1520 | ExitOnFailure(hr, "Failed to copy last used source."); | 1520 | ExitOnFailure(hr, "Failed to copy last used source."); |
1521 | } | 1521 | } |
1522 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_PARENT, -1)) | 1522 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_PARENT, -1)) |
@@ -1547,7 +1547,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
1547 | 1547 | ||
1548 | ++i; | 1548 | ++i; |
1549 | 1549 | ||
1550 | hr = StrAllocString(&pInternalCommand->sczLogFile, argv[i], 0); | 1550 | hr = PathExpand(&pInternalCommand->sczLogFile, argv[i], PATH_EXPAND_FULLPATH); |
1551 | ExitOnFailure(hr, "Failed to copy append log file path."); | 1551 | ExitOnFailure(hr, "Failed to copy append log file path."); |
1552 | 1552 | ||
1553 | pInternalCommand->dwLoggingAttributes |= BURN_LOGGING_ATTRIBUTE_APPEND; | 1553 | pInternalCommand->dwLoggingAttributes |= BURN_LOGGING_ATTRIBUTE_APPEND; |
@@ -1638,7 +1638,7 @@ extern "C" HRESULT CoreParseCommandLine( | |||
1638 | } | 1638 | } |
1639 | else if (L'\0' != wzParam[1]) | 1639 | else if (L'\0' != wzParam[1]) |
1640 | { | 1640 | { |
1641 | hr = StrAllocString(&pInternalCommand->sczSourceProcessPath, wzParam + 1, 0); | 1641 | hr = PathExpand(&pInternalCommand->sczSourceProcessPath, wzParam + 1, PATH_EXPAND_FULLPATH); |
1642 | ExitOnFailure(hr, "Failed to copy source process path."); | 1642 | ExitOnFailure(hr, "Failed to copy source process path."); |
1643 | } | 1643 | } |
1644 | } | 1644 | } |
@@ -1807,16 +1807,10 @@ extern "C" HRESULT CoreParseCommandLine( | |||
1807 | fInvalidCommandLine = TRUE; | 1807 | fInvalidCommandLine = TRUE; |
1808 | TraceLog(E_INVALIDARG, "Invalid switch: %ls", argv[i]); | 1808 | TraceLog(E_INVALIDARG, "Invalid switch: %ls", argv[i]); |
1809 | } | 1809 | } |
1810 | else if (L'\0' == wzParam[1]) | ||
1811 | { | ||
1812 | // Need to grab the current directory here since this is passed on to other processes. | ||
1813 | hr = DirGetCurrent(&pInternalCommand->sczEngineWorkingDirectory); | ||
1814 | ExitOnFailure(hr, "Failed to get current directory for custom working directory."); | ||
1815 | } | ||
1816 | else | 1810 | else |
1817 | { | 1811 | { |
1818 | hr = StrAllocString(&pInternalCommand->sczEngineWorkingDirectory, wzParam + 1, 0); | 1812 | hr = PathExpand(&pInternalCommand->sczEngineWorkingDirectory, wzParam + 1, PATH_EXPAND_FULLPATH); |
1819 | ExitOnFailure(hr, "Failed to allocate the custom working directory."); | 1813 | ExitOnFailure(hr, "Failed to store the custom working directory."); |
1820 | } | 1814 | } |
1821 | } | 1815 | } |
1822 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED), BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED))) | 1816 | else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED), BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED, lstrlenW(BURN_COMMANDLINE_SWITCH_FILEHANDLE_ATTACHED))) |