| I wanted to follow up with this bug:
WebKit was also running into this bug. We inherited some work-around code from KDOM:
static xmlEntityPtr getEntityHandler(void *closure, const xmlChar *name) { xmlParserCtxtPtr ctxt = static_cast<xmlParserCtxtPtr>(closure); xmlEntityPtr ent = xmlGetPredefinedEntity(name); if (ent) return ent;
ent = xmlGetDocEntity(ctxt->myDoc, name); if (!ent && getTokenizer(closure)->isXHTMLDocument()) ent = getXHTMLEntity(name);
// Work around a libxml SAX2 bug that causes charactersHandler to be called twice. if (ent) ctxt->replaceEntities = (ctxt->instate == XML_PARSER_ATTRIBUTE_VALUE) || (ent->etype != XML_INTERNAL_GENERAL_ENTITY);
return ent; }
Recently I've noticed that the above work-around code is not quite correct and is causing troubles of its own:
I'm looking for any ideas for a better workaround.
Thanks.
-eric
|