Insert platform dependent typedefs into gpgme.h
authorWerner Koch <wk@gnupg.org>
Wed, 6 Apr 2011 11:45:15 +0000 (13:45 +0200)
committerWerner Koch <wk@gnupg.org>
Wed, 6 Apr 2011 11:45:15 +0000 (13:45 +0200)
We already modify gpgme.h per playform and thus we can also get rid of
some #ifdefs.  The change does not change anything for current
platforms but should do the right think for W64.

Note that as per MS specs ssize_t is to be defined as LONG_PTR which
translates to a long on 32 bit platforms and to __int64 on 64 bit
Windows platforms.  We already used long in the past.  There seems to
be a problem with some versions of mingw32 which includes a ssize_t
type typedefed to int.  O(n 32 bit W32 platforms int and long are
identically.

ChangeLog
autogen.sh
configure.ac
src/ChangeLog
src/gpgme.h.in

index 27e737454da80431670b45c4e4f8807738dd0630..3163b54ac46309ef0144e09d6b127e2412a3d059 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-04-06  Werner Koch  <wk@g10code.com>
+
+       * autogen.sh (--build-w32): Support option --build-w64.
+       * configure.ac (HAVE_W64_SYSTEM): Define.
+       (INSERT__TYPEDEFS_FOR_GPGME_H): New.
+
 2011-02-02  Marcus Brinkmann  <mb@g10code.com>
 
        * configure.ac (NEED_LIBASSUAN_VERSION): Bump to 2.0.2 for system hooks.
 
 2008-09-16  Marcus Brinkmann  <marcus@g10code.com>
 
-       * configure.ac (_XOPEN_SOURCE) [apple-darwin]: Define it. 
+       * configure.ac (_XOPEN_SOURCE) [apple-darwin]: Define it.
 
 2008-07-04  Werner Koch  <wk@g10code.com>
 
        * config.guess, config.sub: Update to 2007-11-19.  Also update
-       missing et al scripts. 
+       missing et al scripts.
 
 2008-04-01  Werner Koch  <wk@g10code.com>
 
        * assuan/Makefile.am (INCLUDES): Include $(top_srcdir)/gpgme.
        * assuan/assuan.h: Include <ath.h> instead of trying to duplicate
        the definitions.
-       
+
        * assuan/: Update files to 2007-07-04 version of assuan.
 
        * autogen.sh: Use = not == in test.
 2007-01-29  Marcus Brinkmann  <marcus@g10code.de>
 
        Released 1.1.3.
-       
+
        * configure.ac (LIBGPGME_LT_REVISION): Bump for release.
 
 2007-01-26  Werner Koch  <wk@g10code.com>
 2004-04-06  Werner Koch  <wk@gnupg.org>
 
        Released 0.4.6.
-       
+
        * config.guess, config.sub, ltmain.sh: Updated to those from
        libtools 1.5.4.
 
 2004-01-12  Werner Koch  <wk@gnupg.org>
 
        Released 0.4.4.
-       
-       * configure.ac: Bumbed LT_Revision; now at C12/A1/R1. 
+
+       * configure.ac: Bumbed LT_Revision; now at C12/A1/R1.
        (NEED_GPGSM_VERSION): Set to 1.9.3.
        (min_automake_version): Added.
        * README.CVS: New.
        (AC_CONFIG_FILES): Remove bonobo/Makefile.
        * Makefile.am (bonobo): Remove variable.
        (SUBDIRS): Remove ${bonobo}.
-       
+
        * configure.ac: Remove all uses of GNUPG_CHECK_TYPEDEF, for byte,
        ushort, ulong, u16 and u32.
        * acinclude.m4 (GNUPG_CHECK_TYPEDEF): Remove macro.
 2002-12-23  Marcus Brinkmann  <marcus@g10code.de>
 
        * configure.ac: Bump up to 0.4.1.
-       
+
        Released 0.4.0.
 
 2002-12-23  Marcus Brinkmann  <marcus@g10code.de>
 2002-09-20  Werner Koch  <wk@gnupg.org>
 
        Released 0.3.11.
-       
+
        * configure.ac: Bump up LIBGPGME_LT_REVISION.
 
        * configure.ac (AC_CHECK_HEADERS): Check for sys/select.h.
 2002-06-25  Werner Koch  <wk@gnupg.org>
 
        Released 0.3.8.
-       
+
        * configure.ac: Bumbed LT version to 9/3/0.
        (NEED_GPGSM_VERSION): Need 0.3.8 due to fixed export command.
 
        * configure.ac: Bumbed version to 0.3.4-cvs to continue development.
 
        Released 0.3.4.
-       
+
        * configure.ac: Bumbed LT version numbers to (7,1,0), requires
        gpgsm 0.3.1.
 
        * jnlib/Makefile.am: Rever to older version that includes xmalloc
        but not dotlock and some other files.  Reported by Stéphane
        Corthésy.
-       
+
 2002-02-10  Marcus Brinkmann  <marcus@g10code.de>
 
        * Released 0.3.2.
 2001-09-17  Werner Koch  <wk@gnupg.org>
 
        Released 0.2.3.
-       
+
        * configure.in (NEED_GPG_VERSION): Set to 1.0.6. Incremented LT
        current and age.
 
 
 2001-04-05  Werner Koch  <wk@gnupg.org>
 
-       * configure.in (NEED_GPG_VERSION): Set to 1.0.4g 
+       * configure.in (NEED_GPG_VERSION): Set to 1.0.4g
 
 2001-04-02  Werner Koch  <wk@gnupg.org>
 
        Released 0.2.1.
 
        Changed the copyright notices all over the place.
-       
+
 2001-02-28  Werner Koch  <wk@gnupg.org>
 
        Released 0.2.0.
index 23d672a3004e981ca65b77bb04d676b931be54de..2d0794899e43f61e1f2db5719994829d40fdf846 100755 (executable)
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Run this to generate all the initial makefiles, etc. 
+# Run this to generate all the initial makefiles, etc.
 #
 # Copyright (C) 2003 g10 Code GmbH
 #
@@ -43,7 +43,7 @@ w32ce_toolprefixes=
 w32ce_extraoptions=
 amd64_toolprefixes=
 # End list of optional variables sourced from ~/.gnupg-autogen.rc
-# What follows are variables which are sourced but default to 
+# What follows are variables which are sourced but default to
 # environment variables or lacking them hardcoded values.
 #w32root=
 #w32ce_root=
@@ -55,7 +55,7 @@ if [ -f "$HOME/.gnupg-autogen.rc" ]; then
 fi
 
 # Convenience option to use certain configure options for some hosts.
-myhost="" 
+myhost=""
 myhostsub=""
 case "$1" in
     --build-w32)
