diff options
author | Werner Koch <[email protected]> | 2016-04-21 07:51:45 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-04-21 07:51:45 +0000 |
commit | 1cd1ddb4ac2c13223a073f6d77696bcd6253e2ff (patch) | |
tree | 65e6a250fe4e3dace42e4554d3c78b838e5982b9 /src/w32-add.h | |
parent | Add file w32-iconv.c (diff) | |
download | libgpg-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.h | 18 |
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*/ |