mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-28 10:10:29 +00:00
* 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:
1 parent
b3e0862255
commit
274416e82f
7 files changed
+86
-46
No files matched your search
+25
-1
@@ -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;
|
||||
|
||||
|
||||
Reference in new issue
Block a user