From 1cd1ddb4ac2c13223a073f6d77696bcd6253e2ff Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 21 Apr 2016 09:51:45 +0200 Subject: 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 --- src/w32-add.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/w32-add.h') 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*/ -- cgit v1.2.3