+++ /dev/null
-/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd\r
- See the file COPYING for copying permission.\r
-*/\r
-\r
-/* This file is included! */\r
-#ifdef XML_TOK_NS_C\r
-\r
-const ENCODING *\r
-NS(XmlGetUtf8InternalEncoding)(void)\r
-{\r
- return &ns(internal_utf8_encoding).enc;\r
-}\r
-\r
-const ENCODING *\r
-NS(XmlGetUtf16InternalEncoding)(void)\r
-{\r
-#if BYTEORDER == 1234\r
- return &ns(internal_little2_encoding).enc;\r
-#elif BYTEORDER == 4321\r
- return &ns(internal_big2_encoding).enc;\r
-#else\r
- const short n = 1;\r
- return (*(const char *)&n\r
- ? &ns(internal_little2_encoding).enc\r
- : &ns(internal_big2_encoding).enc);\r
-#endif\r
-}\r
-\r
-static const ENCODING * const NS(encodings)[] = {\r
- &ns(latin1_encoding).enc,\r
- &ns(ascii_encoding).enc,\r
- &ns(utf8_encoding).enc,\r
- &ns(big2_encoding).enc,\r
- &ns(big2_encoding).enc,\r
- &ns(little2_encoding).enc,\r
- &ns(utf8_encoding).enc /* NO_ENC */\r
-};\r
-\r
-static int PTRCALL\r
-NS(initScanProlog)(const ENCODING *enc, const char *ptr, const char *end,\r
- const char **nextTokPtr)\r
-{\r
- return initScan(NS(encodings), (const INIT_ENCODING *)enc,\r
- XML_PROLOG_STATE, ptr, end, nextTokPtr);\r
-}\r
-\r
-static int PTRCALL\r
-NS(initScanContent)(const ENCODING *enc, const char *ptr, const char *end,\r
- const char **nextTokPtr)\r
-{\r
- return initScan(NS(encodings), (const INIT_ENCODING *)enc,\r
- XML_CONTENT_STATE, ptr, end, nextTokPtr);\r
-}\r
-\r
-int\r
-NS(XmlInitEncoding)(INIT_ENCODING *p, const ENCODING **encPtr,\r
- const char *name)\r
-{\r
- int i = getEncodingIndex(name);\r
- if (i == UNKNOWN_ENC)\r
- return 0;\r
- SET_INIT_ENC_INDEX(p, i);\r
- p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog);\r
- p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent);\r
- p->initEnc.updatePosition = initUpdatePosition;\r
- p->encPtr = encPtr;\r
- *encPtr = &(p->initEnc);\r
- return 1;\r
-}\r
-\r
-static const ENCODING *\r
-NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end)\r
-{\r
-#define ENCODING_MAX 128\r
- char buf[ENCODING_MAX];\r
- char *p = buf;\r
- int i;\r
- XmlUtf8Convert(enc, &ptr, end, &p, p + ENCODING_MAX - 1);\r
- if (ptr != end)\r
- return 0;\r
- *p = 0;\r
- if (streqci(buf, KW_UTF_16) && enc->minBytesPerChar == 2)\r
- return enc;\r
- i = getEncodingIndex(buf);\r
- if (i == UNKNOWN_ENC)\r
- return 0;\r
- return NS(encodings)[i];\r
-}\r
-\r
-int\r
-NS(XmlParseXmlDecl)(int isGeneralTextEntity,\r
- const ENCODING *enc,\r
- const char *ptr,\r
- const char *end,\r
- const char **badPtr,\r
- const char **versionPtr,\r
- const char **versionEndPtr,\r
- const char **encodingName,\r
- const ENCODING **encoding,\r
- int *standalone)\r
-{\r
- return doParseXmlDecl(NS(findEncoding),\r
- isGeneralTextEntity,\r
- enc,\r
- ptr,\r
- end,\r
- badPtr,\r
- versionPtr,\r
- versionEndPtr,\r
- encodingName,\r
- encoding,\r
- standalone);\r
-}\r
-\r
-#endif /* XML_TOK_NS_C */\r