[git] GPGME - branch, master, updated. gpgme-1.1.8-167-gb001a8d

by Werner Koch cvs at cvs.gnupg.org
Thu Feb 3 21:12:41 CET 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG Made Easy".

The branch, master has been updated
       via  b001a8df68c8eb33abbe879f6c7fb4db4909b6f6 (commit)
       via  55ad4d80e278e56bd5bc4fbac837db34edd70bde (commit)
      from  2bdbe888228ce09f15be4773800ed13263a8e43e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b001a8df68c8eb33abbe879f6c7fb4db4909b6f6
Merge: 55ad4d8 2bdbe88
Author: Werner Koch <wk at gnupg.org>
Date:   Thu Feb 3 20:51:36 2011 +0100

    Merge branch 'master' of git+ssh://playfair.gnupg.org/git/gpgme

diff --cc src/ChangeLog
index 9b1ef8d,4afcdf9..94200bc
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@@ -1,10 -1,28 +1,35 @@@
 +2011-02-03  Werner Koch  <wk at g10code.com>
 +
 +	* extra-stati.h: New.
 +	* mkstatus: Extend to also process extra-stati.h
 +	* Makefile.am (main_sources): Add extra-stati.h
 +	(status-table.h): Depend on extra-stati.h and adjust rule.
 +
+ 2011-02-03  Marcus Brinkmann  <marcus at g10code.com>
+ 
+ 	* w32-io.c (_gpgme_io_socket): Return fd, not res.
+ 
+ 2011-02-02  Marcus Brinkmann  <mb at g10code.com>
+ 
+ 	* assuan-support.c (my_socket, my_connect): New functions.
+ 	(_gpgme_assuan_system_hooks): Add my_Socket, my_connect.
+ 	* priv-io.h (_gpgme_io_socket): New prototype.
+ 	* w32-io.c (pid_to_handle, handle_to_oid, fd_to_handle): Remove macros.
+ 	(is_socket): Remove function.
+ 	(_gpgme_io_spawn) [HAVE_W32CE_SYSTEM]: Remove some dead code.
+ 	(_gpgme_io_spawn): Translate handles before DuplicateHandle them.
+ 	
+ 2011-02-02  Marcus Brinkmann  <mb at g10code.com>
+ 
+ 	* w32-util.c (mkstemp): Don't use CreateFile instead of open (the
+ 	function is not used on Windows CE, and the callers were not
+ 	adjusted).
+ 
+ 2011-01-21  Marcus Brinkmann  <mb at g10code.com>
+ 
+ 	* engine-gpgconf.c (_gpgme_conf_opt_change): Fix the case that is
+ 	not self-assignment.
+ 
  2010-12-08  Werner Koch  <wk at g10code.com>
  
  	* gpgme-tool.c (strcpy_escaped_plus): New.
@@@ -1467,6 -1485,6 +1492,10 @@@
  	* op-support.c (_gpgme_op_reset): Implement a no-reset flag.
  	* getauditlog.c (getauditlog_start): Use that flag.
  
++2007-11-20  Werner Koch  <wk at g10code.com>
++
++	* op-support.c (_gpgme_parse_inv_recp): Add new reason code 11.
++
  2007-11-22  Werner Koch  <wk at g10code.com>
  
  	* gpgme.h (gpgme_op_getauditlog_start, gpgme_op_getauditlog): New.
@@@ -1478,11 -1496,11 +1507,7 @@@
  	(_gpgme_engine_ops_gpgsm): Insert new function.
  	(gpgsm_new): Try to enable audit log support.
  	* rungpg.c (_gpgme_engine_ops_gpg): Insert dummy entry.
 -	
 -2007-11-20  Werner Koch  <wk at g10code.com>
 -
 -	* op-support.c (_gpgme_parse_inv_recp): Add new reason code 11.
  
- 2007-11-20  Werner Koch  <wk at g10code.com>
- 
- 	* op-support.c (_gpgme_parse_inv_recp): Add new reason code 11.
- 
  2007-11-12  Marcus Brinkmann  <marcus at g10code.de>
  
  	* kdpipeiodevice.cpp: New version from Frank Osterfeld.
@@@ -2256,24 -2274,24 +2281,6 @@@
  	* w32-io.c (_gpgme_io_read, _gpgme_io_write): Print content in
  	debug mode too.
  
--2005-08-19  Werner Koch  <wk at g10code.com>
--
--	* gpgme.def: New.
--	* versioninfo.rc.in: New.
--	* Makefile.am: Addes support for building a W32 DLL.
- 
- 	* ttyname_r.c (ttyname_r) [W32]: Return error.
- 	* ath-compat.c [W32]: select and co are not yet supported; return
- 	error.
- 	* data-stream.c (stream_seek): Use ftell if ftello is not available.
- 
- 2005-08-08  Werner Koch  <wk at g10code.com>
- 
- 	* util.h (stpcpy): Renamed to ..
- 	(_gpgme_stpcpy): .. this and made inline.  This avoids duplicate
- 	definitions when linking statically.
- 	* stpcpy.c: Removed.
- 
 -	
 -	* ttyname_r.c (ttyname_r) [W32]: Return error.
 -	* ath-compat.c [W32]: select and co are not yet supported; return
 -	error.
 -	* data-stream.c (stream_seek): Use ftell if ftello is not available.
 -
 -2005-08-08  Werner Koch  <wk at g10code.com>
 -
 -	* util.h (stpcpy): Renamed to ..
 -	(_gpgme_stpcpy): .. this and made inline.  This avoids duplicate
 -	definitions when linking statically.
 -	* stpcpy.c: Removed.
 -	
  2005-07-27  Marcus Brinkmann  <marcus at g10code.de>
  
  	* gpgme.h (gpgme_status_code_t): Add GPGME_STATUS_PLAINTEXT.
@@@ -2288,6 -2306,6 +2295,24 @@@
  	OPD->result.plaintext_filename.
  	(_gpgme_verify_status_handler): Handle GPGME_STATUS_PLAINTEXT.
  
++2005-08-08  Werner Koch  <wk at g10code.com>
++
++	* util.h (stpcpy): Renamed to ..
++	(_gpgme_stpcpy): .. this and made inline.  This avoids duplicate
++	definitions when linking statically.
++	* stpcpy.c: Removed.
++
++2005-08-19  Werner Koch  <wk at g10code.com>
++
++	* gpgme.def: New.
++	* versioninfo.rc.in: New.
++	* Makefile.am: Addes support for building a W32 DLL.
++
++	* ttyname_r.c (ttyname_r) [W32]: Return error.
++	* ath-compat.c [W32]: select and co are not yet supported; return
++	error.
++	* data-stream.c (stream_seek): Use ftell if ftello is not available.
++
  2005-07-26  Marcus Brinkmann  <marcus at g10code.de>
  
  	* keylist.c (gpgme_get_key): Allow key IDs.
