aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/name-value.c22
-rw-r--r--common/name-value.h3
2 files changed, 25 insertions, 0 deletions
diff --git a/common/name-value.c b/common/name-value.c
index 39c3244e9..103c35d1c 100644
--- a/common/name-value.c
+++ b/common/name-value.c
@@ -597,6 +597,28 @@ nvc_get_string (nvc_t nvc, const char *name)
}
+/* Return true if NAME exists and its value is true; that is either
+ * "yes", "true", or a decimal value unequal to 0. */
+int
+nvc_get_boolean (nvc_t nvc, const char *name)
+{
+ nve_t item;
+ const char *s;
+
+ if (!nvc)
+ return 0;
+ item = nvc_lookup (nvc, name);
+ if (!item)
+ return 0;
+ s = nve_value (item);
+ if (s && (atoi (s)
+ || !ascii_strcasecmp (s, "yes")
+ || !ascii_strcasecmp (s, "true")))
+ return 1;
+ return 0;
+}
+
+
/* Private key handling. */
diff --git a/common/name-value.h b/common/name-value.h
index a6283a649..cf854e04d 100644
--- a/common/name-value.h
+++ b/common/name-value.h
@@ -75,6 +75,9 @@ nve_t nve_next_value (nve_t entry, const char *name);
/* Return the string for the first entry in NVC with NAME or NULL. */
const char *nvc_get_string (nvc_t nvc, const char *name);
+/* Return a boolean value for the first entry in NVC with NAME. */
+int nvc_get_boolean (nvc_t nvc, const char *name);
+
/* Adding and modifying values. */