regenerated Daniel
* doc/* testapi.c: regenerated
Daniel
svn path=/trunk/; revision=3786
diff --git a/ChangeLog b/ChangeLog
index 2fe8f68..73b017b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sat Aug 30 10:18:13 CEST 2008 Daniel Veillard <daniel@veillard.com>
+
+ * doc/* testapi.c: regenerated
+
Fri Aug 29 21:53:12 CEST 2008 Daniel Veillard <daniel@veillard.com>
* doc/examples/reader3.c: patch from Robert Schwebel , allows to
diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html
index b0b80aa..633240e 100644
--- a/doc/APIchunk17.html
+++ b/doc/APIchunk17.html
@@ -202,6 +202,7 @@
<a href="html/libxml-parserInternals.html#nodePush">nodePush</a><br />
<a href="html/libxml-parser.html#xmlByteConsumed">xmlByteConsumed</a><br />
<a href="html/libxml-parser.html#xmlParserFindNodeInfoIndex">xmlParserFindNodeInfoIndex</a><br />
+<a href="html/libxml-parserInternals.html#xmlPushInput">xmlPushInput</a><br />
<a href="html/libxml-xmlstring.html#xmlStrsub">xmlStrsub</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderByteConsumed">xmlTextReaderByteConsumed</a><br />
<a href="html/libxml-xmlreader.html#xmlTextReaderGetAttributeNo">xmlTextReaderGetAttributeNo</a><br />
diff --git a/doc/APIfiles.html b/doc/APIfiles.html
index 3bbc164..4dfc3b7 100644
--- a/doc/APIfiles.html
+++ b/doc/APIfiles.html
@@ -1848,6 +1848,7 @@
<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_MODEL">XML_DTD_CONTENT_MODEL</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_NOT_DETERMINIST">XML_DTD_CONTENT_NOT_DETERMINIST</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_DIFFERENT_PREFIX">XML_DTD_DIFFERENT_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_DUP_TOKEN">XML_DTD_DUP_TOKEN</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_DEFAULT_NAMESPACE">XML_DTD_ELEM_DEFAULT_NAMESPACE</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_NAMESPACE">XML_DTD_ELEM_NAMESPACE</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_REDEFINED">XML_DTD_ELEM_REDEFINED</a><br />
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html
index 7963ef1..ab0c8b6 100644
--- a/doc/APIsymbols.html
+++ b/doc/APIsymbols.html
@@ -257,6 +257,7 @@
<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_MODEL">XML_DTD_CONTENT_MODEL</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_CONTENT_NOT_DETERMINIST">XML_DTD_CONTENT_NOT_DETERMINIST</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_DIFFERENT_PREFIX">XML_DTD_DIFFERENT_PREFIX</a><br />
+<a href="html/libxml-xmlerror.html#XML_DTD_DUP_TOKEN">XML_DTD_DUP_TOKEN</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_DEFAULT_NAMESPACE">XML_DTD_ELEM_DEFAULT_NAMESPACE</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_NAMESPACE">XML_DTD_ELEM_NAMESPACE</a><br />
<a href="html/libxml-xmlerror.html#XML_DTD_ELEM_REDEFINED">XML_DTD_ELEM_REDEFINED</a><br />
diff --git a/doc/apibuild.py b/doc/apibuild.py
index 505a0bc..3c38061 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -51,6 +51,7 @@
"tst.c": "not part of the library",
"test.c": "not part of the library",
"testdso.c": "test for dynamid shared libraries",
+ "testrecurse.c": "test for entities recursions",
}
ignored_words = {
diff --git a/doc/devhelp/libxml2-parserInternals.html b/doc/devhelp/libxml2-parserInternals.html
index 1458427..cdae32e 100644
--- a/doc/devhelp/libxml2-parserInternals.html
+++ b/doc/devhelp/libxml2-parserInternals.html
@@ -139,7 +139,7 @@
<a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> <a href="#inputPop">inputPop</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> <a href="#xmlPopInput">xmlPopInput</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParsePubidLiteral">xmlParsePubidLiteral</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
-void <a href="#xmlPushInput">xmlPushInput</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input);
+int <a href="#xmlPushInput">xmlPushInput</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseEntityValue">xmlParseEntityValue</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> ** orig);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlDecodeEntities">xmlDecodeEntities</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> int len, <br/> int what, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end2, <br/> <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> end3);
<a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlParseVersionNum">xmlParseVersionNum</a> (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt);
@@ -316,7 +316,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="inputPush"/>inputPush ()</h3><pre class="programlisting">int inputPush (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> value)<br/>
</pre><p>Pushes a new parser input on top of the input stack</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the parser input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of error, the index in the stack otherwise</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the parser input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="namePop"/>namePop ()</h3><pre class="programlisting">const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * namePop (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
</pre><p>Pops the top element name from the name stack</p>
@@ -332,7 +332,7 @@
<hr/>
<div class="refsect2" lang="en"><h3><a name="nodePush"/>nodePush ()</h3><pre class="programlisting">int nodePush (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlNodePtr">xmlNodePtr</a> value)<br/>
</pre><p>Pushes a new element node on top of the node stack</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of error, the index in the stack otherwise</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlCheckLanguageID"/>xmlCheckLanguageID ()</h3><pre class="programlisting">int xmlCheckLanguageID (const <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * lang)<br/>
</pre><p>Checks that the value conforms to the LanguageID production: NOTE: this is somewhat deprecated, those productions were removed from the XML Second edition. [33] LanguageID ::= Langcode ('-' Subcode)* [34] Langcode ::= ISO639Code | IanaCode | UserCode [35] ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= ('i' | 'I') '-' ([a-z] | [A-Z])+ [37] UserCode ::= ('x' | 'X') '-' ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+</p>
@@ -618,9 +618,9 @@
</pre><p>xmlPopInput: the current input pointed by ctxt->input came to an end pop it and return the next char.</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> in the parser context</td></tr></tbody></table></div></div>
<hr/>
- <div class="refsect2" lang="en"><h3><a name="xmlPushInput"/>xmlPushInput ()</h3><pre class="programlisting">void xmlPushInput (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br/>
+ <div class="refsect2" lang="en"><h3><a name="xmlPushInput"/>xmlPushInput ()</h3><pre class="programlisting">int xmlPushInput (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br/> <a href="libxml2-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br/>
</pre><p>xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).</p>
-<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an XML parser input fragment (entity, XML fragment ...).</td></tr></tbody></table></div></div>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an XML parser input fragment (entity, XML fragment ...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error or the index in the input stack</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="xmlScanName"/>xmlScanName ()</h3><pre class="programlisting"><a href="libxml2-xmlstring.html#xmlChar">xmlChar</a> * xmlScanName (<a href="libxml2-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br/>
</pre><p>Trickery: parse an XML name but without consuming the input flow Needed for rollback cases. Used only when parsing entities references. TODO: seems deprecated now, only used in the default part of <a href="libxml2-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a> [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (S Name)*</p>
diff --git a/doc/devhelp/libxml2-tree.html b/doc/devhelp/libxml2-tree.html
index f822935..162c1ed 100644
--- a/doc/devhelp/libxml2-tree.html
+++ b/doc/devhelp/libxml2-tree.html
@@ -774,6 +774,7 @@
<a href="libxml2-xmlerror.html#xmlError">xmlError</a> lastError
<a href="libxml2-parser.html#xmlParserMode">xmlParserMode</a> parseMode : the parser mode
unsigned long nbentities : number of entities references
+ unsigned long sizeentities : size of parsed entities
} xmlParserCtxt;
</pre><p/>
</div>
diff --git a/doc/devhelp/libxml2-xmlerror.html b/doc/devhelp/libxml2-xmlerror.html
index 95b6ca8..cf445dd 100644
--- a/doc/devhelp/libxml2-xmlerror.html
+++ b/doc/devhelp/libxml2-xmlerror.html
@@ -296,6 +296,7 @@
<a name="XML_DTD_STANDALONE_DEFAULTED">XML_DTD_STANDALONE_DEFAULTED</a> = 538 /* 538 */
<a name="XML_DTD_XMLID_VALUE">XML_DTD_XMLID_VALUE</a> = 539 /* 539 */
<a name="XML_DTD_XMLID_TYPE">XML_DTD_XMLID_TYPE</a> = 540 /* 540 */
+ <a name="XML_DTD_DUP_TOKEN">XML_DTD_DUP_TOKEN</a> = 541 /* 541 */
<a name="XML_HTML_STRUCURE_ERROR">XML_HTML_STRUCURE_ERROR</a> = 800
<a name="XML_HTML_UNKNOWN_TAG">XML_HTML_UNKNOWN_TAG</a> = 801 /* 801 */
<a name="XML_RNGP_ANYNAME_ATTR_ANCESTOR">XML_RNGP_ANYNAME_ATTR_ANCESTOR</a> = 1000
diff --git a/doc/devhelp/libxml2.devhelp b/doc/devhelp/libxml2.devhelp
index 880f125..fcb510a 100644
--- a/doc/devhelp/libxml2.devhelp
+++ b/doc/devhelp/libxml2.devhelp
@@ -442,6 +442,7 @@
<function name="XML_DTD_CONTENT_MODEL" link="libxml2-xmlerror.html#XML_DTD_CONTENT_MODEL"/>
<function name="XML_DTD_CONTENT_NOT_DETERMINIST" link="libxml2-xmlerror.html#XML_DTD_CONTENT_NOT_DETERMINIST"/>
<function name="XML_DTD_DIFFERENT_PREFIX" link="libxml2-xmlerror.html#XML_DTD_DIFFERENT_PREFIX"/>
+ <function name="XML_DTD_DUP_TOKEN" link="libxml2-xmlerror.html#XML_DTD_DUP_TOKEN"/>
<function name="XML_DTD_ELEM_DEFAULT_NAMESPACE" link="libxml2-xmlerror.html#XML_DTD_ELEM_DEFAULT_NAMESPACE"/>
<function name="XML_DTD_ELEM_NAMESPACE" link="libxml2-xmlerror.html#XML_DTD_ELEM_NAMESPACE"/>
<function name="XML_DTD_ELEM_REDEFINED" link="libxml2-xmlerror.html#XML_DTD_ELEM_REDEFINED"/>
diff --git a/doc/examples/examples.xml b/doc/examples/examples.xml
index 5f73094..a237a0e 100644
--- a/doc/examples/examples.xml
+++ b/doc/examples/examples.xml
@@ -280,13 +280,13 @@
<include><libxml/xmlreader.h></include>
</includes>
<uses>
- <typedef line='31' file='xmlreader' name='xmlTextReaderPtr'/>
- <function line='65' file='xmlreader' name='xmlFreeTextReader'/>
- <function line='95' file='tree' name='xmlDocDump'/>
- <function line='51' file='xmlreader' name='xmlTextReaderRead'/>
- <function line='61' file='xmlreader' name='xmlTextReaderCurrentDoc'/>
- <function line='42' file='xmlreader' name='xmlTextReaderPreservePattern'/>
- <function line='37' file='xmlreader' name='xmlReaderForFile'/>
+ <typedef line='32' file='xmlreader' name='xmlTextReaderPtr'/>
+ <function line='66' file='xmlreader' name='xmlFreeTextReader'/>
+ <function line='96' file='tree' name='xmlDocDump'/>
+ <function line='52' file='xmlreader' name='xmlTextReaderRead'/>
+ <function line='62' file='xmlreader' name='xmlTextReaderCurrentDoc'/>
+ <function line='43' file='xmlreader' name='xmlTextReaderPreservePattern'/>
+ <function line='38' file='xmlreader' name='xmlReaderForFile'/>
</uses>
</example>
<example filename='io1.c'>
diff --git a/doc/html/libxml-parserInternals.html b/doc/html/libxml-parserInternals.html
index d26d52f..ad1fb8e 100644
--- a/doc/html/libxml-parserInternals.html
+++ b/doc/html/libxml-parserInternals.html
@@ -92,7 +92,7 @@
<pre class="programlisting">void <a href="#xmlParserHandleReference">xmlParserHandleReference</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
<pre class="programlisting">void <a href="#xmlParserInputShrink">xmlParserInputShrink</a> (<a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> in)</pre>
<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> <a href="#xmlPopInput">xmlPopInput</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
-<pre class="programlisting">void <a href="#xmlPushInput">xmlPushInput</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)</pre>
+<pre class="programlisting">int <a href="#xmlPushInput">xmlPushInput</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)</pre>
<pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * <a href="#xmlScanName">xmlScanName</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
<pre class="programlisting">void <a href="#xmlSetEntityReferenceFunc">xmlSetEntityReferenceFunc</a> (<a href="libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a> func)</pre>
<pre class="programlisting">int <a href="#xmlSkipBlankChars">xmlSkipBlankChars</a> (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)</pre>
@@ -140,7 +140,7 @@
</pre><p>Pops the top parser input from the input stack</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the input just removed</td></tr></tbody></table></div><h3><a name="inputPush" id="inputPush"></a>Function: inputPush</h3><pre class="programlisting">int inputPush (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> value)<br />
</pre><p>Pushes a new parser input on top of the input stack</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the parser input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of error, the index in the stack otherwise</td></tr></tbody></table></div><h3><a name="namePop" id="namePop"></a>Function: namePop</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namePop (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the parser input</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div><h3><a name="namePop" id="namePop"></a>Function: namePop</h3><pre class="programlisting">const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * namePop (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
</pre><p>Pops the top element name from the name stack</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the name just removed</td></tr></tbody></table></div><h3><a name="namePush" id="namePush"></a>Function: namePush</h3><pre class="programlisting">int namePush (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * value)<br />
</pre><p>Pushes a new element name on top of the name stack</p>
@@ -148,7 +148,7 @@
</pre><p>Pops the top element node from the node stack</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the node just removed</td></tr></tbody></table></div><h3><a name="nodePush" id="nodePush"></a>Function: nodePush</h3><pre class="programlisting">int nodePush (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlNodePtr">xmlNodePtr</a> value)<br />
</pre><p>Pushes a new element node on top of the node stack</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of error, the index in the stack otherwise</td></tr></tbody></table></div><h3><a name="xmlCheckLanguageID" id="xmlCheckLanguageID"></a>Function: xmlCheckLanguageID</h3><pre class="programlisting">int xmlCheckLanguageID (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * lang)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>the element node</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, the index in the stack otherwise</td></tr></tbody></table></div><h3><a name="xmlCheckLanguageID" id="xmlCheckLanguageID"></a>Function: xmlCheckLanguageID</h3><pre class="programlisting">int xmlCheckLanguageID (const <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * lang)<br />
</pre><p>Checks that the value conforms to the LanguageID production: NOTE: this is somewhat deprecated, those productions were removed from the XML Second edition. [33] LanguageID ::= Langcode ('-' Subcode)* [34] Langcode ::= ISO639Code | IanaCode | UserCode [35] ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z]) [36] IanaCode ::= ('i' | 'I') '-' ([a-z] | [A-Z])+ [37] UserCode ::= ('x' | 'X') '-' ([a-z] | [A-Z])+ [38] Subcode ::= ([a-z] | [A-Z])+</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>lang</tt></i>:</span></td><td>pointer to the string value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if correct 0 otherwise</td></tr></tbody></table></div><h3><a name="xmlCopyChar" id="xmlCopyChar"></a>Function: xmlCopyChar</h3><pre class="programlisting">int xmlCopyChar (int len, <br /> <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * out, <br /> int val)<br />
</pre><p>append the char value in the array</p>
@@ -293,9 +293,9 @@
</pre><p>This function removes used input for the parser.</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>in</tt></i>:</span></td><td>an XML parser input</td></tr></tbody></table></div><h3><a name="xmlPopInput" id="xmlPopInput"></a>Function: xmlPopInput</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> xmlPopInput (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
</pre><p>xmlPopInput: the current input pointed by ctxt->input came to an end pop it and return the next char.</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> in the parser context</td></tr></tbody></table></div><h3><a name="xmlPushInput" id="xmlPushInput"></a>Function: xmlPushInput</h3><pre class="programlisting">void xmlPushInput (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a href="libxml-xmlstring.html#xmlChar">xmlChar</a> in the parser context</td></tr></tbody></table></div><h3><a name="xmlPushInput" id="xmlPushInput"></a>Function: xmlPushInput</h3><pre class="programlisting">int xmlPushInput (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt, <br /> <a href="libxml-tree.html#xmlParserInputPtr">xmlParserInputPtr</a> input)<br />
</pre><p>xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).</p>
-<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an XML parser input fragment (entity, XML fragment ...).</td></tr></tbody></table></div><h3><a name="xmlScanName" id="xmlScanName"></a>Function: xmlScanName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlScanName (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
+<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>input</tt></i>:</span></td><td>an XML parser input fragment (entity, XML fragment ...).</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error or the index in the input stack</td></tr></tbody></table></div><h3><a name="xmlScanName" id="xmlScanName"></a>Function: xmlScanName</h3><pre class="programlisting"><a href="libxml-xmlstring.html#xmlChar">xmlChar</a> * xmlScanName (<a href="libxml-tree.html#xmlParserCtxtPtr">xmlParserCtxtPtr</a> ctxt)<br />
</pre><p>Trickery: parse an XML name but without consuming the input flow Needed for rollback cases. Used only when parsing entities references. TODO: seems deprecated now, only used in the default part of <a href="libxml-parserInternals.html#xmlParserHandleReference">xmlParserHandleReference</a> [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | CombiningChar | Extender [5] Name ::= (Letter | '_' | ':') (NameChar)* [6] Names ::= Name (S Name)*</p>
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XML parser context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the Name parsed or NULL</td></tr></tbody></table></div><h3><a name="xmlSetEntityReferenceFunc" id="xmlSetEntityReferenceFunc"></a>Function: xmlSetEntityReferenceFunc</h3><pre class="programlisting">void xmlSetEntityReferenceFunc (<a href="libxml-parserInternals.html#xmlEntityReferenceFunc">xmlEntityReferenceFunc</a> func)<br />
</pre><p>Set the function to call call back when a xml <a href="libxml-SAX.html#reference">reference</a> has been made</p>
diff --git a/doc/html/libxml-tree.html b/doc/html/libxml-tree.html
index 3b69077..9e85690 100644
--- a/doc/html/libxml-tree.html
+++ b/doc/html/libxml-tree.html
@@ -556,6 +556,7 @@
<a href="libxml-xmlerror.html#xmlError">xmlError</a> lastError
<a href="libxml-parser.html#xmlParserMode">xmlParserMode</a> parseMode : the parser mode
unsigned long nbentities : number of entities references
+ unsigned long sizeentities : size of parsed entities
}</pre><h3><a name="xmlParserInput" id="xmlParserInput">Structure xmlParserInput</a></h3><pre class="programlisting">Structure xmlParserInput<br />struct _xmlParserInput {
<a href="libxml-tree.html#xmlParserInputBufferPtr">xmlParserInputBufferPtr</a> buf : UTF-8 encoded buffer
const char * filename : The file analyzed, if any
diff --git a/doc/html/libxml-xmlerror.html b/doc/html/libxml-xmlerror.html
index 8cdd73a..74af5ed 100644
--- a/doc/html/libxml-xmlerror.html
+++ b/doc/html/libxml-xmlerror.html
@@ -246,6 +246,7 @@
<a name="XML_DTD_STANDALONE_DEFAULTED" id="XML_DTD_STANDALONE_DEFAULTED">XML_DTD_STANDALONE_DEFAULTED</a> = 538 : 538
<a name="XML_DTD_XMLID_VALUE" id="XML_DTD_XMLID_VALUE">XML_DTD_XMLID_VALUE</a> = 539 : 539
<a name="XML_DTD_XMLID_TYPE" id="XML_DTD_XMLID_TYPE">XML_DTD_XMLID_TYPE</a> = 540 : 540
+ <a name="XML_DTD_DUP_TOKEN" id="XML_DTD_DUP_TOKEN">XML_DTD_DUP_TOKEN</a> = 541 : 541
<a name="XML_HTML_STRUCURE_ERROR" id="XML_HTML_STRUCURE_ERROR">XML_HTML_STRUCURE_ERROR</a> = 800
<a name="XML_HTML_UNKNOWN_TAG" id="XML_HTML_UNKNOWN_TAG">XML_HTML_UNKNOWN_TAG</a> = 801 : 801
<a name="XML_RNGP_ANYNAME_ATTR_ANCESTOR" id="XML_RNGP_ANYNAME_ATTR_ANCESTOR">XML_RNGP_ANYNAME_ATTR_ANCESTOR</a> = 1000
diff --git a/doc/libxml2-api.xml b/doc/libxml2-api.xml
index 81974e7..14526bb 100644
--- a/doc/libxml2-api.xml
+++ b/doc/libxml2-api.xml
@@ -2035,7 +2035,7 @@
<exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_1_1' type='enum'/>
<exports symbol='XML_SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD' type='enum'/>
<exports symbol='XML_ERR_PEREF_AT_EOF' type='enum'/>
- <exports symbol='XML_IO_LOAD_ERROR' type='enum'/>
+ <exports symbol='XML_DTD_NOT_EMPTY' type='enum'/>
<exports symbol='XML_RNGP_PAT_START_LIST' type='enum'/>
<exports symbol='XML_ERR_LT_REQUIRED' type='enum'/>
<exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_2' type='enum'/>
@@ -2536,6 +2536,7 @@
<exports symbol='XML_SCHEMAP_RECURSIVE' type='enum'/>
<exports symbol='XML_HTTP_URL_SYNTAX' type='enum'/>
<exports symbol='XML_SCHEMAP_GROUP_NONAME_NOREF' type='enum'/>
+ <exports symbol='XML_DTD_DUP_TOKEN' type='enum'/>
<exports symbol='XML_SCHEMAP_COS_ST_RESTRICTS_2_3_2_4' type='enum'/>
<exports symbol='XML_SCHEMAP_S4S_ELEM_MISSING' type='enum'/>
<exports symbol='XML_SCHEMAV_CVC_ELT_5_1_1' type='enum'/>
@@ -2572,7 +2573,7 @@
<exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_1' type='enum'/>
<exports symbol='XML_SCHEMAV_CVC_COMPLEX_TYPE_5_1' type='enum'/>
<exports symbol='XML_SCHEMAP_DERIVATION_OK_RESTRICTION_3' type='enum'/>
- <exports symbol='XML_DTD_NOT_EMPTY' type='enum'/>
+ <exports symbol='XML_IO_LOAD_ERROR' type='enum'/>
<exports symbol='XML_CHECK_NOT_ENTITY_DECL' type='enum'/>
<exports symbol='XML_RNGP_CREATE_FAILURE' type='enum'/>
<exports symbol='XML_IO_EBADF' type='enum'/>
@@ -4704,6 +4705,7 @@
<enum name='XML_DTD_CONTENT_MODEL' file='xmlerror' value='504' type='xmlParserErrors' info='504'/>
<enum name='XML_DTD_CONTENT_NOT_DETERMINIST' file='xmlerror' value='505' type='xmlParserErrors' info='505'/>
<enum name='XML_DTD_DIFFERENT_PREFIX' file='xmlerror' value='506' type='xmlParserErrors' info='506'/>
+ <enum name='XML_DTD_DUP_TOKEN' file='xmlerror' value='541' type='xmlParserErrors' info='541'/>
<enum name='XML_DTD_ELEM_DEFAULT_NAMESPACE' file='xmlerror' value='507' type='xmlParserErrors' info='507'/>
<enum name='XML_DTD_ELEM_NAMESPACE' file='xmlerror' value='508' type='xmlParserErrors' info='508'/>
<enum name='XML_DTD_ELEM_REDEFINED' file='xmlerror' value='509' type='xmlParserErrors' info='509'/>
@@ -6295,6 +6297,7 @@
<field name='lastError' type='xmlError' info=''/>
<field name='parseMode' type='xmlParserMode' info=' the parser mode'/>
<field name='nbentities' type='unsigned long' info=' number of entities references'/>
+ <field name='sizeentities' type='unsigned long' info=' size of parsed entities'/>
</struct>
<typedef name='xmlParserCtxtPtr' file='tree' type='xmlParserCtxt *'/>
<typedef name='xmlParserErrors' file='xmlerror' type='enum'/>
@@ -7767,7 +7770,7 @@
</function>
<function name='inputPush' file='parserInternals' module='parser'>
<info>Pushes a new parser input on top of the input stack</info>
- <return type='int' info='0 in case of error, the index in the stack otherwise'/>
+ <return type='int' info='-1 in case of error, the index in the stack otherwise'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='value' type='xmlParserInputPtr' info='the parser input'/>
</function>
@@ -7833,7 +7836,7 @@
</function>
<function name='nodePush' file='parserInternals' module='parser'>
<info>Pushes a new element node on top of the node stack</info>
- <return type='int' info='0 in case of error, the index in the stack otherwise'/>
+ <return type='int' info='-1 in case of error, the index in the stack otherwise'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='value' type='xmlNodePtr' info='the element node'/>
</function>
@@ -12371,7 +12374,7 @@
</function>
<function name='xmlPushInput' file='parserInternals' module='parser'>
<info>xmlPushInput: switch to a new input stream which is stacked on top of the previous one(s).</info>
- <return type='void'/>
+ <return type='int' info='-1 in case of error or the index in the input stack'/>
<arg name='ctxt' type='xmlParserCtxtPtr' info='an XML parser context'/>
<arg name='input' type='xmlParserInputPtr' info='an XML parser input fragment (entity, XML fragment ...).'/>
</function>
diff --git a/doc/libxml2-refs.xml b/doc/libxml2-refs.xml
index a8b58f7..170e1b1 100644
--- a/doc/libxml2-refs.xml
+++ b/doc/libxml2-refs.xml
@@ -251,6 +251,7 @@
<reference name='XML_DTD_CONTENT_MODEL' href='html/libxml-xmlerror.html#XML_DTD_CONTENT_MODEL'/>
<reference name='XML_DTD_CONTENT_NOT_DETERMINIST' href='html/libxml-xmlerror.html#XML_DTD_CONTENT_NOT_DETERMINIST'/>
<reference name='XML_DTD_DIFFERENT_PREFIX' href='html/libxml-xmlerror.html#XML_DTD_DIFFERENT_PREFIX'/>
+ <reference name='XML_DTD_DUP_TOKEN' href='html/libxml-xmlerror.html#XML_DTD_DUP_TOKEN'/>
<reference name='XML_DTD_ELEM_DEFAULT_NAMESPACE' href='html/libxml-xmlerror.html#XML_DTD_ELEM_DEFAULT_NAMESPACE'/>
<reference name='XML_DTD_ELEM_NAMESPACE' href='html/libxml-xmlerror.html#XML_DTD_ELEM_NAMESPACE'/>
<reference name='XML_DTD_ELEM_REDEFINED' href='html/libxml-xmlerror.html#XML_DTD_ELEM_REDEFINED'/>
@@ -3786,6 +3787,7 @@
<ref name='XML_DTD_CONTENT_MODEL'/>
<ref name='XML_DTD_CONTENT_NOT_DETERMINIST'/>
<ref name='XML_DTD_DIFFERENT_PREFIX'/>
+ <ref name='XML_DTD_DUP_TOKEN'/>
<ref name='XML_DTD_ELEM_DEFAULT_NAMESPACE'/>
<ref name='XML_DTD_ELEM_NAMESPACE'/>
<ref name='XML_DTD_ELEM_REDEFINED'/>
@@ -12449,6 +12451,7 @@
<ref name='XML_DTD_CONTENT_MODEL'/>
<ref name='XML_DTD_CONTENT_NOT_DETERMINIST'/>
<ref name='XML_DTD_DIFFERENT_PREFIX'/>
+ <ref name='XML_DTD_DUP_TOKEN'/>
<ref name='XML_DTD_ELEM_DEFAULT_NAMESPACE'/>
<ref name='XML_DTD_ELEM_NAMESPACE'/>
<ref name='XML_DTD_ELEM_REDEFINED'/>
@@ -23557,6 +23560,7 @@
<ref name='nodePush'/>
<ref name='xmlByteConsumed'/>
<ref name='xmlParserFindNodeInfoIndex'/>
+ <ref name='xmlPushInput'/>
<ref name='xmlStrsub'/>
<ref name='xmlTextReaderByteConsumed'/>
<ref name='xmlTextReaderGetAttributeNo'/>
diff --git a/testapi.c b/testapi.c
index 32db676..befcb3d 100644
--- a/testapi.c
+++ b/testapi.c
@@ -16359,6 +16359,7 @@
int test_ret = 0;
int mem_base;
+ int ret_val;
xmlParserCtxtPtr ctxt; /* an XML parser context */
int n_ctxt;
xmlParserInputPtr input; /* an XML parser input fragment (entity, XML fragment ...). */
@@ -16370,7 +16371,8 @@
ctxt = gen_xmlParserCtxtPtr(n_ctxt, 0);
input = gen_xmlParserInputPtr(n_input, 1);
- xmlPushInput(ctxt, input);
+ ret_val = xmlPushInput(ctxt, input);
+ desret_int(ret_val);
call_tests++;
des_xmlParserCtxtPtr(n_ctxt, ctxt, 0);
des_xmlParserInputPtr(n_input, input, 1);