@@@ -4009,65 -4027,65 +4034,66 @@@
  	fail_on_pending_request.
  	* util.h: Don't include "types.h" or "debug.h", but include "gpgme.h".
  
--2003-01-30  Marcus Brinkmann  <marcus at g10code.de>
++2003-01-19  Marcus Brinkmann  <marcus at g10code.de>
  
--	* types.h (EngineObject): Move typedef to ...
--	* engine.h: ... here.
--	* types.h (GpgObject): Move typedef to ...
--	* rungpg.c: ... here.
--	* types.h (GpgsmObject): Move typedef to ...
--	* engine-gpgsm.c: ... here.
++	* rungpg.c (_gpgme_engine_ops_gpg): Remove gpg_start.
++	(gpg_start): Rename to ...
++	(start): ... this function.  Change arguments to GpgObject.
++	(gpg_decrypt): Call start.
++	(gpg_edit): Likewise.
++	(gpg_encrypt): Likewise.
++	(gpg_encrypt_sign): Likewise.
++	(gpg_export): Likewise.
++	(gpg_import): Likewise.
++	(gpg_keylist): Likewise.
++	(gpg_keylist_ext): Likewise.
++	(gpg_trustlist): Likewise.
++	(gpg_verify): Likewise.
  
--	* util.h (return_if_fail, return_null_if_fail,
--	return_val_if_fail): Remove macro.
--	* gpgme.c (gpgme_cancel): Don't use return_if_fail.
--	* key.c (gpgme_key_ref): Likewise.
--	* signers.c (gpgme_signers_enum): Likewise.
--	(gpgme_signers_clear): Likewise.
++	* engine-gpgsm.c (_gpgme_engine_ops_encrypt): Remove gpgsm_start.
++	(gpgsm_start): Rename to ...
++	(struct gpgsm_object_s): Remove member command.
++	(gpgsm_release): Don't free command.
++	(start): ... this function.  Change arguments to GpgsmObject and
++	const char *.
++	(gpgsm_decrypt): Call start.
++	(gpgsm_delete): Likewise.
++	(gpgsm_encrypt): Likewise.
++	(gpgsm_export): Likewise.
++	(gpgsm_genkey): Likewise.
++	(gpgsm_import): Likewise.
++	(gpgsm_keylist): Likewise.
++	(gpgsm_keylist_ext): Likewise.
++	(gpgsm_verify): Likewise.
  
--	* engine-backend.h (struct engine_ops): Rename get_path to
--	get_file_name.
--	* gpgme.h (struct _gpgme_engine_info): Rename member path to
--	file_name.
--	* version.c: Do not include <stdio.h>, <stdlib.h>, context.h and
--	util.h.  Other clean ups.
--	(parse_version_number): Protect more seriously against
--	overflow.
--	(gpgme_get_engine_info): Move to ...
--	* engine.c (gpgme_get_engine_info): ... here.
--	(_gpgme_engine_get_info): Function removed.
--	(_gpgme_engine_get_path): Make static and rename to ...
--	(engine_get_file_name): .. this.
--	(_gpgme_engine_get_version): Make static and rename to ...
--	(engine_get_version): ... this.
--	(_gpgme_engine_get_req_version): Make static and rename to ...
--	(engine_get_req_version): ... this.
--	* engine.h (_gpgme_engine_get_path, _gpgme_engine_get_version,
--	_gpgme_engine_req_version, _gpgme_engine_get_info.): Remove
--	prototypes.
++	* decrypt.c (_gpgme_decrypt_start): Don't call
++	_gpgme_engine_start.
++	* delete.c (_gpgme_op_delete_start): Likewise.
++	* edit.c (_gpgme_op_edit_start): Likewise.
++	* encrypt.c (_gpgme_op_encrypt_start):
++	* encrypt-sign.c (_gpgme_op_encrypt_sign_start):
++	* export.c (_gpgme_op_export_start): Likewise.
++	* genkey.c (_gpgme_op_genkey_start): Likewise.
++	* import.c (_gpgme_op_import_start): Likewise.
++	* keylist.c (gpgme_op_keylist_ext_start): Likewise.
++	(gpgme_op_keylist_start): Likewise.
++	* sign.c (_gpgme_op_sign_start): Likewise.
++	* trustlist.c (gpgme_op_trustlist_start): Likewise.
++	* verify.c (_gpgme_op_verify_start): Likewise.
  
--	* gpgme.h (enum GpgmeProtocol): Remove GPGME_PROTOCOL_AUTO.
--	* gpgme.c (gpgme_set_protocol): Don't handle GPGME_PROTOCOL_AUTO.
--	(gpgme_get_protocol_name): New function.
++	* engine-backend.h (struct engine_ops): Remove member start.
 +
- 	* engine-backend.h (struct engine_ops): New member
- 	get_req_version, remove member check_version.
- 	* engine.h (_gpgme_Engine_get_version): New prototype.
- 	* rungpg.c (gpg_get_req_version): New function.
- 	(gpg_check_version): Function removed.
- 	(_gpgme_engine_ops_gpg): Add gpg_get_req_version, remove
- 	gpg_check_version.
- 	* engine-gpgsm.c (gpgsm_get_req_version): New function.
- 	(gpgsm_check_version): Function removed.
- 	(_gpgme_engine_ops_gpgsm): Add gpgsm_get_req_version, remove
- 	gpgsm_check_version.
- 	* engine.c: Include ops.h.
- 	 (_gpgme_engine_get_req_version): New function.
- 	(gpgme_engine_check_version): Rewritten.
- 	* version.c (gpgme_get_engine_info): Rewritten.
- 	* gpgme.h (gpgme_engine_info): New structure.
- 	(GpgmeEngineInfo): New type.
++	* engine.h (_gpgme_engine_start): Remove prototype.
++	* engine.c (_gpgme_engine_start): Remove function.
++
++2003-01-19  Miguel Coca  <mcoca at gnu.org>
++
++	* w32-io.c (_gpgme_io_select): Add missing argument in calls to
++	DEBUG_BEGIN.
++	* w32-util.c: Include "sema.h".
++	(find_program_in_registry): Change DEBUG1 to DEBUG2, fixes compilation
++	error.
  
 -	* engine-backend.h (struct engine_ops): New member
 -	get_req_version, remove member check_version.
 -	* engine.h (_gpgme_Engine_get_version): New prototype.
 -	* rungpg.c (gpg_get_req_version): New function.
 -	(gpg_check_version): Function removed.
 -	(_gpgme_engine_ops_gpg): Add gpg_get_req_version, remove
 -	gpg_check_version.
 -	* engine-gpgsm.c (gpgsm_get_req_version): New function.
 -	(gpgsm_check_version): Function removed.
 -	(_gpgme_engine_ops_gpgsm): Add gpgsm_get_req_version, remove
 -	gpgsm_check_version.
 -	* engine.c: Include ops.h.
 -	 (_gpgme_engine_get_req_version): New function.
 -	(gpgme_engine_check_version): Rewritten.
 -	* version.c (gpgme_get_engine_info): Rewritten.
 -	* gpgme.h (gpgme_engine_info): New structure.
 -	(GpgmeEngineInfo): New type.
 -	
  2003-01-29  Marcus Brinkmann  <marcus at g10code.de>
  
  	* types.h: Remove byte and ulong types.
@@@ -4212,66 -4230,66 +4238,65 @@@
  
  	* key.c (gpgme_key_sig_get_string_attr): Use validity_to_string
  	instead otrust_to_string to calculate validity.
 -	
 -2003-01-19  Miguel Coca  <mcoca at gnu.org>
 -
 -	* w32-io.c (_gpgme_io_select): Add missing argument in calls to
 -	DEBUG_BEGIN.
 -	* w32-util.c: Include "sema.h".
 -	(find_program_in_registry): Change DEBUG1 to DEBUG2, fixes compilation
 -	error.
  
- 2003-01-19  Miguel Coca  <mcoca at gnu.org>
- 
- 	* w32-io.c (_gpgme_io_select): Add missing argument in calls to
- 	DEBUG_BEGIN.
- 	* w32-util.c: Include "sema.h".
- 	(find_program_in_registry): Change DEBUG1 to DEBUG2, fixes compilation
- 	error.
- 
--2003-01-19  Marcus Brinkmann  <marcus at g10code.de>
++2003-01-30  Marcus Brinkmann  <marcus at g10code.de>
  
--	* rungpg.c (_gpgme_engine_ops_gpg): Remove gpg_start.
--	(gpg_start): Rename to ...
--	(start): ... this function.  Change arguments to GpgObject.
--	(gpg_decrypt): Call start.
--	(gpg_edit): Likewise.
--	(gpg_encrypt): Likewise.
--	(gpg_encrypt_sign): Likewise.
--	(gpg_export): Likewise.
--	(gpg_import): Likewise.
--	(gpg_keylist): Likewise.
--	(gpg_keylist_ext): Likewise.
--	(gpg_trustlist): Likewise.
--	(gpg_verify): Likewise.
++	* types.h (EngineObject): Move typedef to ...
++	* engine.h: ... here.
++	* types.h (GpgObject): Move typedef to ...
++	* rungpg.c: ... here.
++	* types.h (GpgsmObject): Move typedef to ...
++	* engine-gpgsm.c: ... here.
  
--	* engine-gpgsm.c (_gpgme_engine_ops_encrypt): Remove gpgsm_start.
--	(gpgsm_start): Rename to ...
--	(struct gpgsm_object_s): Remove member command.
--	(gpgsm_release): Don't free command.
--	(start): ... this function.  Change arguments to GpgsmObject and
--	const char *.
--	(gpgsm_decrypt): Call start.
--	(gpgsm_delete): Likewise.
--	(gpgsm_encrypt): Likewise.
--	(gpgsm_export): Likewise.
--	(gpgsm_genkey): Likewise.
--	(gpgsm_import): Likewise.
--	(gpgsm_keylist): Likewise.
--	(gpgsm_keylist_ext): Likewise.
--	(gpgsm_verify): Likewise.
++	* util.h (return_if_fail, return_null_if_fail,
++	return_val_if_fail): Remove macro.
++	* gpgme.c (gpgme_cancel): Don't use return_if_fail.
++	* key.c (gpgme_key_ref): Likewise.
++	* signers.c (gpgme_signers_enum): Likewise.
++	(gpgme_signers_clear): Likewise.
  
--	* decrypt.c (_gpgme_decrypt_start): Don't call
--	_gpgme_engine_start.
--	* delete.c (_gpgme_op_delete_start): Likewise.
--	* edit.c (_gpgme_op_edit_start): Likewise.
- 	* encrypt.c (_gpgme_op_encrypt_start):
- 	* encrypt-sign.c (_gpgme_op_encrypt_sign_start):
- 	* export.c (_gpgme_op_export_start): Likewise.
- 	* genkey.c (_gpgme_op_genkey_start): Likewise.
- 	* import.c (_gpgme_op_import_start): Likewise.
- 	* keylist.c (gpgme_op_keylist_ext_start): Likewise.
- 	(gpgme_op_keylist_start): Likewise.
- 	* sign.c (_gpgme_op_sign_start): Likewise.
- 	* trustlist.c (gpgme_op_trustlist_start): Likewise.
- 	* verify.c (_gpgme_op_verify_start): Likewise.
 -	* encrypt.c (_gpgme_op_encrypt_start): 
 -	* encrypt-sign.c (_gpgme_op_encrypt_sign_start): 
 -	* export.c (_gpgme_op_export_start): Likewise.
 -	* genkey.c (_gpgme_op_genkey_start): Likewise.
 -	* import.c (_gpgme_op_import_start): Likewise.
 -	* keylist.c (gpgme_op_keylist_ext_start): Likewise.
 -	(gpgme_op_keylist_start): Likewise.
 -	* sign.c (_gpgme_op_sign_start): Likewise.
 -	* trustlist.c (gpgme_op_trustlist_start): Likewise.
 -	* verify.c (_gpgme_op_verify_start): Likewise.
++	* engine-backend.h (struct engine_ops): Rename get_path to
++	get_file_name.
++	* gpgme.h (struct _gpgme_engine_info): Rename member path to
++	file_name.
++	* version.c: Do not include <stdio.h>, <stdlib.h>, context.h and
++	util.h.  Other clean ups.
++	(parse_version_number): Protect more seriously against
++	overflow.
++	(gpgme_get_engine_info): Move to ...
++	* engine.c (gpgme_get_engine_info): ... here.
++	(_gpgme_engine_get_info): Function removed.
++	(_gpgme_engine_get_path): Make static and rename to ...
++	(engine_get_file_name): .. this.
++	(_gpgme_engine_get_version): Make static and rename to ...
++	(engine_get_version): ... this.
++	(_gpgme_engine_get_req_version): Make static and rename to ...
++	(engine_get_req_version): ... this.
++	* engine.h (_gpgme_engine_get_path, _gpgme_engine_get_version,
++	_gpgme_engine_req_version, _gpgme_engine_get_info.): Remove
++	prototypes.
  
