aboutsummaryrefslogtreecommitdiff
path: root/src/burn/engine/core.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/burn/engine/core.cpp')
-rw-r--r--src/burn/engine/core.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp
index 0bbf7039..be8c011f 100644
--- a/src/burn/engine/core.cpp
+++ b/src/burn/engine/core.cpp
@@ -1044,6 +1044,12 @@ static HRESULT CoreRecreateCommandLine(
1044 ExitOnFailure(hr, "Failed to append relation type to command-line."); 1044 ExitOnFailure(hr, "Failed to append relation type to command-line.");
1045 } 1045 }
1046 1046
1047 if (pInternalCommand->fArpSystemComponent)
1048 {
1049 hr = StrAllocConcatFormatted(psczCommandLine, L" /%ls", BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT);
1050 ExitOnFailure(hr, "Failed to append system component to command-line.");
1051 }
1052
1047 if (fPassthrough) 1053 if (fPassthrough)
1048 { 1054 {
1049 hr = StrAllocConcatFormatted(psczCommandLine, L" /%ls", BURN_COMMANDLINE_SWITCH_PASSTHROUGH); 1055 hr = StrAllocConcatFormatted(psczCommandLine, L" /%ls", BURN_COMMANDLINE_SWITCH_PASSTHROUGH);
@@ -1633,6 +1639,29 @@ extern "C" HRESULT CoreParseCommandLine(
1633 } 1639 }
1634 } 1640 }
1635 } 1641 }
1642 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT), BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT, lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT)))
1643 {
1644 // Get a pointer to the next character after the switch.
1645 LPCWSTR wzParam = &argv[i][1 + lstrlenW(BURN_COMMANDLINE_SWITCH_SYSTEM_COMPONENT)];
1646
1647 // Switch without an argument is allowed. An empty string means FALSE, everything else means TRUE.
1648 if (L'\0' != wzParam[0])
1649 {
1650 if (L'=' != wzParam[0])
1651 {
1652 fInvalidCommandLine = TRUE;
1653 TraceLog(E_INVALIDARG, "Invalid switch: %ls", argv[i]);
1654 }
1655 else
1656 {
1657 pInternalCommand->fArpSystemComponent = L'\0' != wzParam[1];
1658 }
1659 }
1660 else
1661 {
1662 pInternalCommand->fArpSystemComponent = TRUE;
1663 }
1664 }
1636 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_EMBEDDED, -1)) 1665 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_EMBEDDED, -1))
1637 { 1666 {
1638 if (i + 3 >= argc) 1667 if (i + 3 >= argc)