[Winpt-commits] r144 - in trunk: Po Src

scm-commit at wald.intevation.org scm-commit at wald.intevation.org
Thu Jan 12 17:28:08 CET 2006


Author: twoaday
Date: 2006-01-12 17:28:06 +0100 (Thu, 12 Jan 2006)
New Revision: 144

Modified:
   trunk/Po/ChangeLog
   trunk/Po/de.po
   trunk/Src/ChangeLog
   trunk/Src/WinPT-en.rc
   trunk/Src/resource.h
   trunk/Src/wptGPGMEData.cpp
   trunk/Src/wptImagelist.cpp
   trunk/Src/wptKeyManagerDlg.cpp
   trunk/Src/wptKeyserver.cpp
   trunk/Src/wptKeyserverDlg.cpp
   trunk/Src/wptListView.cpp
   trunk/Src/wptPreferencesDlg.cpp
Log:
2006-01-12  Timo Schulz  <ts at g10code.com>
 
        * wptListView.cpp (listview_set_image_list): Make icons
        always transparent.
        * wptImageList.cpp (imagelist_load): New icons.
        * wptGPGMEData.cpp (gpg_data_putc): New.
        * wptKeyManagerDlg.cpp (load_toolbar): Include new icons.
        (keymanager_dlg_proc): Add tooltips.
        * wptKeyserverDlg.cpp (keyserver_list_build): Use icons.
        * wptKeyserver.cpp (URL_encode): New.
        (URL_must_encode): New.
        (kserver_search_init): Properly encode pattern.
        (parse_iso_date): New.
        (keyserver_search): Be more strict to prevent buffer overflows.
         
2006-01-11  Timo Schulz  <ts at g10code.com>
 
        * wptKeyManagerDlg.cpp (load_toolbar): 2 new icons.
        (keymanager_dlg_proc): Adjust tooltips.
        (update_ui_items): Handle new icons.
        * wptImageList.cpp (imagelist_load): New icons.



Modified: trunk/Po/ChangeLog
===================================================================
--- trunk/Po/ChangeLog	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Po/ChangeLog	2006-01-12 16:28:06 UTC (rev 144)
@@ -1,3 +1,7 @@
+2006-01-12  Timo Schulz  <ts at g10code.com>
+
+	* de.po: Updated.
+	
 2006-01-11  Timo Schulz  <ts at g10code.com>
 
 	* de.po: Updated.

Modified: trunk/Po/de.po
===================================================================
--- trunk/Po/de.po	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Po/de.po	2006-01-12 16:28:06 UTC (rev 144)
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: WinPT 0.11.4\n"
 "Report-Msgid-Bugs-To: winpt at freakmail.de\n"
-"POT-Creation-Date: 2006-01-11 13:52+0100\n"
+"POT-Creation-Date: 2006-01-12 14:46+0100\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"
@@ -53,12 +53,12 @@
 "Sorry, Sie benötigen eine neuere GPG-Version.\n"
 "Aktuelle GPG-Version %d.%d.%d benötigte benoetigte GPG version "
 
-#: Src/WinPT.cpp:247 Src/wptKeyManagerDlg.cpp:955 Src/wptKeyserverDlg.cpp:56
+#: Src/WinPT.cpp:247 Src/wptKeyManagerDlg.cpp:961 Src/wptKeyserverDlg.cpp:56
 #: Src/wptKeyserverDlg.cpp:186 Src/wptKeyserverDlg.cpp:194
 #: Src/wptKeyserverDlg.cpp:210 Src/wptKeyserverDlg.cpp:357
-#: Src/wptKeyserverDlg.cpp:362 Src/wptKeyserverDlg.cpp:492
-#: Src/wptKeyserverDlg.cpp:499 Src/wptKeyserverDlg.cpp:505
-#: Src/wptKeyserverDlg.cpp:521 Src/wptKeyserverDlg.cpp:534
+#: Src/wptKeyserverDlg.cpp:362 Src/wptKeyserverDlg.cpp:495
+#: Src/wptKeyserverDlg.cpp:502 Src/wptKeyserverDlg.cpp:508
+#: Src/wptKeyserverDlg.cpp:524 Src/wptKeyserverDlg.cpp:537
 #: Src/wptKeyserverSearchDlg.cpp:127
 msgid "Keyserver"
 msgstr "Schlüsselserver"
@@ -173,7 +173,7 @@
 msgid "About GnuPG"
 msgstr "Über GnuPG"
 
-#: Src/wptAboutDlgs.cpp:97 Src/wptKeyManagerDlg.cpp:1626
+#: Src/wptAboutDlgs.cpp:97 Src/wptKeyManagerDlg.cpp:1648
 #: Src/wptMainProc.cpp:576
 msgid "About WinPT"
 msgstr "Über WinPT"
@@ -224,7 +224,7 @@
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:700
 #: Src/wptAboutDlgs.cpp:116 Src/wptKeyEditDlgs.cpp:1808
-#: Src/wptKeyManagerDlg.cpp:961
+#: Src/wptKeyManagerDlg.cpp:967
 msgid "&Help"
 msgstr "&Hilfe"
 
@@ -341,7 +341,7 @@
 msgid "Make off-card backup of encryption key"
 msgstr ""
 
-#: Src/wptCardDlg.cpp:608 Src/wptKeyManagerDlg.cpp:1516
+#: Src/wptCardDlg.cpp:608 Src/wptKeyManagerDlg.cpp:1538
 msgid "Card Key Generation"
 msgstr "Karten-Schlüsselerzeugung"
 
@@ -574,7 +574,7 @@
 msgstr "'>' hinzufügen"
 
 #: Src/wptClipEditDlg.cpp:202 Src/wptKeyEditDlgs.cpp:1807
-#: Src/wptKeyserverDlg.cpp:449 Src/wptMDSumDlg.cpp:104
+#: Src/wptKeyserverDlg.cpp:452 Src/wptMDSumDlg.cpp:104
 #: Src/wptOwnertrustDlg.cpp:103
 msgid "&Close"
 msgstr "&Schliessen"
@@ -789,8 +789,8 @@
 #: Src/wptKeyEditDlgs.cpp:1678 Src/wptKeyEditDlgs.cpp:1687
 #: Src/wptKeyEditDlgs.cpp:1788 Src/wptKeyEditDlgs.cpp:1798
 #: Src/wptKeyEditDlgs.cpp:1809 Src/wptKeyEditDlgs.cpp:1838
-#: Src/wptKeyEditDlgs.cpp:1844 Src/wptKeyManagerDlg.cpp:989
-#: Src/wptKeyManagerDlg.cpp:1660
+#: Src/wptKeyEditDlgs.cpp:1844 Src/wptKeyManagerDlg.cpp:995
+#: Src/wptKeyManagerDlg.cpp:1682
 msgid "Key Edit"
 msgstr "Schlüssel bearbeiten"
 
@@ -1259,8 +1259,8 @@
 msgid "Export"
 msgstr "Exportieren"
 
-#: Src/wptFileManager.cpp:1695 Src/wptKeyManagerDlg.cpp:1584
-#: Src/wptKeyManagerDlg.cpp:1618
+#: Src/wptFileManager.cpp:1695 Src/wptKeyManagerDlg.cpp:1606
+#: Src/wptKeyManagerDlg.cpp:1640
 msgid "Choose Name for Key File"
 msgstr "Den Namen der Schlüsseldatei wählen"
 
@@ -1358,17 +1358,17 @@
 msgid "Signature mode"
 msgstr "Signaturmodus"
 
-#: Src/wptFileManagerDlg.cpp:276 Src/wptKeyManagerDlg.cpp:953
+#: Src/wptFileManagerDlg.cpp:276 Src/wptKeyManagerDlg.cpp:959
 msgid "Options"
 msgstr "Optionen"
 
 #: Src/wptFileManagerDlg.cpp:322 Src/wptKeyEditDlgs.cpp:1228
 #: Src/wptKeyEditDlgs.cpp:1277 Src/wptKeyEditDlgs.cpp:1351
 #: Src/wptKeyManager.cpp:611 Src/wptKeyManager.cpp:712
-#: Src/wptKeyManager.cpp:749 Src/wptKeyManagerDlg.cpp:1352
-#: Src/wptKeyManagerDlg.cpp:1371 Src/wptKeyManagerDlg.cpp:1405
-#: Src/wptKeyManagerDlg.cpp:1424 Src/wptKeyManagerDlg.cpp:1441
-#: Src/wptKeyManagerDlg.cpp:1574 Src/wptKeyManagerDlg.cpp:1593
+#: Src/wptKeyManager.cpp:749 Src/wptKeyManagerDlg.cpp:1374
+#: Src/wptKeyManagerDlg.cpp:1393 Src/wptKeyManagerDlg.cpp:1427
+#: Src/wptKeyManagerDlg.cpp:1446 Src/wptKeyManagerDlg.cpp:1463
+#: Src/wptKeyManagerDlg.cpp:1596 Src/wptKeyManagerDlg.cpp:1615
 #: Src/wptKeyserverSearchDlg.cpp:127
 msgid "Please select a key."
 msgstr "Bitte Schlüssel wählen."