--	* engine-backend.h (struct engine_ops): Remove member start.
++	* gpgme.h (enum GpgmeProtocol): Remove GPGME_PROTOCOL_AUTO.
++	* gpgme.c (gpgme_set_protocol): Don't handle GPGME_PROTOCOL_AUTO.
++	(gpgme_get_protocol_name): New function.
  
--	* engine.h (_gpgme_engine_start): Remove prototype.
--	* engine.c (_gpgme_engine_start): Remove function.
++	* engine-backend.h (struct engine_ops): New member
++	get_req_version, remove member check_version.
++	* engine.h (_gpgme_Engine_get_version): New prototype.
++	* rungpg.c (gpg_get_req_version): New function.
++	(gpg_check_version): Function removed.
++	(_gpgme_engine_ops_gpg): Add gpg_get_req_version, remove
++	gpg_check_version.
++	* engine-gpgsm.c (gpgsm_get_req_version): New function.
++	(gpgsm_check_version): Function removed.
++	(_gpgme_engine_ops_gpgsm): Add gpgsm_get_req_version, remove
++	gpgsm_check_version.
++	* engine.c: Include ops.h.
++	 (_gpgme_engine_get_req_version): New function.
++	(gpgme_engine_check_version): Rewritten.
++	* version.c (gpgme_get_engine_info): Rewritten.
++	* gpgme.h (gpgme_engine_info): New structure.
++	(GpgmeEngineInfo): New type.
  
  2003-01-06  Werner Koch  <wk at gnupg.org>
  
@@@ -5218,6 -5236,6 +5243,10 @@@
  	* keylist.c (gpgme_op_keylist_ext_start): Always use our own FD
  	table (eg use synchronous mode).
  
++2002-06-27  Marcus Brinkmann  <marcus at g10code.de>
++
++	* gpgme.h: Fix documentation of key attribute retrieval functions.
++
  2002-06-28  Marcus Brinkmann  <marcus at g10code.de>
  
  	* ops.h (_gpgme_wait_on_condition): Remove HANG argument from
@@@ -5239,11 -5257,11 +5268,7 @@@
  	table (eg use synchronous mode).
  	(gpgme_op_trustlist_next): Remove HANG argument from
  	_gpgme_wait_on_condition.  Check its return value.
 -	
 -2002-06-27  Marcus Brinkmann  <marcus at g10code.de>
 -
 -	* gpgme.h: Fix documentation of key attribute retrieval functions.
  
- 2002-06-27  Marcus Brinkmann  <marcus at g10code.de>
- 
- 	* gpgme.h: Fix documentation of key attribute retrieval functions.
- 
  2002-06-26  Werner Koch  <wk at gnupg.org>
  
  	* engine-gpgsm.c (map_assuan_error): Map No_Data_Available to EOF.
@@@ -5847,6 -5865,6 +5872,12 @@@
  
  2002-02-25  Marcus Brinkmann  <marcus at g10code.de>
  
++	* verify.c (_gpgme_verify_status_handler): Parse the args line to
++	see if the problem is due to a missing key, and report that back
++	to the user.
++
++2002-02-25  Marcus Brinkmann  <marcus at g10code.de>
++
  	* engine.c (_gpgme_engine_op_encrypt_sign): New function.
  	* engine.h (_gpgme_engine_op_encrypt_sign): New prototype.
  	* rungpg.c (_gpgme_append_gpg_args_from_signers): New function.

commit 55ad4d80e278e56bd5bc4fbac837db34edd70bde
Author: Werner Koch <wk at gnupg.org>
Date:   Thu Feb 3 20:49:41 2011 +0100

    Add support for non-API GnuPG status codes.
    
    As an example stub code for DECRYTPION_INFO has been added.  Note
    that the status codes in gpgme.h do only make sense for the edit
    interactor interface and thus certain codes don't need to be part of
    the public interface.

diff --git a/src/ChangeLog b/src/ChangeLog
index f891d98..9b1ef8d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2011-02-03  Werner Koch  <wk at g10code.com>
+
+	* extra-stati.h: New.
+	* mkstatus: Extend to also process extra-stati.h
+	* Makefile.am (main_sources): Add extra-stati.h
+	(status-table.h): Depend on extra-stati.h and adjust rule.
+
 2010-12-08  Werner Koch  <wk at g10code.com>
 
 	* gpgme-tool.c (strcpy_escaped_plus): New.
@@ -928,7 +935,7 @@
 
 2009-06-16  Werner Koch  <wk at g10code.com>
 
-	* version.c: Include stdlib.h. 
+	* version.c: Include stdlib.h.
 
 	* gpgme.h.in (gpgme_data_encoding_t): Add GPGME_DATA_ENCODING_URL,
 	GPGME_DATA_ENCODING_URLESC, GPGME_DATA_ENCODING_URL0.
@@ -1007,7 +1014,7 @@
 
 	* gpgme.c: Include priv-io.h.
 	(gpgme_io_read, gpgme_io_write): New.
-	* libgpgme.vers (GPGME_1.1): Add them. 
+	* libgpgme.vers (GPGME_1.1): Add them.
 	* gpgme.def: Ditto.
 
 	* Makefile.am (main_sources): Remove gpgme.h.
@@ -1471,7 +1478,7 @@
 	(_gpgme_engine_ops_gpgsm): Insert new function.
 	(gpgsm_new): Try to enable audit log support.
 	* rungpg.c (_gpgme_engine_ops_gpg): Insert dummy entry.
-	
+
 2007-11-20  Werner Koch  <wk at g10code.com>
 
 	* op-support.c (_gpgme_parse_inv_recp): Add new reason code 11.
@@ -1668,7 +1675,7 @@
 	drops to 0.
 	(find_reader, find_writer, kill_reader, kill_writer): Beautify.
 	* priv-io.h (_gpgme_io_dup): New prototype.
-	* posix-io.c (_gpgme_io_dup): New function. 
+	* posix-io.c (_gpgme_io_dup): New function.
 	* w32-io.c (_gpgme_io_dup): Likewise.
 	* w32-glib-io.c (_gpgme_io_dup): Likewise.
 	* engine-gpgsm.c (start): Reverting to version 2007-07-10.
