2010-08-18 Marcus Brinkmann <marcus@g10code.de>
authorMarcus Brinkmann <mb@g10code.com>
Wed, 18 Aug 2010 14:14:27 +0000 (14:14 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Wed, 18 Aug 2010 14:14:27 +0000 (14:14 +0000)
        * 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.

NEWS
src/ChangeLog
src/error.c
src/gpgme.def
src/gpgme.h.in
src/libgpgme.vers

diff --git a/NEWS b/NEWS
index fd1fefb081e2b5f5d12369b21bf21d459917545b..958053a106d9a0c79067625eed8eb7476f9e4e2c 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -7,7 +7,11 @@ Noteworthy changes in version 1.3.1 (unreleased)
 
  * Interface changes relative to the 1.3.0 release:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- GPGME_EXPORT_MODE_MINIMAL  NEW.
+ GPGME_EXPORT_MODE_MINIMAL      NEW
+ gpgme_err_code_from_syserror   NEW
+ gpgme_err_set_errno            NEW
+ gpgme_error_from_errno                CHANGED: Return gpgme_error_t (compatible type).
+ gpgme_error_from_syserror      NEW
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 
index 73588ab0994958307736794d1b9b286f3dc93846..612a964096b3a57a5155a63d8618baf8d644679e 100644 (file)
@@ -1,3 +1,16 @@
+2010-08-18  Marcus Brinkmann  <marcus@g10code.de>
+
+       * 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  <marcus@g10code.de>
 
        * gpgme-tool.c (result_encrypt_to_xml, result_sign_to_xml)
index 6f37ef7d32f21e80e980d5ed8bf4a1d2784aae9b..f970e682b8ed955638339ebfa3bb2de54e2f3a69 100644 (file)
@@ -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));
index 1a685ffe680c7f8cbe679fb4e48007896914985e..9990b334d1b053a907dc60ff84a0d76e0769a589 100644 (file)
@@ -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
 
index eed9daa484d9c7a8e350140b7671bdd80845082c..f84cd465a53b592a43356a1b44e3b2f5c56bcb72 100644 (file)
@@ -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 ());
+}
 
 \f
 /* The possible encoding mode of gpgme_data_t objects.  */
index 9d927cefb4c15f13dbd43de81b0dfad36795c924..3477d318ca960c083135945615c1c7642ddf1a4c 100644 (file)
@@ -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:
     *;