From 9b9065df522be35a5b00a1d34e5425fc37a858b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Sat, 16 Dec 2023 12:52:39 +0100 Subject: [PATCH] [SETUPLIB] Move the initialization of other default values into InitializeSetup() --- base/setup/lib/setuplib.c | 54 ++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 29 deletions(-) diff --git a/base/setup/lib/setuplib.c b/base/setup/lib/setuplib.c index 94f43cac05f..c8767c09375 100644 --- a/base/setup/lib/setuplib.c +++ b/base/setup/lib/setuplib.c @@ -104,7 +104,7 @@ CheckUnattendedSetup( INF_FreeData(Value); - /* Search for 'DestinationDiskNumber' in the 'Unattend' section */ + /* Search for 'DestinationDiskNumber' */ if (!SpInfFindFirstLine(UnattendInf, L"Unattend", L"DestinationDiskNumber", &Context)) { DPRINT("SpInfFindFirstLine() failed for key 'DestinationDiskNumber'\n"); @@ -119,7 +119,7 @@ CheckUnattendedSetup( pSetupData->DestinationDiskNumber = (LONG)IntValue; - /* Search for 'DestinationPartitionNumber' in the 'Unattend' section */ + /* Search for 'DestinationPartitionNumber' */ if (!SpInfFindFirstLine(UnattendInf, L"Unattend", L"DestinationPartitionNumber", &Context)) { DPRINT("SpInfFindFirstLine() failed for key 'DestinationPartitionNumber'\n"); @@ -134,56 +134,47 @@ CheckUnattendedSetup( pSetupData->DestinationPartitionNumber = (LONG)IntValue; - /* Search for 'InstallationDirectory' in the 'Unattend' section (optional) */ + /* Search for 'InstallationDirectory' (optional) */ if (SpInfFindFirstLine(UnattendInf, L"Unattend", L"InstallationDirectory", &Context)) { - /* Get pointer 'InstallationDirectory' key */ - if (!INF_GetData(&Context, NULL, &Value)) + if (INF_GetData(&Context, NULL, &Value)) + { + RtlStringCchCopyW(pSetupData->InstallationDirectory, + ARRAYSIZE(pSetupData->InstallationDirectory), + Value); + INF_FreeData(Value); + } + else { DPRINT("INF_GetData() failed for key 'InstallationDirectory'\n"); - goto Quit; } - - RtlStringCchCopyW(pSetupData->InstallationDirectory, - ARRAYSIZE(pSetupData->InstallationDirectory), - Value); - - INF_FreeData(Value); } IsUnattendedSetup = TRUE; DPRINT("Running unattended setup\n"); - /* Search for 'BootLoaderLocation' in the 'Unattend' section */ - pSetupData->BootLoaderLocation = 2; // Default to "system partition" + /* Search for 'BootLoaderLocation' (optional) */ if (SpInfFindFirstLine(UnattendInf, L"Unattend", L"BootLoaderLocation", &Context)) { if (SpInfGetIntField(&Context, 1, &IntValue)) - { pSetupData->BootLoaderLocation = IntValue; - } } - /* Search for 'FormatPartition' in the 'Unattend' section */ - pSetupData->FormatPartition = 0; + /* Search for 'FormatPartition' (optional) */ if (SpInfFindFirstLine(UnattendInf, L"Unattend", L"FormatPartition", &Context)) { if (SpInfGetIntField(&Context, 1, &IntValue)) - { pSetupData->FormatPartition = IntValue; - } } - pSetupData->AutoPartition = 0; + /* Search for 'AutoPartition' (optional) */ if (SpInfFindFirstLine(UnattendInf, L"Unattend", L"AutoPartition", &Context)) { if (SpInfGetIntField(&Context, 1, &IntValue)) - { pSetupData->AutoPartition = IntValue; - } } - /* Search for LocaleID in the 'Unattend' section */ + /* Search for 'LocaleID' (optional) */ if (SpInfFindFirstLine(UnattendInf, L"Unattend", L"LocaleID", &Context)) { if (INF_GetData(&Context, NULL, &Value)) @@ -193,17 +184,14 @@ CheckUnattendedSetup( ARRAYSIZE(pSetupData->LocaleID), L"%08lx", Id); INF_FreeData(Value); - } + } } - /* Search for FsType in the 'Unattend' section */ - pSetupData->FsType = 0; + /* Search for 'FsType' (optional) */ if (SpInfFindFirstLine(UnattendInf, L"Unattend", L"FsType", &Context)) { if (SpInfGetIntField(&Context, 1, &IntValue)) - { pSetupData->FsType = IntValue; - } } Quit: @@ -1021,6 +1009,14 @@ InitializeSetup( DPRINT1("SourceRootPath (1): '%wZ'\n", &pSetupData->SourceRootPath); DPRINT1("SourceRootDir (1): '%wZ'\n", &pSetupData->SourceRootDir); + /* Set up default values */ + pSetupData->DestinationDiskNumber = 0; + pSetupData->DestinationPartitionNumber = 1; + pSetupData->BootLoaderLocation = 2; // Default to "System partition" + pSetupData->FormatPartition = 0; + pSetupData->AutoPartition = 0; + pSetupData->FsType = 0; + /* Load 'txtsetup.sif' from the installation media */ Error = LoadSetupInf(pSetupData); if (Error != ERROR_SUCCESS)