@@ -65,6 +65,10 @@ case "$1" in
         myhost="w32"
         myhostsub="ce"
         ;;
+    --build-w64)
+        myhost="w32"
+        myhostsub="64"
+        ;;
     --build-amd64)
         myhost="amd64"
         ;;
@@ -95,13 +99,18 @@ if [ "$myhost" = "w32" ]; then
           [ -z "$w32root" ] && w32root="$HOME/w32ce_root"
           toolprefixes="arm-mingw32ce"
           ;;
+        64)
+          w32root="$w64root"
+          [ -z "$w32root" ] && w32root="$HOME/w64root"
+          toolprefixes="amd64-mingw32msvc"
+          ;;
         *)
           [ -z "$w32root" ] && w32root="$HOME/w32root"
           toolprefixes="i586-mingw32msvc i386-mingw32msvc"
           ;;
     esac
     echo "Using $w32root as standard install directory" >&2
-    
+
     crossbindir=
     for host in $toolprefixes; do
         if ${host}-gcc --version >/dev/null 2>&1 ; then
@@ -112,14 +121,14 @@ if [ "$myhost" = "w32" ]; then
     done
     if [ -z "$crossbindir" ]; then
         echo "Cross compiler kit not installed" >&2
-        if [ -z "$sub" ]; then 
+        if [ -z "$myhostsub" ]; then
           echo "Under Debian GNU/Linux, you may install it using" >&2
-          echo "  apt-get install mingw32 mingw32-runtime mingw32-binutils" >&2 
+          echo "  apt-get install mingw32 mingw32-runtime mingw32-binutils" >&2
         fi
         echo "Stop." >&2
         exit 1
     fi
