This allows the caller to handle the fallback Signed-off-by: Vladimir Serbinenko <phco...@gmail.com> --- grub-core/font/font.c | 21 ++++++++++++++++----- include/grub/font.h | 2 ++ 2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/grub-core/font/font.c b/grub-core/font/font.c index 18de52562..ea01db01b 100644 --- a/grub-core/font/font.c +++ b/grub-core/font/font.c @@ -904,12 +904,8 @@ remove_font (grub_font_t font) } } -/* Get a font from the list of loaded fonts. This function will return - another font if the requested font is not available. If no fonts are - loaded, then a special 'null font' is returned, which contains no glyphs, - but is not a null pointer so the caller may omit checks for NULL. */ grub_font_t -grub_font_get (const char *font_name) +grub_font_get_no_fallback (const char *font_name) { struct grub_font_node *node; @@ -920,6 +916,21 @@ grub_font_get (const char *font_name) return font; } + return NULL; +} + +/* Get a font from the list of loaded fonts. This function will return + another font if the requested font is not available. If no fonts are + loaded, then a special 'null font' is returned, which contains no glyphs, + but is not a null pointer so the caller may omit checks for NULL. */ +grub_font_t +grub_font_get (const char *font_name) +{ + grub_font_t font = grub_font_get_no_fallback (font_name); + + if (font) + return font; + /* If no font by that name is found, return the first font in the list as a fallback. */ if (grub_font_list && grub_font_list->value) diff --git a/include/grub/font.h b/include/grub/font.h index 708fa42ac..e6a43f8fc 100644 --- a/include/grub/font.h +++ b/include/grub/font.h @@ -107,6 +107,8 @@ grub_font_t EXPORT_FUNC(grub_font_load) (const char *filename); is returned as a fallback. */ grub_font_t EXPORT_FUNC (grub_font_get) (const char *font_name); +grub_font_t EXPORT_FUNC(grub_font_get_no_fallback) (const char *font_name); + const char *EXPORT_FUNC (grub_font_get_name) (grub_font_t font); int EXPORT_FUNC (grub_font_get_max_char_width) (grub_font_t font); -- 2.39.2 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel