[Gpg4win-commits] [git] Gpg4win - branch, master, updated. gpg4win-2.1.0-163-gdcde4b2

by Werner Koch cvs at cvs.gnupg.org
Mon May 6 18:57:49 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 for Windows".

The branch, master has been updated
       via  dcde4b23f4f9fe535f44df0c6042156a5493314a (commit)
       via  9c8fd829b5ce838485907ab1a9f8bfa5529719fb (commit)
       via  e97291a569c6b2af9ae3d1afa8ae36f9d45df90e (commit)
      from  bb6ebc26e922d25836eaf4b6dbce1cf4065e12a2 (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 dcde4b23f4f9fe535f44df0c6042156a5493314a
Author: Werner Koch <wk at gnupg.org>
Date:   Mon May 6 18:24:07 2013 +0200

    Update libetpan to 0.58-g10-1.

diff --git a/packages/packages.current b/packages/packages.current
index 6e1b265..001a923 100644
--- a/packages/packages.current
+++ b/packages/packages.current
@@ -61,11 +61,20 @@ chk  a02bef78c7e35217d84d36d9b3135de70b46be09
 # libetpan for claws
 #
 
-# (Kept on our own mirror due to Sourceforge peculiarities.)
-server http://www.claws-mail.org/win32
+# (Kept on our own mirror due to Sourceforge/github peculiarities.)
+server ftp://ftp.g10code.com/mirrors/claws
+
+# We use a slighly patched version to avoid the need for g++. See below
+#file   libetpan-0.58.tar.gz
+#chk    98a5689bbe99dc77d689c2ea1e8294f217a3b49c
+
+#file   libetpan-1.1.tar.gz
+#chk    3476dc9142e0b78056446d2f143617708f8690b2
+
+server ftp://ftp.g10code.com/g10code/misc/
+file   libetpan-0.58-g10-1.tar.bz2
+chk    d7195498005d340ccd82e183de19163d16e56ec2
 
-#file libetpan-0.58.tar.gz
-#chk  98a5689bbe99dc77d689c2ea1e8294f217a3b49c
 
 #
 # curl for Claws plugins

commit 9c8fd829b5ce838485907ab1a9f8bfa5529719fb
Author: Werner Koch <wk at gnupg.org>
Date:   Mon May 6 17:48:18 2013 +0200

    Update Claws to 3.9.0.
    
    * packages/packages.current: Update to claws 3.9.0.
    * patches/claws-mail-3.9.0/01-w64-mingw32.patch: New.
    * patches/claws-mail-3.9.0/02-ldap-opt.patch: New.
    * patches/claws-mail-3.9.0/03-all-crypto.patch: New.
    * patches/claws-mail-3.9.0/80-src-makefile.postcfg-build: New.
    * Makefile.am (EXTRA_DIST): Add new patch files.
    --
    
    This update also adds support for w64-mingw32 and enables all crupto
    plugins by default.

diff --git a/Makefile.am b/Makefile.am
index 48bc463..b3f92ec 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -80,6 +80,10 @@ EXTRA_DIST = autogen.sh README.GIT ONEWS \
         patches/scute-1.2.0/01-bugfixes.patch \
         patches/scute-1.3.0/01-wsastartup.patch \
         patches/claws-mail-3.8.0cvs30/01-glib-h-only.patch \
+        patches/claws-mail-3.9.0/01-w64-mingw32.patch \
+        patches/claws-mail-3.9.0/02-ldap-opt.patch \
+        patches/claws-mail-3.9.0/03-all-crypto.patch
+	patches/claws-mail-3.9.0/80-src-makefile.postcfg-build \
 	patches/gnutls-2.12.21/01-openssl-wincrypt.patch
 
 copy-news:
diff --git a/packages/packages.current b/packages/packages.current
index e691800..6e1b265 100644
--- a/packages/packages.current
+++ b/packages/packages.current
@@ -127,12 +127,13 @@ server http://www.abisource.com/downloads/enchant/1.6.0
 #
 # Claws
 #
+
 # (Kept on our own mirror due to Sourceforge peculiarities.)
+server ftp://ftp.g10code.com/mirrors/claws
 
-server http://www.claws-mail.org/win32
+file   claws-mail-3.9.0.tar.gz
+chk    7730e0978c364bded838ce26a8f9cbd733a363a9
 
-#file   claws-mail-3.8.1.tar.bz2
-#chk    4b9fa17bff8986098c72c4b8723e1540e2b058d1
 #
 #file   attachwarner-0.2.24cvs1.tar.gz
 #chk    616356ad9697e2698b294901e562897e9d0c40e1
diff --git a/patches/claws-mail-3.9.0/01-w64-mingw32.patch b/patches/claws-mail-3.9.0/01-w64-mingw32.patch
new file mode 100755
index 0000000..51d5831
--- /dev/null
+++ b/patches/claws-mail-3.9.0/01-w64-mingw32.patch
@@ -0,0 +1,173 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+Fixes for using i686-w64-mingw32.
+
+diff -urp orig/claws-mail-3.9.0/src/common/w32lib.h claws-mail-3.9.0/src/common/w32lib.h
+--- orig/claws-mail-3.9.0/src/common/w32lib.h	2011-03-04 17:30:32.000000000 +0100
++++ claws-mail-3.9.0/src/common/w32lib.h	2013-05-02 19:49:26.859688386 +0200
+@@ -54,7 +54,7 @@
+
+	* w32_reg.c: Replaced g_free and g_strdup by regular C functions.
+	(get_content_type_from_registry_with_ext): Ditto.
+-	* w32_dirent.c (readdir): Ditto.
++	* w32_dirent.c (readdir): Ditto.
+	(opendir): Ditto.
+	(closedir): Reformatted.
+	(readdir): Reformatted, replaced use of g_strdup_printf and other
+@@ -76,17 +76,22 @@
+ #include <stdio.h>
+
+ #ifdef __MINGW32__
+-#include <_mingw.h>
+-#define MINGW32_VERSION (__MINGW32_MAJOR_VERSION * 100 \
+-			 + __MINGW32_MINOR_VERSION)
+-#include <wchar.h>
+-#include <dirent.h>
+-#include <sys/time.h>
+-#endif
++# include <_mingw.h>
++# define MINGW32_VERSION (__MINGW32_MAJOR_VERSION * 100 \
++			  + __MINGW32_MINOR_VERSION)
++# define MINGW64_VERSION (__MINGW64_VERSION_MAJOR * 100 \
++ 			  + __MINGW64_VERSION_MINOR)
++# include <wchar.h>
++# include <dirent.h>
++# include <sys/time.h>
++# if MINGW64_VERSION >= 200
++#  include <sys/types.h>
++# endif
++#endif /* __MINGW32__ */
+
+ /* Mingw32 3.4.4 defines interface to struct and thus breaks our own
+    use of that symbol.  Undef it here. */
+-#if defined(_BASETYPS_H) && defined(interface)
++#if defined(_BASETYPS_H) && defined(interface)
+ #undef interface
+ #endif
+
+@@ -123,9 +128,11 @@ typedef unsigned int uid_t;
+
+ /* functions */
+ /*** str ***/
+-int strcasecmp( const char *s1, const char *s2 );
+
++#if MINGW64_VERSION < 200
++int strcasecmp( const char *s1, const char *s2 );
+ int strncasecmp( const char *s1, const char *s2, size_t n );
++#endif /* MINGW64_VERSION < 200 */
+
+ /*** dir ***/
+ #ifndef __MINGW32__
+@@ -166,12 +173,16 @@ DIR *opendir( const char *name );
+ int closedir( DIR *dir );
+ struct dirent *readdir( DIR *dir );
+
++/* Mingw64 (32 and 64 bit) defines timezone but also sets the mingw32
++   version macros to 3.11.  Thus we need an extra test.  */
+ #if defined (__MINGW32__) && MINGW32_VERSION < 312
++#if MINGW64_VERSION < 200
+ struct timezone {
+   int tz_minuteswest;
+   int tz_dsttime;
+ };
+ #endif
++#endif
+
+ /*** stat ***/
+ int lstat( const char *file_name, struct stat *buf );
+@@ -181,8 +192,10 @@ pid_t waitpid( pid_t pid, int *status, i
+
+ /*** sys/time ***/
+ #if ! defined (__MINGW32__) || MINGW32_VERSION < 312
++#if MINGW64_VERSION < 200
+ int gettimeofday( struct timeval *tv, struct timezone *tz );
+ #endif
++#endif
+
+ /*** unistd ***/
+ int setpgid( pid_t pid, pid_t pgid );
+@@ -193,14 +206,18 @@ unsigned int sleep( unsigned int seconds
+ /*** stdlib ***/
+ long int random( void );
+ void srandom( unsigned int seed );
++#if MINGW64_VERSION < 200
+ int truncate( const char *path, off_t length );
++#endif /* MINGW64_VERSION < 200 */
+
+ /*** signal ***/
+ int kill( pid_t pid, int sig );
+
+ /*** stdio ***/
++#if MINGW64_VERSION < 200
+ FILE *popen( const char *command, const char *type );
+ int pclose( FILE *stream );
++#endif /* MINGW64_VERSION < 200 */
+
+ /*** w32_account.c ***/
+ int w32_is_administrator (void);
+diff -urp orig/claws-mail-3.9.0/src/common/w32_stdio.c claws-mail-3.9.0/src/common/w32_stdio.c
+--- orig/claws-mail-3.9.0/src/common/w32_stdio.c	2005-12-20 18:43:38.000000000 +0100
++++ claws-mail-3.9.0/src/common/w32_stdio.c	2013-05-02 19:49:26.859688386 +0200
+@@ -3,6 +3,8 @@
+
+ #include "w32lib.h"
+
++#if MINGW64_VERSION < 200
++
+ FILE *popen( const char *command, const char *type ){
+   return NULL;
+ }
+@@ -10,3 +12,6 @@ FILE *popen( const char *command, const
+ int pclose( FILE *stream ){
+   return -1;
+ }
++
++#endif
++
+diff -urp orig/claws-mail-3.9.0/src/common/w32_stdlib.c claws-mail-3.9.0/src/common/w32_stdlib.c
+--- orig/claws-mail-3.9.0/src/common/w32_stdlib.c	2007-07-11 18:35:56.000000000 +0200
++++ claws-mail-3.9.0/src/common/w32_stdlib.c	2013-05-02 19:49:26.859688386 +0200
+@@ -31,6 +31,8 @@ void srandom( unsigned int seed ){
+   srand( seed );
+ }
+
++#if MINGW64_VERSION < 200
+ int truncate( const char *path, off_t length ){
+   return -1;
+ }
++#endif /* MINGW64_VERSION < 200 */
+diff -urp orig/claws-mail-3.9.0/src/common/w32_string.c claws-mail-3.9.0/src/common/w32_string.c
+--- orig/claws-mail-3.9.0/src/common/w32_string.c	2007-07-11 18:35:56.000000000 +0200
++++ claws-mail-3.9.0/src/common/w32_string.c	2013-05-02 19:49:26.859688386 +0200
+@@ -24,6 +24,8 @@
+
+ #include "w32lib.h"
+
++#if MINGW64_VERSION < 200
++
+ int strcasecmp( const char *s1, const char *s2 ){
+   size_t len1, len2, len;
+
+@@ -50,3 +52,4 @@ int strncasecmp( const char *s1, const c
+    return 0;
+ }
+
++#endif /* MINGW64_VERSION < 200 */
+diff -urp orig/claws-mail-3.9.0/src/common/w32_time.c claws-mail-3.9.0/src/common/w32_time.c
+--- orig/claws-mail-3.9.0/src/common/w32_time.c	2007-12-06 23:17:52.000000000 +0100
++++ claws-mail-3.9.0/src/common/w32_time.c	2013-05-02 19:49:26.859688386 +0200
+@@ -25,6 +25,7 @@
+ #include "w32lib.h"
+
+ #if ! defined (__MINGW32__) || MINGW32_VERSION < 312
++#if MINGW64_VERSION < 200
+ int gettimeofday( struct timeval *tv, struct timezone *tz ){
+   struct _timeb tstruct;
+   _ftime( &tstruct );
+@@ -33,3 +34,4 @@ int gettimeofday( struct timeval *tv, st
+   return 1;
+ }
+ #endif
++#endif
diff --git a/patches/claws-mail-3.9.0/02-ldap-opt.patch b/patches/claws-mail-3.9.0/02-ldap-opt.patch
new file mode 100755
index 0000000..4c81bcc
--- /dev/null
+++ b/patches/claws-mail-3.9.0/02-ldap-opt.patch
@@ -0,0 +1,27 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+Fixes missing LDAP_OPT_SUCCESS.
+
+--- orig/claws-mail-3.9.0/src/ldaputil.h	2012-05-27 19:16:13.000000000 +0200
++++ claws-mail-3.9.0/src/ldaputil.h	2013-05-02 19:58:31.275669432 +0200
+@@ -14,7 +14,7 @@
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program. If not, see <http://www.gnu.org/licenses/>.
+- *
++ *
+  */
+
+ /*
+@@ -37,6 +37,9 @@
+ #define ldap_unbind_ext(ld,x,y) ldap_unbind_s(ld)
+ #define LDAP_ADMINLIMIT_EXCEEDED LDAP_ADMIN_LIMIT_EXCEEDED
+ #define timeval l_timeval
++#ifndef LDAP_OPT_SUCCESS
++# define LDAP_OPT_SUCCESS 0
++#endif
+ #endif
+ /* Function Prototypes */
+ GList *ldaputil_read_basedn	( const gchar *host, const gint port,
diff --git a/patches/claws-mail-3.9.0/03-all-crypto.patch b/patches/claws-mail-3.9.0/03-all-crypto.patch
new file mode 100755
index 0000000..3476863
--- /dev/null
+++ b/patches/claws-mail-3.9.0/03-all-crypto.patch
@@ -0,0 +1,22 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+
+--- a/src/common/plugin.c	2013-05-06 17:12:52.454020853 +0200
++++ b/src/common/plugin.c	2013-05-06 17:09:00.954027453 +0200
+@@ -604,13 +604,11 @@
+ void plugin_load_standard_plugins (void)
+ {
+	static const char *names[] = {
+-#ifdef G_OS_WIN32
+                "pgpmime",
+                "pgpinline",
+-#else
++                "smime",
+                 /* post-2.5 maybe
+                 "bogofilter", */
+-#endif
+                 NULL
+        };
+	int i;
diff --git a/patches/claws-mail-3.9.0/80-src-makefile.postcfg-build b/patches/claws-mail-3.9.0/80-src-makefile.postcfg-build
new file mode 100755
index 0000000..30f39cf
--- /dev/null
+++ b/patches/claws-mail-3.9.0/80-src-makefile.postcfg-build
@@ -0,0 +1,10 @@
+#! /bin/sh
+#
+# Hack to remove bad use of -export-all-symbols.  That option is already
+# correcty provided by libtool using -Wl,.
+#
+set -e
+echo 'Fixing src/Makefile' >&2
+cd src
+sed -i 's/ -export-all-symbols//' Makefile
+exit $?

commit e97291a569c6b2af9ae3d1afa8ae36f9d45df90e
Author: Werner Koch <wk at gnupg.org>
Date:   Mon May 6 12:35:02 2013 +0200

    Set a fixed limit of 2047 to the length of PATH.
    
    * src/g4wihelp.c (PATH_LENGTH_LIMIT): New.

diff --git a/src/g4wihelp.c b/src/g4wihelp.c
index a81835f..83363e3 100644
--- a/src/g4wihelp.c
+++ b/src/g4wihelp.c
@@ -1,23 +1,23 @@
 /* g4wihelp.c - NSIS Helper DLL used with gpg4win. -*- coding: latin-1; -*-
  * Copyright (C) 2005 g10 Code GmbH
  * Copyright (C) 2001 Justin Frankel
- * 
+ *
  * This software is provided 'as-is', without any express or implied
  * warranty. In no event will the authors be held liable for any
  * damages arising from the use of this software.
- * 
+ *
  * Permission is granted to anyone to use this software for any
  * purpose, including commercial applications, and to alter it and
  * redistribute it freely, subject to the following restrictions:
- * 
+ *
  * 1. The origin of this software must not be misrepresented; you must
  *    not claim that you wrote the original software. If you use this
  *    software in a product, an acknowledgment in the product
  *    documentation would be appreciated but is not required.
- * 
+ *
  * 2. Altered source versions must be plainly marked as such, and must
  *    not be misrepresented as being the original software.
- * 
+ *
  * 3. This notice may not be removed or altered from any source
  *    distribution.
  ************************************************************
@@ -33,7 +33,7 @@
 
 static HINSTANCE g_hInstance; /* Our Instance. */
 static HWND g_hwndParent;     /* Handle of parent window or NULL. */
-static HBITMAP g_hbm;         /* Handle of the splash image. */ 
+static HBITMAP g_hbm;         /* Handle of the splash image. */
 static int sleepint;          /* Milliseconds to show the spals image. */
 
 
@@ -49,8 +49,8 @@ DllMain (HANDLE hinst, DWORD reason, LPVOID reserved)
 
 
 /* Dummy function for testing. */
-void __declspec(dllexport) 
-dummy (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+dummy (HWND hwndParent, int string_size, char *variables,
        stack_t **stacktop, extra_parameters_t *extra)
 {
   g_hwndParent = hwndParent;
@@ -60,7 +60,7 @@ dummy (HWND hwndParent, int string_size, char *variables,
   // note if you want parameters from the stack, pop them off in order.
   // i.e. if you are called via exdll::myFunction file.dat poop.dat
   // calling popstring() the first time would give you file.dat,
-  // and the second time would give you poop.dat. 
+  // and the second time would give you poop.dat.
   // you should empty the stack of your parameters, and ONLY your
   // parameters.
 
@@ -92,15 +92,15 @@ dummy (HWND hwndParent, int string_size, char *variables,
              extra->exec_flags->silent,
              extra->exec_flags->instdir_error,
              extra->exec_flags->rtl,
-             extra->exec_flags->errlvl);      
+             extra->exec_flags->errlvl);
     MessageBox(g_hwndParent,buf,0,MB_OK);
   }
 }
 
 
 
-void __declspec(dllexport) 
-runonce (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+runonce (HWND hwndParent, int string_size, char *variables,
          stack_t **stacktop, extra_parameters_t *extra)
 {
   const char *result;
@@ -114,8 +114,8 @@ runonce (HWND hwndParent, int string_size, char *variables,
 }
 
 
-void __declspec(dllexport) 
-playsound (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+playsound (HWND hwndParent, int string_size, char *variables,
            stack_t **stacktop, extra_parameters_t *extra)
 {
   char fname[MAX_PATH];
@@ -129,8 +129,8 @@ playsound (HWND hwndParent, int string_size, char *variables,
 }
 
 
-void __declspec(dllexport) 
-stopsound (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+stopsound (HWND hwndParent, int string_size, char *variables,
            stack_t **stacktop, extra_parameters_t *extra)
 {
   g_hwndParent = hwndParent;
@@ -142,7 +142,7 @@ stopsound (HWND hwndParent, int string_size, char *variables,
 /* Windows procedure to control the splashimage.  This one pauses the
    execution until the sleep time is over or the user closes this
    windows. */
-static LRESULT CALLBACK 
+static LRESULT CALLBACK
 splash_wndproc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
   LRESULT result = 0;
@@ -166,7 +166,7 @@ splash_wndproc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
         SetTimer(hwnd,1,sleepint,NULL);
       }
       break;
-  
+
     case WM_PAINT:
       {
         PAINTSTRUCT ps;
@@ -207,8 +207,8 @@ splash_wndproc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    and FNAME the complete filename of the image.  As of now only BMP
    is supported.
 */
-void __declspec(dllexport) 
-showsplash (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+showsplash (HWND hwndParent, int string_size, char *variables,
            stack_t **stacktop, extra_parameters_t *extra)
 {
   static WNDCLASS wc;
@@ -242,12 +242,12 @@ showsplash (HWND hwndParent, int string_size, char *variables,
   wc.hInstance = g_hInstance;
   wc.hCursor = LoadCursor(NULL,IDC_ARROW);
   wc.lpszClassName = classname;
-  if (!RegisterClass(&wc)) 
+  if (!RegisterClass(&wc))
     return; /* Error. */
 
   g_hbm = LoadImage (NULL, fname, IMAGE_BITMAP,
                      0, 0 , LR_CREATEDIBSECTION|LR_LOADFROMFILE);
-  if (g_hbm) 
+  if (g_hbm)
     {
       MSG msg;
       HWND hwnd;
@@ -255,7 +255,7 @@ showsplash (HWND hwndParent, int string_size, char *variables,
       hwnd = CreateWindowEx (WS_EX_TOOLWINDOW, classname, classname,
                              0, 0, 0, 0, 0, (HWND)hwndParent, NULL,
                              g_hInstance, NULL);
-      
+
       while (IsWindow(hwnd) && GetMessage ( &msg, hwnd, 0, 0))
         {
           DispatchMessage (&msg);
@@ -284,8 +284,8 @@ service_error (const char *str)
 }
 
 
-void __declspec(dllexport) 
-service_create (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+service_create (HWND hwndParent, int string_size, char *variables,
 		 stack_t **stacktop, extra_parameters_t *extra)
 {
   SC_HANDLE sc;
@@ -357,7 +357,7 @@ service_lookup (char *service_name)
 {
   SC_HANDLE sc;
   SC_HANDLE service;
-  
+
   sc = OpenSCManager (NULL, NULL, SC_MANAGER_ALL_ACCESS);
   if (sc == NULL)
     {
@@ -377,8 +377,8 @@ service_lookup (char *service_name)
 
 
 /* Returns status.  */
-void __declspec(dllexport) 
-service_query (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+service_query (HWND hwndParent, int string_size, char *variables,
 	       stack_t **stacktop, extra_parameters_t *extra)
 {
   SC_HANDLE service;
@@ -447,8 +447,8 @@ service_query (HWND hwndParent, int string_size, char *variables,
 }
 
 
-void __declspec(dllexport) 
-service_start (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+service_start (HWND hwndParent, int string_size, char *variables,
 	       stack_t **stacktop, extra_parameters_t *extra)
 {
   SC_HANDLE service;
@@ -509,8 +509,8 @@ service_start (HWND hwndParent, int string_size, char *variables,
 }
 
 
-void __declspec(dllexport) 
-service_stop (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+service_stop (HWND hwndParent, int string_size, char *variables,
 	      stack_t **stacktop, extra_parameters_t *extra)
 {
   SC_HANDLE service;
@@ -587,8 +587,8 @@ service_stop (HWND hwndParent, int string_size, char *variables,
 }
 
 
-void __declspec(dllexport) 
-service_delete (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+service_delete (HWND hwndParent, int string_size, char *variables,
 		stack_t **stacktop, extra_parameters_t *extra)
 {
   SC_HANDLE service;
@@ -835,13 +835,13 @@ config_lookup (char *key)
 	return values[i];
       i++;
     }
-  
+
   return NULL;
 }
 
 
-void __declspec(dllexport) 
-config_fetch (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+config_fetch (HWND hwndParent, int string_size, char *variables,
 	      stack_t **stacktop, extra_parameters_t *extra)
 {
   char key[256];
@@ -867,8 +867,8 @@ config_fetch (HWND hwndParent, int string_size, char *variables,
 }
 
 
-void __declspec(dllexport) 
-config_fetch_bool (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+config_fetch_bool (HWND hwndParent, int string_size, char *variables,
 		   stack_t **stacktop, extra_parameters_t *extra)
 {
   char key[256];
@@ -894,7 +894,7 @@ config_fetch_bool (HWND hwndParent, int string_size, char *variables,
       setuservariable (INST_R0, "");
       return;
     }
-  
+
   result = 0;
   if (!strcasecmp (value, "true")
       || !strcasecmp (value, "yes")
@@ -966,16 +966,17 @@ read_w32_registry_string (HKEY root, const char *dir, const char *name)
 #define ENV_HK HKEY_CURRENT_USER
 #define ENV_REG "Environment"
 #endif
-
-
-void __declspec(dllexport) 
-path_add (HWND hwndParent, int string_size, char *variables, 
+/* Due to a bug in Windows7 (kb 2685893) we better but a lower limit
+   than 8191 on the maximum length of the PATH variable.  Note, that
+   depending on the used toolchain we used to have a 259 byte limit in
+   the past.  */
+#define PATH_LENGTH_LIMIT 2047
+
+void __declspec(dllexport)
+path_add (HWND hwndParent, int string_size, char *variables,
 	  stack_t **stacktop, extra_parameters_t *extra)
 {
-#ifndef PATH_MAX
-#define PATH_MAX 8192
-#endif
-  char dir[PATH_MAX];
+  char dir[PATH_LENGTH_LIMIT];
   char *path;
   char *path_new;
   int path_new_size;
@@ -1007,7 +1008,7 @@ path_add (HWND hwndParent, int string_size, char *variables,
 
   /* Old path plus semicolon plus dir plus terminating nul.  */
   path_new_size = strlen (path) + 1 + strlen (dir) + 1;
-  if (path_new_size > PATH_MAX)
+  if (path_new_size > PATH_LENGTH_LIMIT)
     {
       MessageBox (g_hwndParent, "PATH env variable too big", 0, MB_OK);
       free (path);
@@ -1065,14 +1066,11 @@ path_add (HWND hwndParent, int string_size, char *variables,
 }
 
 
-void __declspec(dllexport) 
-path_remove (HWND hwndParent, int string_size, char *variables, 
+void __declspec(dllexport)
+path_remove (HWND hwndParent, int string_size, char *variables,
 	     stack_t **stacktop, extra_parameters_t *extra)
 {
-#ifndef PATH_MAX
-#define PATH_MAX 8192
-#endif
-  char dir[PATH_MAX];
+  char dir[PATH_LENGTH_LIMIT];
   char *path;
   char *path_new;
   int path_new_size;

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

Summary of changes:
 Makefile.am                                        |    4 +
 packages/packages.current                          |   24 ++-
 patches/claws-mail-3.9.0/01-w64-mingw32.patch      |  173 ++++++++++++++++++++
 patches/claws-mail-3.9.0/02-ldap-opt.patch         |   27 +++
 patches/claws-mail-3.9.0/03-all-crypto.patch       |   22 +++
 .../claws-mail-3.9.0/80-src-makefile.postcfg-build |   10 +
 src/g4wihelp.c                                     |  108 ++++++------
 7 files changed, 306 insertions(+), 62 deletions(-)
 create mode 100755 patches/claws-mail-3.9.0/01-w64-mingw32.patch
 create mode 100755 patches/claws-mail-3.9.0/02-ldap-opt.patch
 create mode 100755 patches/claws-mail-3.9.0/03-all-crypto.patch
 create mode 100755 patches/claws-mail-3.9.0/80-src-makefile.postcfg-build


hooks/post-receive
-- 
GnuPG for Windows
http://git.gnupg.org



More information about the Gpg4win-commits mailing list