Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: giken9_HTMLServer_Temp_Sample
xmltok_ns.c
00001 /* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd 00002 See the file COPYING for copying permission. 00003 */ 00004 00005 /* This file is included! */ 00006 #ifdef XML_TOK_NS_C 00007 00008 const ENCODING * 00009 NS(XmlGetUtf8InternalEncoding)(void) 00010 { 00011 return &ns(internal_utf8_encoding).enc; 00012 } 00013 00014 const ENCODING * 00015 NS(XmlGetUtf16InternalEncoding)(void) 00016 { 00017 #if BYTEORDER == 1234 00018 return &ns(internal_little2_encoding).enc; 00019 #elif BYTEORDER == 4321 00020 return &ns(internal_big2_encoding).enc; 00021 #else 00022 const short n = 1; 00023 return (*(const char *)&n 00024 ? &ns(internal_little2_encoding).enc 00025 : &ns(internal_big2_encoding).enc); 00026 #endif 00027 } 00028 00029 static const ENCODING * const NS(encodings)[] = { 00030 &ns(latin1_encoding).enc, 00031 &ns(ascii_encoding).enc, 00032 &ns(utf8_encoding).enc, 00033 &ns(big2_encoding).enc, 00034 &ns(big2_encoding).enc, 00035 &ns(little2_encoding).enc, 00036 &ns(utf8_encoding).enc /* NO_ENC */ 00037 }; 00038 00039 static int PTRCALL 00040 NS(initScanProlog)(const ENCODING *enc, const char *ptr, const char *end, 00041 const char **nextTokPtr) 00042 { 00043 return initScan(NS(encodings), (const INIT_ENCODING *)enc, 00044 XML_PROLOG_STATE, ptr, end, nextTokPtr); 00045 } 00046 00047 static int PTRCALL 00048 NS(initScanContent)(const ENCODING *enc, const char *ptr, const char *end, 00049 const char **nextTokPtr) 00050 { 00051 return initScan(NS(encodings), (const INIT_ENCODING *)enc, 00052 XML_CONTENT_STATE, ptr, end, nextTokPtr); 00053 } 00054 00055 int 00056 NS(XmlInitEncoding)(INIT_ENCODING *p, const ENCODING **encPtr, 00057 const char *name) 00058 { 00059 int i = getEncodingIndex(name); 00060 if (i == UNKNOWN_ENC) 00061 return 0; 00062 SET_INIT_ENC_INDEX(p, i); 00063 p->initEnc.scanners[XML_PROLOG_STATE] = NS(initScanProlog); 00064 p->initEnc.scanners[XML_CONTENT_STATE] = NS(initScanContent); 00065 p->initEnc.updatePosition = initUpdatePosition; 00066 p->encPtr = encPtr; 00067 *encPtr = &(p->initEnc); 00068 return 1; 00069 } 00070 00071 static const ENCODING * 00072 NS(findEncoding)(const ENCODING *enc, const char *ptr, const char *end) 00073 { 00074 #define ENCODING_MAX 128 00075 char buf[ENCODING_MAX]; 00076 char *p = buf; 00077 int i; 00078 XmlUtf8Convert(enc, &ptr, end, &p, p + ENCODING_MAX - 1); 00079 if (ptr != end) 00080 return 0; 00081 *p = 0; 00082 if (streqci(buf, KW_UTF_16) && enc->minBytesPerChar == 2) 00083 return enc; 00084 i = getEncodingIndex(buf); 00085 if (i == UNKNOWN_ENC) 00086 return 0; 00087 return NS(encodings)[i]; 00088 } 00089 00090 int 00091 NS(XmlParseXmlDecl)(int isGeneralTextEntity, 00092 const ENCODING *enc, 00093 const char *ptr, 00094 const char *end, 00095 const char **badPtr, 00096 const char **versionPtr, 00097 const char **versionEndPtr, 00098 const char **encodingName, 00099 const ENCODING **encoding, 00100 int *standalone) 00101 { 00102 return doParseXmlDecl(NS(findEncoding), 00103 isGeneralTextEntity, 00104 enc, 00105 ptr, 00106 end, 00107 badPtr, 00108 versionPtr, 00109 versionEndPtr, 00110 encodingName, 00111 encoding, 00112 standalone); 00113 } 00114 00115 #endif /* XML_TOK_NS_C */
Generated on Tue Jul 12 2022 21:22:03 by
1.7.2