HaikuPorts
  • Login
  • Preferences
  • Help/Guide
  • Wiki
  • Timeline
  • Roadmap
  • View Tickets
  • Search
  • Port Log
  • Blog

Context Navigation

  • Back to Ticket #255

Ticket #255: mxml-2.6.patch

File mxml-2.6.patch, 55.5 KB (added by michaelvoliveira, 6 years ago)

add cases to build shared libs on beos and haiku

  • configure

    diff -Naur mxml-2.6/configure mxml-2.6-haiku/configure
    old new  
    47154715echo "${ECHO_T}yes" >&6; } 
    47164716                        LIBMXML="libmxml.so.1.4" 
    47174717                        DSO="\$(CC)" 
     4718                        DSOFLAGS="$DSOFLAGS -Wl,-rpath,\$(libdir),-set_version,sgi1.0,-soname,libmxml.so.1 -shared \$(OPTIM)" 
     4719                        ;; 
     4720 
     4721                BeOS | Haiku) 
     4722                        { echo "$as_me:$LINENO: result: yes" >&5 
     4723echo "${ECHO_T}yes" >&6; } 
     4724                        LIBMXML="libmxml.so.1.4" 
     4725                        DSO="\$(CC)" 
    47184726                        DSOFLAGS="$DSOFLAGS -Wl,-soname,libmxml.so.1,-rpath,\$(libdir) -shared \$(OPTIM)" 
    47194727                        LDFLAGS="$LDFLAGS -Wl,-rpath,\$(libdir)" 
    47204728                        ;; 
    … …  
    48214829                        # BSD, Darwin (MacOS X), and Linux 
    48224830                        mandir="/usr/share/man" 
    48234831                        ;; 
     4832                BeOS* | Haiku*) 
     4833                        # BeOS, Haiku 
     4834                        mandir="/boot/common/share/man" 
     4835                        ;; 
    48244836                IRIX*) 
    48254837                        # SGI IRIX 
    48264838                        mandir="/usr/share/catman/u_man" 
  • mxml.list

    diff -Naur mxml-2.6/mxml.list mxml-2.6-haiku/mxml.list
    old new  
     1# 
     2# "$Id: mxml.list.in 399 2009-05-17 17:20:51Z mike $" 
     3# 
     4# EPM software list file for Mini-XML, a small XML library. 
     5# 
     6# Copyright 2003-2009 by Michael Sweet. 
     7# 
     8# This program is free software; you can redistribute it and/or 
     9# modify it under the terms of the GNU Library General Public 
     10# License as published by the Free Software Foundation; either 
     11# version 2, or (at your option) any later version. 
     12# 
     13# This program is distributed in the hope that it will be useful, 
     14# but WITHOUT ANY WARRANTY; without even the implied warranty of 
     15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
     16# GNU General Public License for more details. 
     17# 
     18 
     19# Directories... 
     20$prefix=/boot/common 
     21$exec_prefix=/boot/common 
     22$bindir=${exec_prefix}/bin 
     23$datarootdir=${prefix}/share 
     24$docdir=${datarootdir}/doc/mxml 
     25$includedir=${prefix}/include 
     26$libdir=${exec_prefix}/lib 
     27$mandir=${datarootdir}/man 
     28$srcdir=. 
     29 
     30$PICFLAG=1 
     31 
     32# Product information 
     33%product mxml 
     34%copyright 2003-2009 by Michael Sweet 
     35%vendor Michael Sweet 
     36%license ${srcdir}/COPYING 
     37%readme ${srcdir}/README 
     38%version 2.6 
     39 
     40%description <<EOF 
     41Mini-XML is a small XML parsing library that you can use to read 
     42XML and XML-like data files in your application without 
     43requiring large non-standard libraries.  Mini-XML provides the 
     44following functionality: 
     45 
     46    - Reading of UTF-8 and UTF-16 and writing of UTF-8 encoded 
     47      XML files and strings. 
     48    - Data is stored in a linked-list tree structure, preserving 
     49      the XML data hierarchy. 
     50    - Supports arbitrary element names, attributes, and 
     51      attribute values with no preset limits, just available 
     52      memory. 
     53    - Supports integer, real, opaque ("cdata"), and text data 
     54      types in "leaf" nodes. 
     55    - Functions for creating and managing trees of data. 
     56    - "Find" and "walk" functions for easily locating and 
     57      navigating trees of data. 
     58 
     59Mini-XML doesn't do validation or other types of processing on 
     60the data based upon schema files or other sources of definition 
     61information, nor does it support character entities other than 
     62those required by the XML specification. 
     63EOF 
     64 
     65# Executables 
     66f 0555 root sys ${bindir}/mxmldoc mxmldoc 
     67 
     68# Header files 
     69f 0444 root sys ${includedir}/mxml.h mxml.h 
     70 
     71# Libraries 
     72%if $PICFLAG 
     73%system hpux 
     74f 0555 root sys ${libdir}/libmxml.sl.1 libmxml.sl.1 
     75l 0555 root sys ${libdir}/libmxml.sl libmxml.sl.1 
     76 
     77%system darwin 
     78f 0555 root sys ${libdir}/libmxml.1.dylib libmxml.1.dylib 
     79l 0555 root sys ${libdir}/libmxml.dylib libmxml.1.dylib 
     80 
     81%system freebsd irix linux netbsd openbsd solaris tru64 
     82f 0555 root sys ${libdir}/libmxml.so.1.4 libmxml.so.1.4 
     83l 0555 root sys ${libdir}/libmxml.so.1 libmxml.so.1.4 
     84l 0555 root sys ${libdir}/libmxml.so libmxml.so.1.4 
     85 
     86%system all 
     87%endif 
     88 
     89f 0444 root sys ${libdir}/libmxml.a libmxml.a 
     90 
     91# pkg-config info 
     92f 0444 root sys $(libdir)/pkgconfig/mxml.pc mxml.pc 
     93 
     94# Documentation 
     95f 0444 root sys ${docdir}/README $srcdir/README 
     96f 0444 root sys ${docdir}/COPYING $srcdir/COPYING 
     97f 0444 root sys ${docdir}/CHANGES $srcdir/CHANGES 
     98f 0444 root sys ${docdir}/mxml.html $srcdir/doc/mxml.html 
     99f 0444 root sys ${docdir}/mxml.pdf $srcdir/doc/mxml.pdf 
     100 
     101# Man pages 
     102f 0444 root sys ${mandir}/man1/mxmldoc.1 $srcdir/mxmldoc.man 
     103f 0444 root sys ${mandir}/man3/mxml.3 $srcdir/mxml.man 
     104 
     105# 
     106# End of "$Id: mxml.list.in 399 2009-05-17 17:20:51Z mike $". 
     107# 
  • mxml.pc

    diff -Naur mxml-2.6/mxml.pc mxml-2.6-haiku/mxml.pc
    old new  
     1prefix=/boot/common 
     2exec_prefix=/boot/common 
     3libdir=${exec_prefix}/lib 
     4includedir=${prefix}/include 
     5 
     6Name: Mini-XML 
     7Description: Lightweight XML support library 
     8Version: 2.6 
     9Libs: -L${exec_prefix}/lib -lmxml -pthread 
     10Cflags: -I${prefix}/include -D_THREAD_SAFE -D_REENTRANT 
  • mxml.xml

    diff -Naur mxml-2.6/mxml.xml mxml-2.6-haiku/mxml.xml
    old new  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2 <mxmldoc xmlns="http://www.easysw.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.minixml.org/mxmldoc.xsd"> 
    3   <function name="mxmlAdd"> 
    4     <description>Add a node to a tree. 
    5  
    6 Adds the specified node to the parent. If the child argument is not 
    7 NULL, puts the new node before or after the specified child depending 
    8 on the value of the where argument. If the child argument is NULL, 
    9 puts the new node at the beginning of the child list (MXML_ADD_BEFORE) 
    10 or at the end of the child list (MXML_ADD_AFTER). The constant 
    11 MXML_ADD_TO_PARENT can be used to specify a NULL child pointer.</description> 
    12     <argument name="parent" direction="I"> 
    13       <type>mxml_node_t *</type> 
    14       <description>Parent node</description> 
    15     </argument> 
    16     <argument name="where" direction="I"> 
    17       <type>int</type> 
    18       <description>Where to add, MXML_ADD_BEFORE or MXML_ADD_AFTER</description> 
    19     </argument> 
    20     <argument name="child" direction="I"> 
    21       <type>mxml_node_t *</type> 
    22       <description>Child node for where or MXML_ADD_TO_PARENT</description> 
    23     </argument> 
    24     <argument name="node" direction="I"> 
    25       <type>mxml_node_t *</type> 
    26       <description>Node to add</description> 
    27     </argument> 
    28   </function> 
    29   <function name="mxmlDelete"> 
    30     <description>Delete a node and all of its children. 
    31  
    32 If the specified node has a parent, this function first removes the 
    33 node from its parent using the mxmlRemove() function.</description> 
    34     <argument name="node" direction="I"> 
    35       <type>mxml_node_t *</type> 
    36       <description>Node to delete</description> 
    37     </argument> 
    38   </function> 
    39   <function name="mxmlElementDeleteAttr"> 
    40     <description>Delete an attribute. 
    41  
    42 @since Mini-XML 2.4@</description> 
    43     <argument name="node" direction="I"> 
    44       <type>mxml_node_t *</type> 
    45       <description>Element</description> 
    46     </argument> 
    47     <argument name="name" direction="I"> 
    48       <type>const char *</type> 
    49       <description>Attribute name</description> 
    50     </argument> 
    51   </function> 
    52   <function name="mxmlElementGetAttr"> 
    53     <returnvalue> 
    54       <type>const char *</type> 
    55       <description>Attribute value or NULL</description> 
    56     </returnvalue> 
    57     <description>Get an attribute. 
    58  
    59 This function returns NULL if the node is not an element or the 
    60 named attribute does not exist.</description> 
    61     <argument name="node" direction="I"> 
    62       <type>mxml_node_t *</type> 
    63       <description>Element node</description> 
    64     </argument> 
    65     <argument name="name" direction="I"> 
    66       <type>const char *</type> 
    67       <description>Name of attribute</description> 
    68     </argument> 
    69   </function> 
    70   <function name="mxmlElementSetAttr"> 
    71     <description>Set an attribute. 
    72  
    73 If the named attribute already exists, the value of the attribute 
    74 is replaced by the new string value. The string value is copied 
    75 into the element node. This function does nothing if the node is 
    76 not an element.</description> 
    77     <argument name="node" direction="I"> 
    78       <type>mxml_node_t *</type> 
    79       <description>Element node</description> 
    80     </argument> 
    81     <argument name="name" direction="I"> 
    82       <type>const char *</type> 
    83       <description>Name of attribute</description> 
    84     </argument> 
    85     <argument name="value" direction="I"> 
    86       <type>const char *</type> 
    87       <description>Attribute value</description> 
    88     </argument> 
    89   </function> 
    90   <function name="mxmlElementSetAttrf"> 
    91     <description>Set an attribute with a formatted value. 
    92  
    93 If the named attribute already exists, the value of the attribute 
    94 is replaced by the new formatted string. The formatted string value is 
    95 copied into the element node. This function does nothing if the node 
    96 is not an element. 
    97  
    98 @since Mini-XML 2.3@</description> 
    99     <argument name="node" direction="I"> 
    100       <type>mxml_node_t *</type> 
    101       <description>Element node</description> 
    102     </argument> 
    103     <argument name="name" direction="I"> 
    104       <type>const char *</type> 
    105       <description>Name of attribute</description> 
    106     </argument> 
    107     <argument name="format" direction="I"> 
    108       <type>const char *</type> 
    109       <description>Printf-style attribute value</description> 
    110     </argument> 
    111     <argument name="..." direction="I"> 
    112       <type />      <description>Additional arguments as needed</description> 
    113     </argument> 
    114   </function> 
    115   <function name="mxmlEntityAddCallback"> 
    116     <returnvalue> 
    117       <type>int</type> 
    118       <description>0 on success, -1 on failure</description> 
    119     </returnvalue> 
    120     <description>Add a callback to convert entities to Unicode.</description> 
    121     <argument name="cb" direction="I"> 
    122       <type>mxml_entity_cb_t</type> 
    123       <description>Callback function to add</description> 
    124     </argument> 
    125   </function> 
    126   <function name="mxmlEntityGetName"> 
    127     <returnvalue> 
    128       <type>const char *</type> 
    129       <description>Entity name or NULL</description> 
    130     </returnvalue> 
    131     <description>Get the name that corresponds to the character value. 
    132  
    133 If val does not need to be represented by a named entity, NULL is returned.</description> 
    134     <argument name="val" direction="I"> 
    135       <type>int</type> 
    136       <description>Character value</description> 
    137     </argument> 
    138   </function> 
    139   <function name="mxmlEntityGetValue"> 
    140     <returnvalue> 
    141       <type>int</type> 
    142       <description>Character value or -1 on error</description> 
    143     </returnvalue> 
    144     <description>Get the character corresponding to a named entity. 
    145  
    146 The entity name can also be a numeric constant. -1 is returned if the 
    147 name is not known.</description> 
    148     <argument name="name" direction="I"> 
    149       <type>const char *</type> 
    150       <description>Entity name</description> 
    151     </argument> 
    152   </function> 
    153   <function name="mxmlEntityRemoveCallback"> 
    154     <description>Remove a callback.</description> 
    155     <argument name="cb" direction="I"> 
    156       <type>mxml_entity_cb_t</type> 
    157       <description>Callback function to remove</description> 
    158     </argument> 
    159   </function> 
    160   <function name="mxmlFindElement"> 
    161     <returnvalue> 
    162       <type>mxml_node_t *</type> 
    163       <description>Element node or NULL</description> 
    164     </returnvalue> 
    165     <description>Find the named element. 
    166  
    167 The search is constrained by the name, attribute name, and value; any 
    168 NULL names or values are treated as wildcards, so different kinds of 
    169 searches can be implemented by looking for all elements of a given name 
    170 or all elements with a specific attribute. The descend argument determines 
    171 whether the search descends into child nodes; normally you will use 
    172 MXML_DESCEND_FIRST for the initial search and MXML_NO_DESCEND to find 
    173 additional direct descendents of the node. The top node argument 
    174 constrains the search to a particular node's children.</description> 
    175     <argument name="node" direction="I"> 
    176       <type>mxml_node_t *</type> 
    177       <description>Current node</description> 
    178     </argument> 
    179     <argument name="top" direction="I"> 
    180       <type>mxml_node_t *</type> 
    181       <description>Top node</description> 
    182     </argument> 
    183     <argument name="name" direction="I"> 
    184       <type>const char *</type> 
    185       <description>Element name or NULL for any</description> 
    186     </argument> 
    187     <argument name="attr" direction="I"> 
    188       <type>const char *</type> 
    189       <description>Attribute name, or NULL for none</description> 
    190     </argument> 
    191     <argument name="value" direction="I"> 
    192       <type>const char *</type> 
    193       <description>Attribute value, or NULL for any</description> 
    194     </argument> 
    195     <argument name="descend" direction="I"> 
    196       <type>int</type> 
    197       <description>Descend into tree - MXML_DESCEND, MXML_NO_DESCEND, or MXML_DESCEND_FIRST</description> 
    198     </argument> 
    199   </function> 
    200   <function name="mxmlIndexDelete"> 
    201     <description>Delete an index.</description> 
    202     <argument name="ind" direction="I"> 
    203       <type>mxml_index_t *</type> 
    204       <description>Index to delete</description> 
    205     </argument> 
    206   </function> 
    207   <function name="mxmlIndexEnum"> 
    208     <returnvalue> 
    209       <type>mxml_node_t *</type> 
    210       <description>Next node or NULL if there is none</description> 
    211     </returnvalue> 
    212     <description>Return the next node in the index. 
    213  
    214 Nodes are returned in the sorted order of the index.</description> 
    215     <argument name="ind" direction="I"> 
    216       <type>mxml_index_t *</type> 
    217       <description>Index to enumerate</description> 
    218     </argument> 
    219   </function> 
    220   <function name="mxmlIndexFind"> 
    221     <returnvalue> 
    222       <type>mxml_node_t *</type> 
    223       <description>Node or NULL if none found</description> 
    224     </returnvalue> 
    225     <description>Find the next matching node. 
    226  
    227 You should call mxmlIndexReset() prior to using this function for 
    228 the first time with a particular set of &quot;element&quot; and &quot;value&quot; 
    229 strings. Passing NULL for both &quot;element&quot; and &quot;value&quot; is equivalent 
    230 to calling mxmlIndexEnum().</description> 
    231     <argument name="ind" direction="I"> 
    232       <type>mxml_index_t *</type> 
    233       <description>Index to search</description> 
    234     </argument> 
    235     <argument name="element" direction="I"> 
    236       <type>const char *</type> 
    237       <description>Element name to find, if any</description> 
    238     </argument> 
    239     <argument name="value" direction="I"> 
    240       <type>const char *</type> 
    241       <description>Attribute value, if any</description> 
    242     </argument> 
    243   </function> 
    244   <function name="mxmlIndexNew"> 
    245     <returnvalue> 
    246       <type>mxml_index_t *</type> 
    247       <description>New index</description> 
    248     </returnvalue> 
    249     <description>Create a new index. 
    250  
    251 The index will contain all nodes that contain the named element and/or 
    252 attribute. If both &quot;element&quot; and &quot;attr&quot; are NULL, then the index will 
    253 contain a sorted list of the elements in the node tree.  Nodes are 
    254 sorted by element name and optionally by attribute value if the &quot;attr&quot; 
    255 argument is not NULL.</description> 
    256     <argument name="node" direction="I"> 
    257       <type>mxml_node_t *</type> 
    258       <description>XML node tree</description> 
    259     </argument> 
    260     <argument name="element" direction="I"> 
    261       <type>const char *</type> 
    262       <description>Element to index or NULL for all</description> 
    263     </argument> 
    264     <argument name="attr" direction="I"> 
    265       <type>const char *</type> 
    266       <description>Attribute to index or NULL for none</description> 
    267     </argument> 
    268   </function> 
    269   <function name="mxmlIndexReset"> 
    270     <returnvalue> 
    271       <type>mxml_node_t *</type> 
    272       <description>First node or NULL if there is none</description> 
    273     </returnvalue> 
    274     <description>Reset the enumeration/find pointer in the index and 
    275 return the first node in the index. 
    276  
    277 This function should be called prior to using mxmlIndexEnum() or 
    278 mxmlIndexFind() for the first time.</description> 
    279     <argument name="ind" direction="I"> 
    280       <type>mxml_index_t *</type> 
    281       <description>Index to reset</description> 
    282     </argument> 
    283   </function> 
    284   <function name="mxmlLoadFd"> 
    285     <returnvalue> 
    286       <type>mxml_node_t *</type> 
    287       <description>First node or NULL if the file could not be read.</description> 
    288     </returnvalue> 
    289     <description>Load a file descriptor into an XML node tree. 
    290  
    291 The nodes in the specified file are added to the specified top node. 
    292 If no top node is provided, the XML file MUST be well-formed with a 
    293 single parent node like &lt;?xml&gt; for the entire file. The callback 
    294 function returns the value type that should be used for child nodes. 
    295 If MXML_NO_CALLBACK is specified then all child nodes will be either 
    296 MXML_ELEMENT or MXML_TEXT nodes. 
    297  
    298 The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, 
    299 MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading 
    300 child nodes of the specified type.</description> 
    301     <argument name="top" direction="I"> 
    302       <type>mxml_node_t *</type> 
    303       <description>Top node</description> 
    304     </argument> 
    305     <argument name="fd" direction="I"> 
    306       <type>int</type> 
    307       <description>File descriptor to read from</description> 
    308     </argument> 
    309     <argument name="cb" direction="I"> 
    310       <type>mxml_load_cb_t</type> 
    311       <description>Callback function or MXML_NO_CALLBACK</description> 
    312     </argument> 
    313   </function> 
    314   <function name="mxmlLoadFile"> 
    315     <returnvalue> 
    316       <type>mxml_node_t *</type> 
    317       <description>First node or NULL if the file could not be read.</description> 
    318     </returnvalue> 
    319     <description>Load a file into an XML node tree. 
    320  
    321 The nodes in the specified file are added to the specified top node. 
    322 If no top node is provided, the XML file MUST be well-formed with a 
    323 single parent node like &lt;?xml&gt; for the entire file. The callback 
    324 function returns the value type that should be used for child nodes. 
    325 If MXML_NO_CALLBACK is specified then all child nodes will be either 
    326 MXML_ELEMENT or MXML_TEXT nodes. 
    327  
    328 The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, 
    329 MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading 
    330 child nodes of the specified type.</description> 
    331     <argument name="top" direction="I"> 
    332       <type>mxml_node_t *</type> 
    333       <description>Top node</description> 
    334     </argument> 
    335     <argument name="fp" direction="I"> 
    336       <type>FILE *</type> 
    337       <description>File to read from</description> 
    338     </argument> 
    339     <argument name="cb" direction="I"> 
    340       <type>mxml_load_cb_t</type> 
    341       <description>Callback function or MXML_NO_CALLBACK</description> 
    342     </argument> 
    343   </function> 
    344   <function name="mxmlLoadString"> 
    345     <returnvalue> 
    346       <type>mxml_node_t *</type> 
    347       <description>First node or NULL if the string has errors.</description> 
    348     </returnvalue> 
    349     <description>Load a string into an XML node tree. 
    350  
    351 The nodes in the specified string are added to the specified top node. 
    352 If no top node is provided, the XML string MUST be well-formed with a 
    353 single parent node like &lt;?xml&gt; for the entire string. The callback 
    354 function returns the value type that should be used for child nodes. 
    355 If MXML_NO_CALLBACK is specified then all child nodes will be either 
    356 MXML_ELEMENT or MXML_TEXT nodes. 
    357  
    358 The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, 
    359 MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading 
    360 child nodes of the specified type.</description> 
    361     <argument name="top" direction="I"> 
    362       <type>mxml_node_t *</type> 
    363       <description>Top node</description> 
    364     </argument> 
    365     <argument name="s" direction="I"> 
    366       <type>const char *</type> 
    367       <description>String to load</description> 
    368     </argument> 
    369     <argument name="cb" direction="I"> 
    370       <type>mxml_load_cb_t</type> 
    371       <description>Callback function or MXML_NO_CALLBACK</description> 
    372     </argument> 
    373   </function> 
    374   <function name="mxmlNewCDATA"> 
    375     <returnvalue> 
    376       <type>mxml_node_t *</type> 
    377       <description>New node</description> 
    378     </returnvalue> 
    379     <description>Create a new CDATA node. 
    380  
    381 The new CDATA node is added to the end of the specified parent's child 
    382 list. The constant MXML_NO_PARENT can be used to specify that the new 
    383 CDATA node has no parent. The data string must be nul-terminated and 
    384 is copied into the new node. CDATA nodes use the MXML_ELEMENT type. 
    385  
    386 @since Mini-XML 2.3@</description> 
    387     <argument name="parent" direction="I"> 
    388       <type>mxml_node_t *</type> 
    389       <description>Parent node or MXML_NO_PARENT</description> 
    390     </argument> 
    391     <argument name="data" direction="I"> 
    392       <type>const char *</type> 
    393       <description>Data string</description> 
    394     </argument> 
    395   </function> 
    396   <function name="mxmlNewCustom"> 
    397     <returnvalue> 
    398       <type>mxml_node_t *</type> 
    399       <description>New node</description> 
    400     </returnvalue> 
    401     <description>Create a new custom data node. 
    402  
    403 The new custom node is added to the end of the specified parent's child 
    404 list. The constant MXML_NO_PARENT can be used to specify that the new 
    405 element node has no parent. NULL can be passed when the data in the 
    406 node is not dynamically allocated or is separately managed. 
    407  
    408 @since Mini-XML 2.1@</description> 
    409     <argument name="parent" direction="I"> 
    410       <type>mxml_node_t *</type> 
    411       <description>Parent node or MXML_NO_PARENT</description> 
    412     </argument> 
    413     <argument name="data" direction="I"> 
    414       <type>void *</type> 
    415       <description>Pointer to data</description> 
    416     </argument> 
    417     <argument name="destroy" direction="I"> 
    418       <type>mxml_custom_destroy_cb_t</type> 
    419       <description>Function to destroy data</description> 
    420     </argument> 
    421   </function> 
    422   <function name="mxmlNewElement"> 
    423     <returnvalue> 
    424       <type>mxml_node_t *</type> 
    425       <description>New node</description> 
    426     </returnvalue> 
    427     <description>Create a new element node. 
    428  
    429 The new element node is added to the end of the specified parent's child 
    430 list. The constant MXML_NO_PARENT can be used to specify that the new 
    431 element node has no parent.</description> 
    432     <argument name="parent" direction="I"> 
    433       <type>mxml_node_t *</type> 
    434       <description>Parent node or MXML_NO_PARENT</description> 
    435     </argument> 
    436     <argument name="name" direction="I"> 
    437       <type>const char *</type> 
    438       <description>Name of element</description> 
    439     </argument> 
    440   </function> 
    441   <function name="mxmlNewInteger"> 
    442     <returnvalue> 
    443       <type>mxml_node_t *</type> 
    444       <description>New node</description> 
    445     </returnvalue> 
    446     <description>Create a new integer node. 
    447  
    448 The new integer node is added to the end of the specified parent's child 
    449 list. The constant MXML_NO_PARENT can be used to specify that the new 
    450 integer node has no parent.</description> 
    451     <argument name="parent" direction="I"> 
    452       <type>mxml_node_t *</type> 
    453       <description>Parent node or MXML_NO_PARENT</description> 
    454     </argument> 
    455     <argument name="integer" direction="I"> 
    456       <type>int</type> 
    457       <description>Integer value</description> 
    458     </argument> 
    459   </function> 
    460   <function name="mxmlNewOpaque"> 
    461     <returnvalue> 
    462       <type>mxml_node_t *</type> 
    463       <description>New node</description> 
    464     </returnvalue> 
    465     <description>Create a new opaque string. 
    466  
    467 The new opaque node is added to the end of the specified parent's child 
    468 list. The constant MXML_NO_PARENT can be used to specify that the new 
    469 opaque node has no parent. The opaque string must be nul-terminated and 
    470 is copied into the new node.</description> 
    471     <argument name="parent" direction="I"> 
    472       <type>mxml_node_t *</type> 
    473       <description>Parent node or MXML_NO_PARENT</description> 
    474     </argument> 
    475     <argument name="opaque" direction="I"> 
    476       <type>const char *</type> 
    477       <description>Opaque string</description> 
    478     </argument> 
    479   </function> 
    480   <function name="mxmlNewReal"> 
    481     <returnvalue> 
    482       <type>mxml_node_t *</type> 
    483       <description>New node</description> 
    484     </returnvalue> 
    485     <description>Create a new real number node. 
    486  
    487 The new real number node is added to the end of the specified parent's 
    488 child list. The constant MXML_NO_PARENT can be used to specify that 
    489 the new real number node has no parent.</description> 
    490     <argument name="parent" direction="I"> 
    491       <type>mxml_node_t *</type> 
    492       <description>Parent node or MXML_NO_PARENT</description> 
    493     </argument> 
    494     <argument name="real" direction="I"> 
    495       <type>double</type> 
    496       <description>Real number value</description> 
    497     </argument> 
    498   </function> 
    499   <function name="mxmlNewText"> 
    500     <returnvalue> 
    501       <type>mxml_node_t *</type> 
    502       <description>New node</description> 
    503     </returnvalue> 
    504     <description>Create a new text fragment node. 
    505  
    506 The new text node is added to the end of the specified parent's child 
    507 list. The constant MXML_NO_PARENT can be used to specify that the new 
    508 text node has no parent. The whitespace parameter is used to specify 
    509 whether leading whitespace is present before the node. The text 
    510 string must be nul-terminated and is copied into the new node.</description> 
    511     <argument name="parent" direction="I"> 
    512       <type>mxml_node_t *</type> 
    513       <description>Parent node or MXML_NO_PARENT</description> 
    514     </argument> 
    515     <argument name="whitespace" direction="I"> 
    516       <type>int</type> 
    517       <description>1 = leading whitespace, 0 = no whitespace</description> 
    518     </argument> 
    519     <argument name="string" direction="I"> 
    520       <type>const char *</type> 
    521       <description>String</description> 
    522     </argument> 
    523   </function> 
    524   <function name="mxmlNewTextf"> 
    525     <returnvalue> 
    526       <type>mxml_node_t *</type> 
    527       <description>New node</description> 
    528     </returnvalue> 
    529     <description>Create a new formatted text fragment node. 
    530  
    531 The new text node is added to the end of the specified parent's child 
    532 list. The constant MXML_NO_PARENT can be used to specify that the new 
    533 text node has no parent. The whitespace parameter is used to specify 
    534 whether leading whitespace is present before the node. The format 
    535 string must be nul-terminated and is formatted into the new node.</description> 
    536     <argument name="parent" direction="I"> 
    537       <type>mxml_node_t *</type> 
    538       <description>Parent node or MXML_NO_PARENT</description> 
    539     </argument> 
    540     <argument name="whitespace" direction="I"> 
    541       <type>int</type> 
    542       <description>1 = leading whitespace, 0 = no whitespace</description> 
    543     </argument> 
    544     <argument name="format" direction="I"> 
    545       <type>const char *</type> 
    546       <description>Printf-style frmat string</description> 
    547     </argument> 
    548     <argument name="..." direction="I"> 
    549       <type />      <description>Additional args as needed</description> 
    550     </argument> 
    551   </function> 
    552   <function name="mxmlNewXML"> 
    553     <returnvalue> 
    554       <type>mxml_node_t *</type> 
    555       <description>New ?xml node</description> 
    556     </returnvalue> 
    557     <description>Create a new XML document tree. 
    558  
    559 The &quot;version&quot; argument specifies the version number to put in the 
    560 ?xml element node. If NULL, version 1.0 is assumed. 
    561  
    562 @since Mini-XML 2.3@</description> 
    563     <argument name="version" direction="I"> 
    564       <type>const char *</type> 
    565       <description>Version number to use</description> 
    566     </argument> 
    567   </function> 
    568   <function name="mxmlRelease"> 
    569     <returnvalue> 
    570       <type>int</type> 
    571       <description>New reference count</description> 
    572     </returnvalue> 
    573     <description>Release a node. 
    574  
    575 When the reference count reaches zero, the node (and any children) 
    576 is deleted via mxmlDelete(). 
    577  
    578 @since Mini-XML 2.3@</description> 
    579     <argument name="node" direction="I"> 
    580       <type>mxml_node_t *</type> 
    581       <description>Node</description> 
    582     </argument> 
    583   </function> 
    584   <function name="mxmlRemove"> 
    585     <description>Remove a node from its parent. 
    586  
    587 Does not free memory used by the node - use mxmlDelete() for that. 
    588 This function does nothing if the node has no parent.</description> 
    589     <argument name="node" direction="I"> 
    590       <type>mxml_node_t *</type> 
    591       <description>Node to remove</description> 
    592     </argument> 
    593   </function> 
    594   <function name="mxmlRetain"> 
    595     <returnvalue> 
    596       <type>int</type> 
    597       <description>New reference count</description> 
    598     </returnvalue> 
    599     <description>Retain a node. 
    600  
    601 @since Mini-XML 2.3@</description> 
    602     <argument name="node" direction="I"> 
    603       <type>mxml_node_t *</type> 
    604       <description>Node</description> 
    605     </argument> 
    606   </function> 
    607   <function name="mxmlSAXLoadFd"> 
    608     <returnvalue> 
    609       <type>mxml_node_t *</type> 
    610       <description>First node or NULL if the file could not be read.</description> 
    611     </returnvalue> 
    612     <description>Load a file descriptor into an XML node tree 
    613 using a SAX callback. 
    614  
    615 The nodes in the specified file are added to the specified top node. 
    616 If no top node is provided, the XML file MUST be well-formed with a 
    617 single parent node like &lt;?xml&gt; for the entire file. The callback 
    618 function returns the value type that should be used for child nodes. 
    619 If MXML_NO_CALLBACK is specified then all child nodes will be either 
    620 MXML_ELEMENT or MXML_TEXT nodes. 
    621  
    622 The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, 
    623 MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading 
    624 child nodes of the specified type. 
    625  
    626 The SAX callback must call mxmlRetain() for any nodes that need to 
    627 be kept for later use. Otherwise, nodes are deleted when the parent 
    628 node is closed or after each data, comment, CDATA, or directive node. 
    629  
    630 @since Mini-XML 2.3@</description> 
    631     <argument name="top" direction="I"> 
    632       <type>mxml_node_t *</type> 
    633       <description>Top node</description> 
    634     </argument> 
    635     <argument name="fd" direction="I"> 
    636       <type>int</type> 
    637       <description>File descriptor to read from</description> 
    638     </argument> 
    639     <argument name="cb" direction="I"> 
    640       <type>mxml_load_cb_t</type> 
    641       <description>Callback function or MXML_NO_CALLBACK</description> 
    642     </argument> 
    643     <argument name="sax_cb" direction="I"> 
    644       <type>mxml_sax_cb_t</type> 
    645       <description>SAX callback or MXML_NO_CALLBACK</description> 
    646     </argument> 
    647     <argument name="sax_data" direction="I"> 
    648       <type>void *</type> 
    649       <description>SAX user data</description> 
    650     </argument> 
    651   </function> 
    652   <function name="mxmlSAXLoadFile"> 
    653     <returnvalue> 
    654       <type>mxml_node_t *</type> 
    655       <description>First node or NULL if the file could not be read.</description> 
    656     </returnvalue> 
    657     <description>Load a file into an XML node tree 
    658 using a SAX callback. 
    659  
    660 The nodes in the specified file are added to the specified top node. 
    661 If no top node is provided, the XML file MUST be well-formed with a 
    662 single parent node like &lt;?xml&gt; for the entire file. The callback 
    663 function returns the value type that should be used for child nodes. 
    664 If MXML_NO_CALLBACK is specified then all child nodes will be either 
    665 MXML_ELEMENT or MXML_TEXT nodes. 
    666  
    667 The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, 
    668 MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading 
    669 child nodes of the specified type. 
    670  
    671 The SAX callback must call mxmlRetain() for any nodes that need to 
    672 be kept for later use. Otherwise, nodes are deleted when the parent 
    673 node is closed or after each data, comment, CDATA, or directive node. 
    674  
    675 @since Mini-XML 2.3@</description> 
    676     <argument name="top" direction="I"> 
    677       <type>mxml_node_t *</type> 
    678       <description>Top node</description> 
    679     </argument> 
    680     <argument name="fp" direction="I"> 
    681       <type>FILE *</type> 
    682       <description>File to read from</description> 
    683     </argument> 
    684     <argument name="cb" direction="I"> 
    685       <type>mxml_load_cb_t</type> 
    686       <description>Callback function or MXML_NO_CALLBACK</description> 
    687     </argument> 
    688     <argument name="sax_cb" direction="I"> 
    689       <type>mxml_sax_cb_t</type> 
    690       <description>SAX callback or MXML_NO_CALLBACK</description> 
    691     </argument> 
    692     <argument name="sax_data" direction="I"> 
    693       <type>void *</type> 
    694       <description>SAX user data</description> 
    695     </argument> 
    696   </function> 
    697   <function name="mxmlSAXLoadString"> 
    698     <returnvalue> 
    699       <type>mxml_node_t *</type> 
    700       <description>First node or NULL if the string has errors.</description> 
    701     </returnvalue> 
    702     <description>Load a string into an XML node tree 
    703 using a SAX callback. 
    704  
    705 The nodes in the specified string are added to the specified top node. 
    706 If no top node is provided, the XML string MUST be well-formed with a 
    707 single parent node like &lt;?xml&gt; for the entire string. The callback 
    708 function returns the value type that should be used for child nodes. 
    709 If MXML_NO_CALLBACK is specified then all child nodes will be either 
    710 MXML_ELEMENT or MXML_TEXT nodes. 
    711  
    712 The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, 
    713 MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading 
    714 child nodes of the specified type. 
    715  
    716 The SAX callback must call mxmlRetain() for any nodes that need to 
    717 be kept for later use. Otherwise, nodes are deleted when the parent 
    718 node is closed or after each data, comment, CDATA, or directive node. 
    719  
    720 @since Mini-XML 2.3@</description> 
    721     <argument name="top" direction="I"> 
    722       <type>mxml_node_t *</type> 
    723       <description>Top node</description> 
    724     </argument> 
    725     <argument name="s" direction="I"> 
    726       <type>const char *</type> 
    727       <description>String to load</description> 
    728     </argument> 
    729     <argument name="cb" direction="I"> 
    730       <type>mxml_load_cb_t</type> 
    731       <description>Callback function or MXML_NO_CALLBACK</description> 
    732     </argument> 
    733     <argument name="sax_cb" direction="I"> 
    734       <type>mxml_sax_cb_t</type> 
    735       <description>SAX callback or MXML_NO_CALLBACK</description> 
    736     </argument> 
    737     <argument name="sax_data" direction="I"> 
    738       <type>void *</type> 
    739       <description>SAX user data</description> 
    740     </argument> 
    741   </function> 
    742   <function name="mxmlSaveAllocString"> 
    743     <returnvalue> 
    744       <type>char *</type> 
    745       <description>Allocated string or NULL</description> 
    746     </returnvalue> 
    747     <description>Save an XML node tree to an allocated string. 
    748  
    749 This function returns a pointer to a string containing the textual 
    750 representation of the XML node tree.  The string should be freed 
    751 using the free() function when you are done with it.  NULL is returned 
    752 if the node would produce an empty string or if the string cannot be 
    753 allocated. 
    754  
    755 The callback argument specifies a function that returns a whitespace 
    756 string or NULL before and after each element. If MXML_NO_CALLBACK 
    757 is specified, whitespace will only be added before MXML_TEXT nodes 
    758 with leading whitespace and before attribute names inside opening 
    759 element tags.</description> 
    760     <argument name="node" direction="I"> 
    761       <type>mxml_node_t *</type> 
    762       <description>Node to write</description> 
    763     </argument> 
    764     <argument name="cb" direction="I"> 
    765       <type>mxml_save_cb_t</type> 
    766       <description>Whitespace callback or MXML_NO_CALLBACK</description> 
    767     </argument> 
    768   </function> 
    769   <function name="mxmlSaveFd"> 
    770     <returnvalue> 
    771       <type>int</type> 
    772       <description>0 on success, -1 on error.</description> 
    773     </returnvalue> 
    774     <description>Save an XML tree to a file descriptor. 
    775  
    776 The callback argument specifies a function that returns a whitespace 
    777 string or NULL before and after each element. If MXML_NO_CALLBACK 
    778 is specified, whitespace will only be added before MXML_TEXT nodes 
    779 with leading whitespace and before attribute names inside opening 
    780 element tags.</description> 
    781     <argument name="node" direction="I"> 
    782       <type>mxml_node_t *</type> 
    783       <description>Node to write</description> 
    784     </argument> 
    785     <argument name="fd" direction="I"> 
    786       <type>int</type> 
    787       <description>File descriptor to write to</description> 
    788     </argument> 
    789     <argument name="cb" direction="I"> 
    790       <type>mxml_save_cb_t</type> 
    791       <description>Whitespace callback or MXML_NO_CALLBACK</description> 
    792     </argument> 
    793   </function> 
    794   <function name="mxmlSaveFile"> 
    795     <returnvalue> 
    796       <type>int</type> 
    797       <description>0 on success, -1 on error.</description> 
    798     </returnvalue> 
    799     <description>Save an XML tree to a file. 
    800  
    801 The callback argument specifies a function that returns a whitespace 
    802 string or NULL before and after each element. If MXML_NO_CALLBACK 
    803 is specified, whitespace will only be added before MXML_TEXT nodes 
    804 with leading whitespace and before attribute names inside opening 
    805 element tags.</description> 
    806     <argument name="node" direction="I"> 
    807       <type>mxml_node_t *</type> 
    808       <description>Node to write</description> 
    809     </argument> 
    810     <argument name="fp" direction="I"> 
    811       <type>FILE *</type> 
    812       <description>File to write to</description> 
    813     </argument> 
    814     <argument name="cb" direction="I"> 
    815       <type>mxml_save_cb_t</type> 
    816       <description>Whitespace callback or MXML_NO_CALLBACK</description> 
    817     </argument> 
    818   </function> 
    819   <function name="mxmlSaveString"> 
    820     <returnvalue> 
    821       <type>int</type> 
    822       <description>Size of string</description> 
    823     </returnvalue> 
    824     <description>Save an XML node tree to a string. 
    825  
    826 This function returns the total number of bytes that would be 
    827 required for the string but only copies (bufsize - 1) characters 
    828 into the specified buffer. 
    829  
    830 The callback argument specifies a function that returns a whitespace 
    831 string or NULL before and after each element. If MXML_NO_CALLBACK 
    832 is specified, whitespace will only be added before MXML_TEXT nodes 
    833 with leading whitespace and before attribute names inside opening 
    834 element tags.</description> 
    835     <argument name="node" direction="I"> 
    836       <type>mxml_node_t *</type> 
    837       <description>Node to write</description> 
    838     </argument> 
    839     <argument name="buffer" direction="I"> 
    840       <type>char *</type> 
    841       <description>String buffer</description> 
    842     </argument> 
    843     <argument name="bufsize" direction="I"> 
    844       <type>int</type> 
    845       <description>Size of string buffer</description> 
    846     </argument> 
    847     <argument name="cb" direction="I"> 
    848       <type>mxml_save_cb_t</type> 
    849       <description>Whitespace callback or MXML_NO_CALLBACK</description> 
    850     </argument> 
    851   </function> 
    852   <function name="mxmlSetCDATA"> 
    853     <returnvalue> 
    854       <type>int</type> 
    855       <description>0 on success, -1 on failure</description> 
    856     </returnvalue> 
    857     <description>Set the element name of a CDATA node. 
    858  
    859 The node is not changed if it is not a CDATA element node. 
    860  
    861 @since Mini-XML 2.3@</description> 
    862     <argument name="node" direction="I"> 
    863       <type>mxml_node_t *</type> 
    864       <description>Node to set</description> 
    865     </argument> 
    866     <argument name="data" direction="I"> 
    867       <type>const char *</type> 
    868       <description>New data string</description> 
    869     </argument> 
    870   </function> 
    871   <function name="mxmlSetCustom"> 
    872     <returnvalue> 
    873       <type>int</type> 
    874       <description>0 on success, -1 on failure</description> 
    875     </returnvalue> 
    876     <description>Set the data and destructor of a custom data node. 
    877  
    878 The node is not changed if it is not a custom node. 
    879  
    880 @since Mini-XML 2.1@</description> 
    881     <argument name="node" direction="I"> 
    882       <type>mxml_node_t *</type> 
    883       <description>Node to set</description> 
    884     </argument> 
    885     <argument name="data" direction="I"> 
    886       <type>void *</type> 
    887       <description>New data pointer</description> 
    888     </argument> 
    889     <argument name="destroy" direction="I"> 
    890       <type>mxml_custom_destroy_cb_t</type> 
    891       <description>New destructor function</description> 
    892     </argument> 
    893   </function> 
    894   <function name="mxmlSetCustomHandlers"> 
    895     <description>Set the handling functions for custom data. 
    896  
    897 The load function accepts a node pointer and a data string and must 
    898 return 0 on success and non-zero on error. 
    899  
    900 The save function accepts a node pointer and must return a malloc'd 
    901 string on success and NULL on error.</description> 
    902     <argument name="load" direction="I"> 
    903       <type>mxml_custom_load_cb_t</type> 
    904       <description>Load function</description> 
    905     </argument> 
    906     <argument name="save" direction="I"> 
    907       <type>mxml_custom_save_cb_t</type> 
    908       <description>Save function</description> 
    909     </argument> 
    910   </function> 
    911   <function name="mxmlSetElement"> 
    912     <returnvalue> 
    913       <type>int</type> 
    914       <description>0 on success, -1 on failure</description> 
    915     </returnvalue> 
    916     <description>Set the name of an element node. 
    917  
    918 The node is not changed if it is not an element node.</description> 
    919     <argument name="node" direction="I"> 
    920       <type>mxml_node_t *</type> 
    921       <description>Node to set</description> 
    922     </argument> 
    923     <argument name="name" direction="I"> 
    924       <type>const char *</type> 
    925       <description>New name string</description> 
    926     </argument> 
    927   </function> 
    928   <function name="mxmlSetErrorCallback"> 
    929     <description>Set the error message callback.</description> 
    930     <argument name="cb" direction="I"> 
    931       <type>mxml_error_cb_t</type> 
    932       <description>Error callback function</description> 
    933     </argument> 
    934   </function> 
    935   <function name="mxmlSetInteger"> 
    936     <returnvalue> 
    937       <type>int</type> 
    938       <description>0 on success, -1 on failure</description> 
    939     </returnvalue> 
    940     <description>Set the value of an integer node. 
    941  
    942 The node is not changed if it is not an integer node.</description> 
    943     <argument name="node" direction="I"> 
    944       <type>mxml_node_t *</type> 
    945       <description>Node to set</description> 
    946     </argument> 
    947     <argument name="integer" direction="I"> 
    948       <type>int</type> 
    949       <description>Integer value</description> 
    950     </argument> 
    951   </function> 
    952   <function name="mxmlSetOpaque"> 
    953     <returnvalue> 
    954       <type>int</type> 
    955       <description>0 on success, -1 on failure</description> 
    956     </returnvalue> 
    957     <description>Set the value of an opaque node. 
    958  
    959 The node is not changed if it is not an opaque node.</description> 
    960     <argument name="node" direction="I"> 
    961       <type>mxml_node_t *</type> 
    962       <description>Node to set</description> 
    963     </argument> 
    964     <argument name="opaque" direction="I"> 
    965       <type>const char *</type> 
    966       <description>Opaque string</description> 
    967     </argument> 
    968   </function> 
    969   <function name="mxmlSetReal"> 
    970     <returnvalue> 
    971       <type>int</type> 
    972       <description>0 on success, -1 on failure</description> 
    973     </returnvalue> 
    974     <description>Set the value of a real number node. 
    975  
    976 The node is not changed if it is not a real number node.</description> 
    977     <argument name="node" direction="I"> 
    978       <type>mxml_node_t *</type> 
    979       <description>Node to set</description> 
    980     </argument> 
    981     <argument name="real" direction="I"> 
    982       <type>double</type> 
    983       <description>Real number value</description> 
    984     </argument> 
    985   </function> 
    986   <function name="mxmlSetText"> 
    987     <returnvalue> 
    988       <type>int</type> 
    989       <description>0 on success, -1 on failure</description> 
    990     </returnvalue> 
    991     <description>Set the value of a text node. 
    992  
    993 The node is not changed if it is not a text node.</description> 
    994     <argument name="node" direction="I"> 
    995       <type>mxml_node_t *</type> 
    996       <description>Node to set</description> 
    997     </argument> 
    998     <argument name="whitespace" direction="I"> 
    999       <type>int</type> 
    1000       <description>1 = leading whitespace, 0 = no whitespace</description> 
    1001     </argument> 
    1002     <argument name="string" direction="I"> 
    1003       <type>const char *</type> 
    1004       <description>String</description> 
    1005     </argument> 
    1006   </function> 
    1007   <function name="mxmlSetTextf"> 
    1008     <returnvalue> 
    1009       <type>int</type> 
    1010       <description>0 on success, -1 on failure</description> 
    1011     </returnvalue> 
    1012     <description>Set the value of a text node to a formatted string. 
    1013  
    1014 The node is not changed if it is not a text node.</description> 
    1015     <argument name="node" direction="I"> 
    1016       <type>mxml_node_t *</type> 
    1017       <description>Node to set</description> 
    1018     </argument> 
    1019     <argument name="whitespace" direction="I"> 
    1020       <type>int</type> 
    1021       <description>1 = leading whitespace, 0 = no whitespace</description> 
    1022     </argument> 
    1023     <argument name="format" direction="I"> 
    1024       <type>const char *</type> 
    1025       <description>Printf-style format string</description> 
    1026     </argument> 
    1027     <argument name="..." direction="I"> 
    1028       <type />      <description>Additional arguments as needed</description> 
    1029     </argument> 
    1030   </function> 
    1031   <function name="mxmlSetWrapMargin"> 
    1032     <description>Set the the wrap margin when saving XML data. 
    1033  
    1034 Wrapping is disabled when &quot;column&quot; is 0. 
    1035  
    1036 @since Mini-XML 2.3@</description> 
    1037     <argument name="column" direction="I"> 
    1038       <type>int</type> 
    1039       <description>Column for wrapping, 0 to disable wrapping</description> 
    1040     </argument> 
    1041   </function> 
    1042   <function name="mxmlWalkNext"> 
    1043     <returnvalue> 
    1044       <type>mxml_node_t *</type> 
    1045       <description>Next node or NULL</description> 
    1046     </returnvalue> 
    1047     <description>Walk to the next logical node in the tree. 
    1048  
    1049 The descend argument controls whether the first child is considered 
    1050 to be the next node. The top node argument constrains the walk to 
    1051 the node's children.</description> 
    1052     <argument name="node" direction="I"> 
    1053       <type>mxml_node_t *</type> 
    1054       <description>Current node</description> 
    1055     </argument> 
    1056     <argument name="top" direction="I"> 
    1057       <type>mxml_node_t *</type> 
    1058       <description>Top node</description> 
    1059     </argument> 
    1060     <argument name="descend" direction="I"> 
    1061       <type>int</type> 
    1062       <description>Descend into tree - MXML_DESCEND, MXML_NO_DESCEND, or MXML_DESCEND_FIRST</description> 
    1063     </argument> 
    1064   </function> 
    1065   <function name="mxmlWalkPrev"> 
    1066     <returnvalue> 
    1067       <type>mxml_node_t *</type> 
    1068       <description>Previous node or NULL</description> 
    1069     </returnvalue> 
    1070     <description>Walk to the previous logical node in the tree. 
    1071  
    1072 The descend argument controls whether the previous node's last child 
    1073 is considered to be the previous node. The top node argument constrains 
    1074 the walk to the node's children.</description> 
    1075     <argument name="node" direction="I"> 
    1076       <type>mxml_node_t *</type> 
    1077       <description>Current node</description> 
    1078     </argument> 
    1079     <argument name="top" direction="I"> 
    1080       <type>mxml_node_t *</type> 
    1081       <description>Top node</description> 
    1082     </argument> 
    1083     <argument name="descend" direction="I"> 
    1084       <type>int</type> 
    1085       <description>Descend into tree - MXML_DESCEND, MXML_NO_DESCEND, or MXML_DESCEND_FIRST</description> 
    1086     </argument> 
    1087   </function> 
    1088   <struct name="mxml_attr_s"> 
    1089     <description>An XML element attribute value.</description> 
    1090     <variable name="name"> 
    1091       <type>char *</type> 
    1092       <description>Attribute name</description> 
    1093     </variable> 
    1094     <variable name="value"> 
    1095       <type>char *</type> 
    1096       <description>Attribute value</description> 
    1097     </variable> 
    1098   </struct> 
    1099   <typedef name="mxml_attr_t"> 
    1100     <type>struct mxml_attr_s</type> 
    1101     <description>An XML element attribute value.</description> 
    1102   </typedef> 
    1103   <typedef name="mxml_custom_destroy_cb_t"> 
    1104     <type>void(*)(void *)</type> 
    1105     <description>Custom data destructor</description> 
    1106   </typedef> 
    1107   <typedef name="mxml_custom_load_cb_t"> 
    1108     <type>int(*)(mxml_node_t *, const char *)</type> 
    1109     <description>Custom data load callback function</description> 
    1110   </typedef> 
    1111   <struct name="mxml_custom_s"> 
    1112     <description>An XML custom value. @since Mini-XML 2.1@</description> 
    1113     <variable name="data"> 
    1114       <type>void *</type> 
    1115       <description>Pointer to (allocated) custom data</description> 
    1116     </variable> 
    1117     <variable name="destroy"> 
    1118       <type>mxml_custom_destroy_cb_t</type> 
    1119       <description>Pointer to destructor function</description> 
    1120     </variable> 
    1121   </struct> 
    1122   <typedef name="mxml_custom_save_cb_t"> 
    1123     <type>char *(*)(mxml_node_t *)</type> 
    1124     <description>Custom data save callback function</description> 
    1125   </typedef> 
    1126   <typedef name="mxml_custom_t"> 
    1127     <type>struct mxml_custom_s</type> 
    1128     <description>An XML custom value. @since Mini-XML 2.1@</description> 
    1129   </typedef> 
    1130   <struct name="mxml_element_s"> 
    1131     <description>An XML element value.</description> 
    1132     <variable name="attrs"> 
    1133       <type>mxml_attr_t *</type> 
    1134       <description>Attributes</description> 
    1135     </variable> 
    1136     <variable name="name"> 
    1137       <type>char *</type> 
    1138       <description>Name of element</description> 
    1139     </variable> 
    1140     <variable name="num_attrs"> 
    1141       <type>int</type> 
    1142       <description>Number of attributes</description> 
    1143     </variable> 
    1144   </struct> 
    1145   <typedef name="mxml_element_t"> 
    1146     <type>struct mxml_element_s</type> 
    1147     <description>An XML element value.</description> 
    1148   </typedef> 
    1149   <typedef name="mxml_entity_cb_t"> 
    1150     <type>int(*)(const char *)</type> 
    1151     <description>Entity callback function</description> 
    1152   </typedef> 
    1153   <typedef name="mxml_error_cb_t"> 
    1154     <type>void(*)(const char *)</type> 
    1155     <description>Error callback function</description> 
    1156   </typedef> 
    1157   <struct name="mxml_index_s"> 
    1158     <description>An XML node index.</description> 
    1159     <variable name="alloc_nodes"> 
    1160       <type>int</type> 
    1161       <description>Allocated nodes in index</description> 
    1162     </variable> 
    1163     <variable name="attr"> 
    1164       <type>char *</type> 
    1165       <description>Attribute used for indexing or NULL</description> 
    1166     </variable> 
    1167     <variable name="cur_node"> 
    1168       <type>int</type> 
    1169       <description>Current node</description> 
    1170     </variable> 
    1171     <variable name="nodes"> 
    1172       <type>mxml_node_t **</type> 
    1173       <description>Node array</description> 
    1174     </variable> 
    1175     <variable name="num_nodes"> 
    1176       <type>int</type> 
    1177       <description>Number of nodes in index</description> 
    1178     </variable> 
    1179   </struct> 
    1180   <typedef name="mxml_index_t"> 
    1181     <type>struct mxml_index_s</type> 
    1182     <description>An XML node index.</description> 
    1183   </typedef> 
    1184   <typedef name="mxml_load_cb_t"> 
    1185     <type>mxml_type_t(*)(mxml_node_t *)</type> 
    1186     <description>Load callback function</description> 
    1187   </typedef> 
    1188   <struct name="mxml_node_s"> 
    1189     <description>An XML node.</description> 
    1190     <variable name="child"> 
    1191       <type>struct mxml_node_s *</type> 
    1192       <description>First child node</description> 
    1193     </variable> 
    1194     <variable name="last_child"> 
    1195       <type>struct mxml_node_s *</type> 
    1196       <description>Last child node</description> 
    1197     </variable> 
    1198     <variable name="next"> 
    1199       <type>struct mxml_node_s *</type> 
    1200       <description>Next node under same parent</description> 
    1201     </variable> 
    1202     <variable name="parent"> 
    1203       <type>struct mxml_node_s *</type> 
    1204       <description>Parent node</description> 
    1205     </variable> 
    1206     <variable name="prev"> 
    1207       <type>struct mxml_node_s *</type> 
    1208       <description>Previous node under same parent</description> 
    1209     </variable> 
    1210     <variable name="ref_count"> 
    1211       <type>int</type> 
    1212       <description>Use count</description> 
    1213     </variable> 
    1214     <variable name="type"> 
    1215       <type>mxml_type_t</type> 
    1216       <description>Node type</description> 
    1217     </variable> 
    1218     <variable name="user_data"> 
    1219       <type>void *</type> 
    1220       <description>User data</description> 
    1221     </variable> 
    1222     <variable name="value"> 
    1223       <type>mxml_value_t</type> 
    1224       <description>Node value</description> 
    1225     </variable> 
    1226   </struct> 
    1227   <typedef name="mxml_node_t"> 
    1228     <type>struct mxml_node_s</type> 
    1229     <description>An XML node.</description> 
    1230   </typedef> 
    1231   <typedef name="mxml_save_cb_t"> 
    1232     <type>const char *(*)(mxml_node_t *, int)</type> 
    1233     <description>Save callback function</description> 
    1234   </typedef> 
    1235   <typedef name="mxml_sax_cb_t"> 
    1236     <type>void(*)(mxml_node_t *, mxml_sax_event_t, void *)</type> 
    1237     <description>SAX callback function</description> 
    1238   </typedef> 
    1239   <enumeration name="mxml_sax_event_e"> 
    1240     <description>SAX event type.</description> 
    1241     <constant name="MXML_SAX_CDATA"> 
    1242       <description>CDATA node</description> 
    1243     </constant> 
    1244     <constant name="MXML_SAX_COMMENT"> 
    1245       <description>Comment node</description> 
    1246     </constant> 
    1247     <constant name="MXML_SAX_DATA"> 
    1248       <description>Data node</description> 
    1249     </constant> 
    1250     <constant name="MXML_SAX_DIRECTIVE"> 
    1251       <description>Processing directive node</description> 
    1252     </constant> 
    1253     <constant name="MXML_SAX_ELEMENT_CLOSE"> 
    1254       <description>Element closed</description> 
    1255     </constant> 
    1256     <constant name="MXML_SAX_ELEMENT_OPEN"> 
    1257       <description>Element opened</description> 
    1258     </constant> 
    1259   </enumeration> 
    1260   <typedef name="mxml_sax_event_t"> 
    1261     <type>enum mxml_sax_event_e</type> 
    1262     <description>SAX event type.</description> 
    1263   </typedef> 
    1264   <struct name="mxml_text_s"> 
    1265     <description>An XML text value.</description> 
    1266     <variable name="string"> 
    1267       <type>char *</type> 
    1268       <description>Fragment string</description> 
    1269     </variable> 
    1270     <variable name="whitespace"> 
    1271       <type>int</type> 
    1272       <description>Leading whitespace?</description> 
    1273     </variable> 
    1274   </struct> 
    1275   <typedef name="mxml_text_t"> 
    1276     <type>struct mxml_text_s</type> 
    1277     <description>An XML text value.</description> 
    1278   </typedef> 
    1279   <enumeration name="mxml_type_e"> 
    1280     <description>The XML node type.</description> 
    1281     <constant name="MXML_CUSTOM"> 
    1282       <description>Custom data @since Mini-XML 2.1@</description> 
    1283     </constant> 
    1284     <constant name="MXML_ELEMENT"> 
    1285       <description>XML element with attributes</description> 
    1286     </constant> 
    1287     <constant name="MXML_IGNORE"> 
    1288       <description>Ignore/throw away node @since Mini-XML 2.3@</description> 
    1289     </constant> 
    1290     <constant name="MXML_INTEGER"> 
    1291       <description>Integer value</description> 
    1292     </constant> 
    1293     <constant name="MXML_OPAQUE"> 
    1294       <description>Opaque string</description> 
    1295     </constant> 
    1296     <constant name="MXML_REAL"> 
    1297       <description>Real value</description> 
    1298     </constant> 
    1299     <constant name="MXML_TEXT"> 
    1300       <description>Text fragment</description> 
    1301     </constant> 
    1302   </enumeration> 
    1303   <typedef name="mxml_type_t"> 
    1304     <description>The XML node type.</description> 
    1305     <type>enum mxml_type_e</type> 
    1306   </typedef> 
    1307   <typedef name="mxml_value_t"> 
    1308     <type>union mxml_value_u</type> 
    1309     <description>An XML node value.</description> 
    1310   </typedef> 
    1311   <union name="mxml_value_u"> 
    1312     <description>An XML node value.</description> 
    1313     <variable name="custom"> 
    1314       <type>mxml_custom_t</type> 
    1315       <description>Custom data @since Mini-XML 2.1@</description> 
    1316     </variable> 
    1317     <variable name="element"> 
    1318       <type>mxml_element_t</type> 
    1319       <description>Element</description> 
    1320     </variable> 
    1321     <variable name="integer"> 
    1322       <type>int</type> 
    1323       <description>Integer number</description> 
    1324     </variable> 
    1325     <variable name="opaque"> 
    1326       <type>char *</type> 
    1327       <description>Opaque string</description> 
    1328     </variable> 
    1329     <variable name="real"> 
    1330       <type>double</type> 
    1331       <description>Real number</description> 
    1332     </variable> 
    1333     <variable name="text"> 
    1334       <type>mxml_text_t</type> 
    1335       <description>Text fragment</description> 
    1336     </variable> 
    1337   </union> 
    1338 </mxmldoc> 
  • temp1.xmlfd

    diff -Naur mxml-2.6/temp1.xmlfd mxml-2.6-haiku/temp1.xmlfd
    old new  
     1<?xml version="1.0" encoding="UTF-8"?> 
     2<group> 
     3        <option> 
     4                <keyword type="opaque">InputSlot</keyword> 
     5                <default type="opaque">Auto</default> 
     6                <text>Media Source</text> 
     7                <order type="real">10.000000</order> 
     8                <choice> 
     9                        <keyword type="opaque">Auto</keyword> 
     10                        <text>Auto Tray Selection</text> 
     11                        <code type="opaque" /> 
     12                </choice> 
     13                <choice> 
     14                        <keyword type="opaque">Upper</keyword> 
     15                        <text>Tray 1</text> 
     16                        <code type="opaque">&lt;&lt;/MediaPosition 0&gt;&gt;setpagedevice</code> 
     17                </choice> 
     18                <choice> 
     19                        <keyword type="opaque">Lower</keyword> 
     20                        <text>Tray 2</text> 
     21                        <code type="opaque">&lt;&lt;/MediaPosition 1&gt;&gt;setpagedevice</code> 
     22                </choice> 
     23        </option> 
     24        <integer>123</integer> 
     25        <string>Now is the time for all good men to come to the aid of their 
     26country.</string> 
     27        <!-- this is a comment --> 
     28        <![CDATA[this is CDATA 0123456789ABCDEF]]> 
     29</group> 

Download in other formats:

  • Original Format

Trac Powered

Powered by Trac 0.13dev-r10686
By Edgewall Software.

Visit the Trac open source project at
http://trac.edgewall.org/