Tianocore toolkit, and so support booting BIOS/legacy boot loaders on
UEFI-based PCs.</li>
-<li><b>ALT Linux</b>—This RPM-based distribution is experimenting
- with using rEFInd on EFI-based computers. As I write, the ALT
- developers haven't yet nailed down booting from an optical disc (it's a
- tricky and delicate task, especially when preparing a "hybrid" image),
- but they're working on the problem. They have an RPM of rEFInd, but I
- don't have a download link.</li>
+<li><b>ALT Linux</b>—This RPM-based distribution is experimenting with
+ using rEFInd on EFI-based computers. As I write, the ALT developers haven't
+ yet nailed down booting from an optical disc (it's a tricky and delicate
+ task, especially when preparing a "hybrid" image), but they're working on
+ the problem. They have an RPM of rEFInd; see <a
+ href="http://packages.altlinux.org/en/Sisyphus/srpms/refind">this page</a>
+ for details.</li>
<li><b><a href="http://distro.ibiblio.org/fatdog/web/">Fat
Dog</a></b>—This variant of Puppy Linux uses a combination of
if (AboutMenu.EntryCount == 0) {
AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
- AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.5.2");
+ AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.5.4");
AddMenuInfoLine(&AboutMenu, L"");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012 Roderick W. Smith");
// earlier....
if ((SubScreen->Entries != NULL) && (SubScreen->Entries[0] != NULL)) {
MyFreePool(SubScreen->Entries[0]->Title);
- SubScreen->Entries[0]->Title = StrDuplicate(TokenList[0]);
+ SubScreen->Entries[0]->Title = TokenList[0] ? StrDuplicate(TokenList[0]) : StrDuplicate(L"Boot Linux");
} // if
FreeTokenLine(&TokenList, &TokenCount);
while ((TokenCount = ReadTokenLine(File, &TokenList)) > 1) {
SubEntry = InitializeLoaderEntry(Entry);
- SubEntry->me.Title = StrDuplicate(TokenList[0]);
+ SubEntry->me.Title = TokenList[0] ? StrDuplicate(TokenList[0]) : StrDuplicate(L"Boot Linux");
MyFreePool(SubEntry->LoadOptions);
SubEntry->LoadOptions = AddInitrdToOptions(TokenList[1], InitrdName);
FreeTokenLine(&TokenList, &TokenCount);
} // while
if (FileExists(SelfDir, L"MokManager.efi")) {
MyFreePool(FileName);
- FileName = StrDuplicate(SelfDirPath);
+ FileName = SelfDirPath ? StrDuplicate(SelfDirPath) : NULL;
MergeStrings(&FileName, L"\\MokManager.efi", 0);
SPrint(Description, 255, L"MOK Key Manager at %s", FileName);
AddToolEntry(SelfLoadedImage->DeviceHandle, FileName, Description,
BOOLEAN MokProtocol;
REFIT_MENU_ENTRY *ChosenEntry;
UINTN MenuExit, i;
- CHAR16 *Selection;
+ CHAR16 *Selection = NULL;
EG_PIXEL BGColor;
// bootstrap
RescanAll();
} // if
- Selection = StrDuplicate(GlobalConfig.DefaultSelection);
+ if (GlobalConfig.DefaultSelection)
+ Selection = StrDuplicate(GlobalConfig.DefaultSelection);
+
while (MainLoopRunning) {
MenuExit = RunMainMenu(&MainMenu, Selection, &ChosenEntry);