[Winpt-commits] r270 - in trunk: . Doc/website Include Po Src

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Sat Oct 21 20:09:01 CEST 2006


Author: twoaday
Date: 2006-10-21 20:08:57 +0200 (Sat, 21 Oct 2006)
New Revision: 270

Added:
   trunk/Src/wptRegistryMobile.cpp
Modified:
   trunk/Doc/website/download.html
   trunk/Doc/website/index.html
   trunk/Include/wptGPG.h
   trunk/Include/wptRegistry.h
   trunk/NEWS
   trunk/Po/de.po
   trunk/Po/jp.po
   trunk/Po/pt_BR.po
   trunk/Src/ChangeLog
   trunk/Src/WinPT.cpp
   trunk/Src/wptCardEdit.cpp
   trunk/Src/wptCardEditCB.cpp
   trunk/Src/wptFileManager.cpp
   trunk/Src/wptGPG.cpp
   trunk/Src/wptGPGME.cpp
   trunk/Src/wptGPGMEWrapper.cpp
   trunk/Src/wptGPGParser.cpp
   trunk/Src/wptGPGPrefsDlg.cpp
   trunk/Src/wptGPGUtil.cpp
   trunk/Src/wptKeyserver.cpp
   trunk/Src/wptMainProc.cpp
   trunk/Src/wptProgressDlg.cpp
   trunk/Src/wptProxySettingsDlg.cpp
   trunk/Src/wptRegistry.cpp
   trunk/Src/wptVerifyList.cpp
   trunk/TODO
   trunk/configure.ac
Log:


Modified: trunk/Doc/website/download.html
===================================================================
--- trunk/Doc/website/download.html	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Doc/website/download.html	2006-10-21 18:08:57 UTC (rev 270)
@@ -53,16 +53,16 @@
           </p>          </td>
         <td width="710" align="left" valign="top"> 
 	<p class="style2">Remember that you need GnuPG installed on your computer to use WinPT. You can get GnuPG for free from the <a href="http://www.gnupg.org" target="_blank">GnuPG website</a>. </p>
-          <p class="style4">The latest version of WinPT is 1.0.1.</p>
+          <p class="style4">The latest version of WinPT is 1.0.2.</p>
 	  
           <p class="style2">
-	  Latest <b>binary</b> version: <a href="http://wald.intevation.org/frs/download.php/270/winpt-1.0.1-exe.zip">download</a>&nbsp;
-	  <a href="http://wald.intevation.org/frs/download.php/271/winpt-1.0.1-exe.zip.sig">signature</a>
+	  Latest <b>binary</b> version: <a href="http://wald.intevation.org/frs/download.php/270/winpt-1.0.2-exe.zip">download</a>&nbsp;
+	  <a href="http://wald.intevation.org/frs/download.php/271/winpt-1.0.2-exe.zip.sig">signature</a>
 	  &nbsp;<br>sha1sum: <tt>699f3d25fb72019ee1bc7f9eecd7a74bee91e193</tt>
 	  </p>
 	 
-          <p class="style2"><b>Source</b> code: <a href="http://wald.intevation.org/frs/download.php/272/winpt-1.0.1.tar.bz2">download</a>&nbsp;
-	  <a href="http://wald.intevation.org/frs/download.php/273/winpt-1.0.1.tar.bz2.sig">signature</a>
+          <p class="style2"><b>Source</b> code: <a href="http://wald.intevation.org/frs/download.php/272/winpt-1.0.2.tar.bz2">download</a>&nbsp;
+	  <a href="http://wald.intevation.org/frs/download.php/273/winpt-1.0.2.tar.bz2.sig">signature</a>
 	  &nbsp;<br>sha1sum: <tt>574b7766701aaaef6e388d8b3ad68a171c9c071f</tt>
 	  </p>
 	  

Modified: trunk/Doc/website/index.html
===================================================================
--- trunk/Doc/website/index.html	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Doc/website/index.html	2006-10-21 18:08:57 UTC (rev 270)
@@ -65,7 +65,7 @@
 	<p class="style2">
 	WinPT is designed to make life easier for people who want encryption, and to make security less 
 	daunting for people who are new to securing data. </p>
-	<p class="style4">The latest version of WinPT is 1.0.1. You can download it from <a href="download.html">here</a>.</p>
+	<p class="style4">The latest version of WinPT is 1.0.2. You can download it from <a href="download.html">here</a>.</p>
 	<p class="style3">
 	WinPT is licensed under the GNU GPL, and can be freely used, redistributed or modified.
 	It is is distributed in the hope that it will be useful, 

Modified: trunk/Include/wptGPG.h
===================================================================
--- trunk/Include/wptGPG.h	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Include/wptGPG.h	2006-10-21 18:08:57 UTC (rev 270)
@@ -174,6 +174,7 @@
     struct gpg_group_s *grp;
 };
 typedef struct gpg_optfile_s *gpg_optfile_t;
+typedef struct gpg_optfile_s *config_file_t;
 
 /* find */
 gpg_group_t find_group( gpg_optfile_t opt, const char *str );
@@ -186,12 +187,14 @@
 /* add */
 int modify_entry( gpg_optfile_t opt, int type, const char *name, const char *val );
 int add_entry( gpg_optfile_t opt, int type, const char *name, const char *val );
+int add_entry_int (config_file_t opt, int type, const char *name, int val);
 int add_member( gpg_optfile_t opt, const char *grp, const char *str );
 int add_group( gpg_optfile_t opt, const char *str );
 /* high-level */
-int parse_gpg_options( const char *file, gpg_optfile_t *r_opt );
-int commit_gpg_options( const char *file, gpg_optfile_t opt );
-void release_gpg_options( gpg_optfile_t opt );
+void new_config (config_file_t *r_opt);
+int parse_config (const char *file, config_file_t *r_opt);
+int commit_config (const char *file, config_file_t opt);
+void release_config (config_file_t opt);
 /* memory */
 void release_group( gpg_group_t grp );
 

Modified: trunk/Include/wptRegistry.h
===================================================================
--- trunk/Include/wptRegistry.h	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Include/wptRegistry.h	2006-10-21 18:08:57 UTC (rev 270)
@@ -1,4 +1,4 @@
-/* wptRegistry.h - Win32 Registry headerfile
+/* wptRegistry.h - Registry interface
  *	Copyright (C) 2000-2006 Timo Schulz
  *
  * This file is part of WinPT.
@@ -21,7 +21,6 @@
 #ifndef WPT_REGISTRY_H
 #define WPT_REGISTRY_H
 
-#include "wptKeyserver.h"
 
 /* Symbolic configuration IDs */
 enum cfg_t {
@@ -44,8 +43,25 @@
     CFG_KSERV_CONF,    
 };
 
+/* All valid configuration commands. */
+static const char *cfg [] = {
+    NULL,	
+    "CacheTime",
+    "WordWrap",
+    "DefaultExt",
+    "Viewer",
+    "WipeMode",
+    "AlwaysTrust",
+    "AutoBackup",
+    "BackupMode",
+    "DisableHotkeys",	
+    "NoCompressMultiMedia",	
+    "Expert",
+    "FMProgressBar",
+    "BackupSecring"
+};
 
-struct winpt_reg_prefs_s {
+struct winpt_prefs_s {
     int no_hotkeys;	/* disable ALL hotkeys */
     int word_wrap;	/* set word wrapping (0 means to disable it) */
     int cache_time;	/* caching time for passphrase */
@@ -73,32 +89,28 @@
 	unsigned int ask_cert_expire:1;
     } gpg;
 };
+typedef struct winpt_prefs_s *winpt_prefs_t;
+extern winpt_prefs_s reg_prefs;
 
-extern winpt_reg_prefs_s reg_prefs;
-
 /*-- wptRegistry.cpp --*/
 void free_reg_prefs (void);
 int regist_inst_gnupg (int create_mokey);
 int regist_inst_winpt (int with_ext, int *created);
-int create_file_type (const char * exefile, const char * ext,
-		      const char * extname, char *iconfile );
 int set_reg_winpt_single (int id, int val);
 int get_reg_winpt_single (int id);
-int set_reg_winpt_prefs (winpt_reg_prefs_s * opt);
-int get_reg_winpt_prefs (winpt_reg_prefs_s * opt);
+int set_reg_winpt_prefs (winpt_prefs_t opt);
+int get_reg_winpt_prefs (winpt_prefs_t opt);
 char* get_reg_entry (HKEY root_key, const char *dir, const char *key);
-int set_reg_entry( HKEY root_key, const char * dir, const char * key,
-				   const char * value );
-int set_reg_key( HKEY root_key, const char * dir, const char * key,
-				 const char * value );
-int set_reg_entry_gpg( const char * key, const char * value );
-int set_reg_entry_mo( const char * value );
-char* get_reg_entry_gpg( const char * key );
-char* get_reg_entry_mo( void );
-void get_reg_proxy_prefs (keyserver_proxy_t prox);
-int set_reg_proxy_prefs (keyserver_proxy_t prox);
-int set_reg_entry_keyserver( const char * name, const char * val );
-char * get_reg_entry_keyserver( const char * name );
+int set_reg_entry (HKEY root_key, const char * dir, const char * key,
+				   const char *value);
+int set_reg_key (HKEY root_key, const char * dir, const char * key,
+				 const char * value);
+int set_reg_entry_gpg (const char *key, const char *value);
+int set_reg_entry_mo (const char *value);
+char* get_reg_entry_gpg (const char * key);
+char* get_reg_entry_mo (void);
+int set_reg_entry_keyserver (const char * name, const char *val);
+char* get_reg_entry_keyserver( const char * name );
 int set_reg_winpt_flag (const char *name, int val);
 int get_reg_winpt_flag (const char *name);
 char* get_reg_entry_gpg4win (const char *path);

Modified: trunk/NEWS
===================================================================
--- trunk/NEWS	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/NEWS	2006-10-21 18:08:57 UTC (rev 270)
@@ -941,4 +941,8 @@
 
 
 Noteworthy changes in version 1.0.2 (unreleased)
-================================================
\ No newline at end of file
+================================================
+
+* Some minor bug fixes for the File Manager.
+
+* Fix a problem with the proxy settings procedure.

Modified: trunk/Po/de.po
===================================================================
--- trunk/Po/de.po	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Po/de.po	2006-10-21 18:08:57 UTC (rev 270)
@@ -2,6 +2,8 @@
 # Copyright (C)
 # Timo Schulz <twoaday at freakmail.de>, 2002, 2004, 2005, 2006
 # g10 Code GmbH <twoaday at g10code.de>, 2005, 2006
+#
+# These authors are retired and should not be contacted for questions
 # Thomas Henlich <henlich at mmers1.mw.tu-dresden.de>, 2001
 # Ralf Kreutzmann <ralf.kreutzmann at equipmente.de>, 2004, 2005
 #
@@ -12,9 +14,9 @@
 # BUG: GetOpenFileName needs \0\0. gettext does not support it.
 msgid ""
 msgstr ""
-"Project-Id-Version: WinPT 1.0.1\n"
+"Project-Id-Version: WinPT 1.0.2\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-08-30 14:04+0200\n"
+"POT-Creation-Date: 2006-10-21 19:58+0200\n"
 "PO-Revision-Date: 2005-12-28 16:10+0100\n"
 "Last-Translator: Timo Schulz <ts at g10code.de>\n"
 "Language-Team: DE <twoaday at freakmail.de>\n"
@@ -30,33 +32,33 @@
 "Die gpg.conf Datei enthält mindestens ein Argument das auf einen ungültigen "
 "Dateinamen verweist."
 
-#: Src/WinPT.cpp:196
+#: Src/WinPT.cpp:197
 msgid "Could not create GPG home directory"
 msgstr "Konnte Heimatverzeichnis von GPG nicht erstellen"
 
-#: Src/WinPT.cpp:197 Src/WinPT.cpp:279 Src/WinPT.cpp:283 Src/WinPT.cpp:484
+#: Src/WinPT.cpp:198 Src/WinPT.cpp:277 Src/WinPT.cpp:281 Src/WinPT.cpp:484
 #: Src/WinPT.cpp:493 Src/WinPT.cpp:500 Src/WinPT.cpp:540 Src/WinPT.cpp:568
-#: Src/WinPT.cpp:577 Src/WinPT.cpp:581 Src/WinPT.cpp:598 Src/WinPT.cpp:666
-#: Src/WinPT.cpp:679 Src/WinPT.cpp:726 Src/WinPT.cpp:768 Src/WinPT.cpp:787
-#: Src/wptCommonDlg.cpp:224 Src/wptErrors.cpp:141 Src/wptGPG.cpp:926
-#: Src/wptGPG.cpp:938 Src/wptGPG.cpp:948 Src/wptGPG.cpp:959
-#: Src/wptMainProc.cpp:345 Src/wptMainProc.cpp:518
+#: Src/WinPT.cpp:577 Src/WinPT.cpp:581 Src/WinPT.cpp:598 Src/WinPT.cpp:665
+#: Src/WinPT.cpp:678 Src/WinPT.cpp:725 Src/WinPT.cpp:767 Src/WinPT.cpp:786
+#: Src/wptCommonDlg.cpp:224 Src/wptErrors.cpp:141 Src/wptGPG.cpp:921
+#: Src/wptGPG.cpp:933 Src/wptGPG.cpp:943 Src/wptGPG.cpp:954
+#: Src/wptMainProc.cpp:346 Src/wptMainProc.cpp:519
 msgid "WinPT Error"
 msgstr "WinPT Fehler"
 
-#: Src/WinPT.cpp:228
+#: Src/WinPT.cpp:226
 msgid "No useable secret key found."
 msgstr "Kein benutzbarer geheimer Schlüssel gefunden."
 
-#: Src/WinPT.cpp:229 Src/wptKeyPropsDlg.cpp:357 Src/wptKeyPropsDlg.cpp:364
+#: Src/WinPT.cpp:227 Src/wptKeyPropsDlg.cpp:357 Src/wptKeyPropsDlg.cpp:364
 msgid "WinPT Warning"
 msgstr "WinPT Warnung"
 
-#: Src/WinPT.cpp:278
+#: Src/WinPT.cpp:276
 msgid "Could not read GnuPG version."
 msgstr "Konnte Version von GnuPG nicht auslesen."
 
-#: Src/WinPT.cpp:284
+#: Src/WinPT.cpp:282
 #, c-format
 msgid ""
 "Sorry, you need a newer GPG version.\n"
@@ -65,11 +67,11 @@
 "Sorry, Sie benötigen eine neuere Version von GPG.\n"
 "Aktuelle Version von GPG %d.%d.%d benötigte Version von GPG "
 
-#: Src/WinPT.cpp:312
+#: Src/WinPT.cpp:310
 msgid "Failed to create WinPT directory"
 msgstr "Konnte WinPT-Verzeichnis nicht erstellen"
 
-#: Src/WinPT.cpp:313 Src/WinPT.cpp:330 Src/WinPT.cpp:341
+#: Src/WinPT.cpp:311 Src/WinPT.cpp:328 Src/WinPT.cpp:339
 #: Src/wptKeyManagerDlg.cpp:996 Src/wptKeyserver.cpp:634
 #: Src/wptKeyserverDlg.cpp:71 Src/wptKeyserverDlg.cpp:73
 #: Src/wptKeyserverDlg.cpp:190 Src/wptKeyserverDlg.cpp:198
@@ -82,7 +84,7 @@
 msgid "Keyserver"
 msgstr "Schlüsselserver"
 
-#: Src/WinPT.cpp:329
+#: Src/WinPT.cpp:327
 msgid "Failed to copy the keyserver.conf"
 msgstr "Kopieren der keyserver.conf ist fehlgeschlagen"
 
@@ -154,15 +156,15 @@
 msgid "Wipe Free Space"
 msgstr "Freien Speicher Löschen"
 
-#: Src/WinPT.cpp:665
+#: Src/WinPT.cpp:664
 msgid "Could not register window class"
 msgstr "Konnte Fensterklasse nicht registrieren"
 
-#: Src/WinPT.cpp:679
+#: Src/WinPT.cpp:678
 msgid "Could not create window"
 msgstr "Konnte Fenster nicht erstellen"
 
-#: Src/WinPT.cpp:766
+#: Src/WinPT.cpp:765
 msgid ""
 "The keycache was not initialized or is empty.\n"
 "Please check your GPG config (keyrings, pathes...)"
@@ -170,7 +172,7 @@
 "Der Schlüsselcache wurde nicht initialisiert oder ist leer.\n"
 "Bitte überprüfen Sie die Konfiguration von GPG (Schlüsselbunde, Pfade)"
 
-#: Src/WinPT.cpp:769
+#: Src/WinPT.cpp:768
 msgid ""
 "It seems that GPG is not configured properly.\n"
 "Do you want to start the GPG preferences dialog?"
@@ -178,7 +180,7 @@
 "GPG ist nicht richtig konfiguriert.\n"
 "Den GPG-Einstellungsdialog starten?"
 
-#: Src/WinPT.cpp:788
+#: Src/WinPT.cpp:787
 #, c-format
 msgid ""
 "Default key (from the GPG config file) could not be found.\n"
@@ -201,7 +203,7 @@
 msgstr "Über GnuPG"
 
 #: Src/wptAboutDlgs.cpp:89 Src/wptKeyManagerDlg.cpp:1890
-#: Src/wptMainProc.cpp:567
+#: Src/wptMainProc.cpp:568
 msgid "About WinPT"
 msgstr "Über WinPT"
 
@@ -260,7 +262,7 @@
 msgid "&Help"
 msgstr "&Hilfe"
 
-#: Src/wptCardDlg.cpp:149 Src/wptMainProc.cpp:394
+#: Src/wptCardDlg.cpp:149 Src/wptMainProc.cpp:395
 msgid "Card Manager"
 msgstr "Kartenmanager"
 
@@ -487,11 +489,11 @@
 msgstr "PIN erfolgreich geändert."
 
 # c:\oss\winpt-gpgme\src\wptCardEdit.cpp:315
-#: Src/wptCardEdit.cpp:329
+#: Src/wptCardEdit.cpp:332
 msgid "Please insert the card and click OK or Cancel to abort."
 msgstr "Bitte Karte einlegen und OK oder Abbrechen anclicken."
 
-#: Src/wptCardEdit.cpp:330
+#: Src/wptCardEdit.cpp:333
 msgid "GPG Card Status"
 msgstr "GPG Kartenstatus"
 
@@ -505,7 +507,7 @@
 
 #: Src/wptClipDecryptDlg.cpp:60 Src/wptClipDecryptDlg.cpp:177
 #: Src/wptKeyRevokersDlg.cpp:129 Src/wptKeyRevokersDlg.cpp:173
-#: Src/wptVerifyList.cpp:257 Src/wptVerifyList.cpp:317
+#: Src/wptVerifyList.cpp:257 Src/wptVerifyList.cpp:319
 msgid "user ID not found"
 msgstr "Benutzerkennung nicht gefunden"
 
@@ -575,22 +577,22 @@
 #: Src/wptClipDecryptDlg.cpp:216 Src/wptClipVerifyDlg.cpp:154
 #: Src/wptClipVerifyDlg.cpp:162 Src/wptClipVerifyDlg.cpp:191
 #: Src/wptClipVerifyDlg.cpp:202 Src/wptClipVerifyDlg.cpp:220
-#: Src/wptClipVerifyDlg.cpp:232 Src/wptFileManager.cpp:1636
-#: Src/wptFileManager.cpp:1689 Src/wptFileManagerDlg.cpp:586
+#: Src/wptClipVerifyDlg.cpp:232 Src/wptFileManager.cpp:1670
+#: Src/wptFileManager.cpp:1723 Src/wptFileManagerDlg.cpp:586
 #: Src/wptFileVerifyDlg.cpp:83 Src/wptFileVerifyDlg.cpp:150
 #: Src/wptMainProc.cpp:208 Src/wptMainProc.cpp:224 Src/wptMainProc.cpp:234
-#: Src/wptMainProc.cpp:403
+#: Src/wptMainProc.cpp:404
 msgid "Verify"
 msgstr "Überprüfen"
 
 #: Src/wptClipDecryptDlg.cpp:223 Src/wptClipDecryptDlg.cpp:236
 #: Src/wptClipDecryptDlg.cpp:244 Src/wptClipDecryptDlg.cpp:251
-#: Src/wptClipDecryptDlg.cpp:253 Src/wptFileManager.cpp:1343
-#: Src/wptFileManager.cpp:1394
+#: Src/wptClipDecryptDlg.cpp:253 Src/wptFileManager.cpp:1377
+#: Src/wptFileManager.cpp:1428
 msgid "Decryption"
 msgstr "Entschlüsselung"
 
-#: Src/wptClipDecryptDlg.cpp:237 Src/wptFileManager.cpp:1395
+#: Src/wptClipDecryptDlg.cpp:237 Src/wptFileManager.cpp:1429
 #, c-format
 msgid ""
 "Encrypted with %s key, ID 0x%s.%s\n"
@@ -638,12 +640,12 @@
 #: Src/wptClipEditDlg.cpp:131 Src/wptClipEditDlg.cpp:171
 #: Src/wptClipEditDlg.cpp:187 Src/wptClipEditDlg.cpp:257
 #: Src/wptClipEditDlg.cpp:262 Src/wptFileManagerDlg.cpp:220
-#: Src/wptMainProc.cpp:193 Src/wptMainProc.cpp:244 Src/wptMainProc.cpp:416
-#: Src/wptMainProc.cpp:499 Src/wptMainProc.cpp:504
+#: Src/wptMainProc.cpp:193 Src/wptMainProc.cpp:244 Src/wptMainProc.cpp:417
+#: Src/wptMainProc.cpp:500 Src/wptMainProc.cpp:505 Src/wptVerifyList.cpp:232
 msgid "Clipboard"
 msgstr "Zwischenablage"
 
-#: Src/wptClipEditDlg.cpp:113 Src/wptFileManager.cpp:639
+#: Src/wptClipEditDlg.cpp:113 Src/wptFileManager.cpp:649
 msgid "File Open"
 msgstr "Datei öffnen"
 
@@ -696,7 +698,7 @@
 msgid "&Decrypt"
 msgstr "&Entschlüsseln"
 
-#: Src/wptClipEditDlg.cpp:221 Src/wptMainProc.cpp:561
+#: Src/wptClipEditDlg.cpp:221 Src/wptMainProc.cpp:562
 msgid "Clipboard Editor"
 msgstr "Zwischenablagen-Editor"
 
@@ -759,8 +761,8 @@
 #: Src/wptClipSignDlg.cpp:157 Src/wptClipSignDlg.cpp:225
 #: Src/wptClipSignDlg.cpp:229 Src/wptClipSignDlg.cpp:249
 #: Src/wptClipSignDlg.cpp:260 Src/wptClipSignEncDlg.cpp:159
-#: Src/wptClipSignEncDlg.cpp:170 Src/wptFileManager.cpp:1153
-#: Src/wptFileManager.cpp:1169 Src/wptFileManager.cpp:1459
+#: Src/wptClipSignEncDlg.cpp:170 Src/wptFileManager.cpp:1187
+#: Src/wptFileManager.cpp:1203 Src/wptFileManager.cpp:1493
 #: Src/wptMainProc.cpp:179
 msgid "Signing"
 msgstr "Signieren"
@@ -1081,14 +1083,14 @@
 msgstr "Unbekannter Fehler=%d"
 
 #: Src/wptFileManager.cpp:130 Src/wptFileManager.cpp:152
-#: Src/wptFileManager.cpp:158 Src/wptFileManager.cpp:199
-#: Src/wptFileManager.cpp:324 Src/wptFileManager.cpp:735
-#: Src/wptFileManager.cpp:880 Src/wptFileManager.cpp:995
-#: Src/wptFileManager.cpp:1545 Src/wptFileManager.cpp:1572
-#: Src/wptFileManager.cpp:1591 Src/wptFileManager.cpp:1841
-#: Src/wptFileManager.cpp:1903 Src/wptFileManagerDlg.cpp:529
+#: Src/wptFileManager.cpp:158 Src/wptFileManager.cpp:198
+#: Src/wptFileManager.cpp:324 Src/wptFileManager.cpp:746
+#: Src/wptFileManager.cpp:914 Src/wptFileManager.cpp:1029
+#: Src/wptFileManager.cpp:1579 Src/wptFileManager.cpp:1606
+#: Src/wptFileManager.cpp:1625 Src/wptFileManager.cpp:1877
+#: Src/wptFileManager.cpp:1939 Src/wptFileManagerDlg.cpp:529
 #: Src/wptFileManagerDlg.cpp:633 Src/wptFileStatDlg.cpp:154
-#: Src/wptMainProc.cpp:392 Src/wptMDSumDlg.cpp:276 Src/wptMDSumDlg.cpp:281
+#: Src/wptMainProc.cpp:393 Src/wptMDSumDlg.cpp:276 Src/wptMDSumDlg.cpp:281
 msgid "File Manager"
 msgstr "Dateimanager"
 
@@ -1115,7 +1117,7 @@
 msgstr "Konnte Dateiattribut nicht auf normal zurücksetzen"
 
 # c:\oss\winpt-gpgme\src\wptFileManager.cpp:147
-#: Src/wptFileManager.cpp:195
+#: Src/wptFileManager.cpp:194
 msgid ""
 "Multi-Media files are already compressed, GPG would compress\n"
 "them anyway and this takes a lot of time.\n"
@@ -1128,26 +1130,26 @@
 "\n"
 "Möchten Sie die Kompression ausschalten?"
 
-#: Src/wptFileManager.cpp:407 Src/wptKeyEditDlgs.cpp:1075
+#: Src/wptFileManager.cpp:414 Src/wptKeyEditDlgs.cpp:1075
 #: Src/wptVerifyList.cpp:169
 msgid "Status"
 msgstr "Status"
 
-#: Src/wptFileManager.cpp:408 Src/wptKeyEditDlgs.cpp:1156
+#: Src/wptFileManager.cpp:415 Src/wptKeyEditDlgs.cpp:1156
 #: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:190
 #: Src/wptVerifyList.cpp:168
 msgid "Name"
 msgstr "Name"
 
-#: Src/wptFileManager.cpp:409
+#: Src/wptFileManager.cpp:416
 msgid "Operation"
 msgstr "Prozess"
 
-#: Src/wptFileManager.cpp:734
+#: Src/wptFileManager.cpp:745
 msgid "Please select a file."
 msgstr "Bitte eine Datei auswählen."
 
-#: Src/wptFileManager.cpp:881
+#: Src/wptFileManager.cpp:915
 #, c-format
 msgid ""
 "\"%s\" does not seems to be a text file.\n"
@@ -1156,62 +1158,62 @@
 "\"%s\" scheint keine Text-Datei zu sein.\n"
 "Möchten Sie wirklich diese Datei signieren?"
 
-#: Src/wptFileManager.cpp:996
+#: Src/wptFileManager.cpp:1030
 #, c-format
 msgid "\"%s\" does not exist"
 msgstr "\"%s\" existiert nicht"
 
-#: Src/wptFileManager.cpp:1079 Src/wptFileStatDlg.cpp:283
+#: Src/wptFileManager.cpp:1113 Src/wptFileStatDlg.cpp:283
 #: Src/wptFileStatDlg.cpp:287
 msgid "File Status"
 msgstr "Dateistatus"
 
-#: Src/wptFileManager.cpp:1123
+#: Src/wptFileManager.cpp:1156
 msgid "Enter Filename for Encrypted File"
 msgstr "Namen für die verschlüsselte Datei auswählen"
 
-#: Src/wptFileManager.cpp:1152
+#: Src/wptFileManager.cpp:1186
 msgid "Could not get default secret key."
 msgstr "Konnte den geheimen Standardschlüssel nicht finden."
 
-#: Src/wptFileManager.cpp:1183 Src/wptFileManager.cpp:1495
+#: Src/wptFileManager.cpp:1217 Src/wptFileManager.cpp:1529
 #: Src/wptFileManagerDlg.cpp:584 Src/wptMainProc.cpp:156
-#: Src/wptMainProc.cpp:400 Src/wptMainProc.cpp:407
+#: Src/wptMainProc.cpp:401 Src/wptMainProc.cpp:408
 msgid "Sign"
 msgstr "Signieren"
 
-#: Src/wptFileManager.cpp:1196 Src/wptFileManagerDlg.cpp:582
-#: Src/wptMainProc.cpp:399 Src/wptMainProc.cpp:404
+#: Src/wptFileManager.cpp:1230 Src/wptFileManagerDlg.cpp:582
+#: Src/wptMainProc.cpp:400 Src/wptMainProc.cpp:405
 msgid "Encrypt"
 msgstr "Verschlüsseln"
 
-#: Src/wptFileManager.cpp:1223 Src/wptSymEnc.cpp:72 Src/wptSymEnc.cpp:92
+#: Src/wptFileManager.cpp:1257 Src/wptSymEnc.cpp:72 Src/wptSymEnc.cpp:92
 msgid "Symmetric Encryption"
 msgstr "Symmetrisch verschlüsseln"
 
-#: Src/wptFileManager.cpp:1256 Src/wptFileManager.cpp:1261
-#: Src/wptMainProc.cpp:398 Src/wptMainProc.cpp:408
+#: Src/wptFileManager.cpp:1290 Src/wptFileManager.cpp:1295
+#: Src/wptMainProc.cpp:399 Src/wptMainProc.cpp:409
 msgid "Symmetric"
 msgstr "Symmetrisch"
 
-#: Src/wptFileManager.cpp:1261
+#: Src/wptFileManager.cpp:1295
 msgid "Encryption failed."
 msgstr "Verschlüsselung fehlgeschlagen."
 
-#: Src/wptFileManager.cpp:1352
+#: Src/wptFileManager.cpp:1386
 msgid "Choose Filename for Output"
 msgstr "Wählen Sie einen Namen für die Ausgabedatei"
 
-#: Src/wptFileManager.cpp:1361
+#: Src/wptFileManager.cpp:1395
 msgid "Enter Filename for Plaintext File"
 msgstr "Namen für die Klartext-Datei auswählen"
 
-#: Src/wptFileManager.cpp:1403 Src/wptFileManager.cpp:1423
+#: Src/wptFileManager.cpp:1437 Src/wptFileManager.cpp:1457
 #: Src/wptFileManagerDlg.cpp:583
 msgid "Decrypt"
 msgstr "Entschlüsseln"
 
-#: Src/wptFileManager.cpp:1409
+#: Src/wptFileManager.cpp:1443
 #, c-format
 msgid ""
 "Decryption failed.\n"
@@ -1220,7 +1222,7 @@
 "Entshlüsselung fehlgeschlagen.\n"
 "%s: existiert nicht."
 
-#: Src/wptFileManager.cpp:1424
+#: Src/wptFileManager.cpp:1458
 #, c-format
 msgid ""
 "The original file name is '%s'.\n"
@@ -1231,32 +1233,32 @@
 "\n"
 "Wollen Sie diesen anstatt von '%s' benutzen?"
 
-#: Src/wptFileManager.cpp:1472
+#: Src/wptFileManager.cpp:1506
 msgid "Enter Filename for Signed File"
 msgstr "Namen für die signierte Datei auswählen"
 
