1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: interface for the encoding conversion functions 3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: interface for the encoding conversion functions needed for 4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * XML basic encoding and iconv() support. 5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Related specs are 7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * rfc2044 (UTF-8 and UTF-16) F. Yergeau Alis Technologies 8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * [ISO-10646] UTF-8 and UTF-16 in Annexes 9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * [ISO-8859-1] ISO Latin-1 characters codes. 10ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * [UNICODE] The Unicode Consortium, "The Unicode Standard -- 11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Worldwide Character Encoding -- Version 1.0", Addison- 12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Wesley, Volume 1, 1991, Volume 2, 1992. UTF-8 is 13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * described in Unicode Technical Report #4. 14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * [US-ASCII] Coded Character Set--7-bit American Standard Code for 15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Information Interchange, ANSI X3.4-1986. 16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software. 18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Daniel Veillard 20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __XML_CHAR_ENCODING_H__ 23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __XML_CHAR_ENCODING_H__ 24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xmlversion.h> 26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_ICONV_ENABLED 28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <iconv.h> 29df143a5041f03a22808b59c76698770b74692815Selim Gurun#endif 30218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang#ifdef LIBXML_ICU_ENABLED 31218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang#include <unicode/ucnv.h> 32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" { 35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlCharEncoding: 39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Predefined values for some standard encodings. 41ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Libxml does not do beforehand translation on UTF8 and ISOLatinX. 42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * It also supports ASCII, ISO-8859-1, and UTF16 (LE and BE) by default. 43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Anything else would have to be translated to UTF8 before being 45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * given to the parser itself. The BOM for UTF16 and the encoding 46ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * declaration are looked at and a converter is looked for at that 47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * point. If not found the parser stops here as asked by the XML REC. A 48ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * converter can be registered by the user using xmlRegisterCharEncodingHandler 49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * but the current form doesn't allow stateful transcoding (a serious 50ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * problem agreed !). If iconv has been found it will be used 51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * automatically and allow stateful transcoding, the simplest is then 52ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * to be sure to enable iconv and to provide iconv libs for the encoding 53ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * support needed. 54ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Note that the generic "UTF-16" is not a predefined value. Instead, only 56ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * the specific UTF-16LE and UTF-16BE are present. 57ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 58ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef enum { 59ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_ERROR= -1, /* No char encoding detected */ 60ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_NONE= 0, /* No char encoding detected */ 61ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_UTF8= 1, /* UTF-8 */ 62ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_UTF16LE= 2, /* UTF-16 little endian */ 63ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_UTF16BE= 3, /* UTF-16 big endian */ 64ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_UCS4LE= 4, /* UCS-4 little endian */ 65ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_UCS4BE= 5, /* UCS-4 big endian */ 66ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_EBCDIC= 6, /* EBCDIC uh! */ 67ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_UCS4_2143=7, /* UCS-4 unusual ordering */ 68ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_UCS4_3412=8, /* UCS-4 unusual ordering */ 69ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_UCS2= 9, /* UCS-2 */ 70ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_8859_1= 10,/* ISO-8859-1 ISO Latin 1 */ 71ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_8859_2= 11,/* ISO-8859-2 ISO Latin 2 */ 72ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_8859_3= 12,/* ISO-8859-3 */ 73ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_8859_4= 13,/* ISO-8859-4 */ 74ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_8859_5= 14,/* ISO-8859-5 */ 75ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_8859_6= 15,/* ISO-8859-6 */ 76ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_8859_7= 16,/* ISO-8859-7 */ 77ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_8859_8= 17,/* ISO-8859-8 */ 78ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_8859_9= 18,/* ISO-8859-9 */ 79ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_2022_JP= 19,/* ISO-2022-JP */ 80ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_SHIFT_JIS=20,/* Shift_JIS */ 81ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_EUC_JP= 21,/* EUC-JP */ 82ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project XML_CHAR_ENCODING_ASCII= 22 /* pure ASCII */ 83ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} xmlCharEncoding; 84ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 85ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 86ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlCharEncodingInputFunc: 87ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @out: a pointer to an array of bytes to store the UTF-8 result 88ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @outlen: the length of @out 89ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @in: a pointer to an array of chars in the original encoding 90ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @inlen: the length of @in 91ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 92ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Take a block of chars in the original encoding and try to convert 93ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * it to an UTF-8 block of chars out. 94ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 95ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns the number of bytes written, -1 if lack of space, or -2 96ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * if the transcoding failed. 97ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * The value of @inlen after return is the number of octets consumed 98ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * if the return value is positive, else unpredictiable. 99ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * The value of @outlen after return is the number of octets consumed. 100ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 101ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef int (* xmlCharEncodingInputFunc)(unsigned char *out, int *outlen, 102ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const unsigned char *in, int *inlen); 103ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 104ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 105ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/** 106ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlCharEncodingOutputFunc: 107ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @out: a pointer to an array of bytes to store the result 108ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @outlen: the length of @out 109ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @in: a pointer to an array of UTF-8 chars 110ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @inlen: the length of @in 111ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 112ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Take a block of UTF-8 chars in and try to convert it to another 113ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * encoding. 114ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Note: a first call designed to produce heading info is called with 115ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * in = NULL. If stateful this should also initialize the encoder state. 116ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 117ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns the number of bytes written, -1 if lack of space, or -2 118ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * if the transcoding failed. 119ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * The value of @inlen after return is the number of octets consumed 120ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * if the return value is positive, else unpredictiable. 121ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * The value of @outlen after return is the number of octets produced. 122ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 123ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef int (* xmlCharEncodingOutputFunc)(unsigned char *out, int *outlen, 124ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const unsigned char *in, int *inlen); 125ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 126ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 127ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 128ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Block defining the handlers for non UTF-8 encodings. 129ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * If iconv is supported, there are two extra fields. 130ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 131218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang#ifdef LIBXML_ICU_ENABLED 132218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wangstruct _uconv_t { 133218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang UConverter *uconv; /* for conversion between an encoding and UTF-16 */ 134218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang UConverter *utf8; /* for conversion between UTF-8 and UTF-16 */ 135218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang}; 136218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wangtypedef struct _uconv_t uconv_t; 137218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang#endif 138ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 139ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _xmlCharEncodingHandler xmlCharEncodingHandler; 140ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr; 141ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectstruct _xmlCharEncodingHandler { 142ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project char *name; 143ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCharEncodingInputFunc input; 144ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCharEncodingOutputFunc output; 145ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_ICONV_ENABLED 146ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project iconv_t iconv_in; 147ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project iconv_t iconv_out; 148ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_ICONV_ENABLED */ 149218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang#ifdef LIBXML_ICU_ENABLED 150218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang uconv_t *uconv_in; 151218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang uconv_t *uconv_out; 152218647ebd721a259319b28f5719e89a4d0d1aaefShimeng (Simon) Wang#endif /* LIBXML_ICU_ENABLED */ 153ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}; 154ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 155ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 156ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} 157ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 158ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/tree.h> 159ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 160ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" { 161ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 162ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 163ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 164ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Interfaces for encoding handlers. 165ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 16694442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 167ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlInitCharEncodingHandlers (void); 16894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 169ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCleanupCharEncodingHandlers (void); 17094442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 171ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlRegisterCharEncodingHandler (xmlCharEncodingHandlerPtr handler); 172ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL 173ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlGetCharEncodingHandler (xmlCharEncoding enc); 174ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL 175ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlFindCharEncodingHandler (const char *name); 176ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlCharEncodingHandlerPtr XMLCALL 17794442ad4107000e6d49f9b85a46a591495a57632Selim Gurun xmlNewCharEncodingHandler (const char *name, 17894442ad4107000e6d49f9b85a46a591495a57632Selim Gurun xmlCharEncodingInputFunc input, 17994442ad4107000e6d49f9b85a46a591495a57632Selim Gurun xmlCharEncodingOutputFunc output); 180ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 181ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 182ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Interfaces for encoding names and aliases. 183ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 18494442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN int XMLCALL 185ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlAddEncodingAlias (const char *name, 186ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const char *alias); 18794442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN int XMLCALL 188ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlDelEncodingAlias (const char *alias); 189ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const char * XMLCALL 190ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlGetEncodingAlias (const char *alias); 19194442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 192ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCleanupEncodingAliases (void); 193ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlCharEncoding XMLCALL 194ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlParseCharEncoding (const char *name); 195ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const char * XMLCALL 196ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlGetCharEncodingName (xmlCharEncoding enc); 197ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 198ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 199ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Interfaces directly used by the parsers. 200ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 201ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlCharEncoding XMLCALL 202ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlDetectCharEncoding (const unsigned char *in, 203ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int len); 204ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 20594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN int XMLCALL 206ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCharEncOutFunc (xmlCharEncodingHandler *handler, 207ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlBufferPtr out, 208ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlBufferPtr in); 209ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 21094442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN int XMLCALL 211ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCharEncInFunc (xmlCharEncodingHandler *handler, 212ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlBufferPtr out, 213ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlBufferPtr in); 214ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL 215ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCharEncFirstLine (xmlCharEncodingHandler *handler, 216ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlBufferPtr out, 217ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlBufferPtr in); 21894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN int XMLCALL 219ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlCharEncCloseFunc (xmlCharEncodingHandler *handler); 220ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 221ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 222ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Export a few useful functions 223ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 224ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_OUTPUT_ENABLED 22594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN int XMLCALL 226ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project UTF8Toisolat1 (unsigned char *out, 227ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int *outlen, 228ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const unsigned char *in, 229ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int *inlen); 230ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_OUTPUT_ENABLED */ 23194442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN int XMLCALL 232ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project isolat1ToUTF8 (unsigned char *out, 233ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int *outlen, 234ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project const unsigned char *in, 235ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int *inlen); 236ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 237ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} 238ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 239ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 240ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* __XML_CHAR_ENCODING_H__ */ 241