@@ -1386,17 +1386,17 @@
 msgid "File Manager (use drag & drop to add files)"
 msgstr "Dateimanager (Drag & Drop möglich)"
 
-#: Src/wptFileManagerDlg.cpp:458 Src/wptKeyManagerDlg.cpp:926
+#: Src/wptFileManagerDlg.cpp:458 Src/wptKeyManagerDlg.cpp:932
 #: Src/wptOwnertrustDlg.cpp:98
 msgid "File"
 msgstr "Datei"
 
-#: Src/wptFileManagerDlg.cpp:459 Src/wptKeyManagerDlg.cpp:927
-#: Src/wptKeyManagerDlg.cpp:932 Src/wptKeyManagerDlg.cpp:943
+#: Src/wptFileManagerDlg.cpp:459 Src/wptKeyManagerDlg.cpp:933
+#: Src/wptKeyManagerDlg.cpp:938 Src/wptKeyManagerDlg.cpp:949
 msgid "Edit"
 msgstr "Bearbeiten"
 
-#: Src/wptFileManagerDlg.cpp:460 Src/wptKeyManagerDlg.cpp:928
+#: Src/wptFileManagerDlg.cpp:460 Src/wptKeyManagerDlg.cpp:934
 msgid "View"
 msgstr "Ansicht"
 
@@ -1416,8 +1416,8 @@
 msgid "&Decrypt"
 msgstr "&Entschlüsseln"
 
-#: Src/wptFileManagerDlg.cpp:465 Src/wptKeyManagerDlg.cpp:944
-#: Src/wptKeyManagerDlg.cpp:992
+#: Src/wptFileManagerDlg.cpp:465 Src/wptKeyManagerDlg.cpp:950
+#: Src/wptKeyManagerDlg.cpp:998
 msgid "&Sign"
 msgstr "&Signieren"
 
@@ -1615,7 +1615,7 @@
 #: Src/wptGPGPrefsDlg.cpp:190 Src/wptGPGPrefsDlg.cpp:196
 #: Src/wptGPGPrefsDlg.cpp:201 Src/wptGPGPrefsDlg.cpp:206
 #: Src/wptGPGPrefsDlg.cpp:211 Src/wptGPGPrefsDlg.cpp:225
-#: Src/wptKeyEditDlgs.cpp:1623 Src/wptKeyManagerDlg.cpp:954
+#: Src/wptKeyEditDlgs.cpp:1623 Src/wptKeyManagerDlg.cpp:960
 #: Src/wptMainProc.cpp:430 Src/wptPreferencesDlg.cpp:209
 #: Src/wptPreferencesDlg.cpp:260 Src/wptPreferencesDlg.cpp:271
 #: Src/wptPreferencesDlg.cpp:283 Src/wptPreferencesDlg.cpp:296
@@ -1754,7 +1754,7 @@
 "Aktuelle Daten gehen verloren\n"
 "Sind Sie sicher?"
 
-#: Src/wptGPGPrefsDlg.cpp:128 Src/wptKeyManagerDlg.cpp:1548
+#: Src/wptGPGPrefsDlg.cpp:128 Src/wptKeyManagerDlg.cpp:1570
 #: Src/wptMainProc.cpp:588
 msgid "GnuPG Preferences"
 msgstr "GnuPG-Einstellungen"
@@ -1875,7 +1875,7 @@
 msgid "Unknown Hotkey"
 msgstr "Unbekanntes Tastenkürzel"
 
-#: Src/wptImagelist.cpp:50 Src/wptKeyManager.cpp:178 Src/wptKeyManager.cpp:183
+#: Src/wptImagelist.cpp:52 Src/wptKeyManager.cpp:178 Src/wptKeyManager.cpp:183
 #: Src/wptKeyManager.cpp:234 Src/wptKeyManager.cpp:313
 #: Src/wptKeyManager.cpp:320 Src/wptKeyManager.cpp:349
 #: Src/wptKeyManager.cpp:354 Src/wptKeyManager.cpp:361
@@ -1892,16 +1892,16 @@
 #: Src/wptKeyManager.cpp:744 Src/wptKeyManager.cpp:749
 #: Src/wptKeyManager.cpp:777 Src/wptKeyManager.cpp:819
 #: Src/wptKeyManager.cpp:826 Src/wptKeyManager.cpp:886
-#: Src/wptKeyManager.cpp:916 Src/wptKeyManagerDlg.cpp:1048
-#: Src/wptKeyManagerDlg.cpp:1069 Src/wptKeyManagerDlg.cpp:1325
-#: Src/wptKeyManagerDlg.cpp:1353 Src/wptKeyManagerDlg.cpp:1371
-#: Src/wptKeyManagerDlg.cpp:1379 Src/wptKeyManagerDlg.cpp:1389
-#: Src/wptKeyManagerDlg.cpp:1405 Src/wptKeyManagerDlg.cpp:1411
-#: Src/wptKeyManagerDlg.cpp:1424 Src/wptKeyManagerDlg.cpp:1441
-#: Src/wptKeyManagerDlg.cpp:1473 Src/wptKeyManagerDlg.cpp:1512
-#: Src/wptKeyManagerDlg.cpp:1575 Src/wptKeyManagerDlg.cpp:1593
-#: Src/wptKeyManagerDlg.cpp:1598 Src/wptKeyManagerDlg.cpp:1603
-#: Src/wptKeyManagerDlg.cpp:1689 Src/wptKeyManagerDlg.cpp:1864
+#: Src/wptKeyManager.cpp:916 Src/wptKeyManagerDlg.cpp:1054
+#: Src/wptKeyManagerDlg.cpp:1075 Src/wptKeyManagerDlg.cpp:1347
+#: Src/wptKeyManagerDlg.cpp:1375 Src/wptKeyManagerDlg.cpp:1393
+#: Src/wptKeyManagerDlg.cpp:1401 Src/wptKeyManagerDlg.cpp:1411
+#: Src/wptKeyManagerDlg.cpp:1427 Src/wptKeyManagerDlg.cpp:1433
+#: Src/wptKeyManagerDlg.cpp:1446 Src/wptKeyManagerDlg.cpp:1463
+#: Src/wptKeyManagerDlg.cpp:1495 Src/wptKeyManagerDlg.cpp:1534
+#: Src/wptKeyManagerDlg.cpp:1597 Src/wptKeyManagerDlg.cpp:1615
+#: Src/wptKeyManagerDlg.cpp:1620 Src/wptKeyManagerDlg.cpp:1625
+#: Src/wptKeyManagerDlg.cpp:1711 Src/wptKeyManagerDlg.cpp:1886
 #: Src/wptKeysigDlg.cpp:88 Src/wptKeysigDlg.cpp:99 Src/wptKeysigDlg.cpp:270
 #: Src/wptKeysigDlg.cpp:346 Src/wptKeysigDlg.cpp:355 Src/wptKeysigDlg.cpp:399
 #: Src/wptMainProc.cpp:398 Src/wptMainProc.cpp:551 Src/wptMainProc.cpp:559
@@ -1937,20 +1937,20 @@
 msgstr "Ungültige Benutzerkennung"
 
 #: Src/wptImportList.cpp:352 Src/wptKeylist.cpp:537 Src/wptKeylist.cpp:545
-#: Src/wptKeyManagerDlg.cpp:872 Src/wptKeyManagerDlg.cpp:940
+#: Src/wptKeyManagerDlg.cpp:878 Src/wptKeyManagerDlg.cpp:946
 #: Src/wptKeyserverSearchDlg.cpp:48 Src/wptSigList.cpp:51
 #: Src/wptVerifyList.cpp:101 Src/wptVerifyList.cpp:110
 msgid "User ID"
 msgstr "Benutzerkennung"
 
 #: Src/wptImportList.cpp:353 Src/wptKeylist.cpp:539 Src/wptKeylist.cpp:548
-#: Src/wptKeyManagerDlg.cpp:875 Src/wptKeyserverSearchDlg.cpp:45
+#: Src/wptKeyManagerDlg.cpp:881 Src/wptKeyserverSearchDlg.cpp:45
 msgid "Size"
 msgstr "Größe"
 
 #: Src/wptImportList.cpp:354 Src/wptKeyEditDlgs.cpp:952 Src/wptKeylist.cpp:538
