aboutsummaryrefslogtreecommitdiffstats
path: root/gpgme/rungpg.c
diff options
context:
space:
mode:
Diffstat (limited to 'gpgme/rungpg.c')
-rw-r--r--gpgme/rungpg.c8
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