diff --git a/ChangeLog b/ChangeLog index ac68e125..55f41317 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Mon May 13 12:32:22 CEST 2002 Daniel Veillard + + * python/generator.py python/libxml2class.txt : fixed a problem + with the HTML parser pointed by Gary Benson + * python/tests/Makefile.am python/tests/pushSAXhtml.py: sdding the + example + Thu 09 May 2002 11:19:00 AM PDT Aleksey Sanin * parser.c: fixed bug #81159 (memory growth in SAX) diff --git a/python/generator.py b/python/generator.py index 149eb1c5..863e2b1c 100755 --- a/python/generator.py +++ b/python/generator.py @@ -530,6 +530,8 @@ classes_type = { "xmlXPathParserContextPtr": ("._o", "xpathParserContext(_obj=%s)", "xpathParserContext"), "xmlParserCtxtPtr": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"), "xmlParserCtxt *": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"), + "htmlParserCtxtPtr": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"), + "htmlParserCtxt *": ("._o", "parserCtxt(_obj=%s)", "parserCtxt"), "xmlCatalogPtr": ("._o", "catalog(_obj=%s)", "catalog"), "xmlURIPtr": ("._o", "URI(_obj=%s)", "URI"), } diff --git a/python/libxml2class.txt b/python/libxml2class.txt index 9e55c355..e5e530ab 100644 --- a/python/libxml2class.txt +++ b/python/libxml2class.txt @@ -6,13 +6,9 @@ # functions from module HTMLparser -htmlFreeParserCtxt() htmlHandleOmittedElem() htmlIsScriptAttribute() -htmlParseCharRef() -htmlParseChunk() htmlParseDoc() -htmlParseElement() htmlParseFile() # functions from module HTMLtree @@ -440,6 +436,12 @@ Class parserCtxt() validate() wellFormed() + # functions from module HTMLparser + htmlFreeParserCtxt() + htmlParseCharRef() + htmlParseChunk() + htmlParseElement() + # functions from module parser clearParserCtxt() freeParserCtxt() diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am index 2cb151a3..3255141f 100644 --- a/python/tests/Makefile.am +++ b/python/tests/Makefile.am @@ -8,6 +8,7 @@ PYTESTS= \ xpathext.py \ push.py \ pushSAX.py \ + pushSAXhtml.py \ error.py \ serialize.py\ validate.py \ diff --git a/python/tests/pushSAXhtml.py b/python/tests/pushSAXhtml.py new file mode 100755 index 00000000..43bf6564 --- /dev/null +++ b/python/tests/pushSAXhtml.py @@ -0,0 +1,64 @@ +#!/usr/bin/python -u +import sys +import libxml2 + +# Memory debug specific +libxml2.debugMemory(1) + +log = "" + +class callback: + def startDocument(self): + global log + log = log + "startDocument:" + + def endDocument(self): + global log + log = log + "endDocument:" + + def startElement(self, tag, attrs): + global log + log = log + "startElement %s %s:" % (tag, attrs) + + def endElement(self, tag): + global log + log = log + "endElement %s:" % (tag) + + def characters(self, data): + global log + log = log + "characters: %s:" % (data) + + def warning(self, msg): + global log + log = log + "warning: %s:" % (msg) + + def error(self, msg): + global log + log = log + "error: %s:" % (msg) + + def fatalError(self, msg): + global log + log = log + "fatalError: %s:" % (msg) + +handler = callback() + +ctxt = libxml2.htmlCreatePushParser(handler, " '9')) && (!ok)) { return(xmlXPathNAN); } - while ((*cur >= '0') && (*cur <= '9')) { - mult /= 10; - ret = ret + (*cur - '0') * mult; + while (((*cur >= '0') && (*cur <= '9')) && (frac < MAX_FRAC)) { + v = (*cur - '0'); + fraction = fraction * 10 + v; + frac = frac + 1; cur++; } + fraction /= my_pow10[frac]; + ret = ret + fraction; + while ((*cur >= '0') && (*cur <= '9')) + cur++; } if ((*cur == 'e') || (*cur == 'E')) { cur++;