]> code.delx.au - refind/commitdiff
Fixed bug that prevented "icon" token in refind.conf manual boot
authorsrs5694 <srs5694@users.sourceforge.net>
Tue, 22 Jan 2013 16:49:31 +0000 (11:49 -0500)
committersrs5694 <srs5694@users.sourceforge.net>
Tue, 22 Jan 2013 16:49:31 +0000 (11:49 -0500)
stanza from working.

NEWS.txt
docs/refind/configfile.html
install.sh
refind.conf-sample
refind/icns.c
refind/main.c
refind/menu.c
refind/menu.h
refind/screen.c

index cc1773d7aef72f72f2e20eefd2c2c9eb7ef7e238..b3d016bafaa94338b8c5ee3ad85b79b5ebb4c15b 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,3 +1,12 @@
+0.6.6 (?/??/2013):
+------------------
+
+- Fixed bug that caused rEFInd to ignore the "icon" token in refind.conf
+  manual boot stanzas.
+
+- Fixed bug in install.sh that caused the script to fail to update
+  drivers when rEFInd was installed in EFI/BOOT/.
+
 0.6.5 (1/16/2013):
 ------------------
 
index 49c2ed66ed250d383deca56c4f6cd3b0ea42832a..bc9cf9805f0789596c8a0908b841a987f30db041 100644 (file)
@@ -176,7 +176,7 @@ timeout 20
 <tr>
    <td><tt>hideui</tt></td>
    <td><tt>banner</tt>, <tt>label</tt>, <tt>singleuser</tt>, <tt>safemode</tt>, <tt>hwtest</tt>, <tt>arrows</tt>, <tt>hints</tt>, <tt>editor</tt>, or <tt>all</tt></td>
-   <td>Removes the specified user interface features. <tt>banner</tt> removes the banner graphic, <tt>label</tt> removes the text description of each tag and the countdown timer, <tt>singleuser</tt> removes the single-user option from the OS X sub-menu, <tt>safemode</tt> removes the option to boot to safe mode from the OS X sub-menu, <tt>hwtest</tt> removes the Macintosh hardware test option, <tt>arrows</tt> removes the arrows to the right or left of the OS tags when rEFInd finds too many OSes to display simultaneously, <tt>hints</tt> removes the brief description of what basic keypresses do, <tt>editor</tt> disables the options editor, and <tt>all</tt> removes all of these options. You can specify multiple parameters with this option. The default is to set none of these values.</td>
+   <td>Removes the specified user interface features. <tt>banner</tt> removes the banner graphic or background image, <tt>label</tt> removes the text description of each tag and the countdown timer, <tt>singleuser</tt> removes the single-user option from the OS X sub-menu, <tt>safemode</tt> removes the option to boot to safe mode from the OS X sub-menu, <tt>hwtest</tt> removes the Macintosh hardware test option, <tt>arrows</tt> removes the arrows to the right or left of the OS tags when rEFInd finds too many OSes to display simultaneously, <tt>hints</tt> removes the brief description of what basic keypresses do, <tt>editor</tt> disables the options editor, and <tt>all</tt> removes all of these options. You can specify multiple parameters with this option. The default is to set none of these values.</td>
 </tr>
 <tr>
    <td><tt>icons_dir</tt></td>
index 8268e409187dc7bd35a29317b27e6dd548a71284..5dd99c1a9b27ea6ec62e3a1f9223ab3ce01cf38f 100755 (executable)
@@ -29,6 +29,7 @@
 #
 # Revision history:
 #
+# 0.6.6   -- Bug fix: Upgrade drivers when installed to EFI/BOOT.
 # 0.6.4   -- Copies ext2 driver rather than ext4 driver for ext2/3fs
 # 0.6.3   -- Support for detecting rEFInd in EFI/BOOT and EFI/Microsoft/Boot
 #            directories & for installing to EFI/BOOT in BIOS mode
