diff options
| author | Werner Koch <[email protected]> | 2013-02-07 19:51:29 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2013-02-07 19:51:29 +0000 | 
| commit | 29eced50687dd8a39dafe704102ae09ea8e8533a (patch) | |
| tree | c8bb9b47232807d90ec0525bdf8afb3c6186c3ee /src/gpgme.c | |
| parent | Use gpg_error_from_syserror instead of directly accessing errno. (diff) | |
| download | gpgme-29eced50687dd8a39dafe704102ae09ea8e8533a.tar.gz gpgme-29eced50687dd8a39dafe704102ae09ea8e8533a.zip | |
Add public function gpgme_io_writen.
* src/gpgme.c (gpgme_io_read): New.
--
This is a writen style variant for gpgme_io_write.  It is often easier
to use this one in passphrase and edit callbacks.
Diffstat (limited to '')
| -rw-r--r-- | src/gpgme.c | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/src/gpgme.c b/src/gpgme.c index 86099d60..79895db2 100644 --- a/src/gpgme.c +++ b/src/gpgme.c @@ -634,6 +634,30 @@ gpgme_io_write (int fd, const void *buffer, size_t count)    return TRACE_SYSRES (ret);  } +/* This function provides access to the internal write function.  It +   is to be used by user callbacks to return data to gpgme.  See +   gpgme_passphrase_cb_t and gpgme_edit_cb_t.  Note that this is a +   variant of gpgme_io_write which guarantees that all COUNT bytes are +   written or an error is return.  Returns: 0 on success or -1 on +   error and the sets errno. */ +int +gpgme_io_writen (int fd, const void *buffer, size_t count) +{ +  int ret = 0; +  TRACE_BEG2 (DEBUG_GLOBAL, "gpgme_io_writen", fd, +	      "buffer=%p, count=%u", buffer, count); +  while (count) +    { +      ret = _gpgme_io_write (fd, buffer, count); +      if (ret < 0) +        break; +      buffer += ret; +      count -= ret; +      ret = 0; +    } +  return TRACE_SYSRES (ret); +} +  /* This function returns the callback function for I/O.  */  void | 
