/* * for the MontaukOS NetSurf port. * * MontaukOS has no iconv. Rather than port GNU libiconv, this implements the * three-function iconv API on top of libparserutils' charset codecs, which are * already in the ports sysroot. * * That is a good fit rather than a bodge: libparserutils decodes a charset to * UCS-4 and encodes UCS-4 back out, so iconv() is decode-then-encode through a * UCS-4 staging buffer. The supported set is whatever libparserutils supports * -- UTF-8, UTF-16, ASCII, ISO-8859-x and the Windows-125x range -- which is * exactly the set the HTML parser can handle anyway, so nothing is lost that * would otherwise have worked. * * NetSurf touches iconv only from utils/utf8.c. * * NOT SUPPORTED: the "//TRANSLIT" and "//IGNORE" suffixes glibc accepts. They * are stripped and ignored; conversion uses libparserutils' LOOSE error mode, * which substitutes rather than failing. */ #ifndef _MONTAUK_COMPAT_ICONV_H_ #define _MONTAUK_COMPAT_ICONV_H_ #include typedef void *iconv_t; #ifdef __cplusplus extern "C" { #endif iconv_t iconv_open(const char *tocode, const char *fromcode); size_t iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft); int iconv_close(iconv_t cd); #ifdef __cplusplus } #endif #endif