/[winpt]/trunk/Src/ChangeLog
ViewVC logotype

Diff of /trunk/Src/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 26 by twoaday, Mon Oct 17 08:49:30 2005 UTC revision 418 by twoaday, Sun Feb 26 17:57:33 2012 UTC
# Line 1  Line 1 
1  2005-10-16  Timo Schulz  <[email protected]>  2012-02-26  Timo Schulz  <[email protected]>
2    
3          * wptPassphraseCB.cpp (passphrase_cb): Fix problem          * WinPT.cpp (WinMain): Check for possible errors
4          with hanging GPG process on cancel.          during the file verification process.
5          * keycache.c (gpg_keycache_release): Release all objects.          
6    2012-02-16  Timo Schulz  <[email protected]>
7  2005-10-15  Timo Schulz  <[email protected]>  
8            * wptErrors.cpp (setup_logfile): New. Factored out the
9          * wptCardEdit.cpp (setResult, getResult): New.          code to create the debug logging file.
10          (reset): New.          (log_debug): Use it here and disable debugging in case
11          (getCardStatus): Check return codes and release all objects          of any file problems.
12          in case of errors.          
13          * wptCardEditCB.cpp (change_pin_handler): Call reset()  2012-02-11  Timo Schulz  <[email protected]>
14          before quit.  
15          (editcard_handler): Likewise.          * wptCurrWnd.cpp (get_current_wnd): store thread ID
16          (common_card_handler): New.          pair to avoid side-effects.
17          * wptCardDlg.cpp (card_changepin_dlg_proc): Also unmask          (paste_window_content): Likewise.
18          the old PIN when 'Hide Typing' is disabled.          (copy_window_content): Likewise.
19          * wptPassphraseCB.cpp (passphrase_cb): The card detection          * WinPT.cpp (WinMain): Switch to disable hooking.
20          works again. Support to re-enter passphrase.          * wptMainProc.cpp (winpt_main_proc): Handle it here.
21            
22  2005-10-14  Timo Schulz  <[email protected]>  2012-02-06  Timo Schulz  <[email protected]>
23    
24          * wptCardDlg.cpp (card_status): New fields for the          * wptNLS.cpp (gettext_free_current_domain): Replace free()
25          fingerprint creation time. Display card info as title.          with safe_free():
26          (get_printable_version): New.          * WinPT.cpp: Use log_debug to improve bug tracking capabilities.
27          * wptCardEditCB.cpp (editcard_handler): Fix problem          * wptGPG.cpp (check_keyring): Improved error checking.
28          with the counter comparison.          * wptFileManager.cpp: Removed obsolete code.
29            
30  2005-10-11  Timo Schulz  <[email protected]>  2012-01-29  Timo Schulz  <[email protected]>
31    
32          Port to GPGME basically finished.          * wptNLS.cpp: Added 'Dutch' as a valid language.
33            * wptSigTreeDlg.cpp (sigtree_load): Fixed gcc warning.
34  2005-09-20  Timo Schulz  <[email protected]>          * wptKeyserver.cpp (kserver_connect): Likewise.
35            
36          * wptFileManagerDlg.cpp (file_secdel_confirm_dlg_proc):  2012-01-15  Timo Schulz  <[email protected]>
37          Do not use gpgme_recipients_t but the listview directly  
38          to add the selected files.          * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc):
39            Invert logic to disable the calendar control for the
40  2005-09-07  Timo Schulz  <[email protected]>          key expiration date.
41            * wptKeyPropsDialog.cpp (on_init_dialog): Localized missing string.
42          * Make sure all GetOpenFileName filters are terminated by \0\0.          
43    2011-12-13  Timo Schulz  <[email protected]>
44  2005-09-01  Timo Schulz  <[email protected]>  
45            * Makefile.am: Enable SSP and corrected dependencies.
46          * wptW32API.cpp (center_window): New argument for parent window.          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Redraw control after
47          Change all callers.          a key was updated from a keyserver.
48          (center_window2): Likewise.  
49          * GPGME now can read gpgProgram entries with 'REG_EXPAND_SZ'.  2011-12-12  Timo Schulz  <[email protected]>
50          * wptGPG.cpp (gnupg_backup_options): Remove param. One backup  
51          file is enough. Changed all callers.          * WinPT-en.rc: Remove winpt.org strings. Thanks to Ralf.
52    
53  2005-08-15  Timo Schulz  <[email protected]>  2011-12-09  Timo Schulz  <[email protected]>
54    
55          * wptKeyEditDlgs.cpp (do_editkey_showpref): Take care of v3 keys.          * wptNLS.cpp (gettext_set_user_domain): Changed return type to
56          * wptGPGOptDlg.cpp (gpgopt_dlg_proc): Fixed name of title.          void.
57          * Make sure the passphrase is always overwritten before it is  
58          freed (or the function returns).  2011-12-06  Timo Schulz  <[email protected]>
59          * wptKeyPropDlg.cpp (get_pref_cipher): New.  
60          (keyprops_dlg_proc): Use it here.          * wptNLS.cpp (get_user_langid): Removed.
61            Use gettext_get_langid() instead. Changed all callers.
62  2005-08-06  Timo Schulz  <[email protected]>          (gettext_set_file): Removed.
63            (w32_stpcpy): Likewise.
64          * wptGPGME.cpp (keycache_update): Reload OpenPGP parts          * StringBuffer.cpp: Overload '=' operator for 'char*'.
65          of the secret key.  
66          (keycache_init): cache name of secret keyring.  2011-12-06  Timo Schulz  <[email protected]>
67          * wptKeyList.cpp (keylist_upd_key): Do not add long keyid.  
68          (get_key_type): Do not assume 'ultimate' means key pair.          * wptKeyPropsDlg.cpp (on_init_dialog): Extra hint in
69          * wptKeyEditDlgs.cpp (diff_time): New.          the title that the key has been revoked.
70          (keyedit_addsubkey_dlg_proc): Changed design and use          * wptKeyManagerDlg.cpp (keymanger_dlg_proc): Redraw
71          diff_time. Drop checks for invalid keylength (< 1024, > 4096)          list view in case a modal client dialog has been closed.
72          because the combo box automatically handles this.          
73          * wptKeyManager.cpp (km_set_implicit_trust): Return error code.  2011-12-04  Timo Schulz  <[email protected]>
74          * wptGPG.cpp (get_backup_name): New.  
75          (gnupg_backup_keyrings): Rotate backup names, from 0..3.          * WinPT.cpp (get_file_version): New.
76          * wptClipImportDialog.cpp (clip_import_dlg_proc): Free memory.          Improved error handling.
77          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use 0x short keyid and  
78          not the long keyid.  2011-12-01  Timo Schulz  <[email protected]>
79    
80  2005-08-05  Timo Schulz  <[email protected]>         * wptGroupsDlg.cpp: Removed.
81           * wptGroupManager.cpp: Likewise.
82          * wptListView.cpp (listview_set_item2): New.         * wptKeyTrustPathDlg.cpp: Removed.
83          * wptKeyManager.cpp (km_check_if_protected): Directly        
84          retrieve gpgme_key_t from the list.  2011-11-30  Timo Schulz  <[email protected]>
85          (km_check_key_status): Likewise.          
86          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Also use         * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Adjusted
87          a human-readable name for secret key export.         positions for GPG menu entries.
88          Reload just the keys which were affected by updates        
89          (edit-key).  2011-11-25  Timo Schulz  <[email protected]>
90          (update_key): New.  
91          * wptKeyList.cpp ((keylist_upd_key): Stripped down          * WinPT.cpp (check_os_version): New. Separated
92          version of keylist_add_key.          function to check the OS verson.
93          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not          Removed emulate utf8 bug legacy code.
94          reload the keycache here, just flag 'update'. Give the          * wptKeygenDlg.cpp (gpg_genkey_params): Use the bits
95          control to the calling dialog.          also for the primary key since we are now supporting DSAv2.
96          * wptKeySignDlg.cpp (keysign_dlg_proc): Use winpt_key_t          (keygen_wizard_dlg_proc): Adjusted for DSAv2.
97          as parameter. Changed all callers.          * wptKeyEditDlgs.cpp (is_jpg_file): Modernized.
98          Add date of expiration to the key info.          (keyedit_addsubkey_dlg_proc): Removed 1024-bit DSA check
99          (get_expire_date): New.          and rewrote index to gpg menu mapping. Fixed wrong text label.
100          Use a checkbox to allow to ask for the cert level.          * wptProxySettingsDlg.cpp (keyserver_proxy_dlg_proc): Use balloon
101          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Do no reload          error boxes.
102          the cache.  
103            * Integrated patches from Remi FAVIER.
104  2005-08-04  Timo Schulz  <[email protected]>          
105    2007-08-03  Timo Schulz  <[email protected]>
106          * wptListView.cpp (listview_scroll): New.  
107          (listview_get_item2): New.          * wptMainproc.cpp (wpt_main_proc): A single click
108          * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): If the          with the mouse, left button, also shows the menu.
109          item was found, make it visible with scrolling.          * wptKeyEdit.cpp (uid_inf_colon_handler): uid is always
110          * wptKeyManager.cpp (km_find_key): New.          allocated and thus remove the additional check before free().
111          (keylist_subclass_proc): Support to handle some acceleators.  
112          Strg+{C, P, F, A}.          
113          (km_get_key_status): Get the gpgme_key_t object directly  2007-05-25  Timo Schulz  <[email protected]>
114          from the list.  
115          * wptGPGPRefsDlg.cpp (gpgprefs_dlg_proc): Also try to set          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Issue a warning
116          the config file (if it exists).          if the gpgProgram entry will be modified. Suggested by Werner.
117          * wptKeySignDlg.cpp (keysign_dlg_proc): Use easier code  
118          to handle the click->activate situation.  2007-03-23  Timo Schulz  <[email protected]>
119          * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.  
120          Support to check the passphrase quality.          * wptCardDlg.cpp (card_keygen_dlg_proc): Use dynamic
121          * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.          variables to avoid heap operations.
122          (request_passphrase): Rename 'init' to 'flags' to allow more          * wptKeyManager.cpp (km_http_import): Adjust the http class.
123          options.  
124          * wptMAPI.cpp: Check all *alloc results.  2007-03-21  Timo Schulz  <[email protected]>
125          * wptKeyGenDlg.cpp (keygen_dlg_proc): Use a rudimentary  
126          passphrase quality check.          * wptKeyManager.cpp (gpg_keylist_to_pattern): Return allocated
127          * wptMDSumDlg.cpp (mdsum_dlg_proc): Use md5/sha1sum file          array of strings.
128          format and allow to save the checksum in a file.          (km_clip_export): Really export all selected keys.
129          * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Issue a warning          (km_file_export): Likewise.
130          when the PGP mode is disabled.          
131          wptKeyEditDlgs.cpp (do_editkey_primary): Return if just  2007-03-17  Timo Schulz  <[email protected]>
132          one user-ID exists.  
133          (keyedit_dlg_proc): Fixed index problem.          * wptErrors.cpp (debug_end): Reset FP pointer.
134          * wptKeyPropsDlg.cpp (get_validity): New.          (printf_box): Fix buffer calculation.
135          (keyprops_dlg_proc): Actually show extended validity if possible.          * wptOwnertrustDlg.cpp (gpg_import_ownertrust): Actually
136          * wptKeyList.cpp (get_key_fpr): Support for old v3 format.          return the error.
137          (do_addkey): Use listview_add_item2 to store key as opaque  
138          param inside the list.  2007-03-13  Timo Schulz  <[email protected]>
139          * wptFileStatDlg.cpp (get_digest_algo): Add SHAxxx.  
140          (file_stat_dlg_proc): End dialog if no PGP data was found.          * wptGPG.cpp (gpg_check_file_permissions): New.
141          (do_list_packets): Return the number of valid PGP packets          (my_access): Renamed to..
142          of the file.          (check_file_access): ..this.
143    
144  2005-08-02  Timo Schulz  <[email protected]>  2007-03-12  Timo Schulz  <[email protected]>
145            
146          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Instead of          * wptVerifyList.cpp (extract_filename): Simplified.
147          using 'Default Keyserver' add the real keyserver name to          * wptKeyserverSearchDlg.cpp (fetch_keys): Avoid possible memory
148          the menu.          leak for some error cases.
149          The rebuild command does not reload the cache any longer.  
150          Use ATTR_NAME + .asc as the filename and not keyid + .asc.  2007-03-10  Timo Schulz  <[email protected]>
151          * wptProxySettingsDlg.cpp (enable_proxy_auth): New.  
152          (keyserver_proxy_dlg_proc): Changed the design a little          * wptKeyserver.cpp (kserver_recvkey): Use StringBuffer to
153          and add some additional sanity checks.          avoid possible allocation problems.
154          * wptGPGParser.cpp (commit_gpg_options): Use W32 line endings.          (kserver_seararch_begin): Likewise.
155          This fixes the problem that the GPG option dialog does not show          (parse_pub_record): Double check fpr to key ID problem.
156          very nice lines.          Noted by Mike Culbertson.
157          * wptGPGOptDlg.cpp (gpgopt_dlg_proc): s/options/config.  
158          * wptKeySigDlg.cpp (keysig_dlg_proc): If a single key is selected  2007-03-09  Timo Schulz  <[email protected]>
159          check for 'NOKEY' before asking a keyserver.  
160          * wptKeyManager.cpp (km_delete_keys): Do not set 'refresh' flag.          * wptClipImportDlg.cpp (print_import_status): Use the fingerprint
161          If a lot of keys were selected, ask if the user wants to confirm          instead of the key ID to avoid problems with v3 keys.
162          each delete procedure or allow to cancel the operation.          * wptClipDecryptDlg.cpp (verify_get_clip_info): Use key ID
163          * wptFileManagerDlg.cpp (file_import_dlg_proc): Display how much          in case of v3 keys. Noted by Raphael
164          keys the file contain.          (verify_show_signature_state): Likewise.
165          * wptKeyList.cpp (get_key_algo): Beautified.          * wptVerifyList.cpp (verlist_add_sig_log): Likewise.
166          (get_key_status): Drop the "[XYZ] Unknown" format, it is too          (verlist_add_sig): Likewise.
167          confusing for users.            
168          * wptKeyManager.cpp (km_check_key_status): Adjustments for the  2006-12-30  Timo Schulz  <[email protected]>
169          new code.  
170          (km_check_for_seckey): Reset utrust parameter. Return -1 for          * StringBuffer.cpp (StringBuffer): New.
171          invalid (exp+rev+dis) keys.          * wptPassphraseDlg.cpp (set_passphrase_hint): Replace error prone
172            sprintf code with the new string buffer implementation.
173  2005-08-01  Timo Schulz  <[email protected]>          * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
174    
175          * wptKeyserver.cpp (kserver_urlencode): Use unsigned for all given  2006-12-28  Timo Schulz  <[email protected]>
176          sizes.  
177          (check_IP_or_hostname): New.          * wptKeylist.cpp (get_key_desc): Avoid possible overflow.
178          (kserver_load_conf): Correct finger URL parsing problem.          * wptW32API.cpp (get_locale_time): New.
179          (port_from_proto): New.          (get_locale_timedate): New.
180          (keyserver_load_conf): Guess the port.          * wptVerifyList.cpp (strtimestamp): Deleted. Changed all
181          (keyserver_set_default): Allocate new buffer.          callers to get_locale_timedate.
182          (kserver_load_conf): Likewise.          * wptMainProc.cpp (winpt_main_proc): Cleanup gettext resources.
183          * wptHTTP.c (parse_reqline, parse_request): Removed.          * wptNLS.cpp (gettext_free_current_domain): New.
184          Use WinPT error code and remove all unused code.          (gettext_set_file): Removed all '/' code.
185          * wptKeyserverDlg.cpp (keyserver_dlg_proc): Properly handle finger URLs.          * wptPassphraseCb.cpp (passphrase_callback_proc): Make sprintf
186          * wptProxySettingsDlg.cpp (read_proxy): Simple check for          code more robust.
187          invalid host/IP addresses.  
188          * wptGPG.cpp (multi_gnupg_path): Return allocated buffer.  2006-12-21  Timo Schulz  <[email protected]>
189          Changed all callers.  
190          * wptPreferencesDlg.cpp (prefs_dlg_proc): At the first start,          * wptCryptDisk.cpp, wptCryptDiskSrv.cpp: Deleted.
191          automatically set 'backup to homedir'.          The Code will be possibly used in a separate project.
192          * WinPT.cpp (WinMain): Use desktop window as the parent window  
193          to load 'first-start' dialogs.  2006-12-05  Timo Schulz  <[email protected]>
194          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not set 'refresh'  
195          flag after deleting keys.          * wptClipDecryptDlg.cpp (verify_get_clip_info): If
196          * wptFirstRunDlg.cpp (first_run_dlg_proc): Use a new structure          there is no pubkey available, issue a hint and not BUG.
197          for passing the arguments.          
198          * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Do not store "" for  2006-12-02  Timo Schulz  <[email protected]>
199          the OptFile. This was responsible for a lot of 'General Errors'  
200          after the first start related to key caching.          * WinPT-en.rc: Remove wipe free space menu item.
201          Automatically set the gpg binary if possible.          * wptRegistry.cpp (get_reg_winpt_prefs): Remove wipemode.
202            * wptFileManageRDlg.cpp (file_secdel_confirm_dlg_proc):
203  2005-07-22  Timo Schulz  <[email protected]>          Allow to set the passes here.
204            * wptFileManager.cpp (fm_encrypt): change all callers
205          * wptMainProc.cpp (winpt_main_proc): Take care for shutdown          for the wipe functions.
206          messages and make sure WinPT make a keyring backup in this case.          * wptListview.cpp (listview_sort_items): Extract code
207          * wptGPGME.cpp (keycache_reload): Do not rebuild the signature          to change the column image.
208          cache each time. Just do it on startup.          * wptKeylist.cpp (key_get_image_id): New.
209          * wptKeyManager.cpp (km_key_is_v3): Use new ATTR_VERSION.          (keylist_build): Change return type and all callers.
210          * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Assume the v3 flag          * wptGPG.cpp (gnupg_load_config): Kludge to detect
211          was set by the calling function.          the 'textmode' option.
212          * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): Ask for backups.          * wptPassCache.cpp (wipe_data): replaced with wipememory().    
213          (keygen_dlg_proc): Only add the generated key to the keycache  
214          and do not reload the entire cache.  2006-11-12  Timo Schulz  <[email protected]>
215          * wptKeyManager.cpp (km_delete_keys): Store the number of keys  
216          because in each loop iteration it will be new calculated.          * wptGPG.cpp (check_gnupg_options): Fix sizeof != DIM problem.
217          * wptListView.cpp (listview_del_items): Likewise.          * wptGPGOptDlg.cpp (gpg_opt_dlg_proc): Better checks to
218          * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Directly add the          avoid invalid gpg.conf entries.
219          generated key to the list instead of reloading the entire cache.          Thanks to Ralf Latz.
220          * wptKeyEditDlgs.cpp (parse_preflist): Support fpr SHAnnn.          
221    2006-11-04  Timo Schulz  <[email protected]>
222    
223            * wptW32API.cpp (set_clip_text2): Make sure enough memory
224            will be allocated.
225            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Delete list
226            view entries for none existing files.
227            * wptKeySignDlg.cpp (keysign_dlg_proc): Simplified.
228            * wptClipboard.cpp (gpg_data_change_version): Be more liberal.
229            * wptKeyserver.cpp (parse_pub_record): Convert FPR entries
230            into KEYID entries.
231            * wptGPG.cpp (gnupg_backup_keyrings): Release memory in case
232            of errors.
233            (get_backup_name): Use constant formant spec.
234            (extract_keyid): Simplified.
235            * wptKeyserver.cpp (kserver_connect): Return proxy error if
236            approriate.
237            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Correct memory
238            handling to avoid possible segfaults.
239            (fetch_key_from_keyserver): Real error handling.
240            * wptFileManager.cpp (fm_gpg_verify): New.
241            (fm_verify): Support to fetch key here to avoid problems later.
242            * wptFileCBS.cpp (file_data_rewind): New.
243            
244            
245    2006-10-27  Timo Schulz  <[email protected]>
246    
247            * wptGPG.cpp (get_backup_name): Make sure enough memory
248            will be allocated.
249            (gnupg_backup_keyrings): Release memory in case of errors.
250            
251    2006-10-21  Timo Schulz  <[email protected]>
252    
253            * wptKeyserver.cpp (get_reg_proxy_prefs): Load the protocol
254            and store it.
255            * wptKeyCache.cpp (parse_attr_data): Avoid zombie temp files.
256            
257    2006-10-04  Timo Schulz  <[email protected]>
258    
259            * wptFileManager.cpp (fm_check_armor_type): Remove space in
260            search pattern string.
261            (fm_check_for_entry): Case insentensive search.
262            (fm_add_dir_files): Use W32 API directly.
263            * wptVerifyList.cpp (verlist_add_sig_log): Use proper icon.
264            * wptGPGUtil.cpp (get_gpg_version): Cleanups.
265            
266    2006-08-30  Timo Schulz  <[email protected]>
267    
268            * wptRegistry.cpp (get_reg_entry): Do not use static buffers.
269            * wptKeyserverDlg.cpp (add_pattern_to_combox): New.
270            (save_pattern_from_combox): New.
271            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Solve icon problem.
272            * wptGPGMEWrapper.c (importFromBuffer): New.
273            * WinPT.cpp (check_crypto_engine): Only enable PC/SC when the
274            system really has smart card services enabled.
275            * wptKeyManger.cpp (km_http_import): Stricter error checking.
276            * wptFileManager.cpp (fm_send_file): Use at least MAX_PATH
277            for the file name.
278            
279    2006-08-24  Timo Schulz  <[email protected]>
280    
281            * wptHTTP.cpp (extraHostInfo): Handle case when no doc were given.
282            (get): Better error handling.
283            (head): Likewise.
284            * wptGPGME.cpp (sigsum_to_index): Just map the index without
285            any checks.
286            * wptCommonDlg.cpp (check_URL): Be more strict.
287            
288    2006-08-11  Timo Schulz  <[email protected]>
289    
290            * wptGPGMEWrapper.cpp (importFromFile): New.
291            (importFromClipboard): New.
292            (importGetResult): New.
293            * wptKeyManager.cpp (km_file_import): Use gpgme wrapper.
294            (km_clip_import): Ditto.
295            * wptKeyEdit.cpp (addCardKey): New.
296            * wptKeyEditCB.cpp (cmd_addcardkey_handler): New.
297            * wptCardEdit.cpp (get_str_timestamp): Use locale date format.
298            * wptCardDlg.cpp (card_edit_dlg_proc): Began to localize dialog.
299            * wptKeyCache.cpp (key_divert_to_card): Adjusted for 'addcardkey'.
300            
301    2006-08-10  Timo Schulz  <[email protected]>
302    
303            * wptFileManager.cpp (fm_verify_pasted_detsig): '=' should be
304            '=='.
305            * wptGPGME.cpp (sigsum_to_index): Correctly handle expired
306            keys and signatures.
307            (get_gpg_sigstat): Adjusted code.
308            * wptCardDlg.cpp (card_changepin_dlg_proc): Cleanups.
309            (gpg_card_load): Improved card detection code.
310            * wptFirstRunDlg.cpp (first_run_dlg_proc): Allow to generate
311            a key on a card. Suggested by Achim.
312            * wptUtil.cpp (check_email_address): Add sanity check for
313            the length.
314            * WinPT.cpp (WinMain): Handle cardgen request.
315            
316    2006-08-04  Timo Schulz  <[email protected]>
317    
318            * wptKeysignDlg.cpp (display_keyinfo): Skip revoked user IDs.
319            * wptKeyManagerDlg.cpp (reload_keylist): Use updated ptr.
320            * wptKeyCache.cpp (gpg_keycache_delete_key): Correct handling
321            for the situation that the last key in the cache is deleted.
322            * wptFileManagerDlg.cpp (update_ui_items): Fix file name
323            detection.
324            
325    2006-08-02  Timo Schulz  <[email protected]>
326    
327            * wptClipDecryptDlg.cpp (verify_get_clip_info): Fix problem
328            with static data.
329            (clip_decrypt_dlg_proc): Prefix keyid with 0x.
330            (get_key_userid): Fix problem when key was not found.
331            * wptClipVerifyDlg.cpp (fetch_key_from_keyserver): Correct
332            fingerprint to short keyid conversion.
333            * wptVerifyList.cpp (verlist_set_additional_info): Handle bad
334            sigs.
335            * wptKeyManagerDlg.cpp (update_status_bar): Faster update code.
336            
337            
338    2006-08-01  Timo Schulz  <[email protected]>
339    
340            * wptGPG.cpp (get_last_gnupg_access): Enhanced.
341            (gnupg_display_error): Removed unused code.
342            * wptPassphraseCB.cpp (parse_gpg_description): Text output
343            is now more human readable.
344            * wptKeyManager.cpp (km_refresh_from_keyserver): Return an
345            error code in all cases.
346            
347    2006-07-31  Timo Schulz  <[email protected]>
348    
349            * wptMainProc.cpp (clip_gpg_dlg): Merge in the current window
350            handling code.
351            * wptCurrWnd.cpp (wnd_msg_em_set_pos): Reset pos to 0, not 1.
352            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Disable sorting
353            for list view controls.
354            
355    2006-07-30  Timo Schulz  <[email protected]>
356    
357            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Change menu style.
358            * wptKeySignDlg.cpp (keysign_dlg_proc): List all user IDs.
359            (display_keyinfo): New.
360            * wptKeySigDlg.cpp (init_datepicker_from_time): New.
361            (keysig_dlg_proc): List creation time.
362            * wptKeyManager.cpp (km_send_to_mail_recipient): Fix file
363            handling.
364            
365    2006-07-28  Timo Schulz  <[email protected]>
366    
367            * wptKeyManager.cpp (lv_del_confirmed_keys): New.
368            * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Automatically
369            adjust key size.
370            * wptKeygenDlg.cpp (keygend_dlg_proc): Likewise.
371            
372    2006-07-25  Timo Schulz  <[email protected]>
373    
374            Applied spelling corrections from Anthony Bryan.
375            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Changed design.
376            * wptKeygenDlg.cpp (backup_keyrings): Change default keyring.
377            
378    2006-07-22  Timo Schulz  <[email protected]>
379    
380            * wptMainProc.cpp (elgamal_warn_dlg_proc): Properly handle
381            utf8 encoded user ids.
382            (winpt_main_proc): Cleanups.
383            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Allow to copy
384            email address to the clipboard.
385            
386    2006-07-15  Timo Schulz  <[email protected]>
387    
388            * WinPT.cpp (WinMain): Compare PTD and WinPT version to avoid
389            any compatibility problems.
390            * wptW32API.cpp (get_file_version): Cleanups.
391            
392    2006-07-10  Timo Schulz  <[email protected]>
393    
394            * wptUtil.cpp (check_file_name): New.
395            * wptKeyRevokeDlg.cpp (mk_cert_name): Avoid illegal chars.
396            (key_revoke_dlg_proc): Likewise.
397            * wptMDSumDlg.cpp (mdsum_dlg_proc): Corrected file handling.
398            * wptImportList.cpp (implist_load): Likewise.
399            * wptFileSaveDlg.cpp (file_save_dlg_proc): Likewise.
400            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Hide dialog item.
401            
402    2006-07-05  Timo Schulz  <[email protected]>
403    
404            * wptMainProc.cpp (winpt_main_proc): Change menu texts.
405            * wptClipEditDlg.cpp (clip_edit_dlg_proc): More lightweight
406            with a menu instead of dozen of buttons.
407            
408    2006-07-01  Timo Schulz  <[email protected]>
409    
410            * wptFileManager.cpp (fm_sort): Rewritten.
411            (fm_build): Modify param type. Change all callers.
412            (fm_cmp_cb): Adjusted for the new code.
413            * wptMDSumDlg.cpp (mdsum_dlg_proc): Minor changes and model
414            for the list view.
415            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Use info
416            context and model for the list view.
417            (update_status_bar): Fix calculation of the size of the
418            selected files.
419            * wptProgressDlg.cpp (wait_for_progress_cb): Changed semantic
420            and return type.
421            
422    2006-06-28  Timo Schulz  <[email protected]>
423    
424            * wptGPGPrefsDlg.cpp (load_gpg4win_values): Fix control logic
425            and memory leak.
426            * wptListView.cpp (listview_find_substr): New.
427            (listview_sort_items): Use symbolic ids.
428            * wptKeyManager.cpp (km_find_key): Allow substring search.
429            
430    2006-06-27  Timo Schulz  <[email protected]>
431    
432            * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Also call viewer
433            when no sig has been found (if requested).
434            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Use a button to
435            quote instead of the check box. Cleanups.
436            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Correct
437            sorting problem and wrong icon display.
438            * wptListView.cpp (listview_sort_items): Correct code for
439            checkbox based lists.
440            * wptKeylist.cpp (keylist_build): Add sorting icons.
441            * wptKeyEditDlgs.cpp (create_header_tooltip): New.
442            
443    2006-06-24  Timo Schulz  <[email protected]>
444    
445            * wptMainProc.cpp (winpt_main_proc): Localize missing string.
446            * wptKeyEditDlgs.cpp (do_add_new_subkey): Better fpr to keyid
447            conversion.
448            (subkey_list_init): Simplified.
449            
450    2006-06-22  Timo Schulz  <[email protected]>
451    
452            * WinPT-en.rc: Include versioninfo.rc to generate
453            the version info automatically.
454            
455    2006-06-19  Timo Schulz  <[email protected]>
456    
457            * wptClipDecryptDlg.cpp (verify_get_clip_info): Improved
458            format of the sig info text.
459            * wptKeyserver.cpp (check_hkp_response): Invert error logic.
460            * wptKeyserverDlg.cpp (keyserver_recv_key): Corrected error
461            handling.
462            * wptPassphraseDlg.cpp (request_key_passphrase): Return
463            utf8 encoded passphrase.
464            
465    2006-06-18  Timo Schulz  <[email protected]>
466    
467            * wptKeygenDlg.cpp (keygen_dlg_proc): Fix typo.
468            * wptClipDecryptDlg.cpp (verify_get_clip_info): New.
469            (verify_get_key_ownertrust): New.
470            (clip_decrypt_dlg_proc): New argument. Change all callers.
471            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Handle the case
472            that the dialog was called with a param.
473            * wptMainProc.cpp (winpt_main_proc): Wait for thread in
474            case of dbl-click.
475            
476    2006-06-16  Timo Schulz  <[email protected]>
477    
478            * wptProgressDlg.cpp (wait_for_progress_cb): New.
479            * wptMainProc.cpp (winpt_main_proc): Use this function
480            to disallow to access the cache during synchronisation.
481            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
482            * wptKeyserver.cpp (check_hkp_response): Improved text
483            extraction.
484            (parse_keyserver_error): New.
485            * wptPassphraseDlg.cpp (request_passphrase): Support utf8
486            encoding.
487            * wptKeyEditDlgs.cpp (keyedit_change_passwd): Warn if passhrase
488            needs to be utf8 encoded but still allow it.
489            * wptPassphraseCBDlg.cpp (passphrase_callback_proc): Utf8 support.
490            * wptKeygenDlg.cpp (keygen_dlg_proc): Likewise.
491            * wptKeyRevokeDlg.cpp (keyrevoke_dlg_proc): Likewise.
492            
493    2006-06-15  Timo Schulz  <[email protected]>
494    
495            * wptVerList.cpp (verlist_build): Use icons.
496            (verlist_add_sig): Set image number according to sig state.
497            
498    2006-06-14  Timo Schulz  <[email protected]>
499    
500            * wptAboutDlgs.cpp (about_winpt_dlg_proc): Translate
501            authors string here. Noted by Eduardo.
502            * wptSymEnc.cpp (gpg_clip_sym_encrypt): Check all return codes.
503            
504    2006-06-09  Timo Schulz  <[email protected]>
505    
506            * wptKeyEditDlgs.cpp (do_add_new_subkey): Properly handle
507            RSA_E and RSA_S.
508            * wptFileManager.cpp (fm_sym_encrypt): Better dialog title.
509            
510    2006-06-08  Timo Schulz  <[email protected]>
511    
512            * wptKeyserver.cpp (parse_keyserver_url): Handle special case.
513            * wptKeySignDlg.cpp (keysign_dlg_proc): Show photo if possible.
514            (showphoto_dlg_proc): New.
515            * wptKeyManagerDlg.cpp (restore_window_size): New.
516            (keymanager_dlg_proc): Restore original window size on startup.
517            (copy_key_info): Allow to copy multiple key items.
518            
519    2006-06-06  Timo Schulz  <[email protected]>
520    
521            * wptKeyEditCB.cpp (cmd_sign_handler): Return 0 by default
522            if no expire date were given.
523            
524    2006-06-05  Timo Schulz  <[email protected]>
525    
526            * wptPassphraseDlg.cpp (request_passphrase): Release mem
527            in case of errors.
528            (request_key_passphrase): New.
529            (set_passphrase_hint): New.
530            * wptKeyEditDlgs.cpp (do_editkey_sign_userid): Show passphrase
531            hint. Suggested by vedaal.
532            
533    2006-06-03  Timo Schulz  <[email protected]>
534    
535            * wptPINDlg.cpp (pin_dlg_proc): Remove static var.
536            * wptClipEncryptDlg.cpp (show_invalid_recipients): Handle
537            the case that 'encrypt-to' points to a non-existing item.
538            * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Do not close
539            the dialog if an error occurred.
540            * wptKeygenDlg.cpp (keygn_dlg_proc): Check expirate date.
541            * wptKeyEditDlgs.cpp (keyedit_adduid_dlg_proc): Release mem
542            in case of errors.
543            * wptKeyserverDlg.cpp (check_pattern): Improved code.
544            (keyserver_dlg_proc): All comparisons are case insentensive.
545            * wptKeyserver.cpp (parse_uid_record): utf8 decode user id.
546            
547    2006-06-02  Timo Schulz  <[email protected]>
548    
549            * wptKeygenDlg.cpp (keygen_dlg_proc): Forgot to apply patch.
550            
551    2006-06-01  Timo Schulz  <[email protected]>
552    
553            * wptKeyserver.cpp (check_URL): change semantic.
554            (skip_type_prefix): Use check_URL().
555            * wptGPG.cpp (gnupg_backup_keyrings): New argument to
556            include secret keyring backups. Change all callers.
557            * wptRegistry.cpp (get_reg_winpt_prefs): Support new option.
558            (set_reg_winpt_prefs): Likewise.
559            * wptPreferencesDlg.cpp (on_init_dialog): Adjust the code.
560            
561    2006-05-29  Timo Schulz  <[email protected]>
562    
563            * wptKeyserver.cpp (keyserver_set_default): Also set default port.
564    
565    2006-05-27  Timo Schulz  <[email protected]>
566    
567            * wptKeyEditDlgs.cpp (keyedit_change_passwd): Handle empty
568            passphrase requests.
569            * wptClipDecryptDlg.cpp (verify_show_signature_state): Modified
570            for global use.
571            * wptFileManager.cpp (fm_decrypt): Use it here.
572            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Simplified.
573            
574    2006-05-25  Timo Schulz  <[email protected]>
575    
576            * wptGPGUtil.cpp (gpg_rebuild_cache): Return error code.
577            * wptGPGME.cpp (winpt_get_seckey): Fix off-by-one bug.
578            * wptVerifyList.cpp (verlist_build): New argument type.
579            Change all callers.
580            (verlist_set_info_control): New.
581            (verlist_set_additional_info): New.
582            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Adjust code.
583            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Likewise.
584            * wptFileCBS.cpp (read_cb, write_cb): Add logging.
585            
586    2006-05-23  Timo Schulz  <[email protected]>
587    
588            * wptKeyEditDlgs.cpp (do_add_new_userid): Fix re-introduced
589            problem.
590            (keyedit_main_dlg_proc): Popup menu for the user ID list
591            with common commands.
592            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Automatically
593            disable search for ldap servers.
594            Use subkeys.pgp.net by default when no server was selected.
595    
596    2006-05-22  Timo Schulz  <[email protected]>
597    
598            * wptRegistry.cpp (set_reg_winpt_prefs, get_reg_winpt_prefs):
599            Support for the new 'default ext' value.
600            * wptPreferencesDlg.cpp (on_init_dialog): Likewise.
601            (prefs_dlg_proc): Likewise.
602            * wptFileManager.cpp (file_get_extension): Likewise.
603            (get_output_file): Likewise.
604            (fm_export): Likewise.
605            
606    2006-05-20  Timo Schulz  <[email protected]>
607    
608            * wptKeyPropsDlg.cpp (keyprops_load_photo): avoid expensive
609            process call when no photo is available.
610            (keyprops_dlg_proc): avoid static data.
611            * wptFileManager.cpp (fm_add_sig_stat): Free memory in case
612            of on demand key requests.
613            (show_verify_result): Likewise.
614            (secret_key_available): Likewise.
615            (fm_decrypt, fm_sign): Handle the new on demand key request
616            mode and free all memory.
617            
618    2006-05-15  Timo Schulz  <[email protected]>
619    
620            * wptKeyEditDlgs.cpp (userid_list_init): Forgot to
621            apply patch. Thanks to vedaal.
622            
623    2006-05-14  Timo Schulz  <[email protected]>
624    
625            * wptKeyCache.cpp (gpg_keycache_update_attr): Parse
626            preferred keyserver URL.
627            * wptHTTP.cpp (extractHostInfo): Fix segv.
628            * wptGPGUtil.cpp (gpg_find_key_subpacket): Ignore default
629            gpg.conf.
630            * wptKeyserverSearchDlg.cpp (search_hkp_keys): Do not
631            assume an existing user id.
632            * wptPassphraseCB.cpp (passphrase_cb): Automatic cancel
633            if no passphrase is available.
634    
635    2006-05-13  Timo Schulz  <[email protected]>
636    
637            * wpMainProc.cpp (secret_key_available): Move it...
638            * wptGPGME.cpp: ..to this file.
639            (check_ultimate_trusted_key): Handle the case there
640            is no secret key available.
641            * wptFileManagerDlg.cpp (update_ui_items): Improved.
642            * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Deactive
643            some functions when no secret key is available.
644            * wptKeyserverSearchDlg.cpp (search_hkp_keys): Adjust
645            code and also display pubkey algorithm.
646            * wptKeyserver.cpp (safe_alloc): New.
647            (count_keys_in_response): New.
648            (parse_pub_record): New.
649            (parse_uid_record): New.
650            (kserver_release_key): New.
651            (kserver_search_begin, kserver_search_next_key):
652            Adjust for the machine readable output. Removed old code.
653            (parse_keyserver_url): New.
654            * wptUtil.cpp (substr): New.
655            * wptKeyManager.cpp (km_refresh_one_key): Properly
656            parse the keyserver URL.
657            
658    2006-05-11  Timo Schulz  <[email protected]>
659    
660            * wptPassphraseCB.cpp (release_gpg_recipients): New.
661            (release_gpg_recipients): Use it here.
662            * wptFileManager.cpp (fm_decrypt): List all recipients.
663            Thanks to vedaal.
664            * wptGPG.cpp (extract_keyid): New.
665            (get_gnupg_default_key): Use it here.
666            * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Allow to verify
667            one-pass-sigs again.
668            
669    2006-05-09  Timo Schulz  <[email protected]>
670    
671            * wptKeyRevokersDlg.cpp (revokelist_build): Store key ptr.
672            * wptClipSignDlg.cpp (gpg_clip_sign): Improve error handling.
673            * wptKeysigDlg.cpp (sigprops_dlg_proc): Correct expire date.
674            
675    2006-05-07  Timo Schulz  <[email protected]>
676    
677            * wptKeyserverDlg.cpp (hkp_err_box): Improved.
678            * wptKeyserver.cpp (wsock_strerror): Likewise.
679            * wptKeygenCBDlg.cpp (keygen_cb_dlg_destroy): New param.
680            Change all callers.
681            * wptKeysigDlg.cpp (do_load_keyprops): Correct key update
682            problem.
683            
684    2006-05-06  Timo Schulz  <[email protected]>
685    
686            * wptKeyManagerDlg.cpp (reload_keycache): Use pre-defined
687            sorting order if available.
688            * wptKeyPropsDlg.cpp (key_props_dlg_proc): Use 0x prefix
689            for the key ID.
690            (get_pref_cipher): Differ between the AES algorithm IDs.
691            (key_is_valid): New.
692            * wptKeyserverDlg.cpp (check_pattern): Simplified.
693            
694    2006-05-03  Timo Schulz  <[email protected]>
695    
696            * wptKeyCache.cpp (keycache_prepare2): Fix possible segv.
697            Thanks to Mathias.
698            
699    2006-05-02  Timo Schulz  <[email protected]>
700    
701            * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Use a
702            caption for the radio button group.
703            * wptKeyserverDlg.cpp (keyserver_recv_key): Use new code.
704            * wptKeyserver.cpp (kserver_recvkey, finger_recvkey,
705            ldap_recvkey): Avoid fixed buffers.
706            (do_spawn_ldap_helper): New.
707            (ldap_recvkey): Factor out code into helper function.
708            * wptPassphraseCBDlg.cpp (passphrase_callback_proc):
709            Increase width of the list box to make sure even large
710            user IDs will be completly displayed.
711            
712    2006-05-01  Timo Schulz  <[email protected]>
713    
714            * WinPT.cpp (WinMain): Check if the user has admin privileges.
715            * wptW32API.cpp (user_is_admin): New.
716            * wptKeysigDlg.cpp (sigprops_dlg_proc): Cosmetical changes.
717            * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Use timer
718            to re-activate the window again.
719            * wptKeylist.cpp (get_key_trust2): Differ between "full"
720            and "ultimate".
721            * wptKeyCache.cpp (keycache_prepare2): Primary user-id
722            has now highest priority.
723            * wptClipDecryptDlg.cpp (clip_decrypt_dlg): Use new utf8
724            system.
725            
726    2006-04-30  Timo Schulz  <[email protected]>
727    
728            * wptKeyCache.cpp (gpg_keycache_release): Release revoker
729            list if needed.
730            * wptKeyRevokersDlg.cpp (key_get_revokers): New.
731            (key_revokers_dlg_proc): Expect winpt_key_t. Change all callers.
732            * wptKeyEditDlgs.cpp (check_desig_rev): New.
733            (do_editkey_minimize): New.
734            * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Support to
735            generate a revoc cert as a desig revoker.
736            
737    2006-04-29  Timo Schulz  <[email protected]>
738    
739            * wptVerifyList.cpp (verlist_build): Adjusted code for new
740            list view interface.
741            * wptSigList.cpp (siglist_build): Likewise.
742            * wptKeyEditDlgs.cpp (showpref_dlg_proc): Correct code
743            to display the preferences of the selected UID. Thanks to Mathias.
744            * wptKeyCacheDlg.cpp (keycache_dlg_proc): Return 1 in case
745            of an error.
746            * wptKeyCache.cpp (gpg_keycache_update_key): Always update
747            the utf8 decoded uid list.
748            * wptImportList.cpp (decode_userid): Do utf8 decoding here.
749            * wptListView.cpp (listview_new): New param for HWND handle.
750            Change all callers.
751            * wptFileManager.cpp (fm_add_sig_stat): Use utf8 decoding.
752            * wptGPGUtil.cpp (gpg_revoke_cert): Support --desig-revoker.
753            * wptClipVerifyDlg.cpp (wptClipVerifyDlg.cpp): Correct
754            keyid extraction.
755            
756    2006-04-28  Timo Schulz  <[email protected]>
757    
758            * wptMAPI.cpp (mapi_send_pubkey): Use new key struct.
759            * wptKeysigDlg.cpp (sigprops_dlg_proc): Prepare dialog
760            for handling policy URLs.
761            * wptKeyManagerDlg.cpp (save_column_info, restore_column_info):
762            New option KMSortBy.
763            * wptKeylist.cpp (get_key_algo): Lower priority for revoked keys.
764            * wptKeyEdit.cpp (minimizeKey): New.
765            * wptKeyCache.cpp (gpg_keycache_update_key): Reload utf8 uid list.
766            
767    2006-04-27  Timo Schulz  <[email protected]>
768    
769            * wptKeyManager.cpp (km_get_key_ptr): New.
770            * wptListview.cpp (listview_get_item_text): Drop utf8 support.
771            * wptKeyCache.cpp (keycache_decode_uids): New.
772            (free_native_uids): New.
773            * wptKeyEdit.cpp (uid_inf_colon_handler): Do utf8 decodig here.
774            
775    2006-04-26  Timo Schulz  <[email protected]>
776    
777            * wptKeylist.cpp (get_keyid_from_fpr): New.
778            * wptDecryptClipDlg.cpp (clip_decrypt_dlg): Use it here.
779            * wptVerifyList.cpp (verlist_add_sig): Likewise.
780            
781    2006-04-25  Timo Schulz  <[email protected]>
782    
783            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Handle IDCANCEL.
784            * wptMDSumDlg.cpp (hash_selected_files): New.
785            (mdsum_dlg_proc): Cleanups.
786            * wptKeysignDlg.cpp (keysign_dlg_proc): Fix segv.
787            
788    2006-04-23  Timo Schulz  <[email protected]>
789    
790            * wptW32API.cpp (SetDlgItemText_utf8): New.
791            (SetWindowText_utf8): New.
792            (GetDlgItemText_utf8): New.
793            * wptListView.cpp (listview_add_sub_item): Internal
794            utf8 support.
795            
796    2006-04-22  Timo Schulz  <[email protected]>
797    
798            * wptKeyEditDlgs.cpp (addrevoker_dlg_proc): Encode
799            revoker name in UTF8.
800            * wptKeysigDlg.cpp (keysig_dlg_proc): Fix utf8 problem
801            with the window title.
802            
803    2006-04-20  Timo Schulz  <[email protected]>
804    
805            * wptUTF8.cpp (native_to_utf8): Use c++ alloc.
806            * wptKeygenDlg.cpp (keygen_dlg_proc): Do not mix c and
807            c++ memory allocation.
808            * wptFileManager.cpp (show_verify_result): Show PKA status
809            if possible.
810            * wptClipVerifyDlg.cpp (get_pka_status): New.
811            (clip_verify_dlg_proc): Show PKA status if possible.
812            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Handle IDCANCEL
813            to use ESC to quit the dialog.
814            * wptKeyEditDlgs.cpp (keyedit_adduid_dlg_proc): Also
815            encode the comment in UTF8. Thanks to Werner and Jan.
816            
817    2006-04-16  Timo Schulz  <[email protected]>
818    
819            * wptHTTP.cpp (getErrorCode): New.
820            (connect): Store winsock error code.
821            * wptGPGMEData.cpp (is_armor_header): New.
822            * wptGPG.cpp (check_gnupg_engine): Free context.
823            (gnupg_backup_keyrings): Do not use global vars.
824            * wptGPGUtil.cpp (gpg_export_seckey): Export in ascii format.
825            
826    2006-04-15  Timo Schulz  <[email protected]>
827    
828            * wptKeyManager.cpp (km_get_key): New.
829            (km_key_show_revoc_info): New.
830            * wptKeyRevokeDlg.cpp (key_revoke_dlg): Cleanups.
831            (on_init_dialog): New.
832            * wptKeyManagerDlg.cpp (key_manager_dlg_proc): Factour
833            out some common code and use km_get_key() instead.
834            * wptKeyEditDlgs.cpp (do_init_keylist): Change second
835            param type. Change all callers.
836            * wptKeyEdit.cpp (addNotation): New.
837            * wptKeyEditCB.cpp (editkey_command_handler): Remove 'step'
838            param everywhere. Change all callers.
839            
840    2006-04-09  Timo Schulz  <[email protected]>
841    
842            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Only return true
843            if the homedir value was changed.
844            * wptGPG.cpp (default_key_from_cache): Only return secret key
845            if public part is available.
846            (set_gnupg_default_key): Fix NULL problem.
847            * wptKeyEditDlgs.cpp (do_editkey_clean): Set update flag.
848            * wptFileCBS.cpp (write_cb, read_cb): Better error handling.
849            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Handle
850            'always-on-top' correctly.
851            * wptKeylist.cpp (keylist_get_recipients): Allocate enough
852            mem to hold all possible keys.
853            (keylist_enum_keys): Likewise.
854            
855    2006-04-08  Timo Schulz  <[email protected]>
856    
857            * wptKeylist.cpp (keylist_get_recipients): Always use utf8 output.
858            * wptKeyserver.cpp (kserver_connect): Fixed proxy support.
859            * wptKeyserverSearchDlg.cpp (fetch_keys): New.
860            * WinPT.cpp (WinMain): if the default key was not found, reset
861            the gpg.conf entry.
862            * wptFileManager.cpp (fm_encrypt_into_zip): Use correct output
863            file name.
864            (show_verify_result): Always use utf8 output.
865            (get_output_file): Case in-sentensive comparison.
866            (fm_assume_onepass_sig): Fixed temp file handling.
867            * wptClipEncryptDlg.cpp (show_invalid_recipients): Fix utf8
868            output.
869            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Fix possible segv.
870            
871    2006-04-07  Timo Schulz  <[email protected]>
872    
873            * wptW32API.cpp (set_clip_text): Change code so it also
874            works again with non-XP systems.
875            
876    2006-04-02  Timo Schulz  <[email protected]>
877    
878            * wptKeyserver.cpp: decrease general threshold for timeout.
879            * wptKeyEditDlgs.cpp (do_editkey_clean): New.
880            
881    2006-04-01  Timo Schulz  <[email protected]>
882    
883            * wptFileVerifyDlg.cpp (file_verify_use_event): Removed.
884            * wptFileManager.cpp (restore_original_name): New.
885            (fm_decrypt): Restore original file name from literal
886            packet if possible.
887            
888    2006-03-31  Timo Schulz  <[email protected]>
889    
890            * wptCommonDlg.cpp (nls_load_langlist): New.
891            (nsl_set_language): New.
892            (nls_dlg_proc): New.
893            (select_language): New. Allow user to select the language.
894            * wptNLS.c (get_gettext_langid): Updated available languages.
895            * WinPT.cpp (WinMain): Allow to select the languag on first
896            start in non-installer environments.
897            * wptVerifyList.cpp (verlist_build): Simplified.
898            (verlist_add_sig_log): Likewise.
899            * wptListview.cpp (listview_set_column_width,
900            listview_get_selected_item): New.
901            * wptKeyManager.cpp (gpg_clip_export): Merged into..
902            (km_clip_export): ..this function.
903            
904    2006-03-30  Timo Schulz  <[email protected]>
905    
906            * wptW32API.cpp (insert_menu_item): New.
907            * wptSigTreeDlg.cpp (create_popup): Use it.
908            (sigtree_dlg_proc): Only show the name of the owner in the title.
909            * wptMainProc.cpp (init_common_controls): Initialize all
910            common controls here.
911            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Drop static
912            keyserver menu concept. Add all keyservers dynamically.
913            
914    2006-03-29  Timo Schulz  <[email protected]>
915    
916            * wptKeyManager.cpp (km_refresh_one_key): Fix problem
917            with preferred keyserver.
918            * wptCommonDlg.cpp (check_URL): Allow non-http URL.
919            * wptKeyEditDlgs.cpp (subkey_subclass_proc,
920            uid_subclass_proc): Disable shortcuts for non keypairs.
921            * wptMainProc.cpp (winpt_main_proc): No user interaction
922            on automatic shutdown. Thanks to Werner.
923            * wptGPGUtil.cpp (xcalloc): New.
924            (gpg_rebuild_cache): Use --batch.
925            
926    2006-03-26  Timo Schulz  <[email protected]>
927    
928            * wptSigTreeDlg.cpp (sigtree_load): Always use UTF8.
929            * wptMainProc.cpp (winpt_main_proc): Reload key cache
930            when the GPG settings were changed.
931            * wptKeygenDlg.cpp (keygen_wizard_dlg_proc,
932            keygen_dlg_proc): Improved check for the email address.
933            * wptKeyEditDlgs.cpp (keyedit_adduid_dlg_proc): Likewise.
934            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Modified design.
935            
936    2006-03-22  Timo Schulz  <[email protected]>
937    
938            * wptClipSignDlg.cpp (on_init_dialog): New.
939            Check that there is at least one useable signing key.
940            * wptSigTreeDlg.cpp (sigtree_load): Correct UTF8 handling.
941            * wptKeyEditDlgs.cpp (keyedit_set_pref_keyserver): Show error
942            if needed.
943            
944    2006-03-21  Timo Schulz  <[email protected]>
945    
946            * wptUTF8.cpp (native_to_utf8): Use directly W32 API.
947            (utf8_to_native): Likewise. Remove cp850 conversion.
948            * wptKeyEditDlgs.cpp (do_find_userid): Correct UTF8 handling.
949            * wptKeyManager.cpp (km_delete_keys): Do not reset 'with_seckey'
950            flag.
951            
952    2006-03-20  Timo Schulz  <[email protected]>
953    
954            * wptUTF8.cpp (get_native_charset): Removed.
955            (utf8_to_native): Rewritten.
956            * wptKeyEditDlgs.cpp (do_add_new_userid): Correct charset
957            handling.
958            * wptKeygenCBDlg.cpp (keygen_cb): Do proper reset if needed.
959            
960    2006-03-16  Timo Schulz  <[email protected]>
961    
962            * wptMainProc.cpp (winpt_main_proc): Disable all CryptDisk code.
963            * wptCryptDisk.cpp: Disable code.
964            * wptProxySettingsDlg.cpp (proxy_settings_dlg_proc): Support for
965            NONE proxy protocol.
966            (init_proxy_procotol): Likewise.
967            (read_proxy): Likewise.
968            * wptKeyserverSearchDlg.cpp (on_init_dialog): New.
969            (keyserver_search_dlg_proc): Use it here.
970            * wptKeyserverDlg.cpp (hkp_send_key): Use GPGME wrapper.
971            * wptKeyserver.cpp (kserver_search_end): New.
972            (kserver_search_begin): Be more strict on mem allocation.
973            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Fix 'redraw'
974            problem.
975            * wptAboutDlgs.cpp (about_dlg_proc): Hide 'Help' button.
976            
977    2006-03-12  Timo Schulz  <[email protected]>
978    
979            * wptGPG.cpp (gnupg_load_config): Search for 'ask-cert-expire'.
980            * wptKeyPropsDlg.cpp (display_key_info): Automatically update
981            sym algorithm preferences if needed.
982            * wptKeysignDlg.cpp (date_is_today): New.
983            (keysign_dlg_proc): Only allow to set cert expire date if
984            the option was found.
985            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Allow to set
986            'ask-cert-expire'.
987            
988    2006-03-10  Timo Schulz  <[email protected]>
989    
990            * wptHTTP.c: deleted.
991            * wptHTTP.cpp (wHTTP): Transformed old code into an object.
992            * wptKeyManager.cpp (km_http_import): Use new code.
993            (km_refresh_one_key): Use preferred keyserver if possible.
994            * wptComonDlg.cpp (check_URL): Better conformance checking.
995            * wptKeyEditCB.cpp (cmd_keyserver_handler): By default
996            set keyserver for all userids.
997            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Enable code
998            to set preferred keyserver.
999            * wptKeyCache.cpp (decode_subpacket): New.
1000            (gpg_keycache_update_attr): New.
1001            * wptGPGUtil.cpp (gpg_find_key_subpacket): New.
1002            * wptKeyEditDlgs.cpp (keyedit_set_pref_keyserver): Use
1003            -1 as an index for all userids.
1004            
1005    2006-03-07  Timo Schulz  <[email protected]>
1006    
1007            * WinPT.cpp (set_default_keyserver): New.
1008            * wptKeyserver.cpp (kserver_set_socket_timeout): New.
1009            (kserver_set_default_keyserver): Initialize default settings
1010            if needed.
1011            * wptSymEnc.cpp (gpg_encrypt_symmetric): Disallow empty passwords.
1012            * wptPassphraseDlg.cpp (request_passphrase): Handle new flag.
1013            (passphrase_dlg_proc): Support new safe edit window procedure.
1014            * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
1015            * wptPreferencesDlg.cpp (prefs_dlg_proc): Flush passphrase cache
1016            if user disable it.
1017            * wptKeylist.cpp (keylist_build): Do not scale images but use
1018            original size.
1019            * wptListView.cpp (listview_set_image_list): New size params.
1020            Change all callers.
1021            
1022    2006-03-01  Timo Schulz  <[email protected]>
1023    
1024            * wptW32API.cpp (set_clip_text): Free all memory.
1025            
1026    2006-02-27  Timo Schulz  <[email protected]>
1027    
1028            * wptSOCKS.cpp (socks_handshake): New.
1029            * wptMainProc.cpp (winpt_main_proc): A dbl-click forces
1030            the key manager in teh foreground if possible.
1031            * wptHotkey.cpp (hotkey_unregister): Unregister all hotkeys.
1032            * wptRegistry.cpp (get_reg_proxy_prefs,
1033            set_reg_proxy_prefs): Use directly the proxy context.
1034            Changed all callers.
1035            * wptProxySettingsDlg.cpp (init_proxy_protocols): New.
1036            (keyserver_proxy_dlg_proc): Use directly the proxy context.
1037            * wptKeyserver.cpp (kserver_connect): Better proxy support.
1038            (kserver_send_request, kserver_recvkey_request): Likewise.
1039            * wptKeyserverDlg.cpp (name_from_proto): New.
1040            (set_proxy): Adjusted for the new code.
1041            
1042    2006-02-26  Timo Schulz  <[email protected]>
1043    
1044            * WinPT.cpp (WinMain): Removed hotkey_modify() code.
1045            * wptKeyEditDlgs.cpp (is_idea_protect_algo): Better support
1046            v4 keys.
1047            * wptKeyserver.cpp (sock_getline): Skip '\r'.
1048            (base64_encode): Remove @maxlen param. Changed all callers.
1049            (finger_readline): Removed.
1050            (finger_recvkey): Use internal functions.
1051            * wptSigTreeDlg.cpp (sigtree_dlg_proc): Support a context menu.
1052            (show_sigprops): New.
1053            (create_popup): New.
1054            * wptPreferenceDlg.cpp (prefs_dlg_proc): Cache amount is
1055            now in minutes.
1056            * wptRegistry.cpp (get_winpt_reg_prefs, set_winpt_reg_prefs):
1057            Change code to use hotkeys directly.
1058            * wptHotkeys.cpp (hotkeys_enable, hotkey_disable): Likewise.
1059            
1060    2006-02-24  Timo Schulz  <[email protected]>
1061    
1062            * wptGPG.cpp (set_gnupg_default_key): Allow to remove entry
1063            when parameter is NULL.
1064            * wptKeyManager.cpp (check_exist_default_key): New.
1065            (km_delete_keys): Check if the default key is still valid,
1066            if not delete entry.
1067            * wptSigTreeDlg.cpp (sigtree_dlg_proc): Forgot to localize
1068            button.
1069            
1070    2006-02-21  Timo Schulz  <[email protected]>
1071    
1072            * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Minor
1073            cleanups.
1074            * wptGPGUtil.cpp (file_extract_recipients): New.
1075            (clip_extract_recipients): New.
1076            (gpg_get_recipients): New.
1077            * wptPassphraseCB.cpp (passphrase_callback_proc): Support
1078            external recipient listings.
1079            
1080    2006-02-15  Timo Schulz  <[email protected]>
1081    
1082            * wptKeysignDlg.cpp (keysign_dlg_proc): Localize new checkbox.
1083            * wptFileStatDlg.cpp (get_s2k_algo): New.
1084            * wptFileManagerDlg.cpp (update_status_bar): Use human readable
1085            formats.
1086            
1087    2006-02-14  Timo Schulz  <[email protected]>
1088    
1089            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Localize 'Cancel'.
1090            * wptKeysignDlg.cpp (keysign_dlg_proc): Implement 'Hide Typing'.
1091            * wptFileManager.cpp (fm_sym_encrypt): Set cancel.
1092            (fm_parse_files): Handle cancel.
1093            
1094    2006-02-10  Timo Schulz  <[email protected]>
1095    
1096            * wptKeyPropsDlg.cpp (props_dlg_proc): Removed unused vars.
1097            * wptKeyEditDlgs.cpp (do_editkey_check): Use winpt_key_t
1098            for the dialog param.
1099            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use new list
1100            signature dialog by default.
1101            * wptKeysigDlg.cpp (sigprops_dlg_proc): Use directly
1102            gpgme_key_sig_t as param.
1103            (keysig_dlg_proc): Change param for property dialog.
1104            * wptSigTreeDlg.cpp (sigtree_load): Skip revoked user-ids
1105            and use icons.
1106            (sigtree_dlg_proc): Allow to execute old list dialog to
1107            edit the signatures.
1108            
1109    2006-02-09  Timo Schulz  <[email protected]>
1110    
1111            * wptRegistry.cpp (set_winpt_reg_prefs): Removed keylist mode.
1112            * wptNLS.c (gettext_localize_dialog): New.
1113            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Add 'Cancel' button
1114            to avoid to reload the key cache.
1115            * wptClipEncryptDlg.cpp (clipenc_dlg_proc): Drop old 'normal'
1116            list mode.
1117            * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
1118            * wptPreferencesDlg.cpp (on_init_dialog): New. Move dialog
1119            initiation code to this function.
1120            (prefs_dlg_proc): Use it here.
1121            
1122    2006-02-07  Timo Schulz  <[email protected]>
1123    
1124            * wptKeyEdit.cpp (setNoPassphrase): New.
1125            (getValidDays): New.
1126            * wptKeysignDlg.cpp (keysign_dlg_proc): Check on init
1127            if the key is protected.
1128            * wptKeyEditDlgs.cpp (keyedit_addphoto_dlg_proc): Handle
1129            keys without a passphrase.
1130            (keyedit_addrevoker_dlg_proc): Likewise.
1131            
1132    2006-02-04  Timo Schulz  <[email protected]>
1133    
1134            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Check for
1135            at least one ultimately trusted key.
1136            * wptKeyManager.cpp (km_refresh_key_from_keyserver):
1137            Only check inet connection if we refresh all keys.
1138            * wptGPGUtil.cpp (gpg_extract_keys): New.
1139            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Use textmode.
1140            * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Likewise.
1141            * wptClipSignDlg.cpp (get_selected_key): New.
1142            (one_key_proc): Use it here.
1143            (count_useable_seckeys): New.
1144            * wptSigTreeDlg.cpp (sigtree_dlg_proc): New.
1145            * wptKeyEditDlgs.cpp (diff_time): Removed.
1146            (w32_mktime): New.
1147            (keyedit_addsubkey_dlg_proc): Use it here.
1148            
1149    2006-02-02  Timo Schulz  <[email protected]>
1150    
1151            * wptW32API.cpp (get_temp_name): New.
1152            * wptKeyserver.cpp (ldap_recvkey): Use it here.
1153            * wptKeyPropsDlg.cpp (get_photo_tmpname): Likewise.
1154            * wptGPGUtil.cpp (create_tempfile): Likewise.
1155            * wptImportList.cpp (implist_load): Likewise.
1156            * wptKeyCache.cpp (parse_attr_data): Likewise.
1157            (w32_tempfile): Removed.
1158            * wptGPGME.cpp (check_ultimate_trusted_key): New.
1159            
1160    2006-01-31  Timo Schulz  <[email protected]>
1161    
1162            * wptMainProc.cpp (winpt_main_proc): Fix usage of the
1163            help system.
1164            * wptListView.cpp (listview_set_chkbox_style): New.
1165            (listview_get_item_state): Support new checkbox style.
1166            (listview_new): Reset flag var.
1167            * wptKeylist.cpp (keylist_build): Support new checkbox style.
1168            
1169    2006-01-30  Timo Schulz  <[email protected]>
1170    
1171            * WinPT.cpp (check_readonly_attr): New.
1172            (load_gpg_env): Use it here.
1173            (WinPT): Make the the default key is searched in the
1174            secret key cache.
1175            Change error message.
1176            * wptRegistry.cpp (regist_int_winpt): Make sure
1177            the register extension is only offered once to the user.
1178            * wptKeyPropsDlg.cpp (get_photo_tmpname): Always use
1179            temp directory. Fixed a privilege problem.
1180            
1181    2006-01-29  Timo Schulz  <[email protected]>
1182    
1183            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Allow to use ESC
1184            to quit dialog.
1185            * wptKeysignDlg.cpp (sig_class_dlg_proc): More space for
1186            translations. Directly return sig class.
1187            (keysign_dlg_proc): Change msgbox title.
1188            * wptKeyEdit.cpp (signUserid): New.
1189            (getUseridIndex): New.
1190            (getKeyIndex): New.
1191            (getSigIndex): New.
1192            (clear): New.
1193            * wptKeyEditCB.cpp (cmd_sign_handler): Allow to select
1194            user-id first.
1195            * wptKeyEditDlgs.cpp (lookup_cmd): New.
1196            (do_editkey_sign_userid): New.
1197            (do_init_cmdlist): Differ between key pairs and public keys
1198            and allowed actions.
1199            (keyedit_change_ownertrust): Show msgbox on success.
1200            (get_default_key): New.
1201            * wptPassphraseDlg.cpp (request_passphrase): Reset @cancel.
1202            
1203    2006-01-27  Timo Schulz  <[email protected]>
1204    
1205            * WinPT.cpp (WinMain): Set minimal list mode as default.
1206            * wptKeyCache.cpp (gpg_keycache_sync): Handle special v3 keys.
1207            
1208    2006-01-25  Timo Schulz  <[email protected]>
1209    
1210            * wptRegistry.cpp (get_reg_entry_gpg): Return NULL if
1211            the key exist with no value.
1212            * wptMDSumDlg.cpp (mdsum_dlg_proc): Translate string.
1213            * wptKeysignDlg.cpp (do_fill_seclist): Select the
1214            default key if possible.
1215            * wptFirstRunDlg.cpp (firstrun_dlg_proc): Directly
1216            return the choice.
1217            * wptKeylist.cpp (get_key_desc): New.
1218            (keylist_upd_key): Free memory.
1219            * wptKeyCache.cpp (gpg_keycache_get_default_key): New.
1220            (gpg_keycache_set_default_key): New.
1221            * WinPT.cpp (gpg_prefs_ok): New.
1222            (WinMain): Only start gpg prefs if needed.
1223            
1224    2006-01-24  Timo Schulz  <[email protected]>
1225    
1226            * wptKeyManager.cpp (km_dropped_file_import): New.
1227            * wptKeyManagerDlg.cpp (keylist_subclass_proc): Allow
1228            to drop files and try to import them.
1229            (keymanager_dlg_proc): Pass kmi as opaque to the subclass
1230            proc.
1231            
1232    2006-01-23  Timo Schulz  <[email protected]>
1233    
1234            * wptMDSumDlg.cpp (mdsum_dlg_proc): Allow to send output
1235            to the clipboard.
1236            * wptKeyEditDlgs.cpp (keyedit_change_ownertrust): New.
1237            (do_editkey_enable_disable): New.
1238            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Usability fix. Do not
1239            close the dialog if the user cancelled the ownertrust dialog.
1240            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Return TRUE to indicate
1241            an update of any value.
1242            
1243    2006-01-21  Timo Schulz  <[email protected]>
1244    
1245            * wptKeyCache.cpp (keycache_next_key): Handle the case
1246            that there is a secret key without a public part.
1247            * wptKeyserver.cpp (kserver_save_conf): Save ports.
1248            * wptKeyserverDlg.cpp (keyserver_modify_dlg_proc):
1249            Reset keyserver name.
1250            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Just indicate
1251            an update, do not update the cache.
1252            * wptFileManagerDlg.cpp (file_import_dlg_proc): Use one
1253            dialog for both clipboard and file imports.
1254            * wptKeyManager.cpp (km_file_import, km_clip_import):
1255            Changes to support new update system.
1256            (gpg_clip_import): New.
1257            * wptKeyManagerDlg.cpp (km_gui_import): New.
1258            (find_keypos): Rewritten.
1259            (refresh_keylist): Improved error checking.
1260            
1261    2006-01-20  Timo Schulz  <[email protected]>
1262    
1263            * wptKeyCache.cpp (w32_tmpfile): New.
1264            (parse_attr_data): Use it here.
1265            * wptGPGUtil.cpp (gpg_get_photoid_data): Reset @ndata var.
1266            
1267    2006-01-19  Timo Schulz  <[email protected]>
1268    
1269            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Do not
1270            reload the entire cache, just update the key.
1271            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Likewise.
1272            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Set update flag.
1273            * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
1274            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Update key
1275            if need after showing the properties.
1276            * wptGPGMEData.cpp (gpg_data_putc): Fix off-by-one bug.
1277            * wptKeyManager.cpp (km_import_file): New param. Changed
1278            all callers.
1279            (km_import_clip): Likewise.
1280            (delete_keys_from_cache): Delete secret part if available.
1281            * wptClipImportDlg.cpp (print_import_status): If there
1282            are too many new keys, use reload code.
1283            
1284    2006-01-18  Timo Schulz  <[email protected]>
1285    
1286            * wptKeyEditCB.cpp (cmd_delsig_handler): Do not assume
1287            the self sig is always index 0. Noted by Kurt.
1288            * wptPassphraseCB.cpp (passphrase_dlg_proc): Do not assume
1289            the key user-ID contains an email address.
1290            * wptKeyEditDlgs.cpp (do_find_userid): Likewise.
1291            (do_editkey_deluid): Likewise.
1292            (do_editkey_revuid): Likewise.
1293            
1294    2006-01-18  Timo Schulz  <[email protected]>
1295    
1296            * wptListview.cpp (listview_del_sel_items): Fixed index
1297            calculation. This fixed a lot of problems with the KM listview
1298            update.
1299            (listview_del_all): Renamed to...
1300            (listview_del_all_items): ..this. Changed all callers.
1301            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Just refresh
1302            list when file import contained new/updated keys.
1303            * wptKeyManager.cpp (km_file_import): Indicate if the
1304            import contained any new/update keys.
1305            * wptClipImportDlg.cpp (print_import_status): Just mark
1306            keys which actually changed.
1307            
1308    2006-01-17  Timo Schulz  <[email protected]>
1309    
1310            * wptMAPI.cpp (mapi_send_pubkey_ext): New.
1311            * wptKeysigDlg.cpp (do_delsig): Just flag the key, do not
1312            update it.
1313            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Be more
1314            careful about const pointers.
1315            * wptKeyEditDlgs.cpp (get_subkey_fingerprint): Renamed to..
1316            (get_subkey_keyid): ..this. Fix problem that key was updated
1317            twice and this corrupted.
1318            (keyedit_add_subkey): Set @lv item in the callback context.
1319            
1320    2006-01-16  Timo Schulz  <[email protected]>
1321    
1322            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Restore
1323            window if it lost focus during the operation. Thanks to Kurt.
1324            Update keylist when the window is enabled.
1325            (find_keypos): New.
1326            * wptKeyCache.cpp (keycache_next_key): Reset update status.
1327            (gpg_keycache_next_updated_key): New arg @r_status. Change all
1328            callers.
1329            (gpg_keycache_update_key): Different status for new and updated.
1330            Include key signatures.
1331            * wptClipImportDlg.cpp (print_import_status): Mark all
1332            imported keys.
1333            * wptMainProc.cpp (clip_gpg_dlg): On import refresh KM keylist.
1334            Thanks to Kurt.
1335            * wptKeysigDlg.cpp (recv_missing_keys): Mark all received keys.
1336            (do_delsig): Directly reload key. Thanks to Kurt.
1337            * wptGPGME.cpp (keycache_set_reload, keycache_get_reload):
1338            Removed.
1339            * wptKeygenDlg.cpp (keygen_dlg_proc): Use new update system.
1340            * wptClipImportDlg.cpp (clip_import_dlg_proc): Return
1341            FALSE if no keys were updated or operation was cancelled.
1342            * wptCommonDlg.cpp (http_dlg_proc): Fix title selection code.
1343            * wptKeylist.cpp (get_ext_validity): Handle disabled keys.
1344            * wptKeyPropsDlg.cpp (keyprops_dlg_proc):
1345            Do not allow to change ownertrust of invalid keys.
1346            Changed translation.
1347            Slightly different user interface.
1348            
1349    2006-11-14  Timo Schulz  <[email protected]>
1350    
1351            * wptW32API.cpp (make_special_filename): New.
1352            * wptRegistry.cpp (set_winpt_reg_prefs, get_winpt_reg_prefs):
1353            Removed 'KeyServer' item.
1354            * wptPreferencesDlg.cpp (prefs_dlg_proc): Remove keyserver
1355            config item.
1356            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Disable group
1357            window until we really use it.
1358            * wptKeyserver.cpp (kserver_save_conf): New.
1359            (wsock_end): Save keyserver config file.
1360            * wptKeyserverDlg.cpp (keyserver_edit): New.
1361            (keyserver_remove): New.
1362            (keyserver_add): New.
1363            (fill_keyserv_types): New.
1364            (keyserver_modify_dlg_proc): New.
1365            (keyserver_dlg_proc): Provide context menu to modify the
1366            keyserver list.
1367            (keyserver_build_list): Remove 'proto' column because it is
1368            not really useful.
1369            * WinPT.cpp (load_keyserver_conf): Store keyserver.conf at
1370            $APPDATA\winpt. If keyserver.conf exists in the current folder
1371            move it to the new destination.
1372            
1373    2006-11-13  Timo Schulz  <[email protected]>
1374    
1375            * wptPreferencesDlg.cpp (prefs_dlg_proc): Changed translation.
1376            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Likewise.
1377            * wptAboutDlgs.cpp (about_dlg_proc): Make sure GPG about
1378            dialog isn't shown twice.
1379            * wptKeyCache.cpp (gpg_keycache_next_updated_key): New.
1380            (gpg_keycache_update_key): Set update flag.
1381            * wptKeyManagerDlg.cpp (refresh_keylist): New.
1382            (keymanager_dlg_proc): Use new refresh system for keyservers.
1383            * wptKeyserverSearchDlg.cpp (kserver_search_dlg_proc):
1384            Update keycache.
1385            * wptKeyserverDlg.cpp (hkp_dlg_proc): Likewise.
1386            * wptKeyserver.cpp (socket_read_ext): New.
1387            (kserver_recv_key_ext): New.
1388            (kserver_read_config, kserver_write_config): Removed.
1389            
1390    2006-01-12  Timo Schulz  <[email protected]>
1391    
1392            * wptListView.cpp (listview_set_image_list): Make icons
1393            always transparent.
1394            * wptImageList.cpp (imagelist_load): New icons.
1395            * wptGPGMEData.cpp (gpg_data_putc): New.
1396            * wptKeyManagerDlg.cpp (load_toolbar): Include new icons.
1397            (keymanager_dlg_proc): Add tooltips.
1398            * wptKeyserverDlg.cpp (keyserver_list_build): Use icons.
1399            * wptKeyserver.cpp (URL_encode): New.
1400            (URL_must_encode): New.
1401            (kserver_search_init): Properly encode pattern.
1402            (parse_iso_date): New.
1403            (keyserver_search): Be more strict to prevent buffer overflows.
1404            
1405    2006-01-11  Timo Schulz  <[email protected]>
1406    
1407            * wptKeyManagerDlg.cpp (load_toolbar): 2 new icons.
1408            (keymanager_dlg_proc): Adjust tooltips.
1409            (update_ui_items): Handle new icons.
1410            * wptImageList.cpp (imagelist_load): New icons.
1411            
1412    2006-01-10  Timo Schulz  <[email protected]>
1413    
1414            * wptMainProc.cpp (winpt_main_proc): Restore iconic
1415            File/Key Manager windows if needed.
1416            * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Disable button.
1417            * wptSiglist.cpp (init_cmp): New.
1418            (siglist_sort): New.
1419            (siglist_cmp_cb): New.
1420            (siglist_add_key): Force NOKEY status when key was not found.
1421            * wptKeysigDlg.cpp (recv_single_key): New.
1422            (recv_missing_keys): Reload entire key when more than one key
1423            was fetched.
1424            (keysig_dlg_proc): Support sorting the listview items.
1425            
1426    2006-01-09  Timo Schulz  <[email protected]>
1427    
1428            * WinPT.cpp (load_gettext): Remove file locking.
1429            (WinMain): Use pre-defined autoconf constants.
1430            * wptW32API.cpp (init_file_lock, release_file_lock): Deleted.
1431            * wptGPG.cpp (check_gnupg_engine): Add param @need_gpg_ver.
1432            Change all callers.
1433            
1434    2006-01-07  Timo Schulz  <[email protected]>
1435    
1436            * wptKeyManager.cpp (km_refresh_from_keyserver): Summarize
1437            import status if just one key was selected.
1438    
1439    2006-01-04  Timo Schulz  <[email protected]>
1440    
1441            * wptGPGMEWrapper.c (setChangeVersion): New.
1442            (exportToBuffer, exportToFile, exportToClipboard): New.
1443            (setArmor, getArmor): New.
1444            * wptKeylist.cpp (get_key_expire_date): Return locale specific
1445            date.
1446            (keylist_get_recipients): Do not fetch the key again.
1447            (keylist_enum_recipients): Likewise.
1448            * wptGPG.cpp (create_empty_keyring): New.
1449            (get_gnupg_keyring): Fixed 'strict' logic.
1450            * wptKeyManagerDlg.cpp (update_ui_items): Disable some buttons
1451            when no secret keys are available.
1452            * wptKeyManager.cpp (km_send_to_mail_recipient): Release key data
1453            before the MAPI call is made.
1454            * WinPT.cpp (check_for_empty_keyrings): New.
1455            
1456    2006-01-03  Timo Schulz  <[email protected]>
1457    
1458            * pubkey.ico, keypair.ico: New.
1459            * wptListview.cpp (listview_add_item_image): New.
1460            (listview_set_image_list): New.
1461            * wptSigList.cpp (siglist_add_key): Correct order of the sigs.
1462            * wptKeyProps.cpp (keyprops_load_photo): Adjusted for new
1463            JPEG data.
1464            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not allow to
1465            add items to revoked keys.
1466            * wptKeyManager.cpp (km_delete_keys): Do not use uninitialized
1467            keyid buffer. This fixes a segv.
1468            * wptKeyserver.cpp (spawn_application): New.
1469            (ldap_recv_key): Support recent protocols and several cleanups.
1470            * wptKeylist.cpp (do_addkey): Set image which depends on the
1471            key type.
1472            (keylist_enum_recipients): Cleanups.
1473            (keylist_get_keyflags): Rewritten.
1474            * wptKeyCache.cpp (free_attr_list): New.
1475            (parse_attr_list): New.
1476            (parse_attr_data): New.
1477            (keycache_update_photo): New.
1478            (keycache_update_photos): New.
1479            (gpg_keycache_update_key): Automatically reload photos if needed.
1480            * wptGPGUtil.cpp (create_process): New param @err. Change all
1481            callers.
1482            (map_tmpfile): New param @nread. Change all callers.
1483            (gpg_get_photoid_data): New.
1484            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not allow to
1485            add items to revoked keys.
1486            (subkey_init_list): Store gpgme key object.
1487            
1488    2005-12-29  Timo Schulz  <[email protected]>
1489    
1490            * wptKeygenDlg.cpp (keygen_dlg_proc): Request passphrase dynamically.
1491            (gpg_genkey_params): Simplified.
1492            * wptPreferencesDlg.cpp (prefs_dlg_proc): Fix problem with mutal
1493            exclusion of the dialog items.
1494            * wptAboutDlgs.cpp (about_winpt_dlg_proc): Allow to use ESC to
1495            quit the dialog.
1496            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
1497            * wptMDSumDlg.cpp (mdsum_dlg_proc): Handle WM_SYSCOMMAND.
1498            (id2algo): New.
1499    
1500    2005-12-28  Timo Schulz  <[email protected]>
1501    
1502            * wptKeyserverDlg.cpp (show_imported_keys): Decode user IDs.
1503            * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
1504            * wptKeylist.cpp (keylist_udp_key): Likewise.
1505            * wptKeyManager.cpp (key_get_clip_info, key_get_info): Likewise.
1506            * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Fix problem
1507            when no signing key was found.
1508            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Properly decode
1509            user IDs.
1510            (translate_popup_strings): s/Revoke/Revoke Cert.
1511            * wptKeyEditDlgs.cpp (do_init_keylist): Do not assume a
1512            0x prefixed keyid.
1513            * wptKeyEditCB.cpp (editkey_command_handler): Also reset
1514            step in case of a bad passphrase.
1515            
1516    2005-12-27  Timo Schulz  <[email protected]>
1517    
1518            * wptListView.cpp (listview_set_view): New.
1519            (listview_del_column): New.
1520            * wptW32API.cpp (get_locale_date): New.
1521            (get_menu_state): New.
1522            (force_foreground_window): New.
1523            * wptVerifyList.cpp (strtimestamp): Support for
1524            locale date formats.
1525            * wptGPGUtil.cpp (gpg_revoke_cert): Handle bad
1526            passphrases.
1527            * wptKeyEditCB.cpp (editkey_command_handler): Immediately
1528            return when a bad passphrase was submitted.
1529            * wptKeyRevokersDlg.cpp (keyrevokers_dlg_proc): Change
1530            column order.
1531            * wptKeylist.cpp (keylist_upd_col): New.
1532            * wptKeyManagerDlg.cpp (update_ui_items): Deactivate
1533            'Revocation' for public keys.
1534            (translate_menu_strings): s/Revoke/Revoke Cert.
1535            (modify_listview_columns): New.
1536            
1537    2005-12-18  Timo Schulz  <[email protected]>
1538    
1539            * wptKeyManagerDlg.cpp (save_column_size): New.
1540            (restore_column_size): New.
1541            (keymanager_dlg_proc): Save and restore column sizes for
1542            the listview control.
1543            * wptKeyManager.cpp (key_get_info): New.
1544            (km_delete_keys): Use it here to have a consistent message.
1545            Use stored key context and not the column data.
1546            (km_enable_disable_key): Likewise.
1547            (km_send_to_keyserver): Likewise.
1548            (km_set_implicit_trust): Likewise.
1549            * wptKeylist.cpp (get_key_pubalgo2): New.
1550            
1551    2005-12-17  Timo Schulz  <[email protected]>
1552    
1553            * wptUTF8.cpp: Removed unused charset array.
1554            * wptSigList.cpp (siglist_build): Increase size for 'class'
1555            column.
1556            * wptGPG.cpp (get_gnupg_path): Simplified.
1557            * WinPT.cpp (load_gpg_env): New.
1558            (check_crypto_engine): Return type is now bool.
1559            * wptRegistry.cpp (is_gpg4win_installed): New.
1560            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): More consistent
1561            dialog design.
1562            * wptKeyManagerDlg.cpp (translate_menu_strings): New.
1563            (translate_popupmenu_strings): New.
1564            * wptKeyEditDlgs.cpp (is_jpg_file): New.
1565            
1566    2005-12-13  Timo Schulz  <[email protected]>
1567    
1568            * wptCommonDlg.cpp (http_dlg_proc): Localized missing elements.
1569            * wptKeyManagerDlg.cpp (change_edit_menu): New.
1570            (change_key_menu): Renamed from...
1571            (menu_gpg_readonly): ..this.
1572            (clip_contains_pgpkey): New.
1573            (update_ui_items): Do not allow to sign expired keys.
1574            (keymanager_dlg_proc): Same for popup menu.
1575            * wptKeyPropsDlg.cpp (parse_preflist): Fixed string handling.
1576            * wptKeyCache.cpp (copy_uid_prefs):
1577            (gpg_keycache_sync): Copy uid prefs so the key property
1578            dialog show the correct values. Thanks to Shane.
1579            
1580    2005-12-11  Timo Schulz  <[email protected]>
1581    
1582            * wptW32API.cpp (get_file_version): New.
1583            * wptGPGUtil.cpp (create_process): Always hide window.
1584            * wptClipEditDlg.cpp (clipedit_dlg_proc): Use 'Close'
1585            instead of 'Exit'.
1586            * wptKeyManager.cpp (km_http_import): New filename
1587            generation code.
1588            (km_send_to_mail_recipient): Cleanups.
1589            * wptKeyEditDlg.cpp (showpref_dlg_proc): Localize dialog.
1590            * wptKeyManagerDlg.cpp (update_ui_items): Handle the case
1591            when multiple keys are selected.
1592            (popup_multiple): New.
1593            * WinPT.cpp (WinMain): Check that the PTD.dll and WinPT.exe
1594            file versions are equal. Rewrote --keymanager code.
1595            
1596    2005-12-08  Timo Schulz  <[email protected]>
1597    
1598            * wptKeyserverDlg.cpp (show_imported_keys): Enhanced.
1599            (hkp_recv_key2): Show user-id of the imported key instead
1600            of just the pattern.
1601            * wptFileCBS.cpp (read_cb): Changed to W32 API.
1602            (write_cb): Likewise. Create output file on demand.
1603            (gpg_file_data_new): Adjusted code for new API.
1604            * wptKeyEdit.cpp (cleanKey): New.
1605            * wptKeyEditCB.cpp (cmd_clean_handler): New.
1606            (editkey_command_handler): Call clean handler.
1607            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Sort
1608            keylist after inserting items.
1609            * wptFileManager.cpp (fm_set_status): Take care of
1610            cleartext sigs.
1611            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Make
1612            sure can be closed.
1613            
1614    2005-12-07  Timo Schulz  <[email protected]>
1615    
1616            * wptOwnertrustDlg.cpp (ownertrust_dlg_proc):
1617            Use 'Close' instead of 'Exit'.
1618            * wptKeyEditDlgs.cpp (keyedit_dlg_proc): Likewise.
1619            * wptGPG.cpp (gnupg_backup_keyrings): Use $APPDATA
1620            as the destination dir. Thanks to Werner.
1621            * wptRegistry.cpp (is_gpgee_installed): New.
1622            (regist_inst_winpt): Do not register file extensions
1623            if GPGee is available.
1624            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Limit
1625            use of local vars.
1626            * wptPreferencesDlg.cpp (prefs_dlg_proc): Make sure
1627            no illegal backup mode is saved.
1628            * wptKeyserverDlg.cpp (show_imported_key): New.
1629            (hkp_recv_key2): Show imported keys if the blob
1630            contained more than one.
1631            
1632    2005-12-06  Timo Schulz  <[email protected]>
1633    
1634            * WinPT.cpp (WinMain): Load the gettext environment soon
1635            as possible so all 'first start' messages are localized.
1636            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): If a single key is
1637            received via the keyserver, return the gpgme key context on
1638            success and add it directly to the list.
1639            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Support a param
1640            to store the key.
1641            (hkp_recv_key2): Add extra param for the fingerprint.
1642            (hkp_recv_key): Call hkp_recv_key2 without fingerprint.
1643            
1644    2005-12-02  Werner Koch  <[email protected]>
1645    
1646            * wptKeyEditDlgs.cpp (subkey_list_init): Avoid trigraphs.
1647    
1648    2005-12-01  Timo Schulz  <[email protected]>
1649    
1650            * wptClipVerifyDlg.cpp (clipverify_dlg_proc): Use new semantic
1651            for get_gpg_sigstat().
1652            * wptGPGME.cpp (get_gpg_sigstat): New. It is now a function.
1653            As a macro strings will not be translated at runtime.
1654            * wptKeyserverDlg.cpp (hkp_recv_key): Properly detect if we
1655            need to update the cache. Thanks to Jan-Oliver.
1656            * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Localized.
1657            
1658    2005-11-30  Timo Schulz  <[email protected]>
1659    
1660            * wptW32API.cpp (dialog_box_param): Removed LANG_DE code.
1661            * WinPT-en.rc: Removed string list.
1662            * wptFileSaveDlg.cpp (file_save_dlg_proc): Localized
1663            * wptKeylist.cpp (keylist_build): Cannot use global
1664            arrays for the columns due to gettext.
1665            
1666    2005-11-29  Timo Schulz  <[email protected]>
1667    
1668            * WinPT.cpp (WinMain): Modify --keymanager. If an instance
1669            is running, just send the command to open the manager.
1670            
1671    2005-11-25  Timo Schulz  <[email protected]>
1672    
1673            * wptKeyEditCB.cpp (addrev_cmd_handler): Avoid hanging
1674            process when the revoker is already there.
1675            
1676    2005-11-24  Timo Schulz  <[email protected]>
1677    
1678            * wptPassphraseCB.cpp (passphrase_callback_proc): Localize
1679            signing dialog items.
1680            * wptMainProc.cpp (confirm_delclip_dlg): Localize dialog items.
1681            * wptAboutDlgs.cpp (about_winpt_dlg_proc): Disable help for now.
1682            * wptMDSumDlg.cpp (mdsum_dlg_proc): Localize missing items.
1683            * wptKeylist.cpp (key_check_validity): Likewise.
1684            * wptKeyEditDlgs.cpp (keyedit_addsubkey_dlg_proc): Likewise.
1685            
1686    2005-11-22  Timo Schulz  <[email protected]>
1687    
1688            * wptCardEditCB.cpp (gpg_write): Due to removed _DEBUG
1689            macro debug output will be generated in release version.
1690            
1691    2005-11-21  Timo Schulz  <[email protected]>
1692    
1693            * WinPT.cpp (WinMain): Implement --stop switch.
1694            * wptClipEditDlg.cpp (clip_edit_dlg_proc): Localize
1695            missing string.
1696            * wptPreferencesDlg.cpp (prefs_dlg_proc): Likewise.
1697            * wptKeygenDlg.cpp (keygen_dlg_proc): Verify valid context
1698            first. Thanks to Ralf.
1699            * wptFileManagerDlg.cpp (update_ui_items): New.
1700            * wptFileManager.cpp (fm_set_status): New sigmode param.
1701            Changed all callers.
1702            
1703    2005-11-17  Timo Schulz  <[email protected]>
1704    
1705            * wptGPG.cpp (check_last_gnupg_access): Kludge to avoid that
1706            the cache will be loaded twice.
1707            * wptRegistry.cpp (regist_inst_winpt): More comments.
1708            * wptKeyManagerDlg.cpp (do_center_window): Make sure that
1709            neg. coordinates are never used.
1710            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Localize all
1711            strings.
1712            * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
1713            * wptFileManagerDlg.cpp (filemanager_dlg_proc): Localize menu
1714            and save 'AlwaysOnTop' in the registry.
1715            
1716    2005-11-16  Timo Schulz  <[email protected]>
1717    
1718            * WinPT.cpp (check_crypto_engine): Min is now GPG 1.4.2.
1719            * wptKeylist.cpp (keylist_add_key): Add disabled keys in list
1720            mode.
1721            * wptPreferencesDlg.cpp (prefs_dlg_proc): Localize all strings.
1722            * wptRegistry.cpp (regist_inst_winpt): Set install directory.
1723            Useful for other programs to figure out the path to the EXE.
1724            
1725    2005-11-14  Timo Schulz  <[email protected]>
1726    
1727            * wptGPG.cpp (check_gnupg_engine): Fix version check.
1728            * wptMainProc.cpp (winpt_main_proc): Check keyring
1729            file permissions always and do not use interative output
1730            when the windows session ends.
1731            * wptProxySettingsDlg.cpp (proxy_settings_dlg_proc):
1732            Localize all strings.
1733            * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.
1734            * wptGPGPrefsDlg.cpp (gpg_prefs_dlg): Likewise.
1735            * wptKeyEditDlgs.cpp (do_init_keylist): Skip all
1736            non-valid keys.
1737            
1738    2005-11-12  Timo Schulz  <[email protected]>
1739    
1740            Fix more GCC warnings.
1741    
1742    2005-11-10  Timo Schulz  <[email protected]>
1743    
1744            * wptClipSignDlg.cpp (one_key_proc): Use
1745            release_gpg_passphrase_cb() to free the context.
1746            * wptListView.cpp (listview_deselect_all): New.
1747            * wptMAPI.cpp (mapi_send_pubkey): Works again.
1748            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Support encrypt &
1749            zip.    
1750            * wptPassphraseCB.cpp (passphrase_callback_proc): Fix passphrase
1751            caching for signing operations.
1752            * wptKeyManager.cpp (km_send_to_mail_recipient): Works again.
1753            * wptFileManager.cpp (fm_send_file): Likewise.
1754            (fm_encrypt_into_zip): New.      
1755            
1756    2005-11-09  Timo Schulz  <[email protected]>
1757    
1758            * wptNLS.c (get_gettext_langid): Map user language id to
1759            printable gettext language strings.
1760            * wptRegistry.cpp (get_reg_entry_mo): Support for the
1761            gettext environment.
1762            * wptFileManager.cpp (fm_encrypt): Close all files before
1763            the wipe procedure is called.
1764            * wptVerlist.cpp (verlist_add_sig): Handle the case the
1765            issuer is not valid but the signature is.
1766            (verlist_add_sig_log): Likewise. Thanks to the folks on
1767            winpt-users.
1768            
1769    2005-11-08  Werner Koch  <[email protected]>
1770    
1771            * SAFE.ICO, SIGN.ICO: Fixed capitalization.
1772            * WinPT-en.rc: Ditto.
1773            * winpt_km.ico:  Moved from ../.
1774    
1775            * Makefile.am (resource_files): Add missing backslash.
1776    
1777    2005-11-08  Timo Schulz  <[email protected]>
1778    
1779            More minor changes to avoid GCC warnings.
1780            
1781            * wptGPG.cpp (check_homedir): Free memory in case of errors.
1782            (multi_gnupg_path): Add strict mode. If non-strict mode return
1783            the folder even if it does not exist.
1784            (check_for_gpgwin): New.
1785            * wptKeyserverDlg.cpp (hkp_recv_key): Make sure import_res is
1786            initialized.
1787            * wptRegistry.cpp (get_reg_entry_gpg4win): New.
1788            (get_reg_entry_mo): Support for gpg4win.
1789            
1790    2005-11-07  Timo Schulz  <[email protected]>
1791    
1792            * wptMainProc.cpp (winpt_main_proc): Disable
1793            some menu items when no secret key is available.
1794            
1795    2005-11-05  Timo Schulz  <[email protected]>
1796    
1797            More minor changes to avoid GCC warnings.
1798            
1799            * wptErrors.cp (winpt_strerror): Return w32
1800            formatted error and do not use 'break'.
1801            
1802    2005-11-04  Werner Koch  <[email protected]>
1803    
1804            * WinPT-en.rc: Fixed locations of icons.
1805    
1806    2005-11-03  Timo Schulz  <[email protected]>
1807    
1808            A lot of minor changes to avoid GCC warnings.
1809    
1810            * wptGPG.cpp (get_gnupg_keyring): Only check size for
1811            public keyring.
1812            * wptKeyManager.cpp (km_update_default_key_str): Do
1813            not issue a bug message when no secret key was found.
1814            * wptGPGPrefsDlg.cpp: Replace "" with NULL in the name struct.
1815            
1816    2005-11-02  Werner Koch  <[email protected]>
1817    
1818            * WinPT.cpp (WinMain): Disabled PTD version tests.
1819            (check_crypto_engine): Fixed version check for scard.
1820    
1821            * wptErrors.cpp (debug_end): Add dummy function.
1822    
1823            * Makefile.am (code_files): Added wptCardEditCB.cpp and
1824            wptKeyEditCB.cpp.
1825    
1826    2005-10-31  Werner Koch  <[email protected]>
1827    
1828            * wptCurrWnd.cpp: Include wptVersion.h to get prototypes of PTD
1829            functions.
1830    
1831            * wptKeyEditDlgs.cpp: Include oleauto.h
1832            * wptKeyEdit.cpp: Include time.h.
1833            * wptRegistry.cpp (gpg_filetypes): New from ../Include/wptGPG.h.
1834            * wptGPGUtil.cpp (gpg_manage_ownertrust): s/export/exportflag/.
1835    
1836            * Makefile.am (code_files): Add wptGPGUtil.cpp, wptCardEdit.cpp,
1837            wptKeyEdit.cpp and wptKeycache.cpp.
1838    
1839            * wptPassphraseCB.cpp: Fixed spelling of wptKeylist.h
1840            * wptImportList.cpp (implist_load): Use remove and not unlink.
1841            * wptGPG.cpp: Fixed spelling of wptGpgCmds.h
1842            * wptImportList.cpp (implist_load): Use remove and not unlink.
1843            * wptKeyManager.cpp (km_http_import): Ditto
1844            * wptMainProc.cpp: Include wptCrypto.h
1845            * wptKeyManager.cpp: Ditto.
1846            * wptFileManager.cpp: Ditto.
1847            * wptImportList.cpp (parse_colon_key): Need to cast argument for
1848            isdigit.  Include ctype.h.
1849            * wptGPG.cpp: Include shlobj.h.
1850    
1851            Fixed double inclusion of windows.h.
1852            
1853            * Makefile.am (bin_PROGRAMS): Don't build KeyManagerExe for now.
1854            * wptKeylist.cpp (get_key_created): Broke up trigraph.
1855            (get_key_status): Removed dangerous use of sprintf.  Still other
1856            flaws present, see comment.
1857    
1858            * wptCardPCSC.c: Don't include winscard.h.
1859            (pcsc_readerstate_t, pcsc_context_t): New.  Changed call users to
1860            use these types.
1861            (PCSC_): Added a lot of constants, all taked from GnuPG 1.9.
1862            (SCARD_S_SUCCESS): Changed all compares to test the value directly
1863            against zero.
1864    
1865            * WinPT.cpp: Include wptCrypto.h.
1866            (WinMain): Don't shard S. Removed usunsed variable SIZE.
1867            * Makefile.am (code_files): Actually add files by adding a first
1868            backslash.
1869            * wptMDSumDlg.cpp: Include wptCrypto.h.
1870            * wptProxySettingsDlg.cpp: Included ctype.h.
1871            * wptKeysigDlg.cpp: Fixed spelling of wptKeylist.h.
1872            * wptKeysignDlg.cpp: Ditto
1873            * wptKeyRevokersDlg.cpp: Ditto. Fixed spelling of wptW32API.h.
1874            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Replaced unlink by remove.
1875            Removed unused variable.
1876            * wptClipVerifyDlg.cpp (show_notation_data): s/not/nota/ due to
1877            silly c++ operator synonyms.
1878            * wptKeyEditDlgs.cpp: Include time.h.
1879            * wptClipDecryptDlg.cpp: Include wptCrypto.h to define PGP_MESSAGE.
1880            * wptFileManagerDlg.cpp: Ditto.
1881            (space_wipefrees_dlg_proc): Replaced unlink by remove; it doesn't
1882            matter if it does an rmdir for a directory.
1883    
1884            Fixed include of resource.h which is not anymore in the top
1885            directory.
1886    
1887    2005-10-28  Werner Koch  <[email protected]>
1888    
1889            * wptProxySettingsDlg.cpp (check_number): Cast isdigit() arg to
1890            unsigned.  Never ever use a possible signed char as argument for
1891            ctype tests.  An alternative is to first test using isascii ().
1892            (keyserver_proxy_dlg_proc): Removed unused variable.
1893    
1894    2005-10-27  Timo Schulz  <[email protected]>
1895    
1896            * wptKeyPropsDlg.cpp (get_validity): Take care of disabled keys.
1897            * wptKeylist.cpp (keylist_add_key): Check global key flag to
1898            see if the key is disabled and not each subkey.
1899            (seclist_init): Likewise.
1900            * wptClipDecryptDlg.cpp (gpgme_op_clip_decrypt): Use
1901            gpgme_op_decrypt_verify.
1902            (clip_decrypt_dlg_proc): Fixed fingerprint
1903            to keyid conversation. This also fixes a crash.
1904            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Likewise.
1905            * wptKeyEditDlgs.cpp (do_editkey_expire): Ask if the key
1906            already expired if the user wants to change the date.
1907            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Replace old
1908            'v3 sig' option with the 'ask cert level' option. Sync
1909            with global preferences.
1910            * wptKeySignDlg.cpp (keysign_dlg_proc): Watch if the
1911            gpg.conf contains 'ask-cert-level'. If not disable button.
1912            * wptKeySigDlg.cpp (keysig_dlg_proc): Automatically disable
1913            the button when the key is available.
1914            Reload key directly, not the entire cache.
1915            
1916    2005-10-26  Timo Schulz  <[email protected]>
1917    
1918            * wptFileManager.cpp (is_floppy_disc): Prevent very unlikely but
1919            possible overflow.
1920            (is_openpgp_ext): Compare case insentensive.
1921            (add_single_file): New.
1922            (fm_add_opened_files): Support multi file selection.
1923            * wptKeyPropsDlg.cpp (do_change_ownertrust): Removed.
1924            * wptKeyManager.cpp (km_enable_disable_key): Do not set cache
1925            reload flag. Just update the single key.
1926            * wptFileManagerDlg.cpp (file_encrypt_dlg_proc): Remove static var
1927            and disable anonymize recipient for now.
1928    
1929            Begin to port code to GCC. Fix all warning issued by the gcc
1930            compiler.
1931    
1932    2005-10-25  Timo Schulz  <[email protected]>
1933    
1934            * wptGPGUtil.cpp (create_process): Hide window.
1935            * wptKeyPropsDlg.cpp (get_photo_tmpname): New.
1936            * wptClipSignEncDlg.cpp (clip_signenc_dlg_proc): Remove
1937            static var 'enable'.
1938            * wptKeygenDlg.cpp (keygen_dlg_proc): Likewise.
1939            (gpg_genkey_params): Make sure all primary keys are capable
1940            for signing and certification.
1941            * wptKeySigDlg.cpp (is_sig): If no item is selected, return 0.
1942            * wptGPG.cpp (gnupg_access_keyring): Check return value for
1943            NULL. Noted by Ralf.
1944            (get_gnupg_prog): Simplified.
1945            (check_homedir): Fixed. Return 0 when the dir is successfully created.
1946            * wptKeyManagerDlg.cpp (km_file_import): Use the hourglass to
1947            indicate a pending GPG process.
1948            * wptFileManager.cpp (op_begin, op_end): New. Indicate an start
1949            and and of an operation. For now just the cursor changes.
1950            (fm_parse_command_line): Remove debug output. Thanks to Ralf again.
1951            * WinPT.cpp (WinMain): Check if there is already an instance and
1952            set a variable early as possible.
1953            (load_gettext): If a previous instance was found, do not output
1954            any errors. Kudos to Ralf.      
1955    
1956    2005-10-24  Timo Schulz  <[email protected]>
1957    
1958            * wptPassphraseCB.cpp (passphrase_callback_proc): Allow to use
1959            pre-defined recipients.
1960            (release_gpg_passphrase_cb): Release recipients.
1961            * wptKeyPropsDlg.cpp (keyprops_load_photo): Set photo-id
1962            validity if needed.
1963            (keyprops_dlg_proc): Issue a warning if the photo is valid.
1964    
1965    2005-10-23  Timo Schulz  <[email protected]>
1966    
1967            * wptFileManager.cpp (fm_get_file_type): Detect detached sigs.  
1968            * wptKeyList.cpp (keylist_cmp_cb): Take care of expired/revoked keys.
1969            (get_ext_validity): New.
1970            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Several cleanups.
1971            * wptClipEditDlg.cpp (load_clipboard): Factored out some code into
1972            this function.
1973            (load_clipboard_from_file): Likewise.
1974            (save_clipboard_to_file): New.
1975            * wptKeyManagerDlg.cpp (keyprops_dlg_proc): Fix stack overflow.
1976    
1977    2005-10-22  Timo Schulz  <[email protected]>
1978    
1979            Localized a lot of more strings.
1980    
1981            * wptMainProc.cpp (load_smartcard): New.
1982            * wptFileManager.cpp (fm_parse_command_line): Simplify code.
1983            (fm_check_armor_type): Add new arg. Change all callers.
1984            (fm_get_file_type): Likewise.
1985            * wptKeyPropsDlg.cpp (display_key_info): New.  
1986            (keyprops_show_photo): Factored out some code into..
1987            (keyprops_load_photo): ..this function.
1988    
1989    2005-10-21  Timo Schulz  <[email protected]>
1990    
1991            * wptFileManagerDlg.cpp (file_manager_dlg_proc): Use
1992            WM_INITPOPUPMENU to localize popup menu texts.
1993            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
1994            * wptClipSignDlg.cpp (one_key_proc): Use wipememory instead of memset.  
1995    
1996    2005-10-20  Timo Schulz  <[email protected]>
1997    
1998            Now WinPT depends on GPG 1.4.3 and GPGME 1.2.0.
1999    
2000            * wptPassphraseCB.cpp (passphrase_cb): Complete card support.
2001            * wptCardEdit.cpp (genKey): Handle cancel case.
2002            * keycache.c: Renamed into...
2003            * wptKeyCache.cpp: ...this.
2004            * wptW32API.cpp (set_menu_text): Removed unused code.
2005            (set_menu_text_bypos): New.
2006            * wptCrypto.h: New.
2007            * wptMainProc.cpp (winpt_main_proc): Complete localize
2008            menu texts.
2009            * wptErrors.cpp (log_debug): Use a static var so the file
2010            is only opened once.
2011            (debug_end): Cleanup. Currently just close the log file.
2012            * wptErrors.h (wipememory): New.
2013            (sfree_if_alloc): Use it here.
2014            * WinPT.cpp (WinMain): Display the min. GPGME version which
2015            is needed in case of an error.
2016    
2017    2005-10-17  Timo Schulz  <[email protected]>
2018    
2019            Free all memory returned by the GPGME dll with gpgme_free ().
2020    
2021            s/GPG_ERR_CARD_REMOVED/GPG_ERR_CARD_NOT_PRESENT.
2022    
2023            * wptKeyEdit.cpp (getCardStatus): Remove dummy key.
2024            (list_handler): With user interaction to allow to insert
2025            the card into the reader.
2026            * wptKeyEditCB.cpp (gpg_edit_card): Likewise.
2027            (common_card_handler): Fixed incorrect command string.
2028            * wptKeyPropsDlg.cpp (get_card_type): New.
2029            (keyprops_dlg_proc): Show card information if present.
2030            * wptFileManager.cpp (secret_key_available): Make the code faster.
2031            
2032    
2033    2005-10-16  Timo Schulz  <[email protected]>
2034    
2035            * wptPassphraseCB.cpp (passphrase_cb): Fix problem
2036            with hanging GPG process on cancel.
2037            * keycache.c (gpg_keycache_release): Release all objects.
2038    
2039    2005-10-15  Timo Schulz  <[email protected]>
2040    
2041            * wptCardEdit.cpp (setResult, getResult): New.
2042            (reset): New.
2043            (getCardStatus): Check return codes and release all objects
2044            in case of errors.
2045            * wptCardEditCB.cpp (change_pin_handler): Call reset()
2046            before quit.
2047            (editcard_handler): Likewise.
2048            (common_card_handler): New.
2049            * wptCardDlg.cpp (card_changepin_dlg_proc): Also unmask
2050            the old PIN when 'Hide Typing' is disabled.
2051            * wptPassphraseCB.cpp (passphrase_cb): The card detection
2052            works again. Support to re-enter passphrase.
2053    
2054    2005-10-14  Timo Schulz  <[email protected]>
2055    
2056            * wptCardDlg.cpp (card_status): New fields for the
2057            fingerprint creation time. Display card info as title.
2058            (get_printable_version): New.
2059            * wptCardEditCB.cpp (editcard_handler): Fix problem
2060            with the counter comparison.
2061    
2062    2005-10-11  Timo Schulz  <[email protected]>
2063    
2064            Port to GPGME basically finished.
2065    
2066    2005-09-20  Timo Schulz  <[email protected]>
2067    
2068            * wptFileManagerDlg.cpp (file_secdel_confirm_dlg_proc):
2069            Do not use gpgme_recipients_t but the listview directly
2070            to add the selected files.
2071    
2072    2005-09-07  Timo Schulz  <[email protected]>
2073    
2074            * Make sure all GetOpenFileName filters are terminated by \0\0.
2075    
2076    2005-09-01  Timo Schulz  <[email protected]>
2077    
2078            * wptW32API.cpp (center_window): New argument for parent window.
2079            Change all callers.
2080            (center_window2): Likewise.
2081            * GPGME now can read gpgProgram entries with 'REG_EXPAND_SZ'.
2082            * wptGPG.cpp (gnupg_backup_options): Remove param. One backup
2083            file is enough. Changed all callers.
2084    
2085    2005-08-15  Timo Schulz  <[email protected]>
2086    
2087            * wptKeyEditDlgs.cpp (do_editkey_showpref): Take care of v3 keys.
2088            * wptGPGOptDlg.cpp (gpgopt_dlg_proc): Fixed name of title.
2089            * Make sure the passphrase is always overwritten before it is
2090            freed (or the function returns).
2091            * wptKeyPropDlg.cpp (get_pref_cipher): New.
2092            (keyprops_dlg_proc): Use it here.
2093    
2094    2005-08-06  Timo Schulz  <[email protected]>
2095    
2096            * wptGPGME.cpp (keycache_update): Reload OpenPGP parts
2097            of the secret key.
2098            (keycache_init): cache name of secret keyring.
2099            * wptKeyList.cpp (keylist_upd_key): Do not add long keyid.
2100            (get_key_type): Do not assume 'ultimate' means key pair.
2101            * wptKeyEditDlgs.cpp (diff_time): New.
2102            (keyedit_addsubkey_dlg_proc): Changed design and use
2103            diff_time. Drop checks for invalid keylength (< 1024, > 4096)
2104            because the combo box automatically handles this.
2105            * wptKeyManager.cpp (km_set_implicit_trust): Return error code.
2106            * wptGPG.cpp (get_backup_name): New.
2107            (gnupg_backup_keyrings): Rotate backup names, from 0..3.
2108            * wptClipImportDialog.cpp (clip_import_dlg_proc): Free memory.
2109            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Use 0x short keyid and
2110            not the long keyid.
2111    
2112    2005-08-05  Timo Schulz  <[email protected]>
2113    
2114            * wptListView.cpp (listview_set_item2): New.
2115            * wptKeyManager.cpp (km_check_if_protected): Directly
2116            retrieve gpgme_key_t from the list.
2117            (km_check_key_status): Likewise.        
2118            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Also use
2119            a human-readable name for secret key export.
2120            Reload just the keys which were affected by updates
2121            (edit-key).
2122            (update_key): New.
2123            * wptKeyList.cpp ((keylist_upd_key): Stripped down
2124            version of keylist_add_key.
2125            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not
2126            reload the keycache here, just flag 'update'. Give the
2127            control to the calling dialog.
2128            * wptKeySignDlg.cpp (keysign_dlg_proc): Use winpt_key_t
2129            as parameter. Changed all callers.
2130            Add date of expiration to the key info.
2131            (get_expire_date): New.
2132            Use a checkbox to allow to ask for the cert level.
2133            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): Do no reload
2134            the cache.
2135    
2136    2005-08-04  Timo Schulz  <[email protected]>
2137    
2138            * wptListView.cpp (listview_scroll): New.
2139            (listview_get_item2): New.
2140            * wptClipEncryptDlg.cpp (clip_encrypt_dlg_proc): If the
2141            item was found, make it visible with scrolling.
2142            * wptKeyManager.cpp (km_find_key): New.
2143            (keylist_subclass_proc): Support to handle some acceleators.
2144            Strg+{C, P, F, A}.
2145            (km_get_key_status): Get the gpgme_key_t object directly
2146            from the list.
2147            * wptGPGPRefsDlg.cpp (gpgprefs_dlg_proc): Also try to set
2148            the config file (if it exists).
2149            * wptKeySignDlg.cpp (keysign_dlg_proc): Use easier code
2150            to handle the click->activate situation.
2151            * wptPassphraseCB.cpp (passphrase_callback_proc): Likewise.
2152            Support to check the passphrase quality.
2153            * wptPassphraseDlg.cpp (passwd_dlg_proc): Likewise.
2154            (request_passphrase): Rename 'init' to 'flags' to allow more
2155            options.
2156            * wptMAPI.cpp: Check all *alloc results.
2157            * wptKeyGenDlg.cpp (keygen_dlg_proc): Use a rudimentary
2158            passphrase quality check.
2159            * wptMDSumDlg.cpp (mdsum_dlg_proc): Use md5/sha1sum file
2160            format and allow to save the checksum in a file.
2161            * wptKeyRevokeDlg.cpp (key_revoke_dlg_proc): Issue a warning
2162            when the PGP mode is disabled.
2163            wptKeyEditDlgs.cpp (do_editkey_primary): Return if just
2164            one user-ID exists.
2165            (keyedit_dlg_proc): Fixed index problem.
2166            * wptKeyPropsDlg.cpp (get_validity): New.
2167            (keyprops_dlg_proc): Actually show extended validity if possible.
2168            * wptKeyList.cpp (get_key_fpr): Support for old v3 format.
2169            (do_addkey): Use listview_add_item2 to store key as opaque
2170            param inside the list.
2171            * wptFileStatDlg.cpp (get_digest_algo): Add SHAxxx.
2172            (file_stat_dlg_proc): End dialog if no PGP data was found.
2173            (do_list_packets): Return the number of valid PGP packets
2174            of the file.
2175    
2176    2005-08-02  Timo Schulz  <[email protected]>
2177    
2178            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Instead of
2179            using 'Default Keyserver' add the real keyserver name to
2180            the menu.
2181            The rebuild command does not reload the cache any longer.
2182            Use ATTR_NAME + .asc as the filename and not keyid + .asc.
2183            * wptProxySettingsDlg.cpp (enable_proxy_auth): New.
2184            (keyserver_proxy_dlg_proc): Changed the design a little
2185            and add some additional sanity checks.
2186            * wptGPGParser.cpp (commit_gpg_options): Use W32 line endings.
2187            This fixes the problem that the GPG option dialog does not show
2188            very nice lines.
2189            * wptGPGOptDlg.cpp (gpgopt_dlg_proc): s/options/config.
2190            * wptKeySigDlg.cpp (keysig_dlg_proc): If a single key is selected
2191            check for 'NOKEY' before asking a keyserver.
2192            * wptKeyManager.cpp (km_delete_keys): Do not set 'refresh' flag.
2193            If a lot of keys were selected, ask if the user wants to confirm
2194            each delete procedure or allow to cancel the operation.
2195            * wptFileManagerDlg.cpp (file_import_dlg_proc): Display how much
2196            keys the file contain.
2197            * wptKeyList.cpp (get_key_algo): Beautified.
2198            (get_key_status): Drop the "[XYZ] Unknown" format, it is too
2199            confusing for users.
2200            * wptKeyManager.cpp (km_check_key_status): Adjustments for the
2201            new code.
2202            (km_check_for_seckey): Reset utrust parameter. Return -1 for
2203            invalid (exp+rev+dis) keys.
2204    
2205    2005-08-01  Timo Schulz  <[email protected]>
2206    
2207            * wptKeyserver.cpp (kserver_urlencode): Use unsigned for all given
2208            sizes.
2209            (check_IP_or_hostname): New.
2210            (kserver_load_conf): Correct finger URL parsing problem.
2211            (port_from_proto): New.
2212            (keyserver_load_conf): Guess the port.
2213            (keyserver_set_default): Allocate new buffer.
2214            (kserver_load_conf): Likewise.
2215            * wptHTTP.c (parse_reqline, parse_request): Removed.
2216            Use WinPT error code and remove all unused code.
2217            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Properly handle finger URLs.
2218            * wptProxySettingsDlg.cpp (read_proxy): Simple check for
2219            invalid host/IP addresses.
2220            * wptGPG.cpp (multi_gnupg_path): Return allocated buffer.
2221            Changed all callers.
2222            * wptPreferencesDlg.cpp (prefs_dlg_proc): At the first start,
2223            automatically set 'backup to homedir'.
2224            * WinPT.cpp (WinMain): Use desktop window as the parent window
2225            to load 'first-start' dialogs.
2226            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not set 'refresh'
2227            flag after deleting keys.
2228            * wptFirstRunDlg.cpp (first_run_dlg_proc): Use a new structure
2229            for passing the arguments.
2230            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Do not store "" for
2231            the OptFile. This was responsible for a lot of 'General Errors'
2232            after the first start related to key caching.
2233            Automatically set the gpg binary if possible.
2234    
2235    2005-07-22  Timo Schulz  <[email protected]>
2236    
2237            * wptMainProc.cpp (winpt_main_proc): Take care for shutdown
2238            messages and make sure WinPT make a keyring backup in this case.
2239            * wptGPGME.cpp (keycache_reload): Do not rebuild the signature
2240            cache each time. Just do it on startup.
2241            * wptKeyManager.cpp (km_key_is_v3): Use new ATTR_VERSION.
2242            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Assume the v3 flag
2243            was set by the calling function.
2244            * wptKeyGenDlg.cpp (keygen_wizard_dlg_proc): Ask for backups.
2245            (keygen_dlg_proc): Only add the generated key to the keycache
2246            and do not reload the entire cache.
2247            * wptKeyManager.cpp (km_delete_keys): Store the number of keys
2248            because in each loop iteration it will be new calculated.
2249            * wptListView.cpp (listview_del_items): Likewise.
2250            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Directly add the
2251            generated key to the list instead of reloading the entire cache.
2252            * wptKeyEditDlgs.cpp (parse_preflist): Support fpr SHAnnn.
2253    
2254  2005-05-09  Timo Schulz  <[email protected]>  2005-05-09  Timo Schulz  <[email protected]>
2255    
2256          * wptCommonDlg.cpp (http_file_dlg_proc): Renamed to..          * wptCommonDlg.cpp (http_file_dlg_proc): Renamed to..
# Line 261  Line 2293 
2293          (kserver_sendkey): Likewise.          (kserver_sendkey): Likewise.
2294          * wptProxySettingsDlg.cpp (check_number): New.          * wptProxySettingsDlg.cpp (check_number): New.
2295          (read_proxy): Check the entered port number.          (read_proxy): Check the entered port number.
2296          * wptKeySignDlg.cpp (sig_class_dlg_proc): Check default button.          * wptKeySignDlg.cpp (sig_class_dlg_proc): Check default button.
2297          * wptW32API.cpp (get_folder_dlg): Free memory.          * wptW32API.cpp (get_folder_dlg): Free memory.
2298    
2299  2005-04-11  Timo Schulz  <[email protected]>  2005-04-11  Timo Schulz  <[email protected]>
# Line 606  Line 2638 
2638    
2639          * WinPT.cpp (load_keyserver_conf): New. Factored out some code          * WinPT.cpp (load_keyserver_conf): New. Factored out some code
2640          from WinMain ().          from WinMain ().
2641          (WinMain): Load keyserver config at the begin. Thanks to Bodo A�ner          (WinMain): Load keyserver config at the begin. Thanks to Bodo Aßner
2642          * wptKeyserverDlg.cpp (keyserver_dlg_proc): If there is no keyserver          * wptKeyserverDlg.cpp (keyserver_dlg_proc): If there is no keyserver
2643          in the list control, add at least the internal default HKP server.          in the list control, add at least the internal default HKP server.
2644          * wptKeygenDlg.cpp (keygen_wizard_dlg_proc): NLS support.          * wptKeygenDlg.cpp (keygen_wizard_dlg_proc): NLS support.

Legend:
Removed from v.26  
changed lines
  Added in v.418

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26