From f35e7dbf9e71f847f3c7da40542bd6c37f43711e Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 24 Jan 2023 09:29:04 +0100 Subject: 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 --- common/name-value.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'common/name-value.c') 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; } -- cgit v1.2.3