diff options
Diffstat (limited to 'gpgme/edit.c')
-rw-r--r-- | gpgme/edit.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/gpgme/edit.c b/gpgme/edit.c index 9ef450f0..6ff8fba4 100644 --- a/gpgme/edit.c +++ b/gpgme/edit.c @@ -63,21 +63,20 @@ edit_status_handler (void *priv, gpgme_status_code_t status, char *args) static gpgme_error_t command_handler (void *priv, gpgme_status_code_t status, const char *args, - int fd) + int fd, int *processed) { gpgme_ctx_t ctx = (gpgme_ctx_t) priv; gpgme_error_t err; - int processed = 0; if (ctx->passphrase_cb) { - err = _gpgme_passphrase_command_handler_internal (ctx, status, args, - fd, &processed); + err = _gpgme_passphrase_command_handler (ctx, status, args, + fd, processed); if (err) return err; } - if (!processed) + if (!*processed) { void *hook; op_data_t opd; @@ -87,8 +86,14 @@ command_handler (void *priv, gpgme_status_code_t status, const char *args, if (err) return err; + /* FIXME: We expect the user to handle _all_ status codes. + Later, we may fix the callback interface to allow the user + indicate if it processed the status code or not. */ + *processed = 1; + return (*opd->fnc) (opd->fnc_value, status, args, fd); } + return 0; } |