[git] GpgEX - branch, master, updated. gpgex-0.9.7-13-gb21cad8

by Werner Koch cvs at cvs.gnupg.org
Wed Jun 19 13:50:47 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 extension for the Windows Explorer".

The branch, master has been updated
       via  b21cad89a4a6de617d5020bed340cdfa7d0636d2 (commit)
       via  753447ce04b4aa26da5e38a4edc298ce17463878 (commit)
       via  45206d1760f99292f816e1b4db2feff5a8bb123d (commit)
       via  e47dc1654d87ed75bd6e7dbb8db306155cfc1cc2 (commit)
       via  36820f660aa08006795d45c5b314062d853bac6c (commit)
       via  1ad1ca8dd2720936173ea90daa15573bf659f7d8 (commit)
       via  64c3912b3c77c5474496dba41e3c7f70599fa18d (commit)
       via  c247b1ca815b68eca41be52f084cd8523a5cba39 (commit)
       via  b9fa91597284f349dc238c68d3cbef1ad87071f2 (commit)
       via  fa830d7a50a3d16b16b7e6ab9099d5bd48dbabab (commit)
       via  ca35b9dfa43fa023f41f5510507b210060057386 (commit)
       via  bcd9a56a9f018838f2dbaa3617a148e1853e58a7 (commit)
       via  6448129f58b84cf1742e87422489ae8fbc0f3b9f (commit)
      from  f8ff671dbcdfdaa53695d6aa7a50ffb10adbe519 (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 b21cad89a4a6de617d5020bed340cdfa7d0636d2
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jun 19 12:38:12 2013 +0200

    Fix for changed definition of GetCommandString.
    
    * src/gpgex.h (IContextMenu3): Change first arg of GetCommandString to
    INT_PTR.
    * src/gpgex.cc (GetCommandString): Ditto.  Cast it in the trace call.
    --
    
    With W64 IContextMenu::GetCommandString changed from UINT to UINT_PTR
    to accomodate for it being a pointer internally.

diff --git a/src/gpgex.cc b/src/gpgex.cc
index 8837127..3125a25 100644
--- a/src/gpgex.cc
+++ b/src/gpgex.cc
@@ -387,7 +387,7 @@ gpgex_t::QueryContextMenu (HMENU hMenu, UINT indexMenu, UINT idCmdFirst,
    to return a wide character string.  */
 
 STDMETHODIMP
-gpgex_t::GetCommandString (UINT idCommand, UINT uFlags, LPUINT lpReserved,
+gpgex_t::GetCommandString (UINT_PTR idCommand, UINT uFlags, LPUINT lpReserved,
 			   LPSTR pszName, UINT uMaxNameLen)
 {
   const char *txt;
@@ -395,7 +395,8 @@ gpgex_t::GetCommandString (UINT idCommand, UINT uFlags, LPUINT lpReserved,
   TRACE_BEG5 (DEBUG_CONTEXT_MENU, "gpgex_t::GetCommandString", this,
 	      "idCommand=%u, uFlags=%x, lpReserved=%lu, pszName=%p, "
 	      "uMaxNameLen=%u",
-	      idCommand, uFlags, lpReserved, pszName, uMaxNameLen);
+	      (unsigned int)(idCommand & 0xffffffff),
+              uFlags, lpReserved, pszName, uMaxNameLen);
 
   if (! (uFlags & GCS_HELPTEXT))
     return TRACE_RES (E_INVALIDARG);
diff --git a/src/gpgex.h b/src/gpgex.h
index b2c64d2..6402dce 100644
--- a/src/gpgex.h
+++ b/src/gpgex.h
@@ -134,7 +134,8 @@ class gpgex_t : public IShellExtInit, public IContextMenu3
   /* IContextMenu methods.  */
   STDMETHODIMP QueryContextMenu (HMENU hMenu, UINT indexMenu, UINT idCmdFirst,
 				 UINT idCmdLast, UINT uFlags);
-  STDMETHODIMP GetCommandString (UINT idCommand, UINT uFlags, LPUINT lpReserved,
+  STDMETHODIMP GetCommandString (UINT_PTR idCommand,
+                                 UINT uFlags, LPUINT lpReserved,
 				 LPSTR pszName, UINT uMaxNameLen);
   STDMETHODIMP InvokeCommand (LPCMINVOKECOMMANDINFO lpcmi);
 

commit 753447ce04b4aa26da5e38a4edc298ce17463878
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jun 19 12:25:08 2013 +0200

    Adjust sending of window-id for W64.
    
    * src/client.cc (send_options): Send window-id only if it firs into 32
    bit.

diff --git a/src/client.cc b/src/client.cc
index 91c4123..3f17de3 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -231,8 +231,17 @@ send_options (assuan_context_t ctx, HWND hwnd, pid_t *r_pid)
 
   if (! rc && hwnd)
     {
-      snprintf (numbuf, sizeof (numbuf), "%lx", (unsigned long) hwnd);
-      rc = send_one_option (ctx, "window-id", numbuf);
+      /* We hope that HWND is limited to 32 bit.  If not a 32 bit
+         UI-server would not be able to do anything with this
+         window-id.  */
+      uintptr_t tmp = (uintptr_t)hwnd;
+
+      if (tmp & ~0xffffffff)
+        {
+          /* HWND fits into 32 bit - send it. */
+          snprintf (numbuf, sizeof (numbuf), "%lx", (unsigned long)tmp);
+          rc = send_one_option (ctx, "window-id", numbuf);
+        }
     }
 
   return TRACE_GPGERR (rc);

commit 45206d1760f99292f816e1b4db2feff5a8bb123d
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jun 19 12:24:18 2013 +0200

    Fix compiler warning for W64.
    
    * src/debug.h (TRACE): Improve cast for W64.

diff --git a/src/debug.h b/src/debug.h
index 602b185..04a8cd1 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -119,7 +119,7 @@ void _gpgex_debug (unsigned int flags, const char *format, ...);
 
 #define TRACE(lvl, name, tag)						\
   (_gpgex_debug (lvl, "%s (%s=0x%x): call\n",				\
-		 name, STRINGIFY (tag), (void *) tag), 0)
+		 name, STRINGIFY (tag), (void *)(uintptr_t)tag), 0)
 #define TRACE0(lvl, name, tag, fmt)					\
   (_gpgex_debug (lvl, "%s (%s=0x%x): call: " fmt "\n",			\
 		 name, STRINGIFY (tag), (void *) tag), 0)

commit e47dc1654d87ed75bd6e7dbb8db306155cfc1cc2
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jun 19 12:02:34 2013 +0200

    Remove trailing white space from more files.
    
    --

diff --git a/src/exechelp.c b/src/exechelp.c
index 1db5d74..47e3e27 100644
--- a/src/exechelp.c
+++ b/src/exechelp.c
@@ -44,7 +44,7 @@ gpg_error_t
 gpgex_spawn_detached (const char *cmdline)
 {
   SECURITY_ATTRIBUTES sec_attr;
-  PROCESS_INFORMATION pi = 
+  PROCESS_INFORMATION pi =
     {
       NULL,      /* Returns process handle.  */
       0,         /* Returns primary thread handle.  */
@@ -61,7 +61,7 @@ gpgex_spawn_detached (const char *cmdline)
   memset (&sec_attr, 0, sizeof sec_attr);
   sec_attr.nLength = sizeof sec_attr;
   sec_attr.bInheritHandle = FALSE;
-  
+
   /* Start the process.  Note that we can't run the PREEXEC function
      because this would change our own environment. */
   memset (&si, 0, sizeof si);
@@ -89,9 +89,9 @@ gpgex_spawn_detached (const char *cmdline)
       (void) TRACE_LOG1 ("CreateProcess failed: %i\n", GetLastError ());
       return gpg_error (GPG_ERR_GENERAL);
     }
-  
+
   /* Process has been created suspended; resume it now. */
-  CloseHandle (pi.hThread); 
+  CloseHandle (pi.hThread);
   CloseHandle (pi.hProcess);
 
   return 0;
diff --git a/src/registry.c b/src/registry.c
index 24238c3..4b23006 100644
--- a/src/registry.c
+++ b/src/registry.c
@@ -5,9 +5,9 @@
 
    GpgEX 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 
+   as published by the Free Software Foundation; either version 2.1
    of the License, or (at your option) any later version.
-  
+
    GpgEX 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
@@ -203,7 +203,7 @@ standard_homedir (void)
   if (!dir)
     {
       char path[MAX_PATH];
-      
+
       /* It might be better to use LOCAL_APPDATA because this is
          defined as "non roaming" and thus more likely to be kept
          locally.  For private keys this is desired.  However, given
@@ -211,8 +211,8 @@ standard_homedir (void)
          using a system roaming services might be better than to let
          them do it manually.  A security conscious user will anyway
          use the registry entry to have better control.  */
-      if (w32_shgetfolderpath (NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE, 
-                               NULL, 0, path) >= 0) 
+      if (w32_shgetfolderpath (NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE,
+                               NULL, 0, path) >= 0)
         {
           char *tmp = malloc (strlen (path) + 6 + 1);
 
@@ -223,7 +223,7 @@ standard_homedir (void)
 	  strcat (tmp, "\\gnupg");
 
           dir = tmp;
-          
+
           /* Try to create the directory if it does not yet exists.  */
           if (access (dir, F_OK))
             CreateDirectory (dir, NULL);
@@ -245,7 +245,7 @@ default_homedir (void)
   if (!dir || !*dir)
     {
       static char *saved_dir;
-      
+
       if (!saved_dir)
         {
           if (!dir || !*dir)
@@ -262,7 +262,7 @@ default_homedir (void)
               if (tmp)
                 saved_dir = tmp;
             }
-          
+
           if (!saved_dir)
             saved_dir = standard_homedir ();
         }
diff --git a/src/w32-gettext.c b/src/w32-gettext.c
index c343bb7..952d2df 100644
--- a/src/w32-gettext.c
+++ b/src/w32-gettext.c
@@ -3,17 +3,17 @@
    Copyright (C) 2005 g10 Code GmbH
 
    This file is part of libgpg-error.
- 
+
    libgpg-error 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.
- 
+
    libgpg-error 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 libgpg-error; if not, write to the Free
    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
@@ -740,7 +740,7 @@ _nl_locale_name (int category, const char *categoryname)
      On some systems this can be done by the 'setlocale' function itself.  */
 # if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL
   retval = setlocale (category, NULL);
-# else 
+# else
   /* Setting of LC_ALL overwrites all other.  */
   retval = getenv ("LC_ALL");
   if (retval == NULL || retval[0] == '\0')
@@ -1292,7 +1292,7 @@ free_domain (struct loaded_domain *domain)
   free (domain);
 }
 
-  
+
 /* The gettext implementation; support functions.  */
 static struct loaded_domain *
 load_domain (const char *filename)
@@ -1304,7 +1304,7 @@ load_domain (const char *filename)
   struct loaded_domain *domain = NULL;
   size_t to_read;
   char *read_ptr;
-  
+
   fp = fopen (filename, "rb");
   if (!fp)
     return NULL;
@@ -1359,12 +1359,12 @@ load_domain (const char *filename)
     }
   domain->data = (char *) data;
   domain->must_swap = data->magic != MAGIC;
-  
+
   /* Fill in the information about the available tables.  */
   switch (SWAPIT (domain->must_swap, data->revision))
     {
     case 0:
-      
+
       domain->nstrings = SWAPIT (domain->must_swap, data->nstrings);
       domain->orig_tab = (struct string_desc *)
 	((char *) data + SWAPIT (domain->must_swap, data->orig_tab_offset));
@@ -1497,7 +1497,7 @@ wchar_to_utf8 (const wchar_t *string)
   result = malloc (n + 1);
   if (!result)
     return NULL;
-  
+
   n = WideCharToMultiByte (CP_UTF8, 0, string, -1, result, n, NULL, NULL);
   if (n < 0)
     {
@@ -1536,7 +1536,7 @@ utf8_to_native (const char *string)
 char *
 native_to_utf8 (const char *string)
 {
-  char *result; 
+  char *result;
   wchar_t *wstring;
 
   wstring = native_to_wchar (string);
@@ -1560,7 +1560,7 @@ get_string (struct loaded_domain *domain, u32 idx)
   char *p;
 
   p = domain->data + SWAPIT (domain->must_swap, domain->trans_tab[idx].offset);
-  if (!domain->mapped[idx]) 
+  if (!domain->mapped[idx])
     {
       size_t plen, buflen;
       char *buf;
@@ -1592,7 +1592,7 @@ get_string (struct loaded_domain *domain, u32 idx)
         }
       free (buf);
     }
-  else if (domain->mapped[idx] == 2) 
+  else if (domain->mapped[idx] == 2)
     {
       /* We need to get the string from the overflow_space.  */
       for (os=domain->overflow_space; os; os = os->next)
@@ -1697,7 +1697,7 @@ gettext (const char *msgid)
   struct loaded_domain *domain;
   size_t act = 0;
   size_t top, bottom;
-  
+
   if (!(domain = the_domain))
     goto not_found;
 
@@ -1722,7 +1722,7 @@ gettext (const char *msgid)
 		      + SWAPIT (domain->must_swap,
 				domain->orig_tab[nstr - 1].offset)))
 	return get_string (domain, nstr - 1);
-      
+
 	for(;;)
 	  {
 	    if (idx >= domain->hash_size - incr)

commit 36820f660aa08006795d45c5b314062d853bac6c
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jun 19 12:00:45 2013 +0200

    Fix a few compiler warnings.
    
    * src/registry.c (read_w32_registry_string): Cast an arg to LPBYTE to
    avoid signed/unsigned warning.
    * src/gpgex-class.cc (init): Remove var result - it is not checked.
    * src/client.cc (default_uiserver_cmdline): Rewrite
    alloced/non-alloced string code.

diff --git a/src/client.cc b/src/client.cc
index 7271d3a..91c4123 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -75,16 +75,17 @@ default_uiserver_cmdline (void)
 				      "Install Directory");
       if (dir)
 	{
-	  char *uiserver = NULL;
-	  int uiserver_malloced = 1;
-
-	  uiserver = read_w32_registry_string (NULL, REGKEY, "UI Server");
-	  if (! uiserver)
+	  char *uiserver_buffer = NULL;
+          const char *uiserver;
+
+	  uiserver_buffer = read_w32_registry_string (NULL,
+                                                      REGKEY, "UI Server");
+	  if (uiserver_buffer)
+            uiserver = uiserver_buffer;
+          else
 	    {
 	      string fname;
 
-	      uiserver_malloced = 0;
-
 	      try { fname = ((string) dir) + "\\"
 		  + "kleopatra.exe"; } catch (...) {}
 
@@ -98,8 +99,7 @@ default_uiserver_cmdline (void)
 
 	  try { name = ((string) dir) + "\\" + uiserver; } catch (...) {}
 
-	  if (uiserver_malloced)
-	    free (uiserver);
+          free (uiserver_buffer);
 	  free ((void *) dir);
 	}
     }
diff --git a/src/gpgex-class.cc b/src/gpgex-class.cc
index ffac30e..72f0cd6 100644
--- a/src/gpgex-class.cc
+++ b/src/gpgex-class.cc
@@ -43,7 +43,6 @@ CLSID CLSID_gpgex = CLSID_GPGEX;
 void
 gpgex_class::init (void)
 {
-  DWORD result;
   char key[MAX_PATH];
   char value[MAX_PATH];
   HKEY key_handle = 0;
@@ -61,7 +60,7 @@ gpgex_class::init (void)
   /* The InprocServer32 key holds the path to the server component.  */
   strcpy (key, "CLSID\\{" CLSID_GPGEX_STR "}\\InprocServer32");
   RegCreateKey (HKEY_CLASSES_ROOT, key, &key_handle);
-  result = GetModuleFileName (gpgex_server::instance, value, MAX_PATH);
+  GetModuleFileName (gpgex_server::instance, value, MAX_PATH);
   RegSetValueEx (key_handle, 0, 0, REG_SZ, (BYTE *) value, strlen (value) + 1);
   /* We also need a threading model.  */
   strcpy (key, "ThreadingModel");
diff --git a/src/registry.c b/src/registry.c
index 1f97248..24238c3 100644
--- a/src/registry.c
+++ b/src/registry.c
@@ -141,7 +141,7 @@ read_w32_registry_string (const char *root, const char *dir, const char *name)
   result = malloc( (n1=nbytes+1) );
   if( !result )
     goto leave;
-  if( RegQueryValueEx( key_handle, name, 0, &type, result, &n1 ) ) {
+  if( RegQueryValueEx( key_handle, name, 0, &type, (LPBYTE)result, &n1 ) ) {
     free(result); result = NULL;
     goto leave;
   }

commit 1ad1ca8dd2720936173ea90daa15573bf659f7d8
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jun 19 11:57:30 2013 +0200

    Fix warnings about winsock2.h inclusion.
    
    * src/client.cc, src/main.cc: Include winsock2.h before windows.h

diff --git a/src/client.cc b/src/client.cc
index f09cda0..7271d3a 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -29,6 +29,7 @@
 using std::vector;
 using std::string;
 
+#include <winsock2.h>
 #include <windows.h>
 
 #include <assuan.h>
diff --git a/src/main.cc b/src/main.cc
index aec4bd4..d4fa460 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -23,6 +23,7 @@
 
 #include <stdarg.h>
 #include <stdio.h>
+#include <winsock2.h>
 #include <windows.h>
 #include <shlobj.h>
 

commit 64c3912b3c77c5474496dba41e3c7f70599fa18d
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jun 19 11:47:37 2013 +0200

    Remove trailing white space.
    
    --

diff --git a/src/Makefile.am b/src/Makefile.am
index 17d95f6..ec36b7f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,6 +1,6 @@
 # Makefile.am - main makefile for dialogs part of GpgEX
 # Copyright (C) 2005, 2007 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
 # modifications, as long as this notice is preserved.
diff --git a/src/bitmaps.cc b/src/bitmaps.cc
index 689aa15..4928412 100644
--- a/src/bitmaps.cc
+++ b/src/bitmaps.cc
@@ -1,18 +1,18 @@
 /* bitmaps.cc - gpgex bitmap implementation
    Copyright (C) 2007 g10 Code GmbH
-   
+
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
@@ -54,7 +54,7 @@ gpgex_bitmaps_t::gpgex_bitmaps_t (void)
      automatically.  */
   int width = GetSystemMetrics (SM_CXMENUCHECK);
   int height = GetSystemMetrics (SM_CYMENUCHECK);
-  
+
   /* All our images are square, so take the minimum and look for the
      biggest available size that fits in there.  */
   int max_size = (width < height) ? width : height;
@@ -65,7 +65,7 @@ gpgex_bitmaps_t::gpgex_bitmaps_t (void)
       this->size = this->available_sizes[i];
     else
       break;
-  
+
   (void) TRACE3 (DEBUG_INIT, "gpgex_bitmaps_t::gpgex_bitmaps_t", this,
 		 "GetSystemMetrics: %ix%i (using %i)", width, height,
 		 this->size);
@@ -87,7 +87,7 @@ HBITMAP gpgex_bitmaps_t::load_bitmap (string name)
   else
     (void) TRACE1 (DEBUG_INIT, "gpgex_bitmaps_t::load_bitmap", this,
 		   "loaded image %s", out.str().c_str());
-    
+
   /* FIXME: Create cache of images.  */
   return bmap;
 }
diff --git a/src/bitmaps.h b/src/bitmaps.h
index 69a23cc..40115a9 100644
--- a/src/bitmaps.h
+++ b/src/bitmaps.h
@@ -2,17 +2,17 @@
    Copyright (C) 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
diff --git a/src/client.cc b/src/client.cc
index 80982e5..f09cda0 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -1,18 +1,18 @@
 /* client.cc - gpgex assuan client implementation
    Copyright (C) 2007, 2008 g10 Code GmbH
-   
+
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
@@ -48,7 +48,7 @@ default_socket_name (void)
   if (name.size () == 0)
     {
       char *dir = NULL;
-      
+
       dir = default_homedir ();
       if (dir)
 	{
@@ -76,14 +76,14 @@ default_uiserver_cmdline (void)
 	{
 	  char *uiserver = NULL;
 	  int uiserver_malloced = 1;
-	  
+
 	  uiserver = read_w32_registry_string (NULL, REGKEY, "UI Server");
 	  if (! uiserver)
 	    {
 	      string fname;
 
 	      uiserver_malloced = 0;
-	      
+
 	      try { fname = ((string) dir) + "\\"
 		  + "kleopatra.exe"; } catch (...) {}
 
@@ -181,7 +181,7 @@ send_one_option (assuan_context_t ctx, const char *name, const char *value)
 
   if (! value || ! *value)
     err = 0;  /* Avoid sending empty strings.  */
-  else 
+  else
     {
       snprintf (buffer, sizeof (buffer), "OPTION %s=%s", name, value);
       err = assuan_transact (ctx, buffer, NULL, NULL, NULL, NULL, NULL, NULL);
@@ -307,7 +307,7 @@ client_t::call_assuan (const char *cmd, vector<string> &filenames)
   int rc = 0;
   assuan_context_t ctx = NULL;
   string msg;
-  
+
   TRACE_BEG2 (DEBUG_ASSUAN, "client_t::call_assuan", this,
 	      "%s on %u files", cmd, filenames.size ());
 
@@ -321,15 +321,15 @@ client_t::call_assuan (const char *cmd, vector<string> &filenames)
       for (unsigned int i = 0; i < filenames.size (); i++)
 	{
 	  msg = "FILE " + escape (filenames[i]);
-	  
+
 	  (void) TRACE_LOG1 ("sending cmd: %s", msg.c_str ());
-	  
+
 	  rc = assuan_transact (ctx, msg.c_str (),
 				NULL, NULL, NULL, NULL, NULL, NULL);
 	  if (rc)
 	    goto leave;
 	}
-      
+
       /* Set the --nohup option, so that the operation continues and
 	 completes in the background.  */
       msg = ((string) cmd) + " --nohup";
@@ -345,7 +345,7 @@ client_t::call_assuan (const char *cmd, vector<string> &filenames)
     {
       rc = gpg_error (GPG_ERR_GENERAL);
     }
-  
+
   /* Fall-through.  */
  leave:
   TRACE_GPGERR (rc);
diff --git a/src/client.h b/src/client.h
index 860f8e1..81fdfd6 100644
--- a/src/client.h
+++ b/src/client.h
@@ -2,17 +2,17 @@
    Copyright (C) 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
@@ -41,7 +41,7 @@ class client_t
     : window (window_handle)
   {
   }
-  
+
   void decrypt_verify (vector<string> &filenames);
   void decrypt (vector<string> &filenames);
   void verify (vector<string> &filenames);
diff --git a/src/debug.h b/src/debug.h
index 8eaf14c..602b185 100644
--- a/src/debug.h
+++ b/src/debug.h
@@ -2,17 +2,17 @@
    Copyright (C) 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
diff --git a/src/gpgex-class.cc b/src/gpgex-class.cc
index 3dad91c..ffac30e 100644
--- a/src/gpgex-class.cc
+++ b/src/gpgex-class.cc
@@ -2,17 +2,17 @@
    Copyright (C) 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
diff --git a/src/gpgex-class.h b/src/gpgex-class.h
index f55ce69..5722cf6 100644
--- a/src/gpgex-class.h
+++ b/src/gpgex-class.h
@@ -2,17 +2,17 @@
    Copyright (C) 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
diff --git a/src/gpgex-factory.cc b/src/gpgex-factory.cc
index 49ce2c5..c4c4678 100644
--- a/src/gpgex-factory.cc
+++ b/src/gpgex-factory.cc
@@ -2,17 +2,17 @@
    Copyright (C) 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
diff --git a/src/gpgex-factory.h b/src/gpgex-factory.h
index 40d4ce7..b8e8347 100644
--- a/src/gpgex-factory.h
+++ b/src/gpgex-factory.h
@@ -2,17 +2,17 @@
    Copyright (C) 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
diff --git a/src/gpgex.cc b/src/gpgex.cc
index 9f9a4dc..8837127 100644
--- a/src/gpgex.cc
+++ b/src/gpgex.cc
@@ -1,18 +1,18 @@
 /* gpgex.cc - gpgex implementation
    Copyright (C) 2007 g10 Code GmbH
-   
+
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
@@ -148,7 +148,7 @@ gpgex_t::Release (void)
 /* IShellExtInit methods.  */
 
 STDMETHODIMP
-gpgex_t::Initialize (LPCITEMIDLIST pIDFolder, IDataObject *pDataObj, 
+gpgex_t::Initialize (LPCITEMIDLIST pIDFolder, IDataObject *pDataObj,
 		     HKEY hRegKey)
 {
   HRESULT err = S_OK;
@@ -165,7 +165,7 @@ gpgex_t::Initialize (LPCITEMIDLIST pIDFolder, IDataObject *pDataObj,
   try
     {
       if (pDataObj)
-	{ 
+	{
 	  /* The data object contains a drop item which we extract.  */
 	  FORMATETC fe = { CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
 	  STGMEDIUM medium;
@@ -175,7 +175,7 @@ gpgex_t::Initialize (LPCITEMIDLIST pIDFolder, IDataObject *pDataObj,
 	    {
 	      HDROP drop = (HDROP) GlobalLock (medium.hGlobal);
 	      unsigned int i;
-	      
+
 	      /* Now that we have the drop item, we can extract the
 		 file names.  */
 	      count = DragQueryFile (drop, (UINT) -1, NULL, 0);
@@ -209,7 +209,7 @@ gpgex_t::Initialize (LPCITEMIDLIST pIDFolder, IDataObject *pDataObj,
 			      || ! strcasecmp (ending, "p7s")
                               )
 			    gpg = true;
-			      
+
 			  if (gpg == false)
 			    this->all_files_gpg = FALSE;
 			}
@@ -277,7 +277,7 @@ gpgex_t::QueryContextMenu (HMENU hMenu, UINT indexMenu, UINT idCmdFirst,
   res = InsertMenu (hMenu, indexMenu++, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);
   if (! res)
     return TRACE_RES (HRESULT_FROM_WIN32 (GetLastError ()));
-  
+
   /* First we add the file-specific menus.  */
   if (this->all_files_gpg)
     {
@@ -535,7 +535,7 @@ start_help (HWND hwnd)
       }
     url[URLSIZE - 1] = '\0';
   }
-  
+
   BSTR burl = SysAllocString ((const OLECHAR *) url);
   VARIANT vars[4];
   memset (vars, 0, sizeof (vars));
@@ -563,7 +563,7 @@ gpgex_t::InvokeCommand (LPCMINVOKECOMMANDINFO lpcmi)
      and bail out.  */
   if (HIWORD (lpcmi->lpVerb) != 0)
     return TRACE_RES (E_INVALIDARG);
- 
+
   client_t client (lpcmi->hwnd);
 
   /* Get the command index, which is the offset to IDCMDFIRST of
diff --git a/src/gpgex.h b/src/gpgex.h
index 270d755..b2c64d2 100644
--- a/src/gpgex.h
+++ b/src/gpgex.h
@@ -2,17 +2,17 @@
    Copyright (C) 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
@@ -33,7 +33,7 @@ using std::string;
 #include "bitmaps.h"
 
 /* Our shell extension interface.  We use multiple inheritance to
-   achieve polymorphy.  
+   achieve polymorphy.
 
    NOTE 1: By this we save some effort, but we can only provide one
    implementation for each virtual function signature.  The overlap in
@@ -84,7 +84,7 @@ class gpgex_t : public IShellExtInit, public IContextMenu3
 
   /* Support for IShellExtInit.  */
   vector<string> filenames;
-  
+
   /* TRUE if all files in filenames are directly related to GPG.  */
   BOOL all_files_gpg;
 
@@ -128,7 +128,7 @@ class gpgex_t : public IShellExtInit, public IContextMenu3
   STDMETHODIMP_(ULONG) Release (void);
 
   /* IShellExtInit methods.  */
-  STDMETHODIMP Initialize (LPCITEMIDLIST pIDFolder, IDataObject *pDataObj, 
+  STDMETHODIMP Initialize (LPCITEMIDLIST pIDFolder, IDataObject *pDataObj,
 			   HKEY hRegKey);
 
   /* IContextMenu methods.  */
diff --git a/src/main.cc b/src/main.cc
index 8801903..aec4bd4 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -5,16 +5,16 @@
 
    GpgEX 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 
+   as published by the Free Software Foundation; either version 2.1
    of the License, or (at your option) any later version.
-  
+
    GpgEX 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
    General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public License
-   along with GpgEX; if not, write to the Free Software Foundation, 
+   along with GpgEX; if not, write to the Free Software Foundation,
    Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  */
 
 #if HAVE_CONFIG_H
@@ -56,7 +56,7 @@ get_locale_dir (void)
 				      "Install Directory");
   if (!instdir)
     return NULL;
-  
+
   /* Build the key: "<instdir>/share/locale".  */
 #define SLDIR "\\share\\locale"
   dname = static_cast<char *> (malloc (strlen (instdir) + strlen (SLDIR) + 1));
@@ -69,9 +69,9 @@ get_locale_dir (void)
   strcpy (p, instdir);
   p += strlen (instdir);
   strcpy (p, SLDIR);
-  
+
   free (instdir);
-  
+
   return dname;
 }
 
@@ -134,7 +134,7 @@ debug_init (void)
   if (debug_file)
     return;
 
-  InitializeCriticalSection (&debug_lock);  
+  InitializeCriticalSection (&debug_lock);
 
   filename = get_debug_file ();
   if (!filename)
@@ -169,7 +169,7 @@ extern "C" {
 #endif
 
 /* Log the formatted string FORMAT at debug level LEVEL or higher.  */
-extern 
+extern
 void
 _gpgex_debug (unsigned int flags, const char *format, ...)
 {
@@ -180,7 +180,7 @@ _gpgex_debug (unsigned int flags, const char *format, ...)
 
   if (! (debug_flags & flags))
     return;
-      
+
   va_start (arg_ptr, format);
   EnterCriticalSection (&debug_lock);
   vfprintf (debug_file, format, arg_ptr);
@@ -211,7 +211,7 @@ DllMain (HINSTANCE hinst, DWORD reason, LPVOID reserved)
 
       /* Early initializations of our subsystems. */
       gpg_err_init ();
-      
+
       i18n_init ();
 
       debug_init ();
@@ -228,7 +228,7 @@ DllMain (HINSTANCE hinst, DWORD reason, LPVOID reserved)
 
       {
 	WSADATA wsadat;
-	
+
 	WSAStartup (0x202, &wsadat);
       }
     }
@@ -245,7 +245,7 @@ DllMain (HINSTANCE hinst, DWORD reason, LPVOID reserved)
          function to cleanly deinitialize libgpg-error.  */
       gpg_err_deinit (0);
     }
-  
+
   return TRUE;
 }
 
diff --git a/src/main.h b/src/main.h
index 19eae9e..fe1b03b 100644
--- a/src/main.h
+++ b/src/main.h
@@ -2,17 +2,17 @@
    Copyright (C) 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
@@ -67,6 +67,6 @@ class gpgex_server
 #define GUID_FMT "{%08lX-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX}"
 #define GUID_ARG(x) (x).Data1, (x).Data2, (x).Data3, (x).Data4[0], \
     (x).Data4[1], (x).Data4[2], (x).Data4[3], (x).Data4[4],	   \
-    (x).Data4[5], (x).Data4[6], (x).Data4[7] 
+    (x).Data4[5], (x).Data4[6], (x).Data4[7]
 
 #endif
diff --git a/src/registry.h b/src/registry.h
index d4424ee..2eb1637 100644
--- a/src/registry.h
+++ b/src/registry.h
@@ -2,17 +2,17 @@
    Copyright (C) 2006, 2007 g10 Code GmbH
 
    This file is part of GpgEX.
- 
+
    GpgEX 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 of the License, or (at your option) any later version.
- 
+
    GpgEX 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., 51 Franklin Street, Fifth Floor, Boston, MA
diff --git a/src/w32-gettext.h b/src/w32-gettext.h
index 03f79dc..e8cd0fa 100644
--- a/src/w32-gettext.h
+++ b/src/w32-gettext.h
@@ -2,17 +2,17 @@
    Copyright (C) 2005 g10 Code GmbH
 
    This file is part of libgpg-error.
- 
+
    libgpg-error 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.
- 
+
    libgpg-error 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 libgpg-error; if not, write to the Free
    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA

commit c247b1ca815b68eca41be52f084cd8523a5cba39
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jun 19 11:43:03 2013 +0200

    Fix helper function prototype.
    
    * src/gpgex.cc (get_lang_name): Return const char *.

diff --git a/src/gpgex.cc b/src/gpgex.cc
index c6ab468..9f9a4dc 100644
--- a/src/gpgex.cc
+++ b/src/gpgex.cc
@@ -466,7 +466,7 @@ gpgex_t::GetCommandString (UINT idCommand, UINT uFlags, LPUINT lpReserved,
 }
 
 
-static char *
+static const char *
 get_lang_name (void)
 {
   LANGID lang;

commit b9fa91597284f349dc238c68d3cbef1ad87071f2
Author: Werner Koch <wk at gnupg.org>
Date:   Wed Jun 19 11:38:26 2013 +0200

    Remove unneeded hack to silence a compiler warning.
    
    * src/gpgex.h (IContextMenu3): Revert commit c25e06d5 from 2007-09-05.
    --
    
    g++ 4.6.3 does emit such a warning.

diff --git a/src/gpgex.h b/src/gpgex.h
index 70d4a3e..270d755 100644
--- a/src/gpgex.h
+++ b/src/gpgex.h
@@ -106,8 +106,7 @@ class gpgex_t : public IShellExtInit, public IContextMenu3
       (void) TRACE_SUC ();
     }
 
-  /* The "virtual" fixes a compile time warning.  */
-  virtual ~gpgex_t (void)
+  ~gpgex_t (void)
     {
       TRACE_BEG (DEBUG_INIT, "gpgex_t::~gpgex_t", this);
 

commit fa830d7a50a3d16b16b7e6ab9099d5bd48dbabab
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Jun 18 14:59:44 2013 +0200

    Use the right compiler for make distcheck.
    
    * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Use @host@ and @build@

diff --git a/Makefile.am b/Makefile.am
index 7bbb895..ed1c11f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
 # Makefile.am - main makefile for GpgEX
 # Copyright (C) 2005 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
 # modifications, as long as this notice is preserved.
@@ -13,8 +13,8 @@
 
 ACLOCAL_AMFLAGS = -I m4
 AUTOMAKE_OPTIONS = no-dist-gzip dist-bzip2
-# Because we can only build the w32 version e need to help automake here a bit.
-DISTCHECK_CONFIGURE_FLAGS = --host=i586-mingw32msvc --build=i686-pc-linux-gnu \
+# Because we can only build the w32 version we need to help automake.
+DISTCHECK_CONFIGURE_FLAGS = --host=@host@ --build=@build@ \
 			    --with-libassuan-prefix=@prefix@ \
 			    --with-gpg-error-prefix=@prefix@ \
                             --prefix=@prefix@

commit ca35b9dfa43fa023f41f5510507b210060057386
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Jun 18 14:53:31 2013 +0200

    Add a .gitignore file.
    
    --

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..70a48ef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+/Makefile.in
+/aclocal.m4
+/autom4te.cache/
+/config.h.in
+/configure
+/doc/Makefile.in
+/doc/gpgex.info
+/doc/mdate-sh
+/doc/stamp-vti
+/doc/version.texi
+/m4/Makefile.in
+/po/gpgex.pot
+/src/Makefile.in

commit bcd9a56a9f018838f2dbaa3617a148e1853e58a7
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Jun 18 14:53:04 2013 +0200

    Auto update PO files.
    
    --

diff --git a/po/ar.po b/po/ar.po
index b247d5a..6f71705 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -7,10 +7,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gpgex\n"
 "Report-Msgid-Bugs-To: bug-gpgex at g10code.com\n"
-"POT-Creation-Date: 2010-07-21 10:07+0200\n"
 "PO-Revision-Date: 2008-03-24 23:07+0200\n"
 "Last-Translator: أحمد غربية <ahmad at gharbeia.org>\n"
 "Language-Team: arabeyes.org <info at arabeyes.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -19,7 +19,6 @@ msgstr ""
 "X-Poedit-Language: Arabic\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
-#: src/client.cc:357
 #, c-format
 msgid ""
 "Can not access Kleopatra:\r\n"
@@ -28,90 +27,68 @@ msgstr ""
 "تعذّر النفاذ إلى كليوباترا:\r\n"
 "%s"
 
-#: src/gpgex.cc:58
 msgid "Help on GpgEX"
 msgstr "‮مساعدة حول ‪GpgEx‬"
 
-#: src/gpgex.cc:59
 msgid "Decrypt and verify"
 msgstr "ظهِّر و تحقق"
 
-#: src/gpgex.cc:60
 msgid "Decrypt"
 msgstr "ظهِّر"
 
-#: src/gpgex.cc:61
 msgid "Verify"
 msgstr "تحقق"
 
-#: src/gpgex.cc:62
 msgid "Sign and encrypt"
 msgstr "وقِّع و عمِّ"
 
-#: src/gpgex.cc:63
 msgid "Encrypt"
 msgstr "عمِّ"
 
-#: src/gpgex.cc:64
 msgid "Sign"
 msgstr "وقِّع"
 
-#: src/gpgex.cc:65
 msgid "Import keys"
 msgstr "استورد المفاتيح"
 
-#: src/gpgex.cc:66
 msgid "Create checksums"
 msgstr "احسب تلبيدات"
 
-#: src/gpgex.cc:67
 msgid "Verify checksums"
 msgstr "افحص التلبيدات"
 
-#: src/gpgex.cc:313
 msgid "More GpgEX options"
 msgstr "‮مزيد من خيارات ‪GpgEx‬"
 
-#: src/gpgex.cc:409
 msgid "Invoke the GpgEX documentation."
 msgstr "‮طالع وثائق ‪GpgEx‬"
 
-#: src/gpgex.cc:413
 msgid "Decrypt and verify the marked files."
 msgstr "ظهِّر و تحقق من الملفات المؤشَّرة."
 
-#: src/gpgex.cc:417
 msgid "Decrypt the marked files."
 msgstr "ظهِّر الملفات المؤشَّرة."
 
-#: src/gpgex.cc:421
 msgid "Verify the marked files."
 msgstr "تحقق من توقيعات الملفات المؤشَّرة."
 
-#: src/gpgex.cc:425
 msgid "Sign and encrypt the marked files."
 msgstr "وقِّع و عمِّ الملفات المؤشَّرة."
 
-#: src/gpgex.cc:429
 msgid "Encrypt the marked files."
 msgstr "عمِّ الملفات المؤشَّرة."
 
-#: src/gpgex.cc:433
 msgid "Sign the marked files."
 msgstr "وقِّع الملفات المؤشَّرة."
 
-#: src/gpgex.cc:437
 msgid "Import the marked files."
 msgstr "استورد الملفات المؤشَّرة."
 
-#: src/gpgex.cc:441
 msgid "Create checksums."
 msgstr "احسب تلبيدات."
 
-#: src/gpgex.cc:445
 msgid "Verify checksums."
 msgstr "افحص التلبيدات."
 
-#: src/gpgex.cc:449
 msgid "Show more GpgEX options."
 msgstr "‮أظهر مزيدا من خيارات ‪GpgEx‬."
diff --git a/po/de.po b/po/de.po
index e1d9cb7..902dea8 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7,16 +7,15 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gpgex 0.0.0-svn10\n"
 "Report-Msgid-Bugs-To: bug-gpgex at g10code.com\n"
-"POT-Creation-Date: 2010-07-21 10:07+0200\n"
 "PO-Revision-Date: 2009-01-22 16:11+0100\n"
 "Last-Translator: Marcus Brinkmann <marcus at g10code.com>\n"
 "Language-Team: German\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
-#: src/client.cc:357
 #, c-format
 msgid ""
 "Can not access Kleopatra:\r\n"
@@ -25,90 +24,68 @@ msgstr ""
 "Kann nicht auf Kleopatra zugreifen:\r\n"
 "%s"
 
-#: src/gpgex.cc:58
 msgid "Help on GpgEX"
 msgstr "Hilfe zu GpgEX"
 
-#: src/gpgex.cc:59
 msgid "Decrypt and verify"
 msgstr "Entschlüsseln und prüfen"
 
-#: src/gpgex.cc:60
 msgid "Decrypt"
 msgstr "Entschlüsseln"
 
-#: src/gpgex.cc:61
 msgid "Verify"
 msgstr "Prüfen"
 
-#: src/gpgex.cc:62
 msgid "Sign and encrypt"
 msgstr "Signieren und verschlüsseln"
 
-#: src/gpgex.cc:63
 msgid "Encrypt"
 msgstr "Verschlüsseln"
 
-#: src/gpgex.cc:64
 msgid "Sign"
 msgstr "Signieren"
 
-#: src/gpgex.cc:65
 msgid "Import keys"
 msgstr "Zertifikate importieren"
 
-#: src/gpgex.cc:66
 msgid "Create checksums"
 msgstr "Prüfsummen erstellen"
 
-#: src/gpgex.cc:67
 msgid "Verify checksums"
 msgstr "Prüfsummen überprüfen"
 
-#: src/gpgex.cc:313
 msgid "More GpgEX options"
 msgstr "Mehr GpgEX Optionen"
 
-#: src/gpgex.cc:409
 msgid "Invoke the GpgEX documentation."
 msgstr "Öffne die Dokumentation zu GpgEX"
 
-#: src/gpgex.cc:413
 msgid "Decrypt and verify the marked files."
 msgstr "Die markierten Dateien entschlüsseln und prüfen."
 
-#: src/gpgex.cc:417
 msgid "Decrypt the marked files."
 msgstr "Die markierten Dateien entschlüsseln."
 
-#: src/gpgex.cc:421
 msgid "Verify the marked files."
 msgstr "Die markierten Dateien prüfen."
 
-#: src/gpgex.cc:425
 msgid "Sign and encrypt the marked files."
 msgstr "Die markierten Dateien signieren und verschlüsseln."
 
-#: src/gpgex.cc:429
 msgid "Encrypt the marked files."
 msgstr "Die markierten Dateien verschlüsseln."
 
-#: src/gpgex.cc:433
 msgid "Sign the marked files."
 msgstr "Die markierten Dateien signieren."
 
-#: src/gpgex.cc:437
 msgid "Import the marked files."
 msgstr "Die markierten Dateien importieren."
 
-#: src/gpgex.cc:441
 msgid "Create checksums."
 msgstr "Für die markierten Dateien Prüfsummen erstellen."
 
-#: src/gpgex.cc:445
 msgid "Verify checksums."
 msgstr "Die Prüfsummen der markierten Dateien überprüfen."
 
-#: src/gpgex.cc:449
 msgid "Show more GpgEX options."
 msgstr "Mehr GpgEX Optionen."
diff --git a/po/es.po b/po/es.po
index 9c0744b..f794aab 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,15 +8,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GpgEX FIXME:VERSION\n"
 "Report-Msgid-Bugs-To: bug-gpgex at g10code.com\n"
-"POT-Creation-Date: 2010-07-21 10:07+0200\n"
 "PO-Revision-Date: 2008-03-15 08:03+0100\n"
 "Last-Translator: \n"
 "Language-Team: Spanish <es at li.org>\n"
+"Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/client.cc:357
 #, c-format
 msgid ""
 "Can not access Kleopatra:\r\n"
@@ -25,90 +24,68 @@ msgstr ""
 "No se pudo acceder a Kleopatra:\r\n"
 "%s"
 
-#: src/gpgex.cc:58
 msgid "Help on GpgEX"
 msgstr "Ayuda de GpgEX"
 
-#: src/gpgex.cc:59
 msgid "Decrypt and verify"
 msgstr "Descifrar y verificar."
 
-#: src/gpgex.cc:60
 msgid "Decrypt"
 msgstr "Descifrar"
 
-#: src/gpgex.cc:61
 msgid "Verify"
 msgstr "Verificar"
 
-#: src/gpgex.cc:62
 msgid "Sign and encrypt"
 msgstr "Firmar y cifrar"
 
-#: src/gpgex.cc:63
 msgid "Encrypt"
 msgstr "Cifrar"
 
-#: src/gpgex.cc:64
 msgid "Sign"
 msgstr "Firmar"
 
-#: src/gpgex.cc:65
 msgid "Import keys"
 msgstr "Importar claves"
 
-#: src/gpgex.cc:66
 msgid "Create checksums"
 msgstr "Crear sumas de comprobación."
 
-#: src/gpgex.cc:67
 msgid "Verify checksums"
 msgstr "Verificar sumas de comprobación."
 
-#: src/gpgex.cc:313
 msgid "More GpgEX options"
 msgstr "Más opciones de GpgEX"
 
-#: src/gpgex.cc:409
 msgid "Invoke the GpgEX documentation."
 msgstr "Invocar la documentación de GpgEX."
 
-#: src/gpgex.cc:413
 msgid "Decrypt and verify the marked files."
 msgstr "Descifrar y verificar los archivos marcados."
 
-#: src/gpgex.cc:417
 msgid "Decrypt the marked files."
 msgstr "Descifrar los archivos marcados."
 
-#: src/gpgex.cc:421
 msgid "Verify the marked files."
 msgstr "Verificar los archivos marcados."
 
-#: src/gpgex.cc:425
 msgid "Sign and encrypt the marked files."
 msgstr "Firmar y cifrar firmar los archivos marcados."
 
-#: src/gpgex.cc:429
 msgid "Encrypt the marked files."
 msgstr "Cifrar los archivos marcados."
 
-#: src/gpgex.cc:433
 msgid "Sign the marked files."
 msgstr "Firmar los archivos marcados."
 
-#: src/gpgex.cc:437
 msgid "Import the marked files."
 msgstr "Importar los archivos marcados."
 
-#: src/gpgex.cc:441
 msgid "Create checksums."
 msgstr "Crear sumas de comprobación."
 
-#: src/gpgex.cc:445
 msgid "Verify checksums."
 msgstr "Verificar sumas de comprobación."
 
-#: src/gpgex.cc:449
 msgid "Show more GpgEX options."
 msgstr "Mostrar más opciones de GpgEX."
diff --git a/po/pt.po b/po/pt.po
index 0c1b656..a58b507 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -8,10 +8,10 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GpgEX\n"
 "Report-Msgid-Bugs-To: bug-gpgex at g10code.com\n"
-"POT-Creation-Date: 2010-07-21 10:07+0200\n"
 "PO-Revision-Date: 2010-07-18 18:51-0000\n"
 "Last-Translator: Marco A.G.Pinto <marcoagpinto at mail.telepac.pt>\n"
 "Language-Team: Portuguese <marcoagpinto at mail.telepac.pt>\n"
+"Language: pt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -19,7 +19,6 @@ msgstr ""
 "X-Poedit-Country: PORTUGAL\n"
 "X-Poedit-SourceCharset: iso-8859-1\n"
 
-#: src/client.cc:357
 #, c-format
 msgid ""
 "Can not access Kleopatra:\r\n"
@@ -28,90 +27,68 @@ msgstr ""
 "Não é possível aceder a Kleopatra:\r\n"
 "%s"
 
-#: src/gpgex.cc:58
 msgid "Help on GpgEX"
 msgstr "Ajuda de GpgEX"
 
-#: src/gpgex.cc:59
 msgid "Decrypt and verify"
 msgstr "Desencriptar e verificar"
 
-#: src/gpgex.cc:60
 msgid "Decrypt"
 msgstr "Desencriptar"
 
-#: src/gpgex.cc:61
 msgid "Verify"
 msgstr "Verificar"
 
-#: src/gpgex.cc:62
 msgid "Sign and encrypt"
 msgstr "Assinar e encriptar"
 
-#: src/gpgex.cc:63
 msgid "Encrypt"
 msgstr "Encriptar"
 
-#: src/gpgex.cc:64
 msgid "Sign"
 msgstr "Assinar"
 
-#: src/gpgex.cc:65
 msgid "Import keys"
 msgstr "Importar chaves"
 
-#: src/gpgex.cc:66
 msgid "Create checksums"
 msgstr "Criar checksums"
 
-#: src/gpgex.cc:67
 msgid "Verify checksums"
 msgstr "Verificar checksums"
 
-#: src/gpgex.cc:313
 msgid "More GpgEX options"
 msgstr "Mais opções do GpgEX"
 
-#: src/gpgex.cc:409
 msgid "Invoke the GpgEX documentation."
 msgstr "Invocar a documentação do GpgEX."
 
-#: src/gpgex.cc:413
 msgid "Decrypt and verify the marked files."
 msgstr "Desencriptar e verificar os ficheiros marcados."
 
-#: src/gpgex.cc:417
 msgid "Decrypt the marked files."
 msgstr "Desencriptar os ficheiros marcados."
 
-#: src/gpgex.cc:421
 msgid "Verify the marked files."
 msgstr "Verificar os ficheiros marcados."
 
-#: src/gpgex.cc:425
 msgid "Sign and encrypt the marked files."
 msgstr "Assinar e encriptar os ficheiros marcados."
 
-#: src/gpgex.cc:429
 msgid "Encrypt the marked files."
 msgstr "Encriptar os ficheiros marcados."
 
-#: src/gpgex.cc:433
 msgid "Sign the marked files."
 msgstr "Assinar os ficheiros marcados."
 
-#: src/gpgex.cc:437
 msgid "Import the marked files."
 msgstr "Importar os ficheiros marcados."
 
-#: src/gpgex.cc:441
 msgid "Create checksums."
 msgstr "Criar checksums."
 
-#: src/gpgex.cc:445
 msgid "Verify checksums."
 msgstr "Verificar checksums."
 
-#: src/gpgex.cc:449
 msgid "Show more GpgEX options."
 msgstr "Mostrar mais opções do GpgEX."
diff --git a/po/ru.po b/po/ru.po
index cac4284..c5b1465 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7,17 +7,16 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GpgEX\n"
 "Report-Msgid-Bugs-To: bug-gpgex at g10code.com\n"
-"POT-Creation-Date: 2010-07-21 10:07+0200\n"
 "PO-Revision-Date: 2008-03-23 21:39+0300\n"
 "Last-Translator: Sergei Smirnov <moscow at hro.org>\n"
 "Language-Team: Sergei Smirnov <moscow at hro.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-Language: Russian\n"
 "X-Poedit-Country: RUSSIAN FEDERATION\n"
 
-#: src/client.cc:357
 #, c-format
 msgid ""
 "Can not access Kleopatra:\r\n"
@@ -26,90 +25,68 @@ msgstr ""
 "Нет доступа к программе Kleopatra:\r\n"
 "%s"
 
-#: src/gpgex.cc:58
 msgid "Help on GpgEX"
 msgstr "Помощь по GpgEX"
 
-#: src/gpgex.cc:59
 msgid "Decrypt and verify"
 msgstr "Расшифровать и проверить"
 
-#: src/gpgex.cc:60
 msgid "Decrypt"
 msgstr "Расшифровать"
 
-#: src/gpgex.cc:61
 msgid "Verify"
 msgstr "Проверить"
 
-#: src/gpgex.cc:62
 msgid "Sign and encrypt"
 msgstr "подписать и Зашифровать"
 
-#: src/gpgex.cc:63
 msgid "Encrypt"
 msgstr "Зашифровать"
 
-#: src/gpgex.cc:64
 msgid "Sign"
 msgstr "Подписать"
 
-#: src/gpgex.cc:65
 msgid "Import keys"
 msgstr "Импортировать ключи"
 
-#: src/gpgex.cc:66
 msgid "Create checksums"
 msgstr "Создать контрольные суммы"
 
-#: src/gpgex.cc:67
 msgid "Verify checksums"
 msgstr "Проверить контрольные суммы"
 
-#: src/gpgex.cc:313
 msgid "More GpgEX options"
 msgstr "Другие параметры GpgEX"
 
-#: src/gpgex.cc:409
 msgid "Invoke the GpgEX documentation."
 msgstr "Открыть документацию GpgEX."
 
-#: src/gpgex.cc:413
 msgid "Decrypt and verify the marked files."
 msgstr "Расшифровать и проверить отмеченные файлы."
 
-#: src/gpgex.cc:417
 msgid "Decrypt the marked files."
 msgstr "Расшифровать отмеченные файлы."
 
-#: src/gpgex.cc:421
 msgid "Verify the marked files."
 msgstr "Проверить отмеченные файлы."
 
-#: src/gpgex.cc:425
 msgid "Sign and encrypt the marked files."
 msgstr "подписать и Зашифровать отмеченные файлы."
 
-#: src/gpgex.cc:429
 msgid "Encrypt the marked files."
 msgstr "Зашифровать отмеченные файлы."
 
-#: src/gpgex.cc:433
 msgid "Sign the marked files."
 msgstr "Подписать отмеченные файлы."
 
-#: src/gpgex.cc:437
 msgid "Import the marked files."
 msgstr "Импортировать отмеченные файлы."
 
-#: src/gpgex.cc:441
 msgid "Create checksums."
 msgstr "Создать контрольные суммы."
 
-#: src/gpgex.cc:445
 msgid "Verify checksums."
 msgstr "Проверить контрольные суммы."
 
-#: src/gpgex.cc:449
 msgid "Show more GpgEX options."
 msgstr "Другие параметры GpgEX."

commit 6448129f58b84cf1742e87422489ae8fbc0f3b9f
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Jun 18 14:46:53 2013 +0200

    Update autogen.sh and configure.ac to support W64.
    
    * autogen.sh: Modernize and support --build-w64.
    * configure.ac: Suport building for W64.

diff --git a/autogen.sh b/autogen.sh
index 38529b1..c3adc89 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -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
 #
@@ -28,16 +28,6 @@ check_version () {
     return 1
 }
 
-# Allow to override the default tool names
-AUTOCONF=${AUTOCONF_PREFIX}${AUTOCONF:-autoconf}${AUTOCONF_SUFFIX}
-AUTOHEADER=${AUTOCONF_PREFIX}${AUTOHEADER:-autoheader}${AUTOCONF_SUFFIX}
-
-AUTOMAKE=${AUTOMAKE_PREFIX}${AUTOMAKE:-automake}${AUTOMAKE_SUFFIX}
-ACLOCAL=${AUTOMAKE_PREFIX}${ACLOCAL:-aclocal}${AUTOMAKE_SUFFIX}
-
-GETTEXT=${GETTEXT_PREFIX}${GETTEXT:-gettext}${GETTEXT_SUFFIX}
-MSGMERGE=${GETTEXT_PREFIX}${MSGMERGE:-msgmerge}${GETTEXT_SUFFIX}
-
 DIE=no
 FORCE=
 if test x"$1" = x"--force"; then
@@ -45,9 +35,45 @@ if test x"$1" = x"--force"; then
   shift
 fi
 
+# Begin list of optional variables sourced from ~/.gnupg-autogen.rc
+w32_toolprefixes=
+w32_extraoptions=
+w64_toolprefixes=
+w64_extraoptions=
+# End list of optional variables sourced from ~/.gnupg-autogen.rc
+# What follows are variables which are sourced but default to
+# environment variables or lacking them hardcoded values.
+#w32root=
+#w64root=
+
+if [ -f "$HOME/.gnupg-autogen.rc" ]; then
+    echo "sourcing extra definitions from $HOME/.gnupg-autogen.rc"
+    . "$HOME/.gnupg-autogen.rc"
+fi
+
+# Convenience option to use certain configure options for some hosts.
+myhost=""
+myhostsub=""
+case "$1" in
+    --build-w32)
+        myhost="w32"
+        ;;
+    --build-w64)
+        myhost="w32"
+        myhostsub="64"
+        ;;
+    --build*)
+        echo "**Error**: invalid build option $1" >&2
+        exit 1
+        ;;
+    *)
+        ;;
+esac
+
+
 # ***** W32 build script *******
 # Used to cross-compile for Windows.
-if test "$1" = "--build-w32"; then
+if [ "$myhost" = "w32" ]; then
     tmp=`dirname $0`
     tsdir=`cd "$tmp"; pwd`
     shift
@@ -57,30 +83,38 @@ if test "$1" = "--build-w32"; then
     fi
     build=`$tsdir/config.guess`
 
-    [ -z "$w32root" ] && w32root="$HOME/w32root"
+    case $myhostsub in
+        64)
+          w32root="$w64root"
+          [ -z "$w32root" ] && w32root="$HOME/w64root"
+          toolprefixes="$w64_toolprefixes x86_64-w64-mingw32"
+          ;;
+        *)
+          [ -z "$w32root" ] && w32root="$HOME/w32root"
+          toolprefixes="$w32_toolprefixes i586-mingw32msvc"
+          toolprefixes="$toolprefixes i386-mingw32msvc mingw32"
+          ;;
+    esac
     echo "Using $w32root as standard install directory" >&2
-    
-    # See whether we have the Debian cross compiler package or the
-    # old mingw32/cpd system
-    if i586-mingw32msvc-gcc --version >/dev/null 2>&1 ; then
-        host=i586-mingw32msvc
-        crossbindir=/usr/$host/bin
-    else
-       host=i386--mingw32
-       if ! mingw32 --version >/dev/null; then
-          echo "We need at least version 0.3 of MingW32/CPD" >&2
-          exit 1
-       fi
-       crossbindir=`mingw32 --install-dir`/bin
-       # Old autoconf version required us to setup the environment
-       # with the proper tool names.
-       CC=`mingw32 --get-path gcc`
-       CPP=`mingw32 --get-path cpp`
-       AR=`mingw32 --get-path ar`
-       RANLIB=`mingw32 --get-path ranlib`
-       export CC CPP AR RANLIB 
+
+    crossbindir=
+    for host in $toolprefixes; do
+        if ${host}-gcc --version >/dev/null 2>&1 ; then
+            crossbindir=/usr/${host}/bin
+            conf_CC="CC=${host}-gcc"
+            break;
+        fi
+    done
+    if [ -z "$crossbindir" ]; then
+        echo "Cross compiler kit not installed" >&2
+        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
+        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
@@ -88,10 +122,10 @@ if test "$1" = "--build-w32"; then
         fi
     fi
 
-    ./configure --enable-maintainer-mode --prefix=${w32root}  \
-             --host=i586-mingw32msvc --build=${build} \
+    $tsdir/configure --enable-maintainer-mode --prefix=${w32root}  \
+             --host=${host} --build=${build} \
              --with-gpg-error-prefix=${w32root} \
-	     --with-libassuan-prefix=${w32root} 
+	     --with-libassuan-prefix=${w32root}
     rc=$?
 
     exit $rc
@@ -102,19 +136,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}`
@@ -128,6 +162,16 @@ then
   exit 1
 fi
 
+# Allow to override the default tool names
+AUTOCONF=${AUTOCONF_PREFIX}${AUTOCONF:-autoconf}${AUTOCONF_SUFFIX}
+AUTOHEADER=${AUTOCONF_PREFIX}${AUTOHEADER:-autoheader}${AUTOCONF_SUFFIX}
+
+AUTOMAKE=${AUTOMAKE_PREFIX}${AUTOMAKE:-automake}${AUTOMAKE_SUFFIX}
+ACLOCAL=${AUTOMAKE_PREFIX}${ACLOCAL:-aclocal}${AUTOMAKE_SUFFIX}
+
+GETTEXT=${GETTEXT_PREFIX}${GETTEXT:-gettext}${GETTEXT_SUFFIX}
+MSGMERGE=${GETTEXT_PREFIX}${MSGMERGE:-msgmerge}${GETTEXT_SUFFIX}
+
 
 if check_version $AUTOCONF $autoconf_vers_num $autoconf_vers ; then
     check_version $AUTOHEADER $autoconf_vers_num $autoconf_vers autoconf
@@ -142,13 +186,42 @@ 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.SVN for details.
-                   
+
 EOF
     exit 1
 fi
 
+# Check the git setup.
+if [ -d .git ]; then
+  if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then
+    cat <<EOF >&2
+*** Activating trailing whitespace git pre-commit hook. ***
+    For more information see this thread:
+      http://mail.gnome.org/archives/desktop-devel-list/2009-May/msg00084html
+    To deactivate this pre-commit hook again move .git/hooks/pre-commit
+    and .git/hooks/pre-commit.sample out of the way.
+EOF
+      cp .git/hooks/pre-commit.sample .git/hooks/pre-commit
+      chmod +x  .git/hooks/pre-commit
+  fi
+  tmp=$(git config --get filter.cleanpo.clean)
+  if [ "$tmp" != "awk '/^\"POT-Creation-Date:/&&!s{s=1;next};!/^#: /{print}'" ]
+  then
+    echo "*** Adding GIT filter.cleanpo.clean configuration." >&2
+    git config --add filter.cleanpo.clean \
+        "awk '/^\"POT-Creation-Date:/&&!s{s=1;next};!/^#: /{print}'"
+  fi
+  if [ -f build-aux/git-hooks/commit-msg -a ! -f .git/hooks/commit-msg ] ; then
+    cat <<EOF >&2
+*** Activating commit log message check hook. ***
+EOF
+      cp build-aux/git-hooks/commit-msg .git/hooks/commit-msg
+      chmod +x  .git/hooks/commit-msg
+  fi
+fi
+
 
 echo "Running aclocal -I m4 ${ACLOCAL_FLAGS:+$ACLOCAL_FLAGS }..."
 $ACLOCAL -I m4 $ACLOCAL_FLAGS
@@ -159,4 +232,8 @@ $AUTOMAKE --gnu --add-missing
 echo "Running autoconf${FORCE} ..."
 $AUTOCONF${FORCE}
 
-echo "You may now run \"./configure --enable-maintainer-mode && make\"."
+echo "You may now run:
+  ./autogen.sh --build-w32 && make
+or
+  ./autogen.sh --build-w64 && make
+"
diff --git a/configure.ac b/configure.ac
index 4af5e8b..24dc04a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,7 +67,7 @@ AC_SUBST(BUILD_FILEVERSION)
 AH_BOTTOM([
 /* Some global constants. */
 
-/* Force using of NLS for W32 even if no libintl has been found.  This is 
+/* Force using of NLS for W32 even if no libintl has been found.  This is
    okay because we have our own gettext implementation for W32.  */
 #if defined(HAVE_W32_SYSTEM) && !defined(ENABLE_NLS)
 #define ENABLE_NLS 1
@@ -100,11 +100,14 @@ AC_CHECK_TOOL(WINDRES, windres, :)
 
 have_dosish_system=no
 have_w32_system=no
+have_w64_system=no
 case "${host}" in
+    x86_64-*mingw32*)
+        have_dosish_system=yes
+        have_w32_system=yes
+        have_w64_system=yes
+        ;;
     *-mingw32*)
-        # special stuff for Windoze NT
-        AC_DEFINE(HAVE_DRIVE_LETTERS,1,
-                  [defined if we must run on a stupid file system])
         have_dosish_system=yes
         have_w32_system=yes
         ;;
@@ -113,11 +116,16 @@ case "${host}" in
 ***
 *** This software my only be build for W32 systems.  Use
 ***     ./autogen.sh --build-w32
+*** or
+***     ./autogen.sh --build-w64
 *** to prepare it for such a build.
 ***]])
        ;;
 esac
 
+AC_DEFINE(HAVE_DRIVE_LETTERS,1,
+          [defined if we must run on a stupid file system])
+
 if test "$have_dosish_system" = yes; then
    AC_DEFINE(HAVE_DOSISH_SYSTEM,1,
              [Defined if we run on some of the PCDOS like systems
@@ -128,9 +136,13 @@ 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])
+   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
 fi
 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
-
+AM_CONDITIONAL(HAVE_W64_SYSTEM, test "$have_w64_system" = yes)
 
 
 #
@@ -210,10 +222,10 @@ die=no
 if test "$have_gpg_error" = "no"; then
    die=yes
    AC_MSG_NOTICE([[
-***  
+***
 *** You need libgpg-error to build this program.
 **  This library is for example available at
-***   ftp://ftp.gnupg.org/pub/gcrypt/libgpg-error
+***   ftp://ftp.gnupg.org/gcrypt/libgpg-error
 *** (at least version $NEED_GPG_ERROR_VERSION is required.)
 ***]])
 fi
@@ -223,7 +235,7 @@ if test "$have_libassuan" = "no"; then
 ***
 *** You need libassuan to build this program.
 *** This library is for example available at
-***   ftp://ftp.gnupg.org/pub/gcrypt/libassuan/
+***   ftp://ftp.gnupg.org/gcrypt/libassuan/
 *** (at least version $NEED_LIBASSUAN_VERSION is required).
 ***]])
 fi
@@ -239,7 +251,7 @@ fi
 AC_CONFIG_FILES([ Makefile
 doc/Makefile
 src/Makefile
-src/versioninfo.rc        
+src/versioninfo.rc
 po/Makefile.in
 m4/Makefile
 ])
diff --git a/po/.gitattributes b/po/.gitattributes
new file mode 100644
index 0000000..17b178c
--- /dev/null
+++ b/po/.gitattributes
@@ -0,0 +1,7 @@
+# You should add
+#[filter "cleanpo"]
+#        clean = "awk '/^\"POT-Creation-Date:/&&!s{s=1;next};!/^#: /{print}'"
+# to your config file.
+
+/??.po     filter=cleanpo
+/??_??.po  filter=cleanpo

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

Summary of changes:
 .gitignore           |   13 ++++
 Makefile.am          |    6 +-
 autogen.sh           |  163 ++++++++++++++++++++++++++++++++++++-------------
 configure.ac         |   30 +++++++---
 po/.gitattributes    |    7 ++
 po/ar.po             |   25 +-------
 po/de.po             |   25 +-------
 po/es.po             |   25 +-------
 po/pt.po             |   25 +-------
 po/ru.po             |   25 +-------
 src/Makefile.am      |    2 +-
 src/bitmaps.cc       |   14 ++--
 src/bitmaps.h        |    6 +-
 src/client.cc        |   54 ++++++++++-------
 src/client.h         |    8 +-
 src/debug.h          |    8 +-
 src/exechelp.c       |    8 +-
 src/gpgex-class.cc   |    9 +--
 src/gpgex-class.h    |    6 +-
 src/gpgex-factory.cc |    6 +-
 src/gpgex-factory.h  |    6 +-
 src/gpgex.cc         |   29 +++++----
 src/gpgex.h          |   18 +++---
 src/main.cc          |   25 ++++----
 src/main.h           |    8 +-
 src/registry.c       |   18 +++---
 src/registry.h       |    6 +-
 src/w32-gettext.c    |   28 ++++----
 src/w32-gettext.h    |    6 +-
 29 files changed, 307 insertions(+), 302 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 po/.gitattributes


hooks/post-receive
-- 
GnupG extension for the Windows Explorer
http://git.gnupg.org




More information about the Gnupg-commits mailing list