aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32-add.h
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-04-21 07:51:45 +0000
committerWerner Koch <[email protected]>2016-04-21 07:51:45 +0000
commit1cd1ddb4ac2c13223a073f6d77696bcd6253e2ff (patch)
tree65e6a250fe4e3dace42e4554d3c78b838e5982b9 /src/w32-add.h
parentAdd file w32-iconv.c (diff)
downloadlibgpg-error-1cd1ddb4ac2c13223a073f6d77696bcd6253e2ff.tar.gz
libgpg-error-1cd1ddb4ac2c13223a073f6d77696bcd6253e2ff.zip
w32: Add iconv functions.
* src/w32-add.h (gpgrt_w32_iconv_t): New. (gpgrt_w32_iconv_open, gpgrt_w32_iconv_close, gpgrt_w32_iconv): New. ( GPGRT_ENABLE_W32_ICONV_MACROS): New * src/w32-iconv.c: Change license to LGPLv2.1+. Dispable mlang feature. Remove external DLL loading. Simplify iconv functions. Use cleaner context struct pattern. Use gpgrt namespace. * src/gpg-error.def.in: Add new functions. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'src/w32-add.h')
-rw-r--r--src/w32-add.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/w32-add.h b/src/w32-add.h
index 02848ac..5db6500 100644
--- a/src/w32-add.h
+++ b/src/w32-add.h
@@ -38,3 +38,21 @@ int _gpg_w32_gettext_use_utf8 (int value);
#endif /*GPG_ERR_ENABLE_GETTEXT_MACROS*/
+/* A simple iconv implementation w/o the need for an extra DLL. */
+struct _gpgrt_w32_iconv_s;
+typedef struct _gpgrt_w32_iconv_s *gpgrt_w32_iconv_t;
+
+gpgrt_w32_iconv_t gpgrt_w32_iconv_open (const char *tocode,
+ const char *fromcode);
+int gpgrt_w32_iconv_close (gpgrt_w32_iconv_t cd);
+size_t gpgrt_w32_iconv (gpgrt_w32_iconv_t cd,
+ const char **inbuf, size_t *inbytesleft,
+ char **outbuf, size_t *outbytesleft);
+
+#ifdef GPGRT_ENABLE_W32_ICONV_MACROS
+# define ICONV_CONST const
+# define iconv_t gpgrt_w32_iconv_t
+# define iconv_open(a,b) gpgrt_w32_iconv_open ((a), (b))
+# define iconv_close(a) gpgrt_w32_iconv_close ((a))
+# define iconv(a,b,c,d,e) gpgrt_w32_iconv ((a),(b),(c),(d),(e))
+#endif /*GPGRT_ENABLE_W32_ICONV_MACROS*/