-#: Src/wptKeylist.cpp:546 Src/wptKeyManagerDlg.cpp:873
-#: Src/wptKeyManagerDlg.cpp:963 Src/wptKeyRevokersDlg.cpp:58
+#: Src/wptKeylist.cpp:546 Src/wptKeyManagerDlg.cpp:879
+#: Src/wptKeyManagerDlg.cpp:969 Src/wptKeyRevokersDlg.cpp:58
 #: Src/wptKeyserverSearchDlg.cpp:46 Src/wptSigList.cpp:55
 #: Src/wptVerifyList.cpp:109
 msgid "Key ID"
@@ -1958,13 +1958,13 @@
 
 #: Src/wptImportList.cpp:355 Src/wptKeyEditDlgs.cpp:953
 #: Src/wptKeyEditDlgs.cpp:1060 Src/wptKeylist.cpp:552
-#: Src/wptKeyManagerDlg.cpp:879 Src/wptKeyManagerDlg.cpp:966
+#: Src/wptKeyManagerDlg.cpp:885 Src/wptKeyManagerDlg.cpp:972
 #: Src/wptKeyserverSearchDlg.cpp:47 Src/wptSigList.cpp:54
 msgid "Creation"
 msgstr "Erstellung"
 
 #: Src/wptImportList.cpp:356 Src/wptKeylist.cpp:547
-#: Src/wptKeyManagerDlg.cpp:874 Src/wptKeyManagerDlg.cpp:965
+#: Src/wptKeyManagerDlg.cpp:880 Src/wptKeyManagerDlg.cpp:971
 msgid "Type"
 msgstr "Typ"
 
@@ -2207,7 +2207,7 @@
 #: Src/wptKeyEditDlgs.cpp:842 Src/wptKeyEditDlgs.cpp:855
 #: Src/wptKeyEditDlgs.cpp:896 Src/wptKeyEditDlgs.cpp:1273
 #: Src/wptKeyEditDlgs.cpp:1346 Src/wptKeyEditDlgs.cpp:1405
-#: Src/wptKeyManagerDlg.cpp:1378
+#: Src/wptKeyManagerDlg.cpp:1400
 msgid "There is no secret key available!"
 msgstr "Kein geheimer Schlüssel vorhanden!"
 
@@ -2268,7 +2268,7 @@
 msgstr "Kein(e) Unterschlüssel gefunden."
 
 #: Src/wptKeyEditDlgs.cpp:1057 Src/wptKeylist.cpp:541 Src/wptKeylist.cpp:550
-#: Src/wptKeyManagerDlg.cpp:877
+#: Src/wptKeyManagerDlg.cpp:883
 msgid "Validity"
 msgstr "Gültigkeit"
 
@@ -2530,8 +2530,8 @@
 msgstr "Bitte wählen Sie einen Eintrag."
 
 #: Src/wptKeyEditOwnertrustDlg.cpp:88 Src/wptKeyEditOwnertrustDlg.cpp:95
-#: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:934
-#: Src/wptKeyManagerDlg.cpp:1642 Src/wptKeyPropsDlg.cpp:286
+#: Src/wptKeyEditOwnertrustDlg.cpp:104 Src/wptKeyManagerDlg.cpp:940
+#: Src/wptKeyManagerDlg.cpp:1664 Src/wptKeyPropsDlg.cpp:286
 #: Src/wptOwnertrustDlg.cpp:97 Src/wptOwnertrustDlg.cpp:121
 #: Src/wptOwnertrustDlg.cpp:133
 msgid "Ownertrust"
@@ -2554,7 +2554,7 @@
 #: Src/wptKeygenDlg.cpp:421 Src/wptKeygenDlg.cpp:426 Src/wptKeygenDlg.cpp:432
 #: Src/wptKeygenDlg.cpp:439 Src/wptKeygenDlg.cpp:451 Src/wptKeygenDlg.cpp:458
 #: Src/wptKeygenDlg.cpp:493 Src/wptKeygenDlg.cpp:584
-#: Src/wptKeyManagerDlg.cpp:1501 Src/wptPassphraseDlg.cpp:94
+#: Src/wptKeyManagerDlg.cpp:1523 Src/wptPassphraseDlg.cpp:94
 msgid "Key Generation"
 msgstr "Schlüsselerzeugung"
 
@@ -2708,7 +2708,7 @@
 
 #: Src/wptKeygenDlg.cpp:543 Src/wptKeygenDlg.cpp:565 Src/wptKeygenDlg.cpp:570
 #: Src/wptKeygenDlg.cpp:576 Src/wptKeygenDlg.cpp:581 Src/wptKeygenDlg.cpp:605
-#: Src/wptKeyManagerDlg.cpp:1527
+#: Src/wptKeyManagerDlg.cpp:1549
 msgid "Key Generation Wizard"
 msgstr "Schlüsselerzeugungs-Assistent"
 
@@ -2797,12 +2797,12 @@
 msgid "Disabled"
 msgstr "Inaktiv"
 
-#: Src/wptKeylist.cpp:540 Src/wptKeylist.cpp:549 Src/wptKeyManagerDlg.cpp:876
-#: Src/wptKeyManagerDlg.cpp:964
+#: Src/wptKeylist.cpp:540 Src/wptKeylist.cpp:549 Src/wptKeyManagerDlg.cpp:882
+#: Src/wptKeyManagerDlg.cpp:970
 msgid "Cipher"
 msgstr "Cipher"
 
-#: Src/wptKeylist.cpp:551 Src/wptKeyManagerDlg.cpp:878
+#: Src/wptKeylist.cpp:551 Src/wptKeyManagerDlg.cpp:884
 #: Src/wptVerifyList.cpp:100 Src/wptVerifyList.cpp:108
 msgid "Trust"
 msgstr "Vertrauen"
@@ -2992,282 +2992,299 @@
 msgid "String pattern \"%s\" not found."
 msgstr "Zeichenkette \"%s\" nicht gefunden."
 
-#: Src/wptKeyManagerDlg.cpp:429 Src/wptKeyManagerDlg.cpp:984
+#: Src/wptKeyManagerDlg.cpp:434 Src/wptKeyManagerDlg.cpp:990
 msgid "Paste Key from Clipboard"
 msgstr "Schlüssel aus Ablage einfügen"
 
-#: Src/wptKeyManagerDlg.cpp:457
+#: Src/wptKeyManagerDlg.cpp:462
 #, c-format
 msgid "Default Key: %s"
 msgstr "Standardschlüssel: %s"
 
-#: Src/wptKeyManagerDlg.cpp:459
+#: Src/wptKeyManagerDlg.cpp:464
 #, c-format
 msgid "Default Key: 0x%s"
 msgstr "Standardschlüssel: 0x%s"
 
-#: Src/wptKeyManagerDlg.cpp:479
+#: Src/wptKeyManagerDlg.cpp:484
 #, c-format
 msgid "%d secret keys"
 msgstr "%d geheime Schlüssel"
 
 # c:\oss\winpt-gpgme\src\wptKeyManager.cpp:849
-#: Src/wptKeyManagerDlg.cpp:480
+#: Src/wptKeyManagerDlg.cpp:485
 #, c-format
 msgid "%d keys"
 msgstr "%d Schlüssel"
 
-#: Src/wptKeyManagerDlg.cpp:929
+#: Src/wptKeyManagerDlg.cpp:935
 msgid "Key"
 msgstr "Schlüssel"
 
-#: Src/wptKeyManagerDlg.cpp:930 Src/wptKeyManagerDlg.cpp:1082
+#: Src/wptKeyManagerDlg.cpp:936 Src/wptKeyManagerDlg.cpp:1088
 msgid "Groups"
 msgstr "Gruppen"
 
 # c:\oss\winpt-gpgme\src\wptFileManagerDlg.cpp:478
-#: Src/wptKeyManagerDlg.cpp:933
+#: Src/wptKeyManagerDlg.cpp:939
 msgid "Send Mail..."
 msgstr "eMail versenden..."
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:685
-#: Src/wptKeyManagerDlg.cpp:935
+#: Src/wptKeyManagerDlg.cpp:941
 msgid "&Copy\tCtrl+C"
 msgstr "&Kopieren\tCtrl+C"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:686
-#: Src/wptKeyManagerDlg.cpp:936
+#: Src/wptKeyManagerDlg.cpp:942
 msgid "&Paste\tCtrl+V"
 msgstr "&Einfügen\tCtrl+V"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:687
-#: Src/wptKeyManagerDlg.cpp:937
+#: Src/wptKeyManagerDlg.cpp:943
 msgid "Search...\tCtrl+F"
 msgstr "Suchen...\tCtrl+F"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:688
-#: Src/wptKeyManagerDlg.cpp:938
+#: Src/wptKeyManagerDlg.cpp:944
 msgid "Select All\tCtrl+A"
 msgstr "Alles markieren\tCtrl+A"
 
