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;  } | 