-#: Src/wptFileManager.cpp:1571
+#: Src/wptFileManager.cpp:1605
 msgid "Could not find detached signature in the clipboard."
 msgstr "Konnte abgetrennte Signatur in der Zwischenablage nicht finden."
 
 # c:\oss\winpt-gpgme\src\wptFileManager.cpp:1362
-#: Src/wptFileManager.cpp:1591
+#: Src/wptFileManager.cpp:1625
 msgid "No files to check."
 msgstr "Keine Datei(en) zu prüfen."
 
-#: Src/wptFileManager.cpp:1608
+#: Src/wptFileManager.cpp:1642
 msgid "Select Data File"
 msgstr "Bitte Datendatei auswählen"
 
-#: Src/wptFileManager.cpp:1610
+#: Src/wptFileManager.cpp:1644
 msgid "Selected Output File"
 msgstr "Bitte Ausgabedatei auswählen"
 
-#: Src/wptFileManager.cpp:1636
+#: Src/wptFileManager.cpp:1670
 msgid "Invalid file name. Exit"
 msgstr "Ungültiger Dateiname. Abbruch"
 
-#: Src/wptFileManager.cpp:1734 Src/wptFileManager.cpp:1745
+#: Src/wptFileManager.cpp:1770 Src/wptFileManager.cpp:1781
 #: Src/wptFileManagerDlg.cpp:245 Src/wptImportList.cpp:404
 #: Src/wptImportList.cpp:411 Src/wptImportList.cpp:421
 #: Src/wptImportList.cpp:429 Src/wptImportList.cpp:438
@@ -1266,7 +1268,7 @@
 msgid "Import"
 msgstr "Importieren"
 
-#: Src/wptFileManager.cpp:1742
+#: Src/wptFileManager.cpp:1778
 msgid ""
 "Key without a self signature was dectected!\n"
 "(This key is NOT usable for encryption, etc)\n"
@@ -1278,58 +1280,58 @@
 "\n"
 "Kann diese(n) Schlüssel nicht importieren!"
 
-#: Src/wptFileManager.cpp:1768 Src/wptKeyManager.cpp:282
+#: Src/wptFileManager.cpp:1804 Src/wptKeyManager.cpp:282
 #: Src/wptKeyManager.cpp:325 Src/wptKeyManager.cpp:360
 msgid "No key was selected for export."
 msgstr "Kein Schlüssel zum Exportieren ausgewählt."
 
-#: Src/wptFileManager.cpp:1769 Src/wptFileManager.cpp:1792
+#: Src/wptFileManager.cpp:1805 Src/wptFileManager.cpp:1828
 #: Src/wptKeyserverDlg.cpp:93
 msgid "Export"
 msgstr "Export"
 
-#: Src/wptFileManager.cpp:1777 Src/wptKeyManagerDlg.cpp:1850
+#: Src/wptFileManager.cpp:1813 Src/wptKeyManagerDlg.cpp:1850
 #: Src/wptKeyManagerDlg.cpp:1882
 msgid "Choose Name for Key File"
 msgstr "Den Namen der Schlüsseldatei wählen"
 
-#: Src/wptFileManager.cpp:1796 Src/wptKeyEditDlgs.cpp:1055
+#: Src/wptFileManager.cpp:1832 Src/wptKeyEditDlgs.cpp:1055
 #: Src/wptKeyEditDlgs.cpp:1314 Src/wptKeyEditDlgs.cpp:1386
 #: Src/wptKeyserverDlg.cpp:105
 msgid "GnuPG status"
 msgstr "GnuPG-Status"
 
-#: Src/wptFileManager.cpp:1796
+#: Src/wptFileManager.cpp:1832
 #, c-format
 msgid "Finished (Output: %s)"
 msgstr "Fertig (Ausgabe: %s)"
 
-#: Src/wptFileManager.cpp:1842
+#: Src/wptFileManager.cpp:1878
 #, c-format
 msgid "%s: no valid OpenPGP data found."
 msgstr "%s: keine gültigen OpenPGP-Daten gefunden."
 
-#: Src/wptFileManager.cpp:1902
+#: Src/wptFileManager.cpp:1938
 msgid "Encrypting into a ZIP archive makes sense with multiple files"
 msgstr "Verschlüsseln in eine ZIP-Datei macht nur mit mehreren Dateien Sinn"
 
-#: Src/wptFileManager.cpp:1907
+#: Src/wptFileManager.cpp:1943
 msgid "Choose File Name for Output"
 msgstr "Wählen Sie einen Namen für die Ausgabedatei"
 
-#: Src/wptFileManager.cpp:1979
+#: Src/wptFileManager.cpp:2015
 msgid "Choose a Name for the Archive"
 msgstr "Wählen Sie den Namen für das Archiv"
 
-#: Src/wptFileManager.cpp:1982
+#: Src/wptFileManager.cpp:2018
 msgid "Invalid archive name. Exit."
 msgstr "Ungültiger Archivename. Abbruch."
 
-#: Src/wptFileManager.cpp:1983 Src/wptFileManager.cpp:1991
+#: Src/wptFileManager.cpp:2019 Src/wptFileManager.cpp:2027
 msgid "Encrypt Directory"
 msgstr "Verzeichnis verschlüsseln"
 
-#: Src/wptFileManager.cpp:1990
+#: Src/wptFileManager.cpp:2026
 msgid "Could not create zip archive."
 msgstr "Konnte ZIP-Datei nicht erstellen."
 
@@ -1433,13 +1435,13 @@
 msgid "%d Object(s) marked"
 msgstr "%d Objekt(e) markiert"
 
-#: Src/wptFileManagerDlg.cpp:495 Src/wptMainProc.cpp:531
+#: Src/wptFileManagerDlg.cpp:495 Src/wptMainProc.cpp:532
 msgid "File Manager (use drag & drop to add files)"
 msgstr "Dateimanager (Drag & Drop möglich)"
 
 #: Src/wptFileManagerDlg.cpp:499 Src/wptKeyManagerDlg.cpp:967
 #: Src/wptKeyManagerDlg.cpp:972 Src/wptKeyManagerDlg.cpp:983
-#: Src/wptMainProc.cpp:395
+#: Src/wptMainProc.cpp:396
 msgid "Edit"
 msgstr "Bearbeiten"
 
@@ -1457,7 +1459,7 @@
 msgstr "&Signieren"
 
 #: Src/wptFileManagerDlg.cpp:506 Src/wptFileManagerDlg.cpp:585
-#: Src/wptMainProc.cpp:401 Src/wptMainProc.cpp:405
+#: Src/wptMainProc.cpp:402 Src/wptMainProc.cpp:406
 msgid "Sign && Encrypt"
 msgstr "Signieren && Verschlüsseln"
 
@@ -1477,13 +1479,13 @@
 msgid "E&xport"
 msgstr "E&xportieren"
 
-#: Src/wptFileManagerDlg.cpp:511 Src/wptMainProc.cpp:397
+#: Src/wptFileManagerDlg.cpp:511 Src/wptMainProc.cpp:398
 msgid "Exit"
 msgstr "Beenden"
 
 #: Src/wptFileManagerDlg.cpp:512
 msgid "&Reset"
-msgstr "&Reset"
+msgstr "&Aufräumen"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:421
 #: Src/wptFileManagerDlg.cpp:513
@@ -1611,7 +1613,7 @@
 msgstr "WinPT Erster Start"
 
 # c:\oss\winpt-gpgme\src\wptGPG.cpp:728
-#: Src/wptGPG.cpp:844
+#: Src/wptGPG.cpp:839
 msgid ""
 "The selected keyring has the read-only file\n"
 "attribute. In this state you do not have write\n"
@@ -1621,19 +1623,19 @@
 "In diesem Zustand kann nichts gespeichert werden\n"
 "Wollen Sie das Attribut zurücksetzen?"
 
-#: Src/wptGPG.cpp:847
+#: Src/wptGPG.cpp:842
 msgid "GPG Information"
 msgstr "GPG Information"
 
-#: Src/wptGPG.cpp:851
+#: Src/wptGPG.cpp:846
 msgid "Could not reset read-only state."
 msgstr "Konnte den Nur-Lesen Zustand nicht zurücksetzen."
 
-#: Src/wptGPG.cpp:852
+#: Src/wptGPG.cpp:847
 msgid "GPG Error"
 msgstr "GPG Fehler"
 
-#: Src/wptGPG.cpp:864
+#: Src/wptGPG.cpp:859
 msgid ""
 "You do not have file access to modify the contents of\n"
 "one or both of the selected keyrings.\n"
@@ -1647,22 +1649,22 @@
 "Die Schlüsselbunde sind im Nur-Lesen-Modus, was meistens der Fall ist, \n"
 "wenn ein anderes Programm auf die Schlüsselbunde zugreift.\n"
 
-#: Src/wptGPG.cpp:869
+#: Src/wptGPG.cpp:864
 msgid "GPG Warning"
 msgstr "GPG Warnung"
 
-#: Src/wptGPG.cpp:893 Src/wptGPGPrefsDlg.cpp:222 Src/wptGPGPrefsDlg.cpp:228
+#: Src/wptGPG.cpp:888 Src/wptGPGPrefsDlg.cpp:222 Src/wptGPGPrefsDlg.cpp:228
 #: Src/wptGPGPrefsDlg.cpp:234 Src/wptGPGPrefsDlg.cpp:240
 #: Src/wptGPGPrefsDlg.cpp:245 Src/wptGPGPrefsDlg.cpp:250
 #: Src/wptGPGPrefsDlg.cpp:256 Src/wptGPGPrefsDlg.cpp:270
-#: Src/wptKeyEditDlgs.cpp:1713 Src/wptMainProc.cpp:418
+#: Src/wptKeyEditDlgs.cpp:1713 Src/wptMainProc.cpp:419
 #: Src/wptPreferencesDlg.cpp:225 Src/wptPreferencesDlg.cpp:270
 #: Src/wptPreferencesDlg.cpp:282 Src/wptPreferencesDlg.cpp:295
-#: Src/wptPreferencesDlg.cpp:326 Src/wptRegistry.cpp:595
+#: Src/wptPreferencesDlg.cpp:326 Src/wptRegistry.cpp:599
 msgid "Preferences"
 msgstr "Einstellungen"
 
-#: Src/wptGPG.cpp:894
+#: Src/wptGPG.cpp:889
 #, c-format
 msgid ""
 "%s does not exit.\n"
@@ -1671,41 +1673,41 @@
 "%s existiert nicht.\n"
 "Möchten Sie dieses Verzeichnis erstellen?"
 
-#: Src/wptGPG.cpp:922
+#: Src/wptGPG.cpp:917
 msgid "Please choose your Public Keyring"
 msgstr "Bitte wählen Sie Ihren öffentlichen Schlüsselbund."
 
-#: Src/wptGPG.cpp:925 Src/wptGPG.cpp:947
+#: Src/wptGPG.cpp:920 Src/wptGPG.cpp:942
 msgid "No keyring was chosen. Exit."
 msgstr "Kein Schlüsselbund ausgewählt. Abbruch."
 
-#: Src/wptGPG.cpp:932
+#: Src/wptGPG.cpp:927
 msgid "Overwrite old public keyring?"
 msgstr "Alten öff. Schlüsselbund überschreiben?"
 
-#: Src/wptGPG.cpp:938 Src/wptGPG.cpp:959
+#: Src/wptGPG.cpp:933 Src/wptGPG.cpp:954
 msgid "Could not copy file."
 msgstr "Datei konnte nicht kopiert werden"
 
-#: Src/wptGPG.cpp:944
+#: Src/wptGPG.cpp:939
 msgid "Please choose your Secret Keyring"
 msgstr "Bitte wählen Sie Ihren geheimen Schlüsselbund"
 
-#: Src/wptGPG.cpp:953
+#: Src/wptGPG.cpp:948
 msgid "Overwrite old secret keyring?"
 msgstr "Alten geheimen Schlüsselbund überschreiben?"
 
-#: Src/wptGPG.cpp:999 Src/wptGPG.cpp:1088 Src/wptGPG.cpp:1101
+#: Src/wptGPG.cpp:994 Src/wptGPG.cpp:1083 Src/wptGPG.cpp:1096
 msgid "Backup"
 msgstr "Sicherung"
 
-#: Src/wptGPG.cpp:999
+#: Src/wptGPG.cpp:994
 #, c-format
 msgid "Backup keyring \"%s\" failed"
 msgstr "Schlüsselbundsicherung \"%s\" fehlgeschlagen"
 
 # c:\oss\winpt-gpgme\src\wptGPG.cpp:1021
-#: Src/wptGPG.cpp:1089
+#: Src/wptGPG.cpp:1084
 #, c-format
 msgid ""
 "The backup drive '%s' does not seems to be accessable.\n"
@@ -1714,44 +1716,44 @@
 "Kann auf das Backup-Laufwerk '%s' nicht zugreifen.\n"
 "Bitte aktivieren/überprüfen sie das Laufwerk um Fortzufahren."
 
-#: Src/wptGPG.cpp:1101
+#: Src/wptGPG.cpp:1096
 #, c-format
 msgid "Invalid backup mode %d"
 msgstr "Ungültiger Sicherungsmethode %d"
 
-#: Src/wptGPGME.cpp:281
+#: Src/wptGPGME.cpp:284
 msgid "Error during verification process"
 msgstr "Fehler während Verifikation"
 
-#: Src/wptGPGME.cpp:282
+#: Src/wptGPGME.cpp:285
 msgid "The signature is good"
 msgstr "Die Signatur is gut"
 
-#: Src/wptGPGME.cpp:283
+#: Src/wptGPGME.cpp:286
 msgid "The signature is BAD!"
 msgstr "Die Signatur ist nicht gültig!"
 
-#: Src/wptGPGME.cpp:284
+#: Src/wptGPGME.cpp:287
 msgid "The signature could not be checked due to a missing key"
 msgstr "Die Signature konnte durch fehlenden Key nicht geprüft werden"
 
-#: Src/wptGPGME.cpp:285
+#: Src/wptGPGME.cpp:288
 msgid "No valid OpenPGP signature"
 msgstr "Keine gültige OpenPGP Signatur"
 
-#: Src/wptGPGME.cpp:286
+#: Src/wptGPGME.cpp:289
 msgid "Signature Error"
 msgstr "Fehler in Signatur"
 
-#: Src/wptGPGME.cpp:287
+#: Src/wptGPGME.cpp:290
 msgid "Good signature (Expired Key)"
 msgstr "Gültige Signature (Abgelaufener Schlüssel)"
 
-#: Src/wptGPGME.cpp:288
+#: Src/wptGPGME.cpp:291
 msgid "Good signature (Revoked Key)"
 msgstr "Gültige Signatur (Widerrufener Schlüssel)"
 
-#: Src/wptGPGME.cpp:289
+#: Src/wptGPGME.cpp:292
 msgid "Good signature (Expired)"
 msgstr "Gültige Signature (Abgelaufen)"
 
@@ -1799,7 +1801,7 @@
 "Sind Sie sicher?"
 
 #: Src/wptGPGPrefsDlg.cpp:152 Src/wptKeyManagerDlg.cpp:1812
-#: Src/wptMainProc.cpp:579
+#: Src/wptMainProc.cpp:580
 msgid "GnuPG Preferences"
 msgstr "GnuPG-Einstellungen"
 
@@ -1907,7 +1909,7 @@
 #: Src/wptKeyManagerDlg.cpp:1950 Src/wptKeyManagerDlg.cpp:2064
 #: Src/wptKeysigDlg.cpp:94 Src/wptKeysigDlg.cpp:106 Src/wptKeysigDlg.cpp:317
 #: Src/wptKeysigDlg.cpp:389 Src/wptKeysigDlg.cpp:399 Src/wptKeysigDlg.cpp:442
-#: Src/wptMainProc.cpp:393 Src/wptMainProc.cpp:542 Src/wptMainProc.cpp:550
+#: Src/wptMainProc.cpp:394 Src/wptMainProc.cpp:543 Src/wptMainProc.cpp:551
 msgid "Key Manager"
 msgstr "Schlüsselverwaltung"
 
@@ -3473,7 +3475,7 @@
 msgid "Keyserver Access"
 msgstr "Schlüsselserver-Zugriff"
 
-#: Src/wptKeyManagerDlg.cpp:1806 Src/wptMainProc.cpp:573
+#: Src/wptKeyManagerDlg.cpp:1806 Src/wptMainProc.cpp:574
 #: Src/wptPreferencesDlg.cpp:139
 msgid "WinPT Preferences"
 msgstr "WinPT Einstellungen"
@@ -3525,7 +3527,7 @@
 msgstr "(Implizites) Absolutes Vertrauen"
 
 #: Src/wptKeyPropsDlg.cpp:72 Src/wptVerifyList.cpp:246
-#: Src/wptVerifyList.cpp:309
+#: Src/wptVerifyList.cpp:311
 msgid "Unknown"
 msgstr "Unbekannt"
 
@@ -3697,7 +3699,7 @@
 msgid "Could not save keyserver.conf file"
 msgstr "Konnte keyserver.conf Datei nicht speichern"
 
-#: Src/wptKeyserver.cpp:678
+#: Src/wptKeyserver.cpp:718
 msgid ""
 "Invalid proxy configuration. You need to set a user and a password to use "
 "proxy authentication!"
@@ -3705,11 +3707,11 @@
 "Ungültige Proxy-Konfiguration. Sie müssen einen Benutzernamen und ein "
 "Passwort setzen, um Proxy-Authentifizierung nutzen zu können!"
 
-#: Src/wptKeyserver.cpp:681
+#: Src/wptKeyserver.cpp:721
 msgid "Proxy Error"
 msgstr "Proxyfehler"
 
-#: Src/wptKeyserver.cpp:706
+#: Src/wptKeyserver.cpp:746
 msgid ""
 "All entries of this file must have a valid prefix.\n"
 "Currently HKP/HTTP, LDAP and FINGER are supported.\n"
@@ -3717,16 +3719,16 @@
 "Alle Eintraäge in dieser Datei müssen über einen gültigen Präfix verfügen.\n"
 "Aktuell werden HKP/HTTP, LDAP and FINGER unterstützt.\n"
 
-#: Src/wptKeyserver.cpp:708
+#: Src/wptKeyserver.cpp:748
 msgid "Keyserver Error"
 msgstr "Schlüsselserver-Fehler"
 
 # c:\oss\winpt-gpgme\src\wptKeyserver.cpp:548
-#: Src/wptKeyserver.cpp:727
+#: Src/wptKeyserver.cpp:767
 msgid "The keyserver limit is exceeded"
 msgstr "Das Limit der Keyserver wurde erreicht"
 
-#: Src/wptKeyserver.cpp:728
+#: Src/wptKeyserver.cpp:768
 msgid "Keyserver Warning"
 msgstr "Keyserver Warnung"
 
@@ -3868,11 +3870,11 @@
 msgid "&Edit"
 msgstr "&Edtieren"
 
-#: Src/wptKeyserverDlg.cpp:696 Src/wptProxySettingsDlg.cpp:73
-#: Src/wptProxySettingsDlg.cpp:83 Src/wptProxySettingsDlg.cpp:88
-#: Src/wptProxySettingsDlg.cpp:95 Src/wptProxySettingsDlg.cpp:100
-#: Src/wptProxySettingsDlg.cpp:105 Src/wptProxySettingsDlg.cpp:164
-#: Src/wptProxySettingsDlg.cpp:199
+#: Src/wptKeyserverDlg.cpp:696 Src/wptProxySettingsDlg.cpp:103
+#: Src/wptProxySettingsDlg.cpp:113 Src/wptProxySettingsDlg.cpp:118
+#: Src/wptProxySettingsDlg.cpp:125 Src/wptProxySettingsDlg.cpp:130
+#: Src/wptProxySettingsDlg.cpp:135 Src/wptProxySettingsDlg.cpp:194
+#: Src/wptProxySettingsDlg.cpp:229
 msgid "Proxy Settings"
 msgstr "Proxy-Einstellungen"
 
@@ -4163,38 +4165,38 @@
 msgid "Unknown OpenPGP type."
 msgstr "Unbekannter OpenPGP-Typ."
 
-#: Src/wptMainProc.cpp:344
+#: Src/wptMainProc.cpp:345
 msgid "Could not set current window mode hooks."
 msgstr "Konnte \"Current Window\" Hooks nicht setzen."
 
-#: Src/wptMainProc.cpp:396
+#: Src/wptMainProc.cpp:397
 msgid "About..."
 msgstr "Über..."
 
-#: Src/wptMainProc.cpp:402 Src/wptMainProc.cpp:406
+#: Src/wptMainProc.cpp:403 Src/wptMainProc.cpp:407
 msgid "Decrypt/Verify"
 msgstr "Entschlüsseln/Überprüfen"
 
 # c:\oss\winpt-gpgme\src\wptMainProc.cpp:414
-#: Src/wptMainProc.cpp:417
+#: Src/wptMainProc.cpp:418
 msgid "Current Window"
 msgstr "Aktuelles Fenster"
 
-#: Src/wptMainProc.cpp:475
+#: Src/wptMainProc.cpp:476
 msgid "Remove all passphrases from cache?"
 msgstr "Alle Passwörter aus Zwischenspeicher entfernen?"
 
-#: Src/wptMainProc.cpp:476 Src/wptProgressDlg.cpp:135 Src/wptRegistry.cpp:198
+#: Src/wptMainProc.cpp:477 Src/wptProgressDlg.cpp:136 Src/wptRegistry.cpp:274
 msgid "WinPT"
 msgstr "WinPT"
 
-#: Src/wptMainProc.cpp:486
+#: Src/wptMainProc.cpp:487
 msgid "Could not access public keyring, exit WinPT?"
 msgstr ""
 "Auf den öffentlichen Schlüsselbund kann nicht zugegriffen werden.\n"
 "WinPT beenden?"
 
-#: Src/wptMainProc.cpp:519
+#: Src/wptMainProc.cpp:520
 #, c-format
 msgid ""
 "Make sure that the window contains text.\n"
@@ -4496,73 +4498,73 @@
 msgid "Could not create progress thread."
 msgstr "Konnte Fortschrittsthread nicht erstellen."
 
-#: Src/wptProxySettingsDlg.cpp:73
+#: Src/wptProxySettingsDlg.cpp:103
 msgid "Invalid host/IP address."
 msgstr "Ungültige IP-Adresse."
 
-#: Src/wptProxySettingsDlg.cpp:82
+#: Src/wptProxySettingsDlg.cpp:112
 msgid "Please enter the proxy hostname."
 msgstr "Bitte geben Sie den Proxy-Hostnamen ein."
 
-#: Src/wptProxySettingsDlg.cpp:88
+#: Src/wptProxySettingsDlg.cpp:118
 msgid "Invalid port number."
 msgstr "Ungültige Portnummer."
 
-#: Src/wptProxySettingsDlg.cpp:94
+#: Src/wptProxySettingsDlg.cpp:124
 msgid "Please select a value from 0-65535 for the port"
 msgstr "Bitte geben Sie für den Port einen Wert von 0-65535 ein"
 
-#: Src/wptProxySettingsDlg.cpp:99
+#: Src/wptProxySettingsDlg.cpp:129
 msgid "When you want to use authentication, please fill out both fields."
 msgstr ""
 "Wenn Sie Authentifizierung nutzen wollen, füllen Sie bitte beide Felder aus."
 
-#: Src/wptProxySettingsDlg.cpp:104
+#: Src/wptProxySettingsDlg.cpp:134
 msgid "Please enter a host name and a port."
 msgstr "Bitte geben Sie den Hostname und Port ein."
 
-#: Src/wptProxySettingsDlg.cpp:158
+#: Src/wptProxySettingsDlg.cpp:188
 msgid "Proxy host name or IP address"
 msgstr "Proxy Rechnername oder IP Adresse"
 
-#: Src/wptProxySettingsDlg.cpp:159
+#: Src/wptProxySettingsDlg.cpp:189
 msgid "Server requires &authentication"
 msgstr "Server benötigt &Authentifikation"
 
-#: Src/wptProxySettingsDlg.cpp:160
+#: Src/wptProxySettingsDlg.cpp:190
 msgid "User name"
 msgstr "Benutzername"
 
-#: Src/wptProxySettingsDlg.cpp:161
+#: Src/wptProxySettingsDlg.cpp:191
 msgid "Password"
 msgstr "Passwort"
 
-#: Src/wptProxySettingsDlg.cpp:162
+#: Src/wptProxySettingsDlg.cpp:192
 msgid "Proxy type"
 msgstr "Proxy-Type"
 
-#: Src/wptProxySettingsDlg.cpp:163
+#: Src/wptProxySettingsDlg.cpp:193
 msgid "Authentication"
 msgstr "Authentifizierung"
 
 # c:\oss\winpt-gpgme\src\wptProxySettingsDlg.cpp:156
-#: Src/wptProxySettingsDlg.cpp:198
+#: Src/wptProxySettingsDlg.cpp:228
 msgid "Please fill out all required fields for authentication."
 msgstr "Bitte füllen Sie alle benötigen Felder für die Authentifizierung aus."
 
-#: Src/wptRegistry.cpp:160
+#: Src/wptRegistry.cpp:225
 msgid "GPG Detached Signature"
 msgstr "GPG abgetrennte Signatur"
 
-#: Src/wptRegistry.cpp:161
+#: Src/wptRegistry.cpp:226
 msgid "GPG Encrypted Data"
 msgstr "GPG verschlüsselte Daten"
 
-#: Src/wptRegistry.cpp:162
+#: Src/wptRegistry.cpp:227
 msgid "GPG Armored Data"
 msgstr "GPG ASCII-Geschützte Daten"
 
-#: Src/wptRegistry.cpp:196
+#: Src/wptRegistry.cpp:272
 msgid ""
 "WinPT can register some GPG file types for you so they can be processed with "
 "a double click in the explorer.\n"
@@ -4572,11 +4574,11 @@
 "Doppelklick im Explorer öffnen können.\n"
 "Möchten Sie fortfahren?"
 
-#: Src/wptRegistry.cpp:204
+#: Src/wptRegistry.cpp:280
 msgid "WinPT WARNING"
 msgstr "WinPT WARNUNG"
 
-#: Src/wptRegistry.cpp:205
+#: Src/wptRegistry.cpp:281
 #, c-format
 msgid ""
 "It seems there was already a '%s' file type registered by another "
@@ -4586,7 +4588,7 @@
 "Der Dateityp '%s' scheint mit einer anderen Anwendung verknüpft zu sein.\n"
 "Vorhandenen Eintrag überschreiben?"
 
-#: Src/wptRegistry.cpp:595
+#: Src/wptRegistry.cpp:599
 msgid "Could not write to Registry."
 msgstr "Konnte Werte in der Registrierung nicht speichern."
 

Modified: trunk/Po/jp.po
===================================================================
--- trunk/Po/jp.po	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Po/jp.po	2006-10-21 18:08:57 UTC (rev 270)
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: WinPT 0.10.2\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-08-30 14:04+0200\n"
+"POT-Creation-Date: 2006-10-21 19:58+0200\n"
 "PO-Revision-Date: 2005-12-22 07:28+0100\n"
 "Last-Translator: Davar Pishva <dpishva at andrew.cmu.edu>\n"
 "Language-Team: jp <jp at li.org>\n"
@@ -21,7 +21,7 @@
 "gpg.conf‚̏­‚È‚­‚Ä‚àˆê‚ƒpƒ‰ƒ[ƒ^‚ª‘¶Ý‚µ‚Ä‚¢‚È‚¢ƒtƒ@ƒCƒ‹‚ðŽw’肵‚Ü‚·B"
 
 # c:\oss\winpt\src\wptErrors.cpp:93
-#: Src/WinPT.cpp:196
+#: Src/WinPT.cpp:197
 msgid "Could not create GPG home directory"
 msgstr "GPGƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚ðì¬‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
@@ -36,34 +36,34 @@
 # c:\oss\winpt\src\wptGPG.cpp:886 c:\oss\winpt\src\wptGPG.cpp:896
 # c:\oss\winpt\src\wptGPGME.cpp:175 c:\oss\winpt\src\wptMainProc.cpp:337
 # c:\oss\winpt\src\wptMainProc.cpp:509
-#: Src/WinPT.cpp:197 Src/WinPT.cpp:279 Src/WinPT.cpp:283 Src/WinPT.cpp:484
+#: Src/WinPT.cpp:198 Src/WinPT.cpp:277 Src/WinPT.cpp:281 Src/WinPT.cpp:484
 #: Src/WinPT.cpp:493 Src/WinPT.cpp:500 Src/WinPT.cpp:540 Src/WinPT.cpp:568
-#: Src/WinPT.cpp:577 Src/WinPT.cpp:581 Src/WinPT.cpp:598 Src/WinPT.cpp:666
-#: Src/WinPT.cpp:679 Src/WinPT.cpp:726 Src/WinPT.cpp:768 Src/WinPT.cpp:787
-#: Src/wptCommonDlg.cpp:224 Src/wptErrors.cpp:141 Src/wptGPG.cpp:926
-#: Src/wptGPG.cpp:938 Src/wptGPG.cpp:948 Src/wptGPG.cpp:959
-#: Src/wptMainProc.cpp:345 Src/wptMainProc.cpp:518
+#: Src/WinPT.cpp:577 Src/WinPT.cpp:581 Src/WinPT.cpp:598 Src/WinPT.cpp:665
+#: Src/WinPT.cpp:678 Src/WinPT.cpp:725 Src/WinPT.cpp:767 Src/WinPT.cpp:786
+#: Src/wptCommonDlg.cpp:224 Src/wptErrors.cpp:141 Src/wptGPG.cpp:921
+#: Src/wptGPG.cpp:933 Src/wptGPG.cpp:943 Src/wptGPG.cpp:954
+#: Src/wptMainProc.cpp:346 Src/wptMainProc.cpp:519
 msgid "WinPT Error"
 msgstr "WinPT ƒGƒ‰["
 
 # c:\oss\winpt\src\wptGPG.cpp:178
-#: Src/WinPT.cpp:228
+#: Src/WinPT.cpp:226
 msgid "No useable secret key found."
 msgstr "Žg—p‚Å‚«‚é”é–§Œ®‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:173
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:180
-#: Src/WinPT.cpp:229 Src/wptKeyPropsDlg.cpp:357 Src/wptKeyPropsDlg.cpp:364
+#: Src/WinPT.cpp:227 Src/wptKeyPropsDlg.cpp:357 Src/wptKeyPropsDlg.cpp:364
 msgid "WinPT Warning"
 msgstr "WinPT Œx"
 
 # c:\oss\winpt\src\WinPT.cpp:155
-#: Src/WinPT.cpp:278
+#: Src/WinPT.cpp:276
 msgid "Could not read GnuPG version."
 msgstr "GnuPGƒo[ƒWƒ‡ƒ“î•ñ‚ð“Ç‚Þ‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\WinPT.cpp:161
-#: Src/WinPT.cpp:284
+#: Src/WinPT.cpp:282
 #, c-format
 msgid ""
 "Sorry, you need a newer GPG version.\n"
@@ -73,7 +73,7 @@
 "•K—v‚Æ‚³‚ê‚Ä‚¢‚éƒo[ƒWƒ‡ƒ“‚ª %d.%d.%d ‚Å‚·B"
 
 # c:\oss\winpt\src\wptErrors.cpp:93