-#: Src/wptKeyManagerDlg.cpp:939
+#: Src/wptKeyManagerDlg.cpp:945
 msgid "&Quit"
 msgstr "&Beenden"
 
-#: Src/wptKeyManagerDlg.cpp:941
+#: Src/wptKeyManagerDlg.cpp:947
 msgid "&Expert"
 msgstr "&Experte"
 
-#: Src/wptKeyManagerDlg.cpp:942
+#: Src/wptKeyManagerDlg.cpp:948
 msgid "&Normal"
 msgstr "&Normal"
 
-#: Src/wptKeyManagerDlg.cpp:945 Src/wptKeyManagerDlg.cpp:946
-#: Src/wptKeyManagerDlg.cpp:990
+#: Src/wptKeyManagerDlg.cpp:951 Src/wptKeyManagerDlg.cpp:952
+#: Src/wptKeyManagerDlg.cpp:996
 msgid "&Delete"
 msgstr "&Löschen"
 
-#: Src/wptKeyManagerDlg.cpp:947 Src/wptKeyManagerDlg.cpp:991
+#: Src/wptKeyManagerDlg.cpp:953 Src/wptKeyManagerDlg.cpp:997
 msgid "&Revoke Cert"
 msgstr "Widerruf Zertifikat"
 
-#: Src/wptKeyManagerDlg.cpp:948 Src/wptKeyManagerDlg.cpp:987
+#: Src/wptKeyManagerDlg.cpp:954 Src/wptKeyManagerDlg.cpp:993
 msgid "&List Signatures"
 msgstr "Signaturen anzeigen"
 
-#: Src/wptKeyManagerDlg.cpp:949 Src/wptKeyManagerDlg.cpp:1419
+#: Src/wptKeyManagerDlg.cpp:955 Src/wptKeyManagerDlg.cpp:1441
 #: Src/wptKeyTrustPathDlg.cpp:130
 msgid "List Trust Path"
 msgstr "Zeige Vertrauenspfad"
 
-#: Src/wptKeyManagerDlg.cpp:950
+#: Src/wptKeyManagerDlg.cpp:956
 msgid "&Export..."
 msgstr "&Exportieren..."
 
-#: Src/wptKeyManagerDlg.cpp:951
+#: Src/wptKeyManagerDlg.cpp:957
 msgid "&Import..."
 msgstr "&Importieren..."
 
-#: Src/wptKeyManagerDlg.cpp:952 Src/wptKeyManagerDlg.cpp:988
+#: Src/wptKeyManagerDlg.cpp:958 Src/wptKeyManagerDlg.cpp:994
 #: Src/wptKeysigDlg.cpp:384
 msgid "&Properties"
 msgstr "&Eigenschaften"
 
-#: Src/wptKeyManagerDlg.cpp:956
+#: Src/wptKeyManagerDlg.cpp:962
 msgid "E&xport Secret Key"
 msgstr "E&xportiere geheimen Schlüssel"
 
-#: Src/wptKeyManagerDlg.cpp:957
+#: Src/wptKeyManagerDlg.cpp:963
 msgid "Re&load Key Cache"
 msgstr "Erneuere Sch&lüsselcache"
 
-#: Src/wptKeyManagerDlg.cpp:958
+#: Src/wptKeyManagerDlg.cpp:964
 msgid "R&everify Signatures"
 msgstr "Signaturen erneut prüfen"
 
-#: Src/wptKeyManagerDlg.cpp:959
+#: Src/wptKeyManagerDlg.cpp:965
 msgid "Refresh &Keys (Keyserver)"
 msgstr "Vom Schlüsselserver aktualisieren"
 
-#: Src/wptKeyManagerDlg.cpp:960 Src/wptTextInputDlg.cpp:49
+#: Src/wptKeyManagerDlg.cpp:966 Src/wptTextInputDlg.cpp:49
 msgid "Info"
 msgstr "Über"
 
-#: Src/wptKeyManagerDlg.cpp:979
+#: Src/wptKeyManagerDlg.cpp:985
 msgid "Copy User ID to Clipboard"
 msgstr "Kopiere Benutzerkennung in Ablage"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:886
-#: Src/wptKeyManagerDlg.cpp:980
+#: Src/wptKeyManagerDlg.cpp:986
 msgid "Copy Key ID to Clipboard"
 msgstr "Kopiere Schlüssel ID in Ablage"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:887
-#: Src/wptKeyManagerDlg.cpp:981
+#: Src/wptKeyManagerDlg.cpp:987
 msgid "Copy Fingerprint to Clipboard"
 msgstr "Kopiere Fingerprint in Ablage"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:888
-#: Src/wptKeyManagerDlg.cpp:982
+#: Src/wptKeyManagerDlg.cpp:988
 msgid "Copy Key Info to Clipboard"
 msgstr "Kopiere Schlüssel Info in Ablage"
 
-#: Src/wptKeyManagerDlg.cpp:983
+#: Src/wptKeyManagerDlg.cpp:989
 msgid "Copy Key to Clipboard"
 msgstr "Kopiere Schlüssel in Ablage"
 
-#: Src/wptKeyManagerDlg.cpp:985
+#: Src/wptKeyManagerDlg.cpp:991
 msgid "Refresh from Keyserver"
 msgstr "Vom Schlüsselserver aktualisieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:884
-#: Src/wptKeyManagerDlg.cpp:986
+#: Src/wptKeyManagerDlg.cpp:992
 msgid "Set Implicit &Trust"
 msgstr "Setze impliziertes Vertrauen"
 
-#: Src/wptKeyManagerDlg.cpp:993
+#: Src/wptKeyManagerDlg.cpp:999
 msgid "&Enable"
 msgstr "&Aktivieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:892
-#: Src/wptKeyManagerDlg.cpp:994
+#: Src/wptKeyManagerDlg.cpp:1000
 msgid "&Disable"
 msgstr "&Deaktivieren"
 
-#: Src/wptKeyManagerDlg.cpp:995
+#: Src/wptKeyManagerDlg.cpp:1001
 msgid "Re&fresh from Keyserver"
 msgstr "Vom Schlüsselserver aktualisieren"
 
-#: Src/wptKeyManagerDlg.cpp:996
+#: Src/wptKeyManagerDlg.cpp:1002
 msgid "Set preferred Keyserver URL"
 msgstr "Setze bevorzugte Keyserver URL"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:900
-#: Src/wptKeyManagerDlg.cpp:997
+#: Src/wptKeyManagerDlg.cpp:1003
 msgid "Send Key to Mail Recipient"
 msgstr "Sende Schlüssel an Mailempfänger"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:904
-#: Src/wptKeyManagerDlg.cpp:998
+#: Src/wptKeyManagerDlg.cpp:1004
 msgid "Set as Default Key"
 msgstr "Setze als Default Key"
 
-#: Src/wptKeyManagerDlg.cpp:1000
+#: Src/wptKeyManagerDlg.cpp:1006
 msgid "Key..."
 msgstr "Schlüssel..."
 
-#: Src/wptKeyManagerDlg.cpp:1001
+#: Src/wptKeyManagerDlg.cpp:1007
 msgid "User ID..."
 msgstr "Benutzerkennung..."
 
-#: Src/wptKeyManagerDlg.cpp:1002
+#: Src/wptKeyManagerDlg.cpp:1008
 msgid "Photo ID..."
 msgstr "Photo ID..."
 
-#: Src/wptKeyManagerDlg.cpp:1003
+#: Src/wptKeyManagerDlg.cpp:1009
 msgid "Revoker..."
 msgstr "Revoker..."
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:706
-#: Src/wptKeyManagerDlg.cpp:1006
+#: Src/wptKeyManagerDlg.cpp:1012
 msgid "Key Attributes"
 msgstr "Schlüsselattribute"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:707
-#: Src/wptKeyManagerDlg.cpp:1007
+#: Src/wptKeyManagerDlg.cpp:1013
 msgid "Add"
 msgstr "Hinzufügen"
 
-#: Src/wptKeyManagerDlg.cpp:1008
+#: Src/wptKeyManagerDlg.cpp:1014
 msgid "Send to Keyserver"
 msgstr "Sende an Keyserver"
 
-#: Src/wptKeyManagerDlg.cpp:1068
+#: Src/wptKeyManagerDlg.cpp:1074
 msgid "Could not set keylist window procedure."
 msgstr "Konnte \"keylist window procedure\" nicht setzen."
 
