2 return &
ns( internal_utf8_encoding ).enc;
6#if XML_BYTE_ORDER == 12
7 return &
ns( internal_little2_encoding ).enc;
8#elif XML_BYTE_ORDER == 21
9 return &
ns( internal_big2_encoding ).enc;
12 return *(
const char*)&
n ? &
ns( internal_little2_encoding ).enc
13 : &
ns( internal_big2_encoding ).enc;
17static const ENCODING*
NS( encodings )[] = {
18 &
ns( latin1_encoding ).enc, &
ns( ascii_encoding ).enc, &
ns( utf8_encoding ).enc,
19 &
ns( big2_encoding ).enc, &
ns( big2_encoding ).enc, &
ns( little2_encoding ).enc,
20 &
ns( utf8_encoding ).enc
23static int NS( initScanProlog )(
const ENCODING* enc,
const char* ptr,
const char* end,
24 const char** nextTokPtr ) {
25 return initScan(
NS( encodings ), (
const INIT_ENCODING*)enc, XML_PROLOG_STATE, ptr, end,
29static int NS( initScanContent )(
const ENCODING* enc,
const char* ptr,
const char* end,
30 const char** nextTokPtr ) {
31 return initScan(
NS( encodings ), (
const INIT_ENCODING*)enc, XML_CONTENT_STATE, ptr, end,
36 int i = getEncodingIndex( name );
39 p->initEnc.scanners[XML_PROLOG_STATE] =
NS( initScanProlog );
40 p->initEnc.scanners[XML_CONTENT_STATE] =
NS( initScanContent );
41 p->initEnc.updatePosition = initUpdatePosition;
43 *encPtr = &( p->initEnc );
47static const ENCODING*
NS( findEncoding )(
const ENCODING* enc,
const char* ptr,
49#define ENCODING_MAX 128
53 XmlUtf8Convert( enc, &ptr, end, &p, p +
ENCODING_MAX - 1 );
54 if ( ptr != end )
return 0;
56 if ( streqci( buf,
"UTF-16" ) && enc->minBytesPerChar == 2 )
return enc;
57 i = getEncodingIndex( buf );
59 return NS( encodings )[i];
63 const char* end,
const char** badPtr,
const char** versionPtr,
64 const char** encodingName,
const ENCODING** encoding,
66 return doParseXmlDecl(
NS( findEncoding ), isGeneralTextEntity, enc, ptr, end, badPtr,
67 versionPtr, encodingName, encoding, standalone );
#define INIT_ENC_INDEX(enc)
int NS XmlInitEncoding(INIT_ENCODING *p, const ENCODING **encPtr, const char *name)
const ENCODING *NS XmlGetUtf16InternalEncoding()
const ENCODING *NS XmlGetUtf8InternalEncoding()
int NS XmlParseXmlDecl(int isGeneralTextEntity, const ENCODING *enc, const char *ptr, const char *end, const char **badPtr, const char **versionPtr, const char **encodingName, const ENCODING **encoding, int *standalone)