Final changes to make mxmldoc generate valid HTML 4.0 with no errors.

This commit is contained in:
Michael R Sweet 2005-11-30 15:54:16 +00:00
parent d3598ab24c
commit dee5ea6bc7
4 changed files with 146 additions and 141 deletions

View File

@ -1,12 +1,14 @@
CHANGES - 10/18/2005
CHANGES - 11/30/2005
--------------------
CHANGES IN Mini-XML 2.3
- Added two exceptions to the LGPL to support static
linking of applications against Mini-XML.
- The mxmldoc program now supports "@since version@" and
"@deprecated@" comments.
- The mxmldoc program now generates correct HTML 4.0
output (previously it generated invalid XHTML...)
- The mxmldoc program now supports "@deprecated@,
"@private@", and "@since version@" comments.
- Fixed function and enumeraion type bugs in mxmldoc.
- Fixed XML schema for mxmldoc.
- The mxmldoc program now supports --title and --intro

View File

@ -1,9 +1,9 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<title>Documentation</title>
<meta name='creator' content='Mini-XML v2.3'>
<style><!--
<style type='text/css'><!--
h1, h2, h3, p { font-family: sans-serif; text-align: justify; }
tt, pre a:link, pre a:visited, tt a:link, tt a:visited { font-weight: bold; color: #7f0000; }
pre { font-weight: bold; color: #7f0000; margin-left: 2em; }
@ -14,14 +14,14 @@
<body>
<h2>Contents</h2>
<ul>
<li><a href='#_enumerations'>Enumerations</a></li>
<li><a href='#_functions'>Functions</a></li>
<li><a href='#_structures'>Structures</a></li>
<li><a href='#_types'>Types</a></li>
<li><a href='#_unions'>Unions</a></li>
<li><a href='#ENUMERATIONS'>Enumerations</a></li>
<li><a href='#FUNCTIONS'>Functions</a></li>
<li><a href='#STRUCTURES'>Structures</a></li>
<li><a href='#TYPES'>Types</a></li>
<li><a href='#UNIONS'>Unions</a></li>
</ul>
<!-- NEW PAGE -->
<h2><a name='_enumerations'>Enumerations</a></h2>
<h2><a name='ENUMERATIONS'>Enumerations</a></h2>
<ul>
<li><a href='#mxml_type_e'><tt>mxml_type_e</tt></a> </li>
</ul>
@ -31,7 +31,7 @@
<h4>Description</h4>
<p>The XML node type.</p>
<h4>Values</h4>
<p class='table'><table align='center' border='1' width='80%'>
<div class='table'><table align='center' border='1' width='80%'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>MXML_CUSTOM</tt> <span class='info'>&nbsp;Mini-XML 2.1&nbsp;</span></td><td>Custom data </td></tr>
@ -41,9 +41,9 @@
<tr><td><tt>MXML_OPAQUE</tt> </td><td>Opaque string</td></tr>
<tr><td><tt>MXML_REAL</tt> </td><td>Real value</td></tr>
<tr><td><tt>MXML_TEXT</tt> </td><td>Text fragment</td></tr>
</tbody></table></p>
</tbody></table></div>
<!-- NEW PAGE -->
<h2><a name='_functions'>Functions</a></h2>
<h2><a name='FUNCTIONS'>Functions</a></h2>
<ul>
<li><a href='#mxmlAdd'><tt>mxmlAdd()</tt></a> </li>
<li><a href='#mxmlDelete'><tt>mxmlDelete()</tt></a> </li>
@ -110,14 +110,14 @@ mxmlAdd(
<a href='#mxml_node_t'>mxml_node_t</a> * node);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>parent</tt></td><td>Parent node</td></tr>
<tr><td><tt>where</tt></td><td>Where to add, MXML_ADD_BEFORE or MXML_ADD_AFTER</td></tr>
<tr><td><tt>child</tt></td><td>Child node for where or MXML_ADD_TO_PARENT</td></tr>
<tr><td><tt>node</tt></td><td>Node to add</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Nothing.</p>
<!-- NEW PAGE -->
@ -135,11 +135,11 @@ mxmlDelete(
<a href='#mxml_node_t'>mxml_node_t</a> * node);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to delete</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Nothing.</p>
<!-- NEW PAGE -->
@ -158,12 +158,12 @@ mxmlElementGetAttr(
const char * name);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Element node</td></tr>
<tr><td><tt>name</tt></td><td>Name of attribute</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Attribute value or NULL</p>
<!-- NEW PAGE -->
@ -185,13 +185,13 @@ mxmlElementSetAttr(
const char * value);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Element node</td></tr>
<tr><td><tt>name</tt></td><td>Name of attribute</td></tr>
<tr><td><tt>value</tt></td><td>Attribute value</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Nothing.</p>
<!-- NEW PAGE -->
@ -222,11 +222,11 @@ mxmlEntityGetName(
int val);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>val</tt></td><td>Character value</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Entity name or NULL</p>
<!-- NEW PAGE -->
@ -244,11 +244,11 @@ mxmlEntityGetValue(
const char * name);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>name</tt></td><td>Entity name</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Character value or -1 on error</p>
<!-- NEW PAGE -->
@ -291,7 +291,7 @@ mxmlFindElement(
int descend);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Current node</td></tr>
@ -300,7 +300,7 @@ mxmlFindElement(
<tr><td><tt>attr</tt></td><td>Attribute name, or NULL for none</td></tr>
<tr><td><tt>value</tt></td><td>Attribute value, or NULL for any</td></tr>
<tr><td><tt>descend</tt></td><td>Descend into tree - MXML_DESCEND, MXML_NO_DESCEND, or MXML_DESCEND_FIRST</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Element node or NULL</p>
<!-- NEW PAGE -->
@ -315,11 +315,11 @@ mxmlIndexDelete(
<a href='#mxml_index_t'>mxml_index_t</a> * ind);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>ind</tt></td><td>Index to delete</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Nothing.</p>
<!-- NEW PAGE -->
@ -336,11 +336,11 @@ mxmlIndexEnum(
<a href='#mxml_index_t'>mxml_index_t</a> * ind);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>ind</tt></td><td>Index to enumerate</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Next node or NULL if there is none</p>
<!-- NEW PAGE -->
@ -362,13 +362,13 @@ mxmlIndexFind(
const char * value);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>ind</tt></td><td>Index to search</td></tr>
<tr><td><tt>element</tt></td><td>Element name to find, if any</td></tr>
<tr><td><tt>value</tt></td><td>Attribute value, if any</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Node or NULL if none found</p>
<!-- NEW PAGE -->
@ -391,13 +391,13 @@ mxmlIndexNew(
const char * attr);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>XML node tree</td></tr>
<tr><td><tt>element</tt></td><td>Element to index or NULL for all</td></tr>
<tr><td><tt>attr</tt></td><td>Attribute to index or NULL for none</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>New index</p>
<!-- NEW PAGE -->
@ -416,11 +416,11 @@ mxmlIndexReset(
<a href='#mxml_index_t'>mxml_index_t</a> * ind);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>ind</tt></td><td>Index to reset</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>First node or NULL if there is none</p>
<!-- NEW PAGE -->
@ -447,12 +447,12 @@ mxmlLoadFd(
int fd);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>top</tt></td><td>Top node</td></tr>
<tr><td><tt>fd</tt></td><td>File descriptor to read from</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>First node or NULL if the file could not be read.</p>
<!-- NEW PAGE -->
@ -479,12 +479,12 @@ mxmlLoadFile(
FILE * fp);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>top</tt></td><td>Top node</td></tr>
<tr><td><tt>fp</tt></td><td>File to read from</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>First node or NULL if the file could not be read.</p>
<!-- NEW PAGE -->
@ -511,12 +511,12 @@ mxmlLoadString(
const char * s);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>top</tt></td><td>Top node</td></tr>
<tr><td><tt>s</tt></td><td>String to load</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>First node or NULL if the string has errors.</p>
<!-- NEW PAGE -->
@ -539,12 +539,12 @@ mxmlNewCDATA(
const char * data);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>parent</tt></td><td>Parent node or MXML_NO_PARENT</td></tr>
<tr><td><tt>data</tt></td><td>Data string</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>New node</p>
<!-- NEW PAGE -->
@ -567,12 +567,12 @@ mxmlNewCustom(
void * data);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>parent</tt></td><td>Parent node or MXML_NO_PARENT</td></tr>
<tr><td><tt>data</tt></td><td>Pointer to data</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>New node</p>
<!-- NEW PAGE -->
@ -592,12 +592,12 @@ mxmlNewElement(
const char * name);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>parent</tt></td><td>Parent node or MXML_NO_PARENT</td></tr>
<tr><td><tt>name</tt></td><td>Name of element</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>New node</p>
<!-- NEW PAGE -->
@ -617,12 +617,12 @@ mxmlNewInteger(
int integer);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>parent</tt></td><td>Parent node or MXML_NO_PARENT</td></tr>
<tr><td><tt>integer</tt></td><td>Integer value</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>New node</p>
<!-- NEW PAGE -->
@ -643,12 +643,12 @@ mxmlNewOpaque(
const char * opaque);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>parent</tt></td><td>Parent node or MXML_NO_PARENT</td></tr>
<tr><td><tt>opaque</tt></td><td>Opaque string</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>New node</p>
<!-- NEW PAGE -->
@ -668,12 +668,12 @@ mxmlNewReal(
double real);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>parent</tt></td><td>Parent node or MXML_NO_PARENT</td></tr>
<tr><td><tt>real</tt></td><td>Real number value</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>New node</p>
<!-- NEW PAGE -->
@ -696,13 +696,13 @@ mxmlNewText(
const char * string);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>parent</tt></td><td>Parent node or MXML_NO_PARENT</td></tr>
<tr><td><tt>whitespace</tt></td><td>1 = leading whitespace, 0 = no whitespace</td></tr>
<tr><td><tt>string</tt></td><td>String</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>New node</p>
<!-- NEW PAGE -->
@ -726,14 +726,14 @@ mxmlNewTextf(
...);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>parent</tt></td><td>Parent node or MXML_NO_PARENT</td></tr>
<tr><td><tt>whitespace</tt></td><td>1 = leading whitespace, 0 = no whitespace</td></tr>
<tr><td><tt>format</tt></td><td>Printf-style frmat string</td></tr>
<tr><td><tt>...</tt></td><td>Additional args as needed</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>New node</p>
<!-- NEW PAGE -->
@ -751,11 +751,11 @@ mxmlRemove(
<a href='#mxml_node_t'>mxml_node_t</a> * node);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to remove</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Nothing.</p>
<!-- NEW PAGE -->
@ -782,11 +782,11 @@ mxmlSaveAllocString(
<a href='#mxml_node_t'>mxml_node_t</a> * node);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to write</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Allocated string or NULL</p>
<!-- NEW PAGE -->
@ -808,12 +808,12 @@ mxmlSaveFd(
int fd);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to write</td></tr>
<tr><td><tt>fd</tt></td><td>File descriptor to write to</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on error.</p>
<!-- NEW PAGE -->
@ -835,12 +835,12 @@ mxmlSaveFile(
FILE * fp);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to write</td></tr>
<tr><td><tt>fp</tt></td><td>File to write to</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on error.</p>
<!-- NEW PAGE -->
@ -867,13 +867,13 @@ mxmlSaveString(
int bufsize);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to write</td></tr>
<tr><td><tt>buffer</tt></td><td>String buffer</td></tr>
<tr><td><tt>bufsize</tt></td><td>Size of string buffer</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Size of string</p>
<!-- NEW PAGE -->
@ -893,12 +893,12 @@ mxmlSetCDATA(
const char * data);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to set</td></tr>
<tr><td><tt>data</tt></td><td>New data string</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on failure</p>
<!-- NEW PAGE -->
@ -918,12 +918,12 @@ mxmlSetCustom(
void * data);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to set</td></tr>
<tr><td><tt>data</tt></td><td>New data pointer</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on failure</p>
<!-- NEW PAGE -->
@ -945,12 +945,12 @@ mxmlSetCustomHandlers(
<a href='#mxml_custom_save_cb_t'>mxml_custom_save_cb_t</a> save);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>load</tt></td><td>Load function</td></tr>
<tr><td><tt>save</tt></td><td>Save function</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Nothing.</p>
<!-- NEW PAGE -->
@ -968,12 +968,12 @@ mxmlSetElement(
const char * name);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to set</td></tr>
<tr><td><tt>name</tt></td><td>New name string</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on failure</p>
<!-- NEW PAGE -->
@ -1005,12 +1005,12 @@ mxmlSetInteger(
int integer);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to set</td></tr>
<tr><td><tt>integer</tt></td><td>Integer value</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on failure</p>
<!-- NEW PAGE -->
@ -1028,12 +1028,12 @@ mxmlSetOpaque(
const char * opaque);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to set</td></tr>
<tr><td><tt>opaque</tt></td><td>Opaque string</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on failure</p>
<!-- NEW PAGE -->
@ -1051,12 +1051,12 @@ mxmlSetReal(
double real);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to set</td></tr>
<tr><td><tt>real</tt></td><td>Real number value</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on failure</p>
<!-- NEW PAGE -->
@ -1075,13 +1075,13 @@ mxmlSetText(
const char * string);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to set</td></tr>
<tr><td><tt>whitespace</tt></td><td>1 = leading whitespace, 0 = no whitespace</td></tr>
<tr><td><tt>string</tt></td><td>String</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on failure</p>
<!-- NEW PAGE -->
@ -1101,14 +1101,14 @@ mxmlSetTextf(
...);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Node to set</td></tr>
<tr><td><tt>whitespace</tt></td><td>1 = leading whitespace, 0 = no whitespace</td></tr>
<tr><td><tt>format</tt></td><td>Printf-style format string</td></tr>
<tr><td><tt>...</tt></td><td>Additional arguments as needed</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>0 on success, -1 on failure</p>
<!-- NEW PAGE -->
@ -1129,13 +1129,13 @@ mxmlWalkNext(
int descend);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Current node</td></tr>
<tr><td><tt>top</tt></td><td>Top node</td></tr>
<tr><td><tt>descend</tt></td><td>Descend into tree - MXML_DESCEND, MXML_NO_DESCEND, or MXML_DESCEND_FIRST</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Next node or NULL</p>
<!-- NEW PAGE -->
@ -1156,17 +1156,17 @@ mxmlWalkPrev(
int descend);
</pre>
<h4>Arguments</h4>
<p class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' width='80%'>
<div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>node</tt></td><td>Current node</td></tr>
<tr><td><tt>top</tt></td><td>Top node</td></tr>
<tr><td><tt>descend</tt></td><td>Descend into tree - MXML_DESCEND, MXML_NO_DESCEND, or MXML_DESCEND_FIRST</td></tr>
</tbody></table></p>
</tbody></table></div>
<h4>Returns</h4>
<p>Previous node or NULL</p>
<!-- NEW PAGE -->
<h2><a name='_structures'>Structures</a></h2>
<h2><a name='STRUCTURES'>Structures</a></h2>
<ul>
<li><a href='#mxml_attr_s'><tt>mxml_attr_s</tt></a> </li>
<li><a href='#mxml_custom_s'><tt>mxml_custom_s</tt></a> <span class='info'>&nbsp;Mini-XML 2.1&nbsp;</span></li>
@ -1189,12 +1189,12 @@ struct mxml_attr_s
};
</pre>
<h4>Members</h4>
<p class='table'><table align='center' border='1' width='80%'>
<div class='table'><table align='center' border='1' width='80%'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>name</tt> </td><td>Attribute name</td></tr>
<tr><td><tt>value</tt> </td><td>Attribute value</td></tr>
</tbody></table></p>
</tbody></table></div>
<!-- NEW PAGE -->
<h3><a name='mxml_custom_s'>mxml_custom_s</a> <span class='info'>&nbsp;Mini-XML 2.1&nbsp;</span></h3>
<hr noshade>
@ -1208,11 +1208,11 @@ struct mxml_custom_s
};
</pre>
<h4>Members</h4>
<p class='table'><table align='center' border='1' width='80%'>
<div class='table'><table align='center' border='1' width='80%'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>data</tt> </td><td>Pointer to (allocated) custom data</td></tr>
</tbody></table></p>
</tbody></table></div>
<!-- NEW PAGE -->
<h3><a name='mxml_element_s'>mxml_element_s</a> </h3>
<hr noshade>
@ -1228,13 +1228,13 @@ struct mxml_element_s
};
</pre>
<h4>Members</h4>
<p class='table'><table align='center' border='1' width='80%'>
<div class='table'><table align='center' border='1' width='80%'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>attrs</tt> </td><td>Attributes</td></tr>
<tr><td><tt>name</tt> </td><td>Name of element</td></tr>
<tr><td><tt>num_attrs</tt> </td><td>Number of attributes</td></tr>
</tbody></table></p>
</tbody></table></div>
<!-- NEW PAGE -->
<h3><a name='mxml_index_s'>mxml_index_s</a> </h3>
<hr noshade>
@ -1252,7 +1252,7 @@ struct mxml_index_s
};
</pre>
<h4>Members</h4>
<p class='table'><table align='center' border='1' width='80%'>
<div class='table'><table align='center' border='1' width='80%'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>alloc_nodes</tt> </td><td>Allocated nodes in index</td></tr>
@ -1260,7 +1260,7 @@ struct mxml_index_s
<tr><td><tt>cur_node</tt> </td><td>Current node</td></tr>
<tr><td><tt>nodes</tt> </td><td>Node array</td></tr>
<tr><td><tt>num_nodes</tt> </td><td>Number of nodes in index</td></tr>
</tbody></table></p>
</tbody></table></div>
<!-- NEW PAGE -->
<h3><a name='mxml_node_s'>mxml_node_s</a> </h3>
<hr noshade>
@ -1280,7 +1280,7 @@ struct mxml_node_s
};
</pre>
<h4>Members</h4>
<p class='table'><table align='center' border='1' width='80%'>
<div class='table'><table align='center' border='1' width='80%'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>child</tt> </td><td>First child node</td></tr>
@ -1290,7 +1290,7 @@ struct mxml_node_s
<tr><td><tt>prev</tt> </td><td>Previous node under same parent</td></tr>
<tr><td><tt>type</tt> </td><td>Node type</td></tr>
<tr><td><tt>value</tt> </td><td>Node value</td></tr>
</tbody></table></p>
</tbody></table></div>
<!-- NEW PAGE -->
<h3><a name='mxml_text_s'>mxml_text_s</a> </h3>
<hr noshade>
@ -1305,14 +1305,14 @@ struct mxml_text_s
};
</pre>
<h4>Members</h4>
<p class='table'><table align='center' border='1' width='80%'>
<div class='table'><table align='center' border='1' width='80%'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>string</tt> </td><td>Fragment string</td></tr>
<tr><td><tt>whitespace</tt> </td><td>Leading whitespace?</td></tr>
</tbody></table></p>
</tbody></table></div>
<!-- NEW PAGE -->
<h2><a name='_types'>Types</a></h2>
<h2><a name='TYPES'>Types</a></h2>
<ul>
<li><a href='#mxml_attr_t'><tt>mxml_attr_t</tt></a> </li>
<li><a href='#mxml_custom_load_cb_t'><tt>mxml_custom_load_cb_t</tt></a> </li>
@ -1406,7 +1406,7 @@ typedef struct <a href='#mxml_text_s'>mxml_text_s</a> mxml_text_t;
typedef union <a href='#mxml_value_u'>mxml_value_u</a> mxml_value_t;
</pre>
<!-- NEW PAGE -->
<h2><a name='_unions'>Unions</a></h2>
<h2><a name='UNIONS'>Unions</a></h2>
<ul>
<li><a href='#mxml_value_u'><tt>mxml_value_u</tt></a> </li>
</ul>
@ -1428,7 +1428,7 @@ union mxml_value_u
};
</pre>
<h4>Members</h4>
<p class='table'><table align='center' border='1' width='80%'>
<div class='table'><table align='center' border='1' width='80%'>
<thead><tr><th>Name</th><th>Description</th></tr></thead>
<tbody>
<tr><td><tt>custom</tt> <span class='info'>&nbsp;Mini-XML 2.1&nbsp;</span></td><td>Custom data </td></tr>
@ -1437,6 +1437,6 @@ union mxml_value_u
<tr><td><tt>opaque</tt> </td><td>Opaque string</td></tr>
<tr><td><tt>real</tt> </td><td>Real number</td></tr>
<tr><td><tt>text</tt> </td><td>Text fragment</td></tr>
</tbody></table></p>
</tbody></table></div>
</body>
</html>