+# c:\oss\winpt-gpgme\src\wptFirstRunDlg.cpp:42
+#: Src/wptKeyManagerDlg.cpp:1187
+msgid "Generate new key pair"
+msgstr "Neues Schlüsselpaar erzeugen"
+
+#: Src/wptKeyManagerDlg.cpp:1191
+msgid "Search for a specific key"
+msgstr "Suche nach einem bestimmten Schlüssel"
+
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:842
-#: Src/wptKeyManagerDlg.cpp:1181
+#: Src/wptKeyManagerDlg.cpp:1195
 msgid "Delete key from keyring"
 msgstr "Schlüssel aus Keyring löschen"
 
-#: Src/wptKeyManagerDlg.cpp:1185
+#: Src/wptKeyManagerDlg.cpp:1199
 msgid "Show key properties"
 msgstr "Schlüsseleigenschaften anzeigen"
 
-#: Src/wptKeyManagerDlg.cpp:1189
+#: Src/wptKeyManagerDlg.cpp:1203
 msgid "Sign key"
 msgstr "Signiere Schlüssel"
 
+#: Src/wptKeyManagerDlg.cpp:1207
+msgid "Copy key to clipboard"
+msgstr "Kopiere Schlüssel in Ablage"
+
+#: Src/wptKeyManagerDlg.cpp:1211
+msgid "Paste key from clipboard"
+msgstr "Schlüssel aus Ablage einfügen"
+
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:854
-#: Src/wptKeyManagerDlg.cpp:1193
+#: Src/wptKeyManagerDlg.cpp:1215
 msgid "Import key to keyring"
 msgstr "In Schlüsselbund importieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:858
-#: Src/wptKeyManagerDlg.cpp:1197
+#: Src/wptKeyManagerDlg.cpp:1219
 msgid "Export key to a file"
 msgstr "Schlüssel in Datei exportieren"
 
 # c:\oss\winpt-gpgme\src\wptKeyManagerDlg.cpp:499
-#: Src/wptKeyManagerDlg.cpp:1317
+#: Src/wptKeyManagerDlg.cpp:1339
 msgid "New"
 msgstr "Neu"
 
-#: Src/wptKeyManagerDlg.cpp:1324
+#: Src/wptKeyManagerDlg.cpp:1346
 msgid "Could not access public keyring"
 msgstr "Konnte nicht auf öffentlichen Schlüsselbund zugreifen"
 
-#: Src/wptKeyManagerDlg.cpp:1364 Src/wptKeysignDlg.cpp:230
+#: Src/wptKeyManagerDlg.cpp:1386 Src/wptKeysignDlg.cpp:230
 #: Src/wptKeysignDlg.cpp:249 Src/wptKeysignDlg.cpp:326
 #: Src/wptKeysignDlg.cpp:343 Src/wptKeysignDlg.cpp:348
 msgid "Key Signing"
 msgstr "Schlüsselsignierung"
 
-#: Src/wptKeyManagerDlg.cpp:1388
+#: Src/wptKeyManagerDlg.cpp:1410
 msgid "Key already revoked!"
 msgstr "Schlüssel ist bereits widerrufen!"
 
-#: Src/wptKeyManagerDlg.cpp:1400 Src/wptKeyRevokeDlg.cpp:72
+#: Src/wptKeyManagerDlg.cpp:1422 Src/wptKeyRevokeDlg.cpp:72
 #: Src/wptKeyRevokeDlg.cpp:100 Src/wptKeyRevokeDlg.cpp:138
 #: Src/wptKeyRevokeDlg.cpp:143 Src/wptKeyRevokeDlg.cpp:151
 #: Src/wptKeyRevokeDlg.cpp:167 Src/wptKeyRevokeDlg.cpp:173
 msgid "Key Revocation Cert"
 msgstr "Schlüsselwiderruf Zertifikat"
 
-#: Src/wptKeyManagerDlg.cpp:1410
+#: Src/wptKeyManagerDlg.cpp:1432
 msgid "It does not make any sense with a key pair!"
 msgstr "Diese Aktion macht keinen Sinn mit einem Schlüsselpaar!"
 
-#: Src/wptKeyManagerDlg.cpp:1436
+#: Src/wptKeyManagerDlg.cpp:1458
 msgid "Key Signature List"
 msgstr "Schlüssel-Signatur-Liste"
 
-#: Src/wptKeyManagerDlg.cpp:1455 Src/wptKeyPropsDlg.cpp:282
+#: Src/wptKeyManagerDlg.cpp:1477 Src/wptKeyPropsDlg.cpp:282
 msgid "Key Properties"
 msgstr "Schlüsseleigenschaften"
 
-#: Src/wptKeyManagerDlg.cpp:1470
+#: Src/wptKeyManagerDlg.cpp:1492
 msgid ""
 "This is only useful when the keyring has been modified (sign a key...).\n"
 "Do you really want to reload the keycache?"
@@ -3276,31 +3293,31 @@
 "Signierung etc.)\n"
 "Möchten Sie den Zwischenspeicher reinitialisieren?"
 
-#: Src/wptKeyManagerDlg.cpp:1511
+#: Src/wptKeyManagerDlg.cpp:1533
 msgid "Smart Card support is not available."
 msgstr "SmartCard-Unterstützung ist nicht verfügbar."
 
-#: Src/wptKeyManagerDlg.cpp:1538 Src/wptKeyserverDlg.cpp:440
+#: Src/wptKeyManagerDlg.cpp:1560 Src/wptKeyserverDlg.cpp:443
 msgid "Keyserver Access"
 msgstr "Schlüsselserver-Zugriff"
 
-#: Src/wptKeyManagerDlg.cpp:1554
+#: Src/wptKeyManagerDlg.cpp:1576
 msgid "GnuPG Options"
 msgstr "GnuPG Optionen"
 
-#: Src/wptKeyManagerDlg.cpp:1559
+#: Src/wptKeyManagerDlg.cpp:1581
 msgid "Choose Name of the Key File"
 msgstr "Den Namen der Schlüsseldatei wählen"
 
-#: Src/wptKeyManagerDlg.cpp:1597
+#: Src/wptKeyManagerDlg.cpp:1619
 msgid "There is no corresponding secret key for this key."
 msgstr "Für diesen Schlüssel ist kein geheimer Schlüssel vorhanden."
 
-#: Src/wptKeyManagerDlg.cpp:1602
+#: Src/wptKeyManagerDlg.cpp:1624
 msgid "You can only export one secret key."
 msgstr "Sie können nur einen geheimen Schlüssel exportieren."
 
-#: Src/wptKeyManagerDlg.cpp:1607
+#: Src/wptKeyManagerDlg.cpp:1629
 msgid ""
 "This operation will export your *SECRET* key!\n"
 "\n"
@@ -3318,11 +3335,11 @@
 "\n"
 "Wirklich den Schlüssel exportieren?"
 
-#: Src/wptKeyManagerDlg.cpp:1612
+#: Src/wptKeyManagerDlg.cpp:1634
 msgid "WARNING"
 msgstr "WARNUNG"
 
-#: Src/wptKeyManagerDlg.cpp:1688
+#: Src/wptKeyManagerDlg.cpp:1710
 msgid "No key was selected, select all by default."
 msgstr "Kein Schlüssel ausgewählt, es wurden alle ausgewählt."
 
@@ -3602,70 +3619,70 @@
 msgid "Port"
 msgstr "Port"
 
-#: Src/wptKeyserverDlg.cpp:441 Src/wptKeyserverSearchDlg.cpp:62
+#: Src/wptKeyserverDlg.cpp:444 Src/wptKeyserverSearchDlg.cpp:62
 msgid "&Receive"
 msgstr "&Empfangen"
 
-#: Src/wptKeyserverDlg.cpp:443
+#: Src/wptKeyserverDlg.cpp:446
 msgid "Send key (default is receiving)"
 msgstr "Schlüssel senden (sonst empfangen)"
 
-#: Src/wptKeyserverDlg.cpp:445
+#: Src/wptKeyserverDlg.cpp:448
 msgid "Please enter the key ID or email address you search for"
 msgstr "Bitte die key ID oder Email Adresse angeben die gesucht wird"
 
-#: Src/wptKeyserverDlg.cpp:446
+#: Src/wptKeyserverDlg.cpp:449
 msgid "&Search"
 msgstr "&Suchen"
 
-#: Src/wptKeyserverDlg.cpp:447
+#: Src/wptKeyserverDlg.cpp:450
 msgid "C&hange"
 msgstr "Ä&ndern"
 
-#: Src/wptKeyserverDlg.cpp:448
+#: Src/wptKeyserverDlg.cpp:451
 msgid "Set &default"
 msgstr "Als &Standard"
 