-   
+
     if [ -f "$tsdir/config.log" ]; then
         if ! head $tsdir/config.log | grep "$host" >/dev/null; then
             echo "Pease run a 'make distclean' first" >&2
@@ -151,7 +160,7 @@ if [ "$myhost" = "amd64" ]; then
 
     [ -z "$amd64root" ] && amd64root="$HOME/amd64root"
     echo "Using $amd64root as standard install directory" >&2
-    
+
     # Locate the cross compiler
     crossbindir=
     for host in x86_64-linux-gnu amd64-linux-gnu; do
@@ -166,7 +175,7 @@ if [ "$myhost" = "amd64" ]; then
         echo "Stop." >&2
         exit 1
     fi
-   
+
     if [ -f "$tsdir/config.log" ]; then
         if ! head $tsdir/config.log | grep "$host" >/dev/null; then
             echo "Please run a 'make distclean' first" >&2
@@ -175,7 +184,7 @@ if [ "$myhost" = "amd64" ]; then
     fi
 
     $tsdir/configure --enable-maintainer-mode --prefix=${amd64root}  \
-             --host=${host} --build=${build} 
+             --host=${host} --build=${build}
     rc=$?
     exit $rc
 fi
@@ -184,19 +193,19 @@ fi
 
 
 # Grep the required versions from configure.ac
-autoconf_vers=`sed -n '/^AC_PREREQ(/ { 
+autoconf_vers=`sed -n '/^AC_PREREQ(/ {
 s/^.*(\(.*\))/\1/p
 q
 }' ${configure_ac}`
 autoconf_vers_num=`echo "$autoconf_vers" | cvtver`
 
-automake_vers=`sed -n '/^min_automake_version=/ { 
+automake_vers=`sed -n '/^min_automake_version=/ {
 s/^.*="\(.*\)"/\1/p
 q
 }' ${configure_ac}`
 automake_vers_num=`echo "$automake_vers" | cvtver`
 
-#gettext_vers=`sed -n '/^AM_GNU_GETTEXT_VERSION(/ { 
+#gettext_vers=`sed -n '/^AM_GNU_GETTEXT_VERSION(/ {
 #s/^.*(\(.*\))/\1/p
 #q
 #}' ${configure_ac}`
@@ -233,9 +242,9 @@ fi
 if test "$DIE" = "yes"; then
     cat <<EOF
 
-Note that you may use alternative versions of the tools by setting 
+Note that you may use alternative versions of the tools by setting
 the corresponding environment variables; see README.CVS for details.
-                   
+
 EOF
     exit 1
 fi
@@ -249,6 +258,6 @@ $AUTOMAKE --gnu;
 echo "Running autoconf${FORCE} ..."
 $AUTOCONF${FORCE}
 
-echo "You may now run 
+echo "You may now run
   ./configure --enable-maintainer-mode && make
 "
index d515d544ec217f9dc15067f0a591e6afe868fcb8..b0f6e488885cff6906f655761c87526ddc79f035 100644 (file)
@@ -1,24 +1,24 @@
 # configure.ac for GPGME
 # Copyright (C) 2000 Werner Koch (dd9jn)
 # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-#               2009, 2010  g10 Code GmbH
-# 
+#               2009, 2010, 2011  g10 Code GmbH
+#
 # This file is part of GPGME.
-# 
+#
 # GPGME is free software; you can redistribute it and/or modify it
 # under the terms of the GNU Lesser General Public License as
 # published by the Free Software Foundation; either version 2.1 of the
 # License, or (at your option) any later version.
-# 
+#
 # GPGME is distributed in the hope that it will be useful, but WITHOUT
 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU Lesser General Public
 # License along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
 # (Process this file with autoconf to produce a configure script.)
 AC_PREREQ(2.59)
 min_automake_version="1.10"
@@ -39,7 +39,7 @@ m4_define([svn_revision], m4_esyscmd([printf "%d" $( (svn info 2>/dev/null \
             || echo 'Revision: 0')|sed -n '/^Revision:/ {s/[^0-9]//gp;q;}')]))
 m4_define([git_revision], m4_esyscmd([git branch -v 2>/dev/null \
           | awk '/^\* / {printf "%s",$3}']))