-#: Src/WinPT.cpp:312
+#: Src/WinPT.cpp:310
 msgid "Failed to create WinPT directory"
 msgstr "WinPTƒfƒBƒŒƒNƒgƒŠ‚ðì¬‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
@@ -92,7 +92,7 @@
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:420
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:72
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:115
-#: Src/WinPT.cpp:313 Src/WinPT.cpp:330 Src/WinPT.cpp:341
+#: Src/WinPT.cpp:311 Src/WinPT.cpp:328 Src/WinPT.cpp:339
 #: Src/wptKeyManagerDlg.cpp:996 Src/wptKeyserver.cpp:634
 #: Src/wptKeyserverDlg.cpp:71 Src/wptKeyserverDlg.cpp:73
 #: Src/wptKeyserverDlg.cpp:190 Src/wptKeyserverDlg.cpp:198
@@ -107,7 +107,7 @@
 
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:370
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:395
-#: Src/WinPT.cpp:329
+#: Src/WinPT.cpp:327
 msgid "Failed to copy the keyserver.conf"
 msgstr "keyserver.conf‚̃tƒ@ƒCƒ‹ƒRƒs[‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"
 
@@ -179,17 +179,17 @@
 msgstr "ŠJ‚«—̈æ‚ðŽæ‚èÁ‚·"
 
 # c:\oss\winpt\src\WinPT.cpp:382
-#: Src/WinPT.cpp:665
+#: Src/WinPT.cpp:664
 msgid "Could not register window class"
 msgstr "ƒEƒBƒ“ƒh‚̃Nƒ‰ƒX‚ð“o˜^‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\WinPT.cpp:395
-#: Src/WinPT.cpp:679
+#: Src/WinPT.cpp:678
 msgid "Could not create window"
 msgstr "ƒEƒBƒ“ƒh‚ðì¬‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\WinPT.cpp:461
-#: Src/WinPT.cpp:766
+#: Src/WinPT.cpp:765
 msgid ""
 "The keycache was not initialized or is empty.\n"
 "Please check your GPG config (keyrings, pathes...)"
@@ -198,7 +198,7 @@
 "GPG‚±‚¤‚¹‚¢ (ƒL[ƒŠƒ“ƒO, ƒpƒX‚È‚Ç...) ‚ðƒ`ƒFƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\WinPT.cpp:464
-#: Src/WinPT.cpp:769
+#: Src/WinPT.cpp:768
 msgid ""
 "It seems that GPG is not configured properly.\n"
 "Do you want to start the GPG preferences dialog?"
@@ -207,7 +207,7 @@
 "GPGƒJƒXƒ^ƒ€Ý’è‚ðŽÀs‚µ‚Ü‚·H"
 
 # c:\oss\winpt\src\WinPT.cpp:480
-#: Src/WinPT.cpp:788
+#: Src/WinPT.cpp:787
 #, c-format
 msgid ""
 "Default key (from the GPG config file) could not be found.\n"
@@ -235,7 +235,7 @@
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1152
 # c:\oss\winpt\src\wptMainProc.cpp:560
 #: Src/wptAboutDlgs.cpp:89 Src/wptKeyManagerDlg.cpp:1890
-#: Src/wptMainProc.cpp:567
+#: Src/wptMainProc.cpp:568
 msgid "About WinPT"
 msgstr "WinPT‚ɂ‚¢‚Ä"
 
@@ -297,7 +297,7 @@
 
 # c:\oss\winpt\src\WinPT.cpp:340 c:\oss\winpt\src\wptCardDlg.cpp:98
 # c:\oss\winpt\src\wptCardDlg.cpp:125 c:\oss\winpt\src\wptMainProc.cpp:389
-#: Src/wptCardDlg.cpp:149 Src/wptMainProc.cpp:394
+#: Src/wptCardDlg.cpp:149 Src/wptMainProc.cpp:395
 msgid "Card Manager"
 msgstr "ƒJ[ƒhƒ}ƒl[ƒWƒƒ["
 
@@ -585,7 +585,7 @@
 msgid "PIN successfully changed."
 msgstr "ˆÃØ”ԍ†‚ª³‚µ‚­•ÏX‚µ‚Ü‚µ‚½B"
 
-#: Src/wptCardEdit.cpp:329
+#: Src/wptCardEdit.cpp:332
 msgid "Please insert the card and click OK or Cancel to abort."
 msgstr "ƒJ[ƒh‚ð“ü—Í‚µAOK‚â’†Ž~‚·‚é‚̂ɃLƒƒƒ“ƒZƒ‹‚ð‰Ÿ‚µ‚Ä‚­‚¾‚³‚¢"
 
@@ -604,7 +604,7 @@
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:167
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:75
 # c:\oss\winpt\src\wptOwnertrustDlg.cpp:89
-#: Src/wptCardEdit.cpp:330
+#: Src/wptCardEdit.cpp:333
 msgid "GPG Card Status"
 msgstr "GnuPG‚̏ó‘Ô"
 
@@ -620,7 +620,7 @@
 # c:\oss\winpt\src\wptClipDecryptDlg.cpp:48
 #: Src/wptClipDecryptDlg.cpp:60 Src/wptClipDecryptDlg.cpp:177
 #: Src/wptKeyRevokersDlg.cpp:129 Src/wptKeyRevokersDlg.cpp:173
-#: Src/wptVerifyList.cpp:257 Src/wptVerifyList.cpp:317
+#: Src/wptVerifyList.cpp:257 Src/wptVerifyList.cpp:319
 msgid "user ID not found"
 msgstr "ƒ†[ƒU[ID‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
@@ -710,11 +710,11 @@
 #: Src/wptClipDecryptDlg.cpp:216 Src/wptClipVerifyDlg.cpp:154
 #: Src/wptClipVerifyDlg.cpp:162 Src/wptClipVerifyDlg.cpp:191
 #: Src/wptClipVerifyDlg.cpp:202 Src/wptClipVerifyDlg.cpp:220
-#: Src/wptClipVerifyDlg.cpp:232 Src/wptFileManager.cpp:1636
-#: Src/wptFileManager.cpp:1689 Src/wptFileManagerDlg.cpp:586
+#: Src/wptClipVerifyDlg.cpp:232 Src/wptFileManager.cpp:1670
+#: Src/wptFileManager.cpp:1723 Src/wptFileManagerDlg.cpp:586
 #: Src/wptFileVerifyDlg.cpp:83 Src/wptFileVerifyDlg.cpp:150
 #: Src/wptMainProc.cpp:208 Src/wptMainProc.cpp:224 Src/wptMainProc.cpp:234
-#: Src/wptMainProc.cpp:403
+#: Src/wptMainProc.cpp:404
 msgid "Verify"
 msgstr "Šm”F‚·‚é"
 
@@ -726,14 +726,14 @@
 # c:\oss\winpt\src\wptFileManager.cpp:996
 #: Src/wptClipDecryptDlg.cpp:223 Src/wptClipDecryptDlg.cpp:236
 #: Src/wptClipDecryptDlg.cpp:244 Src/wptClipDecryptDlg.cpp:251
-#: Src/wptClipDecryptDlg.cpp:253 Src/wptFileManager.cpp:1343
-#: Src/wptFileManager.cpp:1394
+#: Src/wptClipDecryptDlg.cpp:253 Src/wptFileManager.cpp:1377
+#: Src/wptFileManager.cpp:1428
 msgid "Decryption"
 msgstr "•œ†"
 
 # c:\oss\winpt\src\wptClipDecryptDlg.cpp:130
 # c:\oss\winpt\src\wptFileManager.cpp:997
-#: Src/wptClipDecryptDlg.cpp:237 Src/wptFileManager.cpp:1395
+#: Src/wptClipDecryptDlg.cpp:237 Src/wptFileManager.cpp:1429
 #, c-format
 msgid ""
 "Encrypted with %s key, ID 0x%s.%s\n"
@@ -800,14 +800,14 @@
 #: Src/wptClipEditDlg.cpp:131 Src/wptClipEditDlg.cpp:171
 #: Src/wptClipEditDlg.cpp:187 Src/wptClipEditDlg.cpp:257
 #: Src/wptClipEditDlg.cpp:262 Src/wptFileManagerDlg.cpp:220
-#: Src/wptMainProc.cpp:193 Src/wptMainProc.cpp:244 Src/wptMainProc.cpp:416
-#: Src/wptMainProc.cpp:499 Src/wptMainProc.cpp:504
+#: Src/wptMainProc.cpp:193 Src/wptMainProc.cpp:244 Src/wptMainProc.cpp:417
+#: Src/wptMainProc.cpp:500 Src/wptMainProc.cpp:505 Src/wptVerifyList.cpp:232
 msgid "Clipboard"
 msgstr "ƒNƒŠƒbƒvƒ{[ƒh"
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:114
 # c:\oss\winpt\src\wptFileManager.cpp:309
-#: Src/wptClipEditDlg.cpp:113 Src/wptFileManager.cpp:639
+#: Src/wptClipEditDlg.cpp:113 Src/wptFileManager.cpp:649
 msgid "File Open"
 msgstr "ƒtƒ@ƒCƒ‹‚ðŠJ‚­"
 
@@ -871,7 +871,7 @@
 
 # c:\oss\winpt\src\wptClipEditDlg.cpp:45 c:\oss\winpt\src\wptMainProc.cpp:181
 # c:\oss\winpt\src\wptMainProc.cpp:249 c:\oss\winpt\src\wptMainProc.cpp:554
-#: Src/wptClipEditDlg.cpp:221 Src/wptMainProc.cpp:561
+#: Src/wptClipEditDlg.cpp:221 Src/wptMainProc.cpp:562
 msgid "Clipboard Editor"
 msgstr "ƒNƒŠƒbƒvƒ{[ƒhƒGƒfƒBƒ^["
 
@@ -963,8 +963,8 @@
 #: Src/wptClipSignDlg.cpp:157 Src/wptClipSignDlg.cpp:225
 #: Src/wptClipSignDlg.cpp:229 Src/wptClipSignDlg.cpp:249
 #: Src/wptClipSignDlg.cpp:260 Src/wptClipSignEncDlg.cpp:159
-#: Src/wptClipSignEncDlg.cpp:170 Src/wptFileManager.cpp:1153
-#: Src/wptFileManager.cpp:1169 Src/wptFileManager.cpp:1459
+#: Src/wptClipSignEncDlg.cpp:170 Src/wptFileManager.cpp:1187
+#: Src/wptFileManager.cpp:1203 Src/wptFileManager.cpp:1493
 #: Src/wptMainProc.cpp:179
 msgid "Signing"
 msgstr "–¼"
@@ -1406,14 +1406,14 @@
 # c:\oss\winpt\src\wptFileStatDlg.cpp:124
 # c:\oss\winpt\src\wptMainProc.cpp:387 c:\oss\winpt\src\wptMainProc.cpp:526
 #: Src/wptFileManager.cpp:130 Src/wptFileManager.cpp:152
-#: Src/wptFileManager.cpp:158 Src/wptFileManager.cpp:199
-#: Src/wptFileManager.cpp:324 Src/wptFileManager.cpp:735
-#: Src/wptFileManager.cpp:880 Src/wptFileManager.cpp:995
-#: Src/wptFileManager.cpp:1545 Src/wptFileManager.cpp:1572
-#: Src/wptFileManager.cpp:1591 Src/wptFileManager.cpp:1841
-#: Src/wptFileManager.cpp:1903 Src/wptFileManagerDlg.cpp:529
+#: Src/wptFileManager.cpp:158 Src/wptFileManager.cpp:198
+#: Src/wptFileManager.cpp:324 Src/wptFileManager.cpp:746
+#: Src/wptFileManager.cpp:914 Src/wptFileManager.cpp:1029
+#: Src/wptFileManager.cpp:1579 Src/wptFileManager.cpp:1606
+#: Src/wptFileManager.cpp:1625 Src/wptFileManager.cpp:1877
+#: Src/wptFileManager.cpp:1939 Src/wptFileManagerDlg.cpp:529
 #: Src/wptFileManagerDlg.cpp:633 Src/wptFileStatDlg.cpp:154
-#: Src/wptMainProc.cpp:392 Src/wptMDSumDlg.cpp:276 Src/wptMDSumDlg.cpp:281
+#: Src/wptMainProc.cpp:393 Src/wptMDSumDlg.cpp:276 Src/wptMDSumDlg.cpp:281
 msgid "File Manager"
 msgstr "ƒtƒ@ƒCƒ‹ƒ}ƒl[ƒWƒƒ["
 
@@ -1443,7 +1443,7 @@
 msgstr "ƒtƒ@ƒCƒ‹‘®«‚𕁒ʂɒu‚«’¼‚·‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:137
-#: Src/wptFileManager.cpp:195
+#: Src/wptFileManager.cpp:194
 msgid ""
 "Multi-Media files are already compressed, GPG would compress\n"
 "them anyway and this takes a lot of time.\n"
@@ -1459,7 +1459,7 @@
 # c:\oss\winpt\src\wptFileManager.cpp:179
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:810
 # c:\oss\winpt\src\wptVerifyList.cpp:76 c:\oss\winpt\src\wptVerifyList.cpp:84
-#: Src/wptFileManager.cpp:407 Src/wptKeyEditDlgs.cpp:1075
+#: Src/wptFileManager.cpp:414 Src/wptKeyEditDlgs.cpp:1075
 #: Src/wptVerifyList.cpp:169
 msgid "Status"
 msgstr "ó‹µ"
@@ -1468,24 +1468,24 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:919
 # c:\oss\winpt\src\wptKeyRevokersDlg.cpp:43
 # c:\oss\winpt\src\wptMDSumDlg.cpp:53 c:\oss\winpt\src\wptVerifyList.cpp:75
-#: Src/wptFileManager.cpp:408 Src/wptKeyEditDlgs.cpp:1156
+#: Src/wptFileManager.cpp:415 Src/wptKeyEditDlgs.cpp:1156
 #: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:190
 #: Src/wptVerifyList.cpp:168
 msgid "Name"
 msgstr "–¼‘O"
 
 # c:\oss\winpt\src\wptFileManager.cpp:181
-#: Src/wptFileManager.cpp:409
+#: Src/wptFileManager.cpp:416
 msgid "Operation"
 msgstr "‘€ì"
 
 # c:\oss\winpt\src\wptFileManager.cpp:503
-#: Src/wptFileManager.cpp:734
+#: Src/wptFileManager.cpp:745
 msgid "Please select a file."
 msgstr "ƒtƒ@ƒCƒ‹‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptGPG.cpp:783
-#: Src/wptFileManager.cpp:881
+#: Src/wptFileManager.cpp:915
 #, c-format
 msgid ""
 "\"%s\" does not seems to be a text file.\n"
@@ -1495,25 +1495,25 @@
 "‚±‚ê‚ð–{“–‚É'clearsign'‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptFileManager.cpp:704
-#: Src/wptFileManager.cpp:996
+#: Src/wptFileManager.cpp:1030
 #, c-format
 msgid "\"%s\" does not exist"
 msgstr "%s ‚ªŠù‘¶‚µ‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptFileManager.cpp:779
 # c:\oss\winpt\src\wptFileStatDlg.cpp:225
-#: Src/wptFileManager.cpp:1079 Src/wptFileStatDlg.cpp:283
+#: Src/wptFileManager.cpp:1113 Src/wptFileStatDlg.cpp:283
 #: Src/wptFileStatDlg.cpp:287
 msgid "File Status"
 msgstr "ƒtƒ@ƒCƒ‹‚̏ó‘Ô"
 
 # c:\oss\winpt\src\wptFileManager.cpp:825
-#: Src/wptFileManager.cpp:1123
+#: Src/wptFileManager.cpp:1156
 msgid "Enter Filename for Encrypted File"
 msgstr "ˆÃ†‰»‚µ‚½ƒtƒ@ƒCƒ‹‚É–¼‘O‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:837
-#: Src/wptFileManager.cpp:1152
+#: Src/wptFileManager.cpp:1186
 msgid "Could not get default secret key."
 msgstr "‹K’è”é–§Œ®‚ðŽæ“¾‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
@@ -1522,22 +1522,22 @@
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:296
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:403
 # c:\oss\winpt\src\wptMainProc.cpp:211 c:\oss\winpt\src\wptMainProc.cpp:410
-#: Src/wptFileManager.cpp:1183 Src/wptFileManager.cpp:1495
+#: Src/wptFileManager.cpp:1217 Src/wptFileManager.cpp:1529
 #: Src/wptFileManagerDlg.cpp:584 Src/wptMainProc.cpp:156
-#: Src/wptMainProc.cpp:400 Src/wptMainProc.cpp:407
+#: Src/wptMainProc.cpp:401 Src/wptMainProc.cpp:408
 msgid "Sign"
 msgstr "–¼"
 
 # c:\oss\winpt\src\wptFileManager.cpp:868
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:401
 # c:\oss\winpt\src\wptMainProc.cpp:403 c:\oss\winpt\src\wptMainProc.cpp:407
-#: Src/wptFileManager.cpp:1196 Src/wptFileManagerDlg.cpp:582
-#: Src/wptMainProc.cpp:399 Src/wptMainProc.cpp:404
+#: Src/wptFileManager.cpp:1230 Src/wptFileManagerDlg.cpp:582
+#: Src/wptMainProc.cpp:400 Src/wptMainProc.cpp:405
 msgid "Encrypt"
 msgstr "ŒöŠJˆÃ†‰»"
 
 # c:\oss\winpt\src\wptSymEnc.cpp:40 c:\oss\winpt\src\wptSymEnc.cpp:50
-#: Src/wptFileManager.cpp:1223 Src/wptSymEnc.cpp:72 Src/wptSymEnc.cpp:92
+#: Src/wptFileManager.cpp:1257 Src/wptSymEnc.cpp:72 Src/wptSymEnc.cpp:92
 msgid "Symmetric Encryption"
 msgstr "‹¤’ʈ͆‰»"
 
@@ -1545,36 +1545,36 @@
 # c:\oss\winpt\src\wptFileManager.cpp:914
 # c:\oss\winpt\src\wptFileManager.cpp:919
 # c:\oss\winpt\src\wptMainProc.cpp:401
-#: Src/wptFileManager.cpp:1256 Src/wptFileManager.cpp:1261
-#: Src/wptMainProc.cpp:398 Src/wptMainProc.cpp:408
+#: Src/wptFileManager.cpp:1290 Src/wptFileManager.cpp:1295
+#: Src/wptMainProc.cpp:399 Src/wptMainProc.cpp:409
 msgid "Symmetric"
 msgstr "‹¤’ʈ͆‰»"
 
 # c:\oss\winpt\src\wptFileManager.cpp:919
-#: Src/wptFileManager.cpp:1261
+#: Src/wptFileManager.cpp:1295
 msgid "Encryption failed."
 msgstr "ˆÃ†‚ÉŽ¸”s‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:963
-#: Src/wptFileManager.cpp:1352
+#: Src/wptFileManager.cpp:1386
 msgid "Choose Filename for Output"
 msgstr "o—̓tƒ@ƒCƒ‹–¼‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:980
-#: Src/wptFileManager.cpp:1361
+#: Src/wptFileManager.cpp:1395
 msgid "Enter Filename for Plaintext File"
 msgstr "ƒvƒŒ[ƒ“ƒeƒLƒX—p‚̃gƒtƒ@ƒCƒ‹–¼‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1006
 # c:\oss\winpt\src\wptFileManager.cpp:1011
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:402
-#: Src/wptFileManager.cpp:1403 Src/wptFileManager.cpp:1423
+#: Src/wptFileManager.cpp:1437 Src/wptFileManager.cpp:1457
 #: Src/wptFileManagerDlg.cpp:583
 msgid "Decrypt"
 msgstr "•œ†"
 
 # c:\oss\winpt\src\wptErrors.cpp:71
-#: Src/wptFileManager.cpp:1409
+#: Src/wptFileManager.cpp:1443
 #, c-format
 msgid ""
 "Decryption failed.\n"
@@ -1583,7 +1583,7 @@
 "•œ†‚ªŽ¸”s‚µ‚Ü‚µ‚½B\n"
 "%s: ƒtƒ@ƒCƒ‹‚ªŠù‘¶‚µ‚Ü‚¹‚ñB"
 
-#: Src/wptFileManager.cpp:1424
+#: Src/wptFileManager.cpp:1458
 #, c-format
 msgid ""
 "The original file name is '%s'.\n"
@@ -1595,32 +1595,32 @@
 "‚±‚ê‚ð '%s' ‚Ì‘ã‚í‚è‚É–{“–‚ÉŽg—p‚µ‚Ü‚·‚©?"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1068
-#: Src/wptFileManager.cpp:1472
+#: Src/wptFileManager.cpp:1506
 msgid "Enter Filename for Signed File"
 msgstr "–¼‚µ‚½ƒtƒ@ƒCƒ‹‚É–¼‘O‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1165
-#: Src/wptFileManager.cpp:1571
+#: Src/wptFileManager.cpp:1605
 msgid "Could not find detached signature in the clipboard."
 msgstr "ƒNƒŠƒbƒvƒ{[ƒh‚ÉŽæ‚èo‚µ‚½–¼‚ðŒ©‚Â‚¯‚邱‚Æ‚ªo—ˆ‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1184
-#: Src/wptFileManager.cpp:1591
+#: Src/wptFileManager.cpp:1625
 msgid "No files to check."
 msgstr "ƒ`ƒFƒbƒN‚·‚éƒtƒ@ƒCƒ‹‚ª‚ ‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1212
-#: Src/wptFileManager.cpp:1608
+#: Src/wptFileManager.cpp:1642
 msgid "Select Data File"
 msgstr "ƒf[ƒ^ƒtƒ@ƒCƒ‹‚ð‘I‚Ô"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1212
-#: Src/wptFileManager.cpp:1610
+#: Src/wptFileManager.cpp:1644
 msgid "Selected Output File"
 msgstr "‘I‘ð‚µ‚½o—̓tƒ@ƒCƒ‹"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1218
-#: Src/wptFileManager.cpp:1636
+#: Src/wptFileManager.cpp:1670
 msgid "Invalid file name. Exit"
 msgstr "–³Œø‚ȃtƒ@ƒCƒ‹–¼BI—¹"
 
@@ -1635,7 +1635,7 @@
 # c:\oss\winpt\src\wptImportList.cpp:220
 # c:\oss\winpt\src\wptKeyManager.cpp:516
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:150
-#: Src/wptFileManager.cpp:1734 Src/wptFileManager.cpp:1745
+#: Src/wptFileManager.cpp:1770 Src/wptFileManager.cpp:1781
 #: Src/wptFileManagerDlg.cpp:245 Src/wptImportList.cpp:404
 #: Src/wptImportList.cpp:411 Src/wptImportList.cpp:421
 #: Src/wptImportList.cpp:429 Src/wptImportList.cpp:438
@@ -1647,7 +1647,7 @@
 
 # c:\oss\winpt\src\wptFileManager.cpp:1285
 # c:\oss\winpt\src\wptKeyManager.cpp:513
-#: Src/wptFileManager.cpp:1742
+#: Src/wptFileManager.cpp:1778
 msgid ""
 "Key without a self signature was dectected!\n"
 "(This key is NOT usable for encryption, etc)\n"
@@ -1663,7 +1663,7 @@
 # c:\oss\winpt\src\wptKeyManager.cpp:262
 # c:\oss\winpt\src\wptKeyManager.cpp:294
 # c:\oss\winpt\src\wptKeyManager.cpp:340
-#: Src/wptFileManager.cpp:1768 Src/wptKeyManager.cpp:282
+#: Src/wptFileManager.cpp:1804 Src/wptKeyManager.cpp:282
 #: Src/wptKeyManager.cpp:325 Src/wptKeyManager.cpp:360
 msgid "No key was selected for export."
 msgstr "ƒGƒLƒXƒ|[ƒg‚·‚邽‚߂̃L[‚ª‘I‘ð‚³‚ê‚Ä‚Ü‚¹‚ñB"
@@ -1671,7 +1671,7 @@
 # c:\oss\winpt\src\wptFileManager.cpp:1309
 # c:\oss\winpt\src\wptFileManager.cpp:1335
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:79
-#: Src/wptFileManager.cpp:1769 Src/wptFileManager.cpp:1792
+#: Src/wptFileManager.cpp:1805 Src/wptFileManager.cpp:1828
 #: Src/wptKeyserverDlg.cpp:93
 msgid "Export"
 msgstr "ƒGƒLƒXƒ|[ƒg"
@@ -1679,7 +1679,7 @@
 # c:\oss\winpt\src\wptFileManager.cpp:1327
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1106
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1138
-#: Src/wptFileManager.cpp:1777 Src/wptKeyManagerDlg.cpp:1850
+#: Src/wptFileManager.cpp:1813 Src/wptKeyManagerDlg.cpp:1850
 #: Src/wptKeyManagerDlg.cpp:1882
 msgid "Choose Name for Key File"
 msgstr "ƒL[ƒtƒ@ƒCƒ‹‚É–¼‘O‚ð‘I‘ð‚·‚éB"
@@ -1689,51 +1689,51 @@
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1113
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:1177
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:90
-#: Src/wptFileManager.cpp:1796 Src/wptKeyEditDlgs.cpp:1055
+#: Src/wptFileManager.cpp:1832 Src/wptKeyEditDlgs.cpp:1055
 #: Src/wptKeyEditDlgs.cpp:1314 Src/wptKeyEditDlgs.cpp:1386
 #: Src/wptKeyserverDlg.cpp:105
 msgid "GnuPG status"
 msgstr "GnuPG‚̏ó‘Ô"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1339
-#: Src/wptFileManager.cpp:1796
+#: Src/wptFileManager.cpp:1832
 #, c-format
 msgid "Finished (Output: %s)"
 msgstr "I—¹‚µ‚Ü‚µ‚½ (o—Í: %s)"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1381
-#: Src/wptFileManager.cpp:1842
+#: Src/wptFileManager.cpp:1878
 #, c-format
 msgid "%s: no valid OpenPGP data found."
 msgstr "%s: —LŒø‚ÈOpenPGPƒf[ƒ^‚ªŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
-#: Src/wptFileManager.cpp:1902
+#: Src/wptFileManager.cpp:1938
 msgid "Encrypting into a ZIP archive makes sense with multiple files"
 msgstr "‘½”‚̃tƒ@ƒCƒ‹‚ðZipƒA[ƒJƒCƒu‚Ɉ͆‰»‚·‚邱‚Æ‚ª—Ç‚¢‚±‚Æ‚Å‚·B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:963
-#: Src/wptFileManager.cpp:1907
+#: Src/wptFileManager.cpp:1943
 msgid "Choose File Name for Output"
 msgstr "o—̓tƒ@ƒCƒ‹–¼‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1450
-#: Src/wptFileManager.cpp:1979
+#: Src/wptFileManager.cpp:2015
 msgid "Choose a Name for the Archive"
 msgstr "ƒA[ƒJƒCƒu‚É–¼‘O‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1453
-#: Src/wptFileManager.cpp:1982
+#: Src/wptFileManager.cpp:2018
 msgid "Invalid archive name. Exit."
 msgstr "–³Œø‚ȃA[ƒJƒCƒu–¼BI—¹B"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1453
 # c:\oss\winpt\src\wptFileManager.cpp:1464
-#: Src/wptFileManager.cpp:1983 Src/wptFileManager.cpp:1991
+#: Src/wptFileManager.cpp:2019 Src/wptFileManager.cpp:2027
 msgid "Encrypt Directory"
 msgstr "ˆÃ†‰»ƒfƒBƒŒƒNƒgƒŠ"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1464
-#: Src/wptFileManager.cpp:1990
+#: Src/wptFileManager.cpp:2026
 msgid "Could not create zip archive."
 msgstr "ˆ³kƒA[ƒJƒCƒu‚ðì¬‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
@@ -1876,14 +1876,14 @@
 msgstr "%d ƒIƒuƒWƒFƒNƒg‚ªƒ}[ƒN‚³‚ê‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:350
-#: Src/wptFileManagerDlg.cpp:495 Src/wptMainProc.cpp:531
+#: Src/wptFileManagerDlg.cpp:495 Src/wptMainProc.cpp:532
 msgid "File Manager (use drag & drop to add files)"
 msgstr "ƒtƒ@ƒCƒ‹ƒ}ƒl[ƒWƒƒ[(ƒhƒ‰ƒbƒOEƒAƒ“ƒhEƒhƒƒbƒv‚ðŽg—p‚µ‚ĒljÁ‚·‚é)"
 
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:573
 #: Src/wptFileManagerDlg.cpp:499 Src/wptKeyManagerDlg.cpp:967
 #: Src/wptKeyManagerDlg.cpp:972 Src/wptKeyManagerDlg.cpp:983
-#: Src/wptMainProc.cpp:395
+#: Src/wptMainProc.cpp:396
 msgid "Edit"
 msgstr "•ÒW"
 
@@ -1912,7 +1912,7 @@
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:404
 # c:\oss\winpt\src\wptMainProc.cpp:404 c:\oss\winpt\src\wptMainProc.cpp:408
 #: Src/wptFileManagerDlg.cpp:506 Src/wptFileManagerDlg.cpp:585
-#: Src/wptMainProc.cpp:401 Src/wptMainProc.cpp:405
+#: Src/wptMainProc.cpp:402 Src/wptMainProc.cpp:406
 msgid "Sign && Encrypt"
 msgstr "–¼‹y‚ш͆‰»"
 
@@ -1939,7 +1939,7 @@
 
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:364
 # c:\oss\winpt\src\wptMainProc.cpp:400
-#: Src/wptFileManagerDlg.cpp:511 Src/wptMainProc.cpp:397
+#: Src/wptFileManagerDlg.cpp:511 Src/wptMainProc.cpp:398
 msgid "Exit"
 msgstr "I—¹"
 
@@ -2105,7 +2105,7 @@
 msgstr "WinPTÅ‰‚̃Xƒ^[ƒg"
 
 # c:\oss\winpt\src\wptGPG.cpp:734
-#: Src/wptGPG.cpp:844
+#: Src/wptGPG.cpp:839
 msgid ""
 "The selected keyring has the read-only file\n"
 "attribute. In this state you do not have write\n"
@@ -2116,23 +2116,23 @@
 "‚±‚Ì‘®«‚ðíœ‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptGPG.cpp:737
-#: Src/wptGPG.cpp:847
+#: Src/wptGPG.cpp:842
 msgid "GPG Information"
 msgstr "GPGƒCƒ“ƒtƒH"
 
 # c:\oss\winpt\src\wptGPG.cpp:741
-#: Src/wptGPG.cpp:851
+#: Src/wptGPG.cpp:846
 msgid "Could not reset read-only state."
 msgstr "ƒŠ[ƒhƒIƒ“ƒŠ[ó‘Ô‚ð‰Šú‰»‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptGPG.cpp:178 c:\oss\winpt\src\wptGPG.cpp:742
 # c:\oss\winpt\src\wptGPG.cpp:1029 c:\oss\winpt\src\wptGPG.cpp:1038
-#: Src/wptGPG.cpp:852
+#: Src/wptGPG.cpp:847
 msgid "GPG Error"
 msgstr "GPGƒGƒ‰["
 
 # c:\oss\winpt\src\wptGPG.cpp:757