-#: Src/wptKeyserverDlg.cpp:483 Src/wptProxySettingsDlg.cpp:66
+#: Src/wptKeyserverDlg.cpp:486 Src/wptProxySettingsDlg.cpp:66
 #: Src/wptProxySettingsDlg.cpp:75 Src/wptProxySettingsDlg.cpp:82
 #: Src/wptProxySettingsDlg.cpp:87 Src/wptProxySettingsDlg.cpp:92
 #: Src/wptProxySettingsDlg.cpp:138 Src/wptProxySettingsDlg.cpp:169
 msgid "Proxy Settings"
 msgstr "Proxy Einstellungen"
 
-#: Src/wptKeyserverDlg.cpp:491 Src/wptKeyserverDlg.cpp:520
+#: Src/wptKeyserverDlg.cpp:494 Src/wptKeyserverDlg.cpp:523
 msgid "Please select one of the keyservers."
 msgstr "Bitte einen Keyserver auswählen."
 
-#: Src/wptKeyserverDlg.cpp:498
+#: Src/wptKeyserverDlg.cpp:501
 msgid "This is not implemented yet!"
 msgstr "Das ist (leider) noch nicht implementiert!"
 
-#: Src/wptKeyserverDlg.cpp:504 Src/wptKeyserverDlg.cpp:533
+#: Src/wptKeyserverDlg.cpp:507 Src/wptKeyserverDlg.cpp:536
 msgid "Please enter the search pattern."
 msgstr "Bitte Suchmuster eingeben."
 
-#: Src/wptKeyserverDlg.cpp:538
+#: Src/wptKeyserverDlg.cpp:541
 msgid "Only keyids are allowed."
 msgstr "Nur Schlüssel-IDs zulässig"
 
-#: Src/wptKeyserverDlg.cpp:538
+#: Src/wptKeyserverDlg.cpp:541
 msgid "LDAP Keyserver"
 msgstr "LDAP-Schlüsselserver"
 
-#: Src/wptKeyserverDlg.cpp:543
+#: Src/wptKeyserverDlg.cpp:546
 msgid "Only enter the name of the user."
 msgstr "Nur den Namen des Benutzers eingeben."
 
-#: Src/wptKeyserverDlg.cpp:544
+#: Src/wptKeyserverDlg.cpp:547
 msgid "FINGER Keyserver"
 msgstr "FINGER Schlüsselserver"
 
-#: Src/wptKeyserverDlg.cpp:549
+#: Src/wptKeyserverDlg.cpp:552
 msgid "Only email addresses or keyids are allowed."
 msgstr "Es sind nur E-Mail-Adressen oder Schlüssel-IDs zulässig"
 
-#: Src/wptKeyserverDlg.cpp:550
+#: Src/wptKeyserverDlg.cpp:553
 msgid "HKP Keyserver"
 msgstr "HKP Schlüsselserver"
 
@@ -4183,8 +4200,8 @@
 msgstr "&Automatisch Backups erstellen wenn WinPT beendet wird"
 
 #: Src/wptPreferencesDlg.cpp:139
-msgid "Backup to GPG &home folder"
-msgstr "Backup ins GPG Home-Dir"
+msgid "Backup to &keyring folder"
+msgstr "Backup in &Schlüsselbund-Ordner"
 
 #: Src/wptPreferencesDlg.cpp:140
 msgid "Backup to:"

Modified: trunk/Src/ChangeLog
===================================================================
--- trunk/Src/ChangeLog	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/ChangeLog	2006-01-12 16:28:06 UTC (rev 144)
@@ -1,3 +1,25 @@
+2006-01-12  Timo Schulz  <ts at g10code.com>
+
+	* wptListView.cpp (listview_set_image_list): Make icons
+	always transparent.
+	* wptImageList.cpp (imagelist_load): New icons.
+	* wptGPGMEData.cpp (gpg_data_putc): New.
+	* wptKeyManagerDlg.cpp (load_toolbar): Include new icons.
+	(keymanager_dlg_proc): Add tooltips.
+	* wptKeyserverDlg.cpp (keyserver_list_build): Use icons.
+	* wptKeyserver.cpp (URL_encode): New.
+	(URL_must_encode): New.
+	(kserver_search_init): Properly encode pattern.
+	(parse_iso_date): New.
+	(keyserver_search): Be more strict to prevent buffer overflows.
+	
+2006-01-11  Timo Schulz  <ts at g10code.com>
+
+	* wptKeyManagerDlg.cpp (load_toolbar): 2 new icons.
+	(keymanager_dlg_proc): Adjust tooltips.
+	(update_ui_items): Handle new icons.
+	* wptImageList.cpp (imagelist_load): New icons.
+	
 2006-01-10  Timo Schulz  <ts at g10code.com>
 
 	* wptMainProc.cpp (winpt_main_proc): Restore iconic

Modified: trunk/Src/WinPT-en.rc
===================================================================
--- trunk/Src/WinPT-en.rc	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/WinPT-en.rc	2006-01-12 16:28:06 UTC (rev 144)
@@ -63,6 +63,11 @@
 IDI_KEY_SIGN            ICON    DISCARDABLE     "key_sign.ico"
 IDI_SORT_UPARROW        ICON    DISCARDABLE     "sort_uparrow.ico"
 IDI_SORT_DOWNARROW      ICON    DISCARDABLE     "sort_downarrow.ico"
+IDI_KEY_FILE_EXPORT     ICON    DISCARDABLE     "key_file_export.ico"
+IDI_KEY_FILE_IMPORT     ICON    DISCARDABLE     "key_file_import.ico"
+IDI_KEY_SEARCH          ICON    DISCARDABLE     "key_search.ico"
+IDI_KEY_NEW             ICON    DISCARDABLE     "key_new.ico"
+IDI_COMPUTER            ICON    DISCARDABLE     "computer.ico"
 
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -698,7 +703,7 @@
     CONTROL         "&Automatic keyring backup when WinPT closes",
                     IDC_PREFS_AUTOBACKUP,"Button",BS_AUTOCHECKBOX | 
                     WS_TABSTOP,14,228,195,11
-    CONTROL         "Backup to GPG &home folder",IDC_PREFS_BAKHOME,"Button",
+    CONTROL         "Backup to &keyring folder",IDC_PREFS_BAKHOME,"Button",
                     BS_AUTORADIOBUTTON,24,240,150,10
     CONTROL         "Backup to:",IDC_PREFS_BAKUSER,"Button",
                     BS_AUTORADIOBUTTON,24,252,55,10

Modified: trunk/Src/resource.h
===================================================================
--- trunk/Src/resource.h	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/resource.h	2006-01-12 16:28:06 UTC (rev 144)
@@ -153,6 +153,11 @@
 #define IDD_WINPT_KEYEDIT_SHOWPREF      228
 #define IDI_PUBKEY                      230
 #define IDI_KEYPAIR                     231
+#define IDI_KEY_FILE_EXPORT             232
+#define IDI_KEY_FILE_IMPORT             233
+#define IDI_KEY_SEARCH                  234
+#define IDI_KEY_NEW                     235
+#define IDI_COMPUTER                    236
 #define IDC_CLIPEDIT_SEND               1000
 #define IDC_CLIPEDIT_CLEAR              1001
 #define IDC_CLIPEDIT_CLIPTEXT           1002
@@ -788,7 +793,7 @@
 // 
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE        232
+#define _APS_NEXT_RESOURCE_VALUE        237
 #define _APS_NEXT_COMMAND_VALUE         40182
 #define _APS_NEXT_CONTROL_VALUE         1502
 #define _APS_NEXT_SYMED_VALUE           101

Modified: trunk/Src/wptGPGMEData.cpp
===================================================================
--- trunk/Src/wptGPGMEData.cpp	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/wptGPGMEData.cpp	2006-01-12 16:28:06 UTC (rev 144)
@@ -244,3 +244,15 @@
     
     return pos;
 }
+
+
+/* Write a single byte to data object @hd. */
+void
+gpg_data_putc (gpgme_data_t hd, int c)
+{
+    BYTE ch[1];
+
+    ch[0] = (BYTE)c;
+    ch[1] = '\0';
+    gpgme_data_write (hd, ch, 1);
+}

Modified: trunk/Src/wptImagelist.cpp
===================================================================
--- trunk/Src/wptImagelist.cpp	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/wptImagelist.cpp	2006-01-12 16:28:06 UTC (rev 144)
@@ -1,6 +1,6 @@
 /* wptImagelist.cpp - Imagelist helper routines
  *	Copyright (C) 2003 Andreas Jobs
- *	Copyright (C) 2004 Timo Schulz
+ *	Copyright (C) 2004, 2006 Timo Schulz
  *
  * This file is part of WinPT.
  *
@@ -18,7 +18,6 @@
  * 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
@@ -41,6 +40,9 @@
     ImageList_ReplaceIcon (glob_imagelist, -1, \
 			   LoadIcon (glob_hinst, MAKEINTRESOURCE (resid)))
 
+
+/* Load the image list with the default icons.
+   Return value: 0 on success.  */
 int
 imagelist_load (HWND hwnd)
 {
@@ -51,31 +53,36 @@
 	return -1;
     }
 