@@ -1686,7 +1693,7 @@
 	in case of error.
 	* w32-io.c (_gpgme_io_read): Return C->error_code in ERRNO.
 	(_gpgme_io_write): Likewise.
-	
+
 	* priv-io.h (_gpgme_io_set_close_notify): Change type of HANDLER
 	to _gpgme_close_notify_handler.
 	(_gpgme_close_notify_handler): New type.
@@ -1723,7 +1730,7 @@
 2007-07-10  Marcus Brinkmann  <marcus at g10code.de>
 
 	* priv-io.h (_gpgme_io_dup): New prototype.
-	* posix-io.c (_gpgme_io_dup): New function. 
+	* posix-io.c (_gpgme_io_dup): New function.
 	* w32-io.c (_gpgme_io_dup): Likewise.
 	* w32-glib-io.c (_gpgme_io_dup): Likewise.
 	* engine-gpgsm.c (start): Use _gpgme_dup() instead of dup().
@@ -1766,7 +1773,7 @@
 	(fd_cbs): Add fd_get_fd.
 	* data-stream.c (stream_get_fd): New function.
 	(stream_cbs): Add stream_get_fd.
-	* data-mem.c (mem_cbs): Add NULL for get_fd callback.	
+	* data-mem.c (mem_cbs): Add NULL for get_fd callback.
 	* data-user.c (user_cbs): Likewise.
 	* engine-gpgsm.c (gpgsm_set_fd) [USE_DESCRIPTOR_PASSING]: Try to
 	short-cut by passing the data descriptor directly.
@@ -1811,7 +1818,7 @@
 	* engine-gpgsm.c (gpgsm_new): Move code to dup status_fd to ...
 	(start): ... here.
 	* posix-io.c (_gpgme_io_recvmsg, _gpgme_io_sendmsg): New functions.
-	
+
 	* engine.h (_gpgme_engine_new): Remove arguments lc_ctype and
 	lc_messages from prototype.
 	(_gpgme_engine_set_locale): New prototype.
