#define REALLOC(p,s) (parser->m_mem.realloc_fcn((p),(s)))
#define FREE(p) (parser->m_mem.free_fcn((p)))
-#define handlerArg (parser->m_handlerArg)
#define startElementHandler (parser->m_startElementHandler)
#define endElementHandler (parser->m_endElementHandler)
#define characterDataHandler (parser->m_characterDataHandler)
curBase = NULL;
XmlInitEncoding(&initEncoding, &encoding, 0);
parser->m_userData = NULL;
- handlerArg = NULL;
+ parser->m_handlerArg = NULL;
startElementHandler = NULL;
endElementHandler = NULL;
characterDataHandler = NULL;
oldDeclElementType = declElementType;
oldUserData = parser->m_userData;
- oldHandlerArg = handlerArg;
+ oldHandlerArg = parser->m_handlerArg;
oldDefaultExpandInternalEntities = defaultExpandInternalEntities;
oldExternalEntityRefHandlerArg = externalEntityRefHandlerArg;
#ifdef XML_DTD
declElementType = oldDeclElementType;
parser->m_userData = oldUserData;
if (oldUserData == oldHandlerArg)
- handlerArg = parser->m_userData;
+ parser->m_handlerArg = parser->m_userData;
else
- handlerArg = parser;
+ parser->m_handlerArg = parser;
if (oldExternalEntityRefHandlerArg != oldParser)
externalEntityRefHandlerArg = oldExternalEntityRefHandlerArg;
defaultExpandInternalEntities = oldDefaultExpandInternalEntities;
XML_UseParserAsHandlerArg(XML_Parser parser)
{
if (parser != NULL)
- handlerArg = parser;
+ parser->m_handlerArg = parser;
}
enum XML_Error XMLCALL
{
if (parser == NULL)
return;
- if (handlerArg == parser->m_userData)
- handlerArg = parser->m_userData = p;
+ if (parser->m_handlerArg == parser->m_userData)
+ parser->m_handlerArg = parser->m_userData = p;
else
parser->m_userData = p;
}
*eventEndPP = end;
if (characterDataHandler) {
XML_Char c = 0xA;
- characterDataHandler(handlerArg, &c, 1);
+ characterDataHandler(parser->m_handlerArg, &c, 1);
}
else if (defaultHandler)
reportDefault(parser, enc, s, end);
next - enc->minBytesPerChar);
if (ch) {
if (characterDataHandler)
- characterDataHandler(handlerArg, &ch, 1);
+ characterDataHandler(parser->m_handlerArg, &ch, 1);
else if (defaultHandler)
reportDefault(parser, enc, s, next);
break;
}
else if (!entity) {
if (skippedEntityHandler)
- skippedEntityHandler(handlerArg, name, 0);
+ skippedEntityHandler(parser->m_handlerArg, name, 0);
else if (defaultHandler)
reportDefault(parser, enc, s, next);
break;
enum XML_Error result;
if (!defaultExpandInternalEntities) {
if (skippedEntityHandler)
- skippedEntityHandler(handlerArg, entity->name, 0);
+ skippedEntityHandler(parser->m_handlerArg, entity->name, 0);
else if (defaultHandler)
reportDefault(parser, enc, s, next);
break;
if (result)
return result;
if (startElementHandler)
- startElementHandler(handlerArg, tag->name.str,
+ startElementHandler(parser->m_handlerArg, tag->name.str,
(const XML_Char **)atts);
else if (defaultHandler)
reportDefault(parser, enc, s, next);
}
poolFinish(&tempPool);
if (startElementHandler) {
- startElementHandler(handlerArg, name.str, (const XML_Char **)atts);
+ startElementHandler(parser->m_handlerArg, name.str, (const XML_Char **)atts);
noElmHandlers = XML_FALSE;
}
if (endElementHandler) {
if (startElementHandler)
*eventPP = *eventEndPP;
- endElementHandler(handlerArg, name.str);
+ endElementHandler(parser->m_handlerArg, name.str);
noElmHandlers = XML_FALSE;
}
if (noElmHandlers && defaultHandler)
}
*uri = XML_T('\0');
}
- endElementHandler(handlerArg, tag->name.str);
+ endElementHandler(parser->m_handlerArg, tag->name.str);
}
else if (defaultHandler)
reportDefault(parser, enc, s, next);
while (tag->bindings) {
BINDING *b = tag->bindings;
if (endNamespaceDeclHandler)
- endNamespaceDeclHandler(handlerArg, b->prefix->name);
+ endNamespaceDeclHandler(parser->m_handlerArg, b->prefix->name);
tag->bindings = tag->bindings->nextTagBinding;
b->nextTagBinding = freeBindingList;
freeBindingList = b;
return XML_ERROR_BAD_CHAR_REF;
if (characterDataHandler) {
XML_Char buf[XML_ENCODE_MAX];
- characterDataHandler(handlerArg, buf, XmlEncode(n, (ICHAR *)buf));
+ characterDataHandler(parser->m_handlerArg, buf, XmlEncode(n, (ICHAR *)buf));
}
else if (defaultHandler)
reportDefault(parser, enc, s, next);
case XML_TOK_DATA_NEWLINE:
if (characterDataHandler) {
XML_Char c = 0xA;
- characterDataHandler(handlerArg, &c, 1);
+ characterDataHandler(parser->m_handlerArg, &c, 1);
}
else if (defaultHandler)
reportDefault(parser, enc, s, next);
{
enum XML_Error result;
if (startCdataSectionHandler)
- startCdataSectionHandler(handlerArg);
+ startCdataSectionHandler(parser->m_handlerArg);
#if 0
/* Suppose you doing a transformation on a document that involves
changing only the character data. You set up a defaultHandler
easier to let the user deal with this.
*/
else if (characterDataHandler)
- characterDataHandler(handlerArg, dataBuf, 0);
+ characterDataHandler(parser->m_handlerArg, dataBuf, 0);
#endif
else if (defaultHandler)
reportDefault(parser, enc, s, next);
if (MUST_CONVERT(enc, s)) {
ICHAR *dataPtr = (ICHAR *)dataBuf;
XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd);
- characterDataHandler(handlerArg, dataBuf,
+ characterDataHandler(parser->m_handlerArg, dataBuf,
(int)(dataPtr - (ICHAR *)dataBuf));
}
else
- characterDataHandler(handlerArg,
+ characterDataHandler(parser->m_handlerArg,
(XML_Char *)s,
(int)((XML_Char *)end - (XML_Char *)s));
}
ICHAR *dataPtr = (ICHAR *)dataBuf;
const enum XML_Convert_Result convert_res = XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = s;
- charDataHandler(handlerArg, dataBuf,
+ charDataHandler(parser->m_handlerArg, dataBuf,
(int)(dataPtr - (ICHAR *)dataBuf));
if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE))
break;
}
}
else
- charDataHandler(handlerArg,
+ charDataHandler(parser->m_handlerArg,
(XML_Char *)s,
(int)((XML_Char *)next - (XML_Char *)s));
}
* binding in addBindings(), so call the end handler now.
*/
if (endNamespaceDeclHandler)
- endNamespaceDeclHandler(handlerArg, b->prefix->name);
+ endNamespaceDeclHandler(parser->m_handlerArg, b->prefix->name);
bindings = bindings->nextTagBinding;
b->nextTagBinding = freeBindingList;
*bindingsPtr = b;
/* if attId == NULL then we are not starting a namespace scope */
if (attId && startNamespaceDeclHandler)
- startNamespaceDeclHandler(handlerArg, prefix->name,
+ startNamespaceDeclHandler(parser->m_handlerArg, prefix->name,
prefix->binding ? uri : 0);
return XML_ERROR_NONE;
}
switch (tok) {
case XML_TOK_CDATA_SECT_CLOSE:
if (endCdataSectionHandler)
- endCdataSectionHandler(handlerArg);
+ endCdataSectionHandler(parser->m_handlerArg);
#if 0
/* see comment under XML_TOK_CDATA_SECT_OPEN */
else if (characterDataHandler)
- characterDataHandler(handlerArg, dataBuf, 0);
+ characterDataHandler(parser->m_handlerArg, dataBuf, 0);
#endif
else if (defaultHandler)
reportDefault(parser, enc, s, next);
case XML_TOK_DATA_NEWLINE:
if (characterDataHandler) {
XML_Char c = 0xA;
- characterDataHandler(handlerArg, &c, 1);
+ characterDataHandler(parser->m_handlerArg, &c, 1);
}
else if (defaultHandler)
reportDefault(parser, enc, s, next);
ICHAR *dataPtr = (ICHAR *)dataBuf;
const enum XML_Convert_Result convert_res = XmlConvert(enc, &s, next, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = next;
- charDataHandler(handlerArg, dataBuf,
+ charDataHandler(parser->m_handlerArg, dataBuf,
(int)(dataPtr - (ICHAR *)dataBuf));
if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE))
break;
}
}
else
- charDataHandler(handlerArg,
+ charDataHandler(parser->m_handlerArg,
(XML_Char *)s,
(int)((XML_Char *)next - (XML_Char *)s));
}
if (!storedversion)
return XML_ERROR_NO_MEMORY;
}
- xmlDeclHandler(handlerArg, storedversion, storedEncName, standalone);
+ xmlDeclHandler(parser->m_handlerArg, storedversion, storedEncName, standalone);
}
else if (defaultHandler)
reportDefault(parser, encoding, s, next);
break;
case XML_ROLE_DOCTYPE_INTERNAL_SUBSET:
if (startDoctypeDeclHandler) {
- startDoctypeDeclHandler(handlerArg, doctypeName, doctypeSysid,
+ startDoctypeDeclHandler(parser->m_handlerArg, doctypeName, doctypeSysid,
doctypePubid, 1);
doctypeName = NULL;
poolClear(&tempPool);
break;
case XML_ROLE_DOCTYPE_CLOSE:
if (doctypeName) {
- startDoctypeDeclHandler(handlerArg, doctypeName,
+ startDoctypeDeclHandler(parser->m_handlerArg, doctypeName,
doctypeSysid, doctypePubid, 0);
poolClear(&tempPool);
handleDefault = XML_FALSE;
if (dtd->paramEntityRead) {
if (!dtd->standalone &&
notStandaloneHandler &&
- !notStandaloneHandler(handlerArg))
+ !notStandaloneHandler(parser->m_handlerArg))
return XML_ERROR_NOT_STANDALONE;
}
/* if we didn't read the foreign DTD then this means that there
}
#endif /* XML_DTD */
if (endDoctypeDeclHandler) {
- endDoctypeDeclHandler(handlerArg);
+ endDoctypeDeclHandler(parser->m_handlerArg);
handleDefault = XML_FALSE;
}
break;
if (dtd->paramEntityRead) {
if (!dtd->standalone &&
notStandaloneHandler &&
- !notStandaloneHandler(handlerArg))
+ !notStandaloneHandler(parser->m_handlerArg))
return XML_ERROR_NOT_STANDALONE;
}
/* if we didn't read the foreign DTD then this means that there
poolFinish(&tempPool);
}
*eventEndPP = s;
- attlistDeclHandler(handlerArg, declElementType->name,
+ attlistDeclHandler(parser->m_handlerArg, declElementType->name,
declAttributeId->name, declAttributeType,
0, role == XML_ROLE_REQUIRED_ATTRIBUTE_VALUE);
poolClear(&tempPool);
poolFinish(&tempPool);
}
*eventEndPP = s;
- attlistDeclHandler(handlerArg, declElementType->name,
+ attlistDeclHandler(parser->m_handlerArg, declElementType->name,
declAttributeId->name, declAttributeType,
attVal,
role == XML_ROLE_FIXED_ATTRIBUTE_VALUE);
poolFinish(&dtd->entityValuePool);
if (entityDeclHandler) {
*eventEndPP = s;
- entityDeclHandler(handlerArg,
+ entityDeclHandler(parser->m_handlerArg,
declEntity->name,
declEntity->is_param,
declEntity->textPtr,
&& !paramEntityParsing
#endif /* XML_DTD */
&& notStandaloneHandler
- && !notStandaloneHandler(handlerArg))
+ && !notStandaloneHandler(parser->m_handlerArg))
return XML_ERROR_NOT_STANDALONE;
#ifndef XML_DTD
break;
case XML_ROLE_ENTITY_COMPLETE:
if (dtd->keepProcessing && declEntity && entityDeclHandler) {
*eventEndPP = s;
- entityDeclHandler(handlerArg,
+ entityDeclHandler(parser->m_handlerArg,
declEntity->name,
declEntity->is_param,
0,0,
poolFinish(&dtd->pool);
if (unparsedEntityDeclHandler) {
*eventEndPP = s;
- unparsedEntityDeclHandler(handlerArg,
+ unparsedEntityDeclHandler(parser->m_handlerArg,
declEntity->name,
declEntity->base,
declEntity->systemId,
}
else if (entityDeclHandler) {
*eventEndPP = s;
- entityDeclHandler(handlerArg,
+ entityDeclHandler(parser->m_handlerArg,
declEntity->name,
0,0,0,
declEntity->base,
if (!systemId)
return XML_ERROR_NO_MEMORY;
*eventEndPP = s;
- notationDeclHandler(handlerArg,
+ notationDeclHandler(parser->m_handlerArg,
declNotationName,
curBase,
systemId,
case XML_ROLE_NOTATION_NO_SYSTEM_ID:
if (declNotationPublicId && notationDeclHandler) {
*eventEndPP = s;
- notationDeclHandler(handlerArg,
+ notationDeclHandler(parser->m_handlerArg,
declNotationName,
curBase,
0,
dtd->keepProcessing = dtd->standalone;
/* cannot report skipped entities in declarations */
if ((role == XML_ROLE_PARAM_ENTITY_REF) && skippedEntityHandler) {
- skippedEntityHandler(handlerArg, name, 1);
+ skippedEntityHandler(parser->m_handlerArg, name, 1);
handleDefault = XML_FALSE;
}
break;
#endif /* XML_DTD */
if (!dtd->standalone &&
notStandaloneHandler &&
- !notStandaloneHandler(handlerArg))
+ !notStandaloneHandler(parser->m_handlerArg))
return XML_ERROR_NOT_STANDALONE;
break;
XML_CTYPE_ANY :
XML_CTYPE_EMPTY);
*eventEndPP = s;
- elementDeclHandler(handlerArg, declElementType->name, content);
+ elementDeclHandler(parser->m_handlerArg, declElementType->name, content);
handleDefault = XML_FALSE;
}
dtd->in_eldecl = XML_FALSE;
if (!model)
return XML_ERROR_NO_MEMORY;
*eventEndPP = s;
- elementDeclHandler(handlerArg, declElementType->name, model);
+ elementDeclHandler(parser->m_handlerArg, declElementType->name, model);
}
dtd->in_eldecl = XML_FALSE;
dtd->contentStringLen = 0;
/* Cannot report skipped entity here - see comments on
skippedEntityHandler.
if (skippedEntityHandler)
- skippedEntityHandler(handlerArg, name, 0);
+ skippedEntityHandler(parser->m_handlerArg, name, 0);
*/
/* Cannot call the default handler because this would be
out of sync with the call to the startElementHandler.
/* cannot report skipped entity here - see comments on
skippedEntityHandler
if (skippedEntityHandler)
- skippedEntityHandler(handlerArg, name, 0);
+ skippedEntityHandler(parser->m_handlerArg, name, 0);
*/
dtd->keepProcessing = dtd->standalone;
goto endEntityValue;
if (!data)
return 0;
normalizeLines(data);
- processingInstructionHandler(handlerArg, target, data);
+ processingInstructionHandler(parser->m_handlerArg, target, data);
poolClear(&tempPool);
return 1;
}
if (!data)
return 0;
normalizeLines(data);
- commentHandler(handlerArg, data);
+ commentHandler(parser->m_handlerArg, data);
poolClear(&tempPool);
return 1;
}
ICHAR *dataPtr = (ICHAR *)dataBuf;
convert_res = XmlConvert(enc, &s, end, &dataPtr, (ICHAR *)dataBufEnd);
*eventEndPP = s;
- defaultHandler(handlerArg, dataBuf, (int)(dataPtr - (ICHAR *)dataBuf));
+ defaultHandler(parser->m_handlerArg, dataBuf, (int)(dataPtr - (ICHAR *)dataBuf));
*eventPP = s;
} while ((convert_res != XML_CONVERT_COMPLETED) && (convert_res != XML_CONVERT_INPUT_INCOMPLETE));
}
else
- defaultHandler(handlerArg, (XML_Char *)s, (int)((XML_Char *)end - (XML_Char *)s));
+ defaultHandler(parser->m_handlerArg, (XML_Char *)s, (int)((XML_Char *)end - (XML_Char *)s));
}