[git] GPGME - branch, master, updated. gpgme-1.4.1-6-g6d0d8e7

by Werner Koch cvs at cvs.gnupg.org
Thu May 16 18:10:36 CEST 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG Made Easy".

The branch, master has been updated
       via  6d0d8e7ba0bb989c251545fa8af35b97d1a703ba (commit)
      from  9e7df9aa6d81f0abbabb03a2346d80eb5d375f81 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 6d0d8e7ba0bb989c251545fa8af35b97d1a703ba
Author: Werner Koch <wk at gnupg.org>
Date:   Thu Apr 25 12:00:16 2013 +0100

    Make definition of off_t robust against misbehaving w32 toolchains.
    
    * configure.ac (NEED__FILE_OFFSET_BITS): Change to define gpgme_off_t
    and gpgme_ssize_t.
    (API__OFF_T, API__SSIZE_T): New ac_subst.
    * src/gpgme.h.in: Replace all ssize_t and off_t by ac_subst macros.
    * src/assuan-support.c, src/ath-pthread.c, src/ath.c, src/ath.h
    * src/data-compat.c, src/data-fd.c, src/data-mem.c, src/data-stream.c
    * src/data-user.c, src/data.c, src/data.h, src/engine-gpgsm.c
    * src/engine-uiserver.c, src/gpgme-tool.c, src/gpgme.c: Replace off_t
    by gpgme_off_t and sszie_t by gpgme_ssize_t.
    * src/ath-pthread.c, src/ath.h: Include gpgme.h.
    --
    
    For a detailed description, see the gpgme.texi diff.

diff --git a/NEWS b/NEWS
index bf8c2f9..dc67bf7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,11 @@
 Noteworthy changes in version 1.4.2 (unreleased)
 ------------------------------------------------
 
+ * Interface changes relative to the 1.4.1 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gpgme_off_t                    NEW.
+ gpgme_size_t                   NEW.
+
 
 Noteworthy changes in version 1.4.1 (2013-05-01)
 ------------------------------------------------
diff --git a/configure.ac b/configure.ac
index 25dce1c..015995b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -282,25 +282,31 @@ AC_SUBST(NEED__FILE_OFFSET_BITS)
 
 # Figure out platform dependent typedefs for gpgme.h
 if test "$have_w32_system" = yes; then
-   if test "$have_w64_system" = yes; then
-      INSERT__TYPEDEFS_FOR_GPGME_H="/* Typedefs for the 64 bit W32 API.  */
-#include <basetsd.h>
-typedef long off_t;
-typedef __int64 ssize_t;"
-   else
-      INSERT__TYPEDEFS_FOR_GPGME_H="/* Typedefs for the 32 bit W32 API.  */
-#ifndef _OFF_T_DEFINED   /* Defined by newer mingw32 toolkits.  */
-typedef long off_t;
-#endif
-#ifndef _SSIZE_T_DEFINED /* Defined by newer mingw32 toolkits.  */
-typedef long ssize_t;
-#endif"
-   fi
+    INSERT__TYPEDEFS_FOR_GPGME_H="
+#ifdef _WIN64
+# include <stdint.h>
+  typedef int64_t gpgme_off_t;
+  typedef int64_t gpgme_ssize_t;
+#else /* _WIN32 */
+  typedef long gpgme_off_t;
+  typedef long gpgme_ssize_t;
+#endif /* _WIN32 */"
+    API__OFF_T="gpgme_off_t"
+    API__SSIZE_T="gpgme_ssize_t"
 else
-   INSERT__TYPEDEFS_FOR_GPGME_H="#include <sys/types.h>"
+    INSERT__TYPEDEFS_FOR_GPGME_H="
+#include <sys/types.h>
+typedef off_t   gpgme_off_t;
+typedef ssize_t gpgme_ssize_t;"
+    API__OFF_T="off_t"
+    API__SSIZE_T="ssize_t"
 fi
 AC_SUBST(INSERT__TYPEDEFS_FOR_GPGME_H)
 AM_SUBST_NOTMAKE(INSERT__TYPEDEFS_FOR_GPGME_H)