@@ -2058,7 +2065,7 @@
 	(libgpgme_pth_la_SOURCES): Add $(system_components_not_extra).
 	(libgpgme_glib_la_LDFLAGS, libgpgme_glib_la_DEPENDENCIES,
 	(libgpgme_glib_la_LIBADD, libgpgme_glib_la_CFLAGS)
-	[BUILD_W32_GLIB]: New variables. 
+	[BUILD_W32_GLIB]: New variables.
 	* gpgme-config.in (glib): New option.
 	* gpgme.m4 (AM_PATH_GPGME_GLIB): New macro.
 
@@ -2254,7 +2261,7 @@
 	* gpgme.def: New.
 	* versioninfo.rc.in: New.
 	* Makefile.am: Addes support for building a W32 DLL.
-	
+
 	* ttyname_r.c (ttyname_r) [W32]: Return error.
 	* ath-compat.c [W32]: select and co are not yet supported; return
 	error.
@@ -2266,7 +2273,7 @@
 	(_gpgme_stpcpy): .. this and made inline.  This avoids duplicate
 	definitions when linking statically.
 	* stpcpy.c: Removed.
-	
+
 2005-07-27  Marcus Brinkmann  <marcus at g10code.de>
 
 	* gpgme.h (gpgme_status_code_t): Add GPGME_STATUS_PLAINTEXT.
@@ -2392,7 +2399,7 @@
 	* data.c, engine-gpgsm.c, posix-io.c, rungpg.c, version.c,
 	w32-io.c, wait-private.c, wait-global.c, wait-user.c, wait.c:
 	Change all includes of "io.h" to "priv-io.h"
-	
+
 2005-03-09  Werner Koch  <wk at g10code.com>
 
 	* w32-util.c (_gpgme_get_gpg_path, _gpgme_get_gpgsm_path): Do not
@@ -2408,7 +2415,7 @@
 	files.
 
 2005-03-07  Timo Schulz  <twoaday at g10code.de>
- 
+
         * gpgme.h: [_WIN32] Removed ssize_t typedef.
         * ath.h: [_WIN32] Added some (dummy) types.
         * io.h: [_WIN32] include stdio.h.
@@ -2548,7 +2555,7 @@
 
 	* data.c (_gpgme_data_outbound_handler): Close the file descriptor
 	if we get an EPIPE.
-	
+
 	* data-stream.c (stream_seek): Call ftello and return the current
 	offset.
 	* data.h (struct gpgme_data): Change type of data.mem.offset to
@@ -2711,7 +2718,7 @@
 
 2004-02-17  Werner Koch  <wk at gnupg.org>
 
-	* gpgme.h: Add GPGME_KEYLIST_MODE_VALIDATE. 
+	* gpgme.h: Add GPGME_KEYLIST_MODE_VALIDATE.
 	* engine-gpgsm.c (gpgsm_keylist): Send this to gpgsm.
 
 2004-02-15  Werner Koch  <wk at gnupg.org>
@@ -3114,7 +3121,7 @@
 	* engine.c: Rename EngineObject to engine_t in the file.  Also
 	EngineStatusHandler to engine_status_handler_t,
 	EngineCommandHandler to engine_command_handler_t and
-	EngineColonLineHandler to engine_colon_line_handler.	
+	EngineColonLineHandler to engine_colon_line_handler.
 	* rungpg.c (start): Likewise.
 	* engine-gpgsm.c: Likewise.
 	* engine-backend.h (struct engine_ops): Likewise
@@ -3613,7 +3620,7 @@
 	(gpgme_op_sign): Likewise.
 	* encrypt-sign.c (_gpgme_op_encrypt_sign_start): Call
 	_gpgme_op_sign_init_result.
-	
+
 	* delete.c: Include <errno.h> and "gpgme.h", but not "util.h" or
 	"key.h".
 	(enum delete_problem): Move into function delete_status_handler.
@@ -3699,7 +3706,7 @@
 	(_gpgme_data_inbound_handler): Expand _gpgme_data_append, because
 	it will go.  Do not assert DH.
 	(_gpgme_data_outbound_handler): Do not assert DH.
-	
+
 	* export.c: Do not include <stdlib.h>, "debug.h" and "util.h", but
 	"gpgme.h".
 	(export_status_handler): Change type of first argument to void *.
@@ -3716,7 +3723,7 @@
 	* key.c (gpgme_key_get_string_attr): Fix validity attribute.
 
 2003-04-24  Marcus Brinkmann  <marcus at g10code.de>
-	
+
 	* gpgme.h (struct _gpgme_op_genkey_result): New structure.
 	(GpgmeGenKeyResult): New type.
 	(gpgme_op_genkey): Drop last argument.
@@ -4060,7 +4067,7 @@
 	* version.c (gpgme_get_engine_info): Rewritten.
 	* gpgme.h (gpgme_engine_info): New structure.
 	(GpgmeEngineInfo): New type.
-	
+
 2003-01-29  Marcus Brinkmann  <marcus at g10code.de>
 
 	* types.h: Remove byte and ulong types.
@@ -4205,7 +4212,7 @@
 
 	* key.c (gpgme_key_sig_get_string_attr): Use validity_to_string
 	instead otrust_to_string to calculate validity.
-	
+
 2003-01-19  Miguel Coca  <mcoca at gnu.org>
 
 	* w32-io.c (_gpgme_io_select): Add missing argument in calls to
@@ -4250,8 +4257,8 @@
 	_gpgme_engine_start.
 	* delete.c (_gpgme_op_delete_start): Likewise.
 	* edit.c (_gpgme_op_edit_start): Likewise.
-	* encrypt.c (_gpgme_op_encrypt_start): 
-	* encrypt-sign.c (_gpgme_op_encrypt_sign_start): 
+	* encrypt.c (_gpgme_op_encrypt_start):
+	* encrypt-sign.c (_gpgme_op_encrypt_sign_start):
 	* export.c (_gpgme_op_export_start): Likewise.
 	* genkey.c (_gpgme_op_genkey_start): Likewise.
 	* import.c (_gpgme_op_import_start): Likewise.
@@ -4323,7 +4330,7 @@
 	(mem_release): Change return type to void.
 	* data-user.c (user_read): Change return type to ssize_t.
 	(user_release): Change return type to void.
-	* data-compat.c (old_user_read): Change return type to ssize_t.	
+	* data-compat.c (old_user_read): Change return type to ssize_t.
 	* gpgme.h (GpgmeDataReadCb): Likewise.
 	(gpgme_data_read): Likewise.
 	(GpgmeDataSeekCb): Change return type to off_t.
@@ -4436,7 +4443,7 @@
 	_gpgme_data_append_string_for_xml rather than
 	_gpgme_data_append_string for the field content.
 	Submitted by Miguel Coca <e970095 at zipi.fi.upm.es>.
-	
+
 2002-10-10  Marcus Brinkmann  <marcus at g10code.de>
 
 	* rungpg.h, engine-gpgsm.h: File removed.
@@ -4798,7 +4805,7 @@
 	* import.c (_gpgme_op_import_start): Likewise.
 	* sign.c (_gpgme_op_sign_start): Likewise.
 	* verify.c (_gpgme_op_verify_start): Likewise.
-	
+
 	* encrypt.c (gpgme_op_encrypt): Remove hack that returns invalid
 	no recipient if no data was returned.
 	* encrypt-sign.c (gpgme_op_encrypt_sign): Remove hack that returns
@@ -4833,7 +4840,7 @@
 	(build_argv): Use new member INBOUND to determine direction of
 	file descriptor.  Don't check the data type.
 	* rungpg.h (_gpgme_gpg_add_data): Add new argument to prototype.
-	
+
 	* gpgme.c (gpgme_get_op_info): Don't call
 	_gpgme_data_get_as_string if CTX->op_info is NULL.
 
@@ -4968,7 +4975,7 @@
 
 2002-08-23  Werner Koch  <wk at gnupg.org>
 
-	* gpgme-config.in: Made --prefix work for --libs. 
+	* gpgme-config.in: Made --prefix work for --libs.
 
 2002-08-21  Marcus Brinkmann  <marcus at g10code.de>
 
@@ -4994,7 +5001,7 @@
 
 	* gpgme.m4: Replaced with a new and faster version.  This does not
 	anymore try to build test programs.  If we really need test
-	programs, we should add an option to gpgme-config to do so. 
+	programs, we should add an option to gpgme-config to do so.
 
 	* vasprintf.c (int_vasprintf): Hack to handle NULL passed for %s.
 
@@ -5019,7 +5026,7 @@
 	* gpgme.h (GPGME_KEYLIST_MODE_SIGS): New.
 	* rungpg.c (_gpgme_gpg_op_keylist): Include sigs in listing depending
 	non the list mode.
-	
+
 	* key.c (gpgme_key_get_string_attr): Use GPGME_ATTR_TYPE to return
 	information about the key type (PGP or X.509).
 	(gpgme_key_get_ulong_attr): Likewise.
@@ -5101,7 +5108,7 @@
 	* rungpg.c (struct gpg_object_s): Likewise for CMD.code.
 
 	These changes add an edit operation to GPGME:
-	
+
 	* context.h (struct gpgme_context_s): New member RESULT.edit.  *
 	ops.h: Add prototype for _gpgme_release_edit_result and
 	_gpgme_passphrase_command_handler.
@@ -5232,7 +5239,7 @@
 	table (eg use synchronous mode).
 	(gpgme_op_trustlist_next): Remove HANG argument from
 	_gpgme_wait_on_condition.  Check its return value.
-	
+
 2002-06-27  Marcus Brinkmann  <marcus at g10code.de>
 
 	* gpgme.h: Fix documentation of key attribute retrieval functions.
@@ -5308,7 +5315,7 @@
 2002-06-12  Werner Koch  <wk at gnupg.org>
 
 	* keylist.c (struct keylist_result_s): New.
-	(_gpgme_release_keylist_result): Release it here 
+	(_gpgme_release_keylist_result): Release it here
 	(keylist_status_handler): Handle truncated.
 	(append_xml_keylistinfo): New.
 	* gpgme.c (_gpgme_release_result): and use it here.
@@ -5661,7 +5668,7 @@
 
 	* verify.c (_gpgme_verify_status_handler): Handle TRUST_* status
 	lines so that a claim can be made without looking up the key.
-	(gpgme_get_sig_string_attr): New. 
+	(gpgme_get_sig_string_attr): New.
 	(gpgme_get_sig_ulong_attr): New.
 
 	* gpgme.h (GpgmeAttr): Added GPGME_ATTR_SIG_STATUS.
@@ -5671,7 +5678,7 @@
 
 	* gpgme.h (GpgmeSigStat): Add _GOOD_EXP and _GOOD_EXPKEY.
 	* verify.c (_gpgme_verify_status_handler, finish_sig): Handle
-	these new status codes.  Store the expiration time 
+	these new status codes.  Store the expiration time
 
 2002-04-27  Werner Koch  <wk at gnupg.org>
 
@@ -5845,7 +5852,7 @@
 	* rungpg.c (_gpgme_append_gpg_args_from_signers): New function.
 	(_gpgme_gpg_op_sign): Use that new function.
 	(_gpgme_gpg_op_encrypt_sign): New function.
-	* rungpg.h (_gpgme_gpg_op_encrypt_sign): New prototype. 
+	* rungpg.h (_gpgme_gpg_op_encrypt_sign): New prototype.
 	* gpgme.h (gpgme_op_encrypt_sign_start): New prototype.
 	(gpgme_op_encrypt_sign): Likewise.
 	* Makefile.am (libgpgme_la_SOURCES): Add encrypt-sign.c.
@@ -5857,7 +5864,7 @@
 	(_gpgme_encrypt_status_handler): ... this and make non-static.
 	* encrypt.c (gpgme_op_encrypt_start): Use new status handler name.
 	* sign.c (gpgme_op_sign_start): Likewise.
-	
+
 2002-02-25  Marcus Brinkmann  <marcus at g10code.de>
 
 	* verify.c (_gpgme_verify_status_handler): Parse the args line to
@@ -6460,7 +6467,7 @@
 	server process from wait queue.
 	(_gpgme_gpgsm_op_verify, _gpgme_gpgsm_start,
 	_gpgme_gpgsm_set_status_handler, gpgms_status_handler): New function.
-	
+
 	* engine.c (_gpgme_engine_start): Implement for GPGME_PROTOCOL_CMS.
 	(_gpgme_engine_set_status_handler): Likewise.
 	(_gpgme_engine_op_verify): Likewise.
@@ -6544,7 +6551,7 @@
 	* engine.c: Likewise.
 	* engine-gpgsm.h: Likewise.
 	* engine-gpgsm.c: Likewise.
-	
+
 	* rungpg.c (_gpgme_gpg_get_version): New function.
 	(_gpgme_gpg_check_version): Likewise.
 	* rungpg.h: Add prototypes for _gpgme_gpg_get_version and
@@ -6739,7 +6746,7 @@
 
 	* keylist.c (finish_key): Shortcut for no tmp_key.  Changed all
 	callers to use this function without a check for tmp_key.
-	
+
 	* keylist.c (gpgme_op_keylist_next): Reset the key_cond after
 	emptying the queue.  Bug reported by Stéphane Corthésy.
 
@@ -6771,12 +6778,12 @@
 	* keylist.c (keylist_colon_handler): Do a finish key if we receive
 	an EOF here.  This is probably the reason for a lot of bugs
 	related to keylisting.  It is so obvious.  Kudos to Enno Cramer
-	for pointing that out. 
+	for pointing that out.
 
 2001-08-28  Werner Koch  <wk at gnupg.org>
 
 	* gpgme.c, gpgme.h (gpgme_get_op_info): New.
-	(_gpgme_set_op_info): New. 
+	(_gpgme_set_op_info): New.
 	(_gpgme_release_result): Reset the op_info here.
 	* sign.c (append_xml_siginfo): New.
 	(sign_status_handler): Store the sig create information.
@@ -6826,12 +6833,12 @@
 2001-05-01  José Carlos García Sogo <jose at 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 
+	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 
+
+	* 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 at gnupg.org>
 
 	* key.c, key.h (_gpgme_key_cache_init): New.
@@ -6854,14 +6861,14 @@
 
 	* 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. 
+	race condition.
 
 2001-04-02  Werner Koch  <wk at 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 
+	* 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
@@ -6889,7 +6896,7 @@
 
 2001-03-14  Werner Koch  <wk at gnupg.org>
 
-	* w32-io.c (destroy_reader,destroy_writer): Fixed syntax error. 
+	* w32-io.c (destroy_reader,destroy_writer): Fixed syntax error.
 	Thanks to Jan Oliver Wagner.
 
 2001-03-13  Werner Koch  <wk at gnupg.org>
@@ -6897,7 +6904,7 @@
 	* 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_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.
@@ -6919,11 +6926,11 @@
 
 2001-02-20  Werner Koch  <wk at gnupg.org>
 
-	* w32-io.c (destroy_reader,kill_reader): New. 
+	* 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. 
+	* 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.
@@ -6947,7 +6954,7 @@
 	* posix-io.c (_gpgme_io_set_close_notify): New.
 	(_gpgme_io_close): Do the notification.
 
-	* rungpg.c (close_notify_handler): New. 
+	* 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
@@ -6965,19 +6972,19 @@
 
 	* keylist.c (gpgme_op_keylist_start): Cancel a pending request.
 
-	* posix-io.c (_gpgme_io_read): Add some debug output. 
+	* 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 at gnupg.org>
 
 	Enhanced the signature verification, so that it can how handle
-	more than one signature and is able to return more information on 
+	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. 
+	* gpgme.h: Add stdio.h.
 	(GpgmeSigStat): New status DIFF.
 
 2001-02-01  Werner Koch  <wk at gnupg.org>
@@ -6992,8 +6999,8 @@
 
 	* 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. 
+	(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 ;-)
@@ -7014,7 +7021,7 @@
 	test his fix :-)
 
 	* w32-io.c: Does now use reader threads, so that we can use
