From 15a3f59481e6b134e80cbb9e88fffa0c9f67c8b4 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Wed, 18 Aug 2010 14:14:27 +0000 Subject: 2010-08-18 Marcus Brinkmann * 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. --- src/gpgme.h.in | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/gpgme.h.in') 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. */ -- cgit v1.2.3