-#: Src/wptGPG.cpp:864
+#: Src/wptGPG.cpp:859
 msgid ""
 "You do not have file access to modify the contents of\n"
 "one or both of the selected keyrings.\n"
@@ -2147,7 +2147,7 @@
 "ƒvƒƒOƒ‰ƒ€‚ª‚»‚ê‚ðŠJ‚¢‚½‚½‚߂ƍl‚¦‚ç‚ê‚Ü‚·B\n"
 
 # c:\oss\winpt\src\wptGPG.cpp:762
-#: Src/wptGPG.cpp:869
+#: Src/wptGPG.cpp:864
 msgid "GPG Warning"
 msgstr "GPGŒx"
 
@@ -2171,19 +2171,19 @@
 # c:\oss\winpt\src\wptPreferencesDlg.cpp:270
 # c:\oss\winpt\src\wptPreferencesDlg.cpp:317
 # c:\oss\winpt\src\wptRegistry.cpp:492
-#: Src/wptGPG.cpp:893 Src/wptGPGPrefsDlg.cpp:222 Src/wptGPGPrefsDlg.cpp:228
+#: Src/wptGPG.cpp:888 Src/wptGPGPrefsDlg.cpp:222 Src/wptGPGPrefsDlg.cpp:228
 #: Src/wptGPGPrefsDlg.cpp:234 Src/wptGPGPrefsDlg.cpp:240
 #: Src/wptGPGPrefsDlg.cpp:245 Src/wptGPGPrefsDlg.cpp:250
 #: Src/wptGPGPrefsDlg.cpp:256 Src/wptGPGPrefsDlg.cpp:270
-#: Src/wptKeyEditDlgs.cpp:1713 Src/wptMainProc.cpp:418
+#: Src/wptKeyEditDlgs.cpp:1713 Src/wptMainProc.cpp:419
 #: Src/wptPreferencesDlg.cpp:225 Src/wptPreferencesDlg.cpp:270
 #: Src/wptPreferencesDlg.cpp:282 Src/wptPreferencesDlg.cpp:295
-#: Src/wptPreferencesDlg.cpp:326 Src/wptRegistry.cpp:595
+#: Src/wptPreferencesDlg.cpp:326 Src/wptRegistry.cpp:599
 msgid "Preferences"
 msgstr "ƒJƒXƒ^ƒ€Ý’è"
 
 # c:\oss\winpt\src\wptGPG.cpp:783
-#: Src/wptGPG.cpp:894
+#: Src/wptGPG.cpp:889
 #, c-format
 msgid ""
 "%s does not exit.\n"
@@ -2193,47 +2193,47 @@
 "‚±‚̃fƒBƒŒƒNƒgƒŠ[‚ðì¬‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptGPG.cpp:863
-#: Src/wptGPG.cpp:922
+#: Src/wptGPG.cpp:917
 msgid "Please choose your Public Keyring"
 msgstr "ŒöŠJƒL[ƒŠƒ“ƒO‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptGPG.cpp:866 c:\oss\winpt\src\wptGPG.cpp:886
-#: Src/wptGPG.cpp:925 Src/wptGPG.cpp:947
+#: Src/wptGPG.cpp:920 Src/wptGPG.cpp:942
 msgid "No keyring was chosen. Exit."
 msgstr "ƒL[ƒŠƒ“ƒO‚ª‘I‘ð‚³‚ê‚Ä‚Ü‚¹‚ñBI—¹B"
 
 # c:\oss\winpt\src\wptGPG.cpp:872
-#: Src/wptGPG.cpp:932
+#: Src/wptGPG.cpp:927
 msgid "Overwrite old public keyring?"
 msgstr "ŒÃ‚¢ŒöŠJŒ®‚ðã‘‚«‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptGPG.cpp:877 c:\oss\winpt\src\wptGPG.cpp:896
-#: Src/wptGPG.cpp:938 Src/wptGPG.cpp:959
+#: Src/wptGPG.cpp:933 Src/wptGPG.cpp:954
 msgid "Could not copy file."
 msgstr "ƒtƒ@ƒCƒ‹‚ðƒRƒs[‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptGPG.cpp:883
-#: Src/wptGPG.cpp:944
+#: Src/wptGPG.cpp:939
 msgid "Please choose your Secret Keyring"
 msgstr "”é–§ƒL[ƒŠƒ“ƒO‚ð‘I‚ñ‚Å‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptGPG.cpp:891
-#: Src/wptGPG.cpp:953
+#: Src/wptGPG.cpp:948
 msgid "Overwrite old secret keyring?"
 msgstr "ŒÃ‚¢”é–§ƒL[ƒŠƒ“ƒO‚ðã‘‚«‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptGPG.cpp:942 c:\oss\winpt\src\wptGPG.cpp:1004
-#: Src/wptGPG.cpp:999 Src/wptGPG.cpp:1088 Src/wptGPG.cpp:1101
+#: Src/wptGPG.cpp:994 Src/wptGPG.cpp:1083 Src/wptGPG.cpp:1096
 msgid "Backup"
 msgstr "ƒoƒbƒNƒAƒbƒv"
 
 # c:\oss\winpt\src\wptGPG.cpp:942
-#: Src/wptGPG.cpp:999
+#: Src/wptGPG.cpp:994
 #, c-format
 msgid "Backup keyring \"%s\" failed"
 msgstr "ˆÈ‰º‚̃oƒbƒNƒAƒbƒvƒL[ƒŠƒ“ƒO‚ª \"%s\" Ž¸”s‚µ‚Ü‚µ‚½B"
 
-#: Src/wptGPG.cpp:1089
+#: Src/wptGPG.cpp:1084
 #, c-format
 msgid ""
 "The backup drive '%s' does not seems to be accessable.\n"
@@ -2243,54 +2243,54 @@
 "‘±‚¯‚é‚̂Ƀhƒ‰ƒCƒu‚ð‘}“ü‚Ü‚½‚̓`ƒFƒbƒN‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptGPG.cpp:1004
-#: Src/wptGPG.cpp:1101
+#: Src/wptGPG.cpp:1096
 #, c-format
 msgid "Invalid backup mode %d"
 msgstr "–³Œø‚ȃoƒbƒNƒAƒbƒvƒ‚[ƒh %d"
 
-#: Src/wptGPGME.cpp:281
+#: Src/wptGPGME.cpp:284
 msgid "Error during verification process"
 msgstr "Šm”F’iŠK‚ŃGƒ‰[‚ª”­¶‚µ‚Ü‚µ‚½B"
 
 # c:\oss\winpt\src\wptClipVerifyDlg.cpp:122
-#: Src/wptGPGME.cpp:282
+#: Src/wptGPGME.cpp:285
 msgid "The signature is good"
 msgstr "—LŒø‚ȏ–¼"
 
 # c:\oss\winpt\src\wptClipVerifyDlg.cpp:122
-#: Src/wptGPGME.cpp:283
+#: Src/wptGPGME.cpp:286
 msgid "The signature is BAD!"
 msgstr "–³Œø‚ȏ–¼"
 
-#: Src/wptGPGME.cpp:284
+#: Src/wptGPGME.cpp:287
 msgid "The signature could not be checked due to a missing key"
 msgstr "‚È‚­‚È‚Á‚½ƒL[‚Ì‚½‚ߏ–¼‚ªƒ`ƒFƒbƒN‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:190
 # c:\oss\winpt\src\wptKeyManager.cpp:408
-#: Src/wptGPGME.cpp:285
+#: Src/wptGPGME.cpp:288
 msgid "No valid OpenPGP signature"
 msgstr "—LŒø‚ÈOpenPGP–¼‚ª‚ ‚è‚Ü‚¹‚ñB"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:232
-#: Src/wptGPGME.cpp:286
+#: Src/wptGPGME.cpp:289
 msgid "Signature Error"
 msgstr "–¼ƒGƒ‰["
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:232
-#: Src/wptGPGME.cpp:287
+#: Src/wptGPGME.cpp:290
 #, fuzzy
 msgid "Good signature (Expired Key)"
 msgstr "—LŒø‚ȏ–¼iŠúŒÀØ‚êƒL[j"
 
 # c:\oss\winpt\src\wptFileManager.cpp:1019
-#: Src/wptGPGME.cpp:288
+#: Src/wptGPGME.cpp:291
 #, fuzzy
 msgid "Good signature (Revoked Key)"
 msgstr "—LŒø‚ȏ–¼i–³Œø‚ȃL[j"
 
 # c:\oss\winpt\src\wptKeysignDlg.cpp:232
-#: Src/wptGPGME.cpp:289
+#: Src/wptGPGME.cpp:292
 #, fuzzy
 msgid "Good signature (Expired)"
 msgstr "—LŒø‚ȏ–¼iŠúŒÀØ‚êƒL[j"
@@ -2351,7 +2351,7 @@
 # c:\oss\winpt\src\wptKeyManagerDlg.cpp:1071
 # c:\oss\winpt\src\wptMainProc.cpp:572
 #: Src/wptGPGPrefsDlg.cpp:152 Src/wptKeyManagerDlg.cpp:1812
-#: Src/wptMainProc.cpp:579
+#: Src/wptMainProc.cpp:580
 msgid "GnuPG Preferences"
 msgstr "GnuPGƒJƒXƒ^ƒ€Ý’è"
 
@@ -2543,7 +2543,7 @@
 #: Src/wptKeyManagerDlg.cpp:1950 Src/wptKeyManagerDlg.cpp:2064
 #: Src/wptKeysigDlg.cpp:94 Src/wptKeysigDlg.cpp:106 Src/wptKeysigDlg.cpp:317
 #: Src/wptKeysigDlg.cpp:389 Src/wptKeysigDlg.cpp:399 Src/wptKeysigDlg.cpp:442
-#: Src/wptMainProc.cpp:393 Src/wptMainProc.cpp:542 Src/wptMainProc.cpp:550
+#: Src/wptMainProc.cpp:394 Src/wptMainProc.cpp:543 Src/wptMainProc.cpp:551
 msgid "Key Manager"
 msgstr "ƒL[ƒ}ƒl[ƒWƒƒ["
 
@@ -4541,7 +4541,7 @@
 
 # c:\oss\winpt\src\wptMainProc.cpp:566
 # c:\oss\winpt\src\wptPreferencesDlg.cpp:121
-#: Src/wptKeyManagerDlg.cpp:1806 Src/wptMainProc.cpp:573
+#: Src/wptKeyManagerDlg.cpp:1806 Src/wptMainProc.cpp:574
 #: Src/wptPreferencesDlg.cpp:139
 msgid "WinPT Preferences"
 msgstr "WinPTƒJƒXƒ^ƒ€Ý’è"
@@ -4604,7 +4604,7 @@
 
 # c:\oss\winpt\src\wptKeyPropsDlg.cpp:84 c:\oss\winpt\src\wptKeylist.cpp:701
 #: Src/wptKeyPropsDlg.cpp:72 Src/wptVerifyList.cpp:246
-#: Src/wptVerifyList.cpp:309
+#: Src/wptVerifyList.cpp:311
 msgid "Unknown"
 msgstr "–³–¼"
 
@@ -4793,7 +4793,7 @@
 msgstr "keyserver.confƒtƒ@ƒCƒ‹‚ð•Û‘¶‚·‚邱‚Æ‚ªo—ˆ‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyserver.cpp:436
-#: Src/wptKeyserver.cpp:678
+#: Src/wptKeyserver.cpp:718
 msgid ""
 "Invalid proxy configuration. You need to set a user and a password to use "
 "proxy authentication!"
@@ -4802,12 +4802,12 @@
 "ƒvƒƒNƒV[‚Ì”FØI"
 
 # c:\oss\winpt\src\wptKeyserver.cpp:438
-#: Src/wptKeyserver.cpp:681
+#: Src/wptKeyserver.cpp:721
 msgid "Proxy Error"
 msgstr "ƒvƒƒNƒV[ƒGƒ‰["
 
 # c:\oss\winpt\src\wptKeyserver.cpp:462
-#: Src/wptKeyserver.cpp:706
+#: Src/wptKeyserver.cpp:746
 msgid ""
 "All entries of this file must have a valid prefix.\n"
 "Currently HKP/HTTP, LDAP and FINGER are supported.\n"
@@ -4830,17 +4830,17 @@
 # c:\oss\winpt\src\wptKeyserverDlg.cpp:420
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:72
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:115
-#: Src/wptKeyserver.cpp:708
+#: Src/wptKeyserver.cpp:748
 msgid "Keyserver Error"
 msgstr "ƒL[ƒT[ƒo[ƒGƒ‰["
 
 # c:\oss\winpt\src\wptKeyserver.cpp:473
-#: Src/wptKeyserver.cpp:727
+#: Src/wptKeyserver.cpp:767
 msgid "The keyserver limit is exceeded"
 msgstr "ƒL[ƒT[ƒo[‚̐§ŒÀ‚ª’´‚¦‚Ä‚¢‚Ü‚·B"
 
 # c:\oss\winpt\src\wptKeyserverSearchDlg.cpp:59
-#: Src/wptKeyserver.cpp:728
+#: Src/wptKeyserver.cpp:768
 msgid "Keyserver Warning"
 msgstr "ƒL[ƒT[ƒo[Œx"
 
@@ -5061,11 +5061,11 @@
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:52
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:57
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:61
-#: Src/wptKeyserverDlg.cpp:696 Src/wptProxySettingsDlg.cpp:73
-#: Src/wptProxySettingsDlg.cpp:83 Src/wptProxySettingsDlg.cpp:88
-#: Src/wptProxySettingsDlg.cpp:95 Src/wptProxySettingsDlg.cpp:100
-#: Src/wptProxySettingsDlg.cpp:105 Src/wptProxySettingsDlg.cpp:164
-#: Src/wptProxySettingsDlg.cpp:199
+#: Src/wptKeyserverDlg.cpp:696 Src/wptProxySettingsDlg.cpp:103
+#: Src/wptProxySettingsDlg.cpp:113 Src/wptProxySettingsDlg.cpp:118
+#: Src/wptProxySettingsDlg.cpp:125 Src/wptProxySettingsDlg.cpp:130
+#: Src/wptProxySettingsDlg.cpp:135 Src/wptProxySettingsDlg.cpp:194
+#: Src/wptProxySettingsDlg.cpp:229
 msgid "Proxy Settings"
 msgstr "ƒvƒƒNƒV[Ý’è"
 
@@ -5411,45 +5411,45 @@
 msgstr "–¢’m‚ÌOpenPGPƒ^ƒCƒv"
 
 # c:\oss\winpt\src\wptMainProc.cpp:336
-#: Src/wptMainProc.cpp:344
+#: Src/wptMainProc.cpp:345
 msgid "Could not set current window mode hooks."
 msgstr ""
 "Œ»Ý‚̃EƒBƒ“ƒhƒ‚[ƒh‚ɃtƒbƒNƒXuhooksv‚ðƒZƒbƒg‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptMainProc.cpp:399
-#: Src/wptMainProc.cpp:396
+#: Src/wptMainProc.cpp:397
 msgid "About..."
 msgstr "WinPT‚ɂ‚¢‚Ä..."
 
 # c:\oss\winpt\src\wptMainProc.cpp:405 c:\oss\winpt\src\wptMainProc.cpp:409
-#: Src/wptMainProc.cpp:402 Src/wptMainProc.cpp:406
+#: Src/wptMainProc.cpp:403 Src/wptMainProc.cpp:407
 msgid "Decrypt/Verify"
 msgstr "•œ†/Šm”F"
 
-#: Src/wptMainProc.cpp:417
+#: Src/wptMainProc.cpp:418
 msgid "Current Window"
 msgstr "Œ»Ý‚̃EƒBƒ“ƒhƒE"
 
 # c:\oss\winpt\src\wptMainProc.cpp:465
-#: Src/wptMainProc.cpp:475
+#: Src/wptMainProc.cpp:476
 msgid "Remove all passphrases from cache?"
 msgstr "‚·‚ׂẴpƒXƒtƒŒ[ƒY‚ðƒLƒƒƒbƒVƒ…‚©‚çŠO‚¹‚Ü‚·B"
 
 # c:\oss\winpt\src\wptClipImportDlg.cpp:112
 # c:\oss\winpt\src\wptMainProc.cpp:466 c:\oss\winpt\src\wptProgressDlg.cpp:98
 # c:\oss\winpt\src\wptRegistry.cpp:133
-#: Src/wptMainProc.cpp:476 Src/wptProgressDlg.cpp:135 Src/wptRegistry.cpp:198
+#: Src/wptMainProc.cpp:477 Src/wptProgressDlg.cpp:136 Src/wptRegistry.cpp:274
 msgid "WinPT"
 msgstr "WinPT"
 
 # c:\oss\winpt\src\wptMainProc.cpp:476
-#: Src/wptMainProc.cpp:486
+#: Src/wptMainProc.cpp:487
 msgid "Could not access public keyring, exit WinPT?"
 msgstr ""
 "ŒöŠJƒL[ƒŠƒ“ƒO‚ðƒAƒNƒZƒX‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½BWinPT‚ðI—¹‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptMainProc.cpp:510
-#: Src/wptMainProc.cpp:519
+#: Src/wptMainProc.cpp:520
 #, c-format
 msgid ""
 "Make sure that the window contains text.\n"
@@ -5811,81 +5811,81 @@
 msgstr "isƒXƒŒƒbƒh‚ðì¬‚»‚邱‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:427
-#: Src/wptProxySettingsDlg.cpp:73
+#: Src/wptProxySettingsDlg.cpp:103
 msgid "Invalid host/IP address."
 msgstr "–³Œø‚ȃzƒXƒg‚Ü‚½‚ÍIPƒAƒhƒŒƒXB"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:200 c:\oss\winpt\src\wptKeygenDlg.cpp:377
-#: Src/wptProxySettingsDlg.cpp:82
+#: Src/wptProxySettingsDlg.cpp:112
 msgid "Please enter the proxy hostname."
 msgstr "ƒvƒƒNƒV[ƒzƒXƒg–¼‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptImportList.cpp:84
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:967
-#: Src/wptProxySettingsDlg.cpp:88
+#: Src/wptProxySettingsDlg.cpp:118
 msgid "Invalid port number."
 msgstr "–³Œø‚ȃ|[ƒg”ԍ†"
 
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:52
-#: Src/wptProxySettingsDlg.cpp:94
+#: Src/wptProxySettingsDlg.cpp:124
 msgid "Please select a value from 0-65535 for the port"
 msgstr "‚O`‚U‚T‚T‚R‚T‚͈̔͂̒l‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:56
-#: Src/wptProxySettingsDlg.cpp:99
+#: Src/wptProxySettingsDlg.cpp:129
 msgid "When you want to use authentication, please fill out both fields."
 msgstr "”FØ‚ðŽg—p‚·‚éê‡‚́A—¼•û‚̃tƒB[ƒ‹ƒh‚ðŽg‚Á‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptProxySettingsDlg.cpp:61
-#: Src/wptProxySettingsDlg.cpp:104
+#: Src/wptProxySettingsDlg.cpp:134
 msgid "Please enter a host name and a port."
 msgstr "ƒzƒXƒg–¼‚ƃ|[ƒg‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
-#: Src/wptProxySettingsDlg.cpp:158
+#: Src/wptProxySettingsDlg.cpp:188
 msgid "Proxy host name or IP address"
 msgstr "ƒvƒƒbƒNƒV[ƒzƒXƒg–¼‚Ü‚½‚ÍIPƒAƒhƒŒƒX"
 
-#: Src/wptProxySettingsDlg.cpp:159
+#: Src/wptProxySettingsDlg.cpp:189
 msgid "Server requires &authentication"
 msgstr "ƒT[ƒo[‚É”FØ‚ª•K—v‚Å‚·(&A)"
 
 # c:\oss\winpt\src\wptKeygenDlg.cpp:147
-#: Src/wptProxySettingsDlg.cpp:160
+#: Src/wptProxySettingsDlg.cpp:190
 msgid "User name"
 msgstr "ƒ†[ƒU[–¼"
 
-#: Src/wptProxySettingsDlg.cpp:161
+#: Src/wptProxySettingsDlg.cpp:191
 msgid "Password"
 msgstr "ƒpƒXƒ[ƒh"
 
 # c:\oss\winpt\src\wptKeyEditDlgs.cpp:473
-#: Src/wptProxySettingsDlg.cpp:162
+#: Src/wptProxySettingsDlg.cpp:192
 msgid "Proxy type"
 msgstr "ƒvƒƒNƒV[‚ÌŽí—Þ"
 
-#: Src/wptProxySettingsDlg.cpp:163
+#: Src/wptProxySettingsDlg.cpp:193
 msgid "Authentication"
 msgstr "”FØ"
 
-#: Src/wptProxySettingsDlg.cpp:198
+#: Src/wptProxySettingsDlg.cpp:228
 msgid "Please fill out all required fields for authentication."
 msgstr "”FØ‚·‚邽‚É‚ß‘S€–Ú‚ð“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B"
 
 # c:\oss\winpt\src\wptFileManagerDlg.cpp:249
-#: Src/wptRegistry.cpp:160
+#: Src/wptRegistry.cpp:225
 msgid "GPG Detached Signature"
 msgstr "ƒfƒ^ƒbƒ`ƒhGPG–¼"
 
-#: Src/wptRegistry.cpp:161
+#: Src/wptRegistry.cpp:226
 msgid "GPG Encrypted Data"
 msgstr "GPGˆÃ†‰»ƒf[ƒ^"
 
-#: Src/wptRegistry.cpp:162
+#: Src/wptRegistry.cpp:227
 msgid "GPG Armored Data"
 msgstr "GPGƒAƒ‹ƒ‚[ƒ‹ƒhƒf[ƒ^"
 
 # c:\oss\winpt\src\wptRegistry.cpp:131
-#: Src/wptRegistry.cpp:196
+#: Src/wptRegistry.cpp:272
 msgid ""
 "WinPT can register some GPG file types for you so they can be processed with "
 "a double click in the explorer.\n"
@@ -5896,12 +5896,12 @@
 "Œp‘±‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptRegistry.cpp:142
-#: Src/wptRegistry.cpp:204
+#: Src/wptRegistry.cpp:280
 msgid "WinPT WARNING"
 msgstr "WinPT Œx"
 
 # c:\oss\winpt\src\wptRegistry.cpp:143
-#: Src/wptRegistry.cpp:205
+#: Src/wptRegistry.cpp:281
 #, c-format
 msgid ""
 "It seems there was already a '%s' file type registered by another "
@@ -5912,7 +5912,7 @@
 "‚»‚ê‚ðã‘‚«‚µ‚Ü‚·‚©H"
 
 # c:\oss\winpt\src\wptRegistry.cpp:492
-#: Src/wptRegistry.cpp:595
+#: Src/wptRegistry.cpp:599
 msgid "Could not write to Registry."
 msgstr "ƒŒƒMƒXƒgƒŠ‚ɏ‘‚­‚±‚Æ‚ª‚Å‚«‚Ü‚¹‚ñ‚Å‚µ‚½B"
 

Modified: trunk/Po/pt_BR.po
===================================================================
--- trunk/Po/pt_BR.po	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Po/pt_BR.po	2006-10-21 18:08:57 UTC (rev 270)
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: WinPT 1.0.0\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-08-30 14:04+0200\n"
+"POT-Creation-Date: 2006-10-21 19:58+0200\n"
 "PO-Revision-Date: 2006-06-14 22:00-0300\n"
 "Last-Translator: Eduardo S. Dobay <edudobay at gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldp-br at bazar.conectiva.com.br>\n"
@@ -20,33 +20,33 @@
 "file."
 msgstr ""
 
-#: Src/WinPT.cpp:196
+#: Src/WinPT.cpp:197
 msgid "Could not create GPG home directory"
 msgstr "Não foi possível criar o diretório pessoal GPG"
 
-#: Src/WinPT.cpp:197 Src/WinPT.cpp:279 Src/WinPT.cpp:283 Src/WinPT.cpp:484
+#: Src/WinPT.cpp:198 Src/WinPT.cpp:277 Src/WinPT.cpp:281 Src/WinPT.cpp:484
 #: Src/WinPT.cpp:493 Src/WinPT.cpp:500 Src/WinPT.cpp:540 Src/WinPT.cpp:568
-#: Src/WinPT.cpp:577 Src/WinPT.cpp:581 Src/WinPT.cpp:598 Src/WinPT.cpp:666
-#: Src/WinPT.cpp:679 Src/WinPT.cpp:726 Src/WinPT.cpp:768 Src/WinPT.cpp:787
-#: Src/wptCommonDlg.cpp:224 Src/wptErrors.cpp:141 Src/wptGPG.cpp:926
-#: Src/wptGPG.cpp:938 Src/wptGPG.cpp:948 Src/wptGPG.cpp:959
-#: Src/wptMainProc.cpp:345 Src/wptMainProc.cpp:518
+#: Src/WinPT.cpp:577 Src/WinPT.cpp:581 Src/WinPT.cpp:598 Src/WinPT.cpp:665
+#: Src/WinPT.cpp:678 Src/WinPT.cpp:725 Src/WinPT.cpp:767 Src/WinPT.cpp:786
+#: Src/wptCommonDlg.cpp:224 Src/wptErrors.cpp:141 Src/wptGPG.cpp:921
+#: Src/wptGPG.cpp:933 Src/wptGPG.cpp:943 Src/wptGPG.cpp:954
+#: Src/wptMainProc.cpp:346 Src/wptMainProc.cpp:519
 msgid "WinPT Error"
 msgstr "Erro WinPT"
 
-#: Src/WinPT.cpp:228
+#: Src/WinPT.cpp:226
 msgid "No useable secret key found."
 msgstr "Não foi encontrada nenhuma chave secreta utilizável."
 
-#: Src/WinPT.cpp:229 Src/wptKeyPropsDlg.cpp:357 Src/wptKeyPropsDlg.cpp:364
+#: Src/WinPT.cpp:227 Src/wptKeyPropsDlg.cpp:357 Src/wptKeyPropsDlg.cpp:364
 msgid "WinPT Warning"
 msgstr "Aviso do WinPT"
 
-#: Src/WinPT.cpp:278
+#: Src/WinPT.cpp:276
 msgid "Could not read GnuPG version."
 msgstr "Não foi possível ler a versão do GnuPG"
 
-#: Src/WinPT.cpp:284
+#: Src/WinPT.cpp:282
 #, c-format
 msgid ""
 "Sorry, you need a newer GPG version.\n"
@@ -55,11 +55,11 @@
 "Desculpe, você precisa de uma versão mais nova do GPG.\n"
 "Versão GPG %d.%d.%d; versão requisitada do GPG "
 
-#: Src/WinPT.cpp:312
+#: Src/WinPT.cpp:310
 msgid "Failed to create WinPT directory"
 msgstr "Não foi possível criar o diretório do WinPT"
 
-#: Src/WinPT.cpp:313 Src/WinPT.cpp:330 Src/WinPT.cpp:341
+#: Src/WinPT.cpp:311 Src/WinPT.cpp:328 Src/WinPT.cpp:339
 #: Src/wptKeyManagerDlg.cpp:996 Src/wptKeyserver.cpp:634
 #: Src/wptKeyserverDlg.cpp:71 Src/wptKeyserverDlg.cpp:73
 #: Src/wptKeyserverDlg.cpp:190 Src/wptKeyserverDlg.cpp:198
@@ -72,7 +72,7 @@
 msgid "Keyserver"
 msgstr "Servidor de chaves"
 
-#: Src/WinPT.cpp:329
+#: Src/WinPT.cpp:327
 msgid "Failed to copy the keyserver.conf"
 msgstr "Não foi possível copiar keyserver.conf"
 
@@ -137,15 +137,15 @@
 msgid "Wipe Free Space"
 msgstr "Triturar espaço livre"
 
-#: Src/WinPT.cpp:665
+#: Src/WinPT.cpp:664
 msgid "Could not register window class"
 msgstr "Não foi possível registrar a classe de janela"
 
-#: Src/WinPT.cpp:679
+#: Src/WinPT.cpp:678
 msgid "Could not create window"
 msgstr "Não foi possível criar a janela"
 
-#: Src/WinPT.cpp:766
+#: Src/WinPT.cpp:765
 msgid ""
 "The keycache was not initialized or is empty.\n"
 "Please check your GPG config (keyrings, pathes...)"
@@ -153,7 +153,7 @@
 "O cache de chaves não foi inicializado ou está vazio.\n"
 "Por favor verifique sua configuração do GPG (chaveiros, diretórios...)"
 
-#: Src/WinPT.cpp:769
+#: Src/WinPT.cpp:768
 #, fuzzy
 msgid ""
 "It seems that GPG is not configured properly.\n"
@@ -162,7 +162,7 @@
 "Parece que o GPG não está configurado corretamente.\n"
 "Você deseja iniciar a janela de preferências do GPG?"
 
-#: Src/WinPT.cpp:788
+#: Src/WinPT.cpp:787
 #, c-format
 msgid ""
 "Default key (from the GPG config file) could not be found.\n"
@@ -185,7 +185,7 @@
 msgstr "Sobre o GnuPG"
 
 #: Src/wptAboutDlgs.cpp:89 Src/wptKeyManagerDlg.cpp:1890
-#: Src/wptMainProc.cpp:567
+#: Src/wptMainProc.cpp:568
 msgid "About WinPT"
 msgstr "Sobre o WinPT"
 
@@ -244,7 +244,7 @@
 msgid "&Help"
 msgstr "A&juda"
 
-#: Src/wptCardDlg.cpp:149 Src/wptMainProc.cpp:394
+#: Src/wptCardDlg.cpp:149 Src/wptMainProc.cpp:395
 msgid "Card Manager"
 msgstr "Gerenciador de cartões"
 
@@ -475,11 +475,11 @@
 msgid "PIN successfully changed."
 msgstr "PIN alterado com sucesso."
 
-#: Src/wptCardEdit.cpp:329
+#: Src/wptCardEdit.cpp:332
 msgid "Please insert the card and click OK or Cancel to abort."
 msgstr "Por favor insira o cartão e clique OK ou Cancelar para abortar."
 
-#: Src/wptCardEdit.cpp:330
+#: Src/wptCardEdit.cpp:333
 msgid "GPG Card Status"
 msgstr "Estado do cartão GPG"
 
@@ -493,7 +493,7 @@
 
 #: Src/wptClipDecryptDlg.cpp:60 Src/wptClipDecryptDlg.cpp:177
 #: Src/wptKeyRevokersDlg.cpp:129 Src/wptKeyRevokersDlg.cpp:173
-#: Src/wptVerifyList.cpp:257 Src/wptVerifyList.cpp:317
+#: Src/wptVerifyList.cpp:257 Src/wptVerifyList.cpp:319
 msgid "user ID not found"
 msgstr "ID de usuário não encontrada"
 
@@ -556,22 +556,22 @@
 #: Src/wptClipDecryptDlg.cpp:216 Src/wptClipVerifyDlg.cpp:154
 #: Src/wptClipVerifyDlg.cpp:162 Src/wptClipVerifyDlg.cpp:191
 #: Src/wptClipVerifyDlg.cpp:202 Src/wptClipVerifyDlg.cpp:220