+    il_map[IMI_KEY_NEW]	       = replace_icon (IDI_KEY_NEW);
     il_map[IMI_KEY_DELETE]     = replace_icon (IDI_KEY_DELETE);
     il_map[IMI_KEY_PROPS]      = replace_icon (IDI_KEY_PROPS);
     il_map[IMI_KEY_SIGN]       = replace_icon (IDI_KEY_SIGN);
+    il_map[IMI_KEY_SEARCH]     = replace_icon (IDI_KEY_SEARCH);
+    il_map[IMI_KEY_FILE_IMPORT]= replace_icon (IDI_KEY_FILE_IMPORT);
+    il_map[IMI_KEY_FILE_EXPORT]= replace_icon (IDI_KEY_FILE_EXPORT);
     il_map[IMI_KEY_IMPORT]     = replace_icon (IDI_KEY_IMPORT);
-    il_map[IMI_KEY_EXPORT]     = replace_icon (IDI_KEY_EXPORT);
+    il_map[IMI_KEY_EXPORT]     = replace_icon (IDI_KEY_EXPORT);    
     il_map[IMI_SORT_UPARROW]   = replace_icon (IDI_SORT_UPARROW);
     il_map[IMI_SORT_DOWNARROW] = replace_icon (IDI_SORT_DOWNARROW);
-    /*il_map[IMI_EXIT]         = replace_icon (IDI_EXIT);*/
     return 0;
-} /* imagelist_load */
+}
 
 
+/* Free image list. */
 int
 imagelist_destroy (void)
 {
     ImageList_Destroy (glob_imagelist);
     glob_imagelist = NULL;
     return 0;
-} /* imagelist_destroy */
+}
 
 
+/* Map an index to an icon. */
 int
 imagelist_getindex (int icon)
 {
     if ((icon < 0) || (icon >= IMAGELIST_NUMIMAGES))
         return -1;
     return il_map[icon];
-} /* imagelist_getindex */
+}

Modified: trunk/Src/wptKeyManagerDlg.cpp
===================================================================
--- trunk/Src/wptKeyManagerDlg.cpp	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/wptKeyManagerDlg.cpp	2006-01-12 16:28:06 UTC (rev 144)
@@ -155,19 +155,24 @@
 }
 
 