View File

@ -10,8 +10,11 @@
<li>Added two exceptions to the LGPL to support static
linking of applications against Mini-XML.</li>
<li>The mxmldoc program now supports "@since version@"
and "@deprecated@" comments.</li>
<li>The mxmldoc program now generates correct HTML 4.0
output (previously it generated invalid XHTML...)</li>
<li>The mxmldoc program now supports "@deprecated@,
"@private@", and "@since version@" comments.</li>
<li>Fixed function and enumeraion type bugs in
mxmldoc.</li>

View File

@ -2204,13 +2204,13 @@ write_documentation(
* Standard header...
*/
printf("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" "
"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
"<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>\n"
printf("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" "
"\"http://www.w3.org/TR/REC-html40/loose.dtd\">\n"
"<html>\n"
"<head>\n"
"\t<title>%s</title>\n"
"\t<meta name='creator' content='" MXML_VERSION "'>\n"
"\t<style><!--\n"
"\t<style type='text/css'><!--\n"
"\th1, h2, h3, p { font-family: sans-serif; text-align: justify; }\n"
"\ttt, pre a:link, pre a:visited, tt a:link, tt a:visited { font-weight: bold; color: #7f0000; }\n"
"\tpre { font-weight: bold; color: #7f0000; margin-left: 2em; }\n"
@ -2243,19 +2243,19 @@ write_documentation(
puts("<h2>Contents</h2>");
puts("<ul>");
if (find_public(doc, doc, "class"))
puts("\t<li><a href='#_classes'>Classes</a></li>");
puts("\t<li><a href='#CLASSES'>Classes</a></li>");
if (find_public(doc, doc, "enumeration"))
puts("\t<li><a href='#_enumerations'>Enumerations</a></li>");
puts("\t<li><a href='#ENUMERATIONS'>Enumerations</a></li>");
if (find_public(doc, doc, "function"))
puts("\t<li><a href='#_functions'>Functions</a></li>");
puts("\t<li><a href='#FUNCTIONS'>Functions</a></li>");
if (find_public(doc, doc, "struct"))
puts("\t<li><a href='#_structures'>Structures</a></li>");
puts("\t<li><a href='#STRUCTURES'>Structures</a></li>");
if (find_public(doc, doc, "typedef"))
puts("\t<li><a href='#_types'>Types</a></li>");
puts("\t<li><a href='#TYPES'>Types</a></li>");
if (find_public(doc, doc, "union"))
puts("\t<li><a href='#_unions'>Unions</a></li>");
puts("\t<li><a href='#UNIONS'>Unions</a></li>");
if (find_public(doc, doc, "variable"))
puts("\t<li><a href='#_variables'>Variables</a></li>");
puts("\t<li><a href='#VARIABLES'>Variables</a></li>");
puts("</ul>");
/*
@ -2265,7 +2265,7 @@ write_documentation(
if (find_public(doc, doc, "class"))
{
puts("<!-- NEW PAGE -->\n"
"<h2><a name='_classes'>Classes</a></h2>\n"
"<h2><a name='CLASSES'>Classes</a></h2>\n"
"<ul>");
for (scut = find_public(doc, doc, "class");
@ -2390,7 +2390,7 @@ write_documentation(
puts("};\n</pre>\n"
"<h4>Members</h4>\n"
"<p class='table'><table align='center' border='1' width='80%'>\n"
"<div class='table'><table align='center' border='1' width='80%'>\n"
"<thead><tr><th>Name</th><th>Description</th></tr></thead>\n"
"<tbody>");
@ -2439,7 +2439,7 @@ write_documentation(
puts("</td></tr>");
}
puts("</tbody></table></p>");
puts("</tbody></table></div>");
}
}
@ -2450,7 +2450,7 @@ write_documentation(
if (find_public(doc, doc, "enumeration"))
{
puts("<!-- NEW PAGE -->\n"
"<h2><a name='_enumerations'>Enumerations</a></h2>\n"
"<h2><a name='ENUMERATIONS'>Enumerations</a></h2>\n"
"<ul>");
for (scut = find_public(doc, doc, "enumeration");
@ -2485,7 +2485,7 @@ write_documentation(
}
puts("<h4>Values</h4>\n"
"<p class='table'><table align='center' border='1' width='80%'>\n"
"<div class='table'><table align='center' border='1' width='80%'>\n"
"<thead><tr><th>Name</th><th>Description</th></tr></thead>\n"
"<tbody>");
@ -2505,7 +2505,7 @@ write_documentation(
puts("</td></tr>");
}
puts("</tbody></table></p>");
puts("</tbody></table></div>");
}
}
@ -2516,7 +2516,7 @@ write_documentation(
if (find_public(doc, doc, "function"))
{
puts("<!-- NEW PAGE -->\n"
"<h2><a name='_functions'>Functions</a></h2>\n"
"<h2><a name='FUNCTIONS'>Functions</a></h2>\n"
"<ul>");
for (function = find_public(doc, doc, "function");
@ -2594,8 +2594,8 @@ write_documentation(
puts("<p>None.</p>");
else
{
puts("<p class='table'><table align='center' border='1' width='80%' "
"cellpadding='5' cellspacing='0' width='80%'>\n"
puts("<div class='table'><table align='center' border='1' width='80%' "
"cellpadding='5' cellspacing='0'>\n"
"<thead><tr><th>Name</th><th>Description</th></tr></thead>\n"
"<tbody>");
@ -2613,7 +2613,7 @@ write_documentation(
puts("</td></tr>");
}
puts("</tbody></table></p>");
puts("</tbody></table></div>");
}
puts("<h4>Returns</h4>");
@ -2640,7 +2640,7 @@ write_documentation(
if (find_public(doc, doc, "struct"))
{
puts("<!-- NEW PAGE -->\n"
"<h2><a name='_structures'>Structures</a></h2>\n"
"<h2><a name='STRUCTURES'>Structures</a></h2>\n"
"<ul>");
for (scut = find_public(doc, doc, "struct");
@ -2744,7 +2744,7 @@ write_documentation(
puts("};\n</pre>\n"
"<h4>Members</h4>\n"
"<p class='table'><table align='center' border='1' width='80%'>\n"
"<div class='table'><table align='center' border='1' width='80%'>\n"
"<thead><tr><th>Name</th><th>Description</th></tr></thead>\n"
"<tbody>");
@ -2792,7 +2792,7 @@ write_documentation(
puts("</td></tr>");
}
puts("</tbody></table></p>");
puts("</tbody></table></div>");
}
}
@ -2803,7 +2803,7 @@ write_documentation(
if (find_public(doc, doc, "typedef"))
{
puts("<!-- NEW PAGE -->\n"
"<h2><a name='_types'>Types</a></h2>\n"
"<h2><a name='TYPES'>Types</a></h2>\n"
"<ul>");
for (scut = find_public(doc, doc, "typedef");
@ -2923,7 +2923,7 @@ write_documentation(
if (find_public(doc, doc, "union"))
{
puts("<!-- NEW PAGE -->\n"
"<h2><a name='_unions'>Unions</a></h2>\n"
"<h2><a name='UNIONS'>Unions</a></h2>\n"
"<ul>");
for (scut = find_public(doc, doc, "union");
@ -2974,7 +2974,7 @@ write_documentation(
puts("};\n</pre>\n"
"<h4>Members</h4>\n"
"<p class='table'><table align='center' border='1' width='80%'>\n"
"<div class='table'><table align='center' border='1' width='80%'>\n"
"<thead><tr><th>Name</th><th>Description</th></tr></thead>\n"
"<tbody>");
@ -2994,7 +2994,7 @@ write_documentation(
puts("</td></tr>");
}
puts("</tbody></table></p>");
puts("</tbody></table></div>");
}
}
@ -3005,7 +3005,7 @@ write_documentation(
if (find_public(doc, doc, "variable"))
{
puts("<!-- NEW PAGE -->\n"
"<h2><a name='_variables'>Variables</a></h2>\n"
"<h2><a name='VARIABLES'>Variables</a></h2>\n"
"<ul>");
for (arg = find_public(doc, doc, "variable");