<refentry id="xmlsec-xmltree">
<refmeta>
<refentrytitle>xmltree.h</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>XMLSEC Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>xmltree.h</refname><refpurpose>The XML tree helper functions.</refpurpose>
</refnamediv>

<refsynopsisdiv><title>Synopsis</title>
<synopsis>



<link linkend="xmlDocPtr">xmlDocPtr</link>   <link linkend="xmlSecParseFile">xmlSecParseFile</link>                 (const char *filename);
<link linkend="xmlDocPtr">xmlDocPtr</link>   <link linkend="xmlSecParseMemory">xmlSecParseMemory</link>               (unsigned char *buffer,
                                             <link linkend="size-t">size_t</link> size,
                                             int recovery);
<link linkend="xmlDocPtr">xmlDocPtr</link>   <link linkend="xmlSecParseMemoryExt">xmlSecParseMemoryExt</link>            (unsigned char *prefix,
                                             <link linkend="size-t">size_t</link> prefixSize,
                                             unsigned char *buffer,
                                             <link linkend="size-t">size_t</link> bufferSize,
                                             unsigned char *postfix,
                                             <link linkend="size-t">size_t</link> postfixSize);
int         <link linkend="xmlSecCheckNodeName">xmlSecCheckNodeName</link>             (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);
<link linkend="xmlNodePtr">xmlNodePtr</link>  <link linkend="xmlSecGetNextElementNode">xmlSecGetNextElementNode</link>        (<link linkend="xmlNodePtr">xmlNodePtr</link> cur);
<link linkend="xmlNodePtr">xmlNodePtr</link>  <link linkend="xmlSecFindChild">xmlSecFindChild</link>                 (const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);
<link linkend="xmlNodePtr">xmlNodePtr</link>  <link linkend="xmlSecFindParent">xmlSecFindParent</link>                (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);
<link linkend="xmlNodePtr">xmlNodePtr</link>  <link linkend="xmlSecFindNode">xmlSecFindNode</link>                  (const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);
<link linkend="xmlNodePtr">xmlNodePtr</link>  <link linkend="xmlSecAddChild">xmlSecAddChild</link>                  (<link linkend="xmlNodePtr">xmlNodePtr</link> parent,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);
<link linkend="xmlNodePtr">xmlNodePtr</link>  <link linkend="xmlSecAddNextSibling">xmlSecAddNextSibling</link>            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);
<link linkend="xmlNodePtr">xmlNodePtr</link>  <link linkend="xmlSecAddPrevSibling">xmlSecAddPrevSibling</link>            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);
int         <link linkend="xmlSecReplaceNode">xmlSecReplaceNode</link>               (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             <link linkend="xmlNodePtr">xmlNodePtr</link> newNode);
int         <link linkend="xmlSecReplaceContent">xmlSecReplaceContent</link>            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             <link linkend="xmlNodePtr">xmlNodePtr</link> newNode);
int         <link linkend="xmlSecReplaceNodeBuffer">xmlSecReplaceNodeBuffer</link>         (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             unsigned char *buffer,
                                             <link linkend="size-t">size_t</link> size);
void        <link linkend="xmlSecAddIDs">xmlSecAddIDs</link>                    (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
                                             <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
                                             const <link linkend="xmlChar">xmlChar</link> **ids);
#define     <link linkend="xmlSecGetHex">xmlSecGetHex</link>                    (c)
#define     <link linkend="xmlSecIsHex">xmlSecIsHex</link>                     (c)
</synopsis>
</refsynopsisdiv>





<refsect1>
<title>Description</title>
<para>

</para>
</refsect1>

<refsect1>
<title>Details</title>
<refsect2>
<title><anchor id="xmlSecParseFile">xmlSecParseFile ()</title>
<programlisting><link linkend="xmlDocPtr">xmlDocPtr</link>   xmlSecParseFile                 (const char *filename);</programlisting>
<para>
Loads XML Doc from file <parameter>filename</parameter>. We need a special version because of 
c14n issue. The code is copied from <link linkend="xmlSAXParseFileWithData">xmlSAXParseFileWithData</link>() function.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>filename</parameter>&nbsp;:</entry>
<entry> the filename.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the loaded XML document or NULL if an error occurs.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecParseMemory">xmlSecParseMemory ()</title>
<programlisting><link linkend="xmlDocPtr">xmlDocPtr</link>   xmlSecParseMemory               (unsigned char *buffer,
                                             <link linkend="size-t">size_t</link> size,
                                             int recovery);</programlisting>