-#: Src/wptClipVerifyDlg.cpp:232 Src/wptFileManager.cpp:1636
-#: Src/wptFileManager.cpp:1689 Src/wptFileManagerDlg.cpp:586
+#: Src/wptClipVerifyDlg.cpp:232 Src/wptFileManager.cpp:1670
+#: Src/wptFileManager.cpp:1723 Src/wptFileManagerDlg.cpp:586
 #: Src/wptFileVerifyDlg.cpp:83 Src/wptFileVerifyDlg.cpp:150
 #: Src/wptMainProc.cpp:208 Src/wptMainProc.cpp:224 Src/wptMainProc.cpp:234
-#: Src/wptMainProc.cpp:403
+#: Src/wptMainProc.cpp:404
 msgid "Verify"
 msgstr "Verificar"
 
 #: Src/wptClipDecryptDlg.cpp:223 Src/wptClipDecryptDlg.cpp:236
 #: Src/wptClipDecryptDlg.cpp:244 Src/wptClipDecryptDlg.cpp:251
-#: Src/wptClipDecryptDlg.cpp:253 Src/wptFileManager.cpp:1343
-#: Src/wptFileManager.cpp:1394
+#: Src/wptClipDecryptDlg.cpp:253 Src/wptFileManager.cpp:1377
+#: Src/wptFileManager.cpp:1428
 msgid "Decryption"
 msgstr "Decifragem"
 
-#: Src/wptClipDecryptDlg.cpp:237 Src/wptFileManager.cpp:1395
+#: Src/wptClipDecryptDlg.cpp:237 Src/wptFileManager.cpp:1429
 #, fuzzy, c-format
 msgid ""
 "Encrypted with %s key, ID 0x%s.%s\n"
@@ -621,12 +621,12 @@
 #: Src/wptClipEditDlg.cpp:131 Src/wptClipEditDlg.cpp:171
 #: Src/wptClipEditDlg.cpp:187 Src/wptClipEditDlg.cpp:257
 #: Src/wptClipEditDlg.cpp:262 Src/wptFileManagerDlg.cpp:220
-#: Src/wptMainProc.cpp:193 Src/wptMainProc.cpp:244 Src/wptMainProc.cpp:416
-#: Src/wptMainProc.cpp:499 Src/wptMainProc.cpp:504
+#: Src/wptMainProc.cpp:193 Src/wptMainProc.cpp:244 Src/wptMainProc.cpp:417
+#: Src/wptMainProc.cpp:500 Src/wptMainProc.cpp:505 Src/wptVerifyList.cpp:232
 msgid "Clipboard"
 msgstr "Área de transferência"
 
-#: Src/wptClipEditDlg.cpp:113 Src/wptFileManager.cpp:639
+#: Src/wptClipEditDlg.cpp:113 Src/wptFileManager.cpp:649
 msgid "File Open"
 msgstr "Abrir arquivo"
 
@@ -681,7 +681,7 @@
 msgid "&Decrypt"
 msgstr "&Decifrar"
 
-#: Src/wptClipEditDlg.cpp:221 Src/wptMainProc.cpp:561
+#: Src/wptClipEditDlg.cpp:221 Src/wptMainProc.cpp:562
 msgid "Clipboard Editor"
 msgstr "Editor da área de transferência"
 
@@ -743,8 +743,8 @@
 #: Src/wptClipSignDlg.cpp:157 Src/wptClipSignDlg.cpp:225
 #: Src/wptClipSignDlg.cpp:229 Src/wptClipSignDlg.cpp:249
 #: Src/wptClipSignDlg.cpp:260 Src/wptClipSignEncDlg.cpp:159
-#: Src/wptClipSignEncDlg.cpp:170 Src/wptFileManager.cpp:1153
-#: Src/wptFileManager.cpp:1169 Src/wptFileManager.cpp:1459
+#: Src/wptClipSignEncDlg.cpp:170 Src/wptFileManager.cpp:1187
+#: Src/wptFileManager.cpp:1203 Src/wptFileManager.cpp:1493
 #: Src/wptMainProc.cpp:179
 msgid "Signing"
 msgstr "Assinar"
@@ -1062,14 +1062,14 @@
 msgstr "Erro desconhecido=%d"
 
 #: Src/wptFileManager.cpp:130 Src/wptFileManager.cpp:152
-#: Src/wptFileManager.cpp:158 Src/wptFileManager.cpp:199
-#: Src/wptFileManager.cpp:324 Src/wptFileManager.cpp:735
-#: Src/wptFileManager.cpp:880 Src/wptFileManager.cpp:995
-#: Src/wptFileManager.cpp:1545 Src/wptFileManager.cpp:1572
-#: Src/wptFileManager.cpp:1591 Src/wptFileManager.cpp:1841
-#: Src/wptFileManager.cpp:1903 Src/wptFileManagerDlg.cpp:529
+#: Src/wptFileManager.cpp:158 Src/wptFileManager.cpp:198
+#: Src/wptFileManager.cpp:324 Src/wptFileManager.cpp:746
+#: Src/wptFileManager.cpp:914 Src/wptFileManager.cpp:1029
+#: Src/wptFileManager.cpp:1579 Src/wptFileManager.cpp:1606
+#: Src/wptFileManager.cpp:1625 Src/wptFileManager.cpp:1877
+#: Src/wptFileManager.cpp:1939 Src/wptFileManagerDlg.cpp:529
 #: Src/wptFileManagerDlg.cpp:633 Src/wptFileStatDlg.cpp:154
-#: Src/wptMainProc.cpp:392 Src/wptMDSumDlg.cpp:276 Src/wptMDSumDlg.cpp:281
+#: Src/wptMainProc.cpp:393 Src/wptMDSumDlg.cpp:276 Src/wptMDSumDlg.cpp:281
 msgid "File Manager"
 msgstr "Gerenciador de arquivos"
 
@@ -1095,7 +1095,7 @@
 msgid "Could not reset file attribute to normal."
 msgstr "Não foi possível reiniciar atributos do arquivo para normal."
 
-#: Src/wptFileManager.cpp:195
+#: Src/wptFileManager.cpp:194
 #, fuzzy
 msgid ""
 "Multi-Media files are already compressed, GPG would compress\n"
@@ -1108,26 +1108,26 @@
 "É possível desativar a compressão para esses arquivos.\n"
 "Você deseja desabilitá-la?"
 
-#: Src/wptFileManager.cpp:407 Src/wptKeyEditDlgs.cpp:1075
+#: Src/wptFileManager.cpp:414 Src/wptKeyEditDlgs.cpp:1075
 #: Src/wptVerifyList.cpp:169
 msgid "Status"
 msgstr "Status"
 
-#: Src/wptFileManager.cpp:408 Src/wptKeyEditDlgs.cpp:1156
+#: Src/wptFileManager.cpp:415 Src/wptKeyEditDlgs.cpp:1156
 #: Src/wptKeyRevokersDlg.cpp:57 Src/wptMDSumDlg.cpp:190
 #: Src/wptVerifyList.cpp:168
 msgid "Name"
 msgstr "Nome"
 
-#: Src/wptFileManager.cpp:409
+#: Src/wptFileManager.cpp:416
 msgid "Operation"
 msgstr "Operação"
 
-#: Src/wptFileManager.cpp:734
+#: Src/wptFileManager.cpp:745
 msgid "Please select a file."
 msgstr "Por favor selecione um arquivo."
 
-#: Src/wptFileManager.cpp:881
+#: Src/wptFileManager.cpp:915
 #, c-format
 msgid ""
 "\"%s\" does not seems to be a text file.\n"
@@ -1136,64 +1136,64 @@
 "\"%s\" não parece ser um arquivo de texto.\n"
 "Você realmente deseja fazer uma assinatura de texto puro?"
 
-#: Src/wptFileManager.cpp:996
+#: Src/wptFileManager.cpp:1030
 #, c-format
 msgid "\"%s\" does not exist"
 msgstr "\"%s\" não existe"
 
-#: Src/wptFileManager.cpp:1079 Src/wptFileStatDlg.cpp:283
+#: Src/wptFileManager.cpp:1113 Src/wptFileStatDlg.cpp:283
 #: Src/wptFileStatDlg.cpp:287
 msgid "File Status"
 msgstr "Estado do arquivo"
 
-#: Src/wptFileManager.cpp:1123
+#: Src/wptFileManager.cpp:1156
 #, fuzzy
 msgid "Enter Filename for Encrypted File"
 msgstr "Insira o nome para o arquivo cifrado"
 
-#: Src/wptFileManager.cpp:1152
+#: Src/wptFileManager.cpp:1186
 msgid "Could not get default secret key."
 msgstr "Não foi possível obter a chave secreta padrão."
 
-#: Src/wptFileManager.cpp:1183 Src/wptFileManager.cpp:1495
+#: Src/wptFileManager.cpp:1217 Src/wptFileManager.cpp:1529
 #: Src/wptFileManagerDlg.cpp:584 Src/wptMainProc.cpp:156
-#: Src/wptMainProc.cpp:400 Src/wptMainProc.cpp:407
+#: Src/wptMainProc.cpp:401 Src/wptMainProc.cpp:408
 msgid "Sign"
 msgstr "Assinar"
 
-#: Src/wptFileManager.cpp:1196 Src/wptFileManagerDlg.cpp:582
-#: Src/wptMainProc.cpp:399 Src/wptMainProc.cpp:404
+#: Src/wptFileManager.cpp:1230 Src/wptFileManagerDlg.cpp:582
+#: Src/wptMainProc.cpp:400 Src/wptMainProc.cpp:405
 msgid "Encrypt"
 msgstr "Cifrar"
 
-#: Src/wptFileManager.cpp:1223 Src/wptSymEnc.cpp:72 Src/wptSymEnc.cpp:92
+#: Src/wptFileManager.cpp:1257 Src/wptSymEnc.cpp:72 Src/wptSymEnc.cpp:92
 msgid "Symmetric Encryption"
 msgstr "Cifragem simétrica"
 
-#: Src/wptFileManager.cpp:1256 Src/wptFileManager.cpp:1261
-#: Src/wptMainProc.cpp:398 Src/wptMainProc.cpp:408
+#: Src/wptFileManager.cpp:1290 Src/wptFileManager.cpp:1295
+#: Src/wptMainProc.cpp:399 Src/wptMainProc.cpp:409
 msgid "Symmetric"
 msgstr "Simétrica"
 
-#: Src/wptFileManager.cpp:1261
+#: Src/wptFileManager.cpp:1295
 msgid "Encryption failed."
 msgstr "Cifragem falhou."
 
-#: Src/wptFileManager.cpp:1352
+#: Src/wptFileManager.cpp:1386
 msgid "Choose Filename for Output"
 msgstr "Escolha nome de arquivo para saída"
 
-#: Src/wptFileManager.cpp:1361
+#: Src/wptFileManager.cpp:1395
 #, fuzzy
 msgid "Enter Filename for Plaintext File"
 msgstr "Insira nome de arquivo de texto puro"
 
-#: Src/wptFileManager.cpp:1403 Src/wptFileManager.cpp:1423
+#: Src/wptFileManager.cpp:1437 Src/wptFileManager.cpp:1457
 #: Src/wptFileManagerDlg.cpp:583
 msgid "Decrypt"
 msgstr "Decifrar"
 
-#: Src/wptFileManager.cpp:1409
+#: Src/wptFileManager.cpp:1443
 #, c-format
 msgid ""
 "Decryption failed.\n"
@@ -1202,7 +1202,7 @@
 "Decifragem falhou.\n"
 "%s: não existe."
 
-#: Src/wptFileManager.cpp:1424
+#: Src/wptFileManager.cpp:1458
 #, c-format
 msgid ""
 "The original file name is '%s'.\n"
@@ -1213,32 +1213,32 @@
 "\n"
 "Você deseja usá-lo em vez de '%s'?"
 
-#: Src/wptFileManager.cpp:1472
+#: Src/wptFileManager.cpp:1506
 #, fuzzy
 msgid "Enter Filename for Signed File"
 msgstr "Insira nome para arquivo assinado"
 
-#: Src/wptFileManager.cpp:1571
+#: Src/wptFileManager.cpp:1605
 msgid "Could not find detached signature in the clipboard."
 msgstr "Não foi possível achar assinatura destacada na área de transferéncia."
 
-#: Src/wptFileManager.cpp:1591
+#: Src/wptFileManager.cpp:1625
 msgid "No files to check."
 msgstr "Sem arquivos para verificar."
 
-#: Src/wptFileManager.cpp:1608
+#: Src/wptFileManager.cpp:1642
 msgid "Select Data File"
 msgstr "Selecionar arquivo de dados"
 
-#: Src/wptFileManager.cpp:1610
+#: Src/wptFileManager.cpp:1644
 msgid "Selected Output File"
 msgstr "Selecionar arquivo de saída"
 
-#: Src/wptFileManager.cpp:1636
+#: Src/wptFileManager.cpp:1670
 msgid "Invalid file name. Exit"
 msgstr "Nome de arquivo inválido. Saindo"
 
-#: Src/wptFileManager.cpp:1734 Src/wptFileManager.cpp:1745
+#: Src/wptFileManager.cpp:1770 Src/wptFileManager.cpp:1781
 #: Src/wptFileManagerDlg.cpp:245 Src/wptImportList.cpp:404
 #: Src/wptImportList.cpp:411 Src/wptImportList.cpp:421
 #: Src/wptImportList.cpp:429 Src/wptImportList.cpp:438
@@ -1248,7 +1248,7 @@
 msgid "Import"
 msgstr "Importar"
 
-#: Src/wptFileManager.cpp:1742
+#: Src/wptFileManager.cpp:1778
 msgid ""
 "Key without a self signature was dectected!\n"
 "(This key is NOT usable for encryption, etc)\n"
@@ -1260,58 +1260,58 @@
 "\n"
 "Não foi possível importar essa(s) chave(s)!"
 
-#: Src/wptFileManager.cpp:1768 Src/wptKeyManager.cpp:282
+#: Src/wptFileManager.cpp:1804 Src/wptKeyManager.cpp:282
 #: Src/wptKeyManager.cpp:325 Src/wptKeyManager.cpp:360
 msgid "No key was selected for export."
 msgstr "Nenhuma chave selecionada para exportação."
 
-#: Src/wptFileManager.cpp:1769 Src/wptFileManager.cpp:1792
+#: Src/wptFileManager.cpp:1805 Src/wptFileManager.cpp:1828
 #: Src/wptKeyserverDlg.cpp:93
 msgid "Export"
 msgstr "Exportar"
 
-#: Src/wptFileManager.cpp:1777 Src/wptKeyManagerDlg.cpp:1850
+#: Src/wptFileManager.cpp:1813 Src/wptKeyManagerDlg.cpp:1850
 #: Src/wptKeyManagerDlg.cpp:1882
 msgid "Choose Name for Key File"
 msgstr "Escolher nome para arquivo de chaves"
 
-#: Src/wptFileManager.cpp:1796 Src/wptKeyEditDlgs.cpp:1055
+#: Src/wptFileManager.cpp:1832 Src/wptKeyEditDlgs.cpp:1055
 #: Src/wptKeyEditDlgs.cpp:1314 Src/wptKeyEditDlgs.cpp:1386
 #: Src/wptKeyserverDlg.cpp:105
 msgid "GnuPG status"
 msgstr "Estado do GnuPG"
 
-#: Src/wptFileManager.cpp:1796
+#: Src/wptFileManager.cpp:1832
 #, c-format
 msgid "Finished (Output: %s)"
 msgstr "Concluído (Saída: %s)"
 
-#: Src/wptFileManager.cpp:1842
+#: Src/wptFileManager.cpp:1878
 #, c-format
 msgid "%s: no valid OpenPGP data found."
 msgstr "%s: nenhum dado OpenPGP válido encontrado."
 
-#: Src/wptFileManager.cpp:1902
+#: Src/wptFileManager.cpp:1938
 msgid "Encrypting into a ZIP archive makes sense with multiple files"
 msgstr "Cifrar para um arquivo ZIP faz sentido com mais de um arquivo"
 
-#: Src/wptFileManager.cpp:1907
+#: Src/wptFileManager.cpp:1943
 msgid "Choose File Name for Output"
 msgstr "Escolher nome de arquivo para saída"
 
-#: Src/wptFileManager.cpp:1979
+#: Src/wptFileManager.cpp:2015
 msgid "Choose a Name for the Archive"
 msgstr "Escolher nome para arquivo comprimido"
 
-#: Src/wptFileManager.cpp:1982
+#: Src/wptFileManager.cpp:2018
 msgid "Invalid archive name. Exit."
 msgstr "Nome de arquivo inválido. Saindo."
 
-#: Src/wptFileManager.cpp:1983 Src/wptFileManager.cpp:1991
+#: Src/wptFileManager.cpp:2019 Src/wptFileManager.cpp:2027
 msgid "Encrypt Directory"
 msgstr "Cifrar diretório"
 
-#: Src/wptFileManager.cpp:1990
+#: Src/wptFileManager.cpp:2026
 msgid "Could not create zip archive."
 msgstr "Não foi possível criar o arquivo zip."
 
@@ -1415,13 +1415,13 @@
 msgid "%d Object(s) marked"
 msgstr "%d Objeto(s) marcado(s)"
 
-#: Src/wptFileManagerDlg.cpp:495 Src/wptMainProc.cpp:531
+#: Src/wptFileManagerDlg.cpp:495 Src/wptMainProc.cpp:532
 msgid "File Manager (use drag & drop to add files)"
 msgstr "Gerenciados de arquivos (arrastar & soltar para adicionar arquivos)"
 
 #: Src/wptFileManagerDlg.cpp:499 Src/wptKeyManagerDlg.cpp:967
 #: Src/wptKeyManagerDlg.cpp:972 Src/wptKeyManagerDlg.cpp:983
-#: Src/wptMainProc.cpp:395
+#: Src/wptMainProc.cpp:396
 msgid "Edit"
 msgstr "Editar"
 
@@ -1439,7 +1439,7 @@
 msgstr "As&sinar"
 
 #: Src/wptFileManagerDlg.cpp:506 Src/wptFileManagerDlg.cpp:585
-#: Src/wptMainProc.cpp:401 Src/wptMainProc.cpp:405
+#: Src/wptMainProc.cpp:402 Src/wptMainProc.cpp:406
 msgid "Sign && Encrypt"
 msgstr "Assinar e cifrar"
 
@@ -1459,7 +1459,7 @@
 msgid "E&xport"
 msgstr "E&xportar"
 
-#: Src/wptFileManagerDlg.cpp:511 Src/wptMainProc.cpp:397
+#: Src/wptFileManagerDlg.cpp:511 Src/wptMainProc.cpp:398
 msgid "Exit"
 msgstr "Sair"
 
@@ -1584,7 +1584,7 @@
 msgid "WinPT First Start"
 msgstr "Primeira execução do WinPT"
 
-#: Src/wptGPG.cpp:844
+#: Src/wptGPG.cpp:839
 msgid ""
 "The selected keyring has the read-only file\n"
 "attribute. In this state you do not have write\n"
@@ -1594,19 +1594,19 @@
 "somente-leitura. Nesse estado você não tem acesso de\n"
 "escrita. Você deseja remover o atributo?"
 
-#: Src/wptGPG.cpp:847
+#: Src/wptGPG.cpp:842
 msgid "GPG Information"
 msgstr "Informação do GPG"
 
-#: Src/wptGPG.cpp:851
+#: Src/wptGPG.cpp:846
 msgid "Could not reset read-only state."
 msgstr "Não foi possível remover o estado somente-leitura."
 
-#: Src/wptGPG.cpp:852
+#: Src/wptGPG.cpp:847
 msgid "GPG Error"
 msgstr "Erro do GPG"
 
-#: Src/wptGPG.cpp:864
+#: Src/wptGPG.cpp:859
 msgid ""
 "You do not have file access to modify the contents of\n"
 "one or both of the selected keyrings.\n"
@@ -1620,22 +1620,22 @@
 "Os chaveiros estão num estado somente-leitura que é provavelmente\n"
 "causado por outro programa que já abriu os arquivos.\n"
 
-#: Src/wptGPG.cpp:869
+#: Src/wptGPG.cpp:864
 msgid "GPG Warning"
 msgstr "Aviso do GPG"
 
-#: Src/wptGPG.cpp:893 Src/wptGPGPrefsDlg.cpp:222 Src/wptGPGPrefsDlg.cpp:228
+#: Src/wptGPG.cpp:888 Src/wptGPGPrefsDlg.cpp:222 Src/wptGPGPrefsDlg.cpp:228
 #: Src/wptGPGPrefsDlg.cpp:234 Src/wptGPGPrefsDlg.cpp:240
 #: Src/wptGPGPrefsDlg.cpp:245 Src/wptGPGPrefsDlg.cpp:250
 #: Src/wptGPGPrefsDlg.cpp:256 Src/wptGPGPrefsDlg.cpp:270
-#: Src/wptKeyEditDlgs.cpp:1713 Src/wptMainProc.cpp:418
+#: Src/wptKeyEditDlgs.cpp:1713 Src/wptMainProc.cpp:419
 #: Src/wptPreferencesDlg.cpp:225 Src/wptPreferencesDlg.cpp:270
 #: Src/wptPreferencesDlg.cpp:282 Src/wptPreferencesDlg.cpp:295
-#: Src/wptPreferencesDlg.cpp:326 Src/wptRegistry.cpp:595
+#: Src/wptPreferencesDlg.cpp:326 Src/wptRegistry.cpp:599
 msgid "Preferences"
 msgstr "Preferências"
 
-#: Src/wptGPG.cpp:894
+#: Src/wptGPG.cpp:889
 #, c-format
 msgid ""
 "%s does not exit.\n"
@@ -1644,40 +1644,40 @@
 "%s não existe.\n"
 "Você deseja criar esse diretório?"
 
-#: Src/wptGPG.cpp:922
+#: Src/wptGPG.cpp:917
 msgid "Please choose your Public Keyring"
 msgstr "Por favor escolha seu chaveiro público"
 
-#: Src/wptGPG.cpp:925 Src/wptGPG.cpp:947
+#: Src/wptGPG.cpp:920 Src/wptGPG.cpp:942
 msgid "No keyring was chosen. Exit."
 msgstr "Nenhum chaveiro foi escolhido. Saindo."
 
-#: Src/wptGPG.cpp:932
+#: Src/wptGPG.cpp:927
 msgid "Overwrite old public keyring?"
 msgstr "Sobrescrever antigo chaveiro público?"
 
-#: Src/wptGPG.cpp:938 Src/wptGPG.cpp:959
+#: Src/wptGPG.cpp:933 Src/wptGPG.cpp:954
 msgid "Could not copy file."
 msgstr "Não foi possível copiar o arquivo."
 
-#: Src/wptGPG.cpp:944
+#: Src/wptGPG.cpp:939
 msgid "Please choose your Secret Keyring"
 msgstr "Por favor escolha seu chaveiro privado"
 
-#: Src/wptGPG.cpp:953
+#: Src/wptGPG.cpp:948
 msgid "Overwrite old secret keyring?"
 msgstr "Sobrescrever antigo chaveiro privado?"
 
-#: Src/wptGPG.cpp:999 Src/wptGPG.cpp:1088 Src/wptGPG.cpp:1101
+#: Src/wptGPG.cpp:994 Src/wptGPG.cpp:1083 Src/wptGPG.cpp:1096
 msgid "Backup"
 msgstr "Backup"
 
-#: Src/wptGPG.cpp:999
+#: Src/wptGPG.cpp:994
 #, c-format
 msgid "Backup keyring \"%s\" failed"
 msgstr "Backup do chaveiro \"%s\" falhou"
 
-#: Src/wptGPG.cpp:1089
+#: Src/wptGPG.cpp:1084
 #, fuzzy, c-format
 msgid ""
 "The backup drive '%s' does not seems to be accessable.\n"
@@ -1686,50 +1686,50 @@
 "O drive de backup '%s' não parece estar acessível.\n"
 "Por favor insira/verifique o drive para continuar."
 
-#: Src/wptGPG.cpp:1101
+#: Src/wptGPG.cpp:1096
 #, c-format
 msgid "Invalid backup mode %d"
 msgstr "Modo de backup %d inválido"
 
-#: Src/wptGPGME.cpp:281
+#: Src/wptGPGME.cpp:284
 #, fuzzy
 msgid "Error during verification process"
 msgstr "Erro durante o processo de verificação."
 
-#: Src/wptGPGME.cpp:282
+#: Src/wptGPGME.cpp:285
 #, fuzzy
 msgid "The signature is good"
 msgstr "A assinatura está boa."
 
-#: Src/wptGPGME.cpp:283
+#: Src/wptGPGME.cpp:286
 msgid "The signature is BAD!"
 msgstr "A assinatura está RUIM!"
 
-#: Src/wptGPGME.cpp:284
+#: Src/wptGPGME.cpp:287
 #, fuzzy
 msgid "The signature could not be checked due to a missing key"
 msgstr "A assinatura não pôde ser verificada devido à falta de uma chave."
 
-#: Src/wptGPGME.cpp:285
+#: Src/wptGPGME.cpp:288
 #, fuzzy
 msgid "No valid OpenPGP signature"
 msgstr "Assinatura OpenPGP inválida."
 
-#: Src/wptGPGME.cpp:286
+#: Src/wptGPGME.cpp:289
 msgid "Signature Error"
 msgstr "Erro na assinatura"
 
-#: Src/wptGPGME.cpp:287
+#: Src/wptGPGME.cpp:290
 #, fuzzy
 msgid "Good signature (Expired Key)"
 msgstr "Assinatura boa (chave expirada)"
 
-#: Src/wptGPGME.cpp:288
+#: Src/wptGPGME.cpp:291
 #, fuzzy
 msgid "Good signature (Revoked Key)"
 msgstr "Assinatura boa (chave revogada)"
 
-#: Src/wptGPGME.cpp:289
+#: Src/wptGPGME.cpp:292
 #, fuzzy
 msgid "Good signature (Expired)"
 msgstr "Assinatura boa (chave expirada)"
@@ -1777,7 +1777,7 @@
 "Tem certeza?"
 
 #: Src/wptGPGPrefsDlg.cpp:152 Src/wptKeyManagerDlg.cpp:1812
-#: Src/wptMainProc.cpp:579
+#: Src/wptMainProc.cpp:580
 msgid "GnuPG Preferences"
 msgstr "Preferências do GnuPG"
 
@@ -1886,7 +1886,7 @@
 #: Src/wptKeyManagerDlg.cpp:1950 Src/wptKeyManagerDlg.cpp:2064
 #: Src/wptKeysigDlg.cpp:94 Src/wptKeysigDlg.cpp:106 Src/wptKeysigDlg.cpp:317
 #: Src/wptKeysigDlg.cpp:389 Src/wptKeysigDlg.cpp:399 Src/wptKeysigDlg.cpp:442
-#: Src/wptMainProc.cpp:393 Src/wptMainProc.cpp:542 Src/wptMainProc.cpp:550
+#: Src/wptMainProc.cpp:394 Src/wptMainProc.cpp:543 Src/wptMainProc.cpp:551
 msgid "Key Manager"
 msgstr "Gerenciador de chaves"
 
@@ -3433,7 +3433,7 @@
 msgid "Keyserver Access"
 msgstr "Acesso ao servidor de chaves"
 
-#: Src/wptKeyManagerDlg.cpp:1806 Src/wptMainProc.cpp:573
+#: Src/wptKeyManagerDlg.cpp:1806 Src/wptMainProc.cpp:574
 #: Src/wptPreferencesDlg.cpp:139
 msgid "WinPT Preferences"
 msgstr "Preferências do WinPT"
@@ -3486,7 +3486,7 @@
 msgstr "Eu confio definitivamente (implícito)"
 
 #: Src/wptKeyPropsDlg.cpp:72 Src/wptVerifyList.cpp:246
-#: Src/wptVerifyList.cpp:309
+#: Src/wptVerifyList.cpp:311
 msgid "Unknown"
 msgstr "Desconhecida"
 
@@ -3660,7 +3660,7 @@
 msgid "Could not save keyserver.conf file"
 msgstr "Não foi possível salvar o arquivo keyserver.conf"
 
-#: Src/wptKeyserver.cpp:678
+#: Src/wptKeyserver.cpp:718
 #, fuzzy
 msgid ""
 "Invalid proxy configuration. You need to set a user and a password to use "
@@ -3669,11 +3669,11 @@
 "Configuração de proxy inválida. Você precisa definir um usuário e uma senha "
 "para usar a autenticação de proxy!"
 
-#: Src/wptKeyserver.cpp:681
+#: Src/wptKeyserver.cpp:721
 msgid "Proxy Error"
 msgstr "Erro do proxy"
 
-#: Src/wptKeyserver.cpp:706
+#: Src/wptKeyserver.cpp:746
 msgid ""
 "All entries of this file must have a valid prefix.\n"
 "Currently HKP/HTTP, LDAP and FINGER are supported.\n"
@@ -3681,15 +3681,15 @@
 "Todas as entradas deste arquivo devem ter um prefixo válido.\n"
 "Atualmente, são suportados HKP/HTTP, LDAP e FINGER.\n"
 
-#: Src/wptKeyserver.cpp:708
+#: Src/wptKeyserver.cpp:748
 msgid "Keyserver Error"
 msgstr "Erro do servidor de chaves"
 
-#: Src/wptKeyserver.cpp:727
+#: Src/wptKeyserver.cpp:767
 msgid "The keyserver limit is exceeded"
 msgstr "O limite do servidor de chaves foi excedido"
 
-#: Src/wptKeyserver.cpp:728
+#: Src/wptKeyserver.cpp:768
 msgid "Keyserver Warning"
 msgstr "Aviso do servidor de chaves"
 
@@ -3832,11 +3832,11 @@
 msgid "&Edit"
 msgstr "&Editar"
 
-#: Src/wptKeyserverDlg.cpp:696 Src/wptProxySettingsDlg.cpp:73
-#: Src/wptProxySettingsDlg.cpp:83 Src/wptProxySettingsDlg.cpp:88
-#: Src/wptProxySettingsDlg.cpp:95 Src/wptProxySettingsDlg.cpp:100
-#: Src/wptProxySettingsDlg.cpp:105 Src/wptProxySettingsDlg.cpp:164
-#: Src/wptProxySettingsDlg.cpp:199
+#: Src/wptKeyserverDlg.cpp:696 Src/wptProxySettingsDlg.cpp:103
+#: Src/wptProxySettingsDlg.cpp:113 Src/wptProxySettingsDlg.cpp:118
+#: Src/wptProxySettingsDlg.cpp:125 Src/wptProxySettingsDlg.cpp:130
+#: Src/wptProxySettingsDlg.cpp:135 Src/wptProxySettingsDlg.cpp:194
+#: Src/wptProxySettingsDlg.cpp:229
 msgid "Proxy Settings"
 msgstr "Configurações de proxy"
 
@@ -4131,35 +4131,35 @@
 msgid "Unknown OpenPGP type."
 msgstr "Tipo desconhecido ao OpenPGP."
 
-#: Src/wptMainProc.cpp:344
+#: Src/wptMainProc.cpp:345
 msgid "Could not set current window mode hooks."
 msgstr ""
 
