As discussed with Robert on IRC I moved the font_path function directly
to grub-mkconfig where it's only used.
And now the unicode font gets prefered over the ascii one.
And LANG=C gets exported if ascii.pf2 gets used, which is the main
reason for the move of it.

-- 
Felix Zielcke
Proud Debian Maintainer
2009-08-06  Felix Zielcke  <fziel...@z-51.de>

	* util/grub-mkconfig_lib.in (font_path): Move the functionality
	of it to ...
	* util/grub-mkconfig.in: ... here.  Prefer unicode.pf2 and
	unifont.pf2 over ascii.pf2.  Export LANG=C in case ascii.pf2 gets used.

Index: util/grub-mkconfig.in
===================================================================
--- util/grub-mkconfig.in	(revision 2469)
+++ util/grub-mkconfig.in	(working copy)
@@ -24,6 +24,8 @@ sbind...@sbindir@
 libd...@libdir@
 sysconfd...@sysconfdir@
 package_versi...@package_version@
+datad...@datadir@
+pkgdatadir=${datadir}/`echo @PACKAGE_TARNAME@ | sed "${transform}"`
 grub_prefix=`echo /boot/grub | sed ${transform}`
 grub_cfg=""
 grub_mkconfig_dir=${sysconfdir}/grub.d
@@ -151,22 +153,30 @@ esac
 # check for terminals that require fonts
 case ${GRUB_TERMINAL_OUTPUT} in
   gfxterm)
-    if path=`font_path` ; then
-      GRUB_FONT_PATH="${path}"
-    else
-      # fallback to the native terminal for this platform
-      unset GRUB_TERMINAL_OUTPUT
+    for dir in ${pkgdatadir} /boot/grub /usr/share/grub ; do
+      for basename in unicode unifont ascii; do
+	path="${dir}/${basename}.pf2"
+        if is_path_readable_by_grub ${path} > /dev/null ; then
+	  GRUB_FONT_PATH=${path}
+	else
+	  continue
+	fi
+	if [ "${basename}" = "ascii"] ; then
+	  # make sure all our children behave in conformance with ascii..
+	  export LANG=C
+	fi
+	break 2
+      done
+    done
+      if [ -z "${GRUB_FONT_PATH}" ] ; then
+        # fallback to the native terminal for this platform
+        unset GRUB_TERMINAL_OUTPUT
+      fi
     fi
   ;;
-esac
-
-# does our terminal support utf-8 ?
-case ${GRUB_TERMINAL_OUTPUT} in
-  gfxterm) ;;
   *)
     # make sure all our children behave in conformance with ascii..
     export LANG=C
-  ;;
 esac
 
 # These are defined in this script, export them here so that user can
Index: util/grub-mkconfig_lib.in
===================================================================
--- util/grub-mkconfig_lib.in	(revision 2470)
+++ util/grub-mkconfig_lib.in	(working copy)
@@ -148,23 +148,6 @@ prepare_grub_to_access_device ()
   fi
 }
 
-font_path ()
-{
-  for dir in ${pkgdatadir} /boot/grub /usr/share/grub ; do
-    # FIXME: We prefer ascii because loading complete fonts is too slow (and
-    # we don't yet provide the gettext magic that would make unicode useful).
-    for basename in ascii unicode unifont ; do
-      path="${dir}/${basename}.pf2"
-      if is_path_readable_by_grub ${path} > /dev/null ; then
-        echo "${path}"
-        return 0
-      fi
-    done
-  done
-
-  return 1
-}
-
 grub_file_is_not_garbage ()
 {
   if test -f "$1" ; then
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to