-	WaitForMultipleObjects. 
+	WaitForMultipleObjects.
 	* sema.h, posix-sema.c, w32-sema.c: Support for Critcial sections.
 	Does currently only work for W32.
 
diff --git a/src/Makefile.am b/src/Makefile.am
index 0065c07..18c8b3b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,18 +1,18 @@
 # Copyright (C) 2000 Werner Koch (dd9jn)
 # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007 g10 Code GmbH
-# 
+#
 # This file is part of GPGME.
-# 
+#
 # GPGME is free software; you can redistribute it and/or modify it
 # under the terms of the GNU Lesser General Public License as
 # published by the Free Software Foundation; either version 2.1 of the
 # License, or (at your option) any later version.
-# 
+#
 # GPGME is distributed in the hope that it will be useful, but WITHOUT
 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU Lesser General Public
 # License along with this program; if not, see <http://www.gnu.org/licenses/>.
 
@@ -99,7 +99,7 @@ endif
 if HAVE_UISERVER
 uiserver_components = engine-uiserver.c
 else
-uiserver_components = 
+uiserver_components =
 endif
 
 # These are the source files common to all library versions.  We used
@@ -120,6 +120,7 @@ main_sources =								\
 	import.c export.c genkey.c delete.c edit.c getauditlog.c        \
 	opassuan.c passwd.c                                             \
 	engine.h engine-backend.h engine.c engine-gpg.c status-table.h	\