-#: Src/wptMainProc.cpp:396
+#: Src/wptMainProc.cpp:397
 msgid "About..."
 msgstr "Sobre..."
 
-#: Src/wptMainProc.cpp:402 Src/wptMainProc.cpp:406
+#: Src/wptMainProc.cpp:403 Src/wptMainProc.cpp:407
 msgid "Decrypt/Verify"
 msgstr "Decifrar/Verificar"
 
-#: Src/wptMainProc.cpp:417
+#: Src/wptMainProc.cpp:418
 msgid "Current Window"
 msgstr "Janela atual"
 
-#: Src/wptMainProc.cpp:475
+#: Src/wptMainProc.cpp:476
 msgid "Remove all passphrases from cache?"
 msgstr "Remover todas as frases secretas do cache?"
 
-#: Src/wptMainProc.cpp:476 Src/wptProgressDlg.cpp:135 Src/wptRegistry.cpp:198
+#: Src/wptMainProc.cpp:477 Src/wptProgressDlg.cpp:136 Src/wptRegistry.cpp:274
 msgid "WinPT"
 msgstr ""
 
-#: Src/wptMainProc.cpp:486
+#: Src/wptMainProc.cpp:487
 msgid "Could not access public keyring, exit WinPT?"
 msgstr "Não foi possível acessar o chaveiro público. Sair do WinPT?"
 
-#: Src/wptMainProc.cpp:519
+#: Src/wptMainProc.cpp:520
 #, c-format
 msgid ""
 "Make sure that the window contains text.\n"
@@ -4465,72 +4465,72 @@
 msgid "Could not create progress thread."
 msgstr ""
 
-#: Src/wptProxySettingsDlg.cpp:73
+#: Src/wptProxySettingsDlg.cpp:103
 msgid "Invalid host/IP address."
 msgstr "Servidor/endereço IP inválido."
 
-#: Src/wptProxySettingsDlg.cpp:82
+#: Src/wptProxySettingsDlg.cpp:112
 msgid "Please enter the proxy hostname."
 msgstr "Por favor insira o nome do servidor proxy."
 
-#: Src/wptProxySettingsDlg.cpp:88
+#: Src/wptProxySettingsDlg.cpp:118
 msgid "Invalid port number."
 msgstr "Número de porta inválido."
 
-#: Src/wptProxySettingsDlg.cpp:94
+#: Src/wptProxySettingsDlg.cpp:124
 msgid "Please select a value from 0-65535 for the port"
 msgstr "Por favor insira um valor entre 0 e 65535 para a porta"
 
-#: Src/wptProxySettingsDlg.cpp:99
+#: Src/wptProxySettingsDlg.cpp:129
 msgid "When you want to use authentication, please fill out both fields."
 msgstr ""
 "Quando você desejar usar autenticação, por favor preencha ambos os campos."
 
-#: Src/wptProxySettingsDlg.cpp:104
+#: Src/wptProxySettingsDlg.cpp:134
 msgid "Please enter a host name and a port."
 msgstr "Por favor insira um endereço e uma porta."
 
-#: Src/wptProxySettingsDlg.cpp:158
+#: Src/wptProxySettingsDlg.cpp:188
 msgid "Proxy host name or IP address"
 msgstr "Nome ou endereço IP do proxy"
 
-#: Src/wptProxySettingsDlg.cpp:159
+#: Src/wptProxySettingsDlg.cpp:189
 msgid "Server requires &authentication"
 msgstr "Servidor requer &autenticação"
 
-#: Src/wptProxySettingsDlg.cpp:160
+#: Src/wptProxySettingsDlg.cpp:190
 msgid "User name"
 msgstr "Nome de usuário"
 
-#: Src/wptProxySettingsDlg.cpp:161
+#: Src/wptProxySettingsDlg.cpp:191
 msgid "Password"
 msgstr "Senha"
 
-#: Src/wptProxySettingsDlg.cpp:162
+#: Src/wptProxySettingsDlg.cpp:192
 msgid "Proxy type"
 msgstr "Tipo de proxy"
 
-#: Src/wptProxySettingsDlg.cpp:163
+#: Src/wptProxySettingsDlg.cpp:193
 msgid "Authentication"
 msgstr "Autenticação"
 
-#: Src/wptProxySettingsDlg.cpp:198
+#: Src/wptProxySettingsDlg.cpp:228
 msgid "Please fill out all required fields for authentication."
 msgstr "Por favor preencha todos os campos requeridos para autenticação."
 
-#: Src/wptRegistry.cpp:160
+#: Src/wptRegistry.cpp:225
 msgid "GPG Detached Signature"
 msgstr "Assinatura destacada GPG"
 
-#: Src/wptRegistry.cpp:161
+#: Src/wptRegistry.cpp:226
 msgid "GPG Encrypted Data"
 msgstr "Dados cifrados GPG"
 
-#: Src/wptRegistry.cpp:162
+#: Src/wptRegistry.cpp:227
 msgid "GPG Armored Data"
 msgstr "Dados protegidos GPG"
 
-#: Src/wptRegistry.cpp:196
+#: Src/wptRegistry.cpp:272
 msgid ""
 "WinPT can register some GPG file types for you so they can be processed with "
 "a double click in the explorer.\n"
@@ -4540,11 +4540,11 @@
 "ser processados com um clique duplo no 'explorer'.\n"
 "Você deseja continuar?"
 
-#: Src/wptRegistry.cpp:204
+#: Src/wptRegistry.cpp:280
 msgid "WinPT WARNING"
 msgstr "AVISO do WinPT"
 
-#: Src/wptRegistry.cpp:205
+#: Src/wptRegistry.cpp:281
 #, c-format
 msgid ""
 "It seems there was already a '%s' file type registered by another "
@@ -4554,7 +4554,7 @@
 "Parece que já há um tipo de arquivo '%s' registrado por outra aplicação.\n"
 "Você deseja sobrescrevê-lo?"
 
-#: Src/wptRegistry.cpp:595
+#: Src/wptRegistry.cpp:599
 msgid "Could not write to Registry."
 msgstr "Não foi possível escrever no Registro."
 

Modified: trunk/Src/ChangeLog
===================================================================
--- trunk/Src/ChangeLog	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/ChangeLog	2006-10-21 18:08:57 UTC (rev 270)
@@ -1,3 +1,17 @@
+2006-10-21  Timo Schulz  <twoaday at freakmail.de>
+
+	* wptKeyserver.cpp (get_reg_proxy_prefs): Load the protocol
+	and store it.
+	
+2006-10-04  Timo Schulz  <twoaday at freakmail.de>
+
+	* wptFileManager.cpp (fm_check_armor_type): Remove space in
+	search pattern string.
+	(fm_check_for_entry): Case insentensive search.
+	(fm_add_dir_files): Use W32 API directly.
+	* wptVerifyList.cpp (verlist_add_sig_log): Use proper icon.
+	* wptGPGUtil.cpp (get_gpg_version): Cleanups.
+	
 2006-08-30  Timo Schulz  <twoaday at freakmail.de>
 
 	* wptRegistry.cpp (get_reg_entry): Do not use static buffers.

Modified: trunk/Src/WinPT.cpp
===================================================================
--- trunk/Src/WinPT.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/WinPT.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -71,10 +71,10 @@
     err = DialogBoxParam (glob_hinst, (LPCSTR)IDD_WINPT_KEYCACHE, hwnd,
 		    keycache_dlg_proc, (LPARAM)&rcs);
     if (err) {
-	char *cfg = get_gnupg_config ();
-	if (cfg && check_gnupg_options (cfg, 0) == WPTERR_FILE_EXIST)
+	char *cfgf = get_gnupg_config ();
+	if (cfgf && check_gnupg_options (cfgf, 0) == WPTERR_FILE_EXIST)
 	    msg_box (NULL, _("The gpg.conf contains at least one argument which points to a non-existing file."), "WinPT", MB_ERR);
-	free_if_alloc (cfg);
+	free_if_alloc (cfgf);
 	return -1;
     }
     return 0;
@@ -103,7 +103,7 @@
 static void
 load_gettext (void)
 {
-    char *nls = NULL;
+    char *nls;
 
     /* Return the name of the gettext language file. */
     nls = get_reg_entry_mo ();
@@ -131,7 +131,7 @@
 	}
     }
     free_if_alloc (p);
-    p = get_reg_entry_gpg4win (NULL);    
+    p = get_reg_entry_gpg4win (NULL);
     if (!p || dir_exist_check (p) != 0) {
 	free_if_alloc (p);
 	p = get_reg_entry_gpg ("HomeDir");
@@ -174,6 +174,7 @@
     SECURITY_ATTRIBUTES sec_attr;
     char *p;
     char *pkr;
+    int err = 0;
 
     p = get_reg_entry_gpg4win ("gpg.exe");
     if (!p)
@@ -202,13 +203,10 @@
     check_readonly_attr (p);
     pkr = make_filename (p, "pubring", "gpg");
     free_if_alloc (p);
-    if (!pkr)
-	return -1;
-    if (get_file_size (pkr) == 0) {
-	free_if_alloc (pkr);
-	return -1;
-    }
-    return 0;
+    if (get_file_size (pkr) == 0)
+	err = -1;
+    free_if_alloc (pkr);
+    return err;
 }
 
 
@@ -236,8 +234,8 @@
 static const char*
 get_prog_part (const char * fname, int use_cwd)
 {
-    static char program[512];
-    char currdir[256];
+    static char program[2*MAX_PATH+1];
+    char currdir[MAX_PATH+1];
     char *cmd = NULL;
     int j;
 	
@@ -250,7 +248,7 @@
     } 
     else {
 	cmd = GetCommandLine ();
-	if (cmd == NULL)
+	if (!cmd)
 	    return NULL;
 	strncpy (currdir, cmd, sizeof (currdir)-1);
 	j = strlen (currdir);
@@ -286,7 +284,7 @@
 		   ma, mi, pa);
 	return false;
     }
-    /* We enable smartcard support for GPG: >= 2 or >= 1.4.3 */
+    /* Enable smart card support for GPG 2 or >= 1.4 */
     if ((ma > 1 || pa >= 4) && pcsc_available ())
 	scard_support = 1;
 
@@ -480,7 +478,9 @@
     ec = get_file_version ("PTD.dll", &ptdver[0], &ptdver[1], 
 				 &ptdver[2], &ptdver[3]);
     
