[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v4 2/3] env: add function for retrieving variables as booleans
From: |
Robbie Harwood |
Subject: |
[PATCH v4 2/3] env: add function for retrieving variables as booleans |
Date: |
Fri, 4 Nov 2022 12:13:35 -0400 |
Signed-off-by: Robbie Harwood <rharwood@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