+	extra-stati.h 	                                                \
 	$(gpgsm_components) $(assuan_components) $(gpgconf_components)  \
 	$(uiserver_components)						\
 	$(g13_components) vfs-mount.c vfs-create.c			\
@@ -128,7 +129,7 @@ main_sources =								\
 	debug.c debug.h gpgme.c version.c error.c
 
 libgpgme_la_SOURCES = $(main_sources)					\
-	ath.h ath.c $(system_components_not_extra) 
+	ath.h ath.c $(system_components_not_extra)
 libgpgme_pthread_la_SOURCES = $(main_sources)				\
 	ath.h ath-pthread.c $(system_components_not_extra)
 libgpgme_pth_la_SOURCES = $(main_sources)				\
@@ -241,8 +242,9 @@ endif
 noinst_PROGRAMS = gpgme-tool
 gpgme_tool_LDADD = libgpgme.la
 
-status-table.h : gpgme.h
-	$(srcdir)/mkstatus < $(builddir)/gpgme.h > status-table.h
+status-table.h : gpgme.h extra-stati.h
+	cat $(builddir)/gpgme.h $(srcdir)extra-stati.h \
+          | $(srcdir)/mkstatus  > status-table.h
 
 install-data-local: install-def-file
 
diff --git a/src/decrypt.c b/src/decrypt.c
index 87ae460..c017b90 100644
--- a/src/decrypt.c
+++ b/src/decrypt.c
@@ -3,17 +3,17 @@
    Copyright (C) 2001, 2002, 2003, 2004 g10 Code GmbH
 
    This file is part of GPGME.
- 
+
    GPGME is free software; you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as
    published by the Free Software Foundation; either version 2.1 of
    the License, or (at your option) any later version.
-   
+
    GPGME is distributed in the hope that it will be useful, but
    WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.
-   
+
    You should have received a copy of the GNU Lesser General Public
    License along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
@@ -31,6 +31,8 @@
 #include "util.h"
 #include "context.h"
 #include "ops.h"
+#include "extra-stati.h"
+
 
 
 typedef struct
@@ -39,7 +41,7 @@ typedef struct
 
   int okay;
   int failed;
-  
+
   /* A pointer to the next pointer of the last recipient in the list.
      This makes appending new invalid signers painless while
      preserving the order.  */
@@ -200,6 +202,10 @@ _gpgme_decrypt_status_handler (void *priv, gpgme_status_code_t code,
 	return gpg_error (GPG_ERR_NO_DATA);
       break;
 
+    case GPGME_STATUS_DECRYPTION_INFO:
+      /* Fixme: Provide a way to return the used symmetric algorithm. */
+      break;
+
     case GPGME_STATUS_DECRYPTION_OKAY:
       opd->okay = 1;
       break;
@@ -286,7 +292,7 @@ _gpgme_decrypt_status_handler (void *priv, gpgme_status_code_t code,
       err = _gpgme_parse_plaintext (args, &opd->result.file_name);
       if (err)
 	return err;
-      
+
     default:
       break;
     }
diff --git a/src/extra-stati.h b/src/extra-stati.h
new file mode 100644
index 0000000..59cccf9
--- /dev/null
+++ b/src/extra-stati.h
@@ -0,0 +1,29 @@
+/* extra-stati.lst - Extra GnuPG status codes.
+   Copyright 2011 g10 Code GmbH
+
+   This file is free software; as a special exception the author gives
+   unlimited permission to copy and/or distribute it, with or without
+   modifications, as long as this notice is preserved.
+
+   This file is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY, to the extent permitted by law; without even
+   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+   PURPOSE.  */
+
+/* A list of internal status code to be processed by mkstatus.  Those
+ * status codes are not part of the API but internally required by
+ * gpgme.  We use a second enum type here but make sure that the
+ * values don't clash with those of gpgme_status_code_t.
+ */
+
+enum
+  {
+    /* This value is the first used one.  It needs to be larger than
+       the last value of gpgme_status_code_t.  There is no need to
+       explictly list the values because they are internal only.  */
+    _GPGME_STATUS_FIRST_EXTRA = 192,
+
+    GPGME_STATUS_DECRYPTION_INFO,
+
+    _GPGME_STATUS_LAST_EXTRA
+  };
diff --git a/src/mkstatus b/src/mkstatus
index e64ab19..3fbfbf9 100755
--- a/src/mkstatus
+++ b/src/mkstatus
@@ -10,12 +10,12 @@
 # under the terms of the GNU Lesser General Public License as
 # published by the Free Software Foundation; either version 2.1 of the
 # License, or (at your option) any later version.
-# 
+#
 # GPGME is distributed in the hope that it will be useful, but WITHOUT
 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
 # Public License for more details.
-# 
+#
 # You should have received a copy of the GNU Lesser General Public
 # License along with this program; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
@@ -34,16 +34,18 @@ struct status_table_s {
     gpgme_status_code_t code;
 };
 
-static struct status_table_s status_table[] = 
+static struct status_table_s status_table[] =
 {
 EOF
 
 awk '
-/GPGME_STATUS_ENTER/      { okay = 1 }
-!okay                     { next }
-/}/                       { exit 0 }
+okay == 0 && /GPGME_STATUS_ENTER/        { okay = 1 }
+okay == 2 && /_GPGME_STATUS_FIRST_EXTRA/ { okay = 1; next }
+okay != 1                                { next }
+/}/                                      { okay = 2 }
+/_GPGME_STATUS_LAST_EXTRA/               { exit 0 }
 /GPGME_STATUS_[A-Za-z_]*/ { sub (/,/, "", $1); printf "  { \"%s\", %s },\n", substr($1,14), $1 }
-' | sort  
+' | sort
 
 cat <<EOF
   {NULL, 0}

-----------------------------------------------------------------------

Summary of changes:
 src/ChangeLog     |  387 +++++++++++++++++++++++++++--------------------------
 src/Makefile.am   |   18 ++-
 src/decrypt.c     |   16 ++-
 src/extra-stati.h |   29 ++++
 src/mkstatus      |   16 ++-
 5 files changed, 256 insertions(+), 210 deletions(-)
 create mode 100644 src/extra-stati.h


hooks/post-receive
-- 
GnuPG Made Easy
http://git.gnupg.org




More information about the Gnupg-commits mailing list