diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 13 | ||||
| -rw-r--r-- | src/error.c | 21 | ||||
| -rw-r--r-- | src/gpgme.def | 3 | ||||
| -rw-r--r-- | src/gpgme.h.in | 25 | ||||
| -rw-r--r-- | src/libgpgme.vers | 3 | 
5 files changed, 57 insertions, 8 deletions
| diff --git a/src/ChangeLog b/src/ChangeLog index 73588ab0..612a9640 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,16 @@ +2010-08-18  Marcus Brinkmann  <[email protected]> + +	* gpgme.def: Add gpgme_err_code_from_syserror and gpgme_err_set_errno. +	* libgpgme.vers: Likewise. +	* gpgme.h.in (gpgme_error_from_errno): Fix return type to +	gpgme_error_t. +	(gpgme_err_code_from_syserror, gpgme_err_set_errno): New prototype. +	(gpgme_error_from_syserror): New inline function (why are +	gpgme_err_make_from_errno and gpgme_error_from_errno not inline +	functions?). +	* error.c (gpgme_error_from_errno): Fix return type to gpgme_error_t. +	(gpgme_err_set_errno, gpgme_err_code_from_syserror): New functions. +  2010-08-03  Marcus Brinkmann  <[email protected]>  	* gpgme-tool.c (result_encrypt_to_xml, result_sign_to_xml) diff --git a/src/error.c b/src/error.c index 6f37ef7d..f970e682 100644 --- a/src/error.c +++ b/src/error.c @@ -74,6 +74,25 @@ gpgme_err_code_to_errno (gpgme_err_code_t code)    return gpg_err_code_from_errno (code);  } + +/* Retrieve the error code directly from the ERRNO variable.  This +   returns GPG_ERR_UNKNOWN_ERRNO if the system error is not mapped +   (report this) and GPG_ERR_MISSING_ERRNO if ERRNO has the value 0. */ +gpgme_err_code_t +gpgme_err_code_from_syserror (void) +{ +  return gpg_err_code_from_syserror (); +} + + +/* Set the ERRNO variable.  This function is the preferred way to set +   ERRNO due to peculiarities on WindowsCE.  */ +void +gpgme_err_set_errno (int err) +{ +  gpg_err_set_errno (err); +} +  /* Return an error value with the error source SOURCE and the system     error ERR.  */ @@ -85,7 +104,7 @@ gpgme_err_make_from_errno (gpg_err_source_t source, int err)  /* Return an error value with the system error ERR.  */ -gpgme_err_code_t +gpgme_error_t  gpgme_error_from_errno (int err)  {    return gpgme_error (gpg_err_code_from_errno (err)); diff --git a/src/gpgme.def b/src/gpgme.def index 1a685ffe..9990b334 100644 --- a/src/gpgme.def +++ b/src/gpgme.def @@ -199,5 +199,8 @@ EXPORTS      gpgme_op_passwd_start                 @152      gpgme_op_passwd                       @153 +    gpgme_err_code_from_syserror          @154 +    gpgme_err_set_errno                   @155 +  ; END diff --git a/src/gpgme.h.in b/src/gpgme.h.in index eed9daa4..f84cd465 100644 --- a/src/gpgme.h.in +++ b/src/gpgme.h.in @@ -164,30 +164,41 @@ const char *gpgme_strerror (gpgme_error_t err);     beginning of the error string as fits into the buffer.  */  int gpgme_strerror_r (gpg_error_t err, char *buf, size_t buflen); -  /* Return a pointer to a string containing a description of the error     source in the error value ERR.  */  const char *gpgme_strsource (gpgme_error_t err); -  /* Retrieve the error code for the system error ERR.  This returns     GPG_ERR_UNKNOWN_ERRNO if the system error is not mapped (report     this).  */  gpgme_err_code_t gpgme_err_code_from_errno (int err); -  /* Retrieve the system error for the error code CODE.  This returns 0     if CODE is not a system error code.  */  int gpgme_err_code_to_errno (gpgme_err_code_t code); -   +/* Retrieve the error code directly from the ERRNO variable.  This +   returns GPG_ERR_UNKNOWN_ERRNO if the system error is not mapped +   (report this) and GPG_ERR_MISSING_ERRNO if ERRNO has the value 0. */ +gpgme_err_code_t gpgme_err_code_from_syserror (void); + +/* Set the ERRNO variable.  This function is the preferred way to set +   ERRNO due to peculiarities on WindowsCE.  */ +void gpgme_err_set_errno (int err); +  /* Return an error value with the error source SOURCE and the system -   error ERR.  */ +   error ERR.  FIXME: Should be inline.  */  gpgme_error_t gpgme_err_make_from_errno (gpgme_err_source_t source, int err); +/* Return an error value with the system error ERR.  FIXME: Should be inline.  */ +gpgme_error_t gpgme_error_from_errno (int err); + -/* Return an error value with the system error ERR.  */ -gpgme_err_code_t gpgme_error_from_errno (int err); +static _GPGME_INLINE gpgme_error_t +gpgme_error_from_syserror (void) +{ +  return gpgme_error (gpgme_err_code_from_syserror ()); +}  /* The possible encoding mode of gpgme_data_t objects.  */ diff --git a/src/libgpgme.vers b/src/libgpgme.vers index 9d927cef..3477d318 100644 --- a/src/libgpgme.vers +++ b/src/libgpgme.vers @@ -204,6 +204,9 @@ GPGME_1.0 {      gpgme_trust_item_get_string_attr;      gpgme_trust_item_release; +    gpgme_err_code_from_syserror; +    gpgme_err_set_errno; +    local:      *; | 
