[Expat-checkins] CVS: expat/lib xmlparse.c,1.23,1.24
Fred L. Drake
fdrake@users.sourceforge.net
Mon Oct 1 13:53:26 2001
Update of /cvsroot/expat/expat/lib
In directory usw-pr-cvs1:/tmp/cvs-serv8475/lib
Modified Files:
xmlparse.c
Log Message:
Wrap a *lot* of long lines to fit in an 80-column world, but still not all.
Change one of the error messages, closing SF bug #463032.
Index: xmlparse.c
===================================================================
RCS file: /cvsroot/expat/expat/lib/xmlparse.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** xmlparse.c 2001/08/23 12:35:53 1.23
--- xmlparse.c 2001/10/01 20:52:54 1.24
***************
*** 237,241 ****
handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName);
static enum XML_Error
! processXmlDecl(XML_Parser parser, int isGeneralTextEntity, const char *, const char *);
static enum XML_Error
initializeEncoding(XML_Parser parser);
--- 237,242 ----
handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName);
static enum XML_Error
! processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
! const char *, const char *);
static enum XML_Error
initializeEncoding(XML_Parser parser);
***************
*** 249,261 ****
const char *start, const char *end, const char **endPtr);
static enum XML_Error
! doCdataSection(XML_Parser parser, const ENCODING *, const char **startPtr, const char *end, const char **nextPtr);
#ifdef XML_DTD
static enum XML_Error
! doIgnoreSection(XML_Parser parser, const ENCODING *, const char **startPtr, const char *end, const char **nextPtr);
#endif /* XML_DTD */
! static enum XML_Error storeAtts(XML_Parser parser, const ENCODING *, const char *s,
TAG_NAME *tagNamePtr, BINDING **bindingsPtr);
static
! int addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, const XML_Char *uri, BINDING **bindingsPtr);
static int
--- 250,266 ----
const char *start, const char *end, const char **endPtr);
static enum XML_Error
! doCdataSection(XML_Parser parser, const ENCODING *, const char **startPtr,
! const char *end, const char **nextPtr);
#ifdef XML_DTD
static enum XML_Error
! doIgnoreSection(XML_Parser parser, const ENCODING *, const char **startPtr,
! const char *end, const char **nextPtr);
#endif /* XML_DTD */
! static enum XML_Error storeAtts(XML_Parser parser, const ENCODING *,
! const char *s,
TAG_NAME *tagNamePtr, BINDING **bindingsPtr);
static
! int addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
! const XML_Char *uri, BINDING **bindingsPtr);
static int
***************
*** 265,284 ****
static enum XML_Error
! storeAttributeValue(XML_Parser parser, const ENCODING *, int isCdata, const char *, const char *,
! STRING_POOL *);
static enum XML_Error
! appendAttributeValue(XML_Parser parser, const ENCODING *, int isCdata, const char *, const char *,
! STRING_POOL *);
static ATTRIBUTE_ID *
! getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start, const char *end);
static int setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *);
static enum XML_Error
! storeEntityValue(XML_Parser parser, const ENCODING *enc, const char *start, const char *end);
static int
! reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, const char *start, const char *end);
static int
! reportComment(XML_Parser parser, const ENCODING *enc, const char *start, const char *end);
static void
! reportDefault(XML_Parser parser, const ENCODING *enc, const char *start, const char *end);
static const XML_Char *getContext(XML_Parser parser);
--- 270,294 ----
static enum XML_Error
! storeAttributeValue(XML_Parser parser, const ENCODING *, int isCdata,
! const char *, const char *, STRING_POOL *);
static enum XML_Error
! appendAttributeValue(XML_Parser parser, const ENCODING *, int isCdata,
! const char *, const char *, STRING_POOL *);
static ATTRIBUTE_ID *
! getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start,
! const char *end);
static int setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *);
static enum XML_Error
! storeEntityValue(XML_Parser parser, const ENCODING *enc, const char *start,
! const char *end);
static int
! reportProcessingInstruction(XML_Parser parser, const ENCODING *enc,
! const char *start, const char *end);
static int
! reportComment(XML_Parser parser, const ENCODING *enc, const char *start,
! const char *end);
static void
! reportDefault(XML_Parser parser, const ENCODING *enc, const char *start,
! const char *end);
static const XML_Char *getContext(XML_Parser parser);
***************
*** 319,323 ****
static const XML_Char *poolCopyString(STRING_POOL *pool, const XML_Char *s);
! static const XML_Char *poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n);
static const XML_Char *poolAppendString(STRING_POOL *pool, const XML_Char *s);
static ELEMENT_TYPE * getElementType(XML_Parser Paraser,
--- 329,334 ----
static const XML_Char *poolCopyString(STRING_POOL *pool, const XML_Char *s);
! static const XML_Char *poolCopyStringN(STRING_POOL *pool, const XML_Char *s,
! int n);
static const XML_Char *poolAppendString(STRING_POOL *pool, const XML_Char *s);
static ELEMENT_TYPE * getElementType(XML_Parser Paraser,
***************
*** 339,343 ****
typedef struct {
! /* The first member must be userData so that the XML_GetUserData macro works. */
void *m_userData;
void *m_handlerArg;
--- 350,355 ----
typedef struct {
! /* The first member must be userData so that the XML_GetUserData
! macro works. */
void *m_userData;
void *m_handlerArg;
***************
*** 658,662 ****
poolInit(&tempPool, &(((Parser *) parser)->m_mem));
poolInit(&temp2Pool, &(((Parser *) parser)->m_mem));
! protocolEncodingName = encodingName ? poolCopyString(&tempPool, encodingName) : 0;
curBase = 0;
if (!dtdInit(&dtd, parser) || !atts || !dataBuf
--- 670,676 ----
poolInit(&tempPool, &(((Parser *) parser)->m_mem));
poolInit(&temp2Pool, &(((Parser *) parser)->m_mem));
! protocolEncodingName = (encodingName
! ? poolCopyString(&tempPool, encodingName)
! : 0);
curBase = 0;
if (!dtdInit(&dtd, parser) || !atts || !dataBuf
***************
*** 1303,1308 ****
XML_T("no element found"),
XML_T("not well-formed (invalid token)"),
- XML_T("unclosed token"),
XML_T("unclosed token"),
XML_T("mismatched tag"),
XML_T("duplicate attribute"),
--- 1317,1322 ----
XML_T("no element found"),
XML_T("not well-formed (invalid token)"),
XML_T("unclosed token"),
+ XML_T("partial character"),
XML_T("mismatched tag"),
XML_T("duplicate attribute"),
***************
*** 1633,1637 ****
if (nextPtr) {
/* Need to guarantee that:
! tag->buf + ROUND_UP(tag->rawNameLength, sizeof(XML_Char)) <= tag->bufEnd - sizeof(XML_Char) */
if (tag->rawNameLength + (int)(sizeof(XML_Char) - 1) + (int)sizeof(XML_Char) > tag->bufEnd - tag->buf) {
int bufSize = tag->rawNameLength * 4;
--- 1647,1652 ----
if (nextPtr) {
/* Need to guarantee that:
! tag->buf + ROUND_UP(tag->rawNameLength, sizeof(XML_Char))
! <= tag->bufEnd - sizeof(XML_Char) */
if (tag->rawNameLength + (int)(sizeof(XML_Char) - 1) + (int)sizeof(XML_Char) > tag->bufEnd - tag->buf) {
int bufSize = tag->rawNameLength * 4;
***************
*** 1654,1658 ****
int bufSize;
if (nextPtr)
! toPtr = (XML_Char *)(tag->buf + ROUND_UP(tag->rawNameLength, sizeof(XML_Char)));
else
toPtr = (XML_Char *)tag->buf;
--- 1669,1674 ----
int bufSize;
if (nextPtr)
! toPtr = (XML_Char *)(tag->buf + ROUND_UP(tag->rawNameLength,
! sizeof(XML_Char)));
else
toPtr = (XML_Char *)tag->buf;
***************
*** 1675,1679 ****
if (result)
return result;
! startElementHandler(handlerArg, tag->name.str, (const XML_Char **)atts);
poolClear(&tempPool);
}
--- 1691,1696 ----
if (result)
return result;
! startElementHandler(handlerArg, tag->name.str,
! (const XML_Char **)atts);
poolClear(&tempPool);
}
***************
*** 1804,1811 ****
changing only the character data. You set up a defaultHandler
and a characterDataHandler. The defaultHandler simply copies
! characters through. The characterDataHandler does the transformation
! and writes the characters out escaping them as necessary. This case
! will fail to work if we leave out the following two lines (because &
! and < inside CDATA sections will be incorrectly escaped).
However, now we have a start/endCdataSectionHandler, so it seems
--- 1821,1829 ----
changing only the character data. You set up a defaultHandler
and a characterDataHandler. The defaultHandler simply copies
! characters through. The characterDataHandler does the
! transformation and writes the characters out escaping them as
! necessary. This case will fail to work if we leave out the
! following two lines (because & and < inside CDATA sections will
! be incorrectly escaped).
However, now we have a start/endCdataSectionHandler, so it seems
***************
*** 1833,1837 ****
ICHAR *dataPtr = (ICHAR *)dataBuf;
XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd);
! characterDataHandler(handlerArg, dataBuf, dataPtr - (ICHAR *)dataBuf);
}
else
--- 1851,1856 ----
ICHAR *dataPtr = (ICHAR *)dataBuf;
XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd);
! characterDataHandler(handlerArg, dataBuf,
! dataPtr - (ICHAR *)dataBuf);
}
else
***************
*** 1858,1862 ****
XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = s;
! characterDataHandler(handlerArg, dataBuf, dataPtr - (ICHAR *)dataBuf);
if (s == next)
break;
--- 1877,1882 ----
XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = s;
! characterDataHandler(handlerArg, dataBuf,
! dataPtr - (ICHAR *)dataBuf);
if (s == next)
break;
***************
*** 1899,1903 ****
ELEMENT_TYPE *elementType = 0;
int nDefaultAtts = 0;
! const XML_Char **appAtts; /* the attribute list to pass to the application */
int attIndex = 0;
int i;
--- 1919,1923 ----
ELEMENT_TYPE *elementType = 0;
int nDefaultAtts = 0;
! const XML_Char **appAtts; /* the attribute list for the application */
int attIndex = 0;
int i;
***************
*** 1914,1918 ****
if (!tagNamePtr->str)
return XML_ERROR_NO_MEMORY;
! elementType = (ELEMENT_TYPE *)lookup(&dtd.elementTypes, tagNamePtr->str, sizeof(ELEMENT_TYPE));
if (!elementType)
return XML_ERROR_NO_MEMORY;
--- 1934,1939 ----
if (!tagNamePtr->str)
return XML_ERROR_NO_MEMORY;
! elementType = (ELEMENT_TYPE *)lookup(&dtd.elementTypes, tagNamePtr->str,
! sizeof(ELEMENT_TYPE));
if (!elementType)
return XML_ERROR_NO_MEMORY;
***************
*** 1979,1983 ****
else if (tagNamePtr) {
/* the value did not need normalizing */
! appAtts[attIndex] = poolStoreString(&tempPool, enc, atts[i].valuePtr, atts[i].valueEnd);
if (appAtts[attIndex] == 0)
return XML_ERROR_NO_MEMORY;
--- 2000,2005 ----
else if (tagNamePtr) {
/* the value did not need normalizing */
! appAtts[attIndex] = poolStoreString(&tempPool, enc, atts[i].valuePtr,
! atts[i].valueEnd);
if (appAtts[attIndex] == 0)
return XML_ERROR_NO_MEMORY;
***************
*** 1988,1992 ****
if (attId->xmlns) {
/* deal with namespace declarations here */
! if (!addBinding(parser, attId->prefix, attId, appAtts[attIndex], bindingsPtr))
return XML_ERROR_NO_MEMORY;
--attIndex;
--- 2010,2015 ----
if (attId->xmlns) {
/* deal with namespace declarations here */
! if (!addBinding(parser, attId->prefix, attId, appAtts[attIndex],
! bindingsPtr))
return XML_ERROR_NO_MEMORY;
--attIndex;
***************
*** 2020,2024 ****
if (da->id->prefix) {
if (da->id->xmlns) {
! if (!addBinding(parser, da->id->prefix, da->id, da->value, bindingsPtr))
return XML_ERROR_NO_MEMORY;
}
--- 2043,2048 ----
if (da->id->prefix) {
if (da->id->xmlns) {
! if (!addBinding(parser, da->id->prefix, da->id, da->value,
! bindingsPtr))
return XML_ERROR_NO_MEMORY;
}
***************
*** 2126,2130 ****
static
! int addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, const XML_Char *uri, BINDING **bindingsPtr)
{
BINDING *b;
--- 2150,2155 ----
static
! int addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
! const XML_Char *uri, BINDING **bindingsPtr)
{
BINDING *b;
***************
*** 2183,2187 ****
const char **endPtr)
{
! enum XML_Error result = doCdataSection(parser, encoding, &start, end, endPtr);
if (start) {
processor = contentProcessor;
--- 2208,2213 ----
const char **endPtr)
{
! enum XML_Error result = doCdataSection(parser, encoding, &start,
! end, endPtr);
if (start) {
processor = contentProcessor;
***************
*** 2247,2251 ****
XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = next;
! characterDataHandler(handlerArg, dataBuf, dataPtr - (ICHAR *)dataBuf);
if (s == next)
break;
--- 2273,2278 ----
XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = next;
! characterDataHandler(handlerArg, dataBuf,
! dataPtr - (ICHAR *)dataBuf);
if (s == next)
break;
***************
*** 2297,2301 ****
const char **endPtr)
{
! enum XML_Error result = doIgnoreSection(parser, encoding, &start, end, endPtr);
if (start) {
processor = prologProcessor;
--- 2324,2329 ----
const char **endPtr)
{
! enum XML_Error result = doIgnoreSection(parser, encoding, &start,
! end, endPtr);
if (start) {
processor = prologProcessor;
***************
*** 2458,2466 ****
enum XML_Error result;
if (! storedEncName) {
! storedEncName = poolStoreString(&temp2Pool,
! encoding,
! encodingName,
! encodingName
! + XmlNameLength(encoding, encodingName));
if (! storedEncName)
return XML_ERROR_NO_MEMORY;
--- 2486,2492 ----
enum XML_Error result;
if (! storedEncName) {
! storedEncName = poolStoreString(
! &temp2Pool, encoding, encodingName,
! encodingName + XmlNameLength(encoding, encodingName));
if (! storedEncName)
return XML_ERROR_NO_MEMORY;
***************
*** 2491,2495 ****
info.data = 0;
info.release = 0;
! if (unknownEncodingHandler(unknownEncodingHandlerData, encodingName, &info)) {
ENCODING *enc;
unknownEncodingMem = MALLOC(XmlSizeOfUnknownEncoding());
--- 2517,2522 ----
info.data = 0;
info.release = 0;
! if (unknownEncodingHandler(unknownEncodingHandlerData, encodingName,
! &info)) {
ENCODING *enc;
unknownEncodingMem = MALLOC(XmlSizeOfUnknownEncoding());
***************
*** 2803,2807 ****
if (dtd.complete
/* ID attributes aren't allowed to have a default */
! && !defineAttribute(declElementType, declAttributeId, declAttributeIsCdata, 0, attVal, parser))
return XML_ERROR_NO_MEMORY;
if (attlistDeclHandler && declAttributeType) {
--- 2830,2835 ----
if (dtd.complete
/* ID attributes aren't allowed to have a default */
! && !defineAttribute(declElementType, declAttributeId,
! declAttributeIsCdata, 0, attVal, parser))
return XML_ERROR_NO_MEMORY;
if (attlistDeclHandler && declAttributeType) {
***************
*** 2938,2942 ****
return XML_ERROR_NO_MEMORY;
if (dtd.complete) {
! declEntity = (ENTITY *)lookup(&dtd.generalEntities, name, sizeof(ENTITY));
if (!declEntity)
return XML_ERROR_NO_MEMORY;
--- 2966,2971 ----
return XML_ERROR_NO_MEMORY;
if (dtd.complete) {
! declEntity = (ENTITY *)lookup(&dtd.generalEntities, name,
! sizeof(ENTITY));
if (!declEntity)
return XML_ERROR_NO_MEMORY;
***************
*** 3089,3095 ****
if (dtd.in_eldecl
&& ! groupConnector[prologState.level]
! && dtd.scaffold[dtd.scaffIndex[dtd.scaffLevel - 1]].type != XML_CTYPE_MIXED
) {
! dtd.scaffold[dtd.scaffIndex[dtd.scaffLevel - 1]].type = XML_CTYPE_CHOICE;
}
groupConnector[prologState.level] = '|';
--- 3118,3126 ----
if (dtd.in_eldecl
&& ! groupConnector[prologState.level]
! && (dtd.scaffold[dtd.scaffIndex[dtd.scaffLevel - 1]].type
! != XML_CTYPE_MIXED)
) {
! dtd.scaffold[dtd.scaffIndex[dtd.scaffLevel - 1]].type
! = XML_CTYPE_CHOICE;
}
groupConnector[prologState.level] = '|';
***************
*** 3186,3190 ****
case XML_ROLE_CONTENT_PCDATA:
if (dtd.in_eldecl) {
! dtd.scaffold[dtd.scaffIndex[dtd.scaffLevel - 1]].type = XML_CTYPE_MIXED;
}
break;
--- 3217,3222 ----
case XML_ROLE_CONTENT_PCDATA:
if (dtd.in_eldecl) {
! dtd.scaffold[dtd.scaffIndex[dtd.scaffLevel - 1]].type
! = XML_CTYPE_MIXED;
}
break;
***************
*** 3383,3387 ****
STRING_POOL *pool)
{
! enum XML_Error result = appendAttributeValue(parser, enc, isCdata, ptr, end, pool);
if (result)
return result;
--- 3415,3420 ----
STRING_POOL *pool)
{
! enum XML_Error result = appendAttributeValue(parser, enc, isCdata, ptr,
! end, pool);
if (result)
return result;
***************
*** 3498,3502 ****
const XML_Char *textEnd = entity->textPtr + entity->textLen;
entity->open = 1;
! result = appendAttributeValue(parser, internalEncoding, isCdata, (char *)entity->textPtr, (char *)textEnd, pool);
entity->open = 0;
if (result)
--- 3531,3537 ----
const XML_Char *textEnd = entity->textPtr + entity->textLen;
entity->open = 1;
! result = appendAttributeValue(parser, internalEncoding, isCdata,
! (char *)entity->textPtr,
! (char *)textEnd, pool);
entity->open = 0;
if (result)
***************
*** 3647,3651 ****
static int
! reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, const char *start, const char *end)
{
const XML_Char *target;
--- 3682,3687 ----
static int
! reportProcessingInstruction(XML_Parser parser, const ENCODING *enc,
! const char *start, const char *end)
{
const XML_Char *target;
***************
*** 3675,3679 ****
static int
! reportComment(XML_Parser parser, const ENCODING *enc, const char *start, const char *end)
{
XML_Char *data;
--- 3711,3716 ----
static int
! reportComment(XML_Parser parser, const ENCODING *enc,
! const char *start, const char *end)
{
XML_Char *data;
***************
*** 3696,3700 ****
static void
! reportDefault(XML_Parser parser, const ENCODING *enc, const char *s, const char *end)
{
if (MUST_CONVERT(enc, s)) {
--- 3733,3738 ----
static void
! reportDefault(XML_Parser parser, const ENCODING *enc,
! const char *s, const char *end)
{
if (MUST_CONVERT(enc, s)) {
***************
*** 3740,3749 ****
if (type->allocDefaultAtts == 0) {
type->allocDefaultAtts = 8;
! type->defaultAtts = MALLOC(type->allocDefaultAtts*sizeof(DEFAULT_ATTRIBUTE));
}
else {
type->allocDefaultAtts *= 2;
type->defaultAtts = REALLOC(type->defaultAtts,
! type->allocDefaultAtts*sizeof(DEFAULT_ATTRIBUTE));
}
if (!type->defaultAtts)
--- 3778,3789 ----
if (type->allocDefaultAtts == 0) {
type->allocDefaultAtts = 8;
! type->defaultAtts = MALLOC(type->allocDefaultAtts
! * sizeof(DEFAULT_ATTRIBUTE));
}
else {
type->allocDefaultAtts *= 2;
type->defaultAtts = REALLOC(type->defaultAtts,
! (type->allocDefaultAtts
! * sizeof(DEFAULT_ATTRIBUTE)));
}
if (!type->defaultAtts)
***************
*** 3773,3777 ****
if (!poolAppendChar(&dtd.pool, XML_T('\0')))
return 0;
! prefix = (PREFIX *)lookup(&dtd.prefixes, poolStart(&dtd.pool), sizeof(PREFIX));
if (!prefix)
return 0;
--- 3813,3818 ----
if (!poolAppendChar(&dtd.pool, XML_T('\0')))
return 0;
! prefix = (PREFIX *)lookup(&dtd.prefixes, poolStart(&dtd.pool),
! sizeof(PREFIX));
if (!prefix)
return 0;
***************
*** 3788,3792 ****
static ATTRIBUTE_ID *
! getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start, const char *end)
{
ATTRIBUTE_ID *id;
--- 3829,3834 ----
static ATTRIBUTE_ID *
! getAttributeId(XML_Parser parser, const ENCODING *enc,
! const char *start, const char *end)
{
ATTRIBUTE_ID *id;
***************
*** 3830,3834 ****
if (!poolAppendChar(&dtd.pool, XML_T('\0')))
return 0;
! id->prefix = (PREFIX *)lookup(&dtd.prefixes, poolStart(&dtd.pool), sizeof(PREFIX));
if (id->prefix->name == poolStart(&dtd.pool))
poolFinish(&dtd.pool);
--- 3872,3877 ----
if (!poolAppendChar(&dtd.pool, XML_T('\0')))
return 0;
! id->prefix = (PREFIX *)lookup(&dtd.prefixes, poolStart(&dtd.pool),
! sizeof(PREFIX));
if (id->prefix->name == poolStart(&dtd.pool))
poolFinish(&dtd.pool);
***************
*** 3938,3942 ****
if (!poolAppendChar(&tempPool, XML_T('\0')))
return 0;
! prefix = (PREFIX *)lookup(&dtd.prefixes, poolStart(&tempPool), sizeof(PREFIX));
if (!prefix)
return 0;
--- 3981,3986 ----
if (!poolAppendChar(&tempPool, XML_T('\0')))
return 0;
! prefix = (PREFIX *)lookup(&dtd.prefixes, poolStart(&tempPool),
! sizeof(PREFIX));
if (!prefix)
return 0;
***************
*** 3948,3957 ****
poolDiscard(&tempPool);
}
! for (context = s + 1; *context != CONTEXT_SEP && *context != XML_T('\0'); context++)
if (!poolAppendChar(&tempPool, *context))
return 0;
if (!poolAppendChar(&tempPool, XML_T('\0')))
return 0;
! if (!addBinding(parser, prefix, 0, poolStart(&tempPool), &inheritedBindings))
return 0;
poolDiscard(&tempPool);
--- 3992,4004 ----
poolDiscard(&tempPool);
}
! for (context = s + 1;
! *context != CONTEXT_SEP && *context != XML_T('\0');
! context++)
if (!poolAppendChar(&tempPool, *context))
return 0;
if (!poolAppendChar(&tempPool, XML_T('\0')))
return 0;
! if (!addBinding(parser, prefix, 0, poolStart(&tempPool),
! &inheritedBindings))
return 0;
poolDiscard(&tempPool);
***************
*** 4096,4100 ****
return 0;
++name;
! newA = (ATTRIBUTE_ID *)lookup(&(newDtd->attributeIds), name, sizeof(ATTRIBUTE_ID));
if (!newA)
return 0;
--- 4143,4148 ----
return 0;
++name;
! newA = (ATTRIBUTE_ID *)lookup(&(newDtd->attributeIds), name,
! sizeof(ATTRIBUTE_ID));
if (!newA)
return 0;
***************
*** 4105,4109 ****
newA->prefix = &newDtd->defaultPrefix;
else
! newA->prefix = (PREFIX *)lookup(&(newDtd->prefixes), oldA->prefix->name, 0);
}
}
--- 4153,4158 ----
newA->prefix = &newDtd->defaultPrefix;
else
! newA->prefix = (PREFIX *)lookup(&(newDtd->prefixes),
! oldA->prefix->name, 0);
}
}
***************
*** 4123,4144 ****
if (!name)
return 0;
! newE = (ELEMENT_TYPE *)lookup(&(newDtd->elementTypes), name, sizeof(ELEMENT_TYPE));
if (!newE)
return 0;
if (oldE->nDefaultAtts) {
! newE->defaultAtts = (DEFAULT_ATTRIBUTE *)MALLOC(oldE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE));
if (!newE->defaultAtts)
return 0;
}
if (oldE->idAtt)
! newE->idAtt = (ATTRIBUTE_ID *)lookup(&(newDtd->attributeIds), oldE->idAtt->name, 0);
newE->allocDefaultAtts = newE->nDefaultAtts = oldE->nDefaultAtts;
if (oldE->prefix)
! newE->prefix = (PREFIX *)lookup(&(newDtd->prefixes), oldE->prefix->name, 0);
for (i = 0; i < newE->nDefaultAtts; i++) {
! newE->defaultAtts[i].id = (ATTRIBUTE_ID *)lookup(&(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0);
newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata;
if (oldE->defaultAtts[i].value) {
! newE->defaultAtts[i].value = poolCopyString(&(newDtd->pool), oldE->defaultAtts[i].value);
if (!newE->defaultAtts[i].value)
return 0;
--- 4172,4199 ----
if (!name)
return 0;
! newE = (ELEMENT_TYPE *)lookup(&(newDtd->elementTypes), name,
! sizeof(ELEMENT_TYPE));
if (!newE)
return 0;
if (oldE->nDefaultAtts) {
! newE->defaultAtts = (DEFAULT_ATTRIBUTE *)
! MALLOC(oldE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE));
if (!newE->defaultAtts)
return 0;
}
if (oldE->idAtt)
! newE->idAtt = (ATTRIBUTE_ID *)
! lookup(&(newDtd->attributeIds), oldE->idAtt->name, 0);
newE->allocDefaultAtts = newE->nDefaultAtts = oldE->nDefaultAtts;
if (oldE->prefix)
! newE->prefix = (PREFIX *)lookup(&(newDtd->prefixes),
! oldE->prefix->name, 0);
for (i = 0; i < newE->nDefaultAtts; i++) {
! newE->defaultAtts[i].id = (ATTRIBUTE_ID *)
! lookup(&(newDtd->attributeIds), oldE->defaultAtts[i].id->name, 0);
newE->defaultAtts[i].isCdata = oldE->defaultAtts[i].isCdata;
if (oldE->defaultAtts[i].value) {
! newE->defaultAtts[i].value
! = poolCopyString(&(newDtd->pool), oldE->defaultAtts[i].value);
if (!newE->defaultAtts[i].value)
return 0;
***************
*** 4217,4221 ****
}
else {
! const XML_Char *tem = poolCopyStringN(newPool, oldE->textPtr, oldE->textLen);
if (!tem)
return 0;
--- 4272,4277 ----
}
else {
! const XML_Char *tem = poolCopyStringN(newPool, oldE->textPtr,
! oldE->textLen);
if (!tem)
return 0;
***************
*** 4439,4443 ****
}
! static const XML_Char *poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n)
{
if (!pool->ptr && !poolGrow(pool))
--- 4495,4500 ----
}
! static const XML_Char *poolCopyStringN(STRING_POOL *pool,
! const XML_Char *s, int n)
{
if (!pool->ptr && !poolGrow(pool))
***************
*** 4494,4498 ****
pool->blocks = pool->freeBlocks;
pool->freeBlocks = tem;
! memcpy(pool->blocks->s, pool->start, (pool->end - pool->start) * sizeof(XML_Char));
pool->ptr = pool->blocks->s + (pool->ptr - pool->start);
pool->start = pool->blocks->s;
--- 4551,4556 ----
pool->blocks = pool->freeBlocks;
pool->freeBlocks = tem;
! memcpy(pool->blocks->s, pool->start,
! (pool->end - pool->start) * sizeof(XML_Char));
pool->ptr = pool->blocks->s + (pool->ptr - pool->start);
pool->start = pool->blocks->s;
***************
*** 4503,4507 ****
if (pool->blocks && pool->start == pool->blocks->s) {
int blockSize = (pool->end - pool->start)*2;
! pool->blocks = pool->mem->realloc_fcn(pool->blocks, offsetof(BLOCK, s) + blockSize * sizeof(XML_Char));
if (!pool->blocks)
return 0;
--- 4561,4567 ----
if (pool->blocks && pool->start == pool->blocks->s) {
int blockSize = (pool->end - pool->start)*2;
! pool->blocks = pool->mem->realloc_fcn(pool->blocks,
! offsetof(BLOCK, s)
! + blockSize * sizeof(XML_Char));
if (!pool->blocks)
return 0;
***************
*** 4518,4522 ****
else
blockSize *= 2;
! tem = pool->mem->malloc_fcn(offsetof(BLOCK, s) + blockSize * sizeof(XML_Char));
if (!tem)
return 0;
--- 4578,4583 ----
else
blockSize *= 2;
! tem = pool->mem->malloc_fcn(offsetof(BLOCK, s)
! + blockSize * sizeof(XML_Char));
if (!tem)
return 0;
***************
*** 4525,4529 ****
pool->blocks = tem;
if (pool->ptr != pool->start)
! memcpy(tem->s, pool->start, (pool->ptr - pool->start) * sizeof(XML_Char));
pool->ptr = tem->s + (pool->ptr - pool->start);
pool->start = tem->s;
--- 4586,4591 ----
pool->blocks = tem;
if (pool->ptr != pool->start)
! memcpy(tem->s, pool->start,
! (pool->ptr - pool->start) * sizeof(XML_Char));
pool->ptr = tem->s + (pool->ptr - pool->start);
pool->start = tem->s;
***************
*** 4549,4558 ****
if (dtd.scaffold) {
dtd.scaffSize *= 2;
! dtd.scaffold = (CONTENT_SCAFFOLD *) REALLOC(dtd.scaffold,
! dtd.scaffSize * sizeof(CONTENT_SCAFFOLD));
}
else {
dtd.scaffSize = 32;
! dtd.scaffold = (CONTENT_SCAFFOLD *) MALLOC(dtd.scaffSize * sizeof(CONTENT_SCAFFOLD));
}
if (! dtd.scaffold)
--- 4611,4621 ----
if (dtd.scaffold) {
dtd.scaffSize *= 2;
! dtd.scaffold = (CONTENT_SCAFFOLD *)
! REALLOC(dtd.scaffold, dtd.scaffSize * sizeof(CONTENT_SCAFFOLD));
}
else {
dtd.scaffSize = 32;
! dtd.scaffold = (CONTENT_SCAFFOLD *)
! MALLOC(dtd.scaffSize * sizeof(CONTENT_SCAFFOLD));
}
if (! dtd.scaffold)
***************
*** 4562,4566 ****
me = &dtd.scaffold[next];
if (dtd.scaffLevel) {
! CONTENT_SCAFFOLD *parent = &dtd.scaffold[dtd.scaffIndex[dtd.scaffLevel - 1]];
if (parent->lastchild) {
dtd.scaffold[parent->lastchild].nextsib = next;
--- 4625,4629 ----
me = &dtd.scaffold[next];
if (dtd.scaffLevel) {
! CONTENT_SCAFFOLD *parent = &dtd.scaffold[dtd.scaffIndex[dtd.scaffLevel-1]];
if (parent->lastchild) {
dtd.scaffold[parent->lastchild].nextsib = next;