+AC_SUBST(API__OFF_T)
+AM_SUBST_NOTMAKE(API__OFF_T)
+AC_SUBST(API__SSIZE_T)
+AM_SUBST_NOTMAKE(API__SSIZE_T)
 
 # Checks for compiler features.
 if test "$GCC" = yes; then
diff --git a/doc/gpgme.texi b/doc/gpgme.texi
index b47d438..589747d 100644
--- a/doc/gpgme.texi
+++ b/doc/gpgme.texi
@@ -493,18 +493,42 @@ support by default and just use that.  The compatibility modes (small
 file sizes or dual mode) can be considered an historic artefact, only
 useful to allow for a transitional period.
 
- at acronym{GPGME} is compiled using largefile support by default.  This
-means that your application must do the same, at least as far as it is
-relevant for using the @file{gpgme.h} header file.  All types in this
-header files refer to their largefile counterparts, if they are
-different from any default types on the system.
-
-You can enable largefile support, if it is different from the default
-on the system the application is compiled on, by using the Autoconf
-macro @code{AC_SYS_LARGEFILE}.  If you do this, then you don't need to
-worry about anything else: It will just work.  In this case you might
-also want to use @code{AC_FUNC_FSEEKO} to take advantage of some new
-interfaces, and @code{AC_TYPE_OFF_T} (just in case).
+On POSIX platforms @acronym{GPGME} is compiled using largefile support
+by default.  This means that your application must do the same, at
+least as far as it is relevant for using the @file{gpgme.h} header
+file.  All types in this header files refer to their largefile
+counterparts, if they are different from any default types on the
+system.
+
+On 32 and 64 bit Windows platforms @code{off_t} is declared as 32 bit
+signed integer.  There is no specific support for LFS in the C
+library.  The recommendation from Microsoft is to use the native
+interface (@code{CreateFile} et al.) for large files.  Released binary
+versions of @acronym{GPGME} (libgpgme-11.dll) have always been build
+with a 32 bit @code{off_t}.  To avoid an ABI break we stick to this
+convention for 32 bit Windows by using @code{long} there.
+ at acronym{GPGME} versions for 64 bit Windows have never been released
+and thus we are able to use @code{int64_t} instead of @code{off_t}
+there.  For easier migration the typedef @code{gpgme_off_t} has been
+defined.  The reason we cannot use @code{off_t} directly is that some
+toolchains (e.g. mingw64) introduce a POSIX compatible hack for
+ at code{off_t}.  Some widely used toolkits make use of this hack and in
+turn @acronym{GPGME} would need to use it also.  However, this would
+introduce an ABI break and existing software making use of libgpgme
+might suffer from a severe break.  Thus with version 1.4.2 we
+redefined all functions using @code{off_t} to use @code{gpgme_off_t}
+which is defined as explained above.  This way we keep the ABI well
+defined and independent of any toolchain hacks.  The bottom line is
+that LFS support in @acronym{GPGME} is only available on 64 bit
+versions of Windows.
+
+On POSIX platforms you can enable largefile support, if it is
+different from the default on the system the application is compiled
+on, by using the Autoconf macro @code{AC_SYS_LARGEFILE}.  If you do
+this, then you don't need to worry about anything else: It will just
+work.  In this case you might also want to use @code{AC_FUNC_FSEEKO}
+to take advantage of some new interfaces, and @code{AC_TYPE_OFF_T}
+(just in case).
 
 If you do not use Autoconf, you can define the preprocessor symbol
 @code{_FILE_OFFSET_BITS} to 64 @emph{before} including any header
@@ -1538,6 +1562,20 @@ by using memory buffers or files rather than pipes or sockets.  This
 might be relevant, for example, if the external event loop mechanism
 is used.
 
+ at deftp {Data type} {gpgme_off_t}
+On POSIX platforms the @code{gpgme_off_t} type is an alias for
+ at code{off_t}; it may be used interchangeable.  On Windows platforms
+ at code{gpgme_off_t} is defined as a long (i.e. 32 bit) for 32 bit
+Windows and as a 64 bit signed integer for 64 bit Windows.
+ at end deftp
+
+ at deftp {Data type} {gpgme_ssize_t}
+The @code{gpgme_ssize_t} type is an alias for @code{ssize_t}.  It has
+only been introduced to overcome portability problems pertaining to
+the declaration of @code{ssize_t} by different toolchains.
+ at end deftp
+
+
 @menu
 * Creating Data Buffers::         Creating new data buffers.
 * Destroying Data Buffers::       Releasing data buffers.
