diff options
author | Werner Koch <wk@gnupg.org> | 2023-01-24 09:29:04 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2023-01-24 10:07:02 +0100 |
commit | f35e7dbf9e71f847f3c7da40542bd6c37f43711e (patch) | |
tree | 68d822b9b43bd3b7e0961449fc7a438dee3653e0 /common | |
parent | doc: Remove profile and systemd example files. (diff) | |
download | gnupg2-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.c | 14 | ||||
-rw-r--r-- | common/name-value.h | 3 |
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); |