-    if (!ec && (ptdver[0] != ver[0] || ptdver[1] != ver[1]|| ptdver[2] != ver[2])) {
+    if (!ec && (ptdver[0] != ver[0] || 
+	        ptdver[1] != ver[1] || 
+		ptdver[2] != ver[2])) {
 	log_box (_("WinPT Error"), MB_ERR, 
 		 _("The PTD.dll file has a different version than WinPT.exe\n"
 		   "Please update the PTD.dll to version %d.%d.%d"),
@@ -551,7 +551,7 @@
 	    if (!p)
 		BUG (0);
 	    n = p - s;
-	    if (n) {
+	    if (n > 0) {
 		char *file = new char[n+1];
 		if (!file)
 		    BUG (NULL);
@@ -630,8 +630,7 @@
     if (cmdline && (stristr (cmdline, "--keymanager")
 	        || stristr (cmdline, "--cardmanager"))) {
 	/* If an instance of WinPT is running, just send the command
-	   to open the key manager. Otherwise start a new instance.
-	 */
+	   to open the key manager. Otherwise start a new instance. */
 	HWND tray = FindWindow ("WinPT", "WinPT");
 	if (stristr (cmdline, "keymanager"))
 	    start_manager = ID_WINPT_KEY;

Modified: trunk/Src/wptCardEdit.cpp
===================================================================
--- trunk/Src/wptCardEdit.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptCardEdit.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -135,7 +135,7 @@
 	CARD_Fpr,
 	CARD_FprTime
     };
-    enum rectype_t rectype = (rectype_t)0;
+    enum rectype_t rectype = CARD_None;
     char *p, *pend;
     int field = 0;
 
@@ -315,10 +315,12 @@
 {
     static int wait_card=0;
     GpgCardEdit *ce = (GpgCardEdit *)opaque;
-    const char *s="";    
+    const char *s = "";
     DWORD n;
-        
 
+    if (!ce)
+	return gpg_error (GPG_ERR_INV_VALUE);
+
     if (code == GPGME_STATUS_CARDCTRL) {
 	if (!strcmp (key, "5"))
 	    ce->setResult (GPG_CARDRES_NOCARD);
@@ -326,11 +328,13 @@
 	    wait_card = 1;
     }
     if (wait_card && !strcmp (key, "cardctrl.insert_card.okay")) {
+	/* :TODO: show card ID */
 	n = MessageBox (NULL, _("Please insert the card and click OK or Cancel to abort."),
 			_("GPG Card Status"), MB_ICONQUESTION|MB_OKCANCEL);
 	if (n == IDCANCEL) {
+	    s = "c\n";
 	    ce->setResult (GPG_CARDRES_CANCEL);
-	    WriteFile ((HANDLE)fd, "c\n", 2, &n, NULL);
+	    WriteFile ((HANDLE)fd, s, strlen (s), &n, NULL);
 	    wait_card = 0;
 	}
     }
@@ -390,6 +394,7 @@
     this->pin = _pin;
 }
 
+
 /* Set the admin PIN for the object to @admin_pin. */
 void
 GpgCardEdit::setAdminPIN (const char *_admin_pin)
@@ -432,11 +437,12 @@
 {
     gpgme_data_t out = NULL;
     gpgme_error_t err;
-    gpg_card_t card=NULL;
+    gpg_card_t card = NULL;
     char buf[200];
 
     if (!r_card)
 	return gpg_error (GPG_ERR_INV_ARG);
+    *r_card = NULL;
 
     err = gpg_card_new (&card);
     if (err)
@@ -482,9 +488,9 @@
    @valid: how long is the key valid in days.
    Return value: 0 on success. */
 gpgme_error_t
-GpgCardEdit::genKey (int flags, const char *name,
-		     const char *email, const char *comment, long valid,
-		     char **r_key_fpr)
+GpgCardEdit::genKey (int flags, 
+		     const char *name, const char *email, const char *comment, 
+		     long valid, char **r_key_fpr)
 {
     gpgme_error_t err;
 
@@ -553,6 +559,7 @@
 }
 
 
+/* Update the given and the surname on the card. */
 gpgme_error_t
 GpgCardEdit::updateName (const char *given, const char *sur)
 {
@@ -568,7 +575,8 @@
     err = gpg_card_edit (ctx, this);
     return err;
 }
-    
+
+/* Update the given URL on the card. */
 gpgme_error_t
 GpgCardEdit::updateURL (const char *_url)
 {
@@ -600,6 +608,7 @@
     return err;
 }
 
+
 gpgme_error_t
 GpgCardEdit::updateSex (char sex)
 {

Modified: trunk/Src/wptCardEditCB.cpp
===================================================================
--- trunk/Src/wptCardEditCB.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptCardEditCB.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -275,7 +275,8 @@
 	    if (c->edit.sex != 'M'
 		&& c->edit.sex != 'F'
 		&& c->edit.sex != ' ') {
-		buf[0] = ' '; buf[1] = 0;
+		buf[0] = ' '; 
+		buf[1] = 0;
 	    }
 	    else {
 		buf[0] = c->edit.sex; 

Modified: trunk/Src/wptFileManager.cpp
===================================================================
--- trunk/Src/wptFileManager.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptFileManager.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -190,8 +190,7 @@
     int ans=0;
 
     i = get_reg_winpt_single (CFG_NOZIP_MMEDIA);
-    if (i == -1) 
-    {
+    if (i == -1) {
 	ans = msg_box (NULL, _("Multi-Media files are already compressed, GPG would compress\n"
 	                       "them anyway and this takes a lot of time.\n"
 			       "It is possible to disable compression for these files.\n"
@@ -255,7 +254,7 @@
 fm_check_armor_type (const char *fname, int *r_type)
 {
     FILE *fp;
-    char header[768], *p;
+    char header[512], *p;
     
     if (r_type)
 	*r_type = PGP_NONE;
@@ -269,7 +268,7 @@
 
     if (strncmp (header, "-----", 5))
 	goto leave;
-    if (strstr( header, "BEGIN PGP PUBLIC KEY" )) {
+    if (strstr (header, "BEGIN PGP PUBLIC KEY" )) {
 	if (r_type) *r_type = PGP_PUBKEY;
 	return "PUBKEY";
     }
@@ -315,6 +314,7 @@
 	return NULL;
     }
 
+    /* to avoid lengthy operations on floppy disks, we use a quick check. */
     if (is_floppy_disc (fname))	
 	return fm_check_armor_type (fname, r_type);
 
@@ -339,26 +339,33 @@
     if (!pkt)
 	BUG (NULL);
     gpg_init_packet (pkt);
+    /* XXX: for larger files, we could just look for the first ~3 packets
+            and stop if we found a packet which were sufficient to idenitfy
+	    the file contents. */
     while (!(rc = gpg_parse_packet (inp, pkt))) {
 	switch (pkt->pkttype) {
 	case PKT_PUBKEY_ENC:
 	    s = "ENCRYPTED";rc = -2; 
 	    if (r_type) *r_type = PGP_MESSAGE;
 	    break;
+
 	case PKT_SYMKEY_ENC:
 	case PKT_ENCRYPTED:
 	    s = "SYMKEYENC";rc = -2; 
 	    if (r_type) *r_type = PGP_MESSAGE;
 	    break;
+
 	case PKT_SIGNATURE:
 	case PKT_ONEPASS_SIG:
 	    s = "SIGNED";   rc = -2; 
 	    if (r_type) *r_type = PGP_SIG;
 	    break;
+
 	case PKT_PUBLIC_KEY:
 	    s = "PUBKEY";   rc = -2; 
 	    if (r_type) *r_type = PGP_PUBKEY;
 	    break;
+
 	case PKT_SECRET_KEY:
 	    s = "SECKEY";   rc = -2;
 	    if (r_type) *r_type = PGP_SECKEY;
@@ -366,10 +373,10 @@
 
 	case PKT_COMPRESSED:
 	    /* If we only find 1 packet and it is compressed,
-	       we assume a compress one-pass signature. */
+	       we assume a compressed one-pass signature. */
 	    if (count != 0)
 		break;
-	    s = "SIGNED";   rc = -2;
+	    s = "SIGNED"; rc = -2;
 	    compr = 1;
 	    break;
 
@@ -389,7 +396,7 @@
     if (!s)
 	s = "UNKNOWN";
     if (!strcmp (s, "SIGNED") && !compr
-	&& strcmp (fm_check_armor_type (fname, r_type), "SIGNED-CLEAR ")) {
+	&& strcmp (fm_check_armor_type (fname, r_type), "SIGNED-CLEAR")) {
 	if (r_type) *r_type = PGP_SIG;
 	s = "SIGNED-DETACH";
     }
@@ -401,7 +408,7 @@
 void
 fm_build (fm_info_t *r_fm, HWND ctrl)
 {
-    int i;
+    
     fm_info_t fm;
     struct listview_column_s col[] = {
 	{0,  80, (char *)_("Status") },
@@ -409,6 +416,7 @@
 	{2, 128, (char *)_("Operation") },
 	{0,   0, NULL}	
     };
+    int i;
 
     fm = new fm_info_s;
     memset (fm, 0, sizeof *fm);
@@ -421,7 +429,7 @@
 }
 
 
-/* Release the file model. */
+/* Release the file model in @mod. */
 static void
 fm_model_release (fm_model_t mod)
 {
@@ -438,7 +446,7 @@
 }
 
 
-/* Reset the File Manager info context. */
+/* Reset the File Manager info context @fm. */
 void
 fm_reset (fm_info_t fm)
 {
@@ -448,7 +456,7 @@
 }
 
 
-/* Release the File Manager dialog context. */
+/* Release the File Manager dialog context @fm. */
 void
 fm_delete (fm_info_t fm)
 {
@@ -495,7 +503,7 @@
 }
 
 
-/* Check if file @file is already in the list (view). */
+/* Check if file @file is already in the list view. */
 static int
 fm_check_for_entry (listview_ctrl_t lv, const char *file)
 {
@@ -505,7 +513,7 @@
     memset (name, 0, sizeof (name));
     for (i = 0; i < listview_count_items (lv, 0); i++) {
 	listview_get_item_text (lv, i, FM_COL_NAME, name, DIM (name) - 1);
-	if (!strcmp (name, file))
+	if (!stricmp (name, file))
 	    return 1; /* found */	
     }
 
@@ -522,7 +530,7 @@
 
     rc = fm_check_for_entry (lv, name);
     if (rc)
-	return 0;
+	return 0; /* already present. */
     m = new fm_model_s;
     memset (m, 0, sizeof *m);
     type = fm_get_file_type (name, NULL);
@@ -543,24 +551,28 @@
 static int
 fm_add_dir_files (listview_ctrl_t lv, fm_model_t *fm, char *path)
 {
-    struct _finddata_t fd;
+    WIN32_FIND_DATA fd;
+    HANDLE hd;
     char *p;
-    long hd;
 
     strcat (path, "\\*");
-    hd = _findfirst (path, &fd);
+    hd = FindFirstFile (path, &fd);
+    if (hd == INVALID_HANDLE_VALUE)
+	return -1;
     do {
-	p = new char [strlen (path) + strlen (fd.name)+1];
+	if (fd.cFileName[0] == '.' && strlen (fd.cFileName) < 3)
+	    continue;
+	p = new char [strlen (path) + strlen (fd.cFileName)+1];
 	if (!p)
 	    BUG (0);
 	memcpy (p, path, strlen (path)-1);
 	p[strlen (path)-1] = 0;
-	strcat (p, fd.name);
+	strcat (p, fd.cFileName);
 	if (!is_directory (p))
 	    fm_set_ftype (lv, fm, p);
 	free_if_alloc (p);
-    } while (_findnext (hd, &fd) == 0);
-    _findclose (hd);
+    } while (FindNextFile (hd, &fd));
+    FindClose (hd);
     return 0;
 }
 
@@ -570,14 +582,12 @@
 int
 fm_add_dropped_files (fm_info_t fm, HDROP dd_files)
 {
-    char name[384+4];
-    int nfiles;
+    char name[MAX_PATH+32+4];
     int rc = 0;
-    int i;
-    
-    memset (name, 0, sizeof (name));
-    nfiles = DragQueryFile (dd_files, 0xFFFFFFFF, NULL, 0);
-    for (i = 0;  i < nfiles; i++) {
+    UINT i;
+
+    for (i = 0;  i < DragQueryFile (dd_files, 0xFFFFFFFF, NULL, 0); i++) {
+	memset (name, 0, sizeof (name));
 	DragQueryFile (dd_files, i, name, DIM (name) -1);
 	if (is_directory (name))
 	    rc = fm_add_dir_files (fm->lv, &fm->model, name);
@@ -599,7 +609,7 @@
 {
     fm_model_t m;
     const char *type;
-    int rc = 0;
+    int rc;
     
     type = fm_get_file_type (name, NULL);
     if (!type)
@@ -697,7 +707,7 @@
 	fp = gpg_iobuf_open (tmpfile);
 	if (!fp)
 	    return 0;
-	gpg_iobuf_ioctl (fp, 3, 1, NULL);
+	gpg_iobuf_ioctl (fp, 3, 1, NULL); /* disable cache. */
 	if (gpg_use_armor_filter(fp)) {
 	    memset (&afx, 0, sizeof (afx));
 	    gpg_iobuf_push_filter (fp, gpg_armor_filter, &afx);
@@ -719,7 +729,8 @@
 int
 fm_get_current_pos (listview_ctrl_t lv)
 {
-    int i = 0, items;
+    int i = 0;
+    int items;
 
     items = listview_count_items (lv, 0);
     if (!items)
@@ -745,17 +756,20 @@
 static int
 fm_check_detached_sig (listview_ctrl_t lv, int pos)
 {
-    char type[128];
+    char type[64];
 
     listview_get_item_text (lv, pos, 0, type, DIM (type)-1);
     return !strcmp (type, "SIGNED-DETACH")? 1 : 0;
 }
 
 
+/* Check if the given file on position @pos is useful for
+   command @fmd_cmd. For example sign can be used for all files
+   which are not already signed. */
 int
 fm_check_file_type (listview_ctrl_t lv, int pos, int fm_cmd)
 {
-    char status[128];
+    char status[64];
     int rc = 0;
     
     listview_get_item_text (lv, pos, 0, status, DIM (status) - 1);
@@ -778,24 +792,24 @@
 	break;
 	
     case FM_SIGN: 
-	if( strncmp( status, "SIGNED", 6 ) ) 
+	if (strncmp( status, "SIGNED", 6)) 
 	    rc = 1;
 	break;
 	
     case FM_VERIFY: 
-	if( !strncmp( status, "SIGNED", 6 ) 
-             || !strcmp( status, "COMPRESSED" ) )
+	if(!strncmp (status, "SIGNED", 6) ||
+           !strcmp (status, "COMPRESSED"))
 	    rc = 1;
 	break;
         
     case FM_SYMENC:
-	if( strcmp( status, "SYMKEYENC" ) )
+	if (strcmp (status, "SYMKEYENC"))
 	    rc = 1;
 	break;
 	
     case FM_IMPORT:
-	if( !strcmp( status, "PUBKEY" )
-	    || !strcmp( status, "SECKEY" ) )
+	if (!strcmp (status, "PUBKEY") ||
+	    !strcmp (status, "SECKEY"))
 	    rc = 1;
 	break;
         
@@ -827,8 +841,14 @@
     switch (fm_cmd) {
     case FM_ENCRYPT: 
     case FM_ENCRYPT_DIR:
-    case FM_SIGNENCRYPT: strcpy (status, "ENCRYPTED"); break;
-    case FM_DECRYPT:     strcpy (status, "UNKNOWN");   break;
+    case FM_SIGNENCRYPT: 
+	strcpy (status, "ENCRYPTED");
+	break;
+
+    case FM_DECRYPT:
+	strcpy (status, "UNKNOWN");
+	break;
+
     case FM_SIGN:
 	if (sigmode == GPGME_SIG_MODE_DETACH)
 	    strcpy (status, "SIGNED-DETACH");
@@ -837,18 +857,32 @@
 	else
 	    strcpy (status, "SIGNED");
 	break;
-    case FM_VERIFY:      update = 0;                    break;
-    case FM_SYMENC:      strcpy (status, "SYMKEYENC"); break;
-    case FM_IMPORT:	 update = 0;                    break;
-    case FM_WIPE:        strcpy (status, "WIPED");     break;
-    default:             strcpy (status, "UNKNOWN");    break;
+    case FM_VERIFY:
+	update = 0;
+	break;
+
+    case FM_SYMENC:
+	strcpy (status, "SYMKEYENC");
+	break;
+
+    case FM_IMPORT:
+	update = 0;                    
+	break;
+
+    case FM_WIPE:
+	strcpy (status, "WIPED");     
+	break;
+
+    default:
+	strcpy (status, "UNKNOWN");
+	break;
     }
 
     if (success && update) {
-	listview_add_sub_item (lv, pos, 0, status);
-	listview_add_sub_item (lv, pos, 1, output);
+	listview_add_sub_item (lv, pos, FM_COL_STAT, status);
+	listview_add_sub_item (lv, pos, FM_COL_NAME, output);
     }
-    listview_add_sub_item( lv, pos, 2, operat );
+    listview_add_sub_item (lv, pos, FM_COL_OP, operat);
 }
 
 
@@ -857,13 +891,13 @@
 {
     FILE *f;
     BYTE buf[32];
-    char name[256];
+    char name[MAX_PATH+1];
     int i, n, cnt=0;
 
     if (ctx->sigmode != GPGME_SIG_MODE_CLEAR)
 	return 0;
     listview_get_item_text (lv, -1, FM_COL_NAME, name, DIM (name)-1);
-    if (stristr (name, ".TXT"))
+    if (stristr (name, ".txt"))
 	return 0;
     f = fopen (name, "rb");
     if (!f)
@@ -894,7 +928,7 @@
     fm_state_s * ctx;
     int fm_cmd, sig_detached = 0;
     int rc = 0, i, n, ndel = 0;
-    char fname[512], status[128];
+    char fname[2*MAX_PATH+1], status[128];
     
     switch (cmd) {
     case ID_FILEMISC_ENCRYPT: fm_cmd = FM_ENCRYPT; break;
@@ -960,13 +994,13 @@
 	break;
     }
     
-    for( i = 0, n = 0;  i < listview_count_items( lv, 0 ); i++ ) {
-        if( !listview_get_item_state( lv, i ) )
+    for( i = 0, n = 0;  i < listview_count_items (lv, 0); i++ ) {
+        if (!listview_get_item_state (lv, i))
             continue;
-        listview_get_item_text( lv, i, 0, status, DIM (status) -1 );
-        if (!strcmp( status, "ENCRYPTED" ) && fm_cmd == FM_DECRYPT)
+        listview_get_item_text (lv, i, FM_COL_STAT, status, DIM (status) -1);
+        if (!strcmp( status, "ENCRYPTED") && fm_cmd == FM_DECRYPT)
             n++;
-        if (!strcmp( status, "UNKNOWN" ) && fm_cmd == FM_SIGN)
+        if (!strcmp( status, "UNKNOWN") && fm_cmd == FM_SIGN)
             n++;
 	if (fm_cmd == FM_WIPE)
 	    ndel++;
@@ -990,7 +1024,7 @@
     for (i = 0; i < listview_count_items (lv, 0); i++) {
         if (!listview_get_item_state (lv, i))
             continue;
-        listview_get_item_text (lv, i, 1, fname, DIM (fname) - 1);
+        listview_get_item_text (lv, i, FM_COL_NAME, fname, DIM (fname) - 1);
         if( file_exist_check (fname) && !is_directory (fname)) {
 	    log_box (_("File Manager"), MB_ERR, 
 		     _("\"%s\" does not exist"), fname);
@@ -1042,7 +1076,7 @@
     /* remove wipe files from the list */
     n = listview_count_items (lv, 0);
     while (n--) {
-        listview_get_item_text (lv, n, 0, status, DIM (status) - 1);
+        listview_get_item_text (lv, n, FM_COL_STAT, status, DIM (status) - 1);
         if (!strcmp (status, "WIPED"))
             listview_del_item (lv, n);
     }
@@ -1052,7 +1086,7 @@
         fm_state_release (ctx);
     progress_cleanup (&pfx);
     return rc;
-} /* fm_parse_files */
+}
 
 
 /* Wipe the given file @name with the delete mode
@@ -1109,7 +1143,6 @@
     gpgme_ctx_t ctx = c->ctx;
     file_data_t in=NULL, out=NULL;
     char *keyid = NULL, ext[5];
-    /*int no_compr = 0;*/
     int rc = 0;
 
     c->output = new char[strlen (name) + 5 + 1];
@@ -1134,6 +1167,7 @@
 	goto leave;
 
     /*
+    int no_compr = 0;
     if (c->prog_cb) {
 	c->prog_cb->what = name;
 	gpg_file_data_set_cb (in, c->prog_cb);
@@ -1520,7 +1554,7 @@
 	log->use_uid = 1;
     }
     file_verify_add_state (log);
-    winpt_release_pubkey (&key);    
+    winpt_release_pubkey (&key); 
 }
 
 
@@ -1692,6 +1726,8 @@
     }    
 
     res = gpgme_op_verify_result (ctx);
+    if (!res)
+	goto leave;
     for (s=res->signatures; s; s=s->next) {
 	log.sig = s;
 	fm_add_sig_stat (&log);

Modified: trunk/Src/wptGPG.cpp
===================================================================
--- trunk/Src/wptGPG.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptGPG.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -97,8 +97,7 @@
     if (path && dir_exist_check (path) == 0)
 	return path;
     free_if_alloc (path);
-    path = multi_gnupg_path (1);
-    return path;
+    return multi_gnupg_path (1);
 }
 
 
@@ -108,8 +107,8 @@
 get_gnupg_cfgfile (void)
 {
     char *optfile = NULL;
-    char *path = NULL;
-    size_t nlen = 0;
+    char *path;
+    size_t nlen;
 
     path = get_gnupg_path ();
     if (!path)
@@ -117,7 +116,7 @@
     nlen = strlen (path) + 64;
     optfile = new char[nlen + 1];
     if (!optfile)
-	BUG (NULL);	
+	BUG (NULL);
     _snprintf (optfile, nlen, "%s\\"GPG_CONF, path);
 
     free_if_alloc (path);
@@ -173,7 +172,7 @@
     if (!path)
 	return NULL;	
     pgm = make_filename (path, "gpg", "exe");
-    free_if_alloc (path);    
+    free_if_alloc (path);
     return pgm;
 }
 
@@ -213,23 +212,20 @@
 gnupg_load_config (void)
 {    
     gpg_optfile_t opt;
-    gpg_option_t o;
     char *conf;
     
     conf = get_gnupg_cfgfile ();
     if (!conf)
 	return -1;
-    if (parse_gpg_options (conf, &opt)) {
+    if (parse_config (conf, &opt)) {
 	free_if_alloc (conf);
 	return -1;
     }
-    o = find_option (opt, "ask-cert-level");
-    if (o)
+    if (find_option (opt, "ask-cert-level"))
 	reg_prefs.gpg.ask_cert_level = 1;
-    o = find_option (opt, "ask-cert-expire");
-    if (o)
+    if (find_option (opt, "ask-cert-expire"))
 	reg_prefs.gpg.ask_cert_expire = 1;
-    release_gpg_options (opt);
+    release_config (opt);
     free_if_alloc (conf);
     return 0;
 }
@@ -264,7 +260,7 @@
     optfile = get_gnupg_cfgfile ();
     if (!optfile)
 	return default_key_from_cache (&no_usable);
-    if (parse_gpg_options (optfile, &opt)) {
+    if (parse_config (optfile, &opt)) {
 	free_if_alloc (optfile);
 	return default_key_from_cache (&no_usable);
     }
@@ -275,7 +271,7 @@
 	keyid = extract_keyid (e->val);
 
     free_if_alloc (optfile);
-    release_gpg_options (opt);
+    release_config (opt);
     if (!keyid)
 	keyid = default_key_from_cache (&no_usable);
     return keyid;
@@ -404,10 +400,10 @@
     *r_secrings = 0;
     *r_pubrings = 0;
 
-    if (parse_gpg_options (fname, &opt))
+    if (parse_config (fname, &opt))
 	return WPTERR_FILE_OPEN;
     for (e = opt->list; e; e = e->next) {
-	if (!strcmp( e->name, "secret-keyring")) {
+	if (!strcmp (e->name, "secret-keyring")) {
 	    if (!file_exist_check (e->val))
 		r_secrings[0]++;
 	}
@@ -416,7 +412,7 @@
 		r_pubrings[0]++;
 	}
     }
-    release_gpg_options (opt);
+    release_config (opt);
     return 0;
 }
 
@@ -562,7 +558,7 @@
     optfile = get_gnupg_cfgfile ();
     if (!optfile)
 	return WPTERR_FILE_OPEN;
-    rc = parse_gpg_options (optfile, &opt);
+    rc = parse_config (optfile, &opt);
     if (rc) {
 	free_if_alloc (optfile);
 	return WPTERR_GENERAL;
@@ -577,11 +573,10 @@
     }
     else if (key)
 	add_entry (opt, ENTRY_MULTI, "default-key", key);
-    rc = commit_gpg_options (optfile, opt);
+    rc = commit_config (optfile, opt);
 
     free_if_alloc (optfile);
-    release_gpg_options (opt);
-
+    release_config (opt);
     return rc;
 }
 
@@ -795,7 +790,7 @@
     char *kring = NULL;
     int rc;
 
-    rc = parse_gpg_options (fname, &opt);
+    rc = parse_config (fname, &opt);
     if (rc)
 	return NULL;
     if (pub)
@@ -804,7 +799,7 @@
 	e = find_option (opt, "secret-keyring");
     if (e)
 	kring = m_strdup (e->val);
-    release_gpg_options (opt);
+    release_config (opt);
 
     return kring;
 }

Modified: trunk/Src/wptGPGME.cpp
===================================================================
--- trunk/Src/wptGPGME.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptGPGME.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -47,6 +47,8 @@
 static char *gpg_secring = NULL;
 
 
+/* Return 1 if no cache is available. 
+   This can be the case if WinPT were run in command line mode. */
 int
 keycache_not_available (void)
 {
@@ -62,7 +64,7 @@
     int n = gpg_keycache_get_size (pub);
 
     /* XXX: update the value when the cache has changed. */
-    sprintf (tmpbuf, "%d", n);
+    _snprintf (tmpbuf, sizeof (tmpbuf)-1, "%d", n);
     set_reg_key (HKEY_CURRENT_USER, "Software\\WinPT", "nKeys", tmpbuf);
 
     if (pub) {
@@ -108,6 +110,7 @@
     if (secring != NULL) {
 	free_if_alloc (gpg_secring);
 	gpg_secring = get_gnupg_keyring (0, NO_STRICT);
+	log_debug ("keycache_init: secring path '%s'\r\n", gpg_secring);
     }
     
     p = get_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "nKeys");

Modified: trunk/Src/wptGPGMEWrapper.cpp
===================================================================
--- trunk/Src/wptGPGMEWrapper.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptGPGMEWrapper.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -208,6 +208,10 @@
     }
     p = gpgme_data_release_and_get_mem (dat, &n);
 
+    /* we use this detour because p were allocated inside
+       the gpgme DLL and cannot be freed with 'free' because
+       the DLL might be linked against debug libs but the application
+       run ins release mode. */
     *outdata = new char[n+1];
     memcpy (*outdata, p, n);
     (*outdata)[n] = 0;

Modified: trunk/Src/wptGPGParser.cpp
===================================================================
--- trunk/Src/wptGPGParser.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptGPGParser.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -1,4 +1,4 @@
-/* wptGPGParser.cpp - GPG config file parser
+/* wptGPGParser.cpp - Config file parser
  *	Copyright (C) 2002, 2003, 2004, 2006 Timo Schulz
  *
  * This file is part of WinPT.
@@ -59,7 +59,7 @@
 
 
 static void
-add_opaque_option (gpg_optfile_t opt, const char *line, int used)
+add_opaque_option (config_file_t opt, const char *line, int used)
 {
     gpg_option_t e;
 
@@ -72,7 +72,7 @@
 
 
 static void
-add_single_option (gpg_optfile_t opt, const char *name, int used)
+add_single_option (config_file_t opt, const char *name, int used)
 {
     gpg_option_t e;
 
@@ -85,7 +85,7 @@
 
 
 static int
-add_group_option (gpg_optfile_t opt, const char *name, int used)
+add_group_option (config_file_t opt, const char *name, int used)
 {
     gpg_option_t e;
 
@@ -115,7 +115,7 @@
 
 
 static int
-add_multi_option (gpg_optfile_t opt, char *line, int used)
+add_multi_option (config_file_t opt, char *line, int used)
 {
     gpg_option_t e;
     char *p;
@@ -175,7 +175,7 @@
 
 
 static const char*
-group_from_cfgfile (gpg_optfile_t opt, const char *line)
+group_from_cfgfile (config_file_t opt, const char *line)
 {
     char *p, *buf, *buf2, *name = NULL;
     gpg_group_t g;
@@ -246,11 +246,13 @@
 
 
 void
-release_gpg_options (gpg_optfile_t opt)
+release_config (config_file_t opt)
 {
     gpg_option_t e, e2;
     gpg_group_t g, g2;
 
+    if (!opt)
+	return;
     e = opt->list;
     while (e) {
         e2 = e->next;
@@ -268,7 +270,7 @@
 
 
 int
-commit_gpg_options (const char *file, gpg_optfile_t opt)
+commit_config (const char *file, config_file_t opt)
 {
     FILE *inp;
     gpg_option_t e;
@@ -312,38 +314,54 @@
 }
 
 
+void 
+new_config (config_file_t *r_opt)
+{
+    config_file_t opt;
+
+    opt = new gpg_optfile_s;
+    if (!opt)
+	BUG (NULL);
+    memset (opt, 0, sizeof *opt);
+    *r_opt = opt;
+}
+
+
 int
-parse_gpg_options (const char *file, gpg_optfile_t *r_opt )
+parse_config (const char *file, config_file_t *r_opt)
 {
     FILE *inp;
     char buf[1024], *p;
-    gpg_optfile_t opt = NULL;
+    config_file_t opt = NULL;
 
+    if (!r_opt)
+	return -1;
+
     inp = fopen( file, "rb");
-    if( inp == NULL ) {
-	inp = fopen( file, "wb" );
-	if( inp == NULL )
+    if (!inp) {
+	inp = fopen (file, "wb");
+	if (inp == NULL)
 	    return -1;
     }
     opt = new gpg_optfile_s;
-    if( !opt )
-	BUG( NULL );
-    memset( opt, 0, sizeof *opt );
-    while( !feof( inp ) ) {
-        p = fgets( buf, sizeof buf -1, inp );
-        if( !p )
+    if (!opt)
+	BUG (NULL);
+    memset (opt, 0, sizeof *opt);
+    while (!feof (inp))  {
+        p = fgets (buf, sizeof (buf) -1, inp);
+        if (!p)
             break;
-        if( *p == '#' || *p == '\r' || *p == '\n' || *p == '\t' ) {
-            add_opaque_option( opt, p, 1 );
+        if (*p == '#' || *p == '\r' || *p == '\n' || *p == '\t') {
+            add_opaque_option (opt, p, 1);
             continue;
         }
-	if( strstr( p, "\r\n" ) )
-	    p[strlen( p ) - 2] = '\0';
-	else if( strstr( p, "\n" ) )
-	    p[strlen( p ) - 1] = '\0';
-        if( !strchr( p, ' ' ) )
-            add_single_option( opt, p, 1 );
-        else if( !strncmp( p, "group", 5 ) ) {
+	if( strstr (p, "\r\n" ))
+	    p[strlen (p) - 2] = '\0';
+	else if (strstr (p, "\n"))
+	    p[strlen (p) - 1] = '\0';
+        if (!strchr( p, ' ' ))
+            add_single_option (opt, p, 1);
+        else if (!strncmp (p, "group", 5)) {
             const char *s = group_from_cfgfile (opt, p);
             if (s)
                 add_group_option (opt, s, 1);
@@ -352,14 +370,13 @@
             add_multi_option (opt, p, 1);
     }
     fclose (inp);
-    if (r_opt)
-        *r_opt = opt;
+    *r_opt = opt;
     return 0;
 }
 
 
 gpg_option_t
-find_option (gpg_optfile_t opt, const char *str)
+find_option (config_file_t opt, const char *str)
 {
     gpg_option_t e;
 
@@ -375,7 +392,7 @@
 
 
 gpg_group_t
-find_group (gpg_optfile_t opt, const char *str)
+find_group (config_file_t opt, const char *str)
 {
     gpg_group_t g;
 
@@ -389,10 +406,10 @@
 
 
 gpg_member_t
-find_member (gpg_optfile_t opt, const char *grp, const char *str)
+find_member (config_file_t opt, const char *grp, const char *str)
 {
-    gpg_group_t g = find_group (opt, grp);
     gpg_member_t m;
+    gpg_group_t g = find_group (opt, grp);
 
     if (!g)
 	return NULL;
@@ -406,7 +423,7 @@
 
 
 int
-delete_group (gpg_optfile_t opt, const char *str)
+delete_group (config_file_t opt, const char *str)
 {
     gpg_group_t g = find_group (opt, str);
 
@@ -417,7 +434,7 @@
 
 
 int
-delete_member (gpg_optfile_t opt, const char *grp, const char *str)
+delete_member (config_file_t opt, const char *grp, const char *str)
 {
     gpg_member_t m = find_member (opt, grp, str);
 
@@ -428,7 +445,7 @@
 
     
 int
-delete_option (gpg_optfile_t opt, const char * str)
+delete_option (config_file_t opt, const char * str)
 {
     gpg_option_t e = find_option (opt, str);
 
@@ -439,8 +456,18 @@
 
 
 int
-add_entry (gpg_optfile_t opt, int type, const char *name, const char *val)
+add_entry_int (config_file_t opt, int type, const char *name, int val)
 {
+    char buf[64];
+
+    _snprintf (buf, DIM (buf)-1, "%d", val);
+    add_entry (opt, type, name, buf);
+    return 0;
+}
+
+int
+add_entry (config_file_t opt, int type, const char *name, const char *val)
+{
     gpg_option_t e;
 
     e = new_option ();
@@ -454,7 +481,7 @@
 
 
 int
-modify_entry (gpg_optfile_t opt, int type, const char *name, const char *val)
+modify_entry (config_file_t opt, int type, const char *name, const char *val)
 {
     gpg_option_t e;
     int rc = 0;
@@ -465,6 +492,7 @@
     else if (type != ENTRY_SINGLE) {
 	free_if_alloc (e->val);
 	e->val = m_strdup (val);
+	rc = 0;
     }
 
     return rc;
@@ -472,7 +500,7 @@
 
     
 int
-add_member (gpg_optfile_t opt, const char *grp, const char *str)
+add_member (config_file_t opt, const char *grp, const char *str)
 {
     gpg_group_t g = find_group (opt, grp);
     gpg_member_t m, t;
@@ -498,11 +526,11 @@
 
 
 int
-add_group (gpg_optfile_t opt, const char *str)
+add_group (config_file_t opt, const char *str)
 {
     gpg_group_t g, t;
 
-    g = new gpg_group_s;    
+    g = new gpg_group_s;
     if (!g)
 	BUG (NULL);
     memset (g, 0, sizeof *g);
@@ -519,50 +547,3 @@
     add_entry (opt, ENTRY_GROUP, str, NULL);
     return 0;
 }
- 
-
-#if 0
-void
-walk_group( const char *name, gpg_member_t mbr )
-{
-    gpg_member_t m;
-
-    printf( "name=%s\n", name );
-    for( m = mbr; m; m = m->next )
-        printf( "%s\n", m->name );
-}
-
-
-int
-main( int argc, char **argv )
-{
-    int rc;
-    gpg_optfile_t opt;
-    gpg_group_t g;
-    gpg_option_t e;
-
-    rc = parse_gpg_options( "c:\\gnupg\\gpg.conf", &opt );
-    if( rc )
-        printf( "parse_option: error\n" );
-    else {
-#if 0
-        /*delete_option( opt, "encrypt-to" );*/
-        delete_member( opt, "bar", "richard" );
-        add_member( opt, "bar", "leo" );
-        add_group( opt, "foobar" );
-        delete_group( opt, "foobar" );
-        add_entry( opt, ENTRY_SINGLE, "use-agent", NULL );        
-#endif
-        for( e = opt->list; e; e = e->next ) {
-            if( e->type != 1 )
-                printf( "%d: %s %s\n", e->used, e->name, e->val );
-        }	
-	/*commit_gpg_options( "c:\\gnupg\\gpg2.conf", opt );*/	
-        for( g = opt->grp; g; g = g->next )
-            walk_group( g->name, g->list );        
-        release_option( opt );
-    }
-    
-    return 0;
-}
-#endif

Modified: trunk/Src/wptGPGPrefsDlg.cpp
===================================================================
--- trunk/Src/wptGPGPrefsDlg.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptGPGPrefsDlg.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -175,7 +175,7 @@
 
 	p = get_gnupg_cfgfile ();
 	if (p) {
-	    parse_gpg_options (p, &opt);
+	    parse_config (p, &opt);
 	    free_if_alloc (p);
 	    if (opt) {
 		if (find_option (opt, "ask-cert-expire"))
@@ -188,7 +188,7 @@
 		e = find_option (opt, "encrypt-to");
 		if (e != NULL)
 		    SetDlgItemText (dlg, IDC_GPGPREFS_ENCTO, e->val);
-		release_gpg_options (opt);
+		release_config (opt);
 	    }
 	}
 
@@ -271,7 +271,7 @@
 		EndDialog (dlg, FALSE);
 		return TRUE;
 	    }
-	    parse_gpg_options (p, &opt);
+	    parse_config (p, &opt);
 
 	    if (IsDlgButtonChecked (dlg, IDC_GPGPREFS_ASKLEVEL)) {
 		modify_entry (opt, ENTRY_SINGLE, "ask-cert-level", NULL);
@@ -304,8 +304,8 @@
             else
 		delete_option (opt, "encrypt-to");
 
-	    commit_gpg_options (p, opt);
-	    release_gpg_options (opt);
+	    commit_config (p, opt);
+	    release_config (opt);
 	    /* only return TRUE if the home dir has been changed. */
 	    if (SendDlgItemMessage (dlg, IDC_GPGPREFS_HOMEDIR, EM_GETMODIFY, 0, 0)) {
 		set_gnupg_default_key (NULL);

Modified: trunk/Src/wptGPGUtil.cpp
===================================================================
--- trunk/Src/wptGPGUtil.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptGPGUtil.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -326,6 +326,7 @@
     }
     WaitForSingleObject (pi.hProcess, INFINITE);
     CloseHandle (pi.hProcess);
+    CloseHandle (pi.hThread);
     return 0;
 }
 
@@ -442,14 +443,16 @@
 gpg_get_version (char **r_inf)
 {
     gpgme_error_t err= gpg_error (GPG_ERR_NO_ERROR);
-    HANDLE out;    
+    HANDLE out;
+    const char *fmt;
     char *p, *cmd;
 
     p = read_gpg_program ();
     if (!p)
 	return gpg_error (GPG_ERR_INV_ARG);
-    cmd = (char*)xcalloc (1, strlen (p) + 32);
-    sprintf (cmd, "%s --version", p);
+    fmt = "%s --version";
+    cmd = (char*)xcalloc (1, strlen (p) + strlen (fmt) + 1);
+    sprintf (cmd, fmt, p);
 
     out = create_tmpfile ("gpg_out");
     if (create_process (cmd, NULL, out, NULL))

Modified: trunk/Src/wptKeyserver.cpp
===================================================================
--- trunk/Src/wptKeyserver.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptKeyserver.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -647,6 +647,46 @@
 }
 
 
+/* Return the specified keyserver config setting @key as an integer. */
+static int
+get_conf_kserver_int (const char *key)
+{
+    char *p;
+    int val = 0;
+
+    p = get_reg_entry_keyserver (key);
+    if (p && *p)
+	val = atoi (p);
+    free_if_alloc (p);
+    return val;
+}
+
+
+/* Read the proxy configuration and store it into @prox. */
+static void
+read_proxy_config (keyserver_proxy_t prox)
+{
+    char *proto;
+
+    if (!prox)
+	return;
+    
+    proto = get_reg_entry_keyserver("Proto");
+    if (proto != NULL && strlen (proto) > 0)
+	prox->proto = atoi (proto);
+    else
+	prox->proto = PROXY_PROTO_NONE;
+    free_if_alloc (proto);
+    free_if_alloc (prox->host);
+    prox->host = get_reg_entry_keyserver ("Host");
+    free_if_alloc (prox->user);
+    prox->user = get_reg_entry_keyserver ("User");
+    free_if_alloc (prox->pass);	
+    prox->pass = get_reg_entry_keyserver ("Pass");
+    prox->port = get_conf_kserver_int ("Port");
+}
+
+
 /* Load the keyserver config file @conf. */
 int
 kserver_load_conf (const char *conf)
@@ -671,7 +711,7 @@
 	}
 	no_config=1;
     }
-    get_reg_proxy_prefs (&proxy);
+    read_proxy_config (&proxy);
     if (user && pass)
 	update_proxy_user (user, pass);	
     else if (user && !pass || !user && pass) {

Modified: trunk/Src/wptMainProc.cpp
===================================================================
--- trunk/Src/wptMainProc.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptMainProc.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -313,6 +313,7 @@
 }
 
 
+
 /* Main message loop for the tray window. */
 LRESULT CALLBACK 
 winpt_main_proc (HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
@@ -360,7 +361,7 @@
 	gnupg_backup_keyrings (reg_prefs.auto_backup, 
 			       reg_prefs.backup.mode,
 			       reg_prefs.backup.include_secr);
-	free_reg_prefs ();
+	free_reg_prefs ();	
 	free_gnupg_table ();
         hotkeys_unregister (hwnd);
         PTD_delete ();

Modified: trunk/Src/wptProgressDlg.cpp
===================================================================
--- trunk/Src/wptProgressDlg.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptProgressDlg.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -132,7 +132,8 @@
 	pfx->thread_hd = CreateThread (NULL, 0, progress_cb_thread, 
 					(void *)pfx, 0, &tid);
 	if (!pfx->thread_hd) {
-	    msg_box (NULL, _("Could not create progress thread."), _("WinPT"), MB_ERR);
+	    msg_box (NULL, _("Could not create progress thread."), 
+		     _("WinPT"), MB_ERR);
 	    pfx->error = 1;
 	    return;
 	}
@@ -145,6 +146,8 @@
 			    PBM_SETPOS, (WPARAM)n, 0);
 	SetDlgItemInt (pfx->dlg, IDC_PROGRESS_CURR, pfx->curr, FALSE);
     }
-    if (off >= max)
+    if (off >= max) {
+	log_debug ("progress_callback: off %lu max %lu\r\n", off, max);
 	progress_cleanup (pfx);
+    }
 }

Modified: trunk/Src/wptProxySettingsDlg.cpp
===================================================================
--- trunk/Src/wptProxySettingsDlg.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptProxySettingsDlg.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -23,6 +23,7 @@
 
 #include <windows.h>
 #include <ctype.h>
+#include <stdio.h>
 
 #include "resource.h"
 #include "wptTypes.h"
@@ -37,6 +38,35 @@
     SendDlgItemMessage ((dlg), (id), CB_GETCURSEL, 0, 0)
 
 
+static int
+set_reg_entry_keyserver_int (const char *key, int val)
+{
+    char buf[32];
+
+    _snprintf (buf, DIM (buf)-1, "%d", val);
+    return set_reg_entry_keyserver (key, buf);
+}
+
+
+/* Save the proxy settings in the registry. */
+int
+set_reg_proxy_prefs (keyserver_proxy_t prox)
+{    
+    int rc;
+    
+    rc = set_reg_entry_keyserver_int ("Proto", prox->proto);
+    if (!rc)
+	rc = set_reg_entry_keyserver ("Host", prox->host? prox->host : "");
+    if (!rc)
+	rc = set_reg_entry_keyserver_int ("Port", prox->port);
+    if (!rc)
+	rc = set_reg_entry_keyserver ("User", prox->user? prox->user : "");
+    if (!rc)
+	rc = set_reg_entry_keyserver ("Pass", prox->pass? prox->pass : "");
+    return rc;
+}
+
+
 /* Check if the edit control (@id) contains a valid number. */
 static int
 check_number (HWND dlg, int id)
@@ -44,10 +74,10 @@
     char buf[32];
     size_t i;
 
-    i = GetDlgItemText (dlg, id, buf, 31);
+    i = GetDlgItemText (dlg, id, buf, DIM (buf)-1);
     if (!i)
 	return -1;
-    for (i=0; i < strlen (buf); i++) {
+    for (i = 0; i < strlen (buf); i++) {
 	if (!isdigit (buf[i]))
 	    return -1;
     }

Modified: trunk/Src/wptRegistry.cpp
===================================================================
--- trunk/Src/wptRegistry.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptRegistry.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -17,11 +17,14 @@
  * along with WinPT; if not, write to the Free Software Foundation, 
  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
  */
-
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
 
+/* For the case WinPT will be compiled in mobile mode, we use a wrapper
+   to avoid registry access (read, write) and thus this file will not
+   be used. */
+#ifndef WINPT_MOBILE
 #include <windows.h>
 #include <stdio.h>
 
@@ -37,17 +40,24 @@
 
 #define rc_ok(rc) ((rc) == ERROR_SUCCESS)
 
+/* WinPT registry path. */
 #define WINPT_REG "Software\\WinPT"
 
+/* GPG registry path. */
+#define GPG_REG "Software\\GNU\\GnuPG"
+
+#define GPG_MO_REG "Control Panel\\MingW32\\NLS"
+
 /* GPG file association context. */
-struct gpg_filetype {    
-    const char *descr;
-    const char *ext;
-    int nicon;
+struct gpg_filetype_s {    
+    const char *descr;	/* description. */
+    const char *ext;	/* extension. */
+    int nicon;		/* number of the image icon. */
 };
+typedef struct gpg_filetype_s *gpg_filetype_t;
 
 /* Global WinPT registry prefereneces. */
-winpt_reg_prefs_s reg_prefs;
+struct winpt_prefs_s reg_prefs;
 
 
 /* Return != 0 if GPG4win is installed. */
@@ -69,7 +79,7 @@
 
 
 /* Return != 0 if GPGee is installed. */
-int
+static int
 is_gpgee_installed (void)
 {
     HKEY hk;
@@ -96,20 +106,7 @@
 }
 
 
-/* Register the given WinPT filetype. */
-static int
-regist_single_filetype (gpg_filetype *gfile)
-{
-    char icon[256];
-    char prog[256];
-    
-    memset (&icon, 0, sizeof (icon));
-    GetModuleFileName (glob_hinst, prog, sizeof (prog)-1);
-    _snprintf (icon, sizeof (icon) -1, "%s,%d", prog, gfile->nicon);
-    return create_file_type (prog, gfile->ext, gfile->descr, icon);
-}
 
-
 /* Install the GPG related into the W32 resgistry, if the entry already
    exists the function returns immediately. */
 int
@@ -118,31 +115,104 @@
     int rc;
     HKEY reg;
 
-    rc = RegOpenKeyEx( HKEY_CURRENT_USER, "Software\\GNU\\GnuPG", 0, KEY_READ, &reg );	
-    if( rc_ok( rc ) ) {
-	RegCloseKey( reg );
+    rc = RegOpenKeyEx (HKEY_CURRENT_USER, GPG_REG, 0, KEY_READ, &reg);
+    if (rc == ERROR_SUCCESS) {
+	RegCloseKey (reg);
 	return 0;	
     }
-    rc = RegCreateKey( HKEY_CURRENT_USER, "Software\\GNU\\GnuPG", &reg );
-    if( !rc_ok( rc ) )		
+    rc = RegCreateKey (HKEY_CURRENT_USER, GPG_REG, &reg);
+    if (rc != ERROR_SUCCESS)
 	return WPTERR_REGISTRY;	
-    RegCloseKey( reg );
-    if( create_mokey ) {
-	rc = RegOpenKeyEx( HKEY_CURRENT_USER,  "Control Panel\\MingW32\\NLS", 0, KEY_READ, &reg );
-	if( rc_ok( rc ) ) {
-	    RegCloseKey( reg );
-	    return 0;	
-	}
-	rc = RegCreateKey( HKEY_CURRENT_USER, "Control Panel\\MingW32\\NLS", &reg );
-	if( !rc_ok( rc ) )
-	    return WPTERR_REGISTRY;	
-	RegCloseKey( reg );
+    RegCloseKey (reg);
+
+    if (!create_mokey)
+	return 0;
+
+    rc = RegOpenKeyEx (HKEY_CURRENT_USER,  GPG_MO_REG, 0, KEY_READ, &reg);
+    if (rc == ERROR_SUCCESS) {
+	RegCloseKey (reg);
+	return 0;	
     }
+    rc = RegCreateKey (HKEY_CURRENT_USER, GPG_MO_REG, &reg);
+    if (rc != ERROR_SUCCESS)
+	return WPTERR_REGISTRY;
 
+    RegCloseKey (reg);
     return 0;
 }
 
 
+/* Create a new filetype in the W32 registry.
+   We should really care of errors! Otherwise we can damage the registry! */
+static int
+create_file_type (const char *exefile, const char *ext, 
+		  const char *extname, char *iconfile)
+{
+    HKEY reg = NULL;
+    char deficon[MAX_PATH+1];
+    char defexec[MAX_PATH+1];
+    char p_exefile[MAX_PATH+1];
+    int rc;
+    
+    rc = RegCreateKey (HKEY_CLASSES_ROOT, ext, &reg);
+    if( rc_ok( rc ) ) 
+	rc = RegSetValueEx( reg, NULL, 0, REG_SZ, (BYTE *)extname, strlen( extname ) );
+    if( rc_ok( rc ) )
+	rc = RegCloseKey( reg );
+    if( rc_ok( rc ) )    
+	rc = RegCreateKey( HKEY_CLASSES_ROOT, extname, &reg );
+    if( rc_ok( rc ) )
+	rc = RegSetValueEx( reg, NULL, 0, REG_SZ, (BYTE *) extname, strlen( extname ) );
+    if( rc_ok( rc ) )
+	rc = RegCloseKey( reg );
+    if( !rc_ok( rc ) ) {
+	rc = WPTERR_REGISTRY;
+	goto leave;
+    }
+    
+    memset( &deficon, 0, sizeof deficon );
+    _snprintf( deficon, sizeof deficon - 1, "%s\\DefaultIcon", extname );
+    memset( &defexec, 0, sizeof defexec );
+    _snprintf( defexec, sizeof defexec - 1, "%s\\shell\\open\\command", extname );	
+    memset( &p_exefile, 0, sizeof p_exefile );
+    _snprintf( p_exefile, sizeof p_exefile - 1, "%s %%1", exefile );
+    
+    rc = RegCreateKey( HKEY_CLASSES_ROOT, deficon, &reg );
+    if( rc_ok( rc ) )
+	rc = RegSetValueEx(reg, NULL, 0, REG_SZ, (BYTE *)iconfile, strlen( iconfile ) );
+    if( rc_ok( rc ) )
+	rc = RegCloseKey( reg );
+    if( rc_ok( rc ) )
+	rc = RegCreateKey( HKEY_CLASSES_ROOT, defexec, &reg );
+    if( rc_ok( rc ) )
+	rc = RegSetValueEx( reg, NULL, 0, REG_SZ, (BYTE *)p_exefile, strlen( exefile ) );
+    if( rc_ok( rc ) )
+	rc = RegCloseKey( reg );
+    if( !rc_ok( rc ) ) {
+	rc = WPTERR_REGISTRY;
+	goto leave;	
+    }
+    
+leave:
+    if (reg)
+	RegCloseKey (reg);
+    return rc;
+}
+
+
+/* Register the given WinPT filetype. */
+static int
+regist_single_filetype (gpg_filetype_t gfile)
+{
+    char icon[MAX_PATH+1] = {0};
+    char prog[MAX_PATH+1] = {0};
+
+    if (!GetModuleFileName (glob_hinst, prog, sizeof (prog)-1))
+	return WPTERR_REGISTRY;
+    _snprintf (icon, sizeof (icon) -1, "%s,%d", prog, gfile->nicon);
+    return create_file_type (prog, gfile->ext, gfile->descr, icon);
+}
+
 /* Install WinPT into the W32 registry, if the entry already 
    exists the function returns immediately. @with_ext can be
    used to register some file types (if 1). @created contains
@@ -150,36 +220,42 @@
    Return value: 0 on success. */
 int
 regist_inst_winpt (int with_ext, int *created)
-{    
-    HKEY reg;
-    char *p = NULL;
-    char modpath[MAX_PATH+1];
-    int rc, i, id, n;
-
-    gpg_filetype gpg_filetypes[] = {
+{
+    struct gpg_filetype_s gpg_filetypes[] = {
 	{_("GPG Detached Signature"), ".sig", 1},
 	{_("GPG Encrypted Data"),     ".gpg", 2},
 	{_("GPG Armored Data"),       ".asc", 2},
 	{0}
     };
+    HKEY reg;
+    char *p = NULL;
+    char modpath[MAX_PATH+1];
+    int rc, i, id, n;
 
     if (created)
 	*created = 0;
+
+    /* If GPGee is already installed deactivate file extension registering
+       because it is very likely this would overwrite the GPGee settings. */
     if (is_gpgee_installed ())
 	with_ext = 0;
 
     rc = RegOpenKeyEx (HKEY_CURRENT_USER, WINPT_REG, 0, KEY_READ, &reg);
-    if (rc_ok (rc)) {
+    if (rc == ERROR_SUCCESS) {
 	RegCloseKey (reg);
 	rc = RegOpenKeyEx (HKEY_CURRENT_USER, WINPT_REG"\\Keyserver", 0, KEY_READ, &reg);
-	if (!rc_ok (rc)) {
-	    RegCreateKey (HKEY_CURRENT_USER, WINPT_REG"\\Keyserver", &reg);
-	    RegCloseKey (reg);
+	if (rc != ERROR_SUCCESS) {
+	    rc = RegCreateKey (HKEY_CURRENT_USER, WINPT_REG"\\Keyserver", &reg);
+	    if (rc == ERROR_SUCCESS)
+		RegCloseKey (reg);
 	}
+	else
+	    RegCloseKey (reg);
 	p = get_reg_entry_keyserver ("Default");
 	if (!p) {
 	    char buf[16];
-	    sprintf (buf, "%d", HKP_PORT);
+
+	    _snprintf (buf, DIM (buf)-1, "%d", HKP_PORT);
 	    set_reg_entry_keyserver ("Default_Port", buf);
 	    set_reg_entry_keyserver ("Default", DEF_HKP_KEYSERVER);
 	}
@@ -187,7 +263,7 @@
 	return 0;
     }
     rc = RegCreateKey (HKEY_CURRENT_USER, WINPT_REG, &reg);
-    if (!rc_ok (rc))
+    if (rc != ERROR_SUCCESS)
 	return WPTERR_REGISTRY;
     if (created)
 	*created = 1;
@@ -199,9 +275,9 @@
 	if (id == IDYES) {
 	    for (i = 0; gpg_filetypes[i].ext; i++) {
 		rc = RegOpenKeyEx (HKEY_CLASSES_ROOT, gpg_filetypes[i].ext, 0, KEY_READ, &reg);
-		if (rc_ok (rc)) {
-		RegCloseKey (reg);
-		    id = log_box (_("WinPT WARNING"), MB_YESNO|MB_INFO, 
+		if (rc == ERROR_SUCCESS) {
+		    RegCloseKey (reg);
+		    id = log_box (_("WinPT WARNING"), MB_YESNO|MB_INFO,
 				  _("It seems there was already a '%s' file type registered by another application.\n"
 				    "Do you want to overwrite it?"), gpg_filetypes[i].ext);
 		    if (id == IDNO)
@@ -211,6 +287,7 @@
 	    }
 	}
     }
+    /* Store the install directory for later use. */
     if ((n=GetModuleFileName (NULL, modpath, MAX_PATH-1)) > 0) {
 	while (n-- > 0) {
 	    if (modpath[n] == '\\') {
@@ -224,66 +301,9 @@
 }
 
 
-/* Create a new filetype in the W32 registry.
-   We should really care of errors! Otherwise we can damage the registry! */
-int
-create_file_type (const char *exefile, const char *ext, 
-		  const char *extname, char *iconfile)
-{
-    int rc;
-    HKEY reg = NULL;
-    char deficon[256], defexec[256], p_exefile[256];
-    
-    
-    rc = RegCreateKey( HKEY_CLASSES_ROOT, ext, &reg );
-    if( rc_ok( rc ) ) 
-	rc = RegSetValueEx( reg, NULL, 0, REG_SZ, (BYTE *)extname, strlen( extname ) );
-    if( rc_ok( rc ) )
-	rc = RegCloseKey( reg );
-    if( rc_ok( rc ) )    
-	rc = RegCreateKey( HKEY_CLASSES_ROOT, extname, &reg );
-    if( rc_ok( rc ) )
-	rc = RegSetValueEx( reg, NULL, 0, REG_SZ, (BYTE *) extname, strlen( extname ) );
-    if( rc_ok( rc ) )
-	rc = RegCloseKey( reg );
-    if( !rc_ok( rc ) ) {
-	rc = WPTERR_REGISTRY;
-	goto leave;
-    }
-    
-    memset( &deficon, 0, sizeof deficon );
-    _snprintf( deficon, sizeof deficon - 1, "%s\\DefaultIcon", extname );
-    memset( &defexec, 0, sizeof defexec );
-    _snprintf( defexec, sizeof defexec - 1, "%s\\shell\\open\\command", extname );	
-    memset( &p_exefile, 0, sizeof p_exefile );
-    _snprintf( p_exefile, sizeof p_exefile - 1, "%s %%1", exefile );
-    
-    rc = RegCreateKey( HKEY_CLASSES_ROOT, deficon, &reg );
-    if( rc_ok( rc ) )
-	rc = RegSetValueEx(reg, NULL, 0, REG_SZ, (BYTE *)iconfile, strlen( iconfile ) );
-    if( rc_ok( rc ) )
-	rc = RegCloseKey( reg );
-    if( rc_ok( rc ) )
-	rc = RegCreateKey( HKEY_CLASSES_ROOT, defexec, &reg );
-    if( rc_ok( rc ) )
-	rc = RegSetValueEx( reg, NULL, 0, REG_SZ, (BYTE *)p_exefile, strlen( exefile ) );
-    if( rc_ok( rc ) )
-	rc = RegCloseKey( reg );
-    if( !rc_ok( rc ) ) {
-	rc = WPTERR_REGISTRY;
-	goto leave;	
-    }
-    
-leave:
-    if( reg )
-	RegCloseKey( reg );
-    return rc;
-}
-
-
 /* Expand a string with %foo% entries so that %foo% will
    be replaced with its actual value. */
-static char *
+static char*
 expand_path (const char *path)
 {
     DWORD len;
@@ -317,10 +337,10 @@
     int rc;
 
     rc = RegOpenKeyEx (root_key, dir, 0, KEY_QUERY_VALUE, &reg_key);
-    if (!rc_ok (rc))
+    if (rc != ERROR_SUCCESS)
 	goto leave;
     rc = RegQueryValueEx (reg_key, key, NULL, &type, NULL, &nbytes);
-    if (!rc_ok (rc))
+    if (rc != ERROR_SUCCESS)
 	goto leave;
     if (!nbytes)
 	goto leave; /* empty */
@@ -328,7 +348,7 @@
     if (!p)
 	BUG (0);
     rc = RegQueryValueEx (reg_key, key, NULL, &type, (BYTE*)p,  &nbytes);
-    if (!rc_ok (rc))
+    if (rc != ERROR_SUCCESS)
 	goto leave;
     if (type == REG_EXPAND_SZ && strchr (p, '%')) {
 	pp = p;
@@ -351,39 +371,39 @@
 set_reg_entry (HKEY root_key, const char *dir, const char *key,
 	       const char *value)
 {
-    int rc = 0;
     HKEY reg_key;
+    int rc;
 
-    rc = RegOpenKeyEx( root_key, dir, 0, KEY_WRITE, &reg_key );
-    if( !rc_ok( rc ) )
+    rc = RegOpenKeyEx (root_key, dir, 0, KEY_WRITE, &reg_key);
+    if (rc != ERROR_SUCCESS)
 	return WPTERR_REGISTRY;
-    rc = RegSetValueEx( reg_key, key, 0, REG_SZ, (BYTE *)value, strlen( value ) );
-    if( !rc_ok( rc ) )
+    rc = RegSetValueEx (reg_key, key, 0, REG_SZ, (BYTE *)value, strlen (value));
+    if (rc != ERROR_SUCCESS)
 	rc = WPTERR_REGISTRY;	
-    RegCloseKey( reg_key );
+    RegCloseKey (reg_key);
     return rc;
 }
 
 
 int
-set_reg_key( HKEY root_key, const char * dir, const char * key,
-	     const char * value )
-{
-    int rc;
+set_reg_key (HKEY root_key, const char *dir, const char *key,
+	     const char *value)
+{    
     HKEY reg_key;
+    int rc;
     
     rc = RegOpenKeyEx (root_key, dir, 0, KEY_WRITE, &reg_key);
-    if (!rc_ok (rc))
+    if (rc != ERROR_SUCCESS)
 	return WPTERR_REGISTRY;
     
     rc = RegSetValueEx (reg_key, key, 0, REG_SZ, (BYTE *)value, strlen (value));
-    if (!rc_ok (rc)) {	
+    if (rc != ERROR_SUCCESS) {
 	if (RegCreateKey (root_key, key, &reg_key) != ERROR_SUCCESS) {
 	    rc = WPTERR_REGISTRY;
 	    goto leave;
 	}
 	rc = RegSetValueEx (reg_key, key, 0, REG_SZ, (BYTE *)value, strlen (value));
-	if  (!rc_ok (rc))
+	if (rc != ERROR_SUCCESS)
 	    rc = WPTERR_REGISTRY;
     }
     
@@ -394,17 +414,16 @@
 
 
 int
-set_reg_entry_gpg (const char * key, const char * value)
+set_reg_entry_gpg (const char *key, const char *value)
 {	
-    return set_reg_entry (HKEY_CURRENT_USER, "Software\\GNU\\GnuPG", key, value);
+    return set_reg_entry (HKEY_CURRENT_USER, GPG_REG, key, value);
 }
 
 
 int
-set_reg_entry_mo (const char * value)
+set_reg_entry_mo (const char *value)
 {	
-    return set_reg_entry (HKEY_CURRENT_USER, "Control Panel\\Mingw32\\NLS", 
-			  "MODir", value);
+    return set_reg_entry (HKEY_CURRENT_USER, GPG_MO_REG, "MODir", value);
 }
 
 
@@ -412,7 +431,8 @@
 get_reg_entry_gpg (const char *key)
 {
     char *p;
-    p = get_reg_entry (HKEY_CURRENT_USER, "Software\\GNU\\GnuPG", key);
+
+    p = get_reg_entry (HKEY_CURRENT_USER, GPG_REG, key);
     if (!p || strlen (p) == 0) {
 	free_if_alloc (p);
 	return NULL;
@@ -426,17 +446,19 @@
 char*
 get_reg_entry_gpg4win (const char *path)
 {
+    const char *fmt;
     char *p, *pp;
-    p = get_reg_entry (HKEY_LOCAL_MACHINE,
-		       "Software\\GNU\\GnuPG", "Install Directory");
+
+    p = get_reg_entry (HKEY_LOCAL_MACHINE, GPG_REG, "Install Directory");
     if (!p)
 	return NULL;
     if (!path)
 	return p;
-    pp = new char[strlen (p) + strlen (path) + 4];
+    fmt = "%s\\%s";
+    pp = new char[strlen (p) + strlen (path) + strlen (fmt) + 1];
     if (!pp)
 	BUG (NULL);
-    sprintf (pp, "%s\\%s", p, path);
+    sprintf (pp, fmt, p, path);
     free_if_alloc (p);
     return pp;
 }
@@ -446,52 +468,34 @@
 get_reg_entry_mo (void)
 {	
     char *p, *pp;
+    const char *fmt;
     const char *lang;
 
-    p = get_reg_entry (HKEY_CURRENT_USER, 
-		       "Control Panel\\Mingw32\\NLS", "MODir");
+    p = get_reg_entry (HKEY_CURRENT_USER, GPG_MO_REG, "MODir");
     if (p)
 	return p;
 
     lang = get_gettext_langid ();
     if (!lang)
 	return NULL;
-    pp = new char[strlen ("share\\xxxxx\\locale\\LC_MESSAGES")+8];
+    fmt = "share\\locale\\%s\\LC_MESSAGES";
+    pp = new char[strlen (fmt) + strlen (lang) + 4 + 1];
     if (!pp)    
 	BUG (NULL);
-    sprintf (pp, "share\\locale\\%s\\LC_MESSAGES", lang);
+    sprintf (pp, fmt, lang);
     p = get_reg_entry_gpg4win (pp);
     free_if_alloc (pp);
     return p;
 }
 
 
-/* All valid configuration commands. */
-static const char *cfg [] = {
-    NULL,	
-    "CacheTime",
-    "WordWrap",
-    "DefaultExt",
-    "Viewer",
-    "WipeMode",
-    "AlwaysTrust",
-    "AutoBackup",
-    "BackupMode",
-    "DisableHotkeys",	
-    "NoCompressMultiMedia",	
-    "Expert",
-    "FMProgressBar",
-    "BackupSecring"
-};
-
-
 int
 set_reg_winpt_single (int id, int val)
 {
     char buf[64];
     int rc;
 
-    sprintf (buf, "%d", val);
+    _snprintf (buf, DIM (buf)-1, "%d", val);
     rc = set_reg_entry (HKEY_CURRENT_USER, WINPT_REG, cfg[id], buf);
     return rc;
 }
@@ -515,7 +519,7 @@
 
 /* Saves the winpt preferences in the registry. */
 int
-set_reg_winpt_prefs (winpt_reg_prefs_s * opt)
+set_reg_winpt_prefs (winpt_prefs_t opt)
 {
     char buf[128];
     size_t i;
@@ -600,16 +604,16 @@
 
 
 int
-set_reg_winpt_flag (const char * name, int val)
+set_reg_winpt_flag (const char *name, int val)
 {
     return set_reg_entry (HKEY_CURRENT_USER, WINPT_REG, name, val? "1" : "0");
 }
 
 
 int
-get_reg_winpt_flag (const char * name)
+get_reg_winpt_flag (const char *name)
 {
-    char * buf;
+    char *buf;
     int flag = 0;
 
     buf = get_reg_entry (HKEY_CURRENT_USER, WINPT_REG, name);
@@ -624,7 +628,7 @@
 
 /* Retrieve the winpt preferences from the registry. */
 int
-get_reg_winpt_prefs (winpt_reg_prefs_s * opt)
+get_reg_winpt_prefs (winpt_prefs_t opt)
 {
     char *val = NULL;
     size_t i;
@@ -637,44 +641,44 @@
 	}
 	switch (i) {
 	case CFG_CACHETIME:
-	    opt->cache_time = atol (val);
+	    opt->cache_time = atoi (val);
 	    break;
 	case CFG_WORDWRAP:
-	    opt->word_wrap = atol (val);
+	    opt->word_wrap = atoi (val);
 	    break;
 	case CFG_FILEEXT:
-	    opt->default_ext = atol (val);
+	    opt->default_ext = atoi (val);
 	    break;
 	case CFG_NOZIP_MMEDIA:
-	    opt->no_zip_mmedia = atol (val);
+	    opt->no_zip_mmedia = atoi (val);
 	    break;
 	case CFG_VIEWER:
-	    opt->use_viewer = atol (val);
+	    opt->use_viewer = atoi (val);
 	    break;
 	case CFG_WIPEMODE:
-	    opt->wipe_mode = atol (val);
+	    opt->wipe_mode = atoi (val);
 	    break;
 	case CFG_DISHOTKEYS:
-	    opt->no_hotkeys = atol (val);
+	    opt->no_hotkeys = atoi (val);
 	    break;
 	case CFG_ALWAYSTRUST:
-	    opt->always_trust = atol (val);
+	    opt->always_trust = atoi (val);
 	    break;
 	case CFG_AUTOBACKUP:
-	    opt->auto_backup = atol (val);
+	    opt->auto_backup = atoi (val);
 	    break;
 	case CFG_AUTOBAKMODE:
-	    opt->backup.mode = atol (val);
+	    opt->backup.mode = atoi (val);
 	    break;
 	case CFG_EXPERT:
-	    opt->expert = atol (val);
+	    opt->expert = atoi (val);
 	    break;
 	case CFG_FM_PROGRESS:
-	    opt->fm.progress = atol (val);
+	    opt->fm.progress = atoi (val);
 	    break;
 
 	case CFG_BACKUP_INC_SKR:
-	    opt->backup.include_secr = atol (val);
+	    opt->backup.include_secr = atoi (val);
 	    break;
 	}
 	free_if_alloc (val);
@@ -715,60 +719,4 @@
 {
     return set_reg_entry (HKEY_CURRENT_USER, WINPT_REG"\\Keyserver", name, val);
 }
-
-static int
-get_reg_entry_keyserver_int (const char *key)
-{
-    char *p;
-    int val = 0;
-
-    p = get_reg_entry_keyserver (key);
-    if (p && *p)
-	val = atoi (p);
-    free_if_alloc (p);
-    return val;
-}
-
-
-void
-get_reg_proxy_prefs (keyserver_proxy_t prox)
-{
-    if (!prox)
-	return;
-    
-    free_if_alloc (prox->host);
-    prox->host = get_reg_entry_keyserver ("Host");
-    free_if_alloc (prox->user);
-    prox->user = get_reg_entry_keyserver ("User");
-    free_if_alloc (prox->pass);	
-    prox->pass = get_reg_entry_keyserver ("Pass");
-    prox->port = get_reg_entry_keyserver_int ("Port");
-}
-
-
-static int
-set_reg_entry_keyserver_int (const char *key, int val)
-{
-    char buf[32];
-
-    sprintf (buf, "%d", val);
-    return set_reg_entry_keyserver (key, buf);
-}
-
-
-int
-set_reg_proxy_prefs (keyserver_proxy_t prox)
-{    
-    int rc;
-    
-    rc = set_reg_entry_keyserver_int ("Proto", prox->proto);
-    if (!rc)
-	rc = set_reg_entry_keyserver ("Host", prox->host? prox->host : "");
-    if (!rc)
-	rc = set_reg_entry_keyserver_int ("Port", prox->port);
-    if (!rc)
-	rc = set_reg_entry_keyserver ("User", prox->user? prox->user : "");
-    if (!rc)
-	rc = set_reg_entry_keyserver ("Pass", prox->pass? prox->pass : "");
-    return rc;
-}
+#endif

Added: trunk/Src/wptRegistryMobile.cpp
===================================================================
--- trunk/Src/wptRegistryMobile.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptRegistryMobile.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -0,0 +1,369 @@
+/* wptRegistryMobile.cpp - Mobile config access
+ *	Copyright (C) 2006 Timo Schulz
+ *
+ * This file is part of WinPT.
+ *
+ * WinPT is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License 
+ * as published by the Free Software Foundation; either version 2 
+ * of the License, or (at your option) any later version.
+ *  
+ * WinPT 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 General Public License 
+ * along with WinPT; if not, write to the Free Software Foundation, 
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef WINPT_MOBILE
+#include <windows.h>
+
+#include "wptTypes.h"
+#include "wptGPG.h"
+#include "wptRegistry.h"
+#include "wptHotkey.h"
+#include "wptW32API.h"
+#include "wptErrors.h"
+
+static config_file_t pr = NULL;
+
+struct winpt_prefs_s reg_prefs;
+
+/* Because we do not use any existing software, we hardcode
+   the return to FALSE. */
+int is_gpg4win_installed (void) 
+{ 
+    return 0; 
+}
+
+/* XXX: the settings should be stored as 'winpt_prefs.txt'
+        because in mobile mode all files should be localted
+	in the same directory. */
+
+void
+free_reg_prefs (void)
+{
+    if (pr != NULL) {
+	commit_config ("c:\\winpt_prefs.txt", &pr);
+	release_config (pr);
+    }
+    pr = NULL;
+}
+
+
+static gpg_option_t
+reg_find_option (const char *key)
+{
+    if (pr == NULL)
+	parse_config ("c:\\winpt_prefs.txt", &pr);
+    return find_option (pr, key);
+}
+
+
+int
+set_reg_winpt_prefs (winpt_prefs_t opt)
+{
+    char buf[128];
+    size_t i;
+    int rc = 0;
+
+    if (pr == NULL)
+	new_config (&pr);
+
+    for (i=1; i < DIM (cfg); i++) {
+	switch (i) {
+	case CFG_CACHETIME:
+	    sprintf (buf, "%d", opt->cache_time);
+	    break;
+	case CFG_WORDWRAP:
+	    sprintf (buf, "%d", opt->word_wrap);
+	    break;
+	case CFG_WIPEMODE:
+	    sprintf (buf, "%d", opt->wipe_mode);
+	    break;
+	case CFG_FILEEXT:
+	    sprintf (buf, "%d", opt->default_ext);
+	    break;
+	case CFG_NOZIP_MMEDIA:
+	    sprintf (buf, "%d", opt->no_zip_mmedia);
+	    break;
+	case CFG_VIEWER:
+	    sprintf (buf, "%d", opt->use_viewer);
+	    break;
+	case CFG_ALWAYSTRUST:
+	    sprintf (buf, "%d", opt->always_trust);
+	    break;
+	case CFG_AUTOBACKUP:
+	    sprintf (buf, "%d", opt->auto_backup);
+	    break;
+	case CFG_AUTOBAKMODE:
+	    sprintf (buf, "%d", opt->backup.mode);
+	    break;
+	case CFG_DISHOTKEYS:
+	    sprintf (buf, "%d", opt->no_hotkeys);
+	    break;
+	case CFG_EXPERT:
+	    sprintf (buf, "%d", opt->expert);
+	    break;
+
+	case CFG_FM_PROGRESS:
+	    sprintf (buf, "%d", opt->fm.progress);
+	    break;
+
+	case CFG_BACKUP_INC_SKR:
+	    sprintf (buf, "%d", opt->backup.include_secr);
+	    break;
+	}
+	add_entry (pr, ENTRY_MULTI, cfg[i], buf);
+    }
+
+    if (opt->backup.path != NULL)
+	add_entry (pr, ENTRY_MULTI, "BackupPath", opt->backup.path);
+
+    for (i=0; wpt_hotkeys[i].name; i++) {
+	if (wpt_hotkeys[i].enabled) {
+	    buf[0] = wpt_hotkeys[i].key;
+	    buf[1] = 0;
+	    add_entry (pr, ENTRY_MULTI, wpt_hotkeys[i].name, buf);
+	}
+    }
+
+    return 0;
+}
+
+
+/* Retrieve the winpt preferences from the registry. */
+int
+get_reg_winpt_prefs (winpt_prefs_t opt)
+{
+    gpg_option_t val;
+    size_t i;
+
+    for (i=1; i < DIM (cfg); i++) {
+	val = reg_find_option (cfg[i]);
+	if (!val)
+	    continue;
+	switch (i) {
+	case CFG_CACHETIME:
+	    opt->cache_time = atoi (val->val);
+	    break;
+	case CFG_WORDWRAP:
+	    opt->word_wrap = atoi (val->val);
+	    break;
+	case CFG_FILEEXT:
+	    opt->default_ext = atoi (val->val);
+	    break;
+	case CFG_NOZIP_MMEDIA:
+	    opt->no_zip_mmedia = atoi (val->val);
+	    break;
+	case CFG_VIEWER:
+	    opt->use_viewer = atoi (val->val);
+	    break;
+	case CFG_WIPEMODE:
+	    opt->wipe_mode = atoi (val->val);
+	    break;
+	case CFG_DISHOTKEYS:
+	    opt->no_hotkeys = atoi (val->val);
+	    break;
+	case CFG_ALWAYSTRUST:
+	    opt->always_trust = atoi (val->val);
+	    break;
+	case CFG_AUTOBACKUP:
+	    opt->auto_backup = atoi (val->val);
+	    break;
+	case CFG_AUTOBAKMODE:
+	    opt->backup.mode = atoi (val->val);
+	    break;
+	case CFG_EXPERT:
+	    opt->expert = atoi (val->val);
+	    break;
+	case CFG_FM_PROGRESS:
+	    opt->fm.progress = atoi (val->val);
+	    break;
+
+	case CFG_BACKUP_INC_SKR:
+	    opt->backup.include_secr = atoi (val->val);
+	    break;
+	}
+    }
+
+    val = reg_find_option("BackupPath");
+    if (val != NULL)
+	opt->backup.path = m_strdup (val->val);
+    
+    for (i=0; wpt_hotkeys[i].name; i++) {
+	wpt_hotkeys[i].enabled = 0;
+	val = reg_find_option (wpt_hotkeys[i].name);
+	if (val != NULL && val->val && val->val[0] != ' ') {
+	    wpt_hotkeys[i].key = *val->val;
+	    wpt_hotkeys[i].enabled = 1;
+	}
+    }
+    return 0;
+}
+
+
+
+int
+regist_inst_gnupg (int create_mokey)
+{
+    return 0;
+}
+
+
+
+int
+regist_inst_winpt (int with_ext, int *created)
+{
+    return 0;
+}
+
+
+char*
+get_reg_entry (HKEY root_key, const char *dir, const char *key)
+{
+    gpg_option_t val;
+
+    val = reg_find_option (key);
+    if (!val)
+	return NULL;
+    return m_strdup (val->val);
+}
+
+
+int
+set_reg_entry (HKEY root_key, const char *dir, const char *key,
+	       const char *value)
+{
+    modify_entry (pr, ENTRY_MULTI, key, value);
+    return 0;
+}
+
+
+int
+set_reg_key (HKEY root_key, const char *dir, const char *key,
+	     const char *value)
+{    
+
+    set_reg_entry (root_key, dir, key, value);
+    return 0;
+}
+
+
+int
+set_reg_entry_gpg (const char *key, const char *value)
+{
+    
+    return set_reg_entry (HKEY_CURRENT_USER, NULL, key, value);
+}
+
+
+int
+set_reg_entry_mo (const char *value)
+{	
+    return set_reg_entry (HKEY_CURRENT_USER, NULL, "MODir", value);
+}
+
+
+char*
+get_reg_entry_gpg (const char *key)
+{
+    gpg_option_t val;
+
+    val = reg_find_option (key);
+    if (!val)
+	return NULL;
+    return m_strdup (val->val);
+}
+
+
+char*
+get_reg_entry_gpg4win (const char *path)
+{
+    return NULL;
+}
+
+    
+char*
+get_reg_entry_mo (void)
+{	
+    gpg_option_t val;
+
+    val = reg_find_option ("MODir");
+    if (val != NULL)
+	return m_strdup (val->val);
+    return NULL;
+}
+
+
+int
+set_reg_winpt_single (int id, int val)
+{
+    char buf[64];
+    int rc;
+
+    _snprintf (buf, DIM (buf)-1, "%d", val);
+    rc = set_reg_entry (HKEY_CURRENT_USER, NULL, cfg[id], buf);
+    return rc;
+}
+
+
+int
+get_reg_winpt_single (int id)
+{
+    char *buf;
+    int val = 0;
+
+    buf = get_reg_entry (HKEY_CURRENT_USER, NULL, cfg[id]);
+    if (buf && *buf != ' ')
+	val = 1;
+    else if (!buf)
+	val = -1;
+    free_if_alloc (buf);
+    return val;
+}
+
+
+
+int
+set_reg_winpt_flag (const char *name, int val)
+{
+    return set_reg_entry (HKEY_CURRENT_USER, NULL, name, val? "1" : "0");
+}
+
+
+int
+get_reg_winpt_flag (const char *name)
+{
+    char *buf;
+    int flag = 0;
+
+    buf = get_reg_entry (HKEY_CURRENT_USER, NULL, name);
+    if (buf && buf[0] == '1')
+	flag = 1;
+    else if (!buf || buf && buf[0] != '0')
+	flag = -1;
+    free_if_alloc (buf);
+    return flag;
+}
+
+
+char*
+get_reg_entry_keyserver (const char *name)
+{
+    return get_reg_entry (HKEY_CURRENT_USER, NULL, name);
+}
+
+
+int
+set_reg_entry_keyserver (const char *name, const char *val)
+{
+    return set_reg_entry (HKEY_CURRENT_USER, NULL, name, val);
+}
+#endif

Modified: trunk/Src/wptVerifyList.cpp
===================================================================
--- trunk/Src/wptVerifyList.cpp	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/Src/wptVerifyList.cpp	2006-10-21 18:08:57 UTC (rev 270)
@@ -229,7 +229,7 @@
     if (listview_add_item_image (lv, " ", is_bad))
 	return WPTERR_GENERAL;
         
-    listview_add_sub_item (lv, 0, VER_COL_NAME, "Clipboard");
+    listview_add_sub_item (lv, 0, VER_COL_NAME, _("Clipboard"));
 
     memset (&key, 0, sizeof (key));
     winpt_get_pubkey (sig->fpr, &key);
@@ -273,9 +273,11 @@
     struct winpt_key_s key;
     const char *attr;
     char t[64], *name;
+    int is_bad;
 
     lv = vlv->lv;
-    if (listview_add_item (lv, "")) {
+    is_bad = sig->summary & GPGME_SIGSUM_RED? 1 : 0;
+    if (listview_add_item_image (lv, "", is_bad)) {
 	log_debug ("verlist_add_sig_log: listview_add_item() failed.\n");
 	return WPTERR_GENERAL;
     }

Modified: trunk/TODO
===================================================================
--- trunk/TODO	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/TODO	2006-10-21 18:08:57 UTC (rev 270)
@@ -47,3 +47,13 @@
   Otherwise the process would take too much time and propably
   the window/process freezes up.
   (fixed in gpgme 1.1.1)
+
+Mobile Mode
+===========
+
+To allow to run WinPT from an USB stick without any dependencies,
+we need to provide stubs for the registry access. This is done in
+wptRegistryMobile.cpp. It must be assured that no system variable
+or path will be used. For example that GPG uses an existing homedir
+on the hard disk instead of the USB stick keyrings. 
+

Modified: trunk/configure.ac
===================================================================
--- trunk/configure.ac	2006-09-30 12:08:57 UTC (rev 269)
+++ trunk/configure.ac	2006-10-21 18:08:57 UTC (rev 270)
@@ -15,7 +15,7 @@
 
 # Version number: Remember to change it immediately *after* a release.
 #                 Add a "-cvs" prefix for non-released code.
-AC_INIT(WinPT, 1.0.2-cvs, http://www.winpt.org)
+AC_INIT(WinPT, 1.0.2, http://www.winpt.org)
 NEED_GPG_VERSION=1.4.2
 NEED_GPGME_API=1
 NEED_GPGME_VERSION=1.1.1



More information about the Winpt-commits mailing list