aboutsummaryrefslogtreecommitdiffstats
path: root/src/keylist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/keylist.c')
-rw-r--r--src/keylist.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/keylist.c b/src/keylist.c
index 2f6ae824..1d8c8184 100644
--- a/src/keylist.c
+++ b/src/keylist.c
@@ -150,7 +150,9 @@ keylist_status_handler (void *priv, gpgme_status_code_t code, char *args)
break;
case GPGME_STATUS_FAILURE:
- opd->failure_code = _gpgme_parse_failure (args);
+ if (!opd->failure_code
+ || gpg_err_code (opd->failure_code) == GPG_ERR_GENERAL)
+ opd->failure_code = _gpgme_parse_failure (args);
if (opd->failure_code && !strcmp (args, "option-parser")
&& gpg_err_code (opd->failure_code) == GPG_ERR_GENERAL)
err = gpg_error (GPG_ERR_INV_ENGINE);