diff --git a/src/assuan-support.c b/src/assuan-support.c
index 6ff0679..d06518a 100644
--- a/src/assuan-support.c
+++ b/src/assuan-support.c
@@ -68,14 +68,14 @@ my_close (assuan_context_t ctx, assuan_fd_t fd)
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 my_read (assuan_context_t ctx, assuan_fd_t fd, void *buffer, size_t size)
 {
   return _gpgme_io_read ((int) fd, buffer, size);
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 my_write (assuan_context_t ctx, assuan_fd_t fd, const void *buffer, size_t size)
 {
   return _gpgme_io_write ((int) fd, buffer, size);
diff --git a/src/ath-pthread.c b/src/ath-pthread.c
index dfbdac2..47b38ee 100644
--- a/src/ath-pthread.c
+++ b/src/ath-pthread.c
@@ -39,6 +39,8 @@
 
 #include <pthread.h>
 
+#include "gpgme.h"
+
 #include "ath.h"
 
 
@@ -130,21 +132,21 @@ ath_mutex_unlock (ath_mutex_t *lock)
 }
 
 
-ssize_t
+gpgme_ssize_t
 ath_read (int fd, void *buf, size_t nbytes)
 {
   return read (fd, buf, nbytes);
 }
 
 
-ssize_t
+gpgme_ssize_t
 ath_write (int fd, const void *buf, size_t nbytes)
 {
   return write (fd, buf, nbytes);
 }
 
 
-ssize_t
+gpgme_ssize_t
 ath_select (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
 	    struct timeval *timeout)
 {
@@ -152,7 +154,7 @@ ath_select (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
 }
 
 
-ssize_t
+gpgme_ssize_t
 ath_waitpid (pid_t pid, int *status, int options)
 {
   return waitpid (pid, status, options);
diff --git a/src/ath.c b/src/ath.c
index 52cee45..ddd8a87 100644
--- a/src/ath.c
+++ b/src/ath.c
@@ -40,8 +40,9 @@
 #include <sys/wait.h>
 #endif
 
+#include "gpgme.h"
+
 #ifdef _MSC_VER
-  typedef long ssize_t;
   typedef int  pid_t;
 #endif
 
@@ -125,7 +126,7 @@ ath_mutex_unlock (ath_mutex_t *lock)
 }
 
 
-ssize_t
+gpgme_ssize_t
 ath_read (int fd, void *buf, size_t nbytes)
 {
 #if defined(HAVE_W32CE_SYSTEM) && defined(_MSC_VER)
@@ -136,7 +137,7 @@ ath_read (int fd, void *buf, size_t nbytes)
 }
 
 
-ssize_t
+gpgme_ssize_t
 ath_write (int fd, const void *buf, size_t nbytes)
 {
 #if defined(HAVE_W32CE_SYSTEM) && defined(_MSC_VER)
@@ -147,7 +148,7 @@ ath_write (int fd, const void *buf, size_t nbytes)
 }
 
 
-ssize_t
+gpgme_ssize_t
 ath_select (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
 	    struct timeval *timeout)
 {
@@ -159,7 +160,7 @@ ath_select (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
 }
 
 
-ssize_t
+gpgme_ssize_t
 ath_waitpid (pid_t pid, int *status, int options)
 {
 #ifdef HAVE_W32_SYSTEM
diff --git a/src/ath.h b/src/ath.h
index eecf8d1..8eb9eb9 100644
--- a/src/ath.h
+++ b/src/ath.h
@@ -88,11 +88,11 @@ int ath_mutex_unlock (ath_mutex_t *mutex);
 
 /* Replacement for the POSIX functions, which can be used to allow
    other (user-level) threads to run.  */
-ssize_t ath_read (int fd, void *buf, size_t nbytes);
-ssize_t ath_write (int fd, const void *buf, size_t nbytes);
-ssize_t ath_select (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
-		    struct timeval *timeout);
-ssize_t ath_waitpid (pid_t pid, int *status, int options);
+gpgme_ssize_t ath_read (int fd, void *buf, size_t nbytes);
+gpgme_ssize_t ath_write (int fd, const void *buf, size_t nbytes);
+gpgme_ssize_t ath_select (int nfd, fd_set *rset, fd_set *wset, fd_set *eset,
+                           struct timeval *timeout);
+gpgme_ssize_t ath_waitpid (pid_t pid, int *status, int options);
 int ath_accept (int s, struct sockaddr *addr, socklen_t *length_ptr);
 int ath_connect (int s, const struct sockaddr *addr, socklen_t length);
 int ath_sendmsg (int s, const struct msghdr *msg, int flags);
diff --git a/src/data-compat.c b/src/data-compat.c
index e9ca90a..99827f1 100644
--- a/src/data-compat.c
+++ b/src/data-compat.c
@@ -41,7 +41,7 @@
    non-zero).  */
 gpgme_error_t
 gpgme_data_new_from_filepart (gpgme_data_t *r_dh, const char *fname,
-			      FILE *stream, off_t offset, size_t length)
+			      FILE *stream, gpgme_off_t offset, size_t length)
 {
 #if defined (HAVE_W32CE_SYSTEM) && defined (_MSC_VER)
   return gpgme_error (GPG_ERR_NOT_IMPLEMENTED);
@@ -175,7 +175,7 @@ gpgme_error_to_errno (gpgme_error_t err)
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 old_user_read (gpgme_data_t dh, void *buffer, size_t size)
 {
   gpgme_error_t err;
@@ -191,8 +191,8 @@ old_user_read (gpgme_data_t dh, void *buffer, size_t size)
 }
 
 
-static off_t
-old_user_seek (gpgme_data_t dh, off_t offset, int whence)
+static gpgme_off_t
+old_user_seek (gpgme_data_t dh, gpgme_off_t offset, int whence)
 {
   gpgme_error_t err;
   TRACE_BEG2 (DEBUG_DATA, "gpgme:old_user_seek", dh,
diff --git a/src/data-fd.c b/src/data-fd.c
index 4b75e94..42d6a0d 100644
--- a/src/data-fd.c
+++ b/src/data-fd.c
@@ -89,22 +89,22 @@ lseek (int fildes, long offset, int whence)
 
 
 

-static ssize_t
+static gpgme_ssize_t
 fd_read (gpgme_data_t dh, void *buffer, size_t size)
 {
   return read (dh->data.fd, buffer, size);
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 fd_write (gpgme_data_t dh, const void *buffer, size_t size)
 {
   return write (dh->data.fd, buffer, size);
 }
 
 
-static off_t
-fd_seek (gpgme_data_t dh, off_t offset, int whence)
+static gpgme_off_t
+fd_seek (gpgme_data_t dh, gpgme_off_t offset, int whence)
 {
   return lseek (dh->data.fd, offset, whence);
 }
diff --git a/src/data-mem.c b/src/data-mem.c
index fc7694d..e06a920 100644
--- a/src/data-mem.c
+++ b/src/data-mem.c
@@ -35,7 +35,7 @@
 #include "debug.h"
 
 

-static ssize_t
+static gpgme_ssize_t
 mem_read (gpgme_data_t dh, void *buffer, size_t size)
 {
   size_t amt = dh->data.mem.length - dh->data.mem.offset;
@@ -54,7 +54,7 @@ mem_read (gpgme_data_t dh, void *buffer, size_t size)
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 mem_write (gpgme_data_t dh, const void *buffer, size_t size)
 {
   size_t unused;
@@ -109,8 +109,8 @@ mem_write (gpgme_data_t dh, const void *buffer, size_t size)
 }
 
 
-static off_t
-mem_seek (gpgme_data_t dh, off_t offset, int whence)
+static gpgme_off_t
+mem_seek (gpgme_data_t dh, gpgme_off_t offset, int whence)
 {
   switch (whence)
     {
diff --git a/src/data-stream.c b/src/data-stream.c
index a9bb815..f358a0e 100644
--- a/src/data-stream.c
+++ b/src/data-stream.c
@@ -31,7 +31,7 @@
 #include "data.h"
 
 

-static ssize_t
+static gpgme_ssize_t
 stream_read (gpgme_data_t dh, void *buffer, size_t size)
 {
   size_t amt = fread (buffer, 1, size, dh->data.stream);
@@ -41,7 +41,7 @@ stream_read (gpgme_data_t dh, void *buffer, size_t size)
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 stream_write (gpgme_data_t dh, const void *buffer, size_t size)
 {
   size_t amt = fwrite (buffer, 1, size, dh->data.stream);
@@ -51,8 +51,8 @@ stream_write (gpgme_data_t dh, const void *buffer, size_t size)
 }
 
 
-static off_t
-stream_seek (gpgme_data_t dh, off_t offset, int whence)
+static gpgme_off_t
+stream_seek (gpgme_data_t dh, gpgme_off_t offset, int whence)
 {
   int err;
 
diff --git a/src/data-user.c b/src/data-user.c
index 5204614..816ad7d 100644
--- a/src/data-user.c
+++ b/src/data-user.c
@@ -31,7 +31,7 @@
 #include "data.h"
 
 

-static ssize_t
+static gpgme_ssize_t
 user_read (gpgme_data_t dh, void *buffer, size_t size)
 {
   if (!dh->data.user.cbs->read)
@@ -44,7 +44,7 @@ user_read (gpgme_data_t dh, void *buffer, size_t size)
 }
 
 
-static ssize_t
+static gpgme_ssize_t
 user_write (gpgme_data_t dh, const void *buffer, size_t size)
 {
   if (!dh->data.user.cbs->write)
@@ -57,8 +57,8 @@ user_write (gpgme_data_t dh, const void *buffer, size_t size)
 }
 
 
-static off_t
-user_seek (gpgme_data_t dh, off_t offset, int whence)
+static gpgme_off_t
+user_seek (gpgme_data_t dh, gpgme_off_t offset, int whence)
 {
   if (!dh->data.user.cbs->seek)
     {
diff --git a/src/data.c b/src/data.c
index 0657081..7123a82 100644
--- a/src/data.c
+++ b/src/data.c
@@ -72,10 +72,10 @@ _gpgme_data_release (gpgme_data_t dh)
 /* Read up to SIZE bytes into buffer BUFFER from the data object with
    the handle DH.  Return the number of characters read, 0 on EOF and
    -1 on error.  If an error occurs, errno is set.  */
-ssize_t
+gpgme_ssize_t
 gpgme_data_read (gpgme_data_t dh, void *buffer, size_t size)
 {
-  ssize_t res;
+  gpgme_ssize_t res;
   TRACE_BEG2 (DEBUG_DATA, "gpgme_data_read", dh,
 	      "buffer=%p, size=%u", buffer, size);
 
@@ -100,10 +100,10 @@ gpgme_data_read (gpgme_data_t dh, void *buffer, size_t size)
 /* Write up to SIZE bytes from buffer BUFFER to the data object with
    the handle DH.  Return the number of characters written, or -1 on
    error.  If an error occurs, errno is set.  */
-ssize_t
+gpgme_ssize_t
 gpgme_data_write (gpgme_data_t dh, const void *buffer, size_t size)
 {
-  ssize_t res;
+  gpgme_ssize_t res;
   TRACE_BEG2 (DEBUG_DATA, "gpgme_data_write", dh,
 	      "buffer=%p, size=%u", buffer, size);
 
@@ -128,8 +128,8 @@ gpgme_data_write (gpgme_data_t dh, const void *buffer, size_t size)
 /* Set the current position from where the next read or write starts
    in the data object with the handle DH to OFFSET, relativ to
    WHENCE.  */
-off_t
-gpgme_data_seek (gpgme_data_t dh, off_t offset, int whence)
+gpgme_off_t
+gpgme_data_seek (gpgme_data_t dh, gpgme_off_t offset, int whence)
 {
   TRACE_BEG2 (DEBUG_DATA, "gpgme_data_seek", dh,
 	      "offset=%lli, whence=%i", offset, whence);
@@ -253,7 +253,7 @@ _gpgme_data_inbound_handler (void *opaque, int fd)
   gpgme_data_t dh = (gpgme_data_t) data->handler_value;
   char buffer[BUFFER_SIZE];
   char *bufp = buffer;
-  ssize_t buflen;
+  gpgme_ssize_t buflen;
   TRACE_BEG1 (DEBUG_CTX, "_gpgme_data_inbound_handler", dh,
 	      "fd=0x%x", fd);
 
@@ -268,7 +268,7 @@ _gpgme_data_inbound_handler (void *opaque, int fd)
 
   do
     {
-      ssize_t amt = gpgme_data_write (dh, bufp, buflen);
+      gpgme_ssize_t amt = gpgme_data_write (dh, bufp, buflen);
       if (amt == 0 || (amt < 0 && errno != EINTR))
 	return TRACE_ERR (gpg_error_from_syserror ());
       bufp += amt;
@@ -284,13 +284,13 @@ _gpgme_data_outbound_handler (void *opaque, int fd)
 {
   struct io_cb_data *data = (struct io_cb_data *) opaque;
   gpgme_data_t dh = (gpgme_data_t) data->handler_value;
-  ssize_t nwritten;
+  gpgme_ssize_t nwritten;
   TRACE_BEG1 (DEBUG_CTX, "_gpgme_data_outbound_handler", dh,
 	      "fd=0x%x", fd);
 
   if (!dh->pending_len)
     {
-      ssize_t amt = gpgme_data_read (dh, dh->pending, BUFFER_SIZE);
+      gpgme_ssize_t amt = gpgme_data_read (dh, dh->pending, BUFFER_SIZE);
       if (amt < 0)
 	return TRACE_ERR (gpg_error_from_syserror ());
       if (amt == 0)
diff --git a/src/data.h b/src/data.h
index 5076619..3d404af 100644
--- a/src/data.h
+++ b/src/data.h
@@ -36,20 +36,23 @@
 /* Read up to SIZE bytes into buffer BUFFER from the data object with
    the handle DH.  Return the number of characters read, 0 on EOF and
    -1 on error.  If an error occurs, errno is set.  */
-typedef ssize_t (*gpgme_data_read_cb) (gpgme_data_t dh, void *buffer,
-				       size_t size);
+typedef gpgme_ssize_t (*gpgme_data_read_cb) (gpgme_data_t dh,
+                                             void *buffer,
+                                             size_t size);
 
 /* Write up to SIZE bytes from buffer BUFFER to the data object with
    the handle DH.  Return the number of characters written, or -1 on
    error.  If an error occurs, errno is set.  */
-typedef ssize_t (*gpgme_data_write_cb) (gpgme_data_t dh, const void *buffer,
-					size_t size);
+typedef gpgme_ssize_t (*gpgme_data_write_cb) (gpgme_data_t dh,
+                                              const void *buffer,
+                                              size_t size);
 
 /* Set the current position from where the next read or write starts
    in the data object with the handle DH to OFFSET, relativ to
    WHENCE.  */
-typedef off_t (*gpgme_data_seek_cb) (gpgme_data_t dh, off_t offset,
-				     int whence);
+typedef gpgme_off_t (*gpgme_data_seek_cb) (gpgme_data_t dh,
+                                            gpgme_off_t offset,
+                                            int whence);
 
 /* Release the data object with the handle DH.  */
 typedef void (*gpgme_data_release_cb) (gpgme_data_t dh);
@@ -109,7 +112,7 @@ struct gpgme_data
       /* Allocated size of BUFFER.  */
       size_t size;
       size_t length;
-      off_t offset;
+      gpgme_off_t offset;
     } mem;
 
     /* For gpgme_data_new_from_read_cb.  */
diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c
index 79adde2..391b632 100644
--- a/src/engine-gpgsm.c
+++ b/src/engine-gpgsm.c
@@ -891,7 +891,7 @@ status_handler (void *opaque, int fd)
           char *src = line + 2;
 	  char *end = line + linelen;
 	  char *dst = src;
-          ssize_t nwritten;
+          gpgme_ssize_t nwritten;
 
           linelen = 0;
           while (src < end)
diff --git a/src/engine-uiserver.c b/src/engine-uiserver.c
index a68915a..a0008e4 100644
--- a/src/engine-uiserver.c
+++ b/src/engine-uiserver.c
@@ -754,7 +754,7 @@ status_handler (void *opaque, int fd)
           char *src = line + 2;
 	  char *end = line + linelen;
 	  char *dst = src;
-          ssize_t nwritten;
+          gpgme_ssize_t nwritten;
 
           linelen = 0;
           while (src < end)
diff --git a/src/gpgme-tool.c b/src/gpgme-tool.c
index 978c387..bce52b8 100644
--- a/src/gpgme-tool.c
+++ b/src/gpgme-tool.c
@@ -3056,7 +3056,7 @@ _cmd_genkey_write (gpgme_data_t data, const void *buf, size_t size)
 {
   while (size > 0)
     {
-      ssize_t writen = gpgme_data_write (data, buf, size);
+      gpgme_ssize_t writen = gpgme_data_write (data, buf, size);
       if (writen < 0 && errno != EAGAIN)
 	return gpg_error_from_syserror ();
       else if (writen > 0)
@@ -3112,7 +3112,7 @@ cmd_genkey (assuan_context_t ctx, char *line)
   do
     {
       char buf[512];
-      ssize_t readn = gpgme_data_read (inp_data, buf, sizeof (buf));
+      gpgme_ssize_t readn = gpgme_data_read (inp_data, buf, sizeof (buf));
       if (readn < 0)
 	{
 	  err = gpg_error_from_syserror ();
diff --git a/src/gpgme.c b/src/gpgme.c
index 281ba9c..a8de64b 100644
--- a/src/gpgme.c
+++ b/src/gpgme.c
@@ -643,7 +643,7 @@ gpgme_set_io_cbs (gpgme_ctx_t ctx, gpgme_io_cbs_t io_cbs)
 
 /* This function provides access to the internal read function; it is
    normally not used.  */
-ssize_t
+gpgme_ssize_t
 gpgme_io_read (int fd, void *buffer, size_t count)
 {
   int ret;
@@ -659,7 +659,7 @@ gpgme_io_read (int fd, void *buffer, size_t count)
 /* 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.  */
-ssize_t
+gpgme_ssize_t
 gpgme_io_write (int fd, const void *buffer, size_t count)
 {
   int ret;
diff --git a/src/gpgme.h.in b/src/gpgme.h.in
index 12bd4ac..caf64d4 100644
--- a/src/gpgme.h.in
+++ b/src/gpgme.h.in
@@ -18,7 +18,7 @@
    You should have received a copy of the GNU Lesser General Public
    License along with this program; if not, see <http://www.gnu.org/licenses/>.
 
-   File: @configure_input@  */
+   Generated from gpgme.h.in for @GPGME_CONFIG_HOST at .  */
 
 #ifndef GPGME_H
 #define GPGME_H
@@ -33,10 +33,8 @@
 
 /* Include stdio.h for the FILE type definition.  */
 #include <stdio.h>
-
- at INSERT__TYPEDEFS_FOR_GPGME_H@
-
 #include <time.h>
+ at INSERT__TYPEDEFS_FOR_GPGME_H@
 
 #include <gpg-error.h>
 
@@ -1043,8 +1041,8 @@ void gpgme_get_io_cbs (gpgme_ctx_t ctx, gpgme_io_cbs_t io_cbs);
 
 /* Wrappers around the internal I/O functions for use with
    gpgme_passphrase_cb_t and gpgme_edit_cb_t.  */
-ssize_t gpgme_io_read (int fd, void *buffer, size_t count);
-ssize_t gpgme_io_write (int fd, const void *buffer, size_t count);
+ at API__SSIZE_T@ gpgme_io_read (int fd, void *buffer, size_t count);
+ at API__SSIZE_T@ gpgme_io_write (int fd, const void *buffer, size_t count);
 int     gpgme_io_writen (int fd, const void *buffer, size_t count);
 
 /* Process the pending operation and, if HANG is non-zero, wait for
@@ -1060,19 +1058,20 @@ gpgme_ctx_t gpgme_wait_ext (gpgme_ctx_t ctx, gpgme_error_t *status,
 /* Read up to SIZE bytes into buffer BUFFER from the data object with
    the handle HANDLE.  Return the number of characters read, 0 on EOF
    and -1 on error.  If an error occurs, errno is set.  */
-typedef ssize_t (*gpgme_data_read_cb_t) (void *handle, void *buffer,
+typedef @API__SSIZE_T@ (*gpgme_data_read_cb_t) (void *handle, void *buffer,
 					 size_t size);
 
 /* Write up to SIZE bytes from buffer BUFFER to the data object with
    the handle HANDLE.  Return the number of characters written, or -1
    on error.  If an error occurs, errno is set.  */
-typedef ssize_t (*gpgme_data_write_cb_t) (void *handle, const void *buffer,
+typedef @API__SSIZE_T@ (*gpgme_data_write_cb_t) (void *handle, const void *buffer,
 					  size_t size);
 
 /* Set the current position from where the next read or write starts
    in the data object with the handle HANDLE to OFFSET, relativ to
    WHENCE.  */
-typedef off_t (*gpgme_data_seek_cb_t) (void *handle, off_t offset, int whence);
+typedef @API__OFF_T@ (*gpgme_data_seek_cb_t) (void *handle,
+                                       @API__OFF_T@ offset, int whence);
 
 /* Close the data object with the handle DL.  */
 typedef void (*gpgme_data_release_cb_t) (void *handle);
@@ -1089,17 +1088,17 @@ typedef struct gpgme_data_cbs *gpgme_data_cbs_t;
 /* Read up to SIZE bytes into buffer BUFFER from the data object with
    the handle DH.  Return the number of characters read, 0 on EOF and
    -1 on error.  If an error occurs, errno is set.  */
-ssize_t gpgme_data_read (gpgme_data_t dh, void *buffer, size_t size);
+ at API__SSIZE_T@ gpgme_data_read (gpgme_data_t dh, void *buffer, size_t size);
 
 /* Write up to SIZE bytes from buffer BUFFER to the data object with
    the handle DH.  Return the number of characters written, or -1 on
    error.  If an error occurs, errno is set.  */
-ssize_t gpgme_data_write (gpgme_data_t dh, const void *buffer, size_t size);
+ at API__SSIZE_T@ gpgme_data_write (gpgme_data_t dh, const void *buffer, size_t size);
 
 /* Set the current position from where the next read or write starts
    in the data object with the handle DH to OFFSET, relativ to
    WHENCE.  */
-off_t gpgme_data_seek (gpgme_data_t dh, off_t offset, int whence);
+ at API__OFF_T@ gpgme_data_seek (gpgme_data_t dh, @API__OFF_T@ offset, int whence);
 
 /* Create a new data buffer and return it in R_DH.  */
 gpgme_error_t gpgme_data_new (gpgme_data_t *r_dh);
@@ -1168,7 +1167,7 @@ gpgme_error_t gpgme_data_new_from_file (gpgme_data_t *r_dh,
    non-zero).  */
 gpgme_error_t gpgme_data_new_from_filepart (gpgme_data_t *r_dh,
 					    const char *fname, FILE *fp,
-					    off_t offset, size_t length);
+					    @API__OFF_T@ offset, size_t length);
 
 /* Reset the read pointer in DH.  Deprecated, please use
    gpgme_data_seek instead.  */

-----------------------------------------------------------------------

Summary of changes:
 NEWS                  |    5 ++++
 configure.ac          |   36 ++++++++++++++++------------
 doc/gpgme.texi        |   62 +++++++++++++++++++++++++++++++++++++++---------
 src/assuan-support.c  |    4 +-
 src/ath-pthread.c     |   10 ++++---
 src/ath.c             |   11 ++++----
 src/ath.h             |   10 ++++----
 src/data-compat.c     |    8 +++---
 src/data-fd.c         |    8 +++---
 src/data-mem.c        |    8 +++---
 src/data-stream.c     |    8 +++---
 src/data-user.c       |    8 +++---
 src/data.c            |   20 ++++++++--------
 src/data.h            |   17 ++++++++-----
 src/engine-gpgsm.c    |    2 +-
 src/engine-uiserver.c |    2 +-
 src/gpgme-tool.c      |    4 +-
 src/gpgme.c           |    4 +-
 src/gpgme.h.in        |   25 +++++++++----------
 19 files changed, 153 insertions(+), 99 deletions(-)


hooks/post-receive
-- 
GnuPG Made Easy
http://git.gnupg.org




More information about the Gnupg-commits mailing list