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

Diff of /trunk/Src/ChangeLog

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

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

Legend:
Removed from v.25  
changed lines
  Added in v.400

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26