From f35e7dbf9e71f847f3c7da40542bd6c37f43711e Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 24 Jan 2023 09:29:04 +0100 Subject: [PATCH] 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 --- agent/gpg-agent.c | 3 ++- common/name-value.c | 14 +++++++++----- common/name-value.h | 3 ++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c index 412eb43e1..381999cea 100644 --- a/agent/gpg-agent.c +++ b/agent/gpg-agent.c @@ -147,6 +147,7 @@ enum cmd_and_opt_values oS2KCalibration, oAutoExpandSecmem, oListenBacklog, + oInactivityTimeout, oWriteEnvFile, @@ -185,7 +186,7 @@ static gpgrt_opt_t opts[] = { ARGPARSE_s_s (oHomedir, "homedir", "@"), ARGPARSE_conffile (oOptions, "options", N_("|FILE|read options from FILE")), ARGPARSE_noconffile (oNoOptions, "no-options", "@"), - + ARGPARSE_s_i (oInactivityTimeout, "inactivity-timeout", "@"), ARGPARSE_header ("Monitor", N_("Options controlling the diagnostic output")), 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);