Try to fix crashes in MAPI SubmitMessage path
[gpgol.git] / ChangeLog-2011
1
2 2010-07-21  Werner Koch  <wk@g10code.com>
3
4         Release 1.1.2.
5
6 2010-07-21  Marco A.G.Pinto  <marcoagpinto@mail.telepac.pt>  (wk)
7
8         * po/pt.po: New.
9         * po/LINGUAS: Add pt.
10
11 2010-07-21  Werner Koch  <wk@g10code.com>
12
13         * configure.ac: Require libgpg-error 1.9 due to gpg_err_deinit.
14
15         * src/main.c (DllMain): Init and deinit libgpg-error which is now
16         required due to our use of a static libgpg-error.
17
18 2010-04-21  Marcus Brinkmann  <marcus@g10code.de>
19
20         * configure.ac (NEED_LIBASSUAN_API, NEED_LIBASSUAN_VERSION): Bump
21         to 2/2.0.0.
22         (_ASSUAN_ONLY_GPG_ERRORS): Remove.
23
24         * src/engine-assuan.c (connect_uiserver): Update to new libassuan
25         interface.
26
27 2010-01-13  Werner Koch  <wk@g10code.com>
28
29         Release 1.1.1.
30
31         * src/README.icons: Change instructions to better cope with alpha
32         channels.
33
34 2010-01-12  Werner Koch  <wk@g10code.com>
35
36         * src/decrypt-verify-16.bmp, decrypt-verify-16m.bmp: Update.
37         * src/decrypt-verify-32.bmp, decrypt-verify-32m.bmp: Update.
38         * src/verify-16.bmp, verify-16m.bmp: Update.
39         * src/verify-32m.bmp, verify-32.bmp: Update.
40
41         * po/POTFILES.in (explorers.cpp, inspectors.cpp, mailitem.cpp): New.
42
43 2010-01-08  Werner Koch  <wk@g10code.com>
44
45         * forms/encr-s.ico, forms/sign-s.ico: Fix them.
46
47         * src/README.icons: Fix instructions for forms icons.
48
49 2010-01-05  Werner Koch  <wk@g10code.com>
50
51         Release 1.1.0.
52
53 2009-12-22  Werner Koch  <wk@g10code.com>
54
55         * forms/encr-l.ico, forms/encr-s.ico: Update.
56         * forms/sign-l.ico, forms/encr-l.ico: Update.
57
58         * src/key-manager-16.bmp, key-manager-16m.bmp: Update.
59         * src/key-manager-32.bmp, key-manager-32m.bmp: Update.
60         * src/key-manager-64.bmp, key-manager-64m.bmp: New.
61         * src/verify-16.bmp, verify-16m.bmp: Update.
62         * src/verify-32.bmp, verify-32m.bmp: New.
63         * src/sign-16.bmp, sign-16m.bmp: Update.
64         * src/sign-32.bmp, sign-32m.bmp: New.
65         * src/encrypt-16.bmp, encrypt-16m.bmp: Update.
66         * src/encrypt-32.bmp, encrypt-32m.bmp: New.
67         * src/decrypt-16.bmp, decrypt-16m.bmp: Update.
68         * src/decrypt-32.bmp, decrypt-32m.bmp: New.
69         * src/decrypt-verify-16.bmp, decrypt-verify-16m.bmp: Update.
70         * src/decrypt-verify-32.bmp, decrypt-verify-32m.bmp: New.
71         * src/Makefile.am (EXTRA_DIST): Add new bitmaps.
72         * src/dialogs.rc: Add new bitmaps.
73
74 2009-12-01  Werner Koch  <wk@g10code.com>
75
76         * src/README.icons: New.
77
78 2009-12-08  Marcus Brinkmann  <marcus@g10code.de>
79
80         * src/engine-assuan.c (getinfo_pid_cb, prep_foo_status_cb): Change
81         return type to gpg_error_t.
82
83 2009-11-30  Werner Koch  <wk@g10code.com>
84
85         * src/message-events.cpp (OnReadComplete): Use GetInspector if
86         none was found.
87         * src/display.cpp (update_display): Print the window hierarchy in case
88         of an error.
89         * src/ext-commands.cpp (get_inspector): Add arg HWND.  First try
90         get_inspector_from_hwnd.
91         (get_crypto_flags, set_crypto_flags): Add arg HWND.
92         (InstallCommands, DoCommand): Pass HWND to crypt_flags functions.
93
94 2009-11-27  Werner Koch  <wk@g10code.com>
95
96         * src/message-events.cpp (get_crypto_flags): Replace EECB arg by HWND.
97         (OnRead): Pass HWND to get_crypto_flags. Change all callers.
98         (get_inspector): Remove.
99         (get_crypto_flags, OnReadComplete): Use get_inspector_from_hwnd.
100
101         * src/oomhelp.h (IID_IOleWindow): Define.
102         * src/inspectors.cpp (find_ole_window): New.
103         (struct inspector_info_s): Add field HWND.
104         (register_inspector): Store it..
105         (get_inspector_from_hwnd): New.
106
107         * src/common.h (DBG_OOM_EXTRA): New.
108         * src/main.c (read_options): Read new debug flag.
109         * src/eventsink.h (debug_oom_extra): Use it.
110
111 2009-11-03  Werner Koch  <wk@g10code.com>
112
113         * src/inspectors.cpp (deregister_inspector): Delete the buttons.
114         (set_one_button): New.
115         (set_inspector_composer_flags): Also set toolbar buttons.
116         (toggle_button): Use set_one_button.
117         (get_button_by_instid_and_tag): Remove.
118
119         * src/oomhelp.cpp (del_oom_button): New.
120
121 2009-11-02  Werner Koch  <wk@g10code.com>
122
123         * forms/Makefile.am (cfg_english): New.
124
125         * src/mailitem.cpp, mailitem.h: New.
126
127         * src/inspectors.cpp (get_message_from_button): New.
128         (get_inspector_from_instid): New.
129         (proc_inspector_button_click): Implement missing commands.
130
131         * src/message.cpp (message_display_handler): Change to take an
132         LPMESSAGE argument.
133         * src/display.cpp (update_display): Replace the eecb arg by an
134         inspector object.
135         * src/message-events.cpp (OnReadComplete): Adjust for changes.
136
137         * src/oomhelp.cpp (get_oom_iunknown): New.
138         * src/revert.cpp (gpgol_folder_revert): Change to work without an eecb.
139
140 2009-10-30  Werner Koch  <wk@g10code.com>
141
142         * forms/Makefile.am (icons): Udpate all icons.
143
144         * src/oomhelp.cpp (get_oom_control_bytag): Fix silly bug.
145
146         * src/inspectors.cpp (get_inspector_composer_flags): New.
147         (set_inspector_composer_flags): New.
148         * src/oomhelp.cpp (get_eecb_object): New.
149         * src/message-events.cpp (get_inspector): New.
150         (get_crypto_flags): New.
151         (OnWrite, OnWriteComplete): Use new functions instead of the class
152         members.  Use the new oom property functions.
153         * src/ext-commands.cpp (get_inspector, get_crypto_flags): New.
154         (DoCommand): Use new function.
155         (set_crypto_flags): New.
156         (InstallCommands): Use set_crypto_flags.
157         (add_menu, check_menu, add_toolbar, struct toolbar_info_s): Remove.
158         (QueryButtonInfo): Remove all code.
159         (InstallCommands): Make use of get_eecb_object and put_oom_string.
160         (DoCommand): Use get_eecb_object.
161         * src/olflange.h (IExchExt): Remove m_protoSelection, m_gpgSign,
162         m_gpgEncrypt and all related code.
163         * src/olflange.cpp (Install): Use get_oom_string.
164         * src/display.cpp (update_display): Ditto.
165         * src/ol-ext-callback.h, ol-ext-callback.cpp: Remove.
166
167 2009-10-29  Werner Koch  <wk@g10code.com>
168
169         * src/ext-commands.cpp: Remove m_nCmdDebugN, m_nCmdRevertFolder,
170         m_nCmdSign, m_nCmdEncrypt and all related code.  Now handled in
171         inspectors.cpp.
172
173 2009-10-28  Werner Koch  <wk@g10code.com>
174
175         * src/ext-commands.cpp: Remove m_nCmdCryptoState and all related code;
176         now handled in inspectors.cpp.  Remove m_nCmdKeyManager and all
177         related code; now handled in cmdbarcontrols.cpp.
178
179         * src/oomhelp.cpp, oomhelp.h, eventsink.h: New.
180         * src/myexchext.h: Move generic COM+ stuff to oomhelp.h.
181         * src/explorers.cpp, explorers.h: New.
182         * src/inspectors.cpp, inspectors.h: New.
183         * src/cmdbarcontrols.cpp cmdbarcontrols.h: New.
184         * src/olflange.cpp (install_sinks): New.
185         (Install): Call install_sinks.
186         * src/main.c (DllMain): Call initialize_inspectors.
187
188         * src/common.c (fatal_error): New.
189
190 2009-10-20  Werner Koch  <wk@g10code.com>
191
192         * src/myexchext.h (IID_IConnectionPoint)
193         (IID_IConnectionPointContainer): Define.  There are missing in
194         current wine  From ReactOS.
195
196 2009-10-19  Werner Koch  <wk@g10code.com>
197
198         * src/message-events.cpp (show_event_object): Move to ..
199         * src/ol-ext-callback.cpp (show_event_object): .. here.
200         (show_preview_pane): Revert dispparms order to make it work.
201
202         * src/common.c (mem2str): New.
203
204 2009-10-08  Werner Koch  <wk@g10code.com>
205
206         * configure.ac (CFLAGS): Add -fno-strict-aliasing.
207
208 2009-10-07  Werner Koch  <wk@g10code.com>
209
210         * src/ext-commands.cpp (InstallCommands): Comment out the protocol
211         selection.
212         (DoCommand, Help, QueryHelpText, QueryButtonInfo): Ditto.
213         (update_protocol_menu): Comment out.
214         * src/main.c (write_options): Do not write the default protocol.
215         (read_options): Always set it to auto.
216         * src/dialogs.rc: Remove openpgp-by-default and smime-by-default check
217         boxes.
218         * src/olflange-dlgs.cpp (set_labels): Likewise.
219         (GPGOptionsDlgProc): Likewise.
220
221 2009-09-28  Werner Koch  <wk@g10code.com>
222
223         Release 1.0.1.
224
225 2009-09-25  Werner Koch  <wk@g10code.com>
226
227         * src/main.c (read_options): Enable Smime by default.
228
229 2009-08-28  Werner Koch  <wk@g10code.com>
230
231         * configure.ac [GCC]: Test for -Wno-pointer-sign.
232
233         * src/mimemaker.c (do_mime_sign): Comment cleanup.
234
235 2009-08-27  Werner Koch  <wk@g10code.com>
236
237         * src/mapihelp.cpp (mapi_get_sender): Add hack for Kleopatra.
238
239 2009-08-21  Werner Koch  <wk@g10code.com>
240
241         * src/engine-assuan.c (async_worker_thread): Disable the use of
242         MsgWaitForMultipleObjects.
243         * src/common.h (struct compat): Add USE_MWFMO.
244         * src/main.c (read_options): Read that flag.
245
246 2009-08-19  Werner Koch  <wk@g10code.com>
247
248         * src/message.cpp (ul_release): Add arg LNR.  Change all callers.
249         * src/ol-ext-callback.cpp (ul_release): Add args FUNC and LNR.  Change
250         all callers.
251         * src/item-events.cpp (ul_release): ditto.
252         * src/session-events.cpp (ul_release): Ditto.
253
254 2009-07-21  Werner Koch  <wk@g10code.com>
255
256         * src/mapihelp.cpp (create_gpgol_tag, get_internetcharsetbody_tag)
257         (mapi_set_header): Release data returned from GetIDsFromNames.
258
259         * src/engine.h (ENGINE_FLAG_SIGN_FOLLOWS): New macro.
260         * src/engine.c (engine_encrypt_prepare): Add arg flags.  Change
261         callers.
262         * src/engine-assuan.c (op_assuan_encrypt): Ditto.  send PREP_ENCRYPT
263         if the sign-follows flag is used.
264         * src/mimemaker.c (mime_sign_encrypt): Pass new flag.
265
266 2009-06-18  Werner Koch  <wk@g10code.com>
267
268         Release 1.0.0.
269
270 2009-06-18  Werner Koch  <wk@g10code.com>
271
272         * src/common.h (struct opt): Add ANNOUNCE_NUMBER.
273         * src/main.c (write_options, read_options): Store and load that number.
274
275 2009-02-27  Werner Koch  <wk@g10code.com>
276
277         Release 0.10.19.
278
279 2009-02-26  Werner Koch  <wk@g10code.com>
280
281         * src/mimeparser.c (start_attachment): Try to figure out a good file
282         name suffix for the FILENAME property.
283
284         * src/ext-commands.cpp (InstallCommands): Disable decrypt button for
285         non GpgOl messages.
286
287         * src/engine.c (engine_encrypt_prepare): Add arg SENDER.
288         * src/engine-assuan.c (op_assuan_encrypt): Ditto.
289         * src/mimemaker.c (do_mime_sign): Free sender string.
290         (mime_encrypt): Pass the sender address to the engine.
291         (mime_sign_encrypt): Ditto.
292
293 2009-02-25  Werner Koch  <wk@g10code.com>
294
295         * src/mapihelp.cpp (get_gpgoldraftinfo_tag): New.
296         (mapi_get_gpgol_draft_info, mapi_set_gpgol_draft_info): New.
297         * src/ext-commands.cpp (DoCommand): Save encryption selection.
298         (InstallCommands): Get encryption selection from the draft info.
299         * src/mimemaker.c (finalize_message): Delete the property.
300
301 2009-01-28  Werner Koch  <wk@g10code.com>
302
303         Release 0.10.18.
304
305         * po/de.po: s/Unterschrift/Signatur/.
306
307         * src/mimeparser.c (t2body): Take care of x-pkcs7-mime as used by
308         native OL signed messages.
309         (mime_decrypt): Ditto.
310
311 2009-01-16  Werner Koch  <wk@g10code.com>
312
313         * src/engine-assuan.c (attach_thread_input_wndw_proc)
314         (attach_thread_input): Enable code.
315         (async_worker_thread): Replace WFMO by MsgWaitForMultipleObjects
316         and add message dispatcher loops.
317
318 2008-11-27  Werner Koch  <wk@g10code.com>
319
320         * src/mapihelp.cpp (mapi_get_sender): Extract the CN name if available.
321
322 2008-11-26  Werner Koch  <wk@g10code.com>
323
324         * src/ext-commands.cpp (InstallCommands): Don't show status icon for
325         non-gpgol messages.
326
327         * src/config-dialog.c (start_key_manager): Remove.
328         * src/ext-commands.cpp (DoCommand): Do not use start_key_manager as a
329         fallback.
330
331         * src/olflange.cpp (GpgolExt): Show new version warning only once.
332
333         * src/dialogs.rc: Do not display the logo.  Move version info around.
334         * src/dialogs.h (IDC_G10CODE_STRING): New.
335         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Active product page by a
336         click on IDC_G10CODE_STRING.
337         (set_labels): Remove the build date from the Version field.
338
339 2008-11-14  Werner Koch  <wk@g10code.com>
340
341         * src/dialogs.rc: Remove preview-decrypt check button.
342         * src/olflange-dlgs.cpp (set_labels): Ditto.
343
344 2008-11-13  Werner Koch  <wk@g10code.com>
345
346         * src/engine.c (FILTER_BUFFER_SIZE): Increase from 4k to 128k.
347         (switch_threads, clear_switch_threads): Remove.
348         (engine_filter): Pulse event only if anything happened.  Break
349         loop if input data has been put completely into the buffer.  Add a
350         short delay for an idle loop.
351         * src/engine-assuan.c (work_item_s): Increase buffer from 1k to 8k.
352         (switch_threads, clear_switch_threads): Remove.
353
354 2008-11-10  Werner Koch  <wk@g10code.com>
355
356         * src/engine.c (engine_init): Allow the user to try again if the
357         server did not come up.
358         * src/engine-assuan.c (connect_uiserver, op_assuan_init): Add a hack
359         to reset the retry counter.
360
361 2008-11-03  Werner Koch  <wk@g10code.com>
362
363         * src/mimemaker.c (do_mime_sign): Add arg SESSION_NUMBER and pass it
364         to the sign operation.  Set session title.
365         (mime_sign): Create a new session number.
366         (mime_sign_encrypt): Pass a session number and title to the engine.
367         (mime_encrypt): Ditto.
368         * src/engine-assuan.c (op_assuan_encrypt, op_assuan_sign): Send
369         session info.
370
371 2008-10-29  Werner Koch  <wk@g10code.com>
372
373         * src/engine.c (engine_filter): Collect more data in the in buffer.
374         * src/mimemaker.c (write_b64): Buffer up to 2k of output.
375
376 2008-10-27  Werner Koch  <wk@g10code.com>
377
378         * src/mimemaker.c (mime_encrypt): Check for an empty message before
379         creating the filter.  Return a suitable error code.
380         (do_mime_sign): Ditto.
381         (mime_sign_encrypt): Ditto.
382         (mime_sign): Return an error code.
383         * src/message.cpp (sign_encrypt): Show an error message for empty
384         messages.
385         (message_sign): Ditto.
386
387         * src/olflange.cpp (install_forms): Add gpgol-cs.
388
389         * src/mapihelp.cpp (get_internetcharsetbody_tag): New.
390         (mapi_get_body_as_stream): Try the new tag first.
391         (get_msgcls_from_pgp_lines): Ditto.  Remove the simple access
392         method.
393
394 2008-10-24  Werner Koch  <wk@g10code.com>
395
396         * src/mimeparser.c (struct mime_context): Add flag
397         MAY_BE_OPAQUE_SIGNED.
398         (t2body): Set that flag.
399         (is_cms_signed_data): New.
400         (mime_decrypt): Try to verify if the content is opaque signed
401         without proper MIME headers.
402
403 2008-10-23  Werner Koch  <wk@g10code.com>
404
405         * src/mapihelp.cpp (mapi_delete_gpgol_body_attachment): New.
406         * src/message-events.cpp (OnWriteComplete): Remove a body attachment.
407
408         * src/message.cpp (message_display_handler): Do not display PGP
409         clearsigned messages.
410         (message_display_handler): Do not update GpgOLStatus; it is not
411         used anyway.
412         (pgp_mime_from_clearsigned): Fix bogus trailing white space
413         removal code.  Insert an empty line.
414         * src/mimeparser.c (mime_verify): Add arg MIMEHACK.
415         (message_verify): Use it.
416
417 2008-10-17  Werner Koch  <wk@g10code.com>
418
419         * src/recipient-dialog.c (load_rsetbox): Remove superfluous check on
420         negativness for an unsigned variable.
421
422         * src/mimeparser.c (mime_verify_opaque): Remove extra semicolon which
423         shortcuted most of the code.  Why didn't gcc notice that?  Bug
424         was introduced on 2008-06-12.
425
426         * src/engine-assuan.c (create_io_pipe, send_options)
427         (op_assuan_encrypt, op_assuan_sign, op_assuan_decrypt)
428         (op_assuan_verify): Replace use of long in snprint by int to
429         workaround a bug in mingw32. Doesn't matter on w32 anyway.
430
431 2008-10-16  Werner Koch  <wk@g10code.com>
432
433         * src/mimeparser.c (start_attachment): Take care not to set the file
434         name "smime.p7m".
435
436         * src/mapihelp.cpp (is_really_cms_encrypted): Extend to detect unknown
437         message types.
438         (mapi_change_message_class): Adjust for this change.
439         (mapi_change_message_class): Factor code out to ...
440         (change_message_class_ipm_note)
441         (change_message_class_ipm_note_smime)
442         (change_message_class_ipm_note_smime_multipartsigned)
443         (change_message_class_ipm_note_secure_cex): New.
444         (get_first_attach_mime_tag): New.
445         (change_message_class_ipm_note_secure_cex): Use it here for CexSig.
446         (has_smime_filename): Also look at the long filename.
447
448 2008-10-15  Werner Koch  <wk@g10code.com>
449
450         * src/engine-assuan.c (op_assuan_sign): Send the new --protocol option
451         to the server.
452
453 2008-09-30  Werner Koch  <wk@g10code.com>
454
455         * src/mapihelp.cpp (mapi_change_message_class): Special handling for
456         MultipartSigned if S/MIME support is disabled.
457
458 2008-08-06  Werner Koch  <wk@g10code.com>
459
460         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Disable S/MIME notice.
461
462 2008-08-05  Werner Koch  <wk@g10code.com>
463
464         * src/ext-commands.cpp (InstallCommands): Display protocolicons only
465         for OL2007.
466         * src/olflange.cpp (get_ol_main_version): New.
467
468         * src/message.cpp (message_decrypt): Save a signature verification
469         result.
470         * src/mimeparser.c (mime_decrypt): Implement verification of included
471         signatures.  This feature got lost during the removal of nested
472         crypto operations.
473
474 2008-08-04  Werner Koch  <wk@g10code.com>
475
476         * src/olflange.cpp (install_forms): New.
477         (GpgolExt): Install forms if needed.
478         * src/common.c (get_data_dir): New.
479         * src/common.h (struct): Add field FORMS_REVISION.
480         * src/main.c (read_options, write_options): Read and write that
481         option.
482
483 2008-07-31  Werner Koch  <wk@g10code.com>
484
485         * src/ext-commands.h (class GpgolExtCommands): Add m_nCmdRevertFolder.
486         * src/ext-commands.cpp (GpgolExtCommands, InstallCommands): Ditto.
487         (DoCommand): Implement RevertFolder command.
488
489         * src/common.h (struct): Add variable DISABLE_GPGOL.
490         * src/session-events.cpp (OnDelivery): Make use of that variable.
491         * src/message.cpp (message_incoming_handler): Ditto.
492         * src/user-events.cpp (OnSelectionChange): Ditto
493         * src/message-events.cpp (OnRead, OnReadComplete, OnWrite)
494         (OnWriteComplete): Ditto
495         * src/mapihelp.cpp (mapi_get_int_prop): New.
496
497         * src/olflange.cpp (Install): Improve version check.
498
499         * src/revert.cpp, revert.h: New.
500         * src/mapihelp.cpp (mapi_attachment_to_body): New.
501         (mapi_get_old_message_class): New.
502         (mapi_change_message_class): Do not release newvalue when saving
503         the old class.
504         * src/olflange.cpp (parse_version_number, parse_version_string)
505         (compare_versions, gpgol_check_version): New.
506         * src/ext-commands.cpp (DoCommand): Support a "revert message class"
507         debug command.
508
509 2008-06-27  Werner Koch  <wk@g10code.com>
510
511         * src/mapihelp.cpp (get_gpgololdmsgclass_tag): New.
512         (mapi_change_message_class): Save old message class.
513
514 2008-06-19  Werner Koch  <wk@g10code.com>
515
516         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Change S/MIME enabled
517         message icon.
518         * src/olflange.cpp (GpgolExt): Ditto for the new version installed
519         notice.
520
521 2008-06-12  Werner Koch  <wk@g10code.com>
522
523         * src/dialogs.rc: Add button for calling the engine's configuration.
524         * src/dialogs.h (IDC_GPG_CONF): New.
525         * src/engine.c (engine_start_confdialog): New.
526         * src/engine-assuan.c (op_assuan_start_confdialog): New.
527         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Act upon the button.
528
529         * src/mapihelp.cpp (mapi_get_from_address): New.
530         * src/engine.c (engine_decrypt_start, engine_verify_start): Add new
531         arg FROM_ADDRESS.
532         * src/engine-assuan.c (op_assuan_verify, op_assuan_decrypt): Ditto.
533         * src/mimeparser.c (mime_verify, mime_verify_opaque, mime_decrypt):
534         Pass FROM_ADDRESS to the backend.
535
536         * src/olflange.cpp (DllUnregisterServer): Delete CLSIDs.
537
538 2008-06-05  Werner Koch  <wk@g10code.com>
539
540         * src/mimeparser.c (mime_decrypt): Set session number and title.
541         (mime_verify_opaque, mime_verify): Ditto.
542         * src/mapihelp.cpp (mapi_get_subject): New.
543         * src/engine.c (engine_set_session_number, engine_set_session_title)
544         (engine_set_sender_address): New.
545         (struct engine_filter_s): Add fields session_number, session_title
546         and sender_address.
547         (engine_private_get_session_number): New.
548         (engine_private_get_session_title): New.
549         (release_filter): Release them.
550         (engine_new_session_number): New.
551         * src/engine-assuan.c (send_session_info): New
552         (op_assuan_decrypt, op_assuan_verify): Call it.
553         (op_assuan_sign): Use the end-of-option option for the SENDER command.
554
555 2008-05-28  Werner Koch  <wk@g10code.com>
556
557         * src/dialogs.h (IDC_BODY_AS_ATTACHMENT): New.
558         * src/dialogs.rc: Add body-as-attachemnt checkbox to the otpion
559         dialog.
560         * src/olflange-dlgs.cpp (set_labels, GPGOptionsDlgProc): Add it.
561         * src/main.c (write_options, read_options): Handle bodyAsAttachment
562         registry key.
563         * src/mimeparser.c (start_attachment): Do not set the hidden flag if
564         the new option is used.
565         * src/mapihelp.cpp (mapi_test_attach_hidden): New.
566         (mapi_get_gpgol_body_attachment): Make use of that flag.
567
568 2008-05-23  Werner Koch  <wk@g10code.com>
569
570         * src/mimemaker.c (struct sink_s): Add field ENC_COUNTER.
571         (write_buffer_for_cb): Update that.
572         (mime_encrypt): Bail out if no data has been encrypted.
573         (mime_sign_encrypt): Ditto.
574
575 2008-05-07  Werner Koch  <wk@g10code.com>
576
577         * src/mimeparser.c (t2body): Fix last change.
578
579 2008-05-02  Werner Koch  <wk@g10code.com>
580
581         * src/mimeparser.c (t2body): Detect non-inline text parts.
582         * src/rfc822parse.c (rfc822parse_query_parameter): Add special mode
583         for an ATTR of NULL.
584
585 2008-04-16  Werner Koch  <wk@g10code.com>
586
587         * src/message-events.h (class GpgolMessageEvents): Add M_GOTINSPECTOR.
588         * src/message.cpp (message_incoming_handler): Change return type.
589
590         * src/ext-commands.cpp (check_toolbar, check_menu_toolbar): New.
591         (update_protocol_menu): Explicitly update the toolbar.
592
593 2008-04-15  Werner Koch  <wk@g10code.com>
594
595         * src/Outlook.gpl: New.
596
597 2008-04-14  Werner Koch  <wk@g10code.com>
598
599         * src/display.cpp (is_inspector_display): New.
600         (find_message_window): Rewrote.
601
602         * src/message-events.cpp (OnRead): Use it.
603         * src/message.cpp (message_incoming_handler): Add arg FORCE.
604         * src/message-events.cpp (OnRead): Pass false for FORCE.
605         * src/item-events.cpp (OnOpen): Ditto.
606         * src/ext-commands.cpp (DoCommand): Let CmdCryptoState process and
607         display the current message again.
608         (GpgolExtCommands): Remove m_nCmdCheckSig and m_nCmdDecrypt.
609
610 2008-04-10  Werner Koch  <wk@g10code.com>
611
612         * src/ol-ext-callback.cpp (is_preview_pane_visible)
613         (show_preview_pane): New.
614
615         * src/display.cpp (update_display): Add arg IS_SENSITIVE and do not
616         use the OOM method if this is set.
617
618         * src/mapihelp.h (mapi_save_changes): New. Use if everywhere.
619         (mapi_delete_body_props): Use it to delete body parts.
620         * src/mapihelp.cpp (mapi_do_save_changes): New.
621         * src/mimemaker.c (finalize_message): Do no delete body parts because
622         mapi_save_changes does this now.
623
624         * src/mimeparser.c (finish_message): Remove the body property in
625         protect mode.
626
627 2008-04-04  Werner Koch  <wk@g10code.com>
628
629         * src/engine-assuan.c (worker_start_read, worker_check_read): Factor
630         common code out to ..
631         (write_to_callback): .. new.
632         (async_worker_thread): Better comments and minor changes.
633         (enqueue_callback): Add arg INACTIVE.
634         (set_items_active): New.
635         (start_command): Set items active.
636         (op_assuan_encrypt): Create input and output items as inactive.
637         (async_worker_thread): Handle the inactive flag.
638
639         * src/common.c (gpgol_spawn_detached): Do not inherit handles.
640
641 2008-04-02  Werner Koch  <wk@g10code.com>
642
643         * src/engine-assuan.c (destroy_command): Add arg FORCE.
644         (op_assuan_encrypt_bottom): Call destroy_command.
645
646         * src/mimeparser.c (struct mime_context): Use parser_error to return
647         gpg error codes.
648
649         * src/main.c (read_options): Allow names for debug flags.
650         * src/common.c (trim_spaces): New.
651
652 2008-03-31  Werner Koch  <wk@g10code.com>
653
654         * src/engine-assuan.c (struct work_item_s): Add SWITCH_COUNTER.
655         (switch_threads, clear_switch_threads): New.
656         (worker_start_write): Use it.
657         * src/engine.c (struct engine_filter_s): Add SWITCH_COUNTER.
658         (switch_threads, clear_switch_threads): New.
659         (filter_gpgme_read_cb): Use it.
660
661         * src/ext-commands.h (class GpgolExtCommands): Add m_nCmdCryptoState.
662         * src/ext-commands.cpp (InstallCommands): Add a toolbar crypto state
663         button.
664         (DoCommand): Show a message when trying to select the disabled
665         S/MIME protocol.
666
667         * src/message.cpp (message_sign, message_verify, message_decrypt)
668         (sign_encrypt): Display message boxes only in debug mode.
669
670         * src/olflange-dlgs.cpp: Remove G-Data 2001 copyright because all that
671         old code has gone.
672
673         * src/dialogs.rc (IDD_EXT_OPTIONS): Remove option to select the key
674         manager.
675         (IDD_GPG_OPTIONS): Remove caching time, reorder options, add group
676         boxes.
677         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Clean up accordingly.
678         * src/config-dialog.c (config_dlg_proc): Ditto.
679         (get_open_file_name, does_file_exist, error_box): Remove.
680
681         * src/ext-commands.cpp: Rename nCmdShowInfo to nCmdDebug0 and enable
682         it only in debug mode.
683
684 2008-03-26  Werner Koch  <wk@g10code.com>
685
686         * src/engine-gpgme.c (cleanup): Implement.
687         (op_gpgme_init): Save thread handle.
688         (waiter_thread): Check shutdown flags.
689
690         * src/engine-assuan.c (get_uiserver_name): Fallback to GPA.
691
692 2008-03-19  Werner Koch  <wk@g10code.com>
693
694         * src/mapihelp.cpp (mapi_change_message_class): Look into
695         multipart/mixed for PGP messages.
696
697         * src/mapihelp.cpp (mapi_get_attach): Add arg UNPROTECT and changed
698         all callers.
699         * src/common.h (DBG_MIME_PARSER, DBG_MIME_DATA): New.
700         * src/mimeparser.c (debug_mime_parser, debug_mime_data): New to
701         replace DEBUG_PARSER.
702         (struct mime_context): Add field is_opaque_signed.
703         (t2body): Set it.
704         (mime_decrypt): Handle an embedded opaque signed S/MIME part.
705         (mime_verify_opaque): Add arg INBUFER, INBUFFERLEN and
706         START_PART_COUNTER.
707
708 2008-03-18  Werner Koch  <wk@g10code.com>
709
710         * src/mimeparser.c (message_cb): Clear all mimestruct fields.  Fixes
711         segv introduced 2008-03-07.
712
713         * src/engine-assuan.c (async_worker_thread): Handle broken pipe.
714
715 2008-03-13  Werner Koch  <wk@g10code.com>
716
717         * src/mimeparser.c (message_cb): Skip the OPEN event in non-MIME mode.
718
719         * src/rfc822parse.c (rfc822parse_open): Reset ERRNO.
720
721 2008-03-11  Werner Koch  <wk@g10code.com>
722
723         * src/engine-assuan.c (op_assuan_encrypt): Factor some code out to ..
724         (op_assuan_encrypt_bottom): .. new.
725         (engine_assuan_encstate_s): New.
726         * src/engine.c (engine_encrypt_start): Split some code into ..
727         (engine_encrypt_prepare): .. new.
728         (engine_cancel): Cancel prepared encryption.
729         * src/mimemaker.c (mime_encrypt): Use engine_encrypt_prepare and
730         _start.
731         (mime_sign_encrypt): Likewise, but do the _start only after
732         completing the signing.
733
734 2008-03-10  Werner Koch  <wk@g10code.com>
735
736         * src/engine.c (FILTER_BUFFER_SIZE): Increase to 4k.
737         (engine_filter, engine_wait, engine_wait): Replace Sleep by
738         SwitchToThread.
739         * src/engine-assuan.c (struct work_item_s): Increase buffer to 1k.
740         (worker_start_write, async_worker_thread): Replace Sleep by
741         SwitchToThread.
742
743 2008-03-07  Werner Koch  <wk@g10code.com>
744
745         * src/mapihelp.cpp (mapi_get_sender): New.
746         * src/mymapitags.h (PR_PRIMARY_SEND_ACCT): New.
747         * src/mimemaker.c (do_mime_sign): Pass the sender to the engine.
748
749         * src/common.h (opt): Add field SVN_REVISION.
750         * src/main.c (read_options, write_options): Set it.
751         * src/olflange.cpp (GpgolExt): Print a warning on program update.
752
753         * src/engine.c (struct engine_filter_s): Add field ADD_EXTRA_LF.
754         (engine_request_exra_lf): New.
755         (engine_wait): Implement that.
756         * src/mimeparser.c (mime_decrypt): Add arg SIMPLE_PGP and call
757         engine_request_exra_lf.
758         (struct mime_context): Add field NO_MAIL_HEADER.
759         (message_cb): Implement it.
760         * src/message.cpp (message_decrypt): Set that flag for old style PGP.
761
762         * src/common.h (DBG_COMMANDS, debug_commands): New.
763         * src/ext-commands.cpp: Use it.
764
765 2008-03-06  Werner Koch  <wk@g10code.com>
766
767         * src/mimemaker.c (do_mime_sign): Figure out the protocol to use.
768         * src/engine.c (engine_sign_start): Add new args SENDER and R_PROTOCOL.
769         * src/engine-assuan.c (op_assuan_sign): Ditto.  Send SENDER command.
770
771 2008-03-05  Werner Koch  <wk@g10code.com>
772
773         * src/main.c (read_options): Insert the debug registry key.
774         (write_options): More debug output.
775
776 2008-02-28  Werner Koch  <wk@g10code.com>
777
778         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Fix initial setting of
779         openpgp and smime state.  I wish C would haved used := for
780         assignments.
781
782 2008-02-26  Werner Koch  <wk@g10code.com>
783
784         * src/common.c (qp_decode): Add arg S_LBRK.
785         * src/mimeparser.c (plaintext_handler, ciphertext_handler): Handle
786         soft line breaks.
787
788         * src/mapihelp.cpp (mapi_change_message_class): Handle opaque S/MIME
789         messages without an smime-type parameter.
790
791 2008-02-25  Werner Koch  <wk@g10code.com>
792
793         * src/message.cpp (message_verify): Show message boxes for non-signed
794         messages.
795         (message_decrypt): Likewise.
796
797 2008-02-19  Marcus Brinkmann  <marcus@g10code.de>
798
799         * src/engine-assuan.c (get_uiserver_name): Change default uiserver
800         path and remove work-around.
801
802 2008-02-18  Werner Koch  <wk@g10code.com>
803
804         * src/message.cpp (pgp_body_to_attachment): New.
805         (message_decrypt): Use it.
806         (message_wipe_body_cruft): Also wipe already processed PGP
807         encrypted messages.  Factor common code out to ...
808         (do_wipe_body): .. new.
809         * src/mapihelp.h (ATTACHTYPE_PGPBODY): New.
810
811 2008-02-15  Werner Koch  <wk@g10code.com>
812
813         * src/olflange-dlgs.cpp: Remove code for IDC_ENCRYPT_WITH_STANDARD_KEY
814         and IDC_ENCRYPT_TO.
815         * src/dialogs.rc: Ditto.
816
817 2008-02-13  Werner Koch  <wk@g10code.com>
818
819         * src/mapihelp.cpp (get_gpgolcharset_tag, mapi_get_gpgol_charset)
820         (mapi_set_gpgol_charset): New.
821         (mapi_get_gpgol_body_attachment): Transcode from Latin-1.
822         * src/mimeparser.c (start_attachment): Set the charset property.
823         (struct mime_context): Remove is_utf8 field.
824
825 2008-02-11  Werner Koch  <wk@g10code.com>
826
827         * src/common.h (tlvinfo_t): New.
828         * src/common.c (parse_tlv): New.  Based on code from libksba.
829         * src/mapihelp.cpp (has_smime_filename): New.
830         (is_really_cms_encrypted): New.
831         (mapi_change_message_class): Use this here to work around a
832         CryptoEx bug.
833
834 2008-02-08  Werner Koch  <wk@g10code.com>
835
836         * src/mapihelp.cpp (mapi_change_message_class): Improve detecion of
837         CryptoEx messages.
838
839 2008-02-07  Werner Koch  <wk@g10code.com>
840
841         * src/engine.c (engine_verify_start): Enable opaque signature for the
842         assuan backend.
843         * src/engine-assuan.c (op_assuan_verify): New arg OUTDATA.  Add
844         support for opaque signatures.
845
846         * src/mimeparser.c (mime_verify_opaque): New.
847         * src/message.cpp (message_verify): Handle opaque signed S/MIME.
848
849         * src/message.cpp (message_wipe_body_cruft): Delete only encrypted
850         messages.
851
852 2008-02-06  Werner Koch  <wk@g10code.com>
853
854         * src/mimeparser.c (mime_decrypt): New arg IS_RFC822.
855         * src/message.cpp (message_decrypt): Add code to see whether to use
856         the new arg.
857
858 2008-02-01  Werner Koch  <wk@g10code.com>
859
860         * src/mimeparser.c (ciphertext_handler, ciphermessage_cb)
861         (ciphermessage_t2body): New.
862         (mime_decrypt): Use an rfc822 parser to pass the message to the
863         engine.
864
865         * src/mapihelp.cpp (mapi_get_attach_as_stream): Add arg R_ATTACH.
866         (mapi_set_attach_hidden): New.
867
868 2008-01-31  Werner Koch  <wk@g10code.com>
869
870         * src/message.cpp (message_verify): Check that the body attachment is
871         available before shortcutting the verification.
872         * src/user-events.cpp (OnSelectionChange): Change SMIME message
873         class.
874         * src/mapihelp.cpp (mapi_change_message_class): Add arg
875         SYNC_OVERRIDE. Changed all callers to pass false.
876         (mapi_test_sig_status): Take care of sent messages.
877         (mapi_get_gpgol_body_attachment): Change args to allow use as
878         testing fucntion too.  Adjusted caller.
879
880 2008-01-29  Werner Koch  <wk@g10code.com>
881
882         * src/mimemaker.c (do_mime_sign): Set CTE for SMIME.
883         (delete_all_attachments): Remove extra semicolon accidently
884         inserted with revision 916.
885
886 2008-01-18  Marcus Brinkmann  <marcus@g10code.de>
887
888         * src/mimeparser.c (mime_verify): New variable sig_len, and pass it on
889         to engine_verify_start.
890         * src/engine.h (engine_verify_start): Add new argument sig_len.
891         * src/engine.c (engine_verify_start): Add new argument sig_len and
892         pass it on to op_assuan_verify and op_gpgme_verify.
893         * src/engine-assuan.h (op_asssuan_verify): Add new argument sig_len.
894         * src/engine-gpgme.c (op_gpgme_verify): New argument sig_len and use
895         it instead of string length of signature.
896         * src/engine-assuan.c (op_assuan_verify): Likewise.
897
898 2008-01-11  Werner Koch  <wk@g10code.com>
899
900         * src/mimemaker.c (finalize_message): Add args PROTOCOL and ENCRYPT
901         and use them to set the override message class.
902         (mime_sign, mime_encrypt, mime_sign_encrypt): Pass this info via
903         the new args.
904         (do_mime_sign): Set micalg to sha1 for CMS.
905
906         * src/message.cpp (message_decrypt): Add hack fro seldgenerated
907         messages.
908
909 2008-01-10  Werner Koch  <wk@g10code.com>
910
911         * src/mapihelp.cpp (get_gpgolmsgclass_tag, mapi_set_gpgol_msg_class):
912         New.
913         (mapi_change_message_class, mapi_get_message_type): Try override
914         first.
915
916         * src/message.cpp (message_incoming_handler): Remove arg MSGTYE and
917         let the function retrieve it.  Changed all callers.  Retry after a
918         sucessful message class change.
919         * src/olflange.cpp (getMsgtype): Remove.  The caching might lead to
920         problems and makes it all more complex.  Changed all callers to
921         use mapi_get_message_type.
922
923         * src/mimemaker.c (create_top_encryption_header) <SMIME>: Write empty
924         line after header.
925
926 2008-01-09  Werner Koch  <wk@g10code.com>
927
928         * src/mimeparser.c (finish_saved_body): New.
929         (finish_attachment): Keep the body attachment open.
930         (mime_decrypt, mime_verify): Close the saved body data.
931         (t2body): Continue body attachments.
932
933         * src/message.cpp (message_verify): Save changes.
934
935         * src/mapihelp.cpp (mapi_change_message_class): Handle case of
936         PGP/MIME signed with IPM.Note.  Save only of really needed, use
937         FORCE_SAVE and keep it open for read and write.
938
939 2008-01-07  Marcus Brinkmann  <marcus@g10code.de>
940
941         * src/engine-assuan.c (replace_dollar_s): Remove obsolete function.
942         (get_quoted_socket_name): Remove obsolete function.
943         (get_uiserver_name): Invoke GUI server with --daemon.  Fix buglet
944         in assignment.
945         (destroy_command): Change return type to void to suppress compiler
946         warning.
947
948 2008-01-04  Werner Koch  <wk@g10code.com>
949
950         * src/engine-assuan.c (send_options): Call AllowSetForegroundWindow.
951
952         * src/main.c (read_options): Allo other values than 1 for enableDebug.
953         * src/common.h (DBG_IOWORKER, DBG_IOWORKER_EXTRA, DBG_FILTER)
954         (DBG_FILTER): New.
955         * src/engine.c (debug_filter): Turn it into a macro.
956         (debug_filter_extra): New macro, used instead of checking the
957         value of debug_filter.
958         * src/engine-assuan.c (debug_ioworker, debug_ioworker_extra): new.
959         Use them all over the file to enable debugging.
960         * src/engine.c (engine_encrypt_start): Add arg HWND.
961         (engine_sign_start, engine_decrypt_start, engine_verify_start)
962         (engine_start_keymanager): Ditto.
963
964         * src/mimemaker.c (mime_encrypt, mime_sign_encrypt, mime_sign)
965         (do_mime_sign): Add arg HWND and pass it to the engine.
966         * src/mimeparser.c (mime_verify, mime_decrypt): Pass HWND.
967         * src/message.cpp (message_sign, sign_encrypt): Pass HWND.
968         (message_incoming_handler, message_verify, message_decrypt): Add
969         arg HWND and pass it on.
970         * src/message-events.cpp (OnRead): Pass HWND to message function.
971         * src/ext-commands.cpp (DoCommand):  Ditto.
972
973 2008-01-03  Werner Koch  <wk@g10code.com>
974
975         * src/mimemaker.c (mime_sign_encrypt): Fix result test of do_mime_sign.
976         (write_tempsign_attachment): Remove.
977         (do_mime_sign): Change last ark to a sink_t.
978         (mime_sign_encrypt): Rework to use a temporary stream instead of a
979         temporary attachment.
980         (create_mapi_attachment): Remove arg TEMPSIGN.
981
982 2007-12-18  Werner Koch  <wk@g10code.com>
983
984         * src/mapihelp.cpp (get_msgcls_from_pgp_lines): Limit check to the
985         first 1 k and stop testing after the first PGP armor line.
986         (mapi_get_message_type): Return MSGTYPE_SMIME.
987         (mapi_change_message_class): Take care of CryptoEx signatures.
988         * src/mapihelp.h (MSGTYPE_SMIME): New.
989         * src/message.cpp (message_incoming_handler): Check message class for
990         unknown and unchecked messages.  Take care MSGTYPE_SMIME.
991         * src/ext-commands.cpp (DoCommand): Add debug command change
992         message class.
993
994 2007-12-07  Werner Koch  <wk@g10code.com>
995
996         * src/ext-commands.cpp (InstallCommands): Removed toolbar button fro
997         decrypt as this is not anymore needed.  Fixes bug#860.
998         (QueryHelpText): Ditto.
999
1000 2007-11-12  Werner Koch  <wk@g10code.com>
1001
1002         * src/olflange.h (class GpgolExt): Rename m_gpgSelectSmime to
1003         m_protoSelection.
1004         * src/message-events.cpp (OnWriteComplete): Use it accordingly.
1005         * src/main.c (write_options, read_options): Load and save it.
1006         * src/dialogs.rc: Add new check box for OpenPGP default protocol.
1007         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Adjust for above chnages.
1008
1009 2007-11-09  Werner Koch  <wk@g10code.com>
1010
1011         * src/main.c (read_options): New option ENABLE_DEBUG to be enabled
1012         only using the Registry.
1013         (read_options): Show warning for certain option combinations.
1014         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Hide the Advanced options
1015         button unless in debug mode.
1016
1017         * src/mapihelp.cpp (get_gpgollastdecrypted_tag): New.
1018         (mapi_test_last_decrypted): New.
1019         (mapi_has_last_decrypted): new.
1020         * src/mimeparser.c (finish_message): Update the Last Decrypted property.
1021         * src/message.cpp (message_decrypt): Use it here.
1022         (message_wipe_body_cruft): New.
1023
1024         * src/main.c (do_log_window_hierarchy): Factor some code out to ..
1025         (do_log_window_info): .. this.
1026         (log_window_hierarchy): Log parent window info.
1027         (get_64bit_session_marker): New.
1028         (initialize_session_key): Init session marker.
1029
1030         * src/Makefile.am (gpgol_SOURCES): Remove item-events.cpp
1031         * src/olflange.cpp (GpgolExt): Disable the GpgOLItemEvents as they can
1032         only be used with the undocumented ECF file.
1033
1034 2007-10-29  Werner Koch  <wk@g10code.com>
1035
1036         * src/mimemaker.c (create_top_signing_header): Add arg FIRST.
1037         (mime_sign): Factor allmost all code out to ..
1038         (do_mime_sign): .. new function.
1039         (create_mapi_attachment): Add arg TEMPSIGN.
1040         (delete_all_attachments): Adjust for that.
1041         (mime_encrypt): Factor some code out to ..
1042         (create_top_encryption_header): .. new.
1043         (write_tempsign_attachment): New.
1044         (mime_sign_encrypt): Implement.
1045
1046 2007-10-22  Werner Koch  <wk@g10code.com>
1047
1048         * src/engine-assuan.c (connect_uiserver): Try to start the server.
1049         (get_uiserver_name, replace_dollar_s, get_quoted_socket_name): New.
1050
1051         * src/main.c (REGKEY): Remove.
1052         * src/common.h (GNUPG_REGKEY): New.
1053         * src/common.c (default_homedir): Use it in place of a hard coded one.
1054         (get_locale_dir): Ditto.
1055         (gpgol_spawn_detached): New.
1056
1057 2007-10-18  Werner Koch  <wk@g10code.com>
1058
1059         * src/common.c (get_system_check_bitmap): New.
1060
1061         * src/decrypt.bmp, encrypt.bmp, sign.bmp, key_mana.bmp: Change
1062         background color to pink and voila Outlook presents them
1063         transparent.
1064
1065         * src/logo.bmp: Cleaned up to use just one color.
1066         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Do not use LoadImage.
1067
1068 2007-10-16  Werner Koch  <wk@g10code.com>
1069
1070         * src/myexchext.h (EECMDID_): Add a few more of these constants.
1071         * src/ext-commands.cpp (check_menu): New.
1072         (toolbar_add_menu): Rename to ..
1073         (add_menu): .. this.
1074         (toolbar_from_tbe): Remove.
1075         (add_toolbar): New.
1076         (InstallCommands): Use new toolbar helper.
1077         (QueryButtonInfo): Changed to use new toolbar helper.
1078         (~GpgolExtCommands): New.
1079
1080         * src/engine.c (engine_encrypt_start): Add arg R_PROTOCOL.
1081         * src/engine-assuan.c (op_assuan_encrypt): Add arg R_USED_PROTOCOL and
1082         ask the server for it.
1083         * src/mimemaker.c (sink_encryption_write_b64): New.
1084         (mime_encrypt): Add S/MIME support.
1085
1086 2007-10-15  Werner Koch  <wk@g10code.com>
1087
1088         * src/engine-assuan.c (op_assuan_start_keymanager): New.
1089         * src/engine.c (engine_start_keymanager): New.
1090         * src/ext-commands.cpp (DoCommand): Call it.
1091
1092 2007-10-12  Werner Koch  <wk@g10code.com>
1093
1094         * src/gpgol-rsrcs.rc: Remove.
1095         * src/dialogs.rc: Renamed from olflange-rsrcs.rc.
1096         * src/dialogs.h: Rename for olflange-ids.h.  Changed all includers.
1097         * src/Makefile.am: Adjust accordingly.
1098
1099         * src/verify-dialog.c (verify_dialog_box): Do not distinguish
1100         languages.
1101         (verify_dlg_set_labels): New.
1102         (verify_dlg_proc): Call it.
1103
1104         * src/passphrase-dialog.c (passphrase_callback_box): Do not
1105         distinguish languages.
1106         (decrypt_key_dlg_set_labels): New.
1107         (decrypt_key_dlg_proc): Call it.
1108         (decrypt_key_ext_dlg_set_labels): New.
1109         (decrypt_key_ext_dlg_proc): Call it.
1110
1111         * src/recipient-dialog.c (recipient_dialog_box): Do not distinguish
1112         languages.
1113         (recipient_dialog_box2): Ditto.
1114         (recipient_dlg_set_labels): New.
1115         (recipient_dlg_proc): Call it.
1116
1117 2007-10-11  Werner Koch  <wk@g10code.com>
1118
1119         * src/ext-commands.cpp (toolbar_add_menu): USe "@" to indicate a
1120         separator and "" to ski the entry.  Changed callers.
1121
1122         * src/common.h (struct): Remove AUTO_SIGN_ATTACH.  Add ENABLE_SMIME.
1123         * src/main.c (read_options, write_options): Save the new option.
1124         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Implement new option and
1125         print warning.
1126         * src/mapihelp.cpp (mapi_change_message_class): Take care of
1127         enable_smime.
1128
1129         * src/olflange-ids.h: Renumbered.
1130         * src/olflange-rsrcs.rc: Keep only the english dialog and changed all
1131         text to dummy texts.
1132         * src/olflange-dlgs.cpp (set_labels): New.
1133         (GPGOptionsDlgProc): Call it.
1134         * src/property-sheets.cpp (GetPages): Do not distinguish languages.
1135         * src/config-dialog.c (config_dialog_box): Ditto.
1136         (config_dlg_set_labels): New.
1137         * src/gpgol-rsrcs.rc (IDD_OPT): Move to olflange-rsrcs.rc and rename
1138         to IDD_EXT_OPTIONS.
1139         (IDD_OPT_DE): Remove.
1140
1141 2007-10-10  Werner Koch  <wk@g10code.com>
1142
1143         * src/main.c (read_options): Remove saveDecryptedAttachment.  Add
1144         smimeDefault.
1145
1146 2007-10-08  Werner Koch  <wk@g10code.com>
1147
1148         * src/main.c (do_log): Remove trailing LF from w32 error message and
1149         also print the numeric error code.
1150
1151 2007-09-25  Werner Koch  <wk@g10code.com>
1152
1153         * src/Makefile.am (gpgol_LDADD): Link against libassuan.
1154
1155         * src/util.h (DIM, DIMof): New.
1156
1157         * src/engine.c (filter_gpgme_read_cb): Implement nonblock feature.
1158         (filter_gpgme_write_cb): Ditto.
1159
1160 2007-09-24  Werner Koch  <wk@g10code.com>
1161
1162         * src/common.c (standard_homedir, default_homedir): New.
1163         (w32_shgetfolderpath): Make static.
1164
1165 2007-09-21  Werner Koch  <wk@g10code.com>
1166
1167         * src/mimeparser.c (build_mimeinfo): New.
1168         (finish_message): Store the mime structure.
1169         * src/mapihelp.cpp (mapi_get_message_class): New.
1170         (mapi_get_sig_status): New.
1171         (get_gpgolprotectiv_tag, get_gpgolsigstatus_tag)
1172         (get_gpgolattachtype_tag): Factored code out to ...
1173         (create_gpgol_tag): .. New.
1174         (get_gpgolmimeinfo_tag): New.
1175         (mapi_get_mime_info): New.
1176
1177 2007-09-20  Werner Koch  <wk@g10code.com>
1178
1179         * src/user-events.cpp, user-events.h:  New.
1180         * src/olflange.h (class GpgolExt): Add member for it.
1181         * src/olflange.cpp (QueryInterface): Hook it in.
1182
1183 2007-09-19  Werner Koch  <wk@g10code.com>
1184
1185         * src/mapihelp.cpp (mapi_has_sig_status): Return true if any sig
1186         status is present.
1187         (mapi_test_sig_status): New. Take semantics of the former
1188         mapi_has_sig_status.  Changed all callers.
1189         (mapi_change_message_class): Set sign status to n/a for other
1190         message classed.
1191         * src/mimemaker.c (finalize_message): Mark created messages.
1192         (write_buffer_for_cb): Rename from write_buffer_voidarg and return
1193         number of bytes written.
1194         (collect_signature): Return number of bytes written.
1195
1196         * src/mapihelp.h (struct mapi_attach_item_s): New member
1197         PRIVATE_MAPITABLE.
1198         * src/mapihelp.cpp (mapi_create_attach_table)
1199         (mapi_release_attach_table): Keep the mapi table oben and put
1200         PR_ATATCH_NUM into the MAPIPOS member.
1201         (mapi_get_gpgol_body_attachment): Use PR_ATATCH_NUM.
1202
1203         * src/mimeparser.c (finish_message): New.
1204         (mime_decrypt, mime_verify): Call it.
1205
1206 2007-09-17  Werner Koch  <wk@g10code.com>
1207
1208         * src/olflange.cpp: Print gpgme version.
1209
1210 2007-09-14  Werner Koch  <wk@g10code.com>
1211
1212         * src/engine-gpgme.c: Rewrote most of it.
1213
1214 2007-09-13  Werner Koch  <wk@g10code.com>
1215
1216         * src/common.c (xrealloc): New.
1217
1218 2007-09-11  Werner Koch  <wk@g10code.com>
1219
1220         * src/engine-gpgme.c (op_encrypt_data): New.
1221
1222 2007-09-08  Werner Koch  <wk@g10code.com>
1223
1224         * src/engine.c: New.
1225         * src/engine.h: Rewrite.  Factor existing stuff out to ..
1226         * src/engine-gpgme.h: .. new.
1227         * src/engine-assuan.h, engine-assuan.c: New.
1228
1229 2007-09-07  Werner Koch  <wk@g10code.com>
1230
1231         * src/common.c (qp_decode): Handle softe line breaks.
1232
1233 2007-09-06  Werner Koch  <wk@g10code.com>
1234
1235         * src/mapihelp.cpp (mapi_get_body): New.
1236
1237         * src/mimeparser.c (protocol_t): Move to .. common.h.
1238
1239 2007-09-05  Werner Koch  <wk@g10code.com>
1240
1241         * src/mimemaker.c, mimemaker.h: New.
1242
1243 2007-08-31  Werner Koch  <wk@g10code.com>
1244
1245         * src/mapihelp.cpp (mapi_set_header): New.
1246         * src/message.cpp (pgp_mime_from_clearsigned): New.
1247         (message_verify): Use it.
1248         * src/main.c: Call srand ().
1249         * src/util.h (trailing_ws_p): New.
1250         * src/common.c (generate_boundary): New.
1251
1252 2007-08-30  Werner Koch  <wk@g10code.com>
1253
1254         * src/message-events.h (class GpgolMessageEvents): Rename M_IS_SMIME
1255         to M_PROCESSED.
1256         * src/message-events.cpp (OnRead, OnReadComplete): Ditto.
1257         (OnReadComplete): Remove preview decryption stuff.
1258         (OnWriteComplete): Remove GpgMsg based code.
1259         * src/ext-commands.cpp (DoCommand): Ditto
1260         (InstallCommands): Do not init the watcher.
1261         * src/olflange.cpp (GpgolExt): Do not init the watcher.
1262         (GpgolExt): Do not clanup the watcher.
1263         * src/main.c (DllMain): Ditto.
1264         * src/gpgmsg.cpp, gpgmsg.hh: Remove.
1265         * src/watcher.cpp: Remove
1266         * src/pgpmime.c, pgpmime.h: Remove.
1267
1268         * src/mapihelp.h (MSGTYPE_GPGOL_CLEAR_SIGNED)
1269         (MSGTYPE_GPGOL_PGP_MESSAGE): New.
1270         * src/mapihelp.cpp (mapi_get_message_type): Map them.
1271         (get_msgcls_from_pgp_lines): New.
1272         (mapi_change_message_class): Detect old old style PGP messages.
1273         (mapi_get_body_as_stream): New.
1274         * src/message.cpp (message_verify, message_decrypt): Handle them.
1275         * src/message-events.cpp (OnRead): Ditto.
1276
1277 2007-08-29  Werner Koch  <wk@g10code.com>
1278
1279         * src/ext-commands.h (class GpgolExtCommands): Add members
1280         M_NCMDKEYMANAGER and M_NCMDDECRYPT.
1281         * src/ext-commands.cpp (GpgolExtCommands): Initialize it.
1282         (InstallCommands): Use them here instead of reusing another variable.
1283         (DoCommand, Help, QueryHelpText, QueryButtonInfo): Restructured
1284         for better readibility.
1285
1286 2007-08-21  Werner Koch  <wk@g10code.com>
1287
1288         * src/w32-gettext.c (SUBLANG_BENGALI_BANGLADESH): Fix to 2 as per MSDN.
1289         (SUBLANG_PUNJABI_PAKISTAN): Remove as it is not in MSDN.
1290         (SUBLANG_ROMANIAN_MOLDOVA): Remove as it is not in MSDN.
1291         (SUBLANG_ROMANIAN_ROMANIA): Change to value 1 as per MSDN.
1292
1293 2007-08-13  Marcus Brinkmann  <marcus@g10code.de>
1294
1295         * src/Makefile.am (gpgol_SOURCES): Add common.h.
1296
1297 2007-08-06  Werner Koch  <wk@g10code.com>
1298
1299         Lots of changes to support S/MIME and to revamp most of the old
1300         code.  More changes to follow.  The list of changes below is not
1301         complete as it does not identfy all newly written code.
1302
1303         * src/mimeparser.c: New. Based on pgpmime.c
1304
1305         * src/display.cpp (update_display): Removed unused arg MSG.
1306         (update_display): Set the body to an empty string even if it is
1307         not HTML.
1308
1309         * src/olflange.cpp (Install): Print OL version only once.
1310
1311         * src/verify-dialog.c (verify_dialog_box): Add arg PROTOCOL.
1312         (load_sigbox): Ditto.
1313         (verify_dlg_proc): Changed title acccording to used protocol.
1314
1315         * src/Makefile.am (gpgol_LDADD): Add libadvapi due to our use of
1316         CryptGenRandom.
1317
1318         * src/main.c (get_crypt_random, initialize_session_key): New.
1319         (DllMain): Initialize the session key.
1320         (get_128bit_session_key, create_initialization_vector): New.
1321
1322         * src/serpent.c: New.  Taken from libgcrypt 1.3.0 and stripped down to
1323         fit our needs.  Add CFB encryption API.
1324         * src/serpent.h: New.
1325
1326         * src/mapihelp.cpp (mapi_mark_moss_attach): New.
1327         * src/mymapitags.h (PR_ATTACHMENT_HIDDEN): New.
1328
1329         * src/display.cpp (open_inspector): New.
1330
1331         * src/mapihelp.cpp (mapi_get_binary_prop): New.
1332
1333         * src/engine-gpgme.c (op_verify_detached_sig_gpgme): Add arg
1334         PROTOCOL.  Changed all callers to pass the OPENPGP protocol.
1335
1336         * src/common.c (b64_decode): Renamed from base64_decode and use new
1337         type for the context.
1338         (b64_init): New.
1339         * src/pgpmime.c (qp_decode, base64_decode): Move to common.c and make
1340         public.
1341
1342         * src/common.h (STRICT): Remove.
1343         * src/intern.h: Rename to common.h.
1344
1345 2007-07-20  Werner Koch  <wk@g10code.com>
1346
1347         * src/myexchext.h (IOutlookExtItemEvents.): New.
1348         * src/item-events.h, item-events.cpp: New.
1349         * src/olflange.cpp (GpgolExt, QueryInterface): Hook it in.
1350
1351 2007-07-19  Werner Koch  <wk@g10code.com>
1352
1353         * src/attached-file-events.cpp: Renamed from attach.c.
1354         * src/attached-file-events.h: Renamed from attach.h.  Removed some
1355         inlines to the impl file.
1356
1357         * src/Makefile.am (gpgol_LDADD): Add libole32.
1358
1359 2007-07-18  Werner Koch  <wk@g10code.com>
1360
1361         * src/mapihelp.c (log_mapi_property): Support STRIGN8 and UNICODE.
1362
1363         * src/myexchext.h (IExchExtUserEvents, IExchExtSessionEvents): New
1364         declarations.
1365         * src/session-events.cpp, session-events.h: New.
1366         * src/olflange.cpp (GpgolExt, QueryInterface): Hook session-events in.
1367
1368         * src/olflange.cpp (DllRegisterServer): Register only for interfaces
1369         we really use.
1370         (ext_context_name): New. Factored out from several places.
1371         (Install): Initialize for Session context.
1372
1373         Renamed all CGPGExchExt* src/classes to Gpgol*.
1374
1375         * src/olflange.h, olflange.cpp: Factor most code out to ..
1376         * src/ext-commands.cpp, ext-commands.h, message-events.cpp
1377         * src/message-events.h, property-sheets.cpp, property-sheets.h
1378         * src/ol-ext-callback.cpp, ol-ext-callback.h: .. New.
1379
1380 2007-07-17  Werner Koch  <wk@g10code.com>
1381
1382         * src/Makefile.am (gpgol_LDADD): Add ws2_32.
1383
1384         * src/main.c (log_window_hierarchy, do_log_window_hierarchy): New.
1385         * src/olflange.cpp (show_window_hierarchy): Replace by
1386         log_window_hierarchy.
1387         (g_initdll): Make static.
1388         (InstallCommands): Factor some code out to ..
1389         (toolbar_from_tbe, toolbar_add_menu): .. new.
1390
1391         * src/mapihelp.c, mapihelp.h: New.
1392         * src/olflange.cpp (show_mapi_property): Factor out to mapihelp.c
1393         and rename to log_mapi_property.
1394
1395 2007-04-10  Werner Koch  <wk@g10code.com>
1396
1397         * src/display.cpp (find_message_window): Add arg LEVEL for debugging.
1398         Ignore MsoCommand* src/Windows.  Fixes bug 735.
1399
1400 2006-10-14  Timo Schulz  <ts@g10code.de>
1401
1402         * src/recipient-dialog.c (lv_get_item_param): New.
1403         (copy_item): Use it here to copy the opaque param.
1404         (recipient_dlg_proc): And here to avoid the hidden column.
1405         (initialize_rsetbox): Localize column names.
1406
1407         * src/olflange.cpp (get_outlook_property): Free returned BSTR.
1408         (InstallCommands): Likewise.
1409
1410 2009-09-06  Timo Schulz  <ts@g10code.de>
1411
1412         * src/recipient-dialog.c (recipient_dialog2): Do not free
1413         key array here.
1414
1415 2008-11-14  Werner Koch  <wk@g10code.com>
1416
1417         Release 0.10.17.
1418
1419 2008-11-11  Werner Koch  <wk@g10code.com>
1420
1421         Release 0.10.16.
1422
1423 2008-10-27  Werner Koch  <wk@g10code.com>
1424
1425         * forms/gpgol-cs_de.cfg: New.
1426
1427 2008-08-21  Timo Schulz  <ts@g10code.de>
1428
1429         * src/engine-gpgme.c (op_lookup_keys): Only add useable keys
1430         and add all invalid keys to unknown.
1431         * src/recipient-dialog.c (copy_item): Rewritten.
1432         (initialize_keybox): Add comment to clarify use of fnd_keys.
1433         (recipient_dialog_box): Simplified.
1434         (find_item): Support partial search.
1435
1436 2008-08-06  Werner Koch  <wk@g10code.com>
1437
1438         Release 0.10.15.
1439
1440         * forms/sign-l.ico, forms/sign-s.ico: New.
1441         * forms/encr-l.ico, forms/encr-s.ico: New
1442
1443 2008-08-04  Werner Koch  <wk@g10code.com>
1444
1445         * Makefile.am (SUBDIRS): Add forms.
1446         * forms/Makefile.am: New.
1447         * forms/gpgol_de.cfg, forms/gpgol-ms_de.cfg: New.
1448
1449 2008-06-04  Werner Koch  <wk@g10code.com>
1450
1451         * doc/gpgol.texi (Assuan Protocol): Remove protocol specs.  They
1452         are now part of the GPGME manual.
1453
1454 2008-05-28  Werner Koch  <wk@g10code.com>
1455
1456         * Release 0.10.14.
1457
1458 2008-05-06  Werner Koch  <wk@g10code.com>
1459
1460         * Release 0.10.13.
1461
1462 2008-04-16  Werner Koch  <wk@g10code.com>
1463
1464         * Release 0.10.12.
1465
1466 2008-04-04  Werner Koch  <wk@g10code.com>
1467
1468         * Release 0.10.11.
1469
1470 2008-04-02  Werner Koch  <wk@g10code.com>
1471
1472         * Release 0.10.10.
1473
1474 2008-04-01  Werner Koch  <wk@g10code.com>
1475
1476         * configure.ac (AC_INIT): Fix quoting.
1477
1478 2008-03-19  Werner Koch  <wk@g10code.com>
1479
1480         * Release 0.10.9.
1481
1482 2008-03-18  Werner Koch  <wk@g10code.com>
1483
1484         * Release 0.10.8.
1485
1486 2008-03-11  Werner Koch  <wk@g10code.com>
1487
1488         * Release 0.10.7.
1489
1490 2008-03-10  Werner Koch  <wk@g10code.com>
1491
1492         * Release 0.10.6.
1493
1494 2008-03-07  Werner Koch  <wk@g10code.com>
1495
1496         * configure.ac (SVN_REVISION): New AC_DEFINE.
1497
1498 2008-03-06  Werner Koch  <wk@g10code.com>
1499
1500         * doc/gpgol.texi (SIGN): Extend the SIGNER command to allow
1501         suggestion of a protocol.
1502
1503 2008-02-18  Werner Koch  <wk@g10code.com>
1504
1505         Release 0.10.5 development version.
1506
1507 2008-02-15  Werner Koch  <wk@g10code.com>
1508
1509         * po/de.po: Describe more explicit on how to start the UI-server.
1510
1511 2008-02-06  Werner Koch  <wk@g10code.com>
1512
1513         Released 0.10.4 development version.
1514
1515 2006-12-13  Werner Koch  <wk@g10code.com>
1516
1517         * po/LINGUAS: Added sv.
1518
1519 2007-12-10  Werner Koch  <wk@g10code.com>
1520
1521         Released 0.10.3 development version.
1522
1523 2007-11-12  Werner Koch  <wk@g10code.com>
1524
1525         Released 0.10.2 development version.
1526
1527 2007-10-22  Werner Koch  <wk@g10code.com>
1528
1529         Released 0.10.1 development version.
1530
1531 2007-10-12  Werner Koch  <wk@g10code.com>
1532
1533         * po/POTFILES.in: Add more files.
1534
1535 2007-10-11  Werner Koch  <wk@g10code.com>
1536
1537         Released 0.10.0 development version.
1538
1539 2007-10-05  Werner Koch  <wk@g10code.com>
1540
1541         * doc/: New.
1542         * doc/Makefile.am: New.
1543         * doc/gpgol.texi: New.
1544         * doc/gpl.texi: New.
1545
1546 2007-09-25  Werner Koch  <wk@g10code.com>
1547
1548         * configure.ac: Check for libassuan.
1549
1550 2007-09-17  Werner Koch  <wk@g10code.com>
1551
1552         * autogen.sh (FORCE): Add --force option.
1553
1554 2007-08-13  Marcus Brinkmann  <marcus@g10code.de>
1555
1556         * configure.ac (svn_revision): Update to latest version from gnupg.
1557
1558 2006-12-13  Daniel Nylander <po@danielnylander.se>  (wk)
1559
1560         * po/sv.po: New.
1561
1562 2006-10-13  Werner Koch  <wk@g10code.com>
1563
1564         Released 0.9.91.
1565
1566 2006-08-28  Werner Koch  <wk@g10code.com>
1567
1568         Released 0.9.90.
1569
1570 2006-08-19  Timo Schulz  <ts@g10code.de>
1571
1572         * src/olflange-rsrcs.rc: Correct some dialog sizes.
1573         * src/passphrase-dialog.c (decrypt_key_dlg_proc): Automatically
1574         select the secret key if only one is available.
1575         * src/config-dialog.c (GPGOptionsDlgProc): Passphrase cache
1576         time is now requested in minutes but still internally
1577         stored as seconds.
1578
1579 2006-08-15  Timo Schulz  <ts@g10code.de>
1580
1581         * src/decrypt.bmp, encrypt.bmp: Restore format.
1582         * src/olflange.cpp (OnWriteComplete): Correct exit code handling.
1583         * src/recipient-dialog.c (initialize_rsetbox): Correct column width.
1584         (recipient_dlg_proc): Do not show the cancel error any longer.
1585         * src/passphrase-dialog.c (decrypt_key_dlg_proc): Likewise.
1586         (decrypt_key_ext_dlg_proc): Ditto.
1587         * src/olgpgcore.def: Deleted unused file.
1588
1589 2006-06-14  Timo Schulz  <ts@g10code.com>
1590
1591         * src/gpgol-rscs.rc (IDD_OPT): The English version of the dialog
1592         has no log file item. Add it.
1593
1594 2006-05-22  Timo Schulz  <ts@g10code.com>
1595
1596         * src/verify-dialog.c (load_sigbox): A sigsum of 0 also indicates
1597         a valid (good) signature.
1598
1599 2006-04-25  Werner Koch  <wk@g10code.com>
1600
1601         Released 0.9.10.
1602
1603         * src/xmalloc.h: New.  Moved prototypes from util.h
1604         * src/w32-gettext.h:  Include it.
1605         * src/common.c (utf8_to_wincp): Removed and replaced all callers by
1606         utf8_to_native.
1607         * src/common.c (wchar_to_utf8, utf8_to_wchar): Moved to ..
1608         * src/w32-gettext.c: .. here.
1609         (utf8_to_native): Make sure that we always return
1610         a string and never NULL.
1611         (native_to_utf8): New.
1612         (native_to_wchar): New.
1613         * src/gpgmsg.cpp (decrypt): Use native_to_utf8 for i18n strings
1614         expected to be utf-8.
1615         * src/pgpmime.c (pgpmime_decrypt, pgpmime_verify): Ditto.
1616
1617 2006-04-24  Werner Koch  <wk@g10code.com>
1618
1619         Released 0.9.9.
1620
1621         * configure.ac: Use M4 macros to get the actual SVN revision.
1622
1623         * src/gpgmsg.cpp (decrypt): New arg INFO_ONLY.
1624         * src/olflange.cpp (OnReadComplete): Add code to call decrypt but with
1625         INFO_ONLY if preview decryption has not been requested.
1626         * src/main.c (read_options): New compatibility option no_preview_info.
1627
1628         * src/gpgmsg.cpp (getRecipients): Don't add the default key here.
1629         (encrypt_and_sign): But do it here.
1630         * src/engine-gpgme.c (op_get_one_key): New.
1631
1632 2006-04-22  Timo Schulz  <ts@g10code.com>
1633
1634         * src/common.c (utf8_to_wincp): Corrected utf8 decoding.
1635         * src/passphrase-dialog.c (load_recipbox): Likewise.
1636         * src/olflange-dlg.cpp (GPGOptionsDlgProc): Activate the
1637         'confirm' button when the dialog state has been changed.
1638         * src/olflange-rsrcs.rc (IDD_GPG_OPTIONS_DE): Change description.
1639
1640 2006-03-28  Werner Koch  <wk@g10code.com>
1641
1642         * src/olflange-rsrcs.rc (IDD_GPG_OPTIONS_DE): Add new control box.
1643         (IDD_GPG_OPTIONS): Updated to match German version.
1644         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Ditto.
1645         * src/gpgmsg.cpp (decrypt): Implemented PREFER_HTML option.
1646         (get_long_attach_data): New.
1647
1648 2006-03-27  Werner Koch  <wk@g10code.com>
1649
1650         * src/engine-gpgme.c (op_verify_detached_sig_gpgme): New.
1651
1652         * src/pgpmime.c (pgpmime_verify): New. First take on a PGP/MIME
1653         signature verification.
1654
1655         * src/gpgmsg.cpp (is_pgpmime): Renamed to is_pgpmime_enc.
1656         (class GpgMsgImpl): Niew members media_type. media_subtype and
1657         ct_protocol.
1658         (get_msg_content_type): New.
1659         (decrypt): Show a warning for PGP/MIME signed messages.
1660
1661 2006-03-26  Werner Koch  <wk@g10code.com>
1662
1663         * src/intern.h: New option PREFER_HTML.
1664         * src/main.c (write_options, read_options): Ditto.
1665
1666 2006-03-21  Werner Koch  <wk@g10code.com>
1667
1668         Released 0.9.7.
1669
1670 2006-03-20  Werner Koch <wk@g10code.com>
1671
1672         * src/olflange.cpp (Install): Also check major part of build version.
1673
1674 2006-03-17  Timo Schulz  <ts@g10code.com>
1675
1676         * src/w32-gettext.c (utf8_to_native): Make it global.
1677         * src/config-dialog.c (get_open_file_name): Make sure the selected
1678         file really exists.
1679         * src/passphrase-dialog.c (decrypt_dlg_proc): UTF8 conversion.
1680         (passphrase_callback_box): Likewise.
1681         * src/recipient-dialog.c (recipient_dlg_proc): Likewise.
1682         * src/verify-dialog.c (load_akalist): Likewise.
1683         (load_sigbox): Likewise.
1684         * src/common.c (utf8_to_wincp): New.
1685
1686 2006-03-15  Werner Koch  <wk@g10code.com>
1687
1688         * src/olflange.cpp (Install): Print gpgol version for debugging.
1689
1690 2006-03-14  Timo Schulz  <ts@g10code.com>
1691
1692         * src/passphrase-dialog.c (decrypt_dlg_proc): When used
1693         as a signing key selection dialog, use a different title.
1694         * src/gpgol-rsrcs.rc: Use German titles for German dialog versions.
1695
1696 2006-02-23  Werner Koch  <wk@g10code.com>
1697
1698         * src/main.c (read_options): Set default caching time to 10 minutes.
1699
1700 2006-01-26  Werner Koch  <wk@g10code.com>
1701
1702         Released 0.9.6.
1703
1704 2006-01-16  Werner Koch  <wk@g10code.com>
1705
1706         * src/verify-dialog.c (load_sigbox): Give a hint in case of a bad
1707         signature.
1708
1709         * src/gpgol-rsrcs.rc (IDD_ENC_DE): Add an informational header.
1710
1711 2005-12-07  Werner Koch  <wk@g10code.com>
1712
1713         Released 0.9.5.
1714
1715 2005-12-07  Werner Koch  <wk@g10code.com>
1716
1717         * src/olflange.cpp (Install): Check the version and print a warning.
1718
1719         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Simplified the default
1720         key code.
1721
1722         * src/config-dialog.c (store_config_value): Create key if it does not
1723         exists.
1724         (load_config_value_ext): Removed.
1725
1726 2005-12-06  Werner Koch  <wk@g10code.com>
1727
1728         Released 0.9.4.
1729
1730 2005-12-06  Werner Koch  <wk@g10code.com>
1731
1732         * src/config-dialog.c (start_key_manager): Don't pass the options to
1733         access.
1734
1735 2005-12-06  Werner Koch  <wk@g10code.com>
1736
1737         * src/gpgmsg.cpp (getRecipients): Add the default key to the list of
1738         recipients.
1739         * src/recipient-dialog.c (recipient_dlg_proc): Add the already found
1740         keys to the selected ones.
1741
1742         * src/olflange.cpp (OnWriteComplete): Need to disable the deleting of
1743         HTML bodys.
1744
1745 2005-12-05  Werner Koch  <wk@g10code.com>
1746
1747         * src/Makefile.am (gpgol_LDADD): Add -loleaut32.
1748         * src/engine-gpgme.c (op_verify_detached_sig_mem): New.
1749         * src/olflange.cpp (OnWriteComplete): Pass HTML flag to sign call.
1750         (put_outlook_property): Need to use a BSTR for the sake of putting
1751         HTMLBody.
1752         * src/gpgmsg.cpp (sign): Add arg WANT_HTML.
1753         (free_attach_info): New.  Use it in the destructor.
1754         (createHtmlAttachment): New.
1755         (encrypt_and_sign, sign): Use it here.
1756         (writeAttestation): Don't write an empty attestation.
1757
1758 2005-12-02  Werner Koch  <wk@g10code.com>
1759
1760         * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New.
1761
1762         * src/verify-dialog.c (verify_dialog_box): Actually allow for German
1763         dialog.
1764         * src/recipient-dialog.c (recipient_dialog_box)
1765         (recipient_dialog_box2): Ditto.
1766         * src/passphrase-dialog.c (signer_dialog_box)
1767         (passphrase_callback_box): Ditto.
1768
1769         * src/intern.h (struct): New field PREVIEW_DECRYPT.  Use it instead os
1770         the old compatibility flags.
1771         * src/main.c (write_options, read_options): Store/load preview decrypt.
1772         * src/config-dialog.c (config_dlg_proc): Removed homedir and gpgbinary
1773         options as they are deprecated. Put logfile entry here.
1774         * src/olflange-dlgs.cpp (GPGOptionsDlgProc): Remove logfile entry. Add
1775         preview-decrypt checkbox.
1776         * src/olflange.cpp (InstallCommands): Remove experimental preview
1777         command.
1778
1779         * src/w32-gettext.c (gettext_localename): New.
1780         * src/config-dialog.c (config_dialog_box): Use it here to match the
1781         gettext behaviour.
1782         (GetPages): Ditto.
1783
1784 2005-12-01  Werner Koch  <wk@g10code.com>
1785
1786         * src/engine-gpgme.c (op_decrypt_stream_to_gpgme, decrypt_stream)
1787         (op_decrypt): Add arg PREVIEW_MODE.
1788         * src/pgpmime.c (pgpmime_decrypt): New arg PREVIEW_MODE.
1789         (struct pgpmime_context): New field PREVIEW.
1790         (message_cb, plaintext_handler): Handle preview mode.
1791         * src/gpgmsg.cpp (class GpgMsgImpl): Renamed SILENT to PREVIEW.
1792         (setSilent): Renamed to ..
1793         (setPreview): .. this.
1794         (decrypt): Handle preview mode.  Display a string while decrypting
1795         PGP/MIME messages.
1796
1797         * src/display.cpp (update_display): New arg TEXT.
1798         * src/gpgmsg.cpp (class GpgMsgImpl): Removed BODY_PLAIN and BODY.
1799         (getDisplayText): Removed.
1800         (loadBody): Changes to return the allocated body.
1801         (getOrigText): Removed.
1802         (getMessageType): Rewritten to take the body text as argument.
1803         (decrypt): Pass plaintext directly to update_display.  Free
1804         plaintext.
1805         (sign, encrypt_and_sign): Likewise.
1806
1807         * src/olflange.cpp (OnWriteComplete): Always delete PR_BODY on error.
1808
1809 2005-11-30  Werner Koch  <wk@g10code.com>
1810
1811         * po/de.po: New.
1812
1813         * po/: New; created by autopoint.
1814         * po/Makevars: New.
1815         * m4/Makefile.am: Add new m4 files.
1816         * autogen.sh: Detect gettext.
1817         * configure.ac: Check for gettext.
1818
1819         * src/gpgmsg.cpp: Made more strings translatable.
1820         * src/olflange.cpp: Replaced all LoadStrings by gettext calls.
1821         * src/olflange-ids.h: Removed the IDS_ constants.
1822         * src/olflange-rsrcs.rc: Removed the stringtables.
1823
1824         * src/common.c (get_root_key, read_w32_registry_string): New.  Taken
1825         for libgpg-error.
1826         * src/main.c (i18n_init): New.
1827         (DllMain): Call it.
1828         (get_locale_dir, drop_locale_dir): New.
1829
1830         * src/w32-gettext.c, w32-gettext.h: New.  Taken form libgpg-error.
1831         Slightly modified due to the fact that gpgol is W32-only.
1832         * src/util.h (_, N_): Define standard i18n macros.
1833
1834         * src/display.cpp (set_message_body): Do not delete a RTF property.
1835
1836         * src/util.h (SRCNAME): New.  Changed all __FILE__ to this.
1837         * src/main.c (log_srcname): New.
1838
1839 2005-11-20  Werner Koch  <wk@g10code.com>
1840
1841         * src/gpgmsg.cpp (loadBody): For HTML try to read the HTMLBody from
1842         the OOM as a last resort.
1843         * src/olflange.cpp (get_outlook_property): New.
1844         (put_outlook_property_int): New.
1845
1846 2005-11-15  Werner Koch  <wk@g10code.com>
1847
1848         * configure.ac (BUILD_TIMESTAMP): Include SVN revision.
1849         (AM_INIT_AUTOMAKE): Fixed invocation.
1850
1851         * src/Makefile.am (gpgol_LDADD): Remove -lintl for now.
1852
1853         * src/olflange.cpp (OnWriteComplete): Make sure that we don't sent out
1854         unencrypted stuff on error.
1855         * src/display.cpp (set_message_body): Add arg IS_HTML.
1856         (update_display): Ditto.
1857
1858         * src/gpgmsg.cpp (loadBody): New arg WANT_HTML.
1859         (getOrigText): Ditto.
1860
1861         * src/olflange.h (class CGPGExchExtMessageEvents): Add M_WANT_HTML.
1862         * src/olflange.cpp (OnWrite): Set it.
1863         (OnWriteComplete): Pass its value to the encrypt functions.
1864
1865 2005-11-10  Werner Koch  <wk@g10code.com>
1866
1867         * configure.ac: Use MS style bitfields.
1868
1869         * src/config-dialog.c (start_key_manager): Changed invocation of
1870         default keymanager.
1871
1872 2005-10-21  Marcus Brinkmann  <marcus@g10code.de>
1873
1874         * m4/gpg-error.m4: New file.
1875         * configure.ac: Also check for gpg-error.
1876
1877         * src/Makefile.am (libgpgme.a, libgpgme.a): New targets.
1878         (gpgol_DEPENDENCIES): Add libgpgme.a and libgpg-error.a.
1879         (clean-local): Likewise.
1880         (gpgol_LDADD): Link to these local versions statically.
1881
1882 2005-10-20  Marcus Brinkmann  <marcus@g10code.de>
1883
1884         * src/mapi32.def: New file.
1885         * src/Makefile.am (gpgol_DEPENDENCIES): New variable.
1886         (libmapi32.a): New target.
1887         (gpgol_LDADD): Replace mapi32.dll with "-L . -lmapi32".
1888         (clean-local): New target.
1889
1890 2005-10-19  Werner Koch  <wk@g10code.com>
1891
1892         * src/gpgmsg.cpp (sign, encrypt_and_sign): Don't set the body first to
1893         empty. If this is really required we should do this in
1894         set_message_body.
1895         (sign): Save changes. Set content type to text/plain.
1896         (encrypt_and_sign): Save changes also for empty bodies.
1897
1898 2005-10-06  Marcus Brinkmann  <marcus@g10code.de>
1899
1900         * configure.ac: Change AC_CONFIG_SRCDIR argument to src/gpgol.def.
1901
1902 2005-10-06  Werner Koch  <wk@g10code.com>
1903
1904         * src/gpgmsg.cpp (writeAttestation): Use gpgme_free for BUFFER.
1905         * src/engine-gpgme.c (data_to_file): Ditto.
1906
1907 2005-10-06  Marcus Brinkmann  <marcus@g10code.de>
1908
1909         * src/Makefile.am (gpgol_DEPENDENCIES): New variable.
1910         (libmapi32.a): New target.
1911         (gpgol_LDADD): Replace mapi32.dll with "-L . -lmapi32".
1912
1913         * src/Makefile.am (gpgol_LDADD): Prefix gpgol.def and mapi32.dll with
1914         $(srcdir).
1915
1916         * src/Makefile.am (.rc.o): Invoke windres with "-I .".
1917
1918         * src/Makefile.am (.rc.o): Invoke windres with -I $(srcdir).
1919
1920         * src/Makefile.am (gpgol_SOURCES): Add util.h.
1921
1922 2005-09-29  Werner Koch  <wk@g10code.com>
1923
1924         Released 0.9.3.
1925
1926 2005-09-29  Werner Koch  <wk@g10code.com>
1927
1928         * src/gpgmsg.cpp (encrypt_and_sign): Pass signing key to encryption
1929         function.
1930
1931         * src/passphrase-dialog.c (signer_dialog_box): New arg encrypting.
1932
1933         * src/gpgmsg.cpp (encrypt_and_sign): Set content type.
1934
1935         * src/engine-gpgme.c (op_lookup_keys): Fixed multiple key detection.
1936
1937 2005-09-28  Werner Koch  <wk@g10code.com>
1938
1939         * src/olflange.cpp (DoCommand): Catch close command and resend to
1940         avoid the "save changes?".
1941
1942         * src/display.cpp (update_display): Take care of utf-8 issues.
1943         * src/common.c (latin1_to_utf8): New.
1944         * src/pgpmime.c (latin1_data_write): New.
1945         (plaintext_handler): Use it here.
1946         (message_cb): Detect utf-8 encoding.
1947
1948         * src/main.c (read_options): Make sure that compat flags are always
1949         properly initialized.
1950
1951         * src/display.cpp (find_message_window): First try to find the window
1952         by class name.
1953
1954         * src/common.c (wchar_to_utf8_2): New.
1955
1956 2005-09-27  Werner Koch  <wk@g10code.com>
1957
1958         * src/pgpmime.c (pgpmime_decrypt): Pass a pseduo filename to the
1959         decryption function.
1960
1961         * src/verify-dialog.c (load_sigbox): Get key direct from gpgme.
1962         * src/passphrase-dialog.c (load_secbox, load_recipbox): Reworked.
1963         (decrypt_key_dlg_proc, decrypt_key_ext_dlg_proc): Reworked.
1964         (count_keys, release_keyarray): New.
1965         (signer_dialog_box, passphrase_callback_box): Adjusted to above
1966         changes.
1967         * src/engine-gpgme.c (op_deinit): Remove keycache cleanup.
1968         * src/Makefile.am (gpgol_SOURCES): Removed keycache.c, keycache.h.
1969         * src/keycache.c, keycache.h: Removed.
1970
1971         * src/recipient-dialog.c (recipient_dialog_box)
1972         (recipient_dialog_box2): Rewritten and changed interface.
1973         (load_rsetbox): Removed keycache stuff and rewrote to make use of
1974         the keyarray.
1975         (copy_item, initialize_keybox, recipient_dlg_proc): Ditto.
1976         (keycache_to_key_array): Removed.
1977         * src/engine-gpgme.c (op_lookup_keys): Rewritten, changed interface.
1978         * src/gpgmsg.cpp (count_recipients): Renamed to ..
1979         (count_strings): .. this.
1980         (count_keys): New.
1981         (free_recipient_array): Renamed to ..
1982         (free_string_array): .. this.
1983         (encrypt_and_sign): Adjusted for changes in op_lookup_keys and
1984         recipient_dialog_box2.
1985
1986 2005-09-26  Werner Koch  <wk@g10code.com>
1987
1988         * src/passphrase-dialog.c (get_pubkey_algo_str): Add DSA and old
1989         Elgamal.
1990
1991         * src/gpgmsg.cpp (gatherAttachmentInfo): Ignore attachments we can't
1992         open.
1993
1994         * src/main.c (write_options): Print message on error.  Rearranged to
1995         make use of a table for all options.
1996
1997 2005-09-23  Werner Koch  <wk@g10code.com>
1998
1999         * src/recipient-dialog.c (recipient_dlg_proc): Removed
2000         IDC_ENC_OPTARMOR stuff; it was not used.
2001         (load_rsetbox): Fixed detection of encryption capability.
2002
2003         * src/gpgol-ids.h, gpgol-rsrcs.rc: Ditto.
2004
2005 2005-09-22  Werner Koch  <wk@g10code.com>
2006
2007         Released 0.9.2.
2008
2009 2005-09-22  Werner Koch  <wk@g10code.com>
2010
2011         * src/engine-gpgme.c (decrypt_stream): Use gpgme_op_decrypt_verify.
2012
2013         * src/gpgmsg.cpp (gatherAttachmentInfo): Ignore attestations when
2014         checking for pgp/mime.
2015
2016         * src/pgpmime.c (pgpmime_decrypt): Added arg HWND.
2017         (message_cb, plaintext_handler): Write attachments.
2018         * src/pgpmime.c (base64_decode): New.
2019         * src/rfc822parse.c (parse_field): Treat Content-Disposition special.
2020
2021         * src/gpgmsg.cpp (get_save_filename): Moved to ..
2022         * src/common.c (get_save_filename): .. here.
2023
2024 2005-09-20  Timo Schulz  <ts@g10code.com>
2025
2026         * src/attach.c: New.
2027         * src/attach.h: New.
2028         * src/olflange.cpp (CGPGExchExt): Allocate class for
2029         attached file events.
2030         (QueryInterface): Return interface pointer for
2031         attached file events.
2032         * src/passphrase-dialog.c (load_secbox): Use new GPGME
2033         interface.
2034         (get_pubkey_algo_str): New.
2035         * src/verify-dialog.c (load_sigbox): Likewise.
2036         * src/recipient-dialog.c (load_recipbox): Likewise.
2037
2038 2005-09-19  Werner Koch  <wk@g10code.com>
2039
2040         Released 0.9.1.
2041
2042 2005-09-19  Werner Koch  <wk@g10code.com>
2043
2044         * src/msgcache.c (flush_if_needed): New.
2045         (msgcache_put): use it.
2046         * src/intern.h (opt): New compatibility flags AUTO_DECRYPT and
2047         NO_ATTESTATION.
2048         * src/olflange.cpp (InstallCommands): Use watcher stuff only when this
2049         option has been enabled.
2050         * src/gpgmsg.cpp (decrypt): Take care of NO_ATTESTATION.
2051         * src/main.c (DllMain): Removed debug output; this should not be
2052         used before initialization!
2053         * src/watcher.cpp: Include config.h.  Removed weird line endings.
2054         * src/gpgmsg.cpp (encrypt_and_sign): Call SaveChanges.
2055
2056 2005-09-15  Timo Schulz  <ts@g10code.com>
2057
2058         * src/util.h: Provider watcher prototypes.
2059         * src/watcher.cpp (watcher_init_hook): New.
2060         (watcher_free_hook): New.
2061         (watcher_set_callback_ctx): New.
2062         (cbt_proc): New.
2063         * src/display.cpp (find_message_window): Removed GpgMsg param.
2064         Changed all callers.
2065
2066 2005-09-15  Werner Koch  <wk@g10code.com>
2067
2068         * src/olflange.cpp (OnWriteComplete): Take care of EEME_FAILED.
2069         (OnWrite): Check that we are encrypting only plain text messages.
2070
2071         * src/myexchext.h: Add flags used by OnReadComplete.
2072
2073 2005-09-14  Werner Koch  <wk@g10code.com>
2074
2075         * src/gpgmsg.cpp (writeAttestation): Add a content type.
2076         (gatherAttachmentInfo): Detect whether we already have an attestation.
2077         (decrypt): Don't create duplicate attestations.
2078         (writeAttestation): Translate LF to CRLF.
2079
2080 2005-09-13  Werner Koch  <wk@g10code.com>
2081
2082         * src/pgpmime.c (pgpmime_decrypt): New arg ATTESTATION.
2083         * src/engine-gpgme.c (add_verify_attestation): New.
2084         (op_decrypt, op_verify_detached_sig, op_verify_detached_sig)
2085         (op_verify_detached_sig): Add new arg ATTESTATION.  Changed all
2086         callers.
2087         (at_sig_summary, at_sig_validity, add_verify_attestation): New.
2088         The code has been taken and modified from Mutt's crypt-gpgme.c and
2089         entirely been writen by g10 Code.
2090         (at_fingerprint): Ditto.
2091
2092         * src/gpgmsg.cpp (class GpgMsgImpl): New member ATTESTATION.  Use it
2093         in all calls to the functions above.
2094
2095         * src/gpgmsg.cpp (decryptAttachment, decrypt): Save plaintext back
2096         into the MAPI if desired.
2097
2098 2004-09-08  Timo Schulz  <ts@g10code.com>
2099
2100         * src/passphrase-dialog.c (lod_recipbox): Use gpgme directly
2101         to resolve the keyids to userids.
2102         * src/usermap.c, usermap.h: Removed.
2103         * src/HashTable.cpp, HashTable.h: Removed.
2104
2105 2005-09-07  Timo Schulz  <ts@g10code.com>
2106
2107         * src/common.c: Removed unused code.
2108         * src/intern.h: Likewise.
2109
2110 2005-09-07  Timo Schulz  <ts@g10code.com>
2111
2112         * src/olflange.cpp (ul_release): New. Wrapper with error checking
2113         around UlRelease.
2114         (InstallCommands): Separate test for type and if string is empty.
2115
2116 2005-09-06  Werner Koch  <wk@g10code.com>
2117
2118         * src/engine-gpgme.c (op_decrypt_stream): Factored most code out to ..
2119         (decrypt_stream): .. new.
2120         (op_decrypt_stream_to_buffer): Simplified accordingly.  Fixed
2121         possible buffer overflow when trying to make it a string.
2122         (op_decrypt_stream_to_gpgme): New.
2123
2124         * src/pgpmime.c, pgpmime.h: New.
2125         * src/rfc822parse.h, rfc822parse.c: New.  Taken from GnuPG 1.9.
2126
2127 2005-09-06  Timo Schulz  <ts@g10code.com>
2128
2129         * src/config-dialog.c (get_open_file_name): Correctly terminated filter.
2130         New parameter for the title. Changed all callers.
2131         (get_folder): Likewise.
2132
2133 2005-09-04  Werner Koch  <wk@g10code.com>
2134
2135         Released 0.9.0.
2136
2137 2005-09-01  Werner Koch  <wk@g10code.com>
2138
2139         * src/gpgmsg.cpp (get_pgp_armor_type): New.
2140         (gatherAttachmentInfo):  Enhanced to detect text/plain pgp.
2141         (verify): Removed.
2142         (decrypt): Do clearsig verification here.
2143
2144         * src/gpgmsg.cpp (decrypt): Kludge to workaround OL not updating a
2145         window.
2146         * src/msgcache.c (msgcache_get_from_mapi): New.
2147         * src/display.cpp (find_message_window): Don't use the GpgMsg function
2148         to to the string compare.
2149         * src/gpgmsg.cpp (matchesString): Removed.
2150
2151         * src/msgcache.c (msgcache_set_active): Removed.
2152         (msgcache_get): Rewritten.
2153         (msgcache_put): Now uses PR_CONVERSATION_INDEX as key.  Update
2154         existing entries.
2155
2156         * src/olflange.cpp (OnRead): Removed msgcache_set_active.
2157         (InstallCommands): Now uses the ConversationIndex to match the
2158         reply with the message.
2159
2160 2005-08-31  Werner Koch  <wk@g10code.com>
2161
2162         * src/olflange.cpp (DllRegisterServer): Define a CLSID and set the
2163         ThreadingModel.
2164
2165 2005-08-30  Werner Koch  <wk@g10code.com>
2166
2167         Renamed project from "outlgpg" to "gpgol".
2168
2169         More or less finished this major rewrite.
2170
2171 2005-08-26  Werner Koch  <wk@g10code.com>
2172
2173         * src/MapiGPGME.cpp, MapiGPGME.h: Removed.
2174         * src/display.cpp, display.h: New.
2175
2176 2005-08-23  Werner Koch  <wk@g10code.com>
2177
2178         * src/msgcache.c, msgcache.h: New.
2179
2180 2005-08-22  Werner Koch  <wk@g10code.com>
2181
2182         * src/olflange.cpp: Major cleanups and partly rewrites.
2183
2184 2005-08-18  Werner Koch  <wk@g10code.com>
2185
2186         * src/gpgmsg.cpp, gpgmsg.hh: New.
2187
2188 2005-08-17  Werner Koch  <wk@g10code.com>
2189
2190         * src/MapiGPGME.cpp (setMessageAccess): Removed as it was only used at
2191         one place.
2192         (setRTFBody): Use the above code here directly..
2193         (setWindow, setMessage): Removed.  We can't use that because there
2194         is only one instance of this class.
2195         (decrypt): Add args HWND and MSG.  Changed caller.
2196         (getBody): Changed to ..
2197         (get_body): .. plain function and add new arg MSG.  Changed all
2198         callers.
2199         (isHtmlMessage): Likewise changed to ..
2200         (is_html_message): .. plain function and add new arg MSG.
2201         (doCmd): Removed.
2202
2203         * src/common.c (utf8_to_wchar): New.
2204
2205         * src/MapiGPGME.cpp (passphraseCallback): Removed.
2206         (getPassphrase, clearPassphrase, storePassphrase): Removed.
2207         (add_html_line_endings): Rewritten.
2208
2209         * src/engine-gpgme.c (op_sign_encrypt_start): Removed because it is
2210         not used anywhere.
2211         (op_sign): Renamed to ..
2212         (do_sign): .. this and made local.
2213
2214 2005-08-16  Werner Koch  <wk@g10code.com>
2215
2216         * src/MapiGPGME.cpp (signAttachment): Simplified.
2217         * src/engine-gpgme.c (op_sign_file): Add arg TTL.
2218         (op_sign_file_ext): Removed.
2219         (op_sign_file_next): Renamed to ..
2220         (do_sign_file): .. this and made local.
2221         (do_sign_file): Updated to use new passphrase callback
2222         semantics.
2223         (op_decrypt_file): Ditto.
2224         (free_recipients): Need to use gpgme_key_release and not just
2225         free.
2226
2227         * src/engine-gpgme.c (do_decrypt): Factored some code out to ..
2228         (update_passphrase_cache): .. new.
2229         (op_sign_encrypt_file): Updated to use new passphrase callback
2230         semantics.
2231
2232         * src/MapiGPGME.cpp (getBody): Properly distinguish property types.
2233         (delete_buf): Removed macro.  We now use malloc for the body
2234         string.  Changed other places to use delete directly for clarity.
2235         (fail_if_null): Removed.  Replaced by direct tests and a call to
2236         out_of_core.
2237         (setDefaultKey): Now use malloc/free instead of new/delete.
2238         Changed at other places too.
2239         (getDefaultKey): Changed to return a const char *.
2240
2241         * src/common.c (wchar_to_utf8): New.
2242         (out_of_core): Made global and call abort after displaying the
2243         message box.
2244
2245 2005-08-14  Werner Koch  <wk@g10code.com>
2246
2247         * configure.ac: Build src/versioninfo.rc.
2248
2249 2005-08-14  Werner Koch  <wk@g10code.com>
2250
2251         * src/MapiGPGME.cpp (log_debug_w32): New.
2252         (do_log): New arg W32ERR.  Make sure to print a trailing LF.
2253
2254         * src/passphrase-dialog.c (passphrase_callback_box): Revamped.
2255         (free_decrypt_key): Wipe out a passphrase.  Remove superfluous
2256         variable clearing.
2257         * src/util.h (wipememory2, wipememory): New.
2258         (wipestring): New.
2259         * src/engine-gpgme.c (op_decrypt): Renamed to ..
2260         (do_decrypt): .. this and made local.
2261         (clear_error_if_cancel): Removed as we inlined the code.
2262         (do_decrypt): Cleaned up.
2263         * src/main.c (DllMain): Initialize passcaching subsystem.
2264         * src/passcache.c, passcache.h: New.
2265         * src/intern.h: Include it here.
2266         * src/util.h: New.
2267
2268         * src/olflange.cpp (DllRegisterServer): Remove key for the old
2269         versions of this plugin.
2270
2271         Merged olgpgmain.dll and olgpgcore.dll into outlgpg.dll.
2272
2273         * src/Makefile.am: Renamed target to outlgpg. Added required files.
2274         * src/olflange.cpp, olflange.h: Renamed from GPGExch.cpp and
2275         GPGExch.h.  Removed all the MFC cruft as it is not required - it
2276         was only used to get hands on the hInstance of the DLL; chnaged
2277         that to use the glob_hinst which gets set by DllMain.
2278         * src/outlgpg.def: New.
2279         * src/olflange-def.h: New.
2280         * src/olflange-dlgs.cpp: Renamed from GPGOptionsDlgs.cpp.
2281         * src/olflange-ids.h: Renamed from ../olflange/resource.h
2282         * src/olflange-rsrcs.rc: Renamed from ..olflange/olgpgmaindlgs.rc and
2283         stripped off unneedded stuff.
2284         * src/olgpgcoredlgs.rc: Renamed to ..
2285         * src/outlgpg-rsrcs.rc: .. this and stripped of cruft.
2286         * src/olgpgcoredlgs.h: Renamed to ..
2287         * src/outlgpg-ids.h: .. this.
2288         * src/versioninfo.rc.in: New.
2289
2290 2005-08-12  Timo Schulz  <ts@g10code.com>
2291
2292         * src/config-dialog.c (sotre_extension_value, load_extension_value):
2293         Adjust registry key.
2294
2295 2005-08-12  Werner Koch  <wk@g10code.com>
2296
2297         * src/intern.h: Moved keycache prototypes to keycache.h.
2298         * src/MapiGPGME.cpp (lock_log, unlock_log): New.
2299         * src/engine-gpgme.c (op_init): Check GPGME version.
2300         * src/main.c (outlook_gpg_get_version): Removed as it is now derived
2301         from config.h.
2302         (DllMain): Initializes gpgme and mapigpgme.
2303         * src/MapiGPGME.cpp (initialize_mapi_gpgme): New.
2304
2305         * src/config-dialog.c (store_extension_value, load_extension_value):
2306         Changed key to "OutlGPG".
2307
2308         * src/MapiGPGME.h (class MapiGPGME): New methods versionString and
2309         showVersion.  Breaks ABI but it doesn't matter as we are also
2310         going to change the name of the project.
2311
2312         * src/Makefile.am: Renamed target to olgpgcore.
2313         * src/resource.h: Renamed to ...
2314         * src/olgpgcoredlgs.h: .. and removed cruft from generator.
2315         * src/gpgmedlgs.rc: Renamed to ..
2316         * src/olgpgcoredlgs.rc: ... and removed cruft.
2317         * src/libgpgmedlgs.def: Renamed to ..
2318         * src/olgpgcore.def: .. this.
2319
2320 2005-08-11  Werner Koch  <wk@g10code.com>
2321
2322         * src/MapiGPGME.cpp (log_debug): New.  Rewrote the whole log stuff.
2323         It is not anymore per instance.
2324         (logDebug): New version with va_list arg.
2325
2326         * src/MapiGPGME.cpp (passphraseCallback): Use gpgme_error_t becuase
2327         C++ enforces enum types.
2328
2329         * src/engine-gpgme.c (op_lookup_keys): s/id/names/.  id is a reved
2330         word Obj-C and it is good style not to use it in plain C code.
2331         (op_sign_file_next): Use gpgme_passphrase_cb_t in declaration.
2332         (op_decrypt_next): Ditto.
2333
2334         * src/MapiGPGME.cpp (count_recipients): Renamed from countRecipients
2335         method, made local and changed both callers.
2336         (log_key_info): Changed output format.  New arg PREFIX. Changed
2337         callers.
2338         (add_html_line_endings): Renamed from addHtmlLineEndings method
2339         and made local.
2340         (logDebug): Open in text mode.  Removed all superfluous "\r" from
2341         callers.
2342
2343 2005-08-10  Werner Koch  <wk@g10code.com>
2344
2345         * configure.ac: Check for and define DLLTOOL.
2346
2347 2005-08-09  Timo Schulz  <ts@g10code.com>
2348
2349         * src/main.c (outlook_gpg_get_version): New.
2350         Use same version as the Outlook GPG plugin.
2351
2352         * src/MapiGPGME.cpp [!__MINGW32__]: Changed sequence of include files.
2353
2354 2005-08-09  Werner Koch  <wk@g10code.com>
2355
2356         * src/MapiGPGME.cpp (userid_from_key, keyid_from_key): New. Changed
2357         all calls to the deprecated gpgme_key_get_string_attr function by
2358         these.
2359
2360         * src/MapiGPGME.h, MapiGPGME.cpp: Splitted into interace and
2361         implementation.
2362         * src/HashTable.h (class HashTable): No need to dll export anything.
2363
2364 2005-08-08  Werner Koch  <wk@g10code.com>
2365
2366         * src/common.c (w32_shgetfolderpath): Added.
2367         * src/config-dialog.c (load_config_value_ext): use it here.
2368
2369 2005-07-21  Timo Schulz  <twoaday@g10code.com>
2370
2371         * src/MapiGPGME.cpp (decrypt): Only return if no valid PGP
2372         data was found and the message has no attachments.
2373         * src/engine-gpgme.c (op_encrypt): Use --textmode to fix
2374         problems when the recipient OS has different line endings.
2375         For example Win32->Linux.
2376
2377 2005-07-20  Timo Schulz  <twoaday@g10code.com>
2378
2379         * src/MapiGPGME.cpp (addHtmlLineEndings): New.
2380         (encrypt):Use it here.
2381         (signEncrypt): Likewise. Free memory in case of errors.
2382         (decrypt): Free memory in case of the verify procedure.
2383         Issue a warning when the text of the mail could not be
2384         updated.
2385         (isMessageEncrypted): New.
2386         (countAttachments): Check for null pointers.
2387         (clearPassphrase): Likewise.
2388         * src/config-dialog.c (store_config_value): Support '%val%' input.
2389         * src/verify-dialog.c (load_akalist): Return the number of user-ids
2390         which were added.
2391         * src/passphrase-dialog.c (load_secbox): Make sure we really start
2392         to add the item data at the begin.
2393         * src/intern.h: Fixed GCC compiler problem.
2394
2395 2005-07-19  Timo Schulz  <twoaday@g10code.com>
2396
2397         * src/MapiGPGME.cpp (encrypt): Handle cancel.
2398         (encryptAttachments): If no attachments exist, close the table.
2399         (decryptAttachments): Likewise.
2400         (signAttachments): Likewise.
2401         (isHtmlBody): New.
2402         (isHtmlMessage): New.
2403         (setBody): Html support.
2404         (encrypt): Figure out if message is html and encode the right body.
2405         (signEncrypt): Likewise.
2406         (verify): Always use the non-html body for GPG input.
2407         (decrypt): Likewise.
2408
2409         * src/engine-gpgme.c (recipient_dialog_box2): Set cancel flag.
2410         (op_sign_start): Handle cancel.
2411         (recipient_dlg_proc): Make sure there is at least one selected
2412         key. Disable armor checkbox.
2413
2414 2005-07-19  Timo Schulz  <twoaday@g10code.com>
2415
2416         * src/MapiGPGME.cpp (~MapiGPGME): After releasing the
2417         memory, set all pointers to NULL. It seems that NT5
2418         bases operating systems are more pedantic with such
2419         issues than 9X based systems.
2420         (freeUnknownKeys): Likewise.
2421         (freeRecipients): Likewise.
2422         (encrypt): Outlook 2003 returns a body string which
2423         is not NULL but \0 with a length of 0. Handle it.
2424         (sign): Likewise.
2425         (signEncrypt): Likewise.
2426
2427         * src/engine-gpgme.c (free_recipients): New.
2428         (op_encrypt_start): Handle cancel and free memory.
2429
2430
2431 2005-07-18  Timo Schulz  <ts@g10code.com>
2432
2433         * src/gpgmedlgs.rc: Native language support for German.
2434
2435 2005-07-14  Timo Schulz  <ts@g10code.com>
2436
2437         * src/MapiGPGME.cpp: Add some missing MAPI constants.
2438         (passphrase_callback_box): Repair cancel button.
2439         (decrypt): If the user cancels the operation, do not
2440         alter the message text.
2441         * src/config-dialog.c (expand_path): New. From WinPT.
2442         (load_config_value): Support for REG_EXPAND_SZ.
2443         Suggested by Sebastian.
2444
2445 2005-07-13  Timo Schulz  <ts@g10code.de>
2446
2447         * src/MapiGPGME.cpp (sign): Ignore empty bodies.
2448         (signEncrypt): Likewise. Free recipient memory.
2449         (encrypt): Modify code so it really works.
2450         (attachPublicKey): New.
2451         * src/engine-gpgme.c (op_export_keys): New.
2452
2453 2005-07-12  Timo Schulz  <ts@g10code.de>
2454
2455         * src/MapiGPGME.cpp (displayError): New.
2456         (writeOptions): Use it here. Simplify the code.
2457         (signAttachments): New.
2458         (sign): Sign attachments. Noted by Ralf.
2459         (processAttachment): Support for sign-only.
2460
2461 2005-07-08  Timo Schulz  <ts@g10code.de>
2462
2463         * src/MapiGPGME.cpp (setEnableLogging): New.
2464         (getEnableLogging): New.
2465         (logDebug): Move all logging code to this function.
2466         (readOptions): Automatically enable logging if the
2467         'LogFile' registry entry is valid.
2468         (prepareLogging): New.
2469         (readOptions): Properly handle ""-strings.
2470         * src/config-dialog.c (does_file_exist): Allow to have
2471         parameters like '--keymanager' and cut them off before
2472         checking the existence.
2473         (start_key_manager): Free memory.
2474         (config_dlg_proc): Initialize pointer to 'NULL'.
2475         (SHFree): New. Special function to handle shell memory.
2476         (get_folder): Free memory.
2477         (does_folder_exist): New.
2478
2479 2005-07-06  Timo Schulz  <ts@g10code.de>
2480
2481         * src/MapiGPGME.cpp: s/ATTR_/ATT_.
2482         (saveDecryptedAttachment): Cut off the prefix.
2483         (clearConfig): New.
2484         (clearObject): New.
2485         (MapiGPGME): Use it here.
2486
2487         Use ATT_PREFIX instead of a hardcoded string.
2488
2489         * src/engine-gpgme.c
2490         (op_sign_file_next): New.
2491         (op_sign_file): Call op_sign_file2.
2492         (op_sign_file_ext): New.
2493
2494 2005-07-05  Timo Schulz  <ts@g10code.de>
2495
2496         * src/MapiGPGME.cpp (readOptions, writeOptions):
2497         Support for the new 'auto sign attachment' flag.
2498         (signAttachment): New.
2499         (setSignAttachments): New.
2500         (getSignAttachments): New.
2501         * src/engine-gpgme.c (op_sign_file): Enable armor.
2502
2503 2005-07-03  Timo Schulz  <ts@g10code.com>
2504
2505         * src/MapiGPGME.cpp (processAttachment): Implement
2506         the decryption part and only use it if the 'save
2507         decrypted attachment' flag is set.
2508         (saveDecryptedAttachment): New.
2509         (writeOptions): Save 'decrypt attachment' flag.
2510         (readOptions): Load it here.
2511         (cleanupTempFiles): Check handle.
2512         (encrypt): If the message has no body skip the
2513         procedure.
2514         (op_decrypt_file): Set recipient callback.
2515         (decryptAttachments): We do not alter the attachment
2516         so there is no need to release it again.
2517
2518         Replace all 'free' with 'xfree'.
2519
2520 2005-07-01  Timo Schulz  <ts@g10code.com>
2521
2522         * src/MapiGPGME.cpp (processAttachment): Check that
2523         the file has a valid PGP extension before we try
2524         to decrypt the attachment.
2525         (checkAttachmentExtension): Check if the file
2526         extension is a vliad PGP extension.
2527
2528
2529 2005-06-30  Timo Schulz  <ts@g10code.com>
2530
2531         * src/MapiGPGME.cpp (processAttachment): Use a unique
2532         temp name to make a cleanup at the end easier.
2533         (cleanupTempFiles): Delete possible left over
2534         temp files.
2535         (~MapiGPGME): Use it here.
2536
2537 2005-06-22  Timo Schulz  <ts@g10code.com>
2538
2539         * src/MapiGPGME.cpp (processAttachment): Close attachment
2540         before we delete it.
2541         (streamOnFile): Directly use the attachment.
2542         (streamFromFile): Likewise.
2543         (closeAttachment): Renamed to..
2544         (releaseAttachment): ..this.
2545
2546 2005-06-21  Timo Schulz  <ts@g10code.com>
2547
2548         * src/MapiGPGME.cpp (getMessageType): Support all types.
2549         (streamOnFile): More straight forward now.
2550         (encryptAttachments): Get the attachment table first.
2551         (getAttachPathname): New.
2552         (processAttachment): Add new parameter for the position
2553         of the attachment.
2554         (streamFromFile): New.
2555         (generateTempname): New.
2556         * src/engine-gpgme.c (op_sign_encrypt_file): New.
2557
2558 2005-06-17  Timo Schulz  <ts@g10code.com>
2559
2560         * src/MapiGPGME.cpp (MapiGPGME): Initialize all attachment
2561         components to zero. Thanks to Sebstian for pointing this out.
2562
2563 2005-06-16  Timo Schulz  <ts@g10code.com>
2564
2565         * src/engine-gpgme.c (check_encrypt_result): New. Check if
2566         the encrypt procedure returned some invalid recipients.
2567         (op_encrypt): Use it here.
2568         (op_encrypt_file): Likewise.
2569         (op_sign_encrypt): Likewise.
2570         * src/missing.h: Removed unused constants.
2571         * src/verify-dialog.c (load_sigbox): Handle v3 RSA keys.
2572         * src/passphrase-dialog.c (load_secbox): Make sure the index
2573         from the first loop matche the second. Which means skip
2574         all invalid keys also.
2575
2576 2005-06-13  Timo Schulz  <ts@g10code.com>
2577
2578         * src/MapiGPGME.cpp (writeOptions): New Option 'defaultKey'.
2579         (readOptions): Likewise. Force overwrite 'addDefaultKey'.
2580
2581 2005-06-07  Timo Schulz  <ts@g10code.com>
2582
2583         * src/passphrase-dialog.c (decrypt_key_dlg_proc): Add a
2584         reference to the key object so it will be still valid
2585         after the dialog is destroyed.
2586         * src/MapiGPGME.cpp (freeUnknownKeys): Do not try to free
2587         the context if no keys are available. Fixed a segv.
2588         (signEncrypt): The new code now gets a persistent pointer
2589         to the key.
2590         * src/engine-gpgme.c (op_sign_encrypt): Load the right
2591         dialog to request the passphrase.
2592
2593 2005-06-05  Timo Schulz  <ts@g10code.com>
2594
2595         * src/passphrase-dialog.c (load_recipbox): Check ctx if null.
2596         (passphrase_callback_box): Different dialogs for sign
2597         and decrypt.
2598         (signer_dialog_box): Do not zero the context too early.
2599         * src/keycache.c (enum_gpg_seckeys): Also reload if ctx
2600         is NULL.
2601         * src/MapiGPGME.cpp (signEncrypt): Return if the user
2602         cancelled the signer selection dialog.
2603         * src/recipient-dialog.c (recipient_dlg_proc): Check 'Text Mode'
2604         button.
2605         * src/keycache.c (enum_gpg_keys, enum_gpg_seckeys): Fully
2606         reset the keycache initializing it again. Thanks to Ralf.
2607
2608 2005-06-04  Timo Schulz  <ts@g10code.com>
2609
2610         * src/verify-dialog.c (load_sigbox): Only issue a warning
2611         if the key exists but is not valid.
2612         Get pkalgo from the signature.
2613         Fixed format string problem s/%d/%s.
2614         * src/config-dialog.c (load_config_value): Close reg handle.
2615         (config_dlg_proc): Show error if the values could not
2616         be written to the registry.
2617
2618 2005-06-03  Timo Schulz  <ts@g10code.com>
2619
2620         * src/mapuser.c (new_usermap): New.
2621         (free_usermap): New.
2622         * src/engine-gpgme.c (op_decrypt): Return 'No_Seckey' if
2623         appropriate and not just 'Decrypt_Failed'.
2624         Set the gpgme_ctx_t object in the callback to allow
2625         to list the 'encrypt_to' entries.
2626         * src/passphrase-dialog.c (decrypt_key_dlg_proc): Make sure
2627         we only warn when there is a valid callback context.
2628         (load_secbox): New parameter 'ctlid'. Changed all callers.
2629         (load_recipbox): New. Use usermap to lookup user-id's.
2630         (decrypt_key_ext_dlg_proc): New dialog procedure for
2631         the callback mode.
2632         * src/HashTable.cpp (HashTable_new): New. C-interface.
2633         (HashTable_free): Likewise.
2634         (HashTable_get): Likewise.
2635         (HashTable_put): Likewise.
2636         (HashTable_get_i): Likewise.
2637         (HashTable_size): Likewise.
2638
2639 2005-05-29  Timo Schulz  <ts@g10code.com>
2640
2641         * src/passphrase-dialog.c (decrypt_key_dlg_proc): Warning
2642         if the user cancels the signing process.
2643         Make the passphrase field invisible if the key is used
2644         in selection mode.
2645         (recipient_dlg_proc): Likewise.
2646         (signer_dialog_box): Return -1 if the user cancelled the
2647         dialog.
2648         * src/engine-gpgme.c (op_sign): Set flags to '1' to indicate
2649         signing process.
2650         * src/config-dialog.c (does_file_exist): Use appropriate
2651         length for xmalloc. Noted by Sebastian.
2652
2653 2005-05-24  Timo Schulz  <ts@g10code.com>
2654
2655         * src/MapiGPGME.cpp (setXHeader): New.
2656         (getXHeader): New.
2657         * src/engine-gpgme.c (op_sign_file): Implemented.
2658
2659 2005-05-22  Timo Schulz  <ts@g10code.com>
2660
2661         * src/MapiGPGME.cpp (createAttachment): New.
2662         (deleteAttachment): New.
2663         (encryptAttachments): New.
2664         (encrypt): Also encrypt the attachments if possible.
2665         (signEncrypt): Likewise.
2666         (setEncodingFormat): New.
2667         (getEncodingFormat): New.
2668         (readOptions, writeOptions): Store encoding format.
2669         (MapiGPGME): The default encoding is 'CLASSIC'.
2670
2671 2005-05-21  Timo Schulz  <ts@g10code.com>
2672
2673         * src/HashTable.h: Export functions.
2674         * src/MapiGPGME.cpp (freeAttachments): New.
2675         (getAttachments): New.
2676         (openAttachment): New.
2677         (closeAttachment): New.
2678         (processAttachment): New.
2679         (hasAttachments): New.
2680         (countAttachments): New.
2681         (doCmdFile): New. Can handle files.
2682         (doCmdAttach): New. Can handle attachment action types.
2683         (signEncrypt): Release locusr key.
2684         * src/engine-gpgme.c (op_sign_file): New. Dummy.
2685         (op_sign_encrypt_file): New. Dummy.
2686
2687 2005-05-11  Timo Schulz  <ts@g10code.com>
2688
2689         * src/common.c (cache_item_new): New.
2690         (cache_item_free): New.
2691         * src/engine-gpgme.c (op_decrypt_start_ext): Return an cache item and
2692         not just the passphrase. Changed all caller.
2693         * src/MapiGPGME.cpp (passphraseCallback): Support caching.
2694         (decrypt): Likewise.
2695         (storePassphrase): Likewise.
2696         (getPassphrase): Likewise.
2697         * src/HashTable.cpp: New.
2698
2699 2005-05-10  Timo Schulz  <ts@g10code.com>
2700
2701         * src/passphrase-dialog.c (decrypt_key_dlg_proc): Reset 'hide state'.
2702         Show some text when the user entered a wrong passphrase.
2703         * src/MapiGPGME.cpp (findMessageWindow): New.
2704         (setRTFBody): New.
2705         (decrypt): Just change the window text, not the MAPI object.
2706         Call verify() if this is a clearsigned message.
2707         (getMessageType): New.
2708         (getAttachmentExtension): New.
2709         (verify): Extract text and set it.
2710         * src/engine-gpgme.c (op_decrypt): Spawn verify dialog if the text
2711         was also signed.
2712         (op_decrypt_file): New.
2713         * src/verify-dialog.c (load_sigbox): Avoid key cache and give more
2714         information.
2715         * src/passphrase-dialog.c (decrypt_key_dlg_proc): Handle 'x' clicks.
2716         * src/logging.c (log_debug): Disable it for release versions.
2717
2718 2005-05-08  Timo Schulz  <ts@g10code.com>
2719
2720         * src/MapiGPGME.cpp (readOptions): Handle logfile.
2721         (writeOptions): Likewise.
2722         (storePassphrase): New.
2723         (clearPassphrase): New.
2724         (passphraseCallback): New. Needs to be static...
2725         (decrypt): Store passphrase if requested.
2726         (~MapiGPGME): Free memory.
2727         (streamOnFile): New.
2728         (getAttachMethod): New.
2729         (getAttachFilename): New.
2730         (setAttachMethod): New.
2731         (getAttachFilename): New.
2732         (getMessageHasAttachments): New.
2733         (getMessageFlags): New.
2734
2735         * src/engine-gpgme.c (op_decrypt): New. Factoured out
2736         code from...
2737         (op_decrypt_start): ..here. Now call op_decrypt
2738         with standard parameters.
2739         (op_decrypt_next): Allow to use a pre-defined
2740         passphrase callback. Needed for caching.
2741
2742 2005-05-02  Timo Schulz  <ts@g10code.com>
2743
2744         * src/MapiGPGME.cpp (fail_if_null, delete_buf): New
2745         (doCmd): New.
2746         (setBody): If the body to set is empty, do nothing.
2747         (freeKeyArray): New.
2748         (readOptions): New.
2749         (writeOptions): New.
2750         Implement all getters and setters for the config code.
2751
2752         * src/keycache.c: Now that we use a DLL, we create a
2753         shared data segment for static data.
2754         (load_keycache_objects): New.
2755
2756 2005-05-01  Timo Schulz  <ts@g10code.com>
2757
2758         * src/MapiGPGME.cpp (rtfSync): New.
2759         * src/logging.c (log_debug): New.
2760         * src/common.c (xfree): New.
2761         * src/engine-gpgme.c (op_lookup_keys): Corrected offsets.
2762
2763 2005-04-29  Timo Schulz  <ts@g10code.com>
2764
2765         * src/engine-gpgme.c (op_encrypt_file): New.
2766
2767 2005-04-27  Timo Schulz  <ts@g10code.com>
2768
2769         * src/config-dialog.c (config_dialog_box): Add dialog
2770         item to select a GUI key manager.
2771         Check that the entered files really exist.
2772         (config_dlg_proc): Likewise.
2773         (does_file_exist): New.
2774
2775 2005-04-24  Timo Schulz  <ts@g10code.com>
2776
2777         * src/main.c (DllMain): New. With a static library it was not
2778         possible to have a separate resource file. Thus we use a
2779         DLL now which contains all needed dialogs.
2780         * src/common.c (set_global_hinstance): New.
2781         * src/libgpgmedlgs.def: New.
2782
2783 2005-04-18  Timo Schulz  <ts@g10code.com>
2784
2785         * src/recipient-dialog.c (recipient_dialog_box2): New
2786         way to show pre-selected keys.
2787         (copy_item): New paramenter for the pos.
2788         (find_item): Do not select the item.
2789
2790         * src/gpgmedlgs.rc (IDD_ENC): New label to describe
2791         the listbox.
2792
2793 2005-04-15  Timo Schulz  <ts@g10code.com>
2794
2795         * src/common.c (xmalloc, xcalloc, xstrdup): New.
2796         (out_of_core): New.
2797         * src/recipient-dialog.c (initialize_keybox): New.
2798         (find_item): New.
2799         * src/MapiGPGME.cpp (freeUnknownKeys): New.
2800         (signEncrypt): Show dialog to select a key if no
2801         default key was set.
2802
2803         * src/Replace all std-c alloc functions with x equivalents.
2804
2805 2005-04-13  Timo Schulz  <ts@g10code.com>
2806
2807         * src/engine-gpgme.c (do_init): Alloc keycache objects.
2808         (do_deinit): Cleanup the mess.
2809         (op_lookup_keys): New. Allow to find keys via the email.
2810
2811         * src/GPGME.cpp (MapiGPGME): New. MAPI interface.
2812
2813 2005-04-07  Timo Schulz  <ts@g10code.com>
2814
2815         * src/verify-dialog.c (load_akalist): New.
2816         (load_sigbox): Handle bad signatures.
2817         * src/keycache.c (enum_gpg_keys): Allow to reset the
2818         enum context.
2819         * src/config-dialog.c (get_open_file_name): Use MAX_PATH.
2820         (get_folder): Likewise.
2821         * src/recipient-dialog.c (load_rsetbox): Modify code to
2822         add the last keycache item.
2823         * src/passphrase-dialog.c (load_secbox): Likewise.
2824
2825  Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011 g10 Code GmbH
2826
2827  This file is free software; as a special exception the author gives
2828  unlimited permission to copy and/or distribute it, with or without
2829  modifications, as long as this notice is preserved.
2830
2831  This file is distributed in the hope that it will be useful, but
2832  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
2833  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.