grub-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]