* grub-core/font/font.c (grub_font_load): Add support for default
path for fonts ($prefix/fonts). * grub-core/kern/corecmd.c (grub_core_cmd_insmod): Unify condition for checking if string is a path. * grub-core/normal/main.c (features): Add feature_default_font_path. * util/grub-mkconfig.in: Skip mangling of GRUB_FONT into GRUB_FONT_PATH. * util/grub.d/00_header.in: Use default directory if possible. * util/grub-install.in: Install unicode.pf2.
This commit is contained in:
parent
b3e0862255
commit
274416e82f
7 changed files with 86 additions and 46 deletions
|
@ -29,6 +29,7 @@
|
|||
#include <grub/charset.h>
|
||||
#include <grub/unicode.h>
|
||||
#include <grub/fontformat.h>
|
||||
#include <grub/env.h>
|
||||
|
||||
GRUB_MOD_LICENSE ("GPLv3+");
|
||||
|
||||
|
@ -433,7 +434,30 @@ grub_font_load (const char *filename)
|
|||
grub_printf ("add_font(%s)\n", filename);
|
||||
#endif
|
||||
|
||||
file = grub_buffile_open (filename, 1024);
|
||||
if (filename[0] == '(' || filename[0] == '/' || filename[0] == '+')
|
||||
file = grub_buffile_open (filename, 1024);
|
||||
else
|
||||
{
|
||||
const char *prefix = grub_env_get ("prefix");
|
||||
char *fullname, *ptr;
|
||||
if (!prefix)
|
||||
{
|
||||
grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("variable `%s' isn't set"),
|
||||
"prefix");
|
||||
goto fail;
|
||||
}
|
||||
fullname = grub_malloc (grub_strlen (prefix) + grub_strlen (filename) + 1
|
||||
+ sizeof ("/fonts/") + sizeof (".pf2"));
|
||||
if (!fullname)
|
||||
goto fail;
|
||||
ptr = grub_stpcpy (fullname, prefix);
|
||||
ptr = grub_stpcpy (ptr, "/fonts/");
|
||||
ptr = grub_stpcpy (ptr, filename);
|
||||
ptr = grub_stpcpy (ptr, ".pf2");
|
||||
*ptr = 0;
|
||||
file = grub_buffile_open (fullname, 1024);
|
||||
grub_free (fullname);
|
||||
}
|
||||
if (!file)
|
||||
goto fail;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue