2005-03-22  Timo Schulz  <twoaday@freakmail.de>

	* editcard.c: Support new status-fd entries SC_OP_SUCCESS
	and SC_OP_FAILURE.
	* editkey.c (cmd_addrev_handler): Check if context != NULL.
	* import.c (import_command_handler): Wrong function signature.
	Noted by Kurt Fitzner.
	* types.h: Fixed encrypt_result_s. Noted by Kurt.
	* gpgme.h (gpgme_editkey_addrev_set): Changed return type.
	Kudos to Kurt.
	* key.c: Removed some unreachable code. By Kurt.

2005-01-07  Timo Schulz  <twoaday@freakmail.de>

	* gpgme.c (gpgnme_lib_cleanup): New. Cleanup all static locks.
	(gpgme_lib_init): New.
	* editkey.c (editkey_start): Use --ask-cert-level. Noted by
	a friendly user.

2004-10-07  Timo Schulz  <twoaday@freakmail.de>

	* editcard.c (editcard_start): Remove '--allow-admin' since
	GPG 1.3.90 has another interface.
	(editcard_command_handler): Support 'backup' question.
	* gpgme.h: Add card flags.
	* editkey.c (edit_key_colon_handler): Decode the name.

2004-08-24  Timo Schulz  <twoaday@freakmail.de>

	* key.c (gpgme_key_release): Release user-id hash if possible.

2004-08-20  Timo Schulz  <twoaday@freakmail.de>

	* editkey-util.c (gpgme_editkey_delsig_set): New.
	* editkey.c (check_edit_cmd): New.
	(cmd_delsig_handler): New.

2004-07-13  Timo Schulz  <twoaday@freakmail.de>

	* common-status.c (_gpgme_nodata_status_handler): New.
	(_gpgme_pass_status_handler): New.
	(_gpgme_sigtrust_status_handler): New.

2004-05-11  Timo Schulz  <twoaday@freakmail.de>

	* key.c (_gpgme_key_append_name): Return user-id pointer. 
	Changed all callers.
	* keylist.c (keylist_colon_handler): Implemented new code.
	This fixed a problem with wrong user-id validities.

2003-12-23  Timo Schulz  <twoaday@freakmail.de>

	* verify.c, rungpg.c: Removed all pipemode code. It was
	never used and in newer version of GPG it is declared
	as 'obselete'.

2003-01-07  Timo Schulz  <ts@winpt.org>

	* Removed all code for the primary user-id flag.
	Werner reminded me that the primary user-id is always
	the first in the colon mode.

2002-12-14  Timo Schulz  <ts@winpt.org>

	* verify.c (verify_get_sig_date): Workaround because GPG
	does not return a valid timestam for bad signatures.

2002-10-15  Timo Schulz  <ts@winpt.org>

	* datamisc.c: Removed. Merged stuff into data.c
	* file.c, file-xxx.c: Removed
	* keylist.c (parse_colon_line): Support for subkey fingerprints.
	* clipboard. (gpgme_op_verify_clipboard): Fix an error when
	a subkey was used for signing.

2002-10-13  Timo Schulz  <ts@winpt.org>

	* siglist.c: Removed. Now we use the key directly to list
	the signatures. This is much easier and it will help us
	to implement the planned key manager style.

2002-09-23  Timo Schulz  <ts@winpt.org>

	* keycache.c (gpgme_keycache_prepare): Added support to detect
	primary userID's.
	(uid_set_primary): New.

2002-09-17  Timo Schulz  <ts@winpt.org>

	* Removed the --verbose support, we don't need it.

2002-09-14  Timo Schulz  <ts@winpt.org>

	* implist.c (gpgme_impkey_release): Release the userid.

2001-05-28  Werner Koch  <wk@gnupg.org>

	* version.c (gpgme_check_engine): Stop version number parsing at
	the opening angle and not the closing one.  By Tommy Reynolds.

2001-05-01  Jos Carlos Garca Sogo <jose@jaimedelamo.eu.org>

	* encrypt.c (gpgme_op_encrypt_start): Deleted the assert ( !c->gpg )
	line, because it gave an error if another operation had been made 
	before using the same context.
	
	* decrypt.c (gpgme_op_decrypt_start): The same as above. Also added 
	one line to release the gpg object in the context (if any).
	
2001-04-26  Werner Koch  <wk@gnupg.org>

	* key.c, key.h (_gpgme_key_cache_init): New.
	(_gpgme_key_cache_add): New.
	(_gpgme_key_cache_get): New.
	* version.c (do_subsystem_inits): Init the cache.
	* keylist.c (finish_key): Put key into the cache
	* verify.c (gpgme_get_sig_key): First look into the cache.

2001-04-19  Werner Koch  <wk@gnupg.org>

	* keylist.c (parse_timestamp): Adjusted for the changed
	--fixed-list-mode of gpg 1.0.4h.

2001-04-05  Werner Koch  <wk@gnupg.org>

	* verify.c (gpgme_op_verify_start): Enabled pipemode for detached sigs.

2001-04-04  Werner Koch  <wk@gnupg.org>

	* w32-io.c (_gpgme_io_select): Don't select on the writer if there
	are still bytes pending.  Timo found this not easy to track down
	race condition. 

2001-04-02  Werner Koch  <wk@gnupg.org>

	* gpgme.h: Add GPGME_ATTR_KEY_{EXPIRED,DISABLED}.
	* key.c (gpgme_key_get_ulong_attr): And return those attribs.

	* verify.c (gpgme_get_sig_key): Set keyliosting mode depending on 
	the mode set in the current context.  Suggested by Timo.

	* key.c (gpgme_key_get_ulong_attr): Return can_certify and not
	can_encrypt. By Timo.

2001-03-30  Werner Koch  <wk@gnupg.org>

	* debug.c (debug_init): Allow to specify a debug file.
	(_gpgme_debug_level): New.

	* posix-io.c (_gpgme_io_read, _gpgme_io_write): Print output.
	(_gpgme_io_select): Debug only with level > 2.

2001-03-15  Werner Koch  <wk@gnupg.org>

	* rungpg.c: Included time.h.

	* key.h: New keyflags for capabilities.
	* keylist.c (set_mainkey_capability, set_subkey_capability): New.
	(keylist_colon_handler): Parse them.
	* gpgme.h: New attribute values for capabilties.
	* key.c (gpgme_key_get_string_attr): Return them.
	(capabilities_to_string): New.
	(gpgme_key_get_ulong_attr): Return the global caps.

2001-03-14  Werner Koch  <wk@gnupg.org>

	* w32-io.c (destroy_reader,destroy_writer): Fixed syntax error. 
	Thanks to Jan Oliver Wagner.

2001-03-13  Werner Koch  <wk@gnupg.org>

	* context.h: Add invalid and revoke flags to user_id structure.
	* keylist.c (gpgme_op_keylist_start): Use --fixed-list-mode.
	(keylist_colon_handler): Adjust for that.
 	(set_userid_flags): New. 
	(set_mainkey_trust_info): Handle new key invalid flag
	(set_subkey_trust_info): Ditto.
	* gpgme.h: Add new attributes for key and user ID flags.
	* key.c (_gpgme_key_append_name): Init these flags
	(gpgme_key_get_as_xml): Print them.
	(one_uid_as_xml): New helper for above.
	(gpgme_key_get_string_attr, gpgme_key_get_ulong_attr):
	Return the new attributes.  Enhanced, so that subkey information
	can be returned now.

2001-02-28  Werner Koch  <wk@gnupg.org>

	* w32-io.c (destroy_reader): Set stop_me flag.
	(writer,create_writer,destroy_writer,find_writer,kill_writer): New.
	(_gpgme_io_write): Use a writer thread to avaoid blocking.
	(_gpgme_io_close): Cleanup a writer thread
	(_gpgme_io_select): Repalce tthe faked wait on writing by a real
	waiting which is now possible due to the use of a writer thread.

2001-02-20  Werner Koch  <wk@gnupg.org>

	* w32-io.c (destroy_reader,kill_reader): New. 
	(create_reader, reader): Add a new event to stop the thread.
	(_gpgme_io_close): Kill the reader thread.

	* posix-io.c (_gpgme_io_select): Handle frozen fds here. 
	* 32-io.c (_gpgme_io_select): Ditto. Removed a bunch of unused code.

	* wait.c: Reworked the whole thing.
	* rungpg.c (_gpgme_gpg_new): Init pid to -1.
	(_gpgme_gpg_release): Remove the process from the wait queue.

2001-02-19  Werner Koch  <wk@gnupg.org>

	* w32-io.c (_gpgme_io_set_close_notify): New.
	(_gpgme_io_close): Do the notification.

	* posix-io.c (_gpgme_io_select): Use a 1 sec timeout and not 200
	microseconds.

	* wait.c (remove_process): Don't close the fd here.
	(do_select): Set the fd to -1 and remove the is_closed flag everywhere.
	(_gpgme_wait_on_condition): Remove the assert on the queue and
	break out if we could not find the queue.  The whole thing should
	be reworked.

	* posix-io.c (_gpgme_io_set_close_notify): New.
	(_gpgme_io_close): Do the notification.

	* rungpg.c (close_notify_handler): New. 
	(_gpgme_gpg_new): Register a callback for the fd.
	(_gpgme_gpg_set_colon_line_handler): Ditto.
	(build_argv): Ditto

2001-02-13  Werner Koch  <wk@gnupg.org>

	* rungpg.c (struct reap_s): Replaced pid_t by int.

	* types.h: Add ulong typedef.

	* rungpg.c (do_reaping,_gpgme_gpg_housecleaning): New.
	(_gpgme_gpg_release): Reap children.
	* io.h, posix-io.c (_gpgme_io_kill): New.
	* w32-io.c (_gpgme_io_kill): New (dummy).

	* keylist.c (gpgme_op_keylist_start): Cancel a pending request.

	* posix-io.c (_gpgme_io_read): Add some debug output. 
	(_gpgme_io_write): Ditto.
	(_gpgme_io_select): Increased the timeout.

2001-02-12  Werner Koch  <wk@gnupg.org>

	Enhanced the signature verification, so that it can how handle
	more than one signature and is able to return more information on 
	the signatures.
	* verify.c (gpgme_get_sig_key): New.
	(gpgme_get_sig_status): New.

	* gpgme.h: Add stdio.h. 
	(GpgmeSigStat): New status DIFF.

2001-02-01  Werner Koch  <wk@gnupg.org>

	* w32-io.c (set_synchronize): Add EVENT_MODIFY_STATE.  Add Debug
	code to all Set/ResetEvent().

	* rungpg.c (read_status): Check for end of stream only if we have
	an r.  By Timo.

2001-01-31  Werner Koch  <wk@gnupg.org>

	* wait.c (_gpgme_wait_on_condition): Removed all exit code processing.
	(propagate_term_results,clear_active_fds): Removed.
	(count_active_fds): Renamed to .. 
	(count_active_and_thawed_fds): .. this and count only thawed fds. 

	* rungpg.c (gpg_colon_line_handler): Return colon.eof and not
	status.eof ;-)

2001-01-30  Werner Koch  <wk@gnupg.org>

	* w32-io.c (_gpgme_io_spawn): Use the supplied path arg.

	* version.c (get_engine_info): Return better error information.

	* posix-util.c, w32-util.c: New.
	(_gpgme_get_gpg_path): New, suggested by Jan-Oliver.
	* rungpg.c (_gpgme_gpg_spawn): Use new function to get GPG's path.

	* signers.c (gpgme_signers_add): Ooops, one should test code and
	not just write it; the newarr was not assigned.  Thanks to Jos
	for pointing this out.  Hmmm, still not tested, why shoudl a coder
	test his fix :-)

	* w32-io.c: Does now use reader threads, so that we can use
	WaitForMultipleObjects. 
	* sema.h, posix-sema.c, w32-sema.c: Support for Critcial sections.
	Does currently only work for W32.

	* debug.c, util.h : New. Changed all fprintfs to use this new
	set of debugging functions.

2001-01-23  Werner Koch  <wk@gnupg.org>

	* data.c (_gpgme_data_release_and_return_string): Fixed string
	termination.

2001-01-22  Werner Koch  <wk@gnupg.org>

	* delete.c: New.

	* signers.c: New.
	* key.c (gpgme_key_ref, gpgme_key_unref): New.
	* sign.c (gpgme_op_sign_start): Allow the use of other keys.

	* version.c (gpgme_get_engine_info,gpgme_check_engine): New.
	* rungpg.c (_gpgme_gpg_set_simple_line_handler): New.

2001-01-05  Werner Koch  <wk@gnupg.org>

	* data.c (gpgme_data_rewind): Allow to rewind data_type_none.
