summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2023-01-24 09:29:04 +0100
committerWerner Koch <wk@gnupg.org>2023-01-24 10:07:02 +0100
commitf35e7dbf9e71f847f3c7da40542bd6c37f43711e (patch)
tree68d822b9b43bd3b7e0961449fc7a438dee3653e0 /common
parentdoc: Remove profile and systemd example files. (diff)
downloadgnupg2-f35e7dbf9e71f847f3c7da40542bd6c37f43711e.tar.xz
gnupg2-f35e7dbf9e71f847f3c7da40542bd6c37f43711e.zip
common: Slight redefinition of nvc_get_boolean.
* common/name-value.c (nvc_get_boolean): Rewrite. -- The function may now return a positive or negative number instead of just 1 for true. All callers were already prepared for this. GnuPG-bug-id: 6212
Diffstat (limited to 'common')
-rw-r--r--common/name-value.c14
-rw-r--r--common/name-value.h3
2 files changed, 11 insertions, 6 deletions
diff --git a/common/name-value.c b/common/name-value.c
index d1d0a3f6f..67429e47f 100644
--- a/common/name-value.c
+++ b/common/name-value.c
@@ -608,13 +608,14 @@ 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. */
+/* Return true (ie. a non-zero value) 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;
+ int n;
if (!nvc)
return 0;
@@ -622,9 +623,12 @@ nvc_get_boolean (nvc_t nvc, const char *name)
if (!item)
return 0;
s = nve_value (item);
- if (s && (atoi (s)
- || !ascii_strcasecmp (s, "yes")
- || !ascii_strcasecmp (s, "true")))
+ if (!s)
+ return 0;
+ n = atoi (s);
+ if (n)
+ return n;
+ if (!ascii_strcasecmp (s, "yes") || !ascii_strcasecmp (s, "true"))
return 1;
return 0;
}
diff --git a/common/name-value.h b/common/name-value.h
index cf854e04d..504b5d0f0 100644
--- a/common/name-value.h
+++ b/common/name-value.h
@@ -75,7 +75,8 @@ 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. */
+/* Return a boolean value (zero or non-zero) for the first entry in
+ * NVC with NAME. */
int nvc_get_boolean (nvc_t nvc, const char *name);