From d2b72d3cc19fe2a7d548dac38d55e069e0c9a904 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 15 Sep 2016 09:24:29 +0200 Subject: core: Minor change of the gpgme_op_edit semantics. * src/edit.c (command_handler): Handle special error code. * src/engine-gpg.c (read_status): Ditto. * src/engine-gpgsm.c (status_handler): Ditto. * src/engine-uiserver.c (status_handler): Ditto. * src/util.h (GPG_ERR_FALSE): Define for older libgpg-error versions. -- An edit callback may now simply return GPG_ERR_FALSE to indicate that it did not handled the status code. GPGME will the do the appropriate action, which is to send an empty line. Note that it is highly unlikely that GPG_ERR_FALSE has ever been used by an application as return value from an edit interactor. Signed-off-by: Werner Koch --- src/engine-gpg.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/engine-gpg.c') diff --git a/src/engine-gpg.c b/src/engine-gpg.c index 9a0dab0a..d2741cb1 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -1102,6 +1102,8 @@ read_status (engine_gpg_t gpg) char emptystring[1] = {0}; err = gpg->status.fnc (gpg->status.fnc_value, GPGME_STATUS_EOF, emptystring); + if (gpg_err_code (err) == GPG_ERR_FALSE) + err = 0; /* Drop special error code. */ } return err; @@ -1169,6 +1171,8 @@ read_status (engine_gpg_t gpg) { err = gpg->status.fnc (gpg->status.fnc_value, r, rest); + if (gpg_err_code (err) == GPG_ERR_FALSE) + err = 0; /* Drop special error code. */ if (err) return err; } -- cgit v1.2.3