-AC_INIT([gpgme], 
+AC_INIT([gpgme],
         [my_version[]m4_if(my_issvn,[yes],
         [m4_if(git_revision,[],[-svn[]svn_revision],[-git[]git_revision])])],
         [bug-gpgme@gnupg.org])
@@ -132,16 +132,19 @@ G13_DEFAULT=no
 component_system=None
 have_dosish_system=no
 have_w32_system=no
+have_w64_system=no
 build_w32_glib=no
 build_w32_qt=no
 case "${host}" in
+    x86_64-*mingw32*)
+        have_w64_system=yes
+        ;;
     *-mingw32ce*)
         have_w32ce_system=yes
        ;;
 esac
 case "${host}" in
     *-mingw32ce*|*-mingw32*)
-        # special stuff for Windoze NT
        have_dosish_system=yes
         have_w32_system=yes
         GPG_DEFAULT='c:\\gnupg\\gpg.exe'
@@ -187,20 +190,31 @@ esac
 
 if test "$have_dosish_system" = yes; then
    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
-             [Defined if we run on some of the PCDOS like systems 
+             [Defined if we run on some of the PCDOS like systems
               (DOS, Windoze. OS/2) with special properties like
               no file modes])
 fi
 AM_CONDITIONAL(HAVE_DOSISH_SYSTEM, test "$have_dosish_system" = yes)
 
 if test "$have_w32_system" = yes; then
-   AC_DEFINE(HAVE_W32_SYSTEM,1, [Defined if we run on a W32 API based system])
+   AC_DEFINE(HAVE_W32_SYSTEM,1,
+             [Defined if we run on any kind of W32 API based system])
+   ACSUBST
 fi
 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
+
+if test "$have_w64_system" = yes; then
+   AC_DEFINE(HAVE_W64_SYSTEM,1,
+             [Defined if we run on a 64 bit W32 API based system])
+fi
+AM_CONDITIONAL(HAVE_W64_SYSTEM, test "$have_w64_system" = yes)
+
 if test "$have_w32ce_system" = yes; then
-   AC_DEFINE(HAVE_W32CE_SYSTEM,1, [Defined if we run on a W32 CE API based system])
+   AC_DEFINE(HAVE_W32CE_SYSTEM,1,
+             [Defined if we run on a W32 CE API based system])
 fi
 AM_CONDITIONAL(HAVE_W32CE_SYSTEM, test "$have_w32ce_system" = yes)
+
 AM_CONDITIONAL(BUILD_W32_GLIB, test "$build_w32_glib" = yes)
 AM_CONDITIONAL(BUILD_W32_QT, test "$build_w32_qt" = yes)
 
@@ -233,6 +247,22 @@ case "$ac_cv_sys_file_offset_bits" in
 esac
 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.  */
+typedef long off_t;
+typedef long ssize_t;"
+   fi
+else
+   INSERT__TYPEDEFS_FOR_GPGME_H="#include <sys/types.h>"
+fi
+AC_SUBST(INSERT__TYPEDEFS_FOR_GPGME_H)
 
 # Checks for compiler features.
 if test "$GCC" = yes; then
@@ -835,7 +865,7 @@ AM_CONDITIONAL(BUILD_COMPLUS, test "$component_system" = "COM+")
 # Generate values for the DLL version info
 if test "$have_w32_system" = yes; then
     BUILD_TIMESTAMP=`date --iso-8601=minutes`
-    changequote(,)dnl 
+    changequote(,)dnl
     BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
     changequote([,])dnl
     BUILD_FILEVERSION="${BUILD_FILEVERSION}${BUILD_REVISION}"