+#define ico2idx(ico) imagelist_getindex((ico))
+
 static HWND
 load_toolbar (HWND dlg, struct km_info_s *kmi)
 {
     HWND tbwnd;
     TBSAVEPARAMS tbsp;
     TBBUTTON tb_buttons[] = {
-        /*{imagelist_getindex(IMI_EXIT),       ID_KEYMISC_QUIT,   TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0L, 0},*/
-	{imagelist_getindex(IMI_KEY_DELETE), ID_KEYMISC_DELETE, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
-        {imagelist_getindex(IMI_KEY_PROPS),  ID_KEYMISC_PROPS,  TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
-	{imagelist_getindex(IMI_KEY_SIGN),   ID_KEYMISC_SIGN,   TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
+	{ico2idx (IMI_KEY_NEW),	   ID_KEYMISC_KEYWIZARD, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L},
+	{ico2idx (IMI_KEY_DELETE), ID_KEYMISC_DELETE, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
+        {ico2idx (IMI_KEY_PROPS),  ID_KEYMISC_PROPS,  TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
+	{ico2idx (IMI_KEY_SIGN),   ID_KEYMISC_SIGN,   TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
+	{ico2idx (IMI_KEY_SEARCH), ID_KEYMISC_SENDRECV, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
         {0,                                  0,                 0,               TBSTYLE_SEP,    {0}, 0L, 0},
-	{imagelist_getindex(IMI_KEY_IMPORT), ID_KEYMISC_IMPORT, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
-        {imagelist_getindex(IMI_KEY_EXPORT), ID_KEYMISC_EXPORT, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
+	{ico2idx (IMI_KEY_FILE_IMPORT), ID_KEYMISC_IMPORT, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
+        {ico2idx (IMI_KEY_FILE_EXPORT), ID_KEYMISC_EXPORT, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
+	{ico2idx (IMI_KEY_IMPORT), ID_KEYCTX_PASTE, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
+        {ico2idx (IMI_KEY_EXPORT), ID_KEYCTX_COPY, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0L, 0},
      };
     
     tbwnd = CreateWindowEx (0, TOOLBARCLASSNAME, NULL,
@@ -663,6 +668,7 @@
     enable_button (tb_hwnd, ID_KEYMISC_PROPS, key_selected);
     enable_button (tb_hwnd, ID_KEYMISC_SIGN, key_selected && !key_inv);
     enable_button (tb_hwnd, ID_KEYMISC_EXPORT, key_selected);
+    enable_button (tb_hwnd, ID_KEYCTX_COPY, key_selected);
 
     /* Enable / disable menu items */
     state = key_selected? MF_ENABLED : MF_DISABLED|MF_GRAYED;
@@ -1138,7 +1144,7 @@
             LPTBNOTIFY lpTbNotify;
             lpTbNotify = (LPTBNOTIFY)lparam;
             if (lpTbNotify->iItem < (sizeof(myb) / sizeof(mybuttons))) {
-                lpTbNotify->tbButton.iBitmap = imagelist_getindex(myb[lpTbNotify->iItem].icon);
+                lpTbNotify->tbButton.iBitmap = imagelist_getindex (myb[lpTbNotify->iItem].icon);
                 lpTbNotify->tbButton.idCommand = myb[lpTbNotify->iItem].command;
                 lpTbNotify->tbButton.fsState = TBSTATE_ENABLED;
                 lpTbNotify->tbButton.fsStyle = TBSTYLE_BUTTON;
@@ -1177,6 +1183,14 @@
 
             lpttt->hinst = NULL;
             switch (lpttt->hdr.idFrom) {
+	    case ID_KEYMISC_KEYWIZARD:
+		lpttt->lpszText = (char*)_("Generate new key pair");
+		break;
+
+	    case ID_KEYMISC_SENDRECV:
+		lpttt->lpszText = (char*)_("Search for a specific key");
+		break;
+
             case ID_KEYMISC_DELETE:
                 lpttt->lpszText = (char *)_("Delete key from keyring"); 
 		break;
@@ -1189,6 +1203,14 @@
                 lpttt->lpszText = (char *)_("Sign key"); 
 		break;
 
+	    case ID_KEYCTX_COPY:
+		lpttt->lpszText = (char *)_("Copy key to clipboard");
+		break;
+
+	    case ID_KEYCTX_PASTE:
+		lpttt->lpszText = (char*)_("Paste key from clipboard");
+		break;
+
             case ID_KEYMISC_IMPORT:
                 lpttt->lpszText = (char *)_("Import key to keyring");
 		break;

Modified: trunk/Src/wptKeyserver.cpp
===================================================================
--- trunk/Src/wptKeyserver.cpp	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/wptKeyserver.cpp	2006-01-12 16:28:06 UTC (rev 144)
@@ -667,37 +667,42 @@
 }
 
 
-/* Perform URL-encoding on the given pubkey blob. */
+static bool
+URL_must_encoded (const char *url)
+{
+    if (strchr (url, '.') || strchr (url, '@') || strchr (url, ' '))
+	return true;
+    return false;
+}
+
+
+/* Perform URL encoding of the given data. */
 static char*
-kserver_urlencode (const char *pubkey, size_t octets, size_t *newlen)
+URL_encode (const char *url, size_t ulen, size_t *ret_nlen)
 {
-    char *p, numbuf[5];
-    size_t j;
-    size_t i, size;
-    
-    p = new char [2*octets+1];
-    if (!p)
-	BUG (0);
+    gpgme_data_t hd;
+    char numbuf[5], *pp, *p;
+    size_t i, n;
 
-    for (size = 0, i = 0; i < octets; i++) {
-	if (isalnum (pubkey[i]) || pubkey[i] == '-') {
-	    p[size] = pubkey[i];
-	    size++;
-	}
-	else if (pubkey[i] == ' ') {
-	    p[size] = '+';
-	    size++;
-	}
+    gpgme_data_new (&hd);
+    for (i=0; i < ulen; i++) {
+	if (isalnum (url[i]) || url[i] == '-')
+	    gpg_data_putc (hd, url[i]);
+	else if (url[i] == ' ')
+	    gpg_data_putc (hd, '+');
 	else {
-	    sprintf (numbuf, "%%%02X", pubkey[i]);
-	    for (j = 0; j < strlen (numbuf); j++) {
-		p[size] = numbuf[j];
-		size++;
-	    }
+	    sprintf (numbuf, "%%%02X", url[i]);
+	    gpgme_data_write (hd, numbuf, strlen (numbuf));
 	}
     }
-    p[size] = '\0';
-    *newlen = size;
+    gpg_data_putc (hd, '\0');
+
+    /* Copy memory to avoid that we need to use gpgme_free later. */
+    pp = gpgme_data_release_and_get_mem (hd, &n);
+    p = m_strdup (pp);
+    gpgme_free (pp);
+    if (ret_nlen)
+	*ret_nlen = n;
     return p;
 }
 
@@ -720,7 +725,7 @@
     request = new char[reqlen];
     if (!request)
 	BUG (0);
-    enc_pubkey = kserver_urlencode (pubkey, octets, &enc_octets);
+    enc_pubkey = URL_encode (pubkey, octets, &enc_octets);
     if (!enc_pubkey || !enc_octets) {
 	free_if_alloc (request);
         return NULL;
@@ -877,15 +882,17 @@
 		     const char *keyid, int *conn_fd)
 {
     char *request = NULL;
-    int n=0;
+    char *enc_keyid = NULL;
+    int n = 0;
     int rc, sock_fd;
-
+    
     rc = kserver_connect (hostname, port, &sock_fd);
     if (rc) {
         *conn_fd = 0;
         goto leave;
     }
-    
+
+    enc_keyid = URL_encode (keyid, strlen (keyid), NULL);
     n=300;
     request = new char[n+1];
     if (!request)
@@ -895,16 +902,16 @@
 	_snprintf (request, n,
 	    "GET http://%s:%d/pks/lookup?op=index&search=%s HTTP/1.0\r\n"
 	    "Proxy-Authorization: Basic %s\r\n\r\n",
-	    skip_type_prefix (hostname), port, keyid, proxy.base64_user);
+	    skip_type_prefix (hostname), port, enc_keyid, proxy.base64_user);
     }    
     else if (proxy.host) {
 	_snprintf (request, n,
 	    "GET http://%s:%d/pks/lookup?op=index&search=%s HTTP/1.0\r\n\r\n",
-	    skip_type_prefix (hostname), port, keyid);
+	    skip_type_prefix (hostname), port, enc_keyid);
     }
     else {
         _snprintf (request, n,
-		   "GET /pks/lookup?op=index&search=%s HTTP/1.0\r\n\r\n", keyid);
+		   "GET /pks/lookup?op=index&search=%s HTTP/1.0\r\n\r\n", enc_keyid);
     }
     
     log_debug ("kserver_search_init:\r\n%s\r\n", request);
@@ -918,6 +925,7 @@
     
 leave:
     free_if_alloc (request);
+    free_if_alloc (enc_keyid);
     return rc;
 }
 
@@ -942,8 +950,39 @@
 }
 
 
+/* Convert an iso date @iso_date (YYYY-MM-DD) into the locale
+   representation and store it into @loc_date.
+   Return value: 0 on success. */
+static int
+parse_iso_date (const char *iso_date, char *loc_date, size_t loclen)
+{
+    SYSTEMTIME st;
+    char buf[16] = {0}, *p;
+    int pos=0;
+
+    strncpy (buf, iso_date, sizeof (buf)-1);
+    p = strtok (buf, "-");
+    while (p != NULL) {
+	switch (pos) {
+	case 0: st.wYear = (WORD)atoi (p); pos++; break;
+	case 1: st.wMonth = (WORD)atoi (p); pos++; break;
+	case 2: st.wDay = (WORD)atoi (p); pos++; break;
+	default: break;
+	}
+	p = strtok (NULL, "-");
+    }
+    if (pos != 3)
+	return -1;
+    
+    if (!GetDateFormat (LOCALE_USER_DEFAULT, DATE_SHORTDATE, &st, 
+			NULL, loc_date, loclen))
+	return -1;
+    return 0;
+}
+
+
 int
-kserver_search (int fd, keyserver_key * key)
+kserver_search (int fd, keyserver_key *key)
 {
     char buf[1024], *p;
     int uidlen, nbytes, pos = 0;
@@ -970,6 +1009,7 @@
 	pos = p - buf + 5;
         memcpy (key->date, buf + pos, 10);
         key->date[10] = '\0';
+	parse_iso_date (key->date, key->date, sizeof (key->date)-1);
 	if (revoked) {
 	    strcpy (key->uid, "KEY REVOKED: not checked");
 	    return 0;
@@ -980,6 +1020,19 @@
 	    p++;
 	p++;
 	uidlen = strlen (p) - 10;
+	if (!strstr (p, "&lt;") && !strstr (p, "&gt;")) {
+	    pos=0;
+	    while (p && *p && pos < sizeof (key->uid)-1) {
+		if (*p == '<')
+		    break;
+		key->uid[pos++] = *p++;
+	    }
+	    key->uid[pos] ='\0';
+	    return 0;
+	}
+
+	if (uidlen > sizeof (key->uid)-1)
+	    uidlen = sizeof (key->uid)-1;
 	memcpy (key->uid, p, uidlen);
 	key->uid[uidlen] = '\0';
 	strcat (key->uid, ">");
@@ -996,7 +1049,7 @@
     key->bits = 0;
     memset (key, 0, sizeof *key);
     return 0;
-} /* kserver_search */
+}
 
 
 static int

Modified: trunk/Src/wptKeyserverDlg.cpp
===================================================================
--- trunk/Src/wptKeyserverDlg.cpp	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/wptKeyserverDlg.cpp	2006-01-12 16:28:06 UTC (rev 144)
@@ -385,18 +385,21 @@
 	{3,  46, (char *)_("Port")},
         {0,   0, NULL}
     };
+    HICON ico[1];
     listview_ctrl_t lv;
     char buf[32];
     int j;
 
+    ico[0] = LoadIcon (glob_hinst, (LPCTSTR)IDI_COMPUTER);
     listview_new (&lv);    
-    lv->ctrl = hwnd;       
+    lv->ctrl = hwnd;
     for (j=0; keyserver[j].fieldname; j++)
-        listview_add_column (lv, &keyserver[j]);        
+        listview_add_column (lv, &keyserver[j]);
+    listview_set_image_list (lv, ico, 1);
     for (j = 0; j<MAX_KEYSERVERS; j++) {
 	if (!server[j].used)
 	    continue;
-	listview_add_item (lv, " ");
+	listview_add_item_image (lv, " ", 0);
 	listview_add_sub_item (lv, 0, 0, server[j].name);
 	switch (server[j].proto) {
 	case KSPROTO_HTTP:

Modified: trunk/Src/wptListView.cpp
===================================================================
--- trunk/Src/wptListView.cpp	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/wptListView.cpp	2006-01-12 16:28:06 UTC (rev 144)
@@ -396,9 +396,10 @@
     HIMAGELIST hil;
     DWORD i;
 
-    hil = ImageList_Create (16, 16, ILC_COLOR16, nicons, 1);
+    hil = ImageList_Create (16, 16, ILC_COLOR8|ILC_MASK, nicons, 1);
+    ImageList_SetBkColor (hil, CLR_NONE);
     for (i=0; i < nicons; i++)
-	ImageList_AddIcon (hil, ico[i]);
-    ListView_SetImageList (ctx->ctrl, hil, LVSIL_SMALL);
+	ImageList_AddIcon (hil, ico[i]);    
+    ListView_SetImageList (ctx->ctrl, hil, LVSIL_SMALL);    
 }
     

Modified: trunk/Src/wptPreferencesDlg.cpp
===================================================================
--- trunk/Src/wptPreferencesDlg.cpp	2006-01-12 16:27:34 UTC (rev 143)
+++ trunk/Src/wptPreferencesDlg.cpp	2006-01-12 16:28:06 UTC (rev 144)
@@ -136,7 +136,7 @@
         SetDlgItemText (dlg, IDC_PREFS_DISABLE_HOTKEYS, _("&Disable hotkeys (Not recommended!)"));
 	SetDlgItemText (dlg, IDC_PREFS_TRUST, _("Skip key validation and assume that keys are always fully trusted"));
 	SetDlgItemText (dlg, IDC_PREFS_AUTOBACKUP, _("&Automatic keyring backup when WinPT closes"));
-	SetDlgItemText (dlg, IDC_PREFS_BAKHOME, _("Backup to GPG &home folder"));
+	SetDlgItemText (dlg, IDC_PREFS_BAKHOME, _("Backup to &keyring folder"));
 	SetDlgItemText (dlg, IDC_PREFS_BAKUSER, _("Backup to:"));
 	SetDlgItemText (dlg, IDC_PREFS_KEYLISTINF, _("Select &key list mode"));
 	SetDlgItemText (dlg, IDC_PREFS_WIPEINF, _("Select &wipe mode"));



More information about the Winpt-commits mailing list