diff options
Diffstat (limited to 'gpgme/edit.c')
-rw-r--r-- | gpgme/edit.c | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/gpgme/edit.c b/gpgme/edit.c index 7df5f939..023bbe07 100644 --- a/gpgme/edit.c +++ b/gpgme/edit.c @@ -39,12 +39,24 @@ static gpgme_error_t edit_status_handler (void *priv, gpgme_status_code_t status, char *args) { gpgme_ctx_t ctx = (gpgme_ctx_t) priv; + gpgme_error_t err; + void *hook; op_data_t opd; - return _gpgme_passphrase_status_handler (priv, status, args) - || _gpgme_progress_status_handler (priv, status, args) - || _gpgme_op_data_lookup (ctx, OPDATA_EDIT, (void **) &opd, -1, NULL) - || (*opd->fnc) (opd->fnc_value, status, args, -1); + err = _gpgme_passphrase_status_handler (priv, status, args); + if (err) + return err; + + err = _gpgme_progress_status_handler (priv, status, args); + if (err) + return err; + + err = _gpgme_op_data_lookup (ctx, OPDATA_EDIT, &hook, -1, NULL); + opd = hook; + if (err) + return err; + + return (*opd->fnc) (opd->fnc_value, status, args, -1); } @@ -54,7 +66,6 @@ command_handler (void *priv, gpgme_status_code_t status, const char *args, { gpgme_ctx_t ctx = (gpgme_ctx_t) priv; gpgme_error_t err; - op_data_t opd; int processed = 0; if (ctx->passphrase_cb) @@ -67,7 +78,11 @@ command_handler (void *priv, gpgme_status_code_t status, const char *args, if (!processed) { - err = _gpgme_op_data_lookup (ctx, OPDATA_EDIT, (void **) &opd, -1, NULL); + void *hook; + op_data_t opd; + + err = _gpgme_op_data_lookup (ctx, OPDATA_EDIT, &hook, -1, NULL); + opd = hook; if (err) return err; @@ -82,6 +97,7 @@ edit_start (gpgme_ctx_t ctx, int synchronous, gpgme_key_t key, gpgme_edit_cb_t fnc, void *fnc_value, gpgme_data_t out) { gpgme_error_t err; + void *hook; op_data_t opd; err = _gpgme_op_reset (ctx, synchronous); @@ -91,8 +107,8 @@ edit_start (gpgme_ctx_t ctx, int synchronous, gpgme_key_t key, if (!fnc || !out) return GPGME_Invalid_Value; - err = _gpgme_op_data_lookup (ctx, OPDATA_EDIT, (void **) &opd, - sizeof (*opd), NULL); + err = _gpgme_op_data_lookup (ctx, OPDATA_EDIT, &hook, sizeof (*opd), NULL); + opd = hook; if (err) return err; |