diff options
-rw-r--r-- | common/name-value.c | 22 | ||||
-rw-r--r-- | common/name-value.h | 3 |
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. */ |