Chameleon

Chameleon Commit Details

Date:2010-08-21 10:24:52 (13 years 8 months ago)
Author:Azimutz
Commit:406
Parents: 405
Message:Consolidating this position: while testing the new theme and boot-log function, i realized that when it comes to verbose boot, using the -v flag on Boot.plist (or typed at boot prompt) and using the Menu (Boot Verbose), doesn't produce the exact same output; using the Menu displays all the messages, while typing -v causes some of the first messages to disappear. So, moving this to an early stage isn't anymore a question of what is printed to screen or not! Tests also showed another diff: when using -v flag typed, the Boot Banner is cleared and messages start to print right away, while using Boot Verbose on the Menu, keeps the Banner, prints the first 2 or 3 messages right below it and the rest are only printed, when this code runs and does it's thing. Moving the code to this position fixes this glitch.
Changes:
M/branches/azimutz/CleanCut/i386/boot2/boot.c

File differences

branches/azimutz/CleanCut/i386/boot2/boot.c
360360
361361
362362
363
364
363
364
365365
366366
367367
......
374374
375375
376376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396396
397397
398398
firstRun = false;
if (status == -1) continue;
//Azi: doing this earlier to get the verbose from loadOverrideConfig.
// Draw background, turn off any GUI elements and update VRAM.
//Azi: i'm now almost sure that here is the right place to do this! - test (gBootVolume == NULL)
// Turn off any GUI elements, draw background and update VRAM.
if ( bootArgs->Video.v_display == GRAPHICS_MODE )
{
gui.devicelist.draw = false;
}
status = processBootOptions();
// Status==1 means to chainboot
if ( status == 1 ) break;
// Status==-1 means that the config file couldn't be loaded or that gBootVolume is NULL
if ( status == -1 )
{
// gBootVolume == NULL usually means the user hit escape.
if(gBootVolume == NULL)
{
freeFilteredBVChain(bvChain);
if (gEnableCDROMRescan)
rescanBIOSDevice(gBIOSDev);
bvChain = newFilteredBVChain(0x80, 0xFF, allowBVFlags, denyBVFlags, &gDeviceCount);
setBootGlobals(bvChain);
setupDeviceList(&bootInfo->themeConfig);
}
continue;
}
// Status == 1 means to chainboot
if ( status ==1 ) break;
// Status == -1 means that gBootVolume is NULL. Config file is not mandatory anymore!
if ( status == -1 )
{
// gBootVolume == NULL usually means the user hit escape.
if (gBootVolume == NULL)
{
freeFilteredBVChain(bvChain);
if (gEnableCDROMRescan)
rescanBIOSDevice(gBIOSDev);
bvChain = newFilteredBVChain(0x80, 0xFF, allowBVFlags, denyBVFlags, &gDeviceCount);
setBootGlobals(bvChain);
setupDeviceList(&bootInfo->themeConfig);
}
continue;
}
// Other status (e.g. 0) means that we should proceed with boot.

Archive Download the corresponding diff file

Revision: 406