1
2008-01-04 Marcus Brinkmann <marcus@g10code.de>
3
* Makefile.am (gpgconf_components): New variable.
4
(main_sources): Add gpgconf.c.
5
* gpgme.h (gpgme_protocol_t): New protocol GPGME_PROTOCOL_GPGCONF.
6
(gpgme_conf_level_t, gpgme_conf_type_t, gpgme_conf_arg_t)
7
(gpgme_conf_opt_t, gpgme_conf_comp_t, gpgme_conf_arg_new)
8
(gpgme_conf_arg_release, gpgme_conf_opt_change)
9
(gpgme_conf_release, gpgme_op_conf_load, gpgme_op_conf_save): New
11
* gpgconf.c, engine-gpgconf.c: New files.
12
* engine.h: (_gpgme_engine_op_conf_load,
13
(_gpgme_engine_op_conf_save): New prototypes.
14
* op-support.c (_gpgme_op_reset): Ignore not implemented locale
16
* posix-util.c (_gpgme_get_gpgconf_path): New function.
17
* w32-util.c (_gpgme_get_gpgconf_path): New function.
19
(_gpgme_engine_ops_gpgsm): Add stubs for conf_load and conf_save.
21
(_gpgme_engine_ops_gpg): Add stubs for conf_load and conf_save.
22
* gpgme.def: Add new gpgconf related interfaces.
23
* libgpgme.vers: Likewise.
24
* util.h (_gpgme_get_gpgconf_path): New prototype.
25
* gpgme.h (gpgme_protocol_t): Add GPGME_PROTOCOL_GPGCONF.
26
* engine-backend.h (_gpgme_engine_ops_gpgconf): New prototype.
27
(struct engine_ops): Add members for conf_load and conf_save.
28
* engine.c (engine_ops): Add _gpgme_engine_ops_gpgconf.
29
(_gpgme_engine_op_conf_load,
30
(_gpgme_engine_op_conf_save): New functions.
31
(gpgme_get_engine_info): Allow protocol GPGME_PROTOCOL_GPGCONF.
33
2007-11-28 Marcus Brinkmann <marcus@g10code.de>
35
* w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Search
36
for installation directory. Remove old fallback default.
37
(find_program_in_inst_dir): New function.
39
2007-11-26 Werner Koch <wk@g10code.com>
41
* engine-gpgsm.c (struct engine_gpgsm): Add field INLINE_DATA and
42
always reset it before calling start.
43
(gpgsm_new): Clear it.
44
(status_handler): Implement it.
45
(gpgsm_getauditlog) [USE_DESCRIPTOR_PASSING]: Use INLINE_DATA.
47
2007-11-23 Werner Koch <wk@g10code.com>
49
* op-support.c (_gpgme_op_reset): Implement a no-reset flag.
50
* getauditlog.c (getauditlog_start): Use that flag.
52
2007-11-22 Werner Koch <wk@g10code.com>
54
* gpgme.h (gpgme_op_getauditlog_start, gpgme_op_getauditlog): New.
55
* libgpgme.vers: Ditto.
58
* engine-backend.h (struct engine_ops): Add member GETAUDITLOG.
59
* engine-gpgsm.c (gpgsm_getauditlog): New.
60
(_gpgme_engine_ops_gpgsm): Insert new function.
61
(gpgsm_new): Try to enable audit log support.
62
* rungpg.c (_gpgme_engine_ops_gpg): Insert dummy entry.
64
2007-11-20 Werner Koch <wk@g10code.com>
66
* op-support.c (_gpgme_parse_inv_recp): Add new reason code 11.
68
2007-11-12 Marcus Brinkmann <marcus@g10code.de>
70
* kdpipeiodevice.cpp: New version from Frank Osterfeld.
72
2007-10-11 Marcus Brinkmann <marcus@g10code.de>
74
* kdpipeiodevice.cpp: New version from Frank Osterfeld.
76
2007-10-09 Marcus Brinkmann <marcus@g10code.de>
78
* kdpipeiodevice.cpp: New version from Frank Osterfeld and Marc
81
2007-10-05 Marcus Brinkmann <marcus@g10code.de>
83
* kdpipeiodevice.cpp, w32-qt-io.cpp: New versions from Frank
86
2007-10-04 Marcus Brinkmann <marcus@g10code.de>
88
* kdpipeiodevice.h, kdpipeiodevice.cpp, kdpipeiodevice.moc,
89
w32-qt-io.cpp: New versions from Frank Osterfeld.
91
2007-10-02 Marcus Brinkmann <marcus@g10code.de>
93
* kdpipeiodevice.cpp, kdpipeiodevice.moc: New versions.
94
* w32-qt-io.cpp (_gpgme_io_fd2str): Print actual_fd if available.
95
(_gpgme_io_dup): Only acquire a reference, do not actually dup.
96
Submitted by Frank Osterfeld.
98
* priv-io.h, engine-gpgsm.c: Add comments.
99
* w32-qt-io.cpp (_gpgme_io_select): Remove code handling frozen FDs.
100
* w32-glib-io.c (_gpgme_io_close): Always dereference the channel,
102
(_gpgme_io_dup): Acquire a reference. Replace unused
103
implementation by assertion.
105
2007-09-28 Werner Koch <wk@g10code.com>
107
* engine-gpgsm.c (iocb_data_t): Add SERVER_FD_STR.
109
(gpgsm_set_fd): Use it.
111
* w32-glib-io.c (find_channel): Add a new primary flag.
112
(_gpgme_io_close): Close channel only if primary.
113
(_gpgme_io_dup): Put newfd into the table as shallow copy.
115
* priv-io.h (struct io_select_fd_s): Remove member FROZEN.
116
* w32-io.c (_gpgme_io_select): Ditto.
117
* w32-glib-io.c (_gpgme_io_select): Ditto.
119
* posix-io.c (_gpgme_io_select): Ditto.
120
* rungpg.c (read_status): Ditto.
121
* wait.c (fd_table_put): Ditto.
123
* rungpg.c (gpg_io_event): Add tracing.
124
(start): Use gpg_io_event for sending the start event.
125
* engine-gpgsm.c (gpgsm_io_event): Add tracing.
126
(start): Use gpgsm_io_event for sending the start event.
127
* wait.c (_gpgme_add_io_cb, _gpgme_run_io_cb): Add tracing.
129
2007-09-28 Marcus Brinkmann <marcus@g10code.de>
131
* kdpipeiodevice.moc, w32-qt-io.cpp, kdpipeiodevice.cpp: New
132
versions from Frank Osterfeld.
134
2007-09-27 Marcus Brinkmann <marcus@g10code.de>
136
* w32-glib-io.c (_gpgme_io_spawn),
137
w32-qt-io.cpp (_gpgme_io_spawn), w32-io.c (_gpgme_io_spawn): Close
138
the process handle, return 0.
140
* gpgme.h (gpgme_protocol_t): Add GPGME_PROTOCOL_UNKNOWN.
141
* gpgme.c (gpgme_get_protocol_name): Implement support for
142
GPGME_PROTOCOL_UNKNOWN.
144
* kdpipeiodevice.h: Fix last change.
146
* w32-glib-io.c (_gpgme_io_pipe), w32-qt-io.c (_gpgme_io_pipe),
147
w32-io.c (_gpgme_io_pipe), posix-io.c (_gpgme_io_pipe): Fix debug
150
2007-09-25 Marcus Brinkmann <marcus@g10code.de>
152
* conversion.c, keylist.c: Include <sys/types.h>.
154
* kdpipeiodevice.h: Use namespace _gpgme_.
155
* kdpipeiodevice.cpp: Use namespace _gpgme_.
156
[Q_OS_WIN32 && NOMINMAX]: Do not define NOMINMAX again.
157
* w32-qt-io.cpp: Change namespace of KDPipeIODevice to
158
_gpgme_::KDPipeIODevice.
160
2007-09-17 Werner Koch <wk@g10code.com>
162
* rungpg.c (gpg_new): Make robust against undefined ttyname or
165
2007-09-14 Werner Koch <wk@g10code.com>
167
* data-mem.c (gpgme_data_release_and_get_mem): Fix tracing bug.
169
2007-09-14 Marcus Brinkmann <marcus@g10code.de>
171
* gpgme.c (gpgme_release): Call gpgme_sig_notation_clear.
173
2007-09-13 Marcus Brinkmann <marcus@g10code.de>
175
* rungpg.c (gpg_new): Handle return value of _gpgme_getenv (fixes
178
2007-09-07 Marcus Brinkmann <marcus@g10code.de>
180
* Makefile.am (libgpgme_qt_la_SOURCES): Move
181
moc_kdpipeiodevice.cpp to EXTRA_DIST, as this is only included by
182
another file (it's more like a header file than a cpp file, but
183
automake doesn't know that).
185
* w32-qt-io.cpp (_gpgme_io_spawn): Fix several cast errors and typos.
186
* w32-io.c (_gpgme_io_write): Use TRACE_SYSRES instead of TRACE_SYS.
187
(libgpgme_qt_la_LIBADD): Add QT4_CORE_LIBS, not QT4_CORE_LIB.
189
* kdpipeiodevice.h, kdpipeiodevice.cpp, moc_kdpipeiodevice.cpp,
190
kdpipeiodevice.moc, w32-qt-io.c: New files.
191
* Makefile.am (ltlib_gpgme_extra): Rename to ltlib_gpgme_glib.
192
(ltlib_gpgme_qt): New variable.
193
(lib_LTLIBRARIES): Add $(ltlib_gpgme_qt).
194
(libgpgme_qt_la_SOURCES): New variable.
195
(AM_CPPFLAGS): Add @QT4_CORE_INCLUDES@
196
(AM_CFLAGS): Add @QT4_CORE_CFLAGS@.
197
(libgpgme_qt_la_LDFLAGS, libgpgme_qt_la_DEPENDENCIES)
198
(libgpgme_qt_la_LIBADD): New variables.
200
* sema.h (struct critsect_s): Rename "private" to "priv" to make
201
C++ users happy. Change users.
202
* posix-sema.c (_gpgme_sema_cs_enter, _gpgme_sema_cs_leave)
203
(_gpgme_sema_cs_destroy): Likewise.
204
* w32-sema.c (critsect_init, _gpgme_sema_cs_enter)
205
(_gpgme_sema_cs_leave, _gpgme_sema_cs_destroy): Likewise.
206
* w32-glib-io.c (gpgme_get_giochannel): Change return type to
208
(gpgme_get_fdptr): New function.
209
* w32-io.c (gpgme_get_fdptr): New function
210
* gpgme.def: Add gpgme_get_fdptr.
212
2007-08-22 Marcus Brinkmann <marcus@g10code.de>
214
* w32-io.c (_gpgme_io_write): Return early if COUNT is zero.
215
(writer): Remove superfluous check.
217
2007-08-20 Marcus Brinkmann <marcus@g10code.de>
219
* gpgme.h: Move include of gpg-error.h out of extern "C".
221
2007-08-07 Werner Koch <wk@g10code.com>
223
* gpgme.h (struct _gpgme_signature): Add member CHAIN_MODEL.
224
* verify.c (parse_trust): Set Chain_MODEL.
226
2007-08-02 Werner Koch <wk@g10code.com>
228
* w32-glib-io.c (_gpgme_io_spawn): Use DETACHED_PROCESS flag.
229
* w32-io.c (_gpgme_io_spawn): Ditto.
230
(_gpgme_io_write): Map ERROR_NO_DATA to EPIPE.
231
* debug.c (_gpgme_debug): Enable assuan logging.
232
(_gpgme_debug_subsystem_init): New. * version.c
233
(do_subsystem_inits): Disable assuan logging and initialize de
235
(gpgme_check_version): Do not trace before the subsystems are
238
2007-07-17 Marcus Brinkmann <marcus@g10code.de>
240
* debug.c: Include <errno.h> and "debug.h".
241
(_gpgme_debug): Save and restore ERRNO.
243
(_gpgme_debug_buffer): New function.
244
* conversion.c, data-compat.c, data-mem.c, data.c, engine-gpgsm.c,
245
gpgme.c, keylist.c, posix-io.c, rungpg.c, sign.c, version.c,
246
w32-io.c, wait.c: Replace DEBUG macros by TRACE_* variants. In
247
most of these files, add many more tracepoints.
249
2007-07-16 Marcus Brinkmann <marcus@g10code.de>
251
* engine-gpgsm.c (status_handler): Do not send BYE here.
253
* w32-io.c (struct reader_context_s, struct writer_context_s): New
255
(create_reader, create_writer): Initialize C->refcount to 1.
256
(destroy_reader, destroy_writer): Only destroy if C->refcount
258
(find_reader, find_writer, kill_reader, kill_writer): Beautify.
259
* priv-io.h (_gpgme_io_dup): New prototype.
260
* posix-io.c (_gpgme_io_dup): New function.
261
* w32-io.c (_gpgme_io_dup): Likewise.
262
* w32-glib-io.c (_gpgme_io_dup): Likewise.
263
* engine-gpgsm.c (start): Reverting to version 2007-07-10.
265
2007-07-13 Marcus Brinkmann <marcus@g10code.de>
267
* data-user.c (user_read, user_write, user_seek): Set errno and
268
return -1 instead returning the error code directly.
269
* data-compat.c (old_user_seek): Likewise.
270
* gpgme.c (gpgme_sig_notation_add): Return error properly.
272
* Revert the "close_notify_handler" returns int stuff. Always
273
close in the _gpgme_io_close implementations.
274
* engine-gpgsm.c (status_handler): Try to terminate the connection
276
* w32-io.c (_gpgme_io_read): Return C->error_code in ERRNO.
277
(_gpgme_io_write): Likewise.
279
* priv-io.h (_gpgme_io_set_close_notify): Change type of HANDLER
280
to _gpgme_close_notify_handler.
281
(_gpgme_close_notify_handler): New type.
282
(_gpgme_io_dup): Remove prototype.
283
* posix-io.c (notify_table, _gpgme_io_set_close_notify): Change
284
type of HANDLER to _gpgme_close_notify_handler_t.
285
(_gpgme_io_close): Do not close the FD if handler returns 0.
286
(_gpgme_io_dup): Remove function.
287
* w32-io.c (notify_table, _gpgme_io_set_close_notify,
288
_gpgme_io_close): Change type of HANDLER to
289
_gpgme_close_notify_handler_t.
290
(_gpgme_io_close): Do not close the FD if handler returns 0.
291
(_gpgme_io_dup): Remove function.
292
* w32-glib-io.c (_gpgme_io_dup): Remove function.
293
(_gpgme_io_set_close_notify, notify_table): Change type of HANDLER
294
to _gpgme_close_notify_handler_t.
295
(_gpgme_io_close): Do not close the FD if handler returns 0.
296
* rungpg.c (close_notify_handler): Change return type to int,
298
* engine-gpgsm.c (close_notify_handler): Change return type to
299
int, return 0 for status FD and 1 for all other FDs.
300
(start): Do not duplicate the status FD.
302
2007-07-12 Marcus Brinkmann <marcus@g10code.de>
304
* Makefile.am: Replace implicite rule by suffix rule. Add
307
2007-07-12 Werner Koch <wk@g10code.com>
309
* version.c (do_subsystem_inits) [W32]: Make sure that the socket
310
system has been started.
312
2007-07-10 Marcus Brinkmann <marcus@g10code.de>
314
* priv-io.h (_gpgme_io_dup): New prototype.
315
* posix-io.c (_gpgme_io_dup): New function.
316
* w32-io.c (_gpgme_io_dup): Likewise.
317
* w32-glib-io.c (_gpgme_io_dup): Likewise.
318
* engine-gpgsm.c (start): Use _gpgme_dup() instead of dup().
320
2007-07-08 Marcus Brinkmann <marcus@g10code.de>
322
* engine-gpgsm.c [HAVE_W32_SYSTEM]: Enable the bunch of the file.
323
* funopen.c (funopen): Rename to _gpgme_funopen.
325
2007-04-30 Marcus Brinkmann <marcus@g10code.de>
327
* engine-gpgsm.c (gpgsm_new): Fix error handling for ttyname_r.
328
* rungpg.c (gpg_new): Likewise.
329
Submitted by Stephen Tether.
331
2007-02-26 Werner Koch <wk@g10code.com>
333
* verify.c (op_data_t): New element PLAINTEXT_SEEN.
334
(_gpgme_verify_status_handler): Return an error if more than one
335
plaintext has been seen.
336
(parse_error): New arg SET_STATUS. Also detect it based on an
337
ERROR status (gpg > 1.4.6).
339
2007-01-26 Werner Koch <wk@g10code.com>
341
* w32-io.c (build_commandline): Fixed stupid quoting bug.
342
* w32-glib-io.c (build_commandline): Ditto.
344
* rungpg.c (gpg_set_locale): Avoid dangling pointer after free.
346
* gpgme-config.in: New options --get-gpg and --get-gpgsm.
348
2007-01-18 Marcus Brinkmann <marcus@g10code.de>
350
* data.h (_gpgme_data_get_fd): Add prototype.
351
(gpgme_data_get_fd_cb): New type.
352
(struct _gpgme_data_cbs): New member get_fd.
353
* data.c (_gpgme_data_get_fd): New function.
354
* data-fd.c (fd_get_fd): New function.
355
(fd_cbs): Add fd_get_fd.
356
* data-stream.c (stream_get_fd): New function.
357
(stream_cbs): Add stream_get_fd.
358
* data-mem.c (mem_cbs): Add NULL for get_fd callback.
359
* data-user.c (user_cbs): Likewise.
360
* engine-gpgsm.c (gpgsm_set_fd) [USE_DESCRIPTOR_PASSING]: Try to
361
short-cut by passing the data descriptor directly.
363
2007-01-17 Marcus Brinkmann <marcus@g10code.de>
365
* w32-io.c (build_commandline): Quote all command line arguments.
366
* w32-glib-io.c (build_commandline): Likewise.
368
2007-01-10 Werner Koch <wk@g10code.com>
370
* ttyname_r.c (ttyname_r) [W32]: Return a dummy name.
372
2007-01-08 Werner Koch <wk@g10code.com>
374
* version.c (do_subsystem_inits): Do assuan init only if building
376
* setenv.c: Include assuan-def.h only if building with Assuan
379
* op-support.c (_gpgme_op_reset): Set LC_MESSAGES only if
381
* engine-gpgsm.c (gpgsm_set_locale): Ditto.
382
* rungpg.c (gpg_set_locale): Ditto.
384
2006-12-17 Marcus Brinkmann <marcus@g10code.de>
386
* gpgme.c (gpgme_set_protocol): Shut down the engine when
388
(gpgme_ctx_set_engine_info): Likewise for engine info.
389
* engine.h (_gpgme_engine_reset): New function prototype.
390
* engine.c (_gpgme_engine_reset): New function.
391
* engine-backend.h (struct engine_ops): New member RESET.
392
* rungpg.c (_gpgme_engine_ops_gpg): Add NULL for reset function.
393
* engine-gpgsm.c (_gpgme_engine_ops_gpgsm)
394
[USE_DESCRIPTOR_PASSING]: Add gpgsm_reset for reset.
395
(_gpgme_engine_ops_gpgsm) [!USE_DESCRIPTOR_PASSING]: Add NULL for
397
(gpgsm_reset) [USE_DESCRIPTOR_PASSING]: New function.
398
* op-support.c (_gpgme_op_reset): Try to use the engine's reset
399
function if available.
400
* engine-gpgsm.c (gpgsm_new): Move code to dup status_fd to ...
402
* posix-io.c (_gpgme_io_recvmsg, _gpgme_io_sendmsg): New functions.
404
* engine.h (_gpgme_engine_new): Remove arguments lc_ctype and
405
lc_messages from prototype.
406
(_gpgme_engine_set_locale): New prototype.
407
* engine.c (_gpgme_engine_set_locale): New function.
408
* op-support.c (_gpgme_op_reset): Call _gpgme_engine_set_locale.
409
* engine-backend.h (struct engine_ops): Add new member SET_LOCALE.
410
Remove arguments lc_messages and lc_ctype from member NEW.
411
* engine-gpgsm.c (struct engine_gpgsm): New members lc_ctype_set
413
(gpgsm_new): Remove lc_messages and lc_ctype
415
(gpgsm_set_locale): New function.
416
(_gpgme_engine_ops_gpgsm): Add gpgsm_set_locale.
417
* rungpg.c (struct engine_gpg): Add new members lc_messages and
419
(gpg_release): Release lc_messages and lc_ctype if set.
420
(gpg_new): Remove lc_messages and lc_ctype arguments.
421
(gpg_set_locale): New function.
422
(_gpgme_engine_ops_gpg): Add gpg_set_locale.
423
(add_arg): Implement in terms of:
424
(add_arg_ext): New function.
425
(start): Set lc-messages and lc-ctype arguments here.
427
2006-12-03 Marcus Brinkmann <marcus@g10code.de>
429
* engine-gpgsm.c (struct engine_gpgsm): Move members
430
input_fd_server, output_fd_server, message_fd_server to ...
431
(iocb_data): ... here (as server_fd).
432
(close_notify_handler): Reset tags as well.
433
(gpgsm_new): Implement support for descriptor
435
(fd_type_t): New type.
436
(gpgsm_clear_fd): New function. Use it instead of _gpgsm_io_close
437
for unused communication channels.
438
(gpgsm_set_fd): Rewritten to support descriptor passing. All
439
relevant callers adjusted as well (previously of _gpgme_io_close).
441
2006-12-02 Marcus Brinkmann <marcus@g10code.de>
443
* version.c: Include "assuan.h".
444
(do_subsystem_inits): Call assuan_set_assuan_err_source.
446
2006-12-01 Marcus Brinkmann <marcus@g10code.de>
448
* Makefile.am (libgpgme_real_la_SOURCES): Rename to main_sources.
449
(libgpgme_la_SOURCES, libgpgme_pthread_la_SOURCES,
450
libgpgme_glib_la_SOURCES, libgpgme_pth_la_SOURCES): Add
452
(libgpgme_la_DEPENDENCIES, libgpgme_la_LIBADD,
453
libgpgme_pthread_la_DEPENDENCIES, libgpgme_pthread_la_LIBADD,
454
libgpgme_pth_la_DEPENDENCIES, libgpgme_pth_la_LIBADD,
455
libgpgme_glib_la_DEPENDENCIES, libgpgme_glib_la_LIBADD): Remove
457
(noinst_LTLIBRARIES): Removed.
458
(libgpgme_glib_la_CFLAGS, libgpgme_pth_la_CFLAGS): Removed.
459
(AM_CFLAGS): New variable.
461
2006-11-30 Marcus Brinkmann <marcus@g10code.de>
463
* engine-gpgsm.c: Replace AssuanError with gpg_error_t and
464
ASSUAN_CONTEXT with assuan_context_t.
466
2006-11-29 Marcus Brinkmann <marcus@g10code.de>
468
* engine-gpgsm.c (gpgsm_new): Check return value of
471
* rungpg.c: Include <unistd.h>.
472
(gpg_new): Support --display, --ttyname, --ttytype, --lc-ctype and
473
--lc-messages. Fixes issue 734.
475
2006-10-24 Marcus Brinkmann <marcus@g10code.de>
477
* trustlist.c (gpgme_op_trustlist_next): Return error if OPD is
480
2006-10-23 Marcus Brinkmann <marcus@g10code.de>
482
* wait-global.c (gpgme_wait): Unlock CTX_LIST_LOCK while calling
483
_gpgme_engine_io_event().
485
* keylist.c (gpgme_op_keylist_next): Return error if OPD is NULL.
487
2006-09-25 Marcus Brinkmann <marcus@g10code.de>
489
* data-mem.c (gpgme_data_release_and_get_mem): Release the data
492
2006-09-22 Marcus Brinkmann <marcus@g10code.de>
494
* keylist.c (keylist_colon_handler): Move debug output after
497
2006-07-29 Marcus Brinkmann <marcus@g10code.de>
499
* gpgme-config.in (Options): Add NETLIBS.
500
* Makefile.am (libgpgme_la_LIBADD, libgpgme_pthread_la_LIBADD,
501
libgpgme_pth_la_LIBADD, libgpgme_glib_la_LIBADD): Add NETLIBS.
503
* rungpg.c (read_status): Fix comparison disguising as an
506
2005-03-24 Marcus Brinkmann <marcus@g10code.de>
508
* gpgme.c (gpgme_set_locale): Remove conditional on
509
HAVE_W32_SYSTEM, and just check for LC_MESSAGES.
511
2006-07-16 Marcus Brinkmann <marcus@g10code.de>
513
* rungpg.c (read_status): Strip potential carriage return.
514
* genkey.c (get_key_parameter): Skip potential carriage return.
515
* version.c (_gpgme_get_program_version): Strip potential carriage
518
* data.c (gpgme_data_set_file_name): Allow to clear the file name
521
2006-06-22 Marcus Brinkmann <marcus@g10code.de>
523
* keylist.c (gpgme_get_key): Also clone the engine info.
525
2006-03-06 Marcus Brinkmann <marcus@g10code.de>
527
* gpgme-config.in (cflags_pth): Revert accidential removal of
528
pthread support with last change.
1
530
2006-02-28 Marcus Brinkmann <marcus@g10code.de>
3
532
* w32-glib-io.c (O_BINARY) [!O_BINARY]: New macro.