Signed-off-by: Robbie Harwood <rharw...@redhat.com> --- grub-core/kern/env.c | 13 +++++++++++++ include/grub/env.h | 1 + 2 files changed, 14 insertions(+)
diff --git a/grub-core/kern/env.c b/grub-core/kern/env.c index 10e08ad76c..7640688963 100644 --- a/grub-core/kern/env.c +++ b/grub-core/kern/env.c @@ -144,6 +144,19 @@ grub_env_get (const char *name) return var->value; } +bool +grub_env_get_bool (const char *name, bool if_unset) +{ + const char *val = grub_env_get (name); + + if (val == NULL || grub_strlen (val) < 1) + return if_unset; + if (grub_strcmp (val, "0") == 0 || grub_strcmp (val, "false") == 0 || + grub_strcmp (val, "disable") == 0 || grub_strcmp (val, "no") == 0) + return false; + return true; +} + void grub_env_unset (const char *name) { diff --git a/include/grub/env.h b/include/grub/env.h index 76f832eb94..6b9379a300 100644 --- a/include/grub/env.h +++ b/include/grub/env.h @@ -45,6 +45,7 @@ struct grub_env_var grub_err_t EXPORT_FUNC(grub_env_set) (const char *name, const char *val); const char *EXPORT_FUNC(grub_env_get) (const char *name); +bool EXPORT_FUNC(grub_env_get_bool) (const char *name, bool if_unset); void EXPORT_FUNC(grub_env_unset) (const char *name); struct grub_env_var *EXPORT_FUNC(grub_env_update_get_sorted) (void); -- 2.35.1 _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel