1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-07-30 22:43:14 +03:00

This change started out as a simple desire to speed up the

execution time of testapi.c, which was being delayed by
nameserver requests for non-existent URL's.  From there it
just sort of grew, and grew....
* nanohttp.c, nanoftp.c: changed the processing of URL's
  to use the uri.c routines instead of custom code.
* include/libxml/xmlerror.h: added code XML_FTP_URL_SYNTAX
* uri.c: added accepting ipV6 addresses, in accordance with
  RFC's 2732 and 2373 (TODO: allow ipV4 within ipV6)
* gentest.py, testapi.c: fixed a few problems with the
  testing of the nanoftp and nanohttp routines.
* include/libxml/xmlversion.h: minor change to fix a
  warning on the docs generation
* regenerated the docs
This commit is contained in:
William M. Brack
2005-02-13 08:18:52 +00:00
parent a22da29921
commit 015ccb2c74
38 changed files with 450 additions and 818 deletions

View File

@ -1,3 +1,20 @@
Sun Feb 13 16:15:03 HKT 2005 William Brack <wbrack@mmm.com.hk>
This change started out as a simple desire to speed up the
execution time of testapi.c, which was being delayed by
nameserver requests for non-existent URL's. From there it
just sort of grew, and grew....
* nanohttp.c, nanoftp.c: changed the processing of URL's
to use the uri.c routines instead of custom code.
* include/libxml/xmlerror.h: added code XML_FTP_URL_SYNTAX
* uri.c: added accepting ipV6 addresses, in accordance with
RFC's 2732 and 2373 (TODO: allow ipV4 within ipV6)
* gentest.py, testapi.c: fixed a few problems with the
testing of the nanoftp and nanohttp routines.
* include/libxml/xmlversion.h: minor change to fix a
warning on the docs generation
* regenerated the docs
Sat Feb 12 09:07:11 HKT 2005 William Brack <wbrack@mmm.com.hk>
* xinclude.c: fixed xmlXIncludeParseFile to prevent

View File

@ -242,6 +242,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>Bopomofo</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofo">xmlUCSIsBopomofo</a><br />
</dd><dt>BopomofoExtended</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBopomofoExtended">xmlUCSIsBopomofoExtended</a><br />
</dd><dt>Both</dt><dd><a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>BoxDrawing</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBoxDrawing">xmlUCSIsBoxDrawing</a><br />
</dd><dt>BraillePatterns</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsBraillePatterns">xmlUCSIsBraillePatterns</a><br />
</dd><dt>Buffer</dt><dd><a href="html/libxml-parser.html#xmlIOParseDTD">xmlIOParseDTD</a><br />

View File

@ -52,6 +52,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlSaveFileTo">xmlSaveFileTo</a><br />
<a href="html/libxml-tree.html#xmlSaveFormatFileTo">xmlSaveFormatFileTo</a><br />
<a href="html/libxml-parserInternals.html#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderExpand">xmlTextReaderExpand</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetErrorHandler">xmlTextReaderSetErrorHandler</a><br />
@ -218,7 +219,6 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>checking</dt><dd><a href="html/libxml-xlink.html#xlinkIsLink">xlinkIsLink</a><br />
<a href="html/libxml-tree.html#xmlBufferWriteQuotedString">xmlBufferWriteQuotedString</a><br />
<a href="html/libxml-uri.html#xmlBuildURI">xmlBuildURI</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
<a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
</dd><dt>checkings</dt><dd><a href="html/libxml-valid.html#xmlValidateOneElement">xmlValidateOneElement</a><br />
</dd><dt>checks</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ATTRGROUP_MARKED">XML_SCHEMAS_ATTRGROUP_MARKED</a><br />
@ -330,6 +330,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
<a href="html/libxml-SAX2.html#xmlSAX2GetSystemId">xmlSAX2GetSystemId</a><br />
</dd><dt>combining</dt><dd><a href="html/libxml-parserInternals.html#IS_COMBINING_CH">IS_COMBINING_CH</a><br />
</dd><dt>come</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>coment</dt><dd><a href="html/libxml-xmlwriter.html#xmlTextWriterEndComment">xmlTextWriterEndComment</a><br />
</dd><dt>comes</dt><dd><a href="html/libxml-valid.html#xmlValidityErrorFunc">xmlValidityErrorFunc</a><br />
<a href="html/libxml-valid.html#xmlValidityWarningFunc">xmlValidityWarningFunc</a><br />
@ -504,7 +505,8 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>comprising</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathIntersection">xmlXPathIntersection</a><br />
</dd><dt>computation</dt><dd><a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
</dd><dt>compute</dt><dd><a href="html/libxml-xmlstring.html#xmlUTF8Strlen">xmlUTF8Strlen</a><br />
</dd><dt>computed</dt><dd><a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
</dd><dt>computed</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
<a href="html/libxml-entities.html#_xmlEntity">_xmlEntity</a><br />
<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNode">xmlSchemaValPredefTypeNode</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValPredefTypeNodeNoNorm">xmlSchemaValPredefTypeNodeNoNorm</a><br />

View File

@ -358,6 +358,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-dict.html#xmlDictCreateSub">xmlDictCreateSub</a><br />
<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
<a href="html/libxml-hash.html#xmlHashCreateDict">xmlHashCreateDict</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>dictionnary</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
<a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
<a href="html/libxml-dict.html#xmlDictCreate">xmlDictCreate</a><br />
@ -370,6 +371,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-dict.html#xmlDictReference">xmlDictReference</a><br />
<a href="html/libxml-dict.html#xmlDictSize">xmlDictSize</a><br />
<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>did</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_DEFAULT">XML_SCHEMAS_TYPE_BLOCK_DEFAULT</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />

View File

@ -231,11 +231,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-list.html#xmlListDataCompare">xmlListDataCompare</a><br />
</dd><dt>equivalent</dt><dd><a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
<a href="html/libxml-tree.html#xmlNodeListGetRawString">xmlNodeListGetRawString</a><br />
<a href="html/libxml-tree.html#xmlNodeListGetString">xmlNodeListGetString</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
@ -363,6 +359,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemas.html#xmlSchemaNewMemParserCtxt">xmlSchemaNewMemParserCtxt</a><br />
<a href="html/libxml-xmlschemas.html#xmlSchemaNewParserCtxt">xmlSchemaNewParserCtxt</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>explicitly</dt><dd><a href="html/libxml-SAX2.html#xmlSAXDefaultVersion">xmlSAXDefaultVersion</a><br />
</dd><dt>explored</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
</dd><dt>exposing</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
@ -384,7 +381,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xlink.html#xlinkExtendedLinkSetFunk">xlinkExtendedLinkSetFunk</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetMerge">xmlXPathNodeSetMerge</a><br />
<a href="html/libxml-xpointer.html#xmlXPtrLocationSetMerge">xmlXPtrLocationSetMerge</a><br />
</dd><dt>extension</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a><br />
</dd><dt>extension</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION">XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ELEM_FINAL_EXTENSION">XML_SCHEMAS_ELEM_FINAL_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_FINAL_DEFAULT_EXTENSION">XML_SCHEMAS_FINAL_DEFAULT_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BLOCK_EXTENSION">XML_SCHEMAS_TYPE_BLOCK_EXTENSION</a><br />

View File

@ -48,7 +48,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateFacet">xmlSchemaValidateFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateLengthFacet">xmlSchemaValidateLengthFacet</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaValidateListSimpleTypeFacet">xmlSchemaValidateListSimpleTypeFacet</a><br />
</dd><dt>facets</dt><dd><a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
</dd><dt>facets</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaCheckFacet">xmlSchemaCheckFacet</a><br />
</dd><dt>fail</dt><dd><a href="html/libxml-c14n.html#xmlC14NDocDumpMemory">xmlC14NDocDumpMemory</a><br />
<a href="html/libxml-c14n.html#xmlC14NDocSave">xmlC14NDocSave</a><br />
<a href="html/libxml-c14n.html#xmlC14NDocSaveTo">xmlC14NDocSaveTo</a><br />
@ -99,6 +100,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
<a href="html/libxml-nanohttp.html#xmlNanoHTTPSave">xmlNanoHTTPSave</a><br />
<a href="html/libxml-xmlautomata.html#xmlNewAutomata">xmlNewAutomata</a><br />
<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
<a href="html/libxml-relaxng.html#xmlRelaxNGGetParserErrors">xmlRelaxNGGetParserErrors</a><br />
<a href="html/libxml-tree.html#xmlSaveFile">xmlSaveFile</a><br />

View File

@ -211,7 +211,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpen">xmlNanoHTTPOpen</a><br />
<a href="html/libxml-nanohttp.html#xmlNanoHTTPOpenRedir">xmlNanoHTTPOpenRedir</a><br />
</dd><dt>indicates</dt><dd><a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>indicates</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
<a href="html/libxml-tree.html#xmlHasNsProp">xmlHasNsProp</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPRead">xmlNanoFTPRead</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPScanProxy">xmlNanoFTPScanProxy</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPUpdateURL">xmlNanoFTPUpdateURL</a><br />
@ -246,10 +248,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPList">xmlNanoFTPList</a><br />
<a href="html/libxml-parser.html#xmlParserAddNodeInfo">xmlParserAddNodeInfo</a><br />
<a href="html/libxml-parser.html#xmlParserFindNodeInfo">xmlParserFindNodeInfo</a><br />
@ -316,9 +315,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlautomata.html#xmlAutomataGetInitState">xmlAutomataGetInitState</a><br />
<a href="html/libxml-tree.html#xmlBufferCreateSize">xmlBufferCreateSize</a><br />
<a href="html/libxml-parser.html#xmlInitNodeInfoSeq">xmlInitNodeInfoSeq</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
<a href="html/libxml-debugXML.html#xmlShell">xmlShell</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetAdd">xmlXPathNodeSetAdd</a><br />

View File

@ -95,8 +95,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
</dd><dt>lang</dt><dd><a href="html/libxml-tree.html#xmlNodeGetLang">xmlNodeGetLang</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathLangFunction">xmlXPathLangFunction</a><br />
@ -176,6 +174,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNodeDump">xmlNodeDump</a><br />
<a href="html/libxml-tree.html#xmlNodeDumpOutput">xmlNodeDumpOutput</a><br />
<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpCompExpr">xmlXPathDebugDumpCompExpr</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathDebugDumpObject">xmlXPathDebugDumpObject</a><br />
</dd><dt>lexical</dt><dd><a href="html/libxml-parserInternals.html#xmlParseDefaultDecl">xmlParseDefaultDecl</a><br />
@ -329,10 +328,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-threads.html#xmlUnlockLibrary">xmlUnlockLibrary</a><br />
</dd><dt>logging</dt><dd><a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
</dd><dt>long</dt><dd><a href="html/libxml-parserInternals.html#IS_BASECHAR">IS_BASECHAR</a><br />
<a href="html/libxml-parserInternals.html#IS_COMBINING">IS_COMBINING</a><br />

View File

@ -61,7 +61,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
</dd><dt>mallocAtomicFunc</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
@ -140,6 +139,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
</dd><dt>means</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>mechanism</dt><dd><a href="html/libxml-xpath.html#_xmlXPathContext">_xmlXPathContext</a><br />
<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathRegisterFuncLookup">xmlXPathRegisterFuncLookup</a><br />
@ -258,6 +258,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlmodule.html#xmlModuleSymbol">xmlModuleSymbol</a><br />
<a href="html/libxml-xmlIO.html#xmlOutputMatchCallback">xmlOutputMatchCallback</a><br />
<a href="html/libxml-xmlerror.html#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a><br />
</dd><dt>modules</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_MODULE_EXTENSION">LIBXML_MODULE_EXTENSION</a><br />
</dd><dt>month</dt><dd><a href="html/libxml-nanoftp.html#ftpListCallback">ftpListCallback</a><br />
</dd><dt>more</dt><dd><a href="html/libxml-parserInternals.html#XML_MAX_NAMELEN">XML_MAX_NAMELEN</a><br />
<a href="html/libxml-parser.html#xmlLoadExternalEntity">xmlLoadExternalEntity</a><br />

View File

@ -81,6 +81,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlstring.html#xmlCheckUTF8">xmlCheckUTF8</a><br />
<a href="html/libxml-debugXML.html#xmlDebugDumpString">xmlDebugDumpString</a><br />
</dd><dt>need</dt><dd><a href="html/libxml-xmlversion.html#WITH_TRIO">WITH_TRIO</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_BOTH">XML_SUBSTITUTE_BOTH</a><br />
<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_NONE">XML_SUBSTITUTE_NONE</a><br />
<a href="html/libxml-parserInternals.html#XML_SUBSTITUTE_PEREF">XML_SUBSTITUTE_PEREF</a><br />

View File

@ -67,7 +67,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans">xmlAutomataNewOnceTrans</a><br />
<a href="html/libxml-xmlautomata.html#xmlAutomataNewOnceTrans2">xmlAutomataNewOnceTrans2</a><br />
</dd><dt>occurred</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
</dd><dt>occurrence</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasestr">xmlStrcasestr</a><br />
<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
<a href="html/libxml-xmlstring.html#xmlStrstr">xmlStrstr</a><br />
@ -147,6 +146,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-catalog.html#xmlConvertSGMLCatalog">xmlConvertSGMLCatalog</a><br />
</dd><dt>ononymous</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
</dd><dt>onto</dt><dd><a href="html/libxml-xmlIO.html#xmlParserInputBufferGrow">xmlParserInputBufferGrow</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>opaque</dt><dd><a href="html/libxml-schemasInternals.html#_xmlSchema">_xmlSchema</a><br />
<a href="html/libxml-uri.html#_xmlURI">_xmlURI</a><br />
</dd><dt>open</dt><dd><a href="html/libxml-HTMLparser.html#htmlCtxtReadFd">htmlCtxtReadFd</a><br />

View File

@ -124,7 +124,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
<a href="html/libxml-debugXML.html#xmlShellValidate">xmlShellValidate</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
</dd><dt>pattern</dt><dd><a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
</dd><dt>pattern</dt><dd><a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
</dd><dt>pcdata</dt><dd><a href="html/libxml-SAX.html#cdataBlock">cdataBlock</a><br />
@ -254,6 +255,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>preceding-sibling</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNextPrecedingSibling">xmlXPathNextPrecedingSibling</a><br />
</dd><dt>precisely</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathSubstringFunction">xmlXPathSubstringFunction</a><br />
</dd><dt>precompiled</dt><dd><a href="html/libxml-xpath.html#_xmlXPathParserContext">_xmlXPathParserContext</a><br />
<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
<a href="html/libxml-xmlregexp.html#xmlRegNewExecCtxt">xmlRegNewExecCtxt</a><br />
<a href="html/libxml-relaxng.html#xmlRelaxNGNewValidCtxt">xmlRelaxNGNewValidCtxt</a><br />
@ -505,6 +507,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
<a href="html/libxml-parser.html#xmlCtxtResetPush">xmlCtxtResetPush</a><br />
<a href="html/libxml-xmlIO.html#xmlParserInputBufferPush">xmlParserInputBufferPush</a><br />
<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathEvalExpr">xmlXPathEvalExpr</a><br />
</dd><dt>pushed</dt><dd><a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
<a href="html/libxml-xpath.html#xmlXPathFunction">xmlXPathFunction</a><br />

View File

@ -119,7 +119,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
@ -450,6 +449,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlSetNsProp">xmlSetNsProp</a><br />
<a href="html/libxml-tree.html#xmlSetProp">xmlSetProp</a><br />
<a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>resides</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderConstXmlLang">xmlTextReaderConstXmlLang</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderXmlLang">xmlTextReaderXmlLang</a><br />
</dd><dt>resize</dt><dd><a href="html/libxml-tree.html#xmlBufferResize">xmlBufferResize</a><br />
@ -561,6 +561,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-SAX2.html#xmlSAX2ExternalSubset">xmlSAX2ExternalSubset</a><br />
<a href="html/libxml-SAX2.html#xmlSAX2InternalSubset">xmlSAX2InternalSubset</a><br />
<a href="html/libxml-debugXML.html#xmlShellPwd">xmlShellPwd</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-valid.html#xmlValidateRoot">xmlValidateRoot</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathNewValueTree">xmlXPathNewValueTree</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathRoot">xmlXPathRoot</a><br />

View File

@ -469,8 +469,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlreader.html#xmlTextReaderStandalone">xmlTextReaderStandalone</a><br />
</dd><dt>specifying</dt><dd><a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
</dd><dt>speed</dt><dd><a href="html/libxml-xpath.html#xmlXPathOrderDocElems">xmlXPathOrderDocElems</a><br />
</dd><dt>speedup</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderConstString">xmlTextReaderConstString</a><br />
@ -608,27 +606,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
<a href="html/libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a><br />
</dd><dt>stream</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
<a href="html/libxml-xmlIO.html#xmlCheckHTTPInput">xmlCheckHTTPInput</a><br />
<a href="html/libxml-parser.html#xmlCreateIOParserCtxt">xmlCreateIOParserCtxt</a><br />
<a href="html/libxml-parserInternals.html#xmlFreeInputStream">xmlFreeInputStream</a><br />
<a href="html/libxml-parserInternals.html#xmlHandleEntity">xmlHandleEntity</a><br />
<a href="html/libxml-parserInternals.html#xmlNewEntityInputStream">xmlNewEntityInputStream</a><br />
<a href="html/libxml-parser.html#xmlNewIOInputStream">xmlNewIOInputStream</a><br />
<a href="html/libxml-parserInternals.html#xmlNewInputFromFile">xmlNewInputFromFile</a><br />
<a href="html/libxml-parserInternals.html#xmlNewInputStream">xmlNewInputStream</a><br />
<a href="html/libxml-parserInternals.html#xmlNewStringInputStream">xmlNewStringInputStream</a><br />
<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
<a href="html/libxml-uri.html#xmlPrintURI">xmlPrintURI</a><br />
<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
<a href="html/libxml-parserInternals.html#xmlSwitchInputEncoding">xmlSwitchInputEncoding</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderGetRemainder">xmlTextReaderGetRemainder</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderRead">xmlTextReaderRead</a><br />
</dd><dt>streaming</dt><dd><a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
</dd><dt>streams</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
</dd><dt>strict</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANYATTR_STRICT">XML_SCHEMAS_ANYATTR_STRICT</a><br />
@ -647,6 +627,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlregexp.html#xmlRegExecErrInfo">xmlRegExecErrInfo</a><br />
<a href="html/libxml-xmlregexp.html#xmlRegExecNextValues">xmlRegExecNextValues</a><br />
<a href="html/libxml-xmlregexp.html#xmlRegexpCompile">xmlRegexpCompile</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-xmlstring.html#xmlStrncatNew">xmlStrncatNew</a><br />
</dd><dt>stripping</dt><dd><a href="html/libxml-xpathInternals.html#xmlXPathNormalizeFunction">xmlXPathNormalizeFunction</a><br />
</dd><dt>strncasecmp</dt><dd><a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />

View File

@ -187,6 +187,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>xmlFreeDoc</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
</dd><dt>xmlFreeDocElementContent</dt><dd><a href="html/libxml-valid.html#xmlFreeElementContent">xmlFreeElementContent</a><br />
</dd><dt>xmlFreeMutex</dt><dd><a href="html/libxml-threads.html#xmlFreeMutex">xmlFreeMutex</a><br />
</dd><dt>xmlFreeStreamCtxt</dt><dd><a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
</dd><dt>xmlGetGlobalState</dt><dd><a href="html/libxml-threads.html#xmlGetGlobalState">xmlGetGlobalState</a><br />
</dd><dt>xmlGetNoNsProp</dt><dd><a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
</dd><dt>xmlGetNsProp</dt><dd><a href="html/libxml-tree.html#xmlGetProp">xmlGetProp</a><br />
@ -324,6 +325,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>xmlParserProperties</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderGetParserProp">xmlTextReaderGetParserProp</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
</dd><dt>xmlPattern</dt><dd><a href="html/libxml-xmlversion.html#LIBXML_PATTERN_ENABLED">LIBXML_PATTERN_ENABLED</a><br />
</dd><dt>xmlPatterncompile</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>xmlPopInput:</dt><dd><a href="html/libxml-parserInternals.html#xmlPopInput">xmlPopInput</a><br />
</dd><dt>xmlPushInput:</dt><dd><a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
</dd><dt>xmlRFreeMutex</dt><dd><a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />

View File

@ -205,6 +205,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlParseExternalID">xmlParseExternalID</a><br />
<a href="html/libxml-parserInternals.html#xmlParsePEReference">xmlParsePEReference</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderCurrentDoc">xmlTextReaderCurrentDoc</a><br />
</dd><dt>NRK</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
</dd><dt>NSDef</dt><dd><a href="html/libxml-parserInternals.html#xmlNamespaceParseNSDef">xmlNamespaceParseNSDef</a><br />

View File

@ -235,6 +235,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlNewNodeEatName">xmlNewNodeEatName</a><br />
<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
<a href="html/libxml-tree.html#xmlNewTextChild">xmlNewTextChild</a><br />
<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGSetSchema">xmlTextReaderRelaxNGSetSchema</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderRelaxNGValidate">xmlTextReaderRelaxNGValidate</a><br />
</dd><dt>Used</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_ANY_LAX">XML_SCHEMAS_ANY_LAX</a><br />

View File

@ -289,6 +289,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlParserHandlePEReference">xmlParserHandlePEReference</a><br />
<a href="html/libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a><br />
<a href="html/libxml-valid.html#xmlValidCtxtNormalizeAttributeValue">xmlValidCtxtNormalizeAttributeValue</a><br />
</dd><dt>act</dt><dd><a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</dd><dt>activate</dt><dd><a href="html/libxml-xmlreader.html#xmlTextReaderSetParserProp">xmlTextReaderSetParserProp</a><br />
</dd><dt>activated</dt><dd><a href="html/libxml-xmlmemory.html#DEBUG_MEMORY">DEBUG_MEMORY</a><br />
<a href="html/libxml-xmlautomata.html#xmlAutomataNewAllTrans">xmlAutomataNewAllTrans</a><br />
@ -434,8 +435,6 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlBuildQName">xmlBuildQName</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-threads.html#xmlNewMutex">xmlNewMutex</a><br />
<a href="html/libxml-threads.html#xmlNewRMutex">xmlNewRMutex</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
@ -444,10 +443,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlGetBufferAllocationScheme">xmlGetBufferAllocationScheme</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemStrdupLoc">xmlMemStrdupLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemoryStrdup">xmlMemoryStrdup</a><br />
<a href="html/libxml-uri.html#xmlNormalizeURIPath">xmlNormalizeURIPath</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
<a href="html/libxml-tree.html#xmlSetBufferAllocationScheme">xmlSetBufferAllocationScheme</a><br />
@ -525,6 +521,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlHasProp">xmlHasProp</a><br />
<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
<a href="html/libxml-nanoftp.html#xmlNanoFTPProxy">xmlNanoFTPProxy</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderPreserve">xmlTextReaderPreserve</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderPreservePattern">xmlTextReaderPreservePattern</a><br />
<a href="html/libxml-xpathInternals.html#xmlXPathStringEvalNumber">xmlXPathStringEvalNumber</a><br />
@ -648,8 +645,6 @@ A:link, A:visited, A:active { text-decoration: underline }
</dd><dt>area</dt><dd><a href="html/libxml-tree.html#xmlBufferCreateStatic">xmlBufferCreateStatic</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemMalloc">xmlMemMalloc</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemRealloc">xmlMemRealloc</a><br />
<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateMem">xmlParserInputBufferCreateMem</a><br />
<a href="html/libxml-xmlIO.html#xmlParserInputBufferCreateStatic">xmlParserInputBufferCreateStatic</a><br />
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />

View File

@ -481,6 +481,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetBuiltInType">xmlSchemaGetBuiltInType</a><br />
<a href="html/libxml-xmlschemastypes.html#xmlSchemaGetPredefinedType">xmlSchemaGetPredefinedType</a><br />
</p><h2>Type xmlSchemaValidCtxtPtr:</h2><p><a href="html/libxml-xmlschemas.html#xmlSchemaNewValidCtxt">xmlSchemaNewValidCtxt</a><br />
</p><h2>Type xmlStreamCtxtPtr:</h2><p><a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
</p><h2>Type xmlTextReaderPtr:</h2><p><a href="html/libxml-xmlreader.html#xmlNewTextReader">xmlNewTextReader</a><br />
<a href="html/libxml-xmlreader.html#xmlNewTextReaderFilename">xmlNewTextReaderFilename</a><br />
<a href="html/libxml-xmlreader.html#xmlReaderForDoc">xmlReaderForDoc</a><br />

View File

@ -858,10 +858,16 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-parserInternals.html#xmlSwitchToEncoding">xmlSwitchToEncoding</a><br />
</p><h2><a name="pattern" id="pattern">Module pattern</a>:</h2><p><a href="html/libxml-pattern.html#xmlFreePattern">xmlFreePattern</a><br />
<a href="html/libxml-pattern.html#xmlFreePatternList">xmlFreePatternList</a><br />
<a href="html/libxml-pattern.html#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlPattern">xmlPattern</a><br />
<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
<a href="html/libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a><br />
<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
<a href="html/libxml-pattern.html#xmlStreamCtxt">xmlStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a><br />
<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</p><h2><a name="relaxng" id="relaxng">Module relaxng</a>:</h2><p><a href="html/libxml-relaxng.html#XML_RELAXNGP_CRNG">XML_RELAXNGP_CRNG</a><br />
<a href="html/libxml-relaxng.html#XML_RELAXNGP_FREE_DOC">XML_RELAXNGP_FREE_DOC</a><br />
<a href="html/libxml-relaxng.html#XML_RELAXNGP_NONE">XML_RELAXNGP_NONE</a><br />
@ -1033,6 +1039,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a><br />
@ -1085,6 +1092,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_EXTENSION">XML_SCHEMA_TYPE_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_FACET">XML_SCHEMA_TYPE_FACET</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_GROUP">XML_SCHEMA_TYPE_GROUP</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEY">XML_SCHEMA_TYPE_IDC_KEY</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEYREF">XML_SCHEMA_TYPE_IDC_KEYREF</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_UNIQUE">XML_SCHEMA_TYPE_IDC_UNIQUE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_LIST">XML_SCHEMA_TYPE_LIST</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_NOTATION">XML_SCHEMA_TYPE_NOTATION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_RESTRICTION">XML_SCHEMA_TYPE_RESTRICTION</a><br />
@ -1875,6 +1885,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlerror.html#XML_FTP_ACCNT">XML_FTP_ACCNT</a><br />
<a href="html/libxml-xmlerror.html#XML_FTP_EPSV_ANSWER">XML_FTP_EPSV_ANSWER</a><br />
<a href="html/libxml-xmlerror.html#XML_FTP_PASV_ANSWER">XML_FTP_PASV_ANSWER</a><br />
<a href="html/libxml-xmlerror.html#XML_FTP_URL_SYNTAX">XML_FTP_URL_SYNTAX</a><br />
<a href="html/libxml-xmlerror.html#XML_HTML_STRUCURE_ERROR">XML_HTML_STRUCURE_ERROR</a><br />
<a href="html/libxml-xmlerror.html#XML_HTML_UNKNOWN_TAG">XML_HTML_UNKNOWN_TAG</a><br />
<a href="html/libxml-xmlerror.html#XML_HTTP_UNKNOWN_HOST">XML_HTTP_UNKNOWN_HOST</a><br />
@ -2293,6 +2304,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ENUMERATION_VALID">XML_SCHEMAV_CVC_ENUMERATION_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_FACET_VALID">XML_SCHEMAV_CVC_FACET_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID">XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_IDC">XML_SCHEMAV_CVC_IDC</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_LENGTH_VALID">XML_SCHEMAV_CVC_LENGTH_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID</a><br />

View File

@ -357,6 +357,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlstring.html#xmlStrchr">xmlStrchr</a><br />
<a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />
<a href="html/libxml-tree.html#xmlStringGetNodeList">xmlStringGetNodeList</a><br />
@ -1698,6 +1699,7 @@ A:link, A:visited, A:active { text-decoration: underline }
</p><h2>Type xmlParserSeverities:</h2><p><a href="html/libxml-xmlreader.html#xmlTextReaderErrorFunc">xmlTextReaderErrorFunc</a><br />
</p><h2>Type xmlPatternPtr:</h2><p><a href="html/libxml-pattern.html#xmlFreePattern">xmlFreePattern</a><br />
<a href="html/libxml-pattern.html#xmlFreePatternList">xmlFreePatternList</a><br />
<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
</p><h2>Type xmlRMutexPtr:</h2><p><a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
<a href="html/libxml-threads.html#xmlRMutexLock">xmlRMutexLock</a><br />
@ -1843,6 +1845,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlmemory.html#xmlMemSetup">xmlMemSetup</a><br />
</p><h2>Type xmlStrdupFunc *:</h2><p><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
</p><h2>Type xmlStreamCtxtPtr:</h2><p><a href="html/libxml-pattern.html#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
</p><h2>Type xmlStructuredErrorFunc:</h2><p><a href="html/libxml-xmlerror.html#xmlSetStructuredErrorFunc">xmlSetStructuredErrorFunc</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderSetStructuredErrorHandler">xmlTextReaderSetStructuredErrorHandler</a><br />
<a href="html/libxml-globals.html#xmlThrDefSetStructuredErrorFunc">xmlThrDefSetStructuredErrorFunc</a><br />

View File

@ -427,6 +427,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlerror.html#XML_FTP_ACCNT">XML_FTP_ACCNT</a><br />
<a href="html/libxml-xmlerror.html#XML_FTP_EPSV_ANSWER">XML_FTP_EPSV_ANSWER</a><br />
<a href="html/libxml-xmlerror.html#XML_FTP_PASV_ANSWER">XML_FTP_PASV_ANSWER</a><br />
<a href="html/libxml-xmlerror.html#XML_FTP_URL_SYNTAX">XML_FTP_URL_SYNTAX</a><br />
<a href="html/libxml-tree.html#XML_GET_CONTENT">XML_GET_CONTENT</a><br />
<a href="html/libxml-tree.html#XML_GET_LINE">XML_GET_LINE</a><br />
<a href="html/libxml-tree.html#XML_HTML_DOCUMENT_NODE">XML_HTML_DOCUMENT_NODE</a><br />
@ -1050,6 +1051,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE">XML_SCHEMAS_TYPE_BUILTIN_PRIMITIVE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION">XML_SCHEMAS_TYPE_DERIVATION_METHOD_RESTRICTION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FACETSNEEDVALUE">XML_SCHEMAS_TYPE_FACETSNEEDVALUE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_DEFAULT">XML_SCHEMAS_TYPE_FINAL_DEFAULT</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_EXTENSION">XML_SCHEMAS_TYPE_FINAL_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMAS_TYPE_FINAL_LIST">XML_SCHEMAS_TYPE_FINAL_LIST</a><br />
@ -1110,6 +1112,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_ENUMERATION_VALID">XML_SCHEMAV_CVC_ENUMERATION_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_FACET_VALID">XML_SCHEMAV_CVC_FACET_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID">XML_SCHEMAV_CVC_FRACTIONDIGITS_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_IDC">XML_SCHEMAV_CVC_IDC</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_LENGTH_VALID">XML_SCHEMAV_CVC_LENGTH_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXEXCLUSIVE_VALID</a><br />
<a href="html/libxml-xmlerror.html#XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID">XML_SCHEMAV_CVC_MAXINCLUSIVE_VALID</a><br />
@ -1178,6 +1181,9 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_EXTENSION">XML_SCHEMA_TYPE_EXTENSION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_FACET">XML_SCHEMA_TYPE_FACET</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_GROUP">XML_SCHEMA_TYPE_GROUP</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEY">XML_SCHEMA_TYPE_IDC_KEY</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_KEYREF">XML_SCHEMA_TYPE_IDC_KEYREF</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_IDC_UNIQUE">XML_SCHEMA_TYPE_IDC_UNIQUE</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_LIST">XML_SCHEMA_TYPE_LIST</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_NOTATION">XML_SCHEMA_TYPE_NOTATION</a><br />
<a href="html/libxml-schemasInternals.html#XML_SCHEMA_TYPE_RESTRICTION">XML_SCHEMA_TYPE_RESTRICTION</a><br />
@ -1844,6 +1850,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-tree.html#xmlFreePropList">xmlFreePropList</a><br />
<a href="html/libxml-threads.html#xmlFreeRMutex">xmlFreeRMutex</a><br />
<a href="html/libxml-valid.html#xmlFreeRefTable">xmlFreeRefTable</a><br />
<a href="html/libxml-pattern.html#xmlFreeStreamCtxt">xmlFreeStreamCtxt</a><br />
<a href="html/libxml-xmlreader.html#xmlFreeTextReader">xmlFreeTextReader</a><br />
<a href="html/libxml-xmlwriter.html#xmlFreeTextWriter">xmlFreeTextWriter</a><br />
<a href="html/libxml-uri.html#xmlFreeURI">xmlFreeURI</a><br />
@ -2317,6 +2324,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-globals.html#xmlParserVersion">xmlParserVersion</a><br />
<a href="html/libxml-xmlerror.html#xmlParserWarning">xmlParserWarning</a><br />
<a href="html/libxml-pattern.html#xmlPattern">xmlPattern</a><br />
<a href="html/libxml-pattern.html#xmlPatternGetStreamCtxt">xmlPatternGetStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlPatternMatch">xmlPatternMatch</a><br />
<a href="html/libxml-pattern.html#xmlPatternPtr">xmlPatternPtr</a><br />
<a href="html/libxml-pattern.html#xmlPatterncompile">xmlPatterncompile</a><br />
@ -2625,6 +2633,10 @@ A:link, A:visited, A:active { text-decoration: underline }
<a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
<a href="html/libxml-xmlstring.html#xmlStrdup">xmlStrdup</a><br />
<a href="html/libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a><br />
<a href="html/libxml-pattern.html#xmlStreamCtxt">xmlStreamCtxt</a><br />
<a href="html/libxml-pattern.html#xmlStreamCtxtPtr">xmlStreamCtxtPtr</a><br />
<a href="html/libxml-pattern.html#xmlStreamPop">xmlStreamPop</a><br />
<a href="html/libxml-pattern.html#xmlStreamPush">xmlStreamPush</a><br />
<a href="html/libxml-parserInternals.html#xmlStringComment">xmlStringComment</a><br />
<a href="html/libxml-parserInternals.html#xmlStringCurrentChar">xmlStringCurrentChar</a><br />
<a href="html/libxml-parserInternals.html#xmlStringDecodeEntities">xmlStringDecodeEntities</a><br />

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -62,7 +62,7 @@ void <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> (void * userD
<a name="XML_FROM_OUTPUT" id="XML_FROM_OUTPUT">XML_FROM_OUTPUT</a> = 7 : The serialization code
<a name="XML_FROM_IO" id="XML_FROM_IO">XML_FROM_IO</a> = 8 : The Input/Output stack
<a name="XML_FROM_FTP" id="XML_FROM_FTP">XML_FROM_FTP</a> = 9 : The FTP module
<a name="XML_FROM_HTTP" id="XML_FROM_HTTP">XML_FROM_HTTP</a> = 10 : The FTP module
<a name="XML_FROM_HTTP" id="XML_FROM_HTTP">XML_FROM_HTTP</a> = 10 : The HTTP module
<a name="XML_FROM_XINCLUDE" id="XML_FROM_XINCLUDE">XML_FROM_XINCLUDE</a> = 11 : The XInclude processing
<a name="XML_FROM_XPATH" id="XML_FROM_XPATH">XML_FROM_XPATH</a> = 12 : The XPath module
<a name="XML_FROM_XPOINTER" id="XML_FROM_XPOINTER">XML_FROM_XPOINTER</a> = 13 : The XPointer module
@ -647,6 +647,7 @@ void <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> (void * userD
<a name="XML_SCHEMAV_CVC_AU" id="XML_SCHEMAV_CVC_AU">XML_SCHEMAV_CVC_AU</a> = 1874 : 1874
<a name="XML_SCHEMAV_CVC_TYPE_1" id="XML_SCHEMAV_CVC_TYPE_1">XML_SCHEMAV_CVC_TYPE_1</a> = 1875 : 1875
<a name="XML_SCHEMAV_CVC_TYPE_2" id="XML_SCHEMAV_CVC_TYPE_2">XML_SCHEMAV_CVC_TYPE_2</a> = 1876 : 1876
<a name="XML_SCHEMAV_CVC_IDC" id="XML_SCHEMAV_CVC_IDC">XML_SCHEMAV_CVC_IDC</a> = 1877 : 1877
<a name="XML_XPTR_UNKNOWN_SCHEME" id="XML_XPTR_UNKNOWN_SCHEME">XML_XPTR_UNKNOWN_SCHEME</a> = 1900
<a name="XML_XPTR_CHILDSEQ_START" id="XML_XPTR_CHILDSEQ_START">XML_XPTR_CHILDSEQ_START</a> = 1901 : 1901
<a name="XML_XPTR_EVAL_FAILED" id="XML_XPTR_EVAL_FAILED">XML_XPTR_EVAL_FAILED</a> = 1902 : 1902
@ -658,6 +659,7 @@ void <a href="#xmlStructuredErrorFunc">xmlStructuredErrorFunc</a> (void * userD
<a name="XML_FTP_PASV_ANSWER" id="XML_FTP_PASV_ANSWER">XML_FTP_PASV_ANSWER</a> = 2000
<a name="XML_FTP_EPSV_ANSWER" id="XML_FTP_EPSV_ANSWER">XML_FTP_EPSV_ANSWER</a> = 2001 : 2001
<a name="XML_FTP_ACCNT" id="XML_FTP_ACCNT">XML_FTP_ACCNT</a> = 2002 : 2002
<a name="XML_FTP_URL_SYNTAX" id="XML_FTP_URL_SYNTAX">XML_FTP_URL_SYNTAX</a> = 2003 : 2003
<a name="XML_HTTP_URL_SYNTAX" id="XML_HTTP_URL_SYNTAX">XML_HTTP_URL_SYNTAX</a> = 2020
<a name="XML_HTTP_USE_IP" id="XML_HTTP_USE_IP">XML_HTTP_USE_IP</a> = 2021 : 2021
<a name="XML_HTTP_UNKNOWN_HOST" id="XML_HTTP_UNKNOWN_HOST">XML_HTTP_UNKNOWN_HOST</a> = 2022 : 2022

View File

@ -74,14 +74,14 @@ void * xmlMallocFunc (size_t size)
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int representing the number of blocks</td></tr></tbody></table></div><h3><a name="xmlMemDisplay" id="xmlMemDisplay"></a>Function: xmlMemDisplay</h3><pre class="programlisting">void xmlMemDisplay (FILE * fp)<br />
</pre><p>show in-extenso the memory blocks allocated</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fp</tt></i>:</span></td><td>a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist</td></tr></tbody></table></div><h3><a name="xmlMemFree" id="xmlMemFree"></a>Function: xmlMemFree</h3><pre class="programlisting">void xmlMemFree (void * ptr)<br />
</pre><p>a free() equivalent, with error checking.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td>the memory block pointer</td></tr></tbody></table></div><h3><a name="xmlMemGet" id="xmlMemGet"></a>Function: xmlMemGet</h3><pre class="programlisting">int xmlMemGet (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc)<br />
</pre><p></p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlMemGet" id="xmlMemGet"></a>Function: xmlMemGet</h3><pre class="programlisting">int xmlMemGet (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc)<br />
</pre><p>Provides the memory access functions set currently in use</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>place to save the free() function in use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>place to save the malloc() function in use</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>place to save the realloc() function in use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>place to save the strdup() function in use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlMemMalloc" id="xmlMemMalloc"></a>Function: xmlMemMalloc</h3><pre class="programlisting">void * xmlMemMalloc (size_t size)<br />
</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMemRealloc" id="xmlMemRealloc"></a>Function: xmlMemRealloc</h3><pre class="programlisting">void * xmlMemRealloc (void * ptr, <br /> size_t size)<br />
</pre><p>a realloc() equivalent, with logging of the allocation info.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td>the initial memory block pointer</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMemSetup" id="xmlMemSetup"></a>Function: xmlMemSetup</h3><pre class="programlisting">int xmlMemSetup (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc)<br />
</pre><p></p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlMemRealloc" id="xmlMemRealloc"></a>Function: xmlMemRealloc</h3><pre class="programlisting">void * xmlMemRealloc (void * ptr, <br /> size_t size)<br />
</pre><p></p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ptr</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlMemSetup" id="xmlMemSetup"></a>Function: xmlMemSetup</h3><pre class="programlisting">int xmlMemSetup (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> strdupFunc)<br />
</pre><p>Override the default memory access functions with a new set This has to be called before any other libxml routines ! Should this be blocked if there was already some allocations done ?</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>the free() function to use</td></tr><tr><td><span class="term"><i><tt>mallocFunc</tt></i>:</span></td><td>the malloc() function to use</td></tr><tr><td><span class="term"><i><tt>reallocFunc</tt></i>:</span></td><td>the realloc() function to use</td></tr><tr><td><span class="term"><i><tt>strdupFunc</tt></i>:</span></td><td>the strdup() function to use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success</td></tr></tbody></table></div><h3><a name="xmlMemShow" id="xmlMemShow"></a>Function: xmlMemShow</h3><pre class="programlisting">void xmlMemShow (FILE * fp, <br /> int nr)<br />
</pre><p>show a show display of the memory allocated, and dump the @nr last allocated areas which were not freed</p>
@ -92,8 +92,8 @@ void * xmlMallocFunc (size_t size)
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int representing the amount of memory allocated.</td></tr></tbody></table></div><h3><a name="xmlMemoryDump" id="xmlMemoryDump"></a>Function: xmlMemoryDump</h3><pre class="programlisting">void xmlMemoryDump (void)<br />
</pre><p>Dump in-extenso the memory blocks allocated to the file .memorylist</p>
<h3><a name="xmlMemoryStrdup" id="xmlMemoryStrdup"></a>Function: xmlMemoryStrdup</h3><pre class="programlisting">char * xmlMemoryStrdup (const char * str)<br />
</pre><p>a strdup() equivalent, with logging of the allocation info.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td>the initial string pointer</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new string or NULL if allocation error occurred.</td></tr></tbody></table></div><h3><a name="xmlReallocFunc" id="xmlReallocFunc"></a>Function type: xmlReallocFunc</h3><pre class="programlisting">Function type: xmlReallocFunc
</pre><p></p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>str</tt></i>:</span></td><td></td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td></td></tr></tbody></table></div><h3><a name="xmlReallocFunc" id="xmlReallocFunc"></a>Function type: xmlReallocFunc</h3><pre class="programlisting">Function type: xmlReallocFunc
void * xmlReallocFunc (void * mem, <br /> size_t size)
</pre><p>Signature for a realloc() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>mem</tt></i>:</span></td><td>an already allocated block of memory</td></tr><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the new size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly reallocated block or NULL in case of error.</td></tr></tbody></table></div><br />
<h3><a name="xmlReallocLoc" id="xmlReallocLoc"></a>Function: xmlReallocLoc</h3><pre class="programlisting">void * xmlReallocLoc (void * ptr, <br /> size_t size, <br /> const char * file, <br /> int line)<br />

View File

@ -65,6 +65,7 @@ void <a href="#xmlSchemaValidityWarningFunc">xmlSchemaValidityWarningFunc</a> (v
void * includes : the includes, this is opaque for now
int preserve : whether to free the document
int counter : used to give ononymous components uniqu
<a href="libxml-hash.html#xmlHashTablePtr">xmlHashTablePtr</a> idcDef
}</pre><h3><a name="xmlSchemaParserCtxt" id="xmlSchemaParserCtxt">Structure xmlSchemaParserCtxt</a></h3><pre class="programlisting">Structure xmlSchemaParserCtxt<br />struct _xmlSchemaParserCtxt {
The content of this structure is not made public by the API.
}</pre><h3><a name="xmlSchemaValidCtxt" id="xmlSchemaValidCtxt">Structure xmlSchemaValidCtxt</a></h3><pre class="programlisting">Structure xmlSchemaValidCtxt<br />struct _xmlSchemaValidCtxt {

View File

@ -28,7 +28,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<h3><a name="LIBXML_ISO8859X_ENABLED" id="LIBXML_ISO8859X_ENABLED"></a>Macro: LIBXML_ISO8859X_ENABLED</h3><pre>#define LIBXML_ISO8859X_ENABLED</pre><p>Whether ISO-8859-* support is made available in case iconv is not</p>
<h3><a name="LIBXML_LEGACY_ENABLED" id="LIBXML_LEGACY_ENABLED"></a>Macro: LIBXML_LEGACY_ENABLED</h3><pre>#define LIBXML_LEGACY_ENABLED</pre><p>Whether the deprecated APIs are compiled in for compatibility</p>
<h3><a name="LIBXML_MODULES_ENABLED" id="LIBXML_MODULES_ENABLED"></a>Macro: LIBXML_MODULES_ENABLED</h3><pre>#define LIBXML_MODULES_ENABLED</pre><p>Whether the module interfaces are compiled in</p>
<h3><a name="LIBXML_MODULE_EXTENSION" id="LIBXML_MODULE_EXTENSION"></a>Macro: LIBXML_MODULE_EXTENSION</h3><pre>#define LIBXML_MODULE_EXTENSION</pre><p></p>
<h3><a name="LIBXML_MODULE_EXTENSION" id="LIBXML_MODULE_EXTENSION"></a>Macro: LIBXML_MODULE_EXTENSION</h3><pre>#define LIBXML_MODULE_EXTENSION</pre><p>The file extension for the modules</p>
<h3><a name="LIBXML_OUTPUT_ENABLED" id="LIBXML_OUTPUT_ENABLED"></a>Macro: LIBXML_OUTPUT_ENABLED</h3><pre>#define LIBXML_OUTPUT_ENABLED</pre><p>Whether the serialization/saving support is configured in</p>
<h3><a name="LIBXML_PATTERN_ENABLED" id="LIBXML_PATTERN_ENABLED"></a>Macro: LIBXML_PATTERN_ENABLED</h3><pre>#define LIBXML_PATTERN_ENABLED</pre><p>Whether the <a href="libxml-pattern.html#xmlPattern">xmlPattern</a> node selection interface is configured in</p>
<h3><a name="LIBXML_PUSH_ENABLED" id="LIBXML_PUSH_ENABLED"></a>Macro: LIBXML_PUSH_ENABLED</h3><pre>#define LIBXML_PUSH_ENABLED</pre><p>Whether the push parsing interfaces are configured in</p>

View File

@ -2065,6 +2065,7 @@
<exports symbol='XML_DTD_LOAD_ERROR' type='enum'/>
<exports symbol='XML_DTD_ENTITY_TYPE' type='enum'/>
<exports symbol='XML_SCHEMAP_SRC_SIMPLE_TYPE_4' type='enum'/>
<exports symbol='XML_FTP_URL_SYNTAX' type='enum'/>
<exports symbol='XML_ERR_NONE' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD' type='enum'/>
<exports symbol='XML_XPATH_NUMBER_ERROR' type='enum'/>
@ -3690,6 +3691,7 @@
<info>Whether the module interfaces are compiled in</info>
</macro>
<macro name='LIBXML_MODULE_EXTENSION' file='xmlversion'>
<info>The file extension for the modules</info>
</macro>
<macro name='LIBXML_OUTPUT_ENABLED' file='xmlversion'>
<info>Whether the serialization/saving support is configured in</info>
@ -4552,7 +4554,7 @@
<enum name='XML_FROM_DTD' file='xmlerror' value='4' type='xmlErrorDomain' info='The XML DTD validation with parser contex'/>
<enum name='XML_FROM_FTP' file='xmlerror' value='9' type='xmlErrorDomain' info='The FTP module'/>
<enum name='XML_FROM_HTML' file='xmlerror' value='5' type='xmlErrorDomain' info='The HTML parser'/>
<enum name='XML_FROM_HTTP' file='xmlerror' value='10' type='xmlErrorDomain' info='The FTP module'/>
<enum name='XML_FROM_HTTP' file='xmlerror' value='10' type='xmlErrorDomain' info='The HTTP module'/>
<enum name='XML_FROM_IO' file='xmlerror' value='8' type='xmlErrorDomain' info='The Input/Output stack'/>
<enum name='XML_FROM_MEMORY' file='xmlerror' value='6' type='xmlErrorDomain' info='The memory allocator'/>
<enum name='XML_FROM_MODULE' file='xmlerror' value='26' type='xmlErrorDomain' info=' The dynamically loaded module modul'/>
@ -4575,6 +4577,7 @@
<enum name='XML_FTP_ACCNT' file='xmlerror' value='2002' type='xmlParserErrors' info='2002'/>
<enum name='XML_FTP_EPSV_ANSWER' file='xmlerror' value='2001' type='xmlParserErrors' info='2001'/>
<enum name='XML_FTP_PASV_ANSWER' file='xmlerror' value='2000' type='xmlParserErrors'/>
<enum name='XML_FTP_URL_SYNTAX' file='xmlerror' value='2003' type='xmlParserErrors' info='2003'/>
<enum name='XML_HTML_DOCUMENT_NODE' file='tree' value='13' type='xmlElementType'/>
<enum name='XML_HTML_STRUCURE_ERROR' file='xmlerror' value='800' type='xmlParserErrors'/>
<enum name='XML_HTML_UNKNOWN_TAG' file='xmlerror' value='801' type='xmlParserErrors' info='801'/>
@ -10069,9 +10072,9 @@ actually an xmlCharEncoding'/>
<arg name='fp' type='FILE *' info='a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist'/>
</function>
<function name='xmlMemFree' file='xmlmemory'>
<info>a free() equivalent, with error checking.</info>
<info></info>
<return type='void'/>
<arg name='ptr' type='void *' info='the memory block pointer'/>
<arg name='ptr' type='void *' info=''/>
</function>
<function name='xmlMemGet' file='xmlmemory'>
<info>Provides the memory access functions set currently in use</info>
@ -10082,15 +10085,15 @@ actually an xmlCharEncoding'/>
<arg name='strdupFunc' type='xmlStrdupFunc *' info='place to save the strdup() function in use'/>
</function>
<function name='xmlMemMalloc' file='xmlmemory'>
<info>a malloc() equivalent, with logging of the allocation info.</info>
<return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
<arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
<info></info>
<return type='void *' info=''/>
<arg name='size' type='size_t' info=''/>
</function>
<function name='xmlMemRealloc' file='xmlmemory'>
<info>a realloc() equivalent, with logging of the allocation info.</info>
<return type='void *' info='a pointer to the allocated area or NULL in case of lack of memory.'/>
<arg name='ptr' type='void *' info='the initial memory block pointer'/>
<arg name='size' type='size_t' info='an int specifying the size in byte to allocate.'/>
<info></info>
<return type='void *' info=''/>
<arg name='ptr' type='void *' info=''/>
<arg name='size' type='size_t' info=''/>
</function>
<function name='xmlMemSetup' file='xmlmemory'>
<info>Override the default memory access functions with a new set This has to be called before any other libxml routines ! Should this be blocked if there was already some allocations done ?</info>
@ -10122,9 +10125,9 @@ actually an xmlCharEncoding'/>
<return type='void'/>
</function>
<function name='xmlMemoryStrdup' file='xmlmemory'>
<info>a strdup() equivalent, with logging of the allocation info.</info>
<return type='char *' info='a pointer to the new string or NULL if allocation error occurred.'/>
<arg name='str' type='const char *' info='the initial string pointer'/>
<info></info>
<return type='char *' info=''/>
<arg name='str' type='const char *' info=''/>
</function>
<function name='xmlModuleClose' file='xmlmodule'>
<cond>defined(LIBXML_MODULES_ENABLED)</cond>

View File

@ -421,6 +421,7 @@
<reference name='XML_FTP_ACCNT' href='html/libxml-xmlerror.html#XML_FTP_ACCNT'/>
<reference name='XML_FTP_EPSV_ANSWER' href='html/libxml-xmlerror.html#XML_FTP_EPSV_ANSWER'/>
<reference name='XML_FTP_PASV_ANSWER' href='html/libxml-xmlerror.html#XML_FTP_PASV_ANSWER'/>
<reference name='XML_FTP_URL_SYNTAX' href='html/libxml-xmlerror.html#XML_FTP_URL_SYNTAX'/>
<reference name='XML_GET_CONTENT' href='html/libxml-tree.html#XML_GET_CONTENT'/>
<reference name='XML_GET_LINE' href='html/libxml-tree.html#XML_GET_LINE'/>
<reference name='XML_HTML_DOCUMENT_NODE' href='html/libxml-tree.html#XML_HTML_DOCUMENT_NODE'/>
@ -3716,6 +3717,7 @@
<ref name='XML_FTP_ACCNT'/>
<ref name='XML_FTP_EPSV_ANSWER'/>
<ref name='XML_FTP_PASV_ANSWER'/>
<ref name='XML_FTP_URL_SYNTAX'/>
<ref name='XML_GET_CONTENT'/>
<ref name='XML_GET_LINE'/>
<ref name='XML_HTML_DOCUMENT_NODE'/>
@ -11781,6 +11783,7 @@
<ref name='XML_FTP_ACCNT'/>
<ref name='XML_FTP_EPSV_ANSWER'/>
<ref name='XML_FTP_PASV_ANSWER'/>
<ref name='XML_FTP_URL_SYNTAX'/>
<ref name='XML_HTML_STRUCURE_ERROR'/>
<ref name='XML_HTML_UNKNOWN_TAG'/>
<ref name='XML_HTTP_UNKNOWN_HOST'/>
@ -17663,8 +17666,6 @@
<ref name='xmlBuildQName'/>
<ref name='xmlMallocAtomicLoc'/>
<ref name='xmlMallocLoc'/>
<ref name='xmlMemMalloc'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlNewMutex'/>
<ref name='xmlNewRMutex'/>
<ref name='xmlReallocLoc'/>
@ -17675,10 +17676,7 @@
<ref name='xmlGetBufferAllocationScheme'/>
<ref name='xmlMallocAtomicLoc'/>
<ref name='xmlMallocLoc'/>
<ref name='xmlMemMalloc'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlMemStrdupLoc'/>
<ref name='xmlMemoryStrdup'/>
<ref name='xmlNormalizeURIPath'/>
<ref name='xmlReallocLoc'/>
<ref name='xmlSetBufferAllocationScheme'/>
@ -17974,8 +17972,6 @@
<ref name='xmlBufferCreateStatic'/>
<ref name='xmlMallocAtomicLoc'/>
<ref name='xmlMallocLoc'/>
<ref name='xmlMemMalloc'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlParserInputBufferCreateMem'/>
<ref name='xmlParserInputBufferCreateStatic'/>
<ref name='xmlReallocLoc'/>
@ -18679,7 +18675,6 @@
<ref name='xlinkIsLink'/>
<ref name='xmlBufferWriteQuotedString'/>
<ref name='xmlBuildURI'/>
<ref name='xmlMemFree'/>
<ref name='xmlUTF8Strlen'/>
</word>
<word name='checkings'>
@ -20641,11 +20636,7 @@
<word name='equivalent'>
<ref name='xmlMallocAtomicLoc'/>
<ref name='xmlMallocLoc'/>
<ref name='xmlMemFree'/>
<ref name='xmlMemMalloc'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlMemStrdupLoc'/>
<ref name='xmlMemoryStrdup'/>
<ref name='xmlNodeListGetRawString'/>
<ref name='xmlNodeListGetString'/>
<ref name='xmlReallocLoc'/>
@ -20887,6 +20878,7 @@
<ref name='xmlXPtrLocationSetMerge'/>
</word>
<word name='extension'>
<ref name='LIBXML_MODULE_EXTENSION'/>
<ref name='XML_SCHEMAS_BLOCK_DEFAULT_EXTENSION'/>
<ref name='XML_SCHEMAS_ELEM_FINAL_EXTENSION'/>
<ref name='XML_SCHEMAS_FINAL_DEFAULT_EXTENSION'/>
@ -22172,10 +22164,7 @@
<ref name='xmlInitNodeInfoSeq'/>
<ref name='xmlMallocAtomicLoc'/>
<ref name='xmlMallocLoc'/>
<ref name='xmlMemMalloc'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlMemStrdupLoc'/>
<ref name='xmlMemoryStrdup'/>
<ref name='xmlNanoFTPList'/>
<ref name='xmlParserAddNodeInfo'/>
<ref name='xmlParserFindNodeInfo'/>
@ -22258,9 +22247,7 @@
<ref name='xmlAutomataGetInitState'/>
<ref name='xmlBufferCreateSize'/>
<ref name='xmlInitNodeInfoSeq'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlMemStrdupLoc'/>
<ref name='xmlMemoryStrdup'/>
<ref name='xmlReallocLoc'/>
<ref name='xmlShell'/>
<ref name='xmlXPathNodeSetAdd'/>
@ -22634,8 +22621,6 @@
<ref name='xmlCharEncodingOutputFunc'/>
<ref name='xmlMallocAtomicLoc'/>
<ref name='xmlMallocLoc'/>
<ref name='xmlMemMalloc'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlReallocLoc'/>
</word>
<word name='lang'>
@ -22973,10 +22958,7 @@
<word name='logging'>
<ref name='xmlMallocAtomicLoc'/>
<ref name='xmlMallocLoc'/>
<ref name='xmlMemMalloc'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlMemStrdupLoc'/>
<ref name='xmlMemoryStrdup'/>
<ref name='xmlReallocLoc'/>
</word>
<word name='long'>
@ -23077,7 +23059,6 @@
<ref name='xmlMallocFunc'/>
<ref name='xmlMallocLoc'/>
<ref name='xmlMemGet'/>
<ref name='xmlMemMalloc'/>
<ref name='xmlMemSetup'/>
</word>
<word name='mallocAtomicFunc'>
@ -23384,6 +23365,9 @@
<ref name='xmlOutputMatchCallback'/>
<ref name='xmlStructuredErrorFunc'/>
</word>
<word name='modules'>
<ref name='LIBXML_MODULE_EXTENSION'/>
</word>
<word name='month'>
<ref name='ftpListCallback'/>
</word>
@ -23894,7 +23878,6 @@
</word>
<word name='occurred'>
<ref name='xmlMemStrdupLoc'/>
<ref name='xmlMemoryStrdup'/>
</word>
<word name='occurrence'>
<ref name='xmlStrcasestr'/>
@ -25141,7 +25124,6 @@
<ref name='xmlGcMemGet'/>
<ref name='xmlGcMemSetup'/>
<ref name='xmlMemGet'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlMemSetup'/>
<ref name='xmlReallocFunc'/>
<ref name='xmlReallocLoc'/>
@ -26467,8 +26449,6 @@
<word name='specifying'>
<ref name='xmlMallocAtomicLoc'/>
<ref name='xmlMallocLoc'/>
<ref name='xmlMemMalloc'/>
<ref name='xmlMemRealloc'/>
<ref name='xmlReallocLoc'/>
</word>
<word name='speed'>
@ -26684,7 +26664,6 @@
<ref name='xmlMemGet'/>
<ref name='xmlMemSetup'/>
<ref name='xmlMemStrdupLoc'/>
<ref name='xmlMemoryStrdup'/>
<ref name='xmlStrdup'/>
<ref name='xmlStrdupFunc'/>
</word>

View File

@ -1563,6 +1563,12 @@ extern __typeof (xmlFreeRefTable) xmlFreeRefTable__internal_alias __attribute((v
extern __typeof (xmlFreeRefTable) xmlFreeRefTable __attribute((alias("xmlFreeRefTable__internal_alias")));
#define xmlFreeRefTable xmlFreeRefTable__internal_alias
#if defined(LIBXML_PATTERN_ENABLED)
extern __typeof (xmlFreeStreamCtxt) xmlFreeStreamCtxt__internal_alias __attribute((visibility("hidden")));
extern __typeof (xmlFreeStreamCtxt) xmlFreeStreamCtxt __attribute((alias("xmlFreeStreamCtxt__internal_alias")));
#define xmlFreeStreamCtxt xmlFreeStreamCtxt__internal_alias
#endif
#if defined(LIBXML_READER_ENABLED)
extern __typeof (xmlFreeTextReader) xmlFreeTextReader__internal_alias __attribute((visibility("hidden")));
extern __typeof (xmlFreeTextReader) xmlFreeTextReader __attribute((alias("xmlFreeTextReader__internal_alias")));
@ -3275,6 +3281,12 @@ extern __typeof (xmlParserWarning) xmlParserWarning__internal_alias __attribute(
extern __typeof (xmlParserWarning) xmlParserWarning __attribute((alias("xmlParserWarning__internal_alias")));
#define xmlParserWarning xmlParserWarning__internal_alias
#if defined(LIBXML_PATTERN_ENABLED)
extern __typeof (xmlPatternGetStreamCtxt) xmlPatternGetStreamCtxt__internal_alias __attribute((visibility("hidden")));
extern __typeof (xmlPatternGetStreamCtxt) xmlPatternGetStreamCtxt __attribute((alias("xmlPatternGetStreamCtxt__internal_alias")));
#define xmlPatternGetStreamCtxt xmlPatternGetStreamCtxt__internal_alias
#endif
#if defined(LIBXML_PATTERN_ENABLED)
extern __typeof (xmlPatternMatch) xmlPatternMatch__internal_alias __attribute((visibility("hidden")));
extern __typeof (xmlPatternMatch) xmlPatternMatch __attribute((alias("xmlPatternMatch__internal_alias")));
@ -4469,6 +4481,18 @@ extern __typeof (xmlStrdup) xmlStrdup__internal_alias __attribute((visibility("h
extern __typeof (xmlStrdup) xmlStrdup __attribute((alias("xmlStrdup__internal_alias")));
#define xmlStrdup xmlStrdup__internal_alias
#if defined(LIBXML_PATTERN_ENABLED)
extern __typeof (xmlStreamPop) xmlStreamPop__internal_alias __attribute((visibility("hidden")));
extern __typeof (xmlStreamPop) xmlStreamPop __attribute((alias("xmlStreamPop__internal_alias")));
#define xmlStreamPop xmlStreamPop__internal_alias
#endif
#if defined(LIBXML_PATTERN_ENABLED)
extern __typeof (xmlStreamPush) xmlStreamPush__internal_alias __attribute((visibility("hidden")));
extern __typeof (xmlStreamPush) xmlStreamPush __attribute((alias("xmlStreamPush__internal_alias")));
#define xmlStreamPush xmlStreamPush__internal_alias
#endif
extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar__internal_alias __attribute((visibility("hidden")));
extern __typeof (xmlStringCurrentChar) xmlStringCurrentChar __attribute((alias("xmlStringCurrentChar__internal_alias")));
#define xmlStringCurrentChar xmlStringCurrentChar__internal_alias

View File

@ -112,12 +112,12 @@ skipped_functions = [
"xmlIORead", "xmlReadIO", "xmlCtxtReadIO",
"htmlIORead", "htmlReadIO", "htmlCtxtReadIO",
"xmlReaderNewIO", "xmlBufferDump", "xmlNanoFTPConnect",
"xmlNanoFTPConnectTo",
"xmlNanoFTPConnectTo", "xmlNanoHTTPMethod", "xmlNanoHTTPMethodRedir",
# Complex I/O APIs
"xmlCreateIOParserCtxt", "xmlParserInputBufferCreateIO",
"xmlRegisterInputCallbacks", "xmlReaderForIO",
"xmlOutputBufferCreateIO", "xmlRegisterOutputCallbacks",
"xmlSaveToIO",
"xmlSaveToIO", "xmlIOHTTPOpenW",
# library state cleanup, generate false leak informations and other
# troubles, heavillyb tested otherwise.
"xmlCleanupParser", "xmlRelaxNGCleanupTypes", "xmlSetListDoc",
@ -129,7 +129,7 @@ skipped_functions = [
"xmlTextReaderReadInnerXml", "xmlTextReaderReadOuterXml",
"xmlTextReaderReadString",
# destructor
"xmlListDelete", "xmlOutputBufferClose", "xmlNanoFTPClose",
"xmlListDelete", "xmlOutputBufferClose", "xmlNanoFTPClose", "xmlNanoHTTPClose",
# deprecated
"xmlCatalogGetPublic", "xmlCatalogGetSystem", "xmlEncodeEntities",
"xmlNewGlobalNs", "xmlHandleEntity", "xmlNamespaceParseNCName",
@ -326,17 +326,25 @@ def type_convert(str, name, info, module, function, pos):
string.find(info, "URL") != -1:
if string.find(function, "Save") != -1 or \
string.find(function, "Create") != -1 or \
string.find(function, "Write") != -1:
string.find(function, "Write") != -1 or \
string.find(function, "Fetch") != -1:
return('fileoutput')
return('filepath')
if res == 'void_ptr':
if module == 'nanoftp' and name == 'ctx':
return('xmlNanoFTPCtxtPtr')
if function == 'xmlNanoFTPNewCtxt':
if function == 'xmlNanoFTPNewCtxt' or \
function == 'xmlNanoFTPConnectTo' or \
function == 'xmlNanoFTPOpen':
return('xmlNanoFTPCtxtPtr')
if module == 'nanohttp' and name == 'ctx':
return('xmlNanoHTTPCtxtPtr')
if function == 'xmlIOHTTPOpenW':
if function == 'xmlNanoHTTPMethod' or \
function == 'xmlNanoHTTPMethodRedir' or \
function == 'xmlNanoHTTPOpen' or \
function == 'xmlNanoHTTPOpenRedir':
return('xmlNanoHTTPCtxtPtr');
if function == 'xmlIOHTTPOpen':
return('xmlNanoHTTPCtxtPtr')
if string.find(name, "data") != -1:
return('userdata')

View File

@ -44,7 +44,7 @@ typedef enum {
XML_FROM_OUTPUT, /* The serialization code */
XML_FROM_IO, /* The Input/Output stack */
XML_FROM_FTP, /* The FTP module */
XML_FROM_HTTP, /* The FTP module */
XML_FROM_HTTP, /* The HTTP module */
XML_FROM_XINCLUDE, /* The XInclude processing */
XML_FROM_XPATH, /* The XPath module */
XML_FROM_XPOINTER, /* The XPointer module */
@ -665,6 +665,7 @@ typedef enum {
XML_FTP_PASV_ANSWER = 2000,
XML_FTP_EPSV_ANSWER, /* 2001 */
XML_FTP_ACCNT, /* 2002 */
XML_FTP_URL_SYNTAX, /* 2003 */
XML_HTTP_URL_SYNTAX = 2020,
XML_HTTP_USE_IP, /* 2021 */
XML_HTTP_UNKNOWN_HOST, /* 2022 */

354
nanoftp.c
View File

@ -296,11 +296,11 @@ xmlNanoFTPProxy(const char *host, int port, const char *user,
static void
xmlNanoFTPScanURL(void *ctx, const char *URL) {
xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
const char *cur = URL;
char buf[XML_NANO_MAX_URLBUF];
int indx = 0;
int port = 0;
xmlURIPtr uri;
/*
* Clear any existing data from the context
*/
if (ctxt->protocol != NULL) {
xmlFree(ctxt->protocol);
ctxt->protocol = NULL;
@ -314,124 +314,40 @@ xmlNanoFTPScanURL(void *ctx, const char *URL) {
ctxt->path = NULL;
}
if (URL == NULL) return;
buf[indx] = 0;
while ((*cur != 0) && (indx < XML_NANO_MAX_URLBUF - 1)) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[indx] = 0;
ctxt->protocol = xmlMemStrdup(buf);
indx = 0;
cur += 3;
break;
}
buf[indx++] = *cur++;
}
if (*cur == 0) return;
buf[indx] = 0;
/* allow user@ and user:pass@ forms */
{
const char *p = strchr(cur, '@');
if(p) {
while(indx < XML_NANO_MAX_URLBUF-1) {
if(cur[0] == ':' || cur[0] == '@') break;
buf[indx++] = *cur++;
}
buf[indx] = 0;
ctxt->user = xmlMemStrdup(buf);
indx = 0;
if(cur[0] == ':') {
cur++;
while(indx < XML_NANO_MAX_URLBUF-1) {
if(cur[0] == '@') break;
buf[indx++] = *cur++;
}
buf[indx] = 0;
ctxt->passwd = xmlMemStrdup(buf);
indx = 0;
}
cur = p+1;
}
}
uri = xmlParseURI(URL);
if (uri == NULL)
return;
while (indx < XML_NANO_MAX_URLBUF - 1) {
if ((strchr (cur, '[') && !strchr (cur, ']')) ||
(!strchr (cur, '[') && strchr (cur, ']'))) {
xmlGenericError (xmlGenericErrorContext, "\nxmlNanoFTPScanURL: %s",
"Syntax Error\n");
if ((uri->scheme == NULL) || (uri->server == NULL)) {
xmlFreeURI(uri);
return;
}
if (cur[0] == '[') {
cur++;
while ((cur[0] != ']') && (indx < XML_NANO_MAX_URLBUF-1))
buf[indx++] = *cur++;
if (indx >= XML_NANO_MAX_URLBUF-1) {
xmlGenericError(xmlGenericErrorContext,
"\nxmlNanoFTPScanURL: %s", "Syntax Error\n");
return;
}
if (!strchr (buf, ':')) {
xmlGenericError (xmlGenericErrorContext, "\nxmlNanoFTPScanURL: %s",
"Use [IPv6]/IPv4 format\n");
return;
}
buf[indx] = 0;
ctxt->hostname = xmlMemStrdup (buf);
indx = 0;
cur += 1;
if (cur[0] == ':') {
cur++;
while (*cur >= '0' && *cur <= '9') {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) ctxt->port = port;
while ((cur[0] != '/') && (*cur != 0))
cur++;
}
break;
}
else { /* address is an IPv4 one*/
if (cur[0] == ':') {
buf[indx] = 0;
ctxt->hostname = xmlMemStrdup (buf);
indx = 0;
cur += 1;
while ((*cur >= '0') && (*cur <= '9')) {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) ctxt->port = port;
while ((cur[0] != '/') && (*cur != 0))
cur++;
break;
}
if ((*cur == '/') || (*cur == 0)) {
buf[indx] = 0;
ctxt->hostname = xmlMemStrdup (buf);
indx = 0;
break;
}
}
buf[indx++] = *cur++;
}
if (*cur == 0)
ctxt->protocol = xmlMemStrdup(uri->scheme);
ctxt->hostname = xmlMemStrdup(uri->server);
if (uri->path != NULL)
ctxt->path = xmlMemStrdup(uri->path);
else
ctxt->path = xmlMemStrdup("/");
if (uri->port != 0)
ctxt->port = uri->port;
if (uri->user != NULL) {
char *cptr;
if ((cptr=strchr(uri->user, ':')) == NULL)
ctxt->user = xmlMemStrdup(uri->user);
else {
indx = 0;
buf[indx] = 0;
while ((*cur != 0) && (indx < XML_NANO_MAX_URLBUF-1))
buf[indx++] = *cur++;
buf[indx] = 0;
ctxt->path = xmlMemStrdup(buf);
ctxt->user = (char *)xmlStrndup((xmlChar *)uri->user,
(cptr - uri->user));
ctxt->passwd = xmlMemStrdup(cptr+1);
}
}
xmlFreeURI(uri);
}
/**
* xmlNanoFTPUpdateURL:
* @ctx: an FTP context
@ -449,10 +365,7 @@ xmlNanoFTPScanURL(void *ctx, const char *URL) {
int
xmlNanoFTPUpdateURL(void *ctx, const char *URL) {
xmlNanoFTPCtxtPtr ctxt = (xmlNanoFTPCtxtPtr) ctx;
const char *cur = URL;
char buf[XML_NANO_MAX_URLBUF];
int indx = 0;
int port = 0;
xmlURIPtr uri;
if (URL == NULL)
return(-1);
@ -462,104 +375,37 @@ xmlNanoFTPUpdateURL(void *ctx, const char *URL) {
return(-1);
if (ctxt->hostname == NULL)
return(-1);
buf[indx] = 0;
while ((*cur != 0) && (indx < XML_NANO_MAX_URLBUF-1)) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[indx] = 0;
if (strcmp(ctxt->protocol, buf))
return(-1);
indx = 0;
cur += 3;
break;
}
buf[indx++] = *cur++;
}
if (*cur == 0)
uri = xmlParseURI(URL);
if (uri == NULL)
return(-1);
buf[indx] = 0;
while (indx < XML_NANO_MAX_URLBUF-1) {
if ((strchr (cur, '[') && !strchr (cur, ']')) ||
(!strchr (cur, '[') && strchr (cur, ']'))) {
xmlGenericError (xmlGenericErrorContext, "\nxmlNanoFTPUpdateURL: %s",
"Syntax Error\n");
if ((uri->scheme == NULL) || (uri->server == NULL)) {
xmlFreeURI(uri);
return(-1);
}
if ((strcmp(ctxt->protocol, uri->scheme)) ||
(strcmp(ctxt->hostname, uri->server)) ||
((uri->port != 0) && (ctxt->port != uri->port))) {
xmlFreeURI(uri);
return(-1);
}
if (cur[0] == '[') {
cur++;
while ((cur[0] != ']') && (indx < XML_NANO_MAX_URLBUF-1))
buf[indx++] = *cur++;
if (uri->port != 0)
ctxt->port = uri->port;
if (!strchr (buf, ':')) {
xmlGenericError (xmlGenericErrorContext, "\nxmlNanoFTPUpdateURL: %s",
"Use [IPv6]/IPv4 format\n");
return (-1);
}
buf[indx] = 0;
if (strcmp (ctxt->hostname, buf))
return (-1);
indx = 0;
cur += 1;
if (cur[0] == ':') {
cur++;
while (*cur >= '0' && *cur <= '9') {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != ctxt->port)
return (-1);
while ((cur[0] != '/') && (*cur != 0))
cur++;
}
break;
}
else {
if (cur[0] == ':') {
buf[indx] = 0;
if (strcmp (ctxt->hostname, buf))
return (-1);
indx = 0;
cur += 1;
while ((*cur >= '0') && (*cur <= '9')) {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != ctxt->port)
return (-1);
while ((cur[0] != '/') && (*cur != 0))
cur++;
break;
}
if ((*cur == '/') || (*cur == 0)) {
buf[indx] = 0;
if (strcmp (ctxt->hostname, buf))
return (-1);
indx = 0;
break;
}
}
buf[indx++] = *cur++;
}
if (ctxt->path != NULL) {
xmlFree(ctxt->path);
ctxt->path = NULL;
}
if (*cur == 0)
if (uri->path == NULL)
ctxt->path = xmlMemStrdup("/");
else {
indx = 0;
buf[indx] = 0;
while ((*cur != 0) && (indx < XML_NANO_MAX_URLBUF-1))
buf[indx++] = *cur++;
buf[indx] = 0;
ctxt->path = xmlMemStrdup(buf);
}
else
ctxt->path = xmlMemStrdup(uri->path);
xmlFreeURI(uri);
return(0);
}
@ -575,105 +421,38 @@ xmlNanoFTPUpdateURL(void *ctx, const char *URL) {
void
xmlNanoFTPScanProxy(const char *URL) {
const char *cur = URL;
char buf[XML_NANO_MAX_URLBUF];
int indx = 0;
int port = 0;
xmlURIPtr uri;
if (proxy != NULL) {
xmlFree(proxy);
proxy = NULL;
}
if (proxyPort != 0) {
proxyPort = 0;
}
#ifdef DEBUG_FTP
if (URL == NULL)
xmlGenericError(xmlGenericErrorContext, "Removing FTP proxy info\n");
xmlGenericError(xmlGenericErrorContext,
"Removing FTP proxy info\n");
else
xmlGenericError(xmlGenericErrorContext, "Using FTP proxy %s\n", URL);
xmlGenericError(xmlGenericErrorContext,
"Using FTP proxy %s\n", URL);
#endif
if (URL == NULL) return;
buf[indx] = 0;
while ((*cur != 0) && (indx < XML_NANO_MAX_URLBUF-1)) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[indx] = 0;
indx = 0;
cur += 3;
break;
}
buf[indx++] = *cur++;
}
if (*cur == 0) return;
buf[indx] = 0;
while (indx < XML_NANO_MAX_URLBUF-1) {
if ((strchr (cur, '[') && !strchr (cur, ']')) ||
(!strchr (cur, '[') && strchr (cur, ']'))) {
xmlGenericError (xmlGenericErrorContext, "\nxmlNanoFTPScanProxy: %s",
"Syntax error\n");
uri = xmlParseURI(URL);
if ((uri == NULL) || (uri->scheme == NULL) ||
(strcmp(uri->scheme, "ftp")) || (uri->server == NULL)) {
__xmlIOErr(XML_FROM_FTP, XML_FTP_URL_SYNTAX, "Syntax Error\n");
if (uri != NULL)
xmlFreeURI(uri);
return;
}
if (cur[0] == '[') {
cur++;
while ((cur[0] != ']') && (indx < XML_NANO_MAX_URLBUF-1))
buf[indx++] = *cur++;
if (indx >= XML_NANO_MAX_URLBUF-1) {
xmlGenericError (xmlGenericErrorContext,
"\nxmlNanoFTPScanProxy: %s", "Syntax error\n");
return;
}
proxy = xmlMemStrdup(uri->server);
if (uri->port != 0)
proxyPort = uri->port;
if (!strchr (buf, ':')) {
xmlGenericError (xmlGenericErrorContext, "\nxmlNanoFTPScanProxy: %s",
"Use [IPv6]/IPv4 format\n");
return;
}
buf[indx] = 0;
proxy = xmlMemStrdup (buf);
indx = 0;
cur += 1;
if (cur[0] == ':') {
cur++;
while (*cur >= '0' && *cur <= '9') {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) proxyPort = port;
while ((cur[0] != '/') && (*cur != 0))
cur++;
}
break;
}
else {
if (cur[0] == ':') {
buf[indx] = 0;
proxy = xmlMemStrdup (buf);
indx = 0;
cur += 1;
while ((*cur >= '0') && (*cur <= '9')) {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) proxyPort = port;
while ((cur[0] != '/') && (*cur != 0))
cur++;
break;
}
if ((*cur == '/') || (*cur == 0)) {
buf[indx] = 0;
proxy = xmlMemStrdup (buf);
indx = 0;
break;
}
}
buf[indx++] = *cur++;
}
xmlFreeURI(uri);
}
/**
@ -1489,6 +1268,7 @@ xmlNanoFTPCwd(void *ctx, const char *directory) {
int res;
if ((ctxt == NULL) || (ctxt->controlFd < 0)) return(-1);
if (directory == NULL) return 0;
/*
* Expected response code for CWD:
@ -1537,6 +1317,7 @@ xmlNanoFTPDele(void *ctx, const char *file) {
int res;
if ((ctxt == NULL) || (ctxt->controlFd < 0) || (file == NULL)) return(-1);
if (file == NULL) return (0);
/*
* Expected response code for DELE:
@ -1940,6 +1721,7 @@ xmlNanoFTPList(void *ctx, ftpListCallback callback, void *userData,
fd_set rfd, efd;
struct timeval tv;
if (ctxt == NULL) return (-1);
if (filename == NULL) {
if (xmlNanoFTPCwd(ctxt, ctxt->path) < 1)
return(-1);
@ -2113,6 +1895,7 @@ xmlNanoFTPGet(void *ctx, ftpDataCallback callback, void *userData,
fd_set rfd;
struct timeval tv;
if (ctxt == NULL) return(-1);
if ((filename == NULL) && (ctxt->path == NULL))
return(-1);
if (callback == NULL)
@ -2182,6 +1965,7 @@ xmlNanoFTPRead(void *ctx, void *dest, int len) {
len = recv(ctxt->dataFd, dest, len, 0);
if (len <= 0) {
if (len < 0)
__xmlIOErr(XML_FROM_FTP, 0, "recv failed");
xmlNanoFTPCloseConnection(ctxt);
}

View File

@ -268,12 +268,10 @@ xmlNanoHTTPCleanup(void) {
static void
xmlNanoHTTPScanURL(xmlNanoHTTPCtxtPtr ctxt, const char *URL) {
const char *cur = URL;
char buf[4096];
int indx = 0;
const int indxMax = 4096 - 1;
int port = 0;
xmlURIPtr uri;
/*
* Clear any existing data from the context
*/
if (ctxt->protocol != NULL) {
xmlFree(ctxt->protocol);
ctxt->protocol = NULL;
@ -287,92 +285,26 @@ xmlNanoHTTPScanURL(xmlNanoHTTPCtxtPtr ctxt, const char *URL) {
ctxt->path = NULL;
}
if (URL == NULL) return;
buf[indx] = 0;
while ((*cur != 0) && (indx < indxMax)) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[indx] = 0;
ctxt->protocol = xmlMemStrdup(buf);
indx = 0;
cur += 3;
break;
}
buf[indx++] = *cur++;
}
if (*cur == 0) return;
buf[indx] = 0;
while (indx < indxMax) {
if ((strchr (cur, '[') && !strchr (cur, ']')) ||
(!strchr (cur, '[') && strchr (cur, ']'))) {
__xmlIOErr(XML_FROM_HTTP, XML_HTTP_URL_SYNTAX,
"Syntax Error\n");
uri = xmlParseURI(URL);
if (uri == NULL)
return;
if ((uri->scheme == NULL) || (uri->server == NULL)) {
xmlFreeURI(uri);
return;
}
if (cur[0] == '[') {
cur++;
while ((cur[0] != ']') && (indx < indxMax))
buf[indx++] = *cur++;
if (!strchr (buf, ':')) {
__xmlIOErr(XML_FROM_HTTP, XML_HTTP_USE_IP,
"Use [IPv6]/IPv4 format\n");
return;
}
buf[indx] = 0;
ctxt->hostname = xmlMemStrdup (buf);
indx = 0;
cur += 1;
if (cur[0] == ':') {
cur++;
while (*cur >= '0' && *cur <= '9') {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) ctxt->port = port;
while ((cur[0] != '/') && (*cur != 0))
cur++;
}
break;
}
else {
if (cur[0] == ':') {
buf[indx] = 0;
ctxt->hostname = xmlMemStrdup (buf);
indx = 0;
cur += 1;
while ((*cur >= '0') && (*cur <= '9')) {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) ctxt->port = port;
while ((cur[0] != '/') && (*cur != 0))
cur++;
break;
}
if ((*cur == '/') || (*cur == 0)) {
buf[indx] = 0;
ctxt->hostname = xmlMemStrdup (buf);
indx = 0;
break;
}
}
buf[indx++] = *cur++;
}
if (*cur == 0)
ctxt->protocol = xmlMemStrdup(uri->scheme);
ctxt->hostname = xmlMemStrdup(uri->server);
if (uri->path != NULL)
ctxt->path = xmlMemStrdup(uri->path);
else
ctxt->path = xmlMemStrdup("/");
else {
indx = 0;
buf[indx] = 0;
while ((*cur != 0) && (indx < indxMax))
buf[indx++] = *cur++;
buf[indx] = 0;
ctxt->path = xmlMemStrdup(buf);
}
if (uri->port != 0)
ctxt->port = uri->port;
xmlFreeURI(uri);
}
/**
@ -387,19 +319,14 @@ xmlNanoHTTPScanURL(xmlNanoHTTPCtxtPtr ctxt, const char *URL) {
void
xmlNanoHTTPScanProxy(const char *URL) {
const char *cur = URL;
char buf[4096];
int indx = 0;
const int indxMax = 4096 - 1;
int port = 0;
xmlURIPtr uri;
if (proxy != NULL) {
xmlFree(proxy);
proxy = NULL;
}
if (proxyPort != 0) {
proxyPort = 0;
}
#ifdef DEBUG_HTTP
if (URL == NULL)
xmlGenericError(xmlGenericErrorContext,
@ -409,80 +336,21 @@ xmlNanoHTTPScanProxy(const char *URL) {
"Using HTTP proxy %s\n", URL);
#endif
if (URL == NULL) return;
buf[indx] = 0;
while ((*cur != 0) && (indx < indxMax)) {
if ((cur[0] == ':') && (cur[1] == '/') && (cur[2] == '/')) {
buf[indx] = 0;
indx = 0;
cur += 3;
break;
}
buf[indx++] = *cur++;
}
if (*cur == 0) return;
buf[indx] = 0;
while (indx < indxMax) {
if ((strchr (cur, '[') && !strchr (cur, ']')) ||
(!strchr (cur, '[') && strchr (cur, ']'))) {
uri = xmlParseURI(URL);
if ((uri == NULL) || (uri->scheme == NULL) ||
(strcmp(uri->scheme, "http")) || (uri->server == NULL)) {
__xmlIOErr(XML_FROM_HTTP, XML_HTTP_URL_SYNTAX, "Syntax Error\n");
if (uri != NULL)
xmlFreeURI(uri);
return;
}
if (cur[0] == '[') {
cur++;
while ((cur[0] != ']') && (indx < indxMax))
buf[indx++] = *cur++;
proxy = xmlMemStrdup(uri->server);
if (uri->port != 0)
proxyPort = uri->port;
if (!strchr (buf, ':')) {
__xmlIOErr(XML_FROM_HTTP, XML_HTTP_USE_IP,
"Use [IPv6]/IPv4 format\n");
return;
}
buf[indx] = 0;
proxy = xmlMemStrdup (buf);
indx = 0;
cur += 1;
if (cur[0] == ':') {
cur++;
while (*cur >= '0' && *cur <= '9') {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) proxyPort = port;
while ((cur[0] != '/') && (*cur != 0))
cur ++;
}
break;
}
else {
if (cur[0] == ':') {
buf[indx] = 0;
proxy = xmlMemStrdup (buf);
indx = 0;
cur += 1;
while ((*cur >= '0') && (*cur <= '9')) {
port *= 10;
port += *cur - '0';
cur++;
}
if (port != 0) proxyPort = port;
while ((cur[0] != '/') && (*cur != 0))
cur++;
break;
}
if ((*cur == '/') || (*cur == 0)) {
buf[indx] = 0;
proxy = xmlMemStrdup (buf);
indx = 0;
break;
}
}
buf[indx++] = *cur++;
}
xmlFreeURI(uri);
}
/**
@ -1551,6 +1419,7 @@ xmlNanoHTTPFetch(const char *URL, const char *filename, char **contentType) {
int fd;
int len;
if (filename == NULL) return(-1);
ctxt = xmlNanoHTTPOpen(URL, contentType);
if (ctxt == NULL) return(-1);
@ -1595,7 +1464,7 @@ xmlNanoHTTPSave(void *ctxt, const char *filename) {
int fd;
int len;
if (ctxt == NULL) return(-1);
if ((ctxt == NULL) || (filename == NULL)) return(-1);
if (!strcmp(filename, "-"))
fd = 0;

288
testapi.c
View File

@ -193,6 +193,14 @@ int main(int argc, char **argv) {
*/
void xmlErrMemory(xmlParserCtxtPtr ctxt, const char *extra);
/*
We need some "remote" addresses, but want to avoid getting into
name resolution delays, so we use these
*/
#define REMOTE1GOOD "http://localhost/"
#define REMOTE1BAD "http://missing. example.org/"
#define REMOTE2GOOD "ftp://localhost/foo"
#define gen_nb_void_ptr 2
static void *gen_void_ptr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
@ -392,8 +400,8 @@ static const char *gen_filepath(int no, int nr ATTRIBUTE_UNUSED) {
if (no == 2) return("test/ent2");
if (no == 3) return("test/valid/REC-xml-19980210.xml");
if (no == 4) return("test/valid/dtds/xhtml1-strict.dtd");
if (no == 5) return("http://missing.example.org/");
if (no == 6) return("http://missing. example.org/");
if (no == 5) return(REMOTE1GOOD);
if (no == 6) return(REMOTE1BAD);
return(NULL);
}
static void des_filepath(int no ATTRIBUTE_UNUSED, const char *val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
@ -413,9 +421,9 @@ static void des_eaten_name(int no ATTRIBUTE_UNUSED, xmlChar *val ATTRIBUTE_UNUSE
static const char *gen_fileoutput(int no, int nr ATTRIBUTE_UNUSED) {
if (no == 0) return("/missing.xml");
if (no == 1) return("<foo/>");
if (no == 2) return("ftp://missing.example.org/foo");
if (no == 3) return("http://missing.example.org/");
if (no == 4) return("http://missing. example.org/");
if (no == 2) return(REMOTE2GOOD);
if (no == 3) return(REMOTE1GOOD);
if (no == 4) return(REMOTE1BAD);
return(NULL);
}
static void des_fileoutput(int no ATTRIBUTE_UNUSED, const char *val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
@ -464,8 +472,8 @@ static xmlParserInputBufferPtr gen_xmlParserInputBufferPtr(int no, int nr ATTRIB
if (no == 2) return(xmlParserInputBufferCreateFilename("test/ent2", XML_CHAR_ENCODING_NONE));
if (no == 3) return(xmlParserInputBufferCreateFilename("test/valid/REC-xml-19980210.xml", XML_CHAR_ENCODING_NONE));
if (no == 4) return(xmlParserInputBufferCreateFilename("test/valid/dtds/xhtml1-strict.dtd", XML_CHAR_ENCODING_NONE));
if (no == 5) return(xmlParserInputBufferCreateFilename("http://missing.example.org/", XML_CHAR_ENCODING_NONE));
if (no == 6) return(xmlParserInputBufferCreateFilename("http://missing. example.org/", XML_CHAR_ENCODING_NONE));
if (no == 5) return(xmlParserInputBufferCreateFilename(REMOTE1GOOD, XML_CHAR_ENCODING_NONE));
if (no == 6) return(xmlParserInputBufferCreateFilename(REMOTE1BAD, XML_CHAR_ENCODING_NONE));
return(NULL);
}
static void des_xmlParserInputBufferPtr(int no ATTRIBUTE_UNUSED, xmlParserInputBufferPtr val, int nr ATTRIBUTE_UNUSED) {
@ -642,8 +650,8 @@ static void des_xmlOutputBufferPtr(int no ATTRIBUTE_UNUSED, xmlOutputBufferPtr v
#ifdef LIBXML_FTP_ENABLED
#define gen_nb_xmlNanoFTPCtxtPtr 4
static void *gen_xmlNanoFTPCtxtPtr(int no, int nr ATTRIBUTE_UNUSED) {
if (no == 0) return(xmlNanoFTPNewCtxt("ftp://example.com/"));
if (no == 1) return(xmlNanoFTPNewCtxt("http://example.com/"));
if (no == 0) return(xmlNanoFTPNewCtxt(REMOTE2GOOD));
if (no == 1) return(xmlNanoFTPNewCtxt(REMOTE1GOOD));
if (no == 2) return(xmlNanoFTPNewCtxt("foo"));
return(NULL);
}
@ -656,10 +664,16 @@ static void des_xmlNanoFTPCtxtPtr(int no ATTRIBUTE_UNUSED, void *val, int nr ATT
#ifdef LIBXML_HTTP_ENABLED
#define gen_nb_xmlNanoHTTPCtxtPtr 1
static void *gen_xmlNanoHTTPCtxtPtr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
static void *gen_xmlNanoHTTPCtxtPtr(int no, int nr ATTRIBUTE_UNUSED) {
if (no == 0) return(xmlNanoHTTPOpen(REMOTE1GOOD, NULL));
if (no == 1) return(xmlNanoHTTPOpen(REMOTE2GOOD, NULL));
if (no == 2) return(xmlNanoHTTPOpen(REMOTE1BAD, NULL));
return(NULL);
}
static void des_xmlNanoHTTPCtxtPtr(int no ATTRIBUTE_UNUSED, void *val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
static void des_xmlNanoHTTPCtxtPtr(int no ATTRIBUTE_UNUSED, void *val, int nr ATTRIBUTE_UNUSED) {
if (val != NULL) {
xmlNanoHTTPClose(val);
}
}
#endif
@ -667,7 +681,7 @@ static void des_xmlNanoHTTPCtxtPtr(int no ATTRIBUTE_UNUSED, void *val ATTRIBUTE_
static xmlCharEncoding gen_xmlCharEncoding(int no, int nr ATTRIBUTE_UNUSED) {
if (no == 0) return(XML_CHAR_ENCODING_UTF8);
if (no == 1) return(XML_CHAR_ENCODING_NONE);
if (no == 0) return(XML_CHAR_ENCODING_8859_1);
if (no == 2) return(XML_CHAR_ENCODING_8859_1);
return(XML_CHAR_ENCODING_ERROR);
}
static void des_xmlCharEncoding(int no ATTRIBUTE_UNUSED, xmlCharEncoding val ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
@ -800,8 +814,15 @@ static void desret_xmlRelaxNGParserCtxtPtr(xmlRelaxNGParserCtxtPtr val) {
#ifdef LIBXML_HTML_ENABLED
static void desret_const_htmlEntityDesc_ptr(const htmlEntityDesc * val ATTRIBUTE_UNUSED) {
}
static void desret_xmlNanoHTTPCtxtPtr(void *val) {
xmlNanoHTTPClose(val);
}
#endif
#ifdef LIBXML_FTP_ENABLED
static void desret_xmlNanoFTPCtxtPtr(void *val) {
xmlNanoFTPClose(val);
}
#endif
/* cut and pasted from autogenerated to avoid troubles */
#define gen_nb_const_xmlChar_ptr_ptr 1
static xmlChar ** gen_const_xmlChar_ptr_ptr(int no ATTRIBUTE_UNUSED, int nr ATTRIBUTE_UNUSED) {
@ -11527,8 +11548,32 @@ static int
test_xmlNanoFTPNewCtxt(void) {
int test_ret = 0;
#if defined(LIBXML_FTP_ENABLED)
int mem_base;
void * ret_val;
const char * URL; /* The URL used to initialize the context */
int n_URL;
for (n_URL = 0;n_URL < gen_nb_filepath;n_URL++) {
mem_base = xmlMemBlocks();
URL = gen_filepath(n_URL, 0);
ret_val = xmlNanoFTPNewCtxt(URL);
desret_xmlNanoFTPCtxtPtr(ret_val);
call_tests++;
des_filepath(n_URL, URL, 0);
xmlResetLastError();
if (mem_base != xmlMemBlocks()) {
printf("Leak of %d blocks found in xmlNanoFTPNewCtxt",
xmlMemBlocks() - mem_base);
test_ret++;
printf(" %d", n_URL);
printf("\n");
}
}
function_tests++;
#endif
/* missing type support */
return(test_ret);
}
@ -11548,7 +11593,7 @@ test_xmlNanoFTPOpen(void) {
URL = gen_filepath(n_URL, 0);
ret_val = xmlNanoFTPOpen(URL);
desret_void_ptr(ret_val);
desret_xmlNanoFTPCtxtPtr(ret_val);
call_tests++;
des_filepath(n_URL, URL, 0);
xmlResetLastError();
@ -11763,7 +11808,7 @@ static int
test_nanoftp(void) {
int test_ret = 0;
if (quiet == 0) printf("Testing nanoftp : 15 of 22 functions ...\n");
if (quiet == 0) printf("Testing nanoftp : 16 of 22 functions ...\n");
test_ret += test_xmlNanoFTPCheckResponse();
test_ret += test_xmlNanoFTPCleanup();
test_ret += test_xmlNanoFTPCloseConnection();
@ -11847,38 +11892,6 @@ test_xmlNanoHTTPCleanup(void) {
}
static int
test_xmlNanoHTTPClose(void) {
int test_ret = 0;
#if defined(LIBXML_HTTP_ENABLED)
int mem_base;
void * ctx; /* the HTTP context */
int n_ctx;
for (n_ctx = 0;n_ctx < gen_nb_xmlNanoHTTPCtxtPtr;n_ctx++) {
mem_base = xmlMemBlocks();
ctx = gen_xmlNanoHTTPCtxtPtr(n_ctx, 0);
xmlNanoHTTPClose(ctx);
call_tests++;
des_xmlNanoHTTPCtxtPtr(n_ctx, ctx, 0);
xmlResetLastError();
if (mem_base != xmlMemBlocks()) {
printf("Leak of %d blocks found in xmlNanoHTTPClose",
xmlMemBlocks() - mem_base);
test_ret++;
printf(" %d", n_ctx);
printf("\n");
}
}
function_tests++;
#endif
return(test_ret);
}
static int
test_xmlNanoHTTPContentLength(void) {
int test_ret = 0;
@ -11968,19 +11981,19 @@ test_xmlNanoHTTPFetch(void) {
char ** contentType; /* if available the Content-Type information will be returned at that location */
int n_contentType;
for (n_URL = 0;n_URL < gen_nb_filepath;n_URL++) {
for (n_filename = 0;n_filename < gen_nb_filepath;n_filename++) {
for (n_URL = 0;n_URL < gen_nb_fileoutput;n_URL++) {
for (n_filename = 0;n_filename < gen_nb_fileoutput;n_filename++) {
for (n_contentType = 0;n_contentType < gen_nb_char_ptr_ptr;n_contentType++) {
mem_base = xmlMemBlocks();
URL = gen_filepath(n_URL, 0);
filename = gen_filepath(n_filename, 1);
URL = gen_fileoutput(n_URL, 0);
filename = gen_fileoutput(n_filename, 1);
contentType = gen_char_ptr_ptr(n_contentType, 2);
ret_val = xmlNanoHTTPFetch(URL, filename, contentType);
desret_int(ret_val);
call_tests++;
des_filepath(n_URL, URL, 0);
des_filepath(n_filename, filename, 1);
des_fileoutput(n_URL, URL, 0);
des_fileoutput(n_filename, filename, 1);
des_char_ptr_ptr(n_contentType, contentType, 2);
xmlResetLastError();
if (mem_base != xmlMemBlocks()) {
@ -12027,151 +12040,6 @@ test_xmlNanoHTTPInit(void) {
}
static int
test_xmlNanoHTTPMethod(void) {
int test_ret = 0;
#if defined(LIBXML_HTTP_ENABLED)
int mem_base;
void * ret_val;
const char * URL; /* The URL to load */
int n_URL;
char * method; /* the HTTP method to use */
int n_method;
char * input; /* the input string if any */
int n_input;
char ** contentType; /* the Content-Type information IN and OUT */
int n_contentType;
char * headers; /* the extra headers */
int n_headers;
int ilen; /* input length */
int n_ilen;
for (n_URL = 0;n_URL < gen_nb_filepath;n_URL++) {
for (n_method = 0;n_method < gen_nb_const_char_ptr;n_method++) {
for (n_input = 0;n_input < gen_nb_const_char_ptr;n_input++) {
for (n_contentType = 0;n_contentType < gen_nb_char_ptr_ptr;n_contentType++) {
for (n_headers = 0;n_headers < gen_nb_const_char_ptr;n_headers++) {
for (n_ilen = 0;n_ilen < gen_nb_int;n_ilen++) {
mem_base = xmlMemBlocks();
URL = gen_filepath(n_URL, 0);
method = gen_const_char_ptr(n_method, 1);
input = gen_const_char_ptr(n_input, 2);
contentType = gen_char_ptr_ptr(n_contentType, 3);
headers = gen_const_char_ptr(n_headers, 4);
ilen = gen_int(n_ilen, 5);
ret_val = xmlNanoHTTPMethod(URL, (const char *)method, (const char *)input, contentType, (const char *)headers, ilen);
desret_void_ptr(ret_val);
call_tests++;
des_filepath(n_URL, URL, 0);
des_const_char_ptr(n_method, (const char *)method, 1);
des_const_char_ptr(n_input, (const char *)input, 2);
des_char_ptr_ptr(n_contentType, contentType, 3);
des_const_char_ptr(n_headers, (const char *)headers, 4);
des_int(n_ilen, ilen, 5);
xmlResetLastError();
if (mem_base != xmlMemBlocks()) {
printf("Leak of %d blocks found in xmlNanoHTTPMethod",
xmlMemBlocks() - mem_base);
test_ret++;
printf(" %d", n_URL);
printf(" %d", n_method);
printf(" %d", n_input);
printf(" %d", n_contentType);
printf(" %d", n_headers);
printf(" %d", n_ilen);
printf("\n");
}
}
}
}
}
}
}
function_tests++;
#endif
return(test_ret);
}
static int
test_xmlNanoHTTPMethodRedir(void) {
int test_ret = 0;
#if defined(LIBXML_HTTP_ENABLED)
int mem_base;
void * ret_val;
const char * URL; /* The URL to load */
int n_URL;
char * method; /* the HTTP method to use */
int n_method;
char * input; /* the input string if any */
int n_input;
char ** contentType; /* the Content-Type information IN and OUT */
int n_contentType;
char ** redir; /* the redirected URL OUT */
int n_redir;
char * headers; /* the extra headers */
int n_headers;
int ilen; /* input length */
int n_ilen;
for (n_URL = 0;n_URL < gen_nb_filepath;n_URL++) {
for (n_method = 0;n_method < gen_nb_const_char_ptr;n_method++) {
for (n_input = 0;n_input < gen_nb_const_char_ptr;n_input++) {
for (n_contentType = 0;n_contentType < gen_nb_char_ptr_ptr;n_contentType++) {
for (n_redir = 0;n_redir < gen_nb_char_ptr_ptr;n_redir++) {
for (n_headers = 0;n_headers < gen_nb_const_char_ptr;n_headers++) {
for (n_ilen = 0;n_ilen < gen_nb_int;n_ilen++) {
mem_base = xmlMemBlocks();
URL = gen_filepath(n_URL, 0);
method = gen_const_char_ptr(n_method, 1);
input = gen_const_char_ptr(n_input, 2);
contentType = gen_char_ptr_ptr(n_contentType, 3);
redir = gen_char_ptr_ptr(n_redir, 4);
headers = gen_const_char_ptr(n_headers, 5);
ilen = gen_int(n_ilen, 6);
ret_val = xmlNanoHTTPMethodRedir(URL, (const char *)method, (const char *)input, contentType, redir, (const char *)headers, ilen);
desret_void_ptr(ret_val);
call_tests++;
des_filepath(n_URL, URL, 0);
des_const_char_ptr(n_method, (const char *)method, 1);
des_const_char_ptr(n_input, (const char *)input, 2);
des_char_ptr_ptr(n_contentType, contentType, 3);
des_char_ptr_ptr(n_redir, redir, 4);
des_const_char_ptr(n_headers, (const char *)headers, 5);
des_int(n_ilen, ilen, 6);
xmlResetLastError();
if (mem_base != xmlMemBlocks()) {
printf("Leak of %d blocks found in xmlNanoHTTPMethodRedir",
xmlMemBlocks() - mem_base);
test_ret++;
printf(" %d", n_URL);
printf(" %d", n_method);
printf(" %d", n_input);
printf(" %d", n_contentType);
printf(" %d", n_redir);
printf(" %d", n_headers);
printf(" %d", n_ilen);
printf("\n");
}
}
}
}
}
}
}
}
function_tests++;
#endif
return(test_ret);
}
static int
test_xmlNanoHTTPMimeType(void) {
int test_ret = 0;
@ -12225,7 +12093,7 @@ test_xmlNanoHTTPOpen(void) {
contentType = gen_char_ptr_ptr(n_contentType, 1);
ret_val = xmlNanoHTTPOpen(URL, contentType);
desret_void_ptr(ret_val);
desret_xmlNanoHTTPCtxtPtr(ret_val);
call_tests++;
des_filepath(n_URL, URL, 0);
des_char_ptr_ptr(n_contentType, contentType, 1);
@ -12270,7 +12138,7 @@ test_xmlNanoHTTPOpenRedir(void) {
redir = gen_char_ptr_ptr(n_redir, 2);
ret_val = xmlNanoHTTPOpenRedir(URL, contentType, redir);
desret_void_ptr(ret_val);
desret_xmlNanoHTTPCtxtPtr(ret_val);
call_tests++;
des_filepath(n_URL, URL, 0);
des_char_ptr_ptr(n_contentType, contentType, 1);
@ -12454,16 +12322,13 @@ static int
test_nanohttp(void) {
int test_ret = 0;
if (quiet == 0) printf("Testing nanohttp : 16 of 17 functions ...\n");
if (quiet == 0) printf("Testing nanohttp : 13 of 17 functions ...\n");
test_ret += test_xmlNanoHTTPAuthHeader();
test_ret += test_xmlNanoHTTPCleanup();
test_ret += test_xmlNanoHTTPClose();
test_ret += test_xmlNanoHTTPContentLength();
test_ret += test_xmlNanoHTTPEncoding();
test_ret += test_xmlNanoHTTPFetch();
test_ret += test_xmlNanoHTTPInit();
test_ret += test_xmlNanoHTTPMethod();
test_ret += test_xmlNanoHTTPMethodRedir();
test_ret += test_xmlNanoHTTPMimeType();
test_ret += test_xmlNanoHTTPOpen();
test_ret += test_xmlNanoHTTPOpenRedir();
@ -26899,7 +26764,7 @@ test_xmlIOHTTPOpen(void) {
filename = gen_filepath(n_filename, 0);
ret_val = xmlIOHTTPOpen(filename);
desret_void_ptr(ret_val);
desret_xmlNanoHTTPCtxtPtr(ret_val);
call_tests++;
des_filepath(n_filename, filename, 0);
xmlResetLastError();
@ -26918,16 +26783,6 @@ test_xmlIOHTTPOpen(void) {
}
static int
test_xmlIOHTTPOpenW(void) {
int test_ret = 0;
/* missing type support */
return(test_ret);
}
static int
test_xmlIOHTTPRead(void) {
int test_ret = 0;
@ -27780,7 +27635,6 @@ test_xmlIO(void) {
test_ret += test_xmlIOHTTPClose();
test_ret += test_xmlIOHTTPMatch();
test_ret += test_xmlIOHTTPOpen();
test_ret += test_xmlIOHTTPOpenW();
test_ret += test_xmlIOHTTPRead();
test_ret += test_xmlNoNetExternalEntityLoader();
test_ret += test_xmlNormalizeWindowsPath();

77
uri.c
View File

@ -1,7 +1,7 @@
/**
* uri.c: set of generic URI related routines
*
* Reference: RFC 2396
* Reference: RFCs 2396, 2732 and 2373
*
* See Copyright for the status of this software.
*
@ -78,12 +78,14 @@
/*
* reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
* reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," |
* "[" | "]"
*/
#define IS_RESERVED(x) (((x) == ';') || ((x) == '/') || ((x) == '?') || \
((x) == ':') || ((x) == '@') || ((x) == '&') || ((x) == '=') || \
((x) == '+') || ((x) == '$') || ((x) == ','))
((x) == '+') || ((x) == '$') || ((x) == ',') || ((x) == '[') || \
((x) == ']'))
/*
* unreserved = alphanum | mark
@ -159,7 +161,7 @@
(IS_RESERVED(*(p))))
/*
* unwise = "{" | "}" | "|" | "\" | "^" | "[" | "]" | "`"
* unwise = "{" | "}" | "|" | "\" | "^" | "`"
*/
#define IS_UNWISE(p) \
@ -1199,11 +1201,16 @@ xmlParseURIOpaquePart(xmlURIPtr uri, const char **str)
* userinfo = *( unreserved | escaped |
* ";" | ":" | "&" | "=" | "+" | "$" | "," )
* hostport = host [ ":" port ]
* host = hostname | IPv4address
* host = hostname | IPv4address | IPv6reference
* hostname = *( domainlabel "." ) toplabel [ "." ]
* domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum
* toplabel = alpha | alpha *( alphanum | "-" ) alphanum
* IPv4address = 1*digit "." 1*digit "." 1*digit "." 1*digit
* IPv6reference = "[" IPv6address "]"
* IPv6address = hexpart [ ":" IPv4address ]
* IPv4address = 1*3digit "." 1*3digit "." 1*3digit "." 1*3digit
* hexpart = hexseq | hexseq "::" [ hexseq ]| "::" [ hexseq ]
* hexseq = hex4 *( ":" hex4)
* hex4 = 1*4hexdig
* port = *digit
*
* Returns 0 or the error code
@ -1212,7 +1219,8 @@ static int
xmlParseURIServer(xmlURIPtr uri, const char **str) {
const char *cur;
const char *host, *tmp;
const int IPmax = 4;
const int IPV4max = 4;
const int IPV6max = 8;
int oct;
if (str == NULL)
@ -1221,7 +1229,7 @@ xmlParseURIServer(xmlURIPtr uri, const char **str) {
cur = *str;
/*
* is there an userinfo ?
* is there a userinfo ?
*/
while (IS_USERINFO(cur)) NEXT(cur);
if (*cur == '@') {
@ -1252,21 +1260,60 @@ xmlParseURIServer(xmlURIPtr uri, const char **str) {
return(0);
}
/*
* host part of hostport can derive either an IPV4 address
* or an unresolved name. Check the IP first, it easier to detect
* errors if wrong one
* host part of hostport can denote an IPV4 address, an IPV6 address
* or an unresolved name. Check the IP first, its easier to detect
* errors if wrong one.
* An IPV6 address must start with a '[' and end with a ']'.
*/
for (oct = 0; oct < IPmax; ++oct) {
if (*cur == '[') {
int compress=0;
cur++;
for (oct = 0; oct < IPV6max; ++oct) {
if (*cur == ':') {
if (compress)
return(3); /* multiple compression attempted */
if (!oct) { /* initial char is compression */
if (*++cur != ':')
return(3);
}
compress = 1; /* set compression-encountered flag */
cur++; /* skip over the second ':' */
continue;
}
while(IS_HEX(*cur)) cur++;
if (oct == (IPV6max-1))
continue;
if (*cur != ':')
break;
cur++;
}
if ((!compress) && (oct != IPV6max))
return(3);
if (*cur != ']')
return(3);
if (uri != NULL) {
if (uri->server != NULL) xmlFree(uri->server);
uri->server = (char *)xmlStrndup((xmlChar *)host+1,
(cur-host)-1);
}
cur++;
} else {
/*
* Not IPV6, maybe IPV4
*/
for (oct = 0; oct < IPV4max; ++oct) {
if (*cur == '.')
return(3); /* e.g. http://.xml/ or http://18.29..30/ */
while(IS_DIGIT(*cur)) cur++;
if (oct == (IPmax-1))
if (oct == (IPV4max-1))
continue;
if (*cur != '.')
break;
cur++;
}
if (oct < IPmax || (*cur == '.' && cur++) || IS_ALPHA(*cur)) {
}
if ((host[0] != '[') && (oct < IPV4max || (*cur == '.' && cur++) ||
IS_ALPHA(*cur))) {
/* maybe host_name */
if (!IS_ALPHANUM(*cur))
return(4); /* e.g. http://xml.$oft */
@ -1300,9 +1347,11 @@ xmlParseURIServer(xmlURIPtr uri, const char **str) {
if (uri != NULL) {
if (uri->authority != NULL) xmlFree(uri->authority);
uri->authority = NULL;
if (host[0] != '[') { /* it's not an IPV6 addr */
if (uri->server != NULL) xmlFree(uri->server);
uri->server = xmlURIUnescapeString(host, cur - host, NULL);
}
}
/*
* finish by checking for a port presence.
*/

View File

@ -805,6 +805,7 @@ xmlFreeProp
xmlFreePropList
xmlFreeRMutex
xmlFreeRefTable
xmlFreeStreamCtxt
xmlFreeTextReader
xmlFreeTextWriter
xmlFreeURI
@ -1296,6 +1297,7 @@ xmlParserPrintFileInfo
xmlParserValidityError
xmlParserValidityWarning
xmlParserWarning
xmlPatternGetStreamCtxt
xmlPatternMatch
xmlPatterncompile
xmlPedanticParserDefault
@ -1695,6 +1697,8 @@ xmlStrcat
xmlStrchr
xmlStrcmp
xmlStrdup
xmlStreamPop
xmlStreamPush
xmlStringCurrentChar
xmlStringDecodeEntities
xmlStringGetNodeList