aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2022-08-11 08:55:00 +0000
committerWerner Koch <[email protected]>2022-08-11 09:25:49 +0000
commit40f0fcfaa476152088762cf5677770d3403d6055 (patch)
tree7e7d6d1b67f75ff385b08187ce6513855b53bd63
parentgpg: Emit an ERROR status if --quick-set-primary-uid fails (diff)
downloadgnupg-40f0fcfaa476152088762cf5677770d3403d6055.tar.gz
gnupg-40f0fcfaa476152088762cf5677770d3403d6055.zip
common: New function nvc_get_boolean.
* common/name-value.c (nvc_get_boolean): New.
-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. */