@@ -261,6 +262,12 @@ CopyRefindFiles() {
       if [[ $InstallDrivers == "all" ]] ; then
          cp -r $RefindDir/drivers_* $InstallDir/$TargetDir/ 2> /dev/null
          cp -r $ThisDir/drivers_* $InstallDir/$TargetDir/ 2> /dev/null
+      elif [[ $Upgrade == 1 ]] ; then
+         if [[ $Platform == 'EFI64' ]] ; then
+            CopyDrivers x64
+         else
+            CopyDrivers ia32
+         fi
       fi
       Refind=""
       CopyKeys
index 6cc17cd3f3053dbdc1b914251609c58f3d6efd7f..e5380f8d4fce62c174beaa379fa367c84a819c70 100644 (file)
@@ -10,7 +10,7 @@ timeout 20
 
 # Hide user interface elements for personal preference or to increase
 # security:
-#  banner      - the rEFInd title banner
+#  banner      - the rEFInd title banner (built-in or loaded via "banner")
 #  label       - boot option text label in the menu
 #  singleuser  - remove the submenu options to boot Mac OS X in single-user
 #                or verbose modes; affects ONLY MacOS X
index 0f55c8d207967ab7c4efdd3e5fbb2b07f846a3ae..c6cac90dde4b461bf5b3ee64f8b612a08196055d 100644 (file)
@@ -130,8 +130,7 @@ EG_IMAGE * LoadOSIcon(IN CHAR16 *OSIconName OPTIONAL, IN CHAR16 *FallbackIconNam
 
     // try the fallback name with os_ instead of boot_
     if (BootLogo && (Image == NULL))
-       Image = LoadIconAnyFormat(GlobalConfig.IconsDir ? GlobalConfig.IconsDir : DEFAULT_ICONS_DIR,
-                                 L"os", FallbackIconName);
+       Image = LoadIconAnyFormat(GlobalConfig.IconsDir ? GlobalConfig.IconsDir : DEFAULT_ICONS_DIR, L"os", FallbackIconName);
 
     if (Image != NULL)
         return Image;
index ccbf97d83e64509eb184828222ebd8d066d10170..cd13fe84f1378b7374b5ec7f4ef3a6d04befa4de 100644 (file)
@@ -128,7 +128,7 @@ static VOID AboutrEFInd(VOID)
 
     if (AboutMenu.EntryCount == 0) {
         AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
-        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.5");
+        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.5.2");
         AddMenuInfoLine(&AboutMenu, L"");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012 Roderick W. Smith");
@@ -726,7 +726,8 @@ VOID SetLoaderDefaults(LOADER_ENTRY *Entry, CHAR16 *LoaderPath, REFIT_VOLUME *Vo
       MergeStrings(&IconNames, Temp, L'.');
       MyFreePool(Temp);
    }
-   Entry->me.Image = LoadIcns(Volume->RootDir, IconNames, 128);
+   if (!Entry->me.Image)
+      Entry->me.Image = LoadIcns(Volume->RootDir, IconNames, 128);
    if (!Entry->me.Image)
       Entry->me.Image = Volume->VolIconImage;
    MyFreePool(IconNames);
index dbf88a1b54c9ae2926f18a2878a585bcf2ed1c6a..071017bd65caf66f3018c5e360b679fc4cefe713 100644 (file)
@@ -931,9 +931,9 @@ static VOID PaintIcon(IN EG_EMBEDDED_IMAGE *BuiltInIcon, IN CHAR16 *ExternalFile
    }
 } // static VOID PaintIcon()
 
-inline UINTN ComputeRow0PosX(VOID) {
+inline UINTN ComputeRow0PosY(VOID) {
    return ((UGAHeight / 2) - ROW0_TILESIZE / 2);
-} // UINTN ComputeRow0PosX()
+} // UINTN ComputeRow0PosY()
 
 // Display (or erase) the arrow icons to the left and right of an icon's row,
 // as appropriate.
@@ -999,7 +999,7 @@ VOID MainMenuStyle(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State, IN UINT
                }
             }
             row0PosX = (UGAWidth + TILE_XSPACING - (ROW0_TILESIZE + TILE_XSPACING) * row0Count) >> 1;
-            row0PosY = ComputeRow0PosX();
+            row0PosY = ComputeRow0PosY();
             row1PosX = (UGAWidth + TILE_XSPACING - (ROW1_TILESIZE + TILE_XSPACING) * row1Count) >> 1;
             row1PosY = row0PosY + ROW0_TILESIZE + TILE_YSPACING;
             if (row1Count > 0)
index 6023502710bfaa7f908ebc96414327fe1ee54604..aeb1c9679e36129cf24400c8c5e2da047ad7799f 100644 (file)
@@ -94,7 +94,7 @@ struct _refit_menu_screen;
 
 VOID AddMenuInfoLine(IN REFIT_MENU_SCREEN *Screen, IN CHAR16 *InfoLine);
 VOID AddMenuEntry(IN REFIT_MENU_SCREEN *Screen, IN REFIT_MENU_ENTRY *Entry);
-inline UINTN ComputeRow0PosX(VOID);
+inline UINTN ComputeRow0PosY(VOID);
 VOID MainMenuStyle(IN REFIT_MENU_SCREEN *Screen, IN SCROLL_STATE *State, IN UINTN Function, IN CHAR16 *ParamText);
 UINTN RunMenu(IN REFIT_MENU_SCREEN *Screen, OUT REFIT_MENU_ENTRY **ChosenEntry);
 UINTN RunMainMenu(IN REFIT_MENU_SCREEN *Screen, IN CHAR16* DefaultSelection, OUT REFIT_MENU_ENTRY **ChosenEntry);
index 7ee1a1878692156da790ec5e4929010fa54f8994..cd2af67f6f3b365a43842295a8be86a5c217e12d 100644 (file)
@@ -463,7 +463,7 @@ VOID BltClearScreen(IN BOOLEAN ShowBanner)
         egClearScreen(&MenuBackgroundPixel);
         if (Banner != NULL) {
             BannerPosX = (Banner->Width < UGAWidth) ? ((UGAWidth - Banner->Width) / 2) : 0;
-            BannerPosY = (ComputeRow0PosX() / 2) - Banner->Height;
+            BannerPosY = (INTN) (ComputeRow0PosY() / 2) - (INTN) Banner->Height;
             if (BannerPosY < 0)
                BannerPosY = 0;
             GlobalConfig.BannerBottomEdge = BannerPosY + Banner->Height;
@@ -478,7 +478,7 @@ VOID BltClearScreen(IN BOOLEAN ShowBanner)
     GraphicsScreenDirty = FALSE;
     egFreeImage(GlobalConfig.ScreenBackground);
     GlobalConfig.ScreenBackground = egCopyScreen();
-}
+} /* VOID BltClearScreen() */
 
 VOID BltImage(IN EG_IMAGE *Image, IN UINTN XPos, IN UINTN YPos)
 {