cpython: e4dc8be9a72f (original) (raw)

--- a/Modules/expat/COPYING +++ b/Modules/expat/COPYING @@ -1,5 +1,6 @@ Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper +Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the

--- a/Modules/expat/amigaconfig.h +++ b/Modules/expat/amigaconfig.h @@ -10,66 +10,12 @@ /* Define to 1 if you have the <check.h> header file. / #undef HAVE_CHECK_H -/ Define to 1 if you have the <dlfcn.h> header file. / -#undef HAVE_DLFCN_H - -/ Define to 1 if you have the <fcntl.h> header file. / -#define HAVE_FCNTL_H 1 - -/ Define to 1 if you have the getpagesize' function. */[](#l2.13) -#undef HAVE_GETPAGESIZE[](#l2.14) -[](#l2.15) -/* Define to 1 if you have the <inttypes.h> header file. */[](#l2.16) -#define HAVE_INTTYPES_H 1[](#l2.17) -[](#l2.18) /* Define to 1 if you have the memmove' function. / #define HAVE_MEMMOVE 1 -/ Define to 1 if you have the <memory.h> header file. / -#undef HAVE_MEMORY_H - -/ Define to 1 if you have a working mmap' system call. */[](#l2.25) -#undef HAVE_MMAP[](#l2.26) -[](#l2.27) -/* Define to 1 if you have the <stdint.h> header file. */[](#l2.28) -#define HAVE_STDINT_H 1[](#l2.29) -[](#l2.30) -/* Define to 1 if you have the <stdlib.h> header file. */[](#l2.31) -#define HAVE_STDLIB_H 1[](#l2.32) -[](#l2.33) -/* Define to 1 if you have the <strings.h> header file. */[](#l2.34) -#define HAVE_STRINGS_H 1[](#l2.35) -[](#l2.36) -/* Define to 1 if you have the <string.h> header file. */[](#l2.37) -#define HAVE_STRING_H 1[](#l2.38) -[](#l2.39) -/* Define to 1 if you have the <sys/stat.h> header file. */[](#l2.40) -#define HAVE_SYS_STAT_H 1[](#l2.41) -[](#l2.42) -/* Define to 1 if you have the <sys/types.h> header file. */[](#l2.43) -#define HAVE_SYS_TYPES_H 1[](#l2.44) -[](#l2.45) /* Define to 1 if you have the <unistd.h> header file. */[](#l2.46) #define HAVE_UNISTD_H 1[](#l2.47) [](#l2.48) -/* Define to the address where bug reports for this package should be sent. */[](#l2.49) -#define PACKAGE_BUGREPORT "expat-bugs@mail.libexpat.org"[](#l2.50) -[](#l2.51) -/* Define to the full name of this package. */[](#l2.52) -#define PACKAGE_NAME "expat"[](#l2.53) -[](#l2.54) -/* Define to the full name and version of this package. */[](#l2.55) -#define PACKAGE_STRING "expat 1.95.8"[](#l2.56) -[](#l2.57) -/* Define to the one symbol short name of this package. */[](#l2.58) -#undef PACKAGE_TARNAME[](#l2.59) -[](#l2.60) -/* Define to the version of this package. */[](#l2.61) -#define PACKAGE_VERSION "1.95.8"[](#l2.62) -[](#l2.63) -/* Define to 1 if you have the ANSI C header files. */[](#l2.64) -#define STDC_HEADERS 1[](#l2.65) -[](#l2.66) /* whether byteorder is bigendian */[](#l2.67) #define WORDS_BIGENDIAN[](#l2.68) [](#l2.69) @@ -83,14 +29,4 @@[](#l2.70) /* Define to make XML Namespaces functionality available. */[](#l2.71) #define XML_NS[](#l2.72) [](#l2.73) -/* Define to empty if const' does not conform to ANSI C. / -#undef const - -/ Define to long' if <sys/types.h> does not define. */[](#l2.77) -#undef off_t[](#l2.78) -[](#l2.79) -/* Define to unsigned' if <sys/types.h> does not define. / -#undef size_t - - #endif / AMIGACONFIG_H */

--- a/Modules/expat/ascii.h +++ b/Modules/expat/ascii.h @@ -83,3 +83,10 @@ #define ASCII_LSQB 0x5B #define ASCII_RSQB 0x5D #define ASCII_UNDERSCORE 0x5F +#define ASCII_LPAREN 0x28 +#define ASCII_RPAREN 0x29 +#define ASCII_FF 0x0C +#define ASCII_SLASH 0x2F +#define ASCII_HASH 0x23 +#define ASCII_PIPE 0x7C +#define ASCII_COMMA 0x2C

--- a/Modules/expat/expat.h +++ b/Modules/expat/expat.h @@ -742,6 +742,29 @@ XML_GetSpecifiedAttributeCount(XML_Parse XMLPARSEAPI(int) XML_GetIdAttributeIndex(XML_Parser parser); +#ifdef XML_ATTR_INFO +/* Source file byte offsets for the start and end of attribute names and values.

/* Parses some input. Returns XML_STATUS_ERROR if a fatal error is detected. The last call to XML_Parse must have isFinal true; len may be zero for this call (or any other). @@ -994,7 +1017,9 @@ enum XML_FeatureEnum { XML_FEATURE_MIN_SIZE, XML_FEATURE_SIZEOF_XML_CHAR, XML_FEATURE_SIZEOF_XML_LCHAR,

#define XML_MAJOR_VERSION 2 -#define XML_MINOR_VERSION 0 +#define XML_MINOR_VERSION 1 #define XML_MICRO_VERSION 0 #ifdef __cplusplus

--- a/Modules/expat/expat_external.h +++ b/Modules/expat/expat_external.h @@ -7,11 +7,7 @@ /* External API definitions / -/ Namespace external symbols to allow multiple libexpat version to

-#if defined(_MSC_EXTENSIONS) && !defined(CYGWIN) +#if defined(_MSC_EXTENSIONS) && !defined(BEOS) && !defined(CYGWIN) #define XML_USE_MSC_EXTENSIONS 1 #endif @@ -38,9 +34,9 @@ system headers may assume the cdecl convention. / #ifndef XMLCALL -#if defined(XML_USE_MSC_EXTENSIONS) +#if defined(_MSC_VER) #define XMLCALL __cdecl -#elif defined(GNUC) && defined(__i386) +#elif defined(GNUC) && defined(__i386) && !defined(__INTEL_COMPILER) #define XMLCALL attribute((cdecl)) #else / For any platform which uses this definition and supports more than

--- a/Modules/expat/internal.h +++ b/Modules/expat/internal.h @@ -20,7 +20,7 @@ and therefore subject to change. / -#if defined(GNUC) && defined(i386) +#if defined(GNUC) && defined(i386) && !defined(MINGW32) / We'll use this version by default only where we know it helps. regparm() generates warnings on Solaris boxes. See SF bug #692878.

new file mode 100644 --- /dev/null +++ b/Modules/expat/watcomconfig.h @@ -0,0 +1,47 @@ +/* expat_config.h for use with Open Watcom 1.5 and above. / + +#ifndef WATCOMCONFIG_H +#define WATCOMCONFIG_H + +#ifdef NT +#define WIN32_LEAN_AND_MEAN +#include <windows.h> +#undef WIN32_LEAN_AND_MEAN +#endif + +/ 1234 = LIL_ENDIAN, 4321 = BIGENDIAN / +#define BYTEORDER 1234 + +/ Define to 1 if you have the `memmove' function. / +#define HAVE_MEMMOVE 1 + +/ Define to 1 if you have the <unistd.h> header file. / +#define HAVE_UNISTD_H 1 + +/ Define to the address where bug reports for this package should be sent. / +#define PACKAGE_BUGREPORT "expat-bugs@mail.libexpat.org" + +/ Define to the full name of this package. / +#define PACKAGE_NAME "expat" + +/ Define to the full name and version of this package. / +#define PACKAGE_STRING "expat 2.0.0" + +/ Define to the one symbol short name of this package. / +#undef PACKAGE_TARNAME + +/ Define to the version of this package. / +#define PACKAGE_VERSION "2.0.0" + +/ Define to specify how much context to retain around the current parse

+/* Define to make parameter entity parsing functionality available. / +#define XML_DTD 1 + +/ Define to make XML Namespaces functionality available. */ +#define XML_NS 1 + +#endif +

--- a/Modules/expat/xmlparse.c +++ b/Modules/expat/xmlparse.c @@ -2,24 +2,27 @@ See the file COPYING for copying permission. / +#include <stddef.h> +#include <string.h> / memset(), memcpy() / +#include <assert.h> +#include <limits.h> / UINT_MAX / +#include <time.h> / time() / + #define XML_BUILDING_EXPAT 1 #ifdef COMPILED_FROM_DSP #include "winconfig.h" #elif defined(MACOS_CLASSIC) #include "macconfig.h" -#elif defined(amigaos4) +#elif defined(amigaos) #include "amigaconfig.h" +#elif defined(WATCOMC) +#include "watcomconfig.h" #elif defined(HAVE_EXPAT_CONFIG_H) #include <expat_config.h> #endif / ndef COMPILED_FROM_DSP / -#include <stddef.h> -#include <string.h> / memset(), memcpy() / -#include <assert.h> -#include <limits.h> / UINT_MAX / -#include <time.h> / time() / - +#include "ascii.h" #include "expat.h" #ifdef XML_UNICODE @@ -28,7 +31,8 @@ #define XmlGetInternalEncoding XmlGetUtf16InternalEncoding #define XmlGetInternalEncodingNS XmlGetUtf16InternalEncodingNS #define XmlEncode XmlUtf16Encode -#define MUST_CONVERT(enc, s) (!(enc)->isUtf16 || (((unsigned long)s) & 1)) +/ Using pointer subtraction to convert to integer type. */ +#define MUST_CONVERT(enc, s) (!(enc)->isUtf16 || (((char *)(s) - (char *)NULL) & 1)) typedef unsigned short ICHAR; #else #define XML_ENCODE_MAX XML_UTF8_ENCODE_MAX @@ -325,15 +329,15 @@ processXmlDecl(XML_Parser parser, int is static enum XML_Error initializeEncoding(XML_Parser parser); static enum XML_Error -doProlog(XML_Parser parser, const ENCODING *enc, const char *s,

+doProlog(XML_Parser parser, const ENCODING *enc, const char *s,

static enum XML_Error -processInternalEntity(XML_Parser parser, ENTITY *entity, +processInternalEntity(XML_Parser parser, ENTITY *entity, XML_Bool betweenDecl); static enum XML_Error doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc,

static enum XML_Error doCdataSection(XML_Parser parser, const ENCODING *, const char **startPtr, @@ -351,7 +355,7 @@ static enum XML_Error addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, const XML_Char *uri, BINDING **bindingsPtr); static int -defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata, +defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata, XML_Bool isId, const XML_Char *dfltValue, XML_Parser parser); static enum XML_Error storeAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata, @@ -436,6 +440,7 @@ parserCreate(const XML_Char *encodingNam const XML_Memory_Handling_Suite *memsuite, const XML_Char *nameSep, DTD *dtd); + static void parserInit(XML_Parser parser, const XML_Char *encodingName); @@ -535,6 +540,9 @@ struct XML_ParserStruct { NS_ATT *m_nsAtts; unsigned long m_nsAttsVersion; unsigned char m_nsAttsPower; +#ifdef XML_ATTR_INFO

#define nsAtts (parser->m_nsAtts) #define nsAttsVersion (parser->m_nsAttsVersion) #define nsAttsPower (parser->m_nsAttsPower) +#define attInfo (parser->m_attInfo) #define tempPool (parser->m_tempPool) #define temp2Pool (parser->m_temp2Pool) #define groupConnector (parser->m_groupConnector) @@ -673,10 +682,12 @@ XML_ParserCreateNS(const XML_Char *encod } static const XML_Char implicitContext[] = {

} XML_Parser XMLCALL XML_ParserCreate_MM(const XML_Char *encodingName,

{ return parserCreate(encodingName, memsuite, nameSep, NULL); } @@ -753,9 +763,20 @@ parserCreate(const XML_Char *encodingNam FREE(parser); return NULL; } +#ifdef XML_ATTR_INFO

+#endif FREE(parser); return NULL; } @@ -768,6 +789,9 @@ parserCreate(const XML_Char *encodingNam if (_dtd == NULL) { FREE(dataBuf); FREE(atts); +#ifdef XML_ATTR_INFO

+#endif FREE(parser); return NULL; } @@ -783,7 +807,7 @@ parserCreate(const XML_Char *encodingNam unknownEncodingHandler = NULL; unknownEncodingHandlerData = NULL;

#endif /* XML_DTD */ dtdDestroy(_dtd, (XML_Bool)!parentParser, &parser->m_mem); FREE((void *)atts); +#ifdef XML_ATTR_INFO

@@ -1499,7 +1534,7 @@ XML_Parse(XML_Parser parser, const char XmlUpdatePosition(encoding, positionPtr, bufferPtr, &position); positionPtr = bufferPtr; return XML_STATUS_SUSPENDED;

@@ -1555,15 +1590,11 @@ XML_Parse(XML_Parser parser, const char : (char *)REALLOC(buffer, len * 2)); if (temp == NULL) { errorCode = XML_ERROR_NO_MEMORY;

@@ -1629,7 +1660,7 @@ XML_ParseBuffer(XML_Parser parser, int l case XML_SUSPENDED: result = XML_STATUS_SUSPENDED; break;

@@ -1719,6 +1750,8 @@ XML_GetBuffer(XML_Parser parser, int len bufferPtr = buffer = newBuf; #endif /* not defined XML_CONTEXT_BYTES */ }

} return bufferEnd; } @@ -1776,7 +1809,7 @@ XML_ResumeParser(XML_Parser parser) case XML_SUSPENDED: result = XML_STATUS_SUSPENDED; break;

@@ -2001,6 +2034,12 @@ XML_GetFeatureList(void) #ifdef XML_NS {XML_FEATURE_NS, XML_L("XML_NS"), 0}, #endif +#ifdef XML_LARGE_SIZE

+#endif +#ifdef XML_ATTR_INFO

+#endif {XML_FEATURE_END, NULL, 0} }; @@ -2063,7 +2102,7 @@ contentProcessor(XML_Parser parser, const char *end, const char **endPtr) {

@@ -2179,7 +2218,7 @@ externalEntityContentProcessor(XML_Parse const char *end, const char **endPtr) {

{ /* save one level of indirection */

@@ -2581,8 +2620,8 @@ doContent(XML_Parser parser, } else if (defaultHandler) reportDefault(parser, enc, s, end);

@@ -2595,26 +2634,29 @@ doContent(XML_Parser parser, *nextPtr = end; return XML_ERROR_NONE; case XML_TOK_DATA_CHARS:

@@ -2631,7 +2673,7 @@ doContent(XML_Parser parser, } *eventPP = s = next; switch (ps_parsing) {

+#endif attsSize = n + nDefaultAtts + INIT_ATTS_SIZE; temp = (ATTRIBUTE *)REALLOC((void *)atts, attsSize * sizeof(ATTRIBUTE)); if (temp == NULL) return XML_ERROR_NO_MEMORY; atts = temp; +#ifdef XML_ATTR_INFO

+#endif if (n > oldAttsSize) XmlGetAttributes(enc, attStr, n, atts); } appAtts = (const XML_Char **)atts; for (i = 0; i < n; i++) {

+#ifdef XML_ATTR_INFO

+#endif /* add the name and value to the attribute list */

+#ifdef XML_ATTR_INFO

+#endif /* Detect duplicate attributes by their QNames. This does not work when namespace processing is turned on and different prefixes for the same namespace are used. For this case we have a check further down. @@ -2848,8 +2911,6 @@ storeAtts(XML_Parser parser, const ENCOD unsigned long uriHash = hash_secret_salt; ((XML_Char )s)[-1] = 0; / clear flag */ id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, s, 0);

@@ -2861,7 +2922,7 @@ storeAtts(XML_Parser parser, const ENCOD return XML_ERROR_NO_MEMORY; uriHash = CHAR_HASH(uriHash, c); }

@@ -2935,7 +2996,7 @@ storeAtts(XML_Parser parser, const ENCOD if (!binding) return XML_ERROR_UNBOUND_PREFIX; localPart = tagNamePtr->str;

{ static const XML_Char xmlNamespace[] = {

};

};

/* Not allowed to bind xmlns */

@@ -3035,7 +3100,7 @@ addBinding(XML_Parser parser, PREFIX *pr if (isXML && (len > xmlLen || uri[len] != xmlNamespace[len])) isXML = XML_FALSE;

@@ -3243,7 +3311,7 @@ ignoreSectionProcessor(XML_Parser parser const char *end, const char **endPtr) {

@@ -3618,7 +3686,7 @@ externalParEntProcessor(XML_Parser parse } processor = prologProcessor;

} @@ -3668,7 +3736,7 @@ prologProcessor(XML_Parser parser, { const char *next = s; int tok = XmlPrologTok(encoding, s, end, &next);

} @@ -3683,26 +3751,30 @@ doProlog(XML_Parser parser, XML_Bool haveMore) { #ifdef XML_DTD

#endif /* XML_DTD */

#endif /* XML_DTD */ dtd->hasParamEntityRefs = XML_TRUE; if (startDoctypeDeclHandler) {

@@ -3881,8 +3955,8 @@ doProlog(XML_Parser parser, entity->publicId)) return XML_ERROR_EXTERNAL_ENTITY_HANDLING; if (dtd->paramEntityRead) {

@@ -4010,11 +4084,11 @@ doProlog(XML_Parser parser, 0, parser)) return XML_ERROR_NO_MEMORY; if (attlistDeclHandler && declAttributeType) {

@@ -4047,11 +4121,11 @@ doProlog(XML_Parser parser, declAttributeIsCdata, XML_FALSE, attVal, parser)) return XML_ERROR_NO_MEMORY; if (attlistDeclHandler && declAttributeType) {

@@ -4321,7 +4395,7 @@ doProlog(XML_Parser parser, switch (tok) { case XML_TOK_PARAM_ENTITY_REF: /* PE references in internal subset are

@@ -4379,14 +4453,14 @@ doProlog(XML_Parser parser, } break; case XML_ROLE_GROUP_SEQUENCE:

@@ -4398,7 +4472,7 @@ doProlog(XML_Parser parser, if (elementDeclHandler) handleDefault = XML_FALSE; }

#ifdef XML_DTD @@ -4442,7 +4516,7 @@ doProlog(XML_Parser parser, return XML_ERROR_RECURSIVE_ENTITY_REF; if (entity->textPtr) { enum XML_Error result;

@@ -4637,7 +4711,7 @@ doProlog(XML_Parser parser, reportDefault(parser, enc, s, next); switch (ps_parsing) {

#ifdef XML_DTD if (entity->is_param) { int tok = XmlPrologTok(internalEncoding, textStart, textEnd, &next);

}

#endif /* XML_DTD */

if (result == XML_ERROR_NONE) { @@ -4795,13 +4869,13 @@ internalEntityProcessor(XML_Parser parse #ifdef XML_DTD if (entity->is_param) { int tok = XmlPrologTok(internalEncoding, textStart, textEnd, &next);

} else #endif /* XML_DTD */

if (result != XML_ERROR_NONE) return result; @@ -4822,7 +4896,7 @@ internalEntityProcessor(XML_Parser parse int tok; processor = prologProcessor; tok = XmlPrologTok(encoding, s, end, &next);

} else @@ -4831,8 +4905,8 @@ internalEntityProcessor(XML_Parser parse processor = contentProcessor; /* see externalEntityContentProcessor vs contentProcessor */ return doContent(parser, parentParser ? 1 : 0, encoding, s, end,

@@ -5328,7 +5402,7 @@ setElementTypePrefix(XML_Parser parser, DTD * const dtd = _dtd; /* save one level of indirection */ const XML_Char *name; for (name = elementType->name; *name; name++) {

@@ -5391,7 +5465,7 @@ getAttributeId(XML_Parser parser, const int i; for (i = 0; name[i]; i++) { /* attributes without prefix are not in the default namespace */

@@ -5401,8 +5475,6 @@ getAttributeId(XML_Parser parser, const return NULL; id->prefix = (PREFIX *)lookup(parser, &dtd->prefixes, poolStart(&dtd->pool), sizeof(PREFIX));

@@ -5415,7 +5487,7 @@ getAttributeId(XML_Parser parser, const return id; } -#define CONTEXT_SEP XML_T('\f') +#define CONTEXT_SEP XML_T(ASCII_FF) static const XML_Char * getContext(XML_Parser parser) @@ -5427,7 +5499,7 @@ getContext(XML_Parser parser) if (dtd->defaultPrefix.binding) { int i; int len;

@@ -6162,12 +6234,13 @@ poolGrow(STRING_POOL *pool) } if (pool->blocks && pool->start == pool->blocks->s) { int blockSize = (int)(pool->end - pool->start)*2;

--- a/Modules/expat/xmlrole.c +++ b/Modules/expat/xmlrole.c @@ -2,20 +2,22 @@ See the file COPYING for copying permission. / +#include <stddef.h> + #ifdef COMPILED_FROM_DSP #include "winconfig.h" #elif defined(MACOS_CLASSIC) #include "macconfig.h" -#elif defined(amigaos4) +#elif defined(amigaos) #include "amigaconfig.h" +#elif defined(WATCOMC) +#include "watcomconfig.h" #else #ifdef HAVE_EXPAT_CONFIG_H #include <expat_config.h> #endif #endif / ndef COMPILED_FROM_DSP */ -#include <stddef.h> - #include "expat_external.h" #include "internal.h" #include "xmlrole.h" @@ -53,12 +55,16 @@ static const char KW_IDREF[] = { ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, '\0' }; static const char KW_IDREFS[] = { ASCII_I, ASCII_D, ASCII_R, ASCII_E, ASCII_F, ASCII_S, '\0' }; +#ifdef XML_DTD static const char KW_IGNORE[] = { ASCII_I, ASCII_G, ASCII_N, ASCII_O, ASCII_R, ASCII_E, '\0' }; +#endif static const char KW_IMPLIED[] = { ASCII_I, ASCII_M, ASCII_P, ASCII_L, ASCII_I, ASCII_E, ASCII_D, '\0' }; +#ifdef XML_DTD static const char KW_INCLUDE[] = { ASCII_I, ASCII_N, ASCII_C, ASCII_L, ASCII_U, ASCII_D, ASCII_E, '\0' }; +#endif static const char KW_NDATA[] = { ASCII_N, ASCII_D, ASCII_A, ASCII_T, ASCII_A, '\0' }; static const char KW_NMTOKEN[] = {

--- a/Modules/expat/xmltok.c +++ b/Modules/expat/xmltok.c @@ -2,20 +2,22 @@ See the file COPYING for copying permission. / +#include <stddef.h> + #ifdef COMPILED_FROM_DSP #include "winconfig.h" #elif defined(MACOS_CLASSIC) #include "macconfig.h" -#elif defined(amigaos4) +#elif defined(amigaos) #include "amigaconfig.h" +#elif defined(WATCOMC) +#include "watcomconfig.h" #else #ifdef HAVE_EXPAT_CONFIG_H #include <expat_config.h> #endif #endif / ndef COMPILED_FROM_DSP */ -#include <stddef.h> - #include "expat_external.h" #include "internal.h" #include "xmltok.h" @@ -295,7 +297,9 @@ sb_charMatches(const ENCODING *enc, cons #endif #define PREFIX(ident) normal_ ## ident +#define XML_TOK_IMPL_C #include "xmltok_impl.c" +#undef XML_TOK_IMPL_C #undef MINBPC #undef BYTE_TYPE @@ -692,7 +696,9 @@ little2_isNmstrtMin(const ENCODING *enc, #define IS_NMSTRT_CHAR(enc, p, n) (0) #define IS_NMSTRT_CHAR_MINBPC(enc, p) LITTLE2_IS_NMSTRT_CHAR_MINBPC(enc, p) +#define XML_TOK_IMPL_C #include "xmltok_impl.c" +#undef XML_TOK_IMPL_C #undef MINBPC #undef BYTE_TYPE @@ -831,7 +837,9 @@ big2_isNmstrtMin(const ENCODING *enc, co #define IS_NMSTRT_CHAR(enc, p, n) (0) #define IS_NMSTRT_CHAR_MINBPC(enc, p) BIG2_IS_NMSTRT_CHAR_MINBPC(enc, p) +#define XML_TOK_IMPL_C #include "xmltok_impl.c" +#undef XML_TOK_IMPL_C #undef MINBPC #undef BYTE_TYPE @@ -1337,7 +1345,7 @@ unknown_toUtf16(const ENCODING *enc, ENCODING * XmlInitUnknownEncoding(void *mem, int *table,

{ int i; @@ -1610,7 +1618,9 @@ initScan(const ENCODING * const *encodin #define NS(x) x #define ns(x) x +#define XML_TOK_NS_C #include "xmltok_ns.c" +#undef XML_TOK_NS_C #undef NS #undef ns @@ -1619,7 +1629,9 @@ initScan(const ENCODING * const *encodin #define NS(x) x ## NS #define ns(x) x ## _ns +#define XML_TOK_NS_C #include "xmltok_ns.c" +#undef XML_TOK_NS_C #undef NS #undef ns @@ -1627,7 +1639,7 @@ initScan(const ENCODING * const *encodin ENCODING * XmlInitUnknownEncodingNS(void *mem, int *table,

{ ENCODING *enc = XmlInitUnknownEncoding(mem, table, convert, userData);

--- a/Modules/expat/xmltok_impl.c +++ b/Modules/expat/xmltok_impl.c @@ -2,6 +2,9 @@ See the file COPYING for copying permission. / +/ This file is included! */ +#ifdef XML_TOK_IMPL_C + #ifndef IS_INVALID_CHAR #define IS_INVALID_CHAR(enc, ptr, n) (0) #endif @@ -882,7 +885,7 @@ PREFIX(scanPercent)(const ENCODING *enc, const char **nextTokPtr) { if (ptr == end)

switch (BYTE_TYPE(enc, ptr)) { CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr) case BT_S: case BT_LF: case BT_CR: case BT_PERCNT: @@ -1777,3 +1780,4 @@ PREFIX(updatePosition)(const ENCODING e #undef CHECK_NMSTRT_CASE #undef CHECK_NMSTRT_CASES +#endif / XML_TOK_IMPL_C */

--- a/Modules/expat/xmltok_ns.c +++ b/Modules/expat/xmltok_ns.c @@ -1,3 +1,10 @@ +/* Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd

+/* This file is included! */ +#ifdef XML_TOK_NS_C + const ENCODING NS(XmlGetUtf8InternalEncoding)(void) { @@ -104,3 +111,5 @@ NS(XmlParseXmlDecl)(int isGeneralTextEnt encoding, standalone); } + +#endif / XML_TOK_NS_C */