diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c index b714c97b9..ce92ddd07 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -158,17 +158,28 @@ int grub_err_printf (const char *fmt, ...) __attribute__ ((alias("grub_printf"))); #endif +int +grub_debug_enabled (const char * condition) +{ + const char *debug; + + debug = grub_env_get ("debug"); + if (!debug) + return 0; + + if (grub_strword (debug, "all") || grub_strword (debug, condition)) + return 1; + + return 0; +} + void grub_real_dprintf (const char *file, const int line, const char *condition, const char *fmt, ...) { va_list args; - const char *debug = grub_env_get ("debug"); - if (! debug) - return; - - if (grub_strword (debug, "all") || grub_strword (debug, condition)) + if (grub_debug_enabled (condition)) { grub_printf ("%s:%d: ", file, line); va_start (args, fmt); diff --git a/include/grub/misc.h b/include/grub/misc.h index cd5a8b4ae..b7ca6dd58 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -340,6 +340,7 @@ grub_puts (const char *s) } int EXPORT_FUNC(grub_puts_) (const char *s); +int EXPORT_FUNC(grub_debug_enabled) (const char *condition); void EXPORT_FUNC(grub_real_dprintf) (const char *file, const int line, const char *condition,