<para>
Loads XML Doc from memory. We need a special version because of 
c14n issue. The code is copied from <link linkend="xmlSAXParseMemory">xmlSAXParseMemory</link>() function.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
<entry> the input buffer.
</entry></row>
<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
<entry> the input buffer size.
</entry></row>
<row><entry align="right"><parameter>recovery</parameter>&nbsp;:</entry>
<entry> the flag.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the loaded XML document or NULL if an error occurs.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecParseMemoryExt">xmlSecParseMemoryExt ()</title>
<programlisting><link linkend="xmlDocPtr">xmlDocPtr</link>   xmlSecParseMemoryExt            (unsigned char *prefix,
                                             <link linkend="size-t">size_t</link> prefixSize,
                                             unsigned char *buffer,
                                             <link linkend="size-t">size_t</link> bufferSize,
                                             unsigned char *postfix,
                                             <link linkend="size-t">size_t</link> postfixSize);</programlisting>
<para>
Loads XML Doc from 3 chunks of memory: <parameter>prefix</parameter>, <parameter>buffer</parameter> and <parameter>postfix</parameter>. '</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>prefix</parameter>&nbsp;:</entry>
<entry> the first part of the input.
</entry></row>
<row><entry align="right"><parameter>prefixSize</parameter>&nbsp;:</entry>
<entry> the size of the first part of the input.
</entry></row>
<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
<entry> the second part of the input.
</entry></row>
<row><entry align="right"><parameter>bufferSize</parameter>&nbsp;:</entry>
<entry> the size of the second part of the input.
</entry></row>
<row><entry align="right"><parameter>postfix</parameter>&nbsp;:</entry>
<entry> the third part of the input.
</entry></row>
<row><entry align="right"><parameter>postfixSize</parameter>&nbsp;:</entry>
<entry> the size of the third part of the input.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the loaded XML document or NULL if an error occurs.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecCheckNodeName">xmlSecCheckNodeName ()</title>
<programlisting>int         xmlSecCheckNodeName             (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
<para>
Checks that the node has a given name and a given namespace href.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
<entry> the pointer to an XML node.
</entry></row>
<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
<entry> the name,
</entry></row>
<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
<entry> the namespace href.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>1 if the node matches or 0 otherwise.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecGetNextElementNode">xmlSecGetNextElementNode ()</title>
<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link>  xmlSecGetNextElementNode        (<link linkend="xmlNodePtr">xmlNodePtr</link> cur);</programlisting>
<para>
Seraches for the next element node.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
<entry> the pointer to an XML node.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to next element node or NULL if it is not found.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecFindChild">xmlSecFindChild ()</title>
<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link>  xmlSecFindChild                 (const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
<para>
Searches a direct child of the <parameter>parent</parameter> node having given name and 
namespace href.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
<entry> the pointer to XML node.
</entry></row>
<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
<entry> the name.
</entry></row>
<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
<entry> the namespace href (may be NULL).
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the found node or NULL if an error occurs or 
node is not found.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecFindParent">xmlSecFindParent ()</title>
<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link>  xmlSecFindParent                (const <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
<para>
Searches the ancestors axis of the <parameter>cur</parameter> node for a node having given name 
and namespace href.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
<entry> the pointer to an XML node.
</entry></row>
<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
<entry> the name.
</entry></row>
<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
<entry> the namespace href (may be NULL).
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the found node or NULL if an error occurs or 
node is not found.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecFindNode">xmlSecFindNode ()</title>
<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link>  xmlSecFindNode                  (const <link linkend="xmlNodePtr">xmlNodePtr</link> parent,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
<para>
Searches all children of the <parameter>parent</parameter> node having given name and 
namespace href.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
<entry> the pointer to XML node.
</entry></row>
<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
<entry> the name.
</entry></row>
<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
<entry> the namespace href (may be NULL).
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>the pointer to the found node or NULL if an error occurs or 
node is not found.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecAddChild">xmlSecAddChild ()</title>
<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link>  xmlSecAddChild                  (<link linkend="xmlNodePtr">xmlNodePtr</link> parent,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
<para>
Adds a child to the node <parameter>parent</parameter> with given <parameter>name</parameter> and namespace <parameter>ns</parameter>.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>parent</parameter>&nbsp;:</entry>
<entry> the pointer to an XML node.
</entry></row>
<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
<entry> the new node name.
</entry></row>
<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
<entry> the new node namespace.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the new node or NULL if an error occurs.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecAddNextSibling">xmlSecAddNextSibling ()</title>
<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link>  xmlSecAddNextSibling            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
<para>
Adds next sibling to the node <parameter>node</parameter> with given <parameter>name</parameter> and namespace <parameter>ns</parameter>.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
<entry> the pointer to an XML node.
</entry></row>
<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
<entry> the new node name.
</entry></row>
<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
<entry> the new node namespace.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the new node or NULL if an error occurs.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecAddPrevSibling">xmlSecAddPrevSibling ()</title>
<programlisting><link linkend="xmlNodePtr">xmlNodePtr</link>  xmlSecAddPrevSibling            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             const <link linkend="xmlChar">xmlChar</link> *name,
                                             const <link linkend="xmlChar">xmlChar</link> *ns);</programlisting>
<para>
Adds prev sibling to the node <parameter>node</parameter> with given <parameter>name</parameter> and namespace <parameter>ns</parameter>.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
<entry> the pointer to an XML node.
</entry></row>
<row><entry align="right"><parameter>name</parameter>&nbsp;:</entry>
<entry> the new node name.
</entry></row>
<row><entry align="right"><parameter>ns</parameter>&nbsp;:</entry>
<entry> the new node namespace.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>pointer to the new node or NULL if an error occurs.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecReplaceNode">xmlSecReplaceNode ()</title>
<programlisting>int         xmlSecReplaceNode               (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             <link linkend="xmlNodePtr">xmlNodePtr</link> newNode);</programlisting>
<para>
Swaps the <parameter>node</parameter> and <parameter>newNode</parameter> in the XML tree.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
<entry> the current node.
</entry></row>
<row><entry align="right"><parameter>newNode</parameter>&nbsp;:</entry>
<entry> the new node.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecReplaceContent">xmlSecReplaceContent ()</title>
<programlisting>int         xmlSecReplaceContent            (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             <link linkend="xmlNodePtr">xmlNodePtr</link> newNode);</programlisting>
<para>
Swaps the content of <parameter>node</parameter> and <parameter>newNode</parameter>.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
<entry> the current node.
</entry></row>
<row><entry align="right"><parameter>newNode</parameter>&nbsp;:</entry>
<entry> the new node.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecReplaceNodeBuffer">xmlSecReplaceNodeBuffer ()</title>
<programlisting>int         xmlSecReplaceNodeBuffer         (<link linkend="xmlNodePtr">xmlNodePtr</link> node,
                                             unsigned char *buffer,
                                             <link linkend="size-t">size_t</link> size);</programlisting>
<para>
Swaps the <parameter>node</parameter> and the parsed XML data from the <parameter>buffer</parameter> in the XML tree.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>node</parameter>&nbsp;:</entry>
<entry> the current node.
</entry></row>
<row><entry align="right"><parameter>buffer</parameter>&nbsp;:</entry>
<entry> the XML data.
</entry></row>
<row><entry align="right"><parameter>size</parameter>&nbsp;:</entry>
<entry> the XML data size.
</entry></row>
<row><entry align="right"><emphasis>Returns</emphasis> :</entry><entry>0 on success or a negative value if an error occurs.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecAddIDs">xmlSecAddIDs ()</title>
<programlisting>void        xmlSecAddIDs                    (<link linkend="xmlDocPtr">xmlDocPtr</link> doc,
                                             <link linkend="xmlNodePtr">xmlNodePtr</link> cur,
                                             const <link linkend="xmlChar">xmlChar</link> **ids);</programlisting>
<para>
Walks thru all children of the <parameter>cur</parameter> node and adds all attributes 
from the <parameter>ids</parameter> list to the <parameter>doc</parameter> document IDs attributes hash.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>doc</parameter>&nbsp;:</entry>
<entry> the pointer to an XML document.
</entry></row>
<row><entry align="right"><parameter>cur</parameter>&nbsp;:</entry>
<entry> the pointer to an XML node.
</entry></row>
<row><entry align="right"><parameter>ids</parameter>&nbsp;:</entry>
<entry> the pointer to a NULL terminated list of ID attributes.
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecGetHex">xmlSecGetHex()</title>
<programlisting>#define     xmlSecGetHex(c)</programlisting>
<para>
Macro. Returns the hex value of the <parameter>c</parameter>.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>c</parameter>&nbsp;:</entry>
<entry> the character,
</entry></row>
</tbody></tgroup></informaltable></refsect2>
<refsect2>
<title><anchor id="xmlSecIsHex">xmlSecIsHex()</title>
<programlisting>#define     xmlSecIsHex(c)</programlisting>
<para>
Macro. Returns 1 if <parameter>c</parameter> is a hex digit or 0 other wise.</para>
<para>

</para><informaltable pgwide="1" frame="none" role="params">
<tgroup cols="2">
<colspec colwidth="2*">
<colspec colwidth="8*">
<tbody>
<row><entry align="right"><parameter>c</parameter>&nbsp;:</entry>
<entry> the character.
</entry></row>
</tbody></tgroup></informaltable></refsect2>

</refsect1>




</refentry>