@@ -857,7 +887,7 @@ AH_VERBATIM([SEPCONSTANTS],
 
 AH_BOTTOM([
 /* Definition of GCC specific attributes.  */
-#if __GNUC__ > 2 
+#if __GNUC__ > 2
 # define GPGME_GCC_A_PURE  __attribute__ ((__pure__))
 #else
 # define GPGME_GCC_A_PURE
@@ -868,7 +898,7 @@ AH_BOTTOM([
 ])
 
 
-# Substitution used for gpgme-config 
+# Substitution used for gpgme-config
 GPGME_CONFIG_LIBS="-lgpgme"
 GPGME_CONFIG_CFLAGS=""
 AC_SUBST(GPGME_CONFIG_API_VERSION)
@@ -917,10 +947,10 @@ fi
 
 
 #
-# Create config files 
+# Create config files
 
 AC_CONFIG_FILES(Makefile src/Makefile
-               tests/Makefile 
+               tests/Makefile
                 tests/gpg/Makefile
                 tests/gpgsm/Makefile
                 tests/opassuan/Makefile
index 94200bc36873cbfbdaeb0b0695563ba65e5fe831..07b62bdb4e239835cff524f254c21bc632b154ad 100644 (file)
@@ -1,3 +1,8 @@
+2011-04-06  Werner Koch  <wk@g10code.com>
+
+       * gpgme.h.in: Use INSERT__TYPEDEFS_FOR_GPGME_H to include platform
+       specific typedefs.
+
 2011-02-03  Werner Koch  <wk@g10code.com>
 
        * extra-stati.h: New.
@@ -18,7 +23,7 @@
        (is_socket): Remove function.
        (_gpgme_io_spawn) [HAVE_W32CE_SYSTEM]: Remove some dead code.
        (_gpgme_io_spawn): Translate handles before DuplicateHandle them.
-       
+
 2011-02-02  Marcus Brinkmann  <mb@g10code.com>
 
        * w32-util.c (mkstemp): Don't use CreateFile instead of open (the
        * data.c (gpgme_data_rewind): Allow to rewind data_type_none.
 
 
- Copyright 2001,2002,2003,2004,2005,2006,2007,2008,2009 g10 Code GmbH
+ Copyright 2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,
+          2011 g10 Code GmbH
 
  This file is free software; as a special exception the author gives
  unlimited permission to copy and/or distribute it, with or without
index a70ff2adca6fead460340d952ff2f1bd514e82ab..e75de194870af8da3076aabb9a13883cee825310 100644 (file)
@@ -4,20 +4,20 @@
                  2010 g10 Code GmbH
 
    This file is part of GPGME.
+
    GPGME is free software; you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as
    published by the Free Software Foundation; either version 2.1 of
    the License, or (at your option) any later version.
-   
+
    GPGME is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.
-   
+
    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@  */
 
 #ifndef GPGME_H
 /* Include stdio.h for the FILE type definition.  */
 #include <stdio.h>
 
-#ifdef _WIN32
-  typedef long off_t;
-  typedef long ssize_t;
-#else
-# include <sys/types.h>
-#endif
+@INSERT__TYPEDEFS_FOR_GPGME_H@
 
 #include <time.h>
 
@@ -233,7 +228,7 @@ gpgme_pubkey_algo_t;
 /* Hash algorithms from libgcrypt.  */
 typedef enum
   {
-    GPGME_MD_NONE          = 0,  
+    GPGME_MD_NONE          = 0,
     GPGME_MD_MD5           = 1,
     GPGME_MD_SHA1          = 2,
     GPGME_MD_RMD160        = 3,
@@ -341,7 +336,7 @@ typedef enum
     GPGME_PROTOCOL_GPGCONF = 2,  /* Special code for gpgconf.  */
     GPGME_PROTOCOL_ASSUAN  = 3,  /* Low-level access to an Assuan server.  */
     GPGME_PROTOCOL_G13     = 4,
-    GPGME_PROTOCOL_UISERVER= 5,  
+    GPGME_PROTOCOL_UISERVER= 5,
     GPGME_PROTOCOL_DEFAULT = 254,
     GPGME_PROTOCOL_UNKNOWN = 255
   }
@@ -367,7 +362,7 @@ typedef unsigned int gpgme_export_mode_t;
 
 \f
 /* Flags for the audit log functions.  */
-#define GPGME_AUDITLOG_HTML      1 
+#define GPGME_AUDITLOG_HTML      1
 #define GPGME_AUDITLOG_WITH_HELP 128
 
 \f
@@ -523,7 +518,7 @@ struct _gpgme_engine_info
 
   /* The file name of the engine binary.  */
   char *file_name;
-  
+
   /* The version string of the installed engine.  */
   char *version;
 
@@ -576,7 +571,7 @@ struct _gpgme_subkey
 
   /* Internal to GPGME, do not use.  */
   unsigned int _unused : 21;
-  
+
   /* Public key algorithm supported by this subkey.  */
   gpgme_pubkey_algo_t pubkey_algo;
 
@@ -688,7 +683,7 @@ struct _gpgme_user_id
   unsigned int _unused : 30;
 
   /* The validity of the user ID.  */
-  gpgme_validity_t validity; 
+  gpgme_validity_t validity;
 
   /* The user ID string.  */
   char *uid;
@@ -1718,7 +1713,7 @@ struct _gpgme_trust_item
 
   /* The calculated validity.  */
   char *validity;
+
   /* Internal to GPGME, do not use.  */
   char _validity[2];
 
@@ -1772,13 +1767,13 @@ int gpgme_trust_item_get_int_attr (gpgme_trust_item_t item, _gpgme_attr_t what,
    available GPG_ERR_NO_DATA is returned.  */
 gpgme_error_t gpgme_op_getauditlog_start (gpgme_ctx_t ctx, gpgme_data_t output,
                                           unsigned int flags);
-gpgme_error_t gpgme_op_getauditlog (gpgme_ctx_t ctx, gpgme_data_t output, 
+gpgme_error_t gpgme_op_getauditlog (gpgme_ctx_t ctx, gpgme_data_t output,
                                     unsigned int flags);
 
 
 \f
 /* Low-level Assuan protocol access.  */
-typedef gpgme_error_t (*gpgme_assuan_data_cb_t) 
+typedef gpgme_error_t (*gpgme_assuan_data_cb_t)
      (void *opaque, const void *data, size_t datalen);
 
 typedef gpgme_error_t (*gpgme_assuan_inquire_cb_t)
@@ -1790,7 +1785,7 @@ typedef gpgme_error_t (*gpgme_assuan_status_cb_t)
 
 /* Send the Assuan COMMAND and return results via the callbacks.
    Asynchronous variant. */
-gpgme_error_t gpgme_op_assuan_transact_start (gpgme_ctx_t ctx, 
+gpgme_error_t gpgme_op_assuan_transact_start (gpgme_ctx_t ctx,
                                               const char *command,
                                               gpgme_assuan_data_cb_t data_cb,
                                               void *data_cb_value,
@@ -1801,7 +1796,7 @@ gpgme_error_t gpgme_op_assuan_transact_start (gpgme_ctx_t ctx,
 
 /* Send the Assuan COMMAND and return results via the callbacks.
    Synchronous variant. */
-gpgme_error_t gpgme_op_assuan_transact_ext (gpgme_ctx_t ctx, 
+gpgme_error_t gpgme_op_assuan_transact_ext (gpgme_ctx_t ctx,
                                            const char *command,
                                            gpgme_assuan_data_cb_t data_cb,
                                            void *data_cb_value,
@@ -1931,7 +1926,7 @@ typedef struct gpgme_conf_arg
 typedef struct gpgme_conf_opt
 {
   struct gpgme_conf_opt *next;
-  
+
   /* The option name.  */
   char *name;
 
@@ -1954,7 +1949,7 @@ typedef struct gpgme_conf_opt
   /* The default value.  */
   gpgme_conf_arg_t default_value;
   char *default_description;
-  
+
   /* The default value if the option is not set.  */
   gpgme_conf_arg_t no_arg_value;
   char *no_arg_description;
@@ -1987,7 +1982,7 @@ typedef struct gpgme_conf_comp
   char *description;
 
   /* The program name (an absolute path to the program).  */
-  char *program_name;  
+  char *program_name;
 
   /* A linked list of options for this component.  */
   struct gpgme_conf_opt *options;
@@ -2013,7 +2008,7 @@ gpgme_error_t gpgme_conf_opt_change (gpgme_conf_opt_t opt, int reset,
 
 /* Release a set of configurations.  */
 void gpgme_conf_release (gpgme_conf_comp_t conf);
+
 /* Retrieve the current configurations.  */
 gpgme_error_t gpgme_op_conf_load (gpgme_ctx_t ctx, gpgme_conf_comp_t *conf_p);