diff options
Diffstat (limited to '')
| -rw-r--r-- | gpgme/rungpg.c | 8 | 
1 files changed, 7 insertions, 1 deletions
| diff --git a/gpgme/rungpg.c b/gpgme/rungpg.c index 0d728fee..a53bac3a 100644 --- a/gpgme/rungpg.c +++ b/gpgme/rungpg.c @@ -478,15 +478,21 @@ command_handler (void *opaque, int fd)  {    gpgme_error_t err;    engine_gpg_t gpg = (engine_gpg_t) opaque; +  int processed = 0;    assert (gpg->cmd.used);    assert (gpg->cmd.code);    assert (gpg->cmd.fnc); -  err = gpg->cmd.fnc (gpg->cmd.fnc_value, gpg->cmd.code, gpg->cmd.keyword, fd); +  err = gpg->cmd.fnc (gpg->cmd.fnc_value, gpg->cmd.code, gpg->cmd.keyword, fd, +		      &processed);    if (err)      return err; +  /* We always need to send at least a newline character.  */ +  if (!processed) +    write (fd, "\n", 1); +    gpg->cmd.code = 0;    /* And sleep again until read_status will wake us up again.  */    /* XXX We must check if there are any more fds active after removing | 
