From 9bb420a19538321789b8300051cd595d6c00c710 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Mon, 21 Mar 2022 23:19:46 -0500 Subject: Add related command line switches for DEPENDENT_ADDON, DEPENDENT_PATCH. Implements 4504, needed for 3796/6252 --- src/burn/engine/core.cpp | 20 ++++++++++++++++++-- src/burn/engine/core.h | 2 ++ 2 files changed, 20 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/burn/engine/core.cpp b/src/burn/engine/core.cpp index becece86..e077d224 100644 --- a/src/burn/engine/core.cpp +++ b/src/burn/engine/core.cpp @@ -945,8 +945,12 @@ extern "C" LPCWSTR CoreRelationTypeToCommandLineString( case BOOTSTRAPPER_RELATION_UPDATE: wzRelationTypeCommandLine = BURN_COMMANDLINE_SWITCH_RELATED_UPDATE; break; - case BOOTSTRAPPER_RELATION_DEPENDENT_ADDON: __fallthrough; - case BOOTSTRAPPER_RELATION_DEPENDENT_PATCH: __fallthrough; + case BOOTSTRAPPER_RELATION_DEPENDENT_ADDON: + wzRelationTypeCommandLine = BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_ADDON; + break; + case BOOTSTRAPPER_RELATION_DEPENDENT_PATCH: + wzRelationTypeCommandLine = BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_PATCH; + break; case BOOTSTRAPPER_RELATION_NONE: __fallthrough; default: wzRelationTypeCommandLine = NULL; @@ -1676,12 +1680,24 @@ extern "C" HRESULT CoreParseCommandLine( LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); } + else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_ADDON, -1)) + { + pCommand->relationType = BOOTSTRAPPER_RELATION_DEPENDENT_ADDON; + + LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); + } else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_PATCH, -1)) { pCommand->relationType = BOOTSTRAPPER_RELATION_PATCH; LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); } + else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_PATCH, -1)) + { + pCommand->relationType = BOOTSTRAPPER_RELATION_DEPENDENT_PATCH; + + LogId(REPORT_STANDARD, MSG_BURN_RUN_BY_RELATED_BUNDLE, LoggingRelationTypeToString(pCommand->relationType)); + } else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, BURN_COMMANDLINE_SWITCH_RELATED_UPDATE, -1)) { pCommand->relationType = BOOTSTRAPPER_RELATION_UPDATE; diff --git a/src/burn/engine/core.h b/src/burn/engine/core.h index 6ba1aa2a..cee71aec 100644 --- a/src/burn/engine/core.h +++ b/src/burn/engine/core.h @@ -23,7 +23,9 @@ const LPCWSTR BURN_COMMANDLINE_SWITCH_LOG_MODE = L"burn.log.mode"; const LPCWSTR BURN_COMMANDLINE_SWITCH_RELATED_DETECT = L"burn.related.detect"; const LPCWSTR BURN_COMMANDLINE_SWITCH_RELATED_UPGRADE = L"burn.related.upgrade"; const LPCWSTR BURN_COMMANDLINE_SWITCH_RELATED_ADDON = L"burn.related.addon"; +const LPCWSTR BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_ADDON = L"burn.related.dependent.addon"; const LPCWSTR BURN_COMMANDLINE_SWITCH_RELATED_PATCH = L"burn.related.patch"; +const LPCWSTR BURN_COMMANDLINE_SWITCH_RELATED_DEPENDENT_PATCH = L"burn.related.dependent.patch"; const LPCWSTR BURN_COMMANDLINE_SWITCH_RELATED_UPDATE = L"burn.related.update"; const LPCWSTR BURN_COMMANDLINE_SWITCH_PASSTHROUGH = L"burn.passthrough"; const LPCWSTR BURN_COMMANDLINE_SWITCH_DISABLE_UNELEVATE = L"burn.disable.unelevate"; -- cgit v1.2.3-55-g6feb