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

Diff of /trunk/Src/ChangeLog

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

revision 102 by twoaday, Tue Nov 29 08:56:21 2005 UTC revision 167 by twoaday, Thu Jan 26 10:17:17 2006 UTC
# Line 1  Line 1 
1    2006-01-25  Timo Schulz  <[email protected]>
2    
3            * wptRegistry.cpp (get_reg_entry_gpg): Return NULL if
4            the key exist with no value.
5            * wptMDSumDlg.cpp (mdsum_dlg_proc): Translate string.
6            * wptKeysignDlg.cpp (do_fill_seclist): Select the
7            default key if possible.
8            * wptFirstRunDlg.cpp (firstrun_dlg_proc): Directly
9            return the choice.
10            * wptKeylist.cpp (get_key_desc): New.
11            (keylist_upd_key): Free memory.
12            * wptKeyCache.cpp (gpg_keycache_get_default_key): New.
13            (gpg_keycache_set_default_key): New.
14            * WinPT.cpp (gpg_prefs_ok): New.
15            (WinMain): Only start gpg prefs if needed.
16            
17    2006-01-24  Timo Schulz  <[email protected]>
18    
19            * wptKeyManager.cpp (km_dropped_file_import): New.
20            * wptKeyManagerDlg.cpp (keylist_subclass_proc): Allow
21            to drop files and try to import them.
22            (keymanager_dlg_proc): Pass kmi as opaque to the subclass
23            proc.
24            
25    2006-01-23  Timo Schulz  <[email protected]>
26    
27            * wptMDSumDlg.cpp (mdsum_dlg_proc): Allow to send output
28            to the clipboard.
29            * wptKeyEditDlgs.cpp (keyedit_change_ownertrust): New.
30            (do_editkey_enable_disable): New.
31            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Usability fix. Do not
32            close the dialog if the user cancelled the ownertrust dialog.
33            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Return TRUE to indicate
34            an update of any value.
35            
36    2006-01-21  Timo Schulz  <[email protected]>
37    
38            * wptKeyCache.cpp (keycache_next_key): Handle the case
39            that there is a secret key without a public part.
40            * wptKeyserver.cpp (kserver_save_conf): Save ports.
41            * wptKeyserverDlg.cpp (keyserver_modify_dlg_proc):
42            Reset keyserver name.
43            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Just indicate
44            an update, do not update the cache.
45            * wptFileManagerDlg.cpp (file_import_dlg_proc): Use one
46            dialog for both clipboard and file imports.
47            * wptKeyManager.cpp (km_file_import, km_clip_import):
48            Changes to support new update system.
49            (gpg_clip_import): New.
50            * wptKeyManagerDlg.cpp (km_gui_import): New.
51            (find_keypos): Rewritten.
52            (refresh_keylist): Improved error checking.
53            
54    2006-01-20  Timo Schulz  <[email protected]>
55    
56            * wptKeyCache.cpp (w32_tmpfile): New.
57            (parse_attr_data): Use it here.
58            * wptGPGUtil.cpp (gpg_get_photoid_data): Reset @ndata var.
59            
60    2006-01-19  Timo Schulz  <[email protected]>
61    
62            * wptClipVerifyDlg.cpp (clip_verify_dlg_proc): Do not
63            reload the entire cache, just update the key.
64            * wptFileVerifyDlg.cpp (file_verify_dlg_proc): Likewise.
65            * wptKeyPropsDlg.cpp (keyprops_dlg_proc): Set update flag.
66            * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
67            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Update key
68            if need after showing the properties.
69            * wptGPGMEData.cpp (gpg_data_putc): Fix off-by-one bug.
70            * wptKeyManager.cpp (km_import_file): New param. Changed
71            all callers.
72            (km_import_clip): Likewise.
73            (delete_keys_from_cache): Delete secret part if available.
74            * wptClipImportDlg.cpp (print_import_status): If there
75            are too many new keys, use reload code.
76            
77    2006-01-18  Timo Schulz  <[email protected]>
78    
79            * wptKeyEditCB.cpp (cmd_delsig_handler): Do not assume
80            the self sig is always index 0. Noted by Kurt.
81            * wptPassphraseCB.cpp (passphrase_dlg_proc): Do not assume
82            the key user-ID contains an email address.
83            * wptKeyEditDlgs.cpp (do_find_userid): Likewise.
84            (do_editkey_deluid): Likewise.
85            (do_editkey_revuid): Likewise.
86            
87    2006-01-18  Timo Schulz  <[email protected]>
88    
89            * wptListview.cpp (listview_del_sel_items): Fixed index
90            calculation. This fixed a lot of problems with the KM listview
91            update.
92            (listview_del_all): Renamed to...
93            (listview_del_all_items): ..this. Changed all callers.
94            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Just refresh
95            list when file import contained new/updated keys.
96            * wptKeyManager.cpp (km_file_import): Indicate if the
97            import contained any new/update keys.
98            * wptClipImportDlg.cpp (print_import_status): Just mark
99            keys which actually changed.
100            
101    2006-01-17  Timo Schulz  <[email protected]>
102    
103            * wptMAPI.cpp (mapi_send_pubkey_ext): New.
104            * wptKeysigDlg.cpp (do_delsig): Just flag the key, do not
105            update it.
106            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Be more
107            careful about const pointers.
108            * wptKeyEditDlgs.cpp (get_subkey_fingerprint): Renamed to..
109            (get_subkey_keyid): ..this. Fix problem that key was updated
110            twice and this corrupted.
111            (keyedit_add_subkey): Set @lv item in the callback context.
112            
113    2006-01-16  Timo Schulz  <[email protected]>
114    
115            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Restore
116            window if it lost focus during the operation. Thanks to Kurt.
117            Update keylist when the window is enabled.
118            (find_keypos): New.
119            * wptKeyCache.cpp (keycache_next_key): Reset update status.
120            (gpg_keycache_next_updated_key): New arg @r_status. Change all
121            callers.
122            (gpg_keycache_update_key): Different status for new and updated.
123            Include key signatures.
124            * wptClipImportDlg.cpp (print_import_status): Mark all
125            imported keys.
126            * wptMainProc.cpp (clip_gpg_dlg): On import refresh KM keylist.
127            Thanks to Kurt.
128            * wptKeysigDlg.cpp (recv_missing_keys): Mark all received keys.
129            (do_delsig): Directly reload key. Thanks to Kurt.
130            * wptGPGME.cpp (keycache_set_reload, keycache_get_reload):
131            Removed.
132            * wptKeygenDlg.cpp (keygen_dlg_proc): Use new update system.
133            * wptClipImportDlg.cpp (clip_import_dlg_proc): Return
134            FALSE if no keys were updated or operation was cancelled.
135            * wptCommonDlg.cpp (http_dlg_proc): Fix title selection code.
136            * wptKeylist.cpp (get_ext_validity): Handle disabled keys.
137            * wptKeyPropsDlg.cpp (keyprops_dlg_proc):
138            Do not allow to change ownertrust of invalid keys.
139            Changed translation.
140            Slightly different user interface.
141            
142    2006-11-14  Timo Schulz  <[email protected]>
143    
144            * wptW32API.cpp (make_special_filename): New.
145            * wptRegistry.cpp (set_winpt_reg_prefs, get_winpt_reg_prefs):
146            Removed 'KeyServer' item.
147            * wptPreferencesDlg.cpp (prefs_dlg_proc): Remove keyserver
148            config item.
149            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Disable group
150            window until we really use it.
151            * wptKeyserver.cpp (kserver_save_conf): New.
152            (wsock_end): Save keyserver config file.
153            * wptKeyserverDlg.cpp (keyserver_edit): New.
154            (keyserver_remove): New.
155            (keyserver_add): New.
156            (fill_keyserv_types): New.
157            (keyserver_modify_dlg_proc): New.
158            (keyserver_dlg_proc): Provide context menu to modify the
159            keyserver list.
160            (keyserver_build_list): Remove 'proto' column because it is
161            not really useful.
162            * WinPT.cpp (load_keyserver_conf): Store keyserver.conf at
163            $APPDATA\winpt. If keyserver.conf exists in the current folder
164            move it to the new destination.
165            
166    2006-11-13  Timo Schulz  <[email protected]>
167    
168            * wptPreferencesDlg.cpp (prefs_dlg_proc): Changed translation.
169            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Likewise.
170            * wptAboutDlgs.cpp (about_dlg_proc): Make sure GPG about
171            dialog isn't shown twice.
172            * wptKeyCache.cpp (gpg_keycache_next_updated_key): New.
173            (gpg_keycache_update_key): Set update flag.
174            * wptKeyManagerDlg.cpp (refresh_keylist): New.
175            (keymanager_dlg_proc): Use new refresh system for keyservers.
176            * wptKeyserverSearchDlg.cpp (kserver_search_dlg_proc):
177            Update keycache.
178            * wptKeyserverDlg.cpp (hkp_dlg_proc): Likewise.
179            * wptKeyserver.cpp (socket_read_ext): New.
180            (kserver_recv_key_ext): New.
181            (kserver_read_config, kserver_write_config): Removed.
182            
183    2006-01-12  Timo Schulz  <[email protected]>
184    
185            * wptListView.cpp (listview_set_image_list): Make icons
186            always transparent.
187            * wptImageList.cpp (imagelist_load): New icons.
188            * wptGPGMEData.cpp (gpg_data_putc): New.
189            * wptKeyManagerDlg.cpp (load_toolbar): Include new icons.
190            (keymanager_dlg_proc): Add tooltips.
191            * wptKeyserverDlg.cpp (keyserver_list_build): Use icons.
192            * wptKeyserver.cpp (URL_encode): New.
193            (URL_must_encode): New.
194            (kserver_search_init): Properly encode pattern.
195            (parse_iso_date): New.
196            (keyserver_search): Be more strict to prevent buffer overflows.
197            
198    2006-01-11  Timo Schulz  <[email protected]>
199    
200            * wptKeyManagerDlg.cpp (load_toolbar): 2 new icons.
201            (keymanager_dlg_proc): Adjust tooltips.
202            (update_ui_items): Handle new icons.
203            * wptImageList.cpp (imagelist_load): New icons.
204            
205    2006-01-10  Timo Schulz  <[email protected]>
206    
207            * wptMainProc.cpp (winpt_main_proc): Restore iconic
208            File/Key Manager windows if needed.
209            * wptGPGPrefsDlg.cpp (gpg_prefs_dlg_proc): Disable button.
210            * wptSiglist.cpp (init_cmp): New.
211            (siglist_sort): New.
212            (siglist_cmp_cb): New.
213            (siglist_add_key): Force NOKEY status when key was not found.
214            * wptKeysigDlg.cpp (recv_single_key): New.
215            (recv_missing_keys): Reload entire key when more than one key
216            was fetched.
217            (keysig_dlg_proc): Support sorting the listview items.
218            
219    2006-01-09  Timo Schulz  <[email protected]>
220    
221            * WinPT.cpp (load_gettext): Remove file locking.
222            (WinMain): Use pre-defined autoconf constants.
223            * wptW32API.cpp (init_file_lock, release_file_lock): Deleted.
224            * wptGPG.cpp (check_gnupg_engine): Add param @need_gpg_ver.
225            Change all callers.
226            
227    2006-01-07  Timo Schulz  <[email protected]>
228    
229            * wptKeyManager.cpp (km_refresh_from_keyserver): Summarize
230            import status if just one key was selected.
231    
232    2006-01-04  Timo Schulz  <[email protected]>
233    
234            * wptGPGMEWrapper.c (setChangeVersion): New.
235            (exportToBuffer, exportToFile, exportToClipboard): New.
236            (setArmor, getArmor): New.
237            * wptKeylist.cpp (get_key_expire_date): Return locale specific
238            date.
239            (keylist_get_recipients): Do not fetch the key again.
240            (keylist_enum_recipients): Likewise.
241            * wptGPG.cpp (create_empty_keyring): New.
242            (get_gnupg_keyring): Fixed 'strict' logic.
243            * wptKeyManagerDlg.cpp (update_ui_items): Disable some buttons
244            when no secret keys are available.
245            * wptKeyManager.cpp (km_send_to_mail_recipient): Release key data
246            before the MAPI call is made.
247            * WinPT.cpp (check_for_empty_keyrings): New.
248            
249    2006-01-03  Timo Schulz  <[email protected]>
250    
251            * pubkey.ico, keypair.ico: New.
252            * wptListview.cpp (listview_add_item_image): New.
253            (listview_set_image_list): New.
254            * wptSigList.cpp (siglist_add_key): Correct order of the sigs.
255            * wptKeyProps.cpp (keyprops_load_photo): Adjusted for new
256            JPEG data.
257            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Do not allow to
258            add items to revoked keys.
259            * wptKeyManager.cpp (km_delete_keys): Do not use uninitialized
260            keyid buffer. This fixes a segv.
261            * wptKeyserver.cpp (spawn_application): New.
262            (ldap_recv_key): Support recent protocols and several cleanups.
263            * wptKeylist.cpp (do_addkey): Set image which depends on the
264            key type.
265            (keylist_enum_recipients): Cleanups.
266            (keylist_get_keyflags): Rewritten.
267            * wptKeyCache.cpp (free_attr_list): New.
268            (parse_attr_list): New.
269            (parse_attr_data): New.
270            (keycache_update_photo): New.
271            (keycache_update_photos): New.
272            (gpg_keycache_update_key): Automatically reload photos if needed.
273            * wptGPGUtil.cpp (create_process): New param @err. Change all
274            callers.
275            (map_tmpfile): New param @nread. Change all callers.
276            (gpg_get_photoid_data): New.
277            * wptKeyEditDlgs.cpp (keyedit_main_dlg_proc): Do not allow to
278            add items to revoked keys.
279            (subkey_init_list): Store gpgme key object.
280            
281    2005-12-29  Timo Schulz  <[email protected]>
282    
283            * wptKeygenDlg.cpp (keygen_dlg_proc): Request passphrase dynamically.
284            (gpg_genkey_params): Simplified.
285            * wptPreferencesDlg.cpp (prefs_dlg_proc): Fix problem with mutal
286            exclusion of the dialog items.
287            * wptAboutDlgs.cpp (about_winpt_dlg_proc): Allow to use ESC to
288            quit the dialog.
289            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Likewise.
290            * wptMDSumDlg.cpp (mdsum_dlg_proc): Handle WM_SYSCOMMAND.
291            (id2algo): New.
292    
293    2005-12-28  Timo Schulz  <[email protected]>
294    
295            * wptKeyserverDlg.cpp (show_imported_keys): Decode user IDs.
296            * wptKeyRevokersDlg.cpp (key_revokers_dlg_proc): Likewise.
297            * wptKeylist.cpp (keylist_udp_key): Likewise.
298            * wptKeyManager.cpp (key_get_clip_info, key_get_info): Likewise.
299            * wptClipDecryptDlg.cpp (clip_decrypt_dlg_proc): Fix problem
300            when no signing key was found.
301            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Properly decode
302            user IDs.
303            (translate_popup_strings): s/Revoke/Revoke Cert.
304            * wptKeyEditDlgs.cpp (do_init_keylist): Do not assume a
305            0x prefixed keyid.
306            * wptKeyEditCB.cpp (editkey_command_handler): Also reset
307            step in case of a bad passphrase.
308            
309    2005-12-27  Timo Schulz  <[email protected]>
310    
311            * wptListView.cpp (listview_set_view): New.
312            (listview_del_column): New.
313            * wptW32API.cpp (get_locale_date): New.
314            (get_menu_state): New.
315            (force_foreground_window): New.
316            * wptVerifyList.cpp (strtimestamp): Support for
317            locale date formats.
318            * wptGPGUtil.cpp (gpg_revoke_cert): Handle bad
319            passphrases.
320            * wptKeyEditCB.cpp (editkey_command_handler): Immediately
321            return when a bad passphrase was submitted.
322            * wptKeyRevokersDlg.cpp (keyrevokers_dlg_proc): Change
323            column order.
324            * wptKeylist.cpp (keylist_upd_col): New.
325            * wptKeyManagerDlg.cpp (update_ui_items): Deactivate
326            'Revocation' for public keys.
327            (translate_menu_strings): s/Revoke/Revoke Cert.
328            (modify_listview_columns): New.
329            
330    2005-12-18  Timo Schulz  <[email protected]>
331    
332            * wptKeyManagerDlg.cpp (save_column_size): New.
333            (restore_column_size): New.
334            (keymanager_dlg_proc): Save and restore column sizes for
335            the listview control.
336            * wptKeyManager.cpp (key_get_info): New.
337            (km_delete_keys): Use it here to have a consistent message.
338            Use stored key context and not the column data.
339            (km_enable_disable_key): Likewise.
340            (km_send_to_keyserver): Likewise.
341            (km_set_implicit_trust): Likewise.
342            * wptKeylist.cpp (get_key_pubalgo2): New.
343            
344    2005-12-17  Timo Schulz  <[email protected]>
345    
346            * wptUTF8.cpp: Removed unused charset array.
347            * wptSigList.cpp (siglist_build): Increase size for 'class'
348            column.
349            * wptGPG.cpp (get_gnupg_path): Simplified.
350            * WinPT.cpp (load_gpg_env): New.
351            (check_crypto_engine): Return type is now bool.
352            * wptRegistry.cpp (is_gpg4win_installed): New.
353            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): More consistent
354            dialog design.
355            * wptKeyManagerDlg.cpp (translate_menu_strings): New.
356            (translate_popupmenu_strings): New.
357            * wptKeyEditDlgs.cpp (is_jpg_file): New.
358            
359    2005-12-13  Timo Schulz  <[email protected]>
360    
361            * wptCommonDlg.cpp (http_dlg_proc): Localized missing elements.
362            * wptKeyManagerDlg.cpp (change_edit_menu): New.
363            (change_key_menu): Renamed from...
364            (menu_gpg_readonly): ..this.
365            (clip_contains_pgpkey): New.
366            (update_ui_items): Do not allow to sign expired keys.
367            (keymanager_dlg_proc): Same for popup menu.
368            * wptKeyPropsDlg.cpp (parse_preflist): Fixed string handling.
369            * wptKeyCache.cpp (copy_uid_prefs):
370            (gpg_keycache_sync): Copy uid prefs so the key property
371            dialog show the correct values. Thanks to Shane.
372            
373    2005-12-11  Timo Schulz  <[email protected]>
374    
375            * wptW32API.cpp (get_file_version): New.
376            * wptGPGUtil.cpp (create_process): Always hide window.
377            * wptClipEditDlg.cpp (clipedit_dlg_proc): Use 'Close'
378            instead of 'Exit'.
379            * wptKeyManager.cpp (km_http_import): New filename
380            generation code.
381            (km_send_to_mail_recipient): Cleanups.
382            * wptKeyEditDlg.cpp (showpref_dlg_proc): Localize dialog.
383            * wptKeyManagerDlg.cpp (update_ui_items): Handle the case
384            when multiple keys are selected.
385            (popup_multiple): New.
386            * WinPT.cpp (WinMain): Check that the PTD.dll and WinPT.exe
387            file versions are equal. Rewrote --keymanager code.
388            
389    2005-12-08  Timo Schulz  <[email protected]>
390    
391            * wptKeyserverDlg.cpp (show_imported_keys): Enhanced.
392            (hkp_recv_key2): Show user-id of the imported key instead
393            of just the pattern.
394            * wptFileCBS.cpp (read_cb): Changed to W32 API.
395            (write_cb): Likewise. Create output file on demand.
396            (gpg_file_data_new): Adjusted code for new API.
397            * wptKeyEdit.cpp (cleanKey): New.
398            * wptKeyEditCB.cpp (cmd_clean_handler): New.
399            (editkey_command_handler): Call clean handler.
400            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Sort
401            keylist after inserting items.
402            * wptFileManager.cpp (fm_set_status): Take care of
403            cleartext sigs.
404            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): Make
405            sure can be closed.
406            
407    2005-12-07  Timo Schulz  <[email protected]>
408    
409            * wptOwnertrustDlg.cpp (ownertrust_dlg_proc):
410            Use 'Close' instead of 'Exit'.
411            * wptKeyEditDlgs.cpp (keyedit_dlg_proc): Likewise.
412            * wptGPG.cpp (gnupg_backup_keyrings): Use $APPDATA
413            as the destination dir. Thanks to Werner.
414            * wptRegistry.cpp (is_gpgee_installed): New.
415            (regist_inst_winpt): Do not register file extensions
416            if GPGee is available.
417            * wptGPGPrefsDlg.cpp (gpgprefs_dlg_proc): Limit
418            use of local vars.
419            * wptPreferencesDlg.cpp (prefs_dlg_proc): Make sure
420            no illegal backup mode is saved.
421            * wptKeyserverDlg.cpp (show_imported_key): New.
422            (hkp_recv_key2): Show imported keys if the blob
423            contained more than one.
424            
425    2005-12-06  Timo Schulz  <[email protected]>
426    
427            * WinPT.cpp (WinMain): Load the gettext environment soon
428            as possible so all 'first start' messages are localized.
429            * wptKeyManagerDlg.cpp (keymanager_dlg_proc): If a single key is
430            received via the keyserver, return the gpgme key context on
431            success and add it directly to the list.
432            * wptKeyserverDlg.cpp (keyserver_dlg_proc): Support a param
433            to store the key.
434            (hkp_recv_key2): Add extra param for the fingerprint.
435            (hkp_recv_key): Call hkp_recv_key2 without fingerprint.
436            
437    2005-12-02  Werner Koch  <[email protected]>
438    
439            * wptKeyEditDlgs.cpp (subkey_list_init): Avoid trigraphs.
440    
441    2005-12-01  Timo Schulz  <[email protected]>
442    
443            * wptClipVerifyDlg.cpp (clipverify_dlg_proc): Use new semantic
444            for get_gpg_sigstat().
445            * wptGPGME.cpp (get_gpg_sigstat): New. It is now a function.
446            As a macro strings will not be translated at runtime.
447            * wptKeyserverDlg.cpp (hkp_recv_key): Properly detect if we
448            need to update the cache. Thanks to Jan-Oliver.
449            * wptKeyImportStatusDlg.cpp (import_status_dlg_proc): Localized.
450            
451    2005-11-30  Timo Schulz  <[email protected]>
452    
453            * wptW32API.cpp (dialog_box_param): Removed LANG_DE code.
454            * WinPT-en.rc: Removed string list.
455            * wptFileSaveDlg.cpp (file_save_dlg_proc): Localized
456            * wptKeylist.cpp (keylist_build): Cannot use global
457            arrays for the columns due to gettext.
458            
459  2005-11-29  Timo Schulz  <[email protected]>  2005-11-29  Timo Schulz  <[email protected]>
460    
461          * WinPT.cpp (WinMain): Modify --keymanager. If an instance          * WinPT.cpp (WinMain): Modify --keymanager. If an instance
# Line 973  Line 1431 
1431    
1432          * WinPT.cpp (load_keyserver_conf): New. Factored out some code          * WinPT.cpp (load_keyserver_conf): New. Factored out some code
1433          from WinMain ().          from WinMain ().
1434          (WinMain): Load keyserver config at the begin. Thanks to Bodo A�ner          (WinMain): Load keyserver config at the begin. Thanks to Bodo Aßner
1435          * wptKeyserverDlg.cpp (keyserver_dlg_proc): If there is no keyserver          * wptKeyserverDlg.cpp (keyserver_dlg_proc): If there is no keyserver
1436          in the list control, add at least the internal default HKP server.          in the list control, add at least the internal default HKP server.
1437          * wptKeygenDlg.cpp (keygen_wizard_dlg_proc): NLS support.          * wptKeygenDlg.cpp (keygen_wizard_dlg_proc): NLS support.

Legend:
Removed from v.102  
changed lines
  Added in v.167

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26