aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine-uiserver.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-09-15 07:24:29 +0000
committerWerner Koch <[email protected]>2016-09-15 07:24:29 +0000
commitd2b72d3cc19fe2a7d548dac38d55e069e0c9a904 (patch)
tree9287ba936a5f8d80a61503d23bc5e4709645bb14 /src/engine-uiserver.c
parentcore: New function gpgme_op_tofu_policy (diff)
downloadgpgme-d2b72d3cc19fe2a7d548dac38d55e069e0c9a904.tar.gz
gpgme-d2b72d3cc19fe2a7d548dac38d55e069e0c9a904.zip
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 <[email protected]>
Diffstat (limited to 'src/engine-uiserver.c')
-rw-r--r--src/engine-uiserver.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/engine-uiserver.c b/src/engine-uiserver.c
index 318d32e3..d855c742 100644
--- a/src/engine-uiserver.c
+++ b/src/engine-uiserver.c
@@ -676,6 +676,8 @@ status_handler (void *opaque, int fd)
char emptystring[1] = {0};
err = uiserver->status.fnc (uiserver->status.fnc_value,
GPGME_STATUS_EOF, emptystring);
+ if (gpg_err_code (err) == GPG_ERR_FALSE)
+ err = 0; /* Drop special error code. */
}
if (!err && uiserver->colon.fnc && uiserver->colon.any)
@@ -827,7 +829,12 @@ status_handler (void *opaque, int fd)
if (r >= 0)
{
if (uiserver->status.fnc)
- err = uiserver->status.fnc (uiserver->status.fnc_value, r, rest);
+ {
+ err = uiserver->status.fnc (uiserver->status.fnc_value,
+ r, rest);
+ if (gpg_err_code (err) == GPG_ERR_FALSE)
+ err = 0; /* Drop special error code. */
+ }
}
else
fprintf (stderr, "[UNKNOWN STATUS]%s %s", line + 2, rest);