Author: janderwald Date: Wed Aug 2 22:58:07 2006 New Revision: 23418
URL: http://svn.reactos.org/svn/reactos?rev=23418&view=rev Log: * make ReactOS textmode setup full-unattendable
Modified: trunk/reactos/base/setup/usetup/usetup.c
Modified: trunk/reactos/base/setup/usetup/usetup.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/setup/usetup/usetup.c?... ============================================================================== --- trunk/reactos/base/setup/usetup/usetup.c (original) +++ trunk/reactos/base/setup/usetup/usetup.c Wed Aug 2 22:58:07 2006 @@ -84,6 +84,7 @@ BOOLEAN IsUnattendedSetup; LONG UnattendDestinationDiskNumber; LONG UnattendDestinationPartitionNumber; +LONG UnattendMBRInstallType = -1; WCHAR UnattendInstallationDirectory[MAX_PATH];
/* LOCALS *******************************************************************/ @@ -506,9 +507,28 @@ wcscpy(UnattendInstallationDirectory, Value);
InfFreeContext(Context); + + IsUnattendedSetup = TRUE; + + /* Search for 'MBRInstallType' in the 'Unattend' section */ + if (!InfFindFirstLine(UnattendInf, L"Unattend", L"MBRInstallType", &Context)) + { + DPRINT("InfFindFirstLine() failed for key 'MBRInstallType'\n"); + InfFreeContext(Context); + InfCloseFile(UnattendInf); + return; + } + if (!InfGetIntField(Context, 0, &IntValue)) + { + DPRINT("InfGetIntField() failed for key 'MBRInstallType'\n"); + InfFreeContext(Context); + InfCloseFile(UnattendInf); + return; + } + UnattendMBRInstallType = IntValue; + InfFreeContext(Context); + InfCloseFile(UnattendInf); - - IsUnattendedSetup = TRUE;
DPRINT("Running unattended setup\n"); } @@ -707,6 +727,12 @@
if (IsUnattendedSetup) { + //TODO + //read options from inf + ComputerList = CreateComputerTypeList(SetupInf); + DisplayList = CreateDisplayDriverList(SetupInf); + KeyboardList = CreateKeyboardDriverList(SetupInf); + LayoutList = CreateKeyboardLayoutList(SetupInf); return INSTALL_INTRO_PAGE; }
@@ -3299,6 +3325,22 @@ return BOOT_LOADER_FLOPPY_PAGE; }
+ if (IsUnattendedSetup) + { + if (UnattendMBRInstallType == 0) /* skip MBR installation */ + { + return SUCCESS_PAGE; + } + else if (UnattendMBRInstallType == 1) /* install on floppy */ + { + return BOOT_LOADER_FLOPPY_PAGE; + } + else if (UnattendMBRInstallType == 2) /* install on hdd */ + { + return BOOT_LOADER_HARDDISK_PAGE; + } + } + SetTextXY(6, 8, "Setup is installing the boot loader");
SetTextXY(8, 12, "Install bootloader on the harddisk (MBR).");