Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 2a4f630205088428fd6d4f4e7aa584a1 > files > 8

libconfuse-devel-2.6-6mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
 <title>confuse: confuse.h File Reference</title>
 <link rel="stylesheet" href="tutorial.css" type="text/css">
</head>
<body>

<div class="main">

<!-- doxygen-header.html ends here -->
<!-- Generated by Doxygen 1.5.1 -->
<div class="tabs">
  <ul>
    <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
    <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
    <li id="current"><a href="files.html"><span>Files</span></a></li>
    <li><a href="examples.html"><span>Examples</span></a></li>
  </ul></div>
<div class="tabs">
  <ul>
    <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    <li><a href="globals.html"><span>Globals</span></a></li>
  </ul></div>
<h1>confuse.h File Reference</h1>A configuration file parser library. <a href="#_details">More...</a>
<p>
<code>#include &lt;stdio.h&gt;</code><br>
<code>#include &lt;stdarg.h&gt;</code><br>

<p>
<a href="confuse_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcfg__t.html">cfg_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data structure holding information about a "section".  <a href="structcfg__t.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">union &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="unioncfg__value__t.html">cfg_value_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data structure holding the value of a fundamental option value.  <a href="unioncfg__value__t.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcfg__defvalue__t.html">cfg_defvalue_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data structure holding the default value given by the initialization macros.  <a href="structcfg__defvalue__t.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Data structure holding information about an option.  <a href="structcfg__opt__t.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="65df72d236bcc3e7f22c5b2b5c24bded"></a><!-- doxytag: member="confuse.h::CFGF_NONE" ref="65df72d236bcc3e7f22c5b2b5c24bded" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Flags. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="86b522a5daef5c07066b28f1585d2d77"></a><!-- doxytag: member="confuse.h::CFGF_MULTI" ref="86b522a5daef5c07066b28f1585d2d77" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#86b522a5daef5c07066b28f1585d2d77">CFGF_MULTI</a>&nbsp;&nbsp;&nbsp;1</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">option may be specified multiple times (only applies to sections) <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="644afc2caf9da9274ec08407997aa4ef"></a><!-- doxytag: member="confuse.h::CFGF_LIST" ref="644afc2caf9da9274ec08407997aa4ef" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#644afc2caf9da9274ec08407997aa4ef">CFGF_LIST</a>&nbsp;&nbsp;&nbsp;2</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">option is a list <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7adecc621a1910b8807c613051bd8d1d"></a><!-- doxytag: member="confuse.h::CFGF_NOCASE" ref="7adecc621a1910b8807c613051bd8d1d" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#7adecc621a1910b8807c613051bd8d1d">CFGF_NOCASE</a>&nbsp;&nbsp;&nbsp;4</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">configuration file is case insensitive <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="65d20dbd5b778dd1bf3b3895206b4497"></a><!-- doxytag: member="confuse.h::CFGF_TITLE" ref="65d20dbd5b778dd1bf3b3895206b4497" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#65d20dbd5b778dd1bf3b3895206b4497">CFGF_TITLE</a>&nbsp;&nbsp;&nbsp;8</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">option has a title (only applies to sections) <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9020ea37bfdb4f3e88a18d0a0d00cdd9"></a><!-- doxytag: member="confuse.h::CFGF_NODEFAULT" ref="9020ea37bfdb4f3e88a18d0a0d00cdd9" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#9020ea37bfdb4f3e88a18d0a0d00cdd9">CFGF_NODEFAULT</a>&nbsp;&nbsp;&nbsp;16</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">option has no default value <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0f8c2f9b82f0338efdc22df54805a467"></a><!-- doxytag: member="confuse.h::CFGF_NO_TITLE_DUPES" ref="0f8c2f9b82f0338efdc22df54805a467" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#0f8c2f9b82f0338efdc22df54805a467">CFGF_NO_TITLE_DUPES</a>&nbsp;&nbsp;&nbsp;32</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">multiple section titles must be unique (duplicates raises an error, only applies to sections) <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="66a1002180229809620b9bf2d3b888a6"></a><!-- doxytag: member="confuse.h::CFG_SUCCESS" ref="66a1002180229809620b9bf2d3b888a6" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#66a1002180229809620b9bf2d3b888a6">CFG_SUCCESS</a>&nbsp;&nbsp;&nbsp;0</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return codes from <a class="el" href="confuse_8h.html#0fca327466956c5580199e24397d49fe">cfg_parse()</a>. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="963e2ee16396dcf36f6d1937faa00f0c"></a><!-- doxytag: member="confuse.h::CFG_STR" ref="963e2ee16396dcf36f6d1937faa00f0c" args="(name, def, flags)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#963e2ee16396dcf36f6d1937faa00f0c">CFG_STR</a>(name, def, flags)&nbsp;&nbsp;&nbsp;__CFG_STR(name, def, flags, 0, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a string option. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="db9b1c168e72a3e065d2a06f2ed46c9f"></a><!-- doxytag: member="confuse.h::CFG_STR_LIST" ref="db9b1c168e72a3e065d2a06f2ed46c9f" args="(name, def, flags)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#db9b1c168e72a3e065d2a06f2ed46c9f">CFG_STR_LIST</a>(name, def, flags)&nbsp;&nbsp;&nbsp;__CFG_STR_LIST(name, def, flags, 0, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a string list option. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b5a56a69f0f8236be65c1d35a94b4437"></a><!-- doxytag: member="confuse.h::CFG_STR_CB" ref="b5a56a69f0f8236be65c1d35a94b4437" args="(name, def, flags, cb)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#b5a56a69f0f8236be65c1d35a94b4437">CFG_STR_CB</a>(name, def, flags, cb)&nbsp;&nbsp;&nbsp;__CFG_STR(name, def, flags, 0, cb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a string option with a value parsing callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="1ddedb0317b76dd9da7e8a9f7a585224"></a><!-- doxytag: member="confuse.h::CFG_STR_LIST_CB" ref="1ddedb0317b76dd9da7e8a9f7a585224" args="(name, def, flags, cb)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#1ddedb0317b76dd9da7e8a9f7a585224">CFG_STR_LIST_CB</a>(name, def, flags, cb)&nbsp;&nbsp;&nbsp;__CFG_STR_LIST(name, def, flags, 0, cb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a string list option with a value parsing callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#e54fbbc31bd8c7ec8d7f04597a9f749d">CFG_SIMPLE_STR</a>(name, svalue)&nbsp;&nbsp;&nbsp;__CFG_STR(name, 0, CFGF_NONE, svalue, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a "simple" string option.  <a href="#e54fbbc31bd8c7ec8d7f04597a9f749d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c2b17561e944264c594ea0802e56d308"></a><!-- doxytag: member="confuse.h::CFG_INT" ref="c2b17561e944264c594ea0802e56d308" args="(name, def, flags)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#c2b17561e944264c594ea0802e56d308">CFG_INT</a>(name, def, flags)&nbsp;&nbsp;&nbsp;__CFG_INT(name, def, flags, 0, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize an integer option. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="736ad9fa5db2697c232f490e84bbf622"></a><!-- doxytag: member="confuse.h::CFG_INT_LIST" ref="736ad9fa5db2697c232f490e84bbf622" args="(name, def, flags)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#736ad9fa5db2697c232f490e84bbf622">CFG_INT_LIST</a>(name, def, flags)&nbsp;&nbsp;&nbsp;__CFG_INT_LIST(name, def, flags, 0, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize an integer list option. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6f80d4ee3191ce3fb2f9e3b8fba50d49"></a><!-- doxytag: member="confuse.h::CFG_INT_CB" ref="6f80d4ee3191ce3fb2f9e3b8fba50d49" args="(name, def, flags, cb)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#6f80d4ee3191ce3fb2f9e3b8fba50d49">CFG_INT_CB</a>(name, def, flags, cb)&nbsp;&nbsp;&nbsp;__CFG_INT(name, def, flags, 0, cb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize an integer option with a value parsing callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="19c5daa71195724822a75b1fbd287209"></a><!-- doxytag: member="confuse.h::CFG_INT_LIST_CB" ref="19c5daa71195724822a75b1fbd287209" args="(name, def, flags, cb)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#19c5daa71195724822a75b1fbd287209">CFG_INT_LIST_CB</a>(name, def, flags, cb)&nbsp;&nbsp;&nbsp;__CFG_INT_LIST(name, def, flags, 0, cb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize an integer list option with a value parsing callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="88fa2e73a1294c7e8a1f1519b68ce0ff"></a><!-- doxytag: member="confuse.h::CFG_SIMPLE_INT" ref="88fa2e73a1294c7e8a1f1519b68ce0ff" args="(name, svalue)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#88fa2e73a1294c7e8a1f1519b68ce0ff">CFG_SIMPLE_INT</a>(name, svalue)&nbsp;&nbsp;&nbsp;__CFG_INT(name, 0, CFGF_NONE, svalue, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a "simple" integer option (see documentation for CFG_SIMPLE_STR for more information). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9c2060101b9c5e0d31a31ecd0dc6941d"></a><!-- doxytag: member="confuse.h::CFG_FLOAT" ref="9c2060101b9c5e0d31a31ecd0dc6941d" args="(name, def, flags)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#9c2060101b9c5e0d31a31ecd0dc6941d">CFG_FLOAT</a>(name, def, flags)&nbsp;&nbsp;&nbsp;__CFG_FLOAT(name, def, flags, 0, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a floating point option. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="09dd396c99a0948f03c14214e7735410"></a><!-- doxytag: member="confuse.h::CFG_FLOAT_LIST" ref="09dd396c99a0948f03c14214e7735410" args="(name, def, flags)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#09dd396c99a0948f03c14214e7735410">CFG_FLOAT_LIST</a>(name, def, flags)&nbsp;&nbsp;&nbsp;__CFG_FLOAT_LIST(name, def, flags, 0, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a floating point list option. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f4e3227ba01b96f42e5594f25fee00f3"></a><!-- doxytag: member="confuse.h::CFG_FLOAT_CB" ref="f4e3227ba01b96f42e5594f25fee00f3" args="(name, def, flags, cb)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#f4e3227ba01b96f42e5594f25fee00f3">CFG_FLOAT_CB</a>(name, def, flags, cb)&nbsp;&nbsp;&nbsp;__CFG_FLOAT(name, def, flags, 0, cb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a floating point option with a value parsing callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="82567f08b6a432bb92ba9718285b3e7b"></a><!-- doxytag: member="confuse.h::CFG_FLOAT_LIST_CB" ref="82567f08b6a432bb92ba9718285b3e7b" args="(name, def, flags, cb)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#82567f08b6a432bb92ba9718285b3e7b">CFG_FLOAT_LIST_CB</a>(name, def, flags, cb)&nbsp;&nbsp;&nbsp;__CFG_FLOAT_LIST(name, def, flags, 0, cb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a floating point list option with a value parsing callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="073b3b12a5ba4648a1f4f1aa40ff3a2a"></a><!-- doxytag: member="confuse.h::CFG_SIMPLE_FLOAT" ref="073b3b12a5ba4648a1f4f1aa40ff3a2a" args="(name, svalue)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#073b3b12a5ba4648a1f4f1aa40ff3a2a">CFG_SIMPLE_FLOAT</a>(name, svalue)&nbsp;&nbsp;&nbsp;__CFG_FLOAT(name, 0, CFGF_NONE, svalue, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a "simple" floating point option (see documentation for CFG_SIMPLE_STR for more information). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5a49fffc6735970c739e34d51a39c95d"></a><!-- doxytag: member="confuse.h::CFG_BOOL" ref="5a49fffc6735970c739e34d51a39c95d" args="(name, def, flags)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#5a49fffc6735970c739e34d51a39c95d">CFG_BOOL</a>(name, def, flags)&nbsp;&nbsp;&nbsp;__CFG_BOOL(name, def, flags, 0, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a boolean option. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d5449a10a53d3ce91ac5a5e0fbffdf35"></a><!-- doxytag: member="confuse.h::CFG_BOOL_LIST" ref="d5449a10a53d3ce91ac5a5e0fbffdf35" args="(name, def, flags)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#d5449a10a53d3ce91ac5a5e0fbffdf35">CFG_BOOL_LIST</a>(name, def, flags)&nbsp;&nbsp;&nbsp;__CFG_BOOL_LIST(name, def, flags, 0, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a boolean list option. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7951fcb3b77e290f5e2a04e1a7ee5f96"></a><!-- doxytag: member="confuse.h::CFG_BOOL_CB" ref="7951fcb3b77e290f5e2a04e1a7ee5f96" args="(name, def, flags, cb)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#7951fcb3b77e290f5e2a04e1a7ee5f96">CFG_BOOL_CB</a>(name, def, flags, cb)&nbsp;&nbsp;&nbsp;__CFG_BOOL(name, def, flags, 0, cb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a boolean option with a value parsing callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2d905913ddeeb2301dbbc039d6a73d31"></a><!-- doxytag: member="confuse.h::CFG_BOOL_LIST_CB" ref="2d905913ddeeb2301dbbc039d6a73d31" args="(name, def, flags, cb)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#2d905913ddeeb2301dbbc039d6a73d31">CFG_BOOL_LIST_CB</a>(name, def, flags, cb)&nbsp;&nbsp;&nbsp;__CFG_BOOL_LIST(name, def, flags, 0, cb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a boolean list option with a value parsing callback. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="228dc9c22fbcbeabed4d171774662ce8"></a><!-- doxytag: member="confuse.h::CFG_SIMPLE_BOOL" ref="228dc9c22fbcbeabed4d171774662ce8" args="(name, svalue)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#228dc9c22fbcbeabed4d171774662ce8">CFG_SIMPLE_BOOL</a>(name, svalue)&nbsp;&nbsp;&nbsp;__CFG_BOOL(name, cfg_false, CFGF_NONE, svalue, 0)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a "simple" boolean option (see documentation for CFG_SIMPLE_STR for more information). <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#043d5c79624269e5f60f59a698e461a6">CFG_SEC</a>(name, opts, flags)&nbsp;&nbsp;&nbsp;{name,CFGT_SEC,0,0,flags,opts,{0,0,cfg_false,0,0},0,0,0,0,0,0}</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a section.  <a href="#043d5c79624269e5f60f59a698e461a6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#b1ff85d6346cdefeb2ec2b696e50fde9">CFG_FUNC</a>(name, func)&nbsp;&nbsp;&nbsp;{name,CFGT_FUNC,0,0,CFGF_NONE,0,{0,0,cfg_false,0,0},func,0,0,0,0,0}</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a function.  <a href="#b1ff85d6346cdefeb2ec2b696e50fde9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#240cd896d81e219b3acbcf8f7279ffbb">CFG_PTR_CB</a>(name, def, flags, parsecb, freecb)&nbsp;&nbsp;&nbsp;__CFG_PTR(name, def, flags, 0, parsecb, freecb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a user-defined option.  <a href="#240cd896d81e219b3acbcf8f7279ffbb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6846af076094d05ca6b0041ebfef0f2b"></a><!-- doxytag: member="confuse.h::CFG_PTR_LIST_CB" ref="6846af076094d05ca6b0041ebfef0f2b" args="(name, def, flags, parsecb, freecb)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#6846af076094d05ca6b0041ebfef0f2b">CFG_PTR_LIST_CB</a>(name, def, flags, parsecb, freecb)&nbsp;&nbsp;&nbsp;__CFG_PTR(name, def, flags | CFGF_LIST, 0, parsecb, freecb)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initialize a list of user-defined options. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#6b29dd8a4c6cd3d392d4ab6b2e535597">CFG_END</a>()&nbsp;&nbsp;&nbsp;{0,CFGT_NONE,0,0,CFGF_NONE,0,{0,0,cfg_false,0,0},0,0,0,0,0,0}</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Terminate list of options.  <a href="#6b29dd8a4c6cd3d392d4ab6b2e535597"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a03c699cc8d5edd44646c06953687c29">cfg_func_t</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, int argc, const char **argv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function prototype used by CFGT_FUNC options.  <a href="#a03c699cc8d5edd44646c06953687c29"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index, FILE *fp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Function prototype used by the cfg_print_ functions.  <a href="#8a08c4cec09dd5644dc451c3ea0eb613"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#36a881bfc97488a48d78ad172846c360">cfg_callback_t</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, const char *value, void *result)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Value parsing callback prototype.  <a href="#36a881bfc97488a48d78ad172846c360"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#19556f2582c33df0a9e67b4ef284acb2">cfg_validate_callback_t</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Validating callback prototype.  <a href="#19556f2582c33df0a9e67b4ef284acb2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#151da832c725d2a0ddb8d17a60370d24">cfg_free_func_t</a> (void *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">User-defined memory release function for CFG_PTR values.  <a href="#151da832c725d2a0ddb8d17a60370d24"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0267993f28fe29108cb6ba085e23274c"></a><!-- doxytag: member="confuse.h::cfg_errfunc_t" ref="0267993f28fe29108cb6ba085e23274c" args="(cfg_t *cfg, const char *fmt, va_list ap)" -->
typedef void(*)&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#0267993f28fe29108cb6ba085e23274c">cfg_errfunc_t</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *fmt, va_list ap)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Error reporting function. <br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c7">cfg_type_t</a> { , <br>
&nbsp;&nbsp;<a class="el" href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c7f397ec05171bfacd9944b3d538fbd6dc">CFGT_INT</a>, 
<a class="el" href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c7bd237f20c366857f5521da911ba813cb">CFGT_FLOAT</a>, 
<a class="el" href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c7c6a18c97187c38648e11f18ad465f4f3">CFGT_STR</a>, 
<a class="el" href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c78f04ccea50fbe06f9a118b4423ead6fd">CFGT_BOOL</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c7a786f6288e70d0ec5fc0ef38f1671f1b">CFGT_SEC</a>, 
<a class="el" href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c7531bc0d05779dd0fbbe90ac9ae744c0f">CFGT_FUNC</a>, 
<a class="el" href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c71b2260acd1f600d08b1317676b90dbb4">CFGT_PTR</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fundamental option types.  <a href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c7">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Boolean values. <br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ec07794916564c8ab437e030ac618aa8">cfg_init</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opts, cfg_flag_t flags)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create and initialize a <a class="el" href="structcfg__t.html">cfg_t</a> structure.  <a href="#ec07794916564c8ab437e030ac618aa8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT int __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#0fca327466956c5580199e24397d49fe">cfg_parse</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *filename)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse a configuration file.  <a href="#0fca327466956c5580199e24397d49fe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT int __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#7ff54be21c704c3150ad439d7e17dcca">cfg_parse_fp</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, FILE *fp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Same as <a class="el" href="confuse_8h.html#0fca327466956c5580199e24397d49fe">cfg_parse()</a> above, but takes an already opened file as argument.  <a href="#7ff54be21c704c3150ad439d7e17dcca"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT int __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#6da020721a065f359cf343f014e7834c">cfg_parse_buf</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *buf)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Same as <a class="el" href="confuse_8h.html#0fca327466956c5580199e24397d49fe">cfg_parse()</a> above, but takes a character buffer as argument.  <a href="#6da020721a065f359cf343f014e7834c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#f6003c72a220f36cdecd3a14bd2285cc">cfg_free_value</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free the memory allocated for the values of a given option.  <a href="#f6003c72a220f36cdecd3a14bd2285cc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#0601a1513882caf574ea91a2177bdfdb">cfg_free</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Free a <a class="el" href="structcfg__t.html">cfg_t</a> context.  <a href="#0601a1513882caf574ea91a2177bdfdb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#0267993f28fe29108cb6ba085e23274c">cfg_errfunc_t</a> __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#e5cd3df98ec4c9895fbe73fd1c32f7a1">cfg_set_error_function</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="confuse_8h.html#0267993f28fe29108cb6ba085e23274c">cfg_errfunc_t</a> errfunc)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Install a user-defined error reporting function.  <a href="#e5cd3df98ec4c9895fbe73fd1c32f7a1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#5b448a145f12b67e90bd4e6bd387f129">cfg_error</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *fmt,...)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Show a parser error.  <a href="#5b448a145f12b67e90bd4e6bd387f129"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT signed long __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#baa00b2bb179bfc1062c67da8b2beae3">cfg_opt_getnint</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of an integer option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer.  <a href="#baa00b2bb179bfc1062c67da8b2beae3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT long int __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ddba63989fbf548cb0365ce875f138d4">cfg_getnint</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#aa50eb2942ae8e7cb7f9ccbfe002b3cd">cfg_getint()</a>, used for lists.  <a href="#ddba63989fbf548cb0365ce875f138d4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT long int __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aa50eb2942ae8e7cb7f9ccbfe002b3cd">cfg_getint</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of an integer option.  <a href="#aa50eb2942ae8e7cb7f9ccbfe002b3cd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT double __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a93c59e332c95937db84f93c1a9b25bd">cfg_opt_getnfloat</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a floating point option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer.  <a href="#a93c59e332c95937db84f93c1a9b25bd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT double __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#af63837150498ce6ecd530a9769f9e43">cfg_getnfloat</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#40e3d18ed9fbf5eae90aec58d68cb474">cfg_getfloat()</a>, used for lists.  <a href="#af63837150498ce6ecd530a9769f9e43"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT double __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#40e3d18ed9fbf5eae90aec58d68cb474">cfg_getfloat</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a floating point option.  <a href="#40e3d18ed9fbf5eae90aec58d68cb474"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT char *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#99289f214566005664f05cac4dc50318">cfg_opt_getnstr</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a string option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer.  <a href="#99289f214566005664f05cac4dc50318"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT char *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#abb00a590331a4d9d4e772201dff34d1">cfg_getnstr</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#4a9c34acc55cca63649c088d98053905">cfg_getstr()</a>, used for lists.  <a href="#abb00a590331a4d9d4e772201dff34d1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT char *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#4a9c34acc55cca63649c088d98053905">cfg_getstr</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a string option.  <a href="#4a9c34acc55cca63649c088d98053905"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#f49441953ac0c45960728b347c25dba3">cfg_opt_getnbool</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a boolean option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer.  <a href="#f49441953ac0c45960728b347c25dba3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#8984944ec9de3a67e3007bfba32f2127">cfg_getnbool</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#b4903f75c29f9c2973696039c4f5c0df">cfg_getbool()</a>, used for lists.  <a href="#8984944ec9de3a67e3007bfba32f2127"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#b4903f75c29f9c2973696039c4f5c0df">cfg_getbool</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a boolean option.  <a href="#b4903f75c29f9c2973696039c4f5c0df"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#d4f0fdb31b6c0113b3c78891e8ee5429">cfg_getptr</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a user-defined option (void pointer).  <a href="#d4f0fdb31b6c0113b3c78891e8ee5429"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#4312c6bc126283ad8b6dc849c1138a71">cfg_opt_getnsec</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a section option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer.  <a href="#4312c6bc126283ad8b6dc849c1138a71"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#d5e8eea765588892053b73eed4017edd">cfg_getnsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#a1339bde1f672aa0279a51bf2324545d">cfg_getsec()</a>, used for sections with the CFGF_MULTI flag set.  <a href="#d5e8eea765588892053b73eed4017edd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#dec6a5049ac8306b0892f274e6d406ad">cfg_opt_gettsec</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, const char *title)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a section option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer and the title.  <a href="#dec6a5049ac8306b0892f274e6d406ad"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#c1fda0e6937653d891ae276ae69d0f76">cfg_gettsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, const char *title)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return a section given the title, used for section with the CFGF_TITLE flag set.  <a href="#c1fda0e6937653d891ae276ae69d0f76"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a1339bde1f672aa0279a51bf2324545d">cfg_getsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the value of a section option.  <a href="#a1339bde1f672aa0279a51bf2324545d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT unsigned int __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#1648e78297e9bc970b1f3fa90a715da6">cfg_opt_size</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the number of values this option has.  <a href="#1648e78297e9bc970b1f3fa90a715da6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT unsigned int __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#cb8b2b9aa7d9e2e3c0eca67ea27bed15">cfg_size</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the number of values this option has.  <a href="#cb8b2b9aa7d9e2e3c0eca67ea27bed15"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT const char *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#e5681800390fa1dad4b1412ef5288de7">cfg_title</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the title of a section.  <a href="#e5681800390fa1dad4b1412ef5288de7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT const char *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#af379c267736432e004cccf3b2786bfa">cfg_name</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the name of a section.  <a href="#af379c267736432e004cccf3b2786bfa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT const char *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#6d3645d6140afbd45b0f2b1475e56ffe">cfg_opt_name</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the name of an option.  <a href="#6d3645d6140afbd45b0f2b1475e56ffe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT int __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#73e8e62914759632e5d5165fa877f4b3">cfg_include</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, int argc, const char **argv)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Predefined include-function.  <a href="#73e8e62914759632e5d5165fa877f4b3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT char *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ccd838b44797a5a89dbfd3ab60203375">cfg_tilde_expand</a> (const char *filename)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Does tilde expansion (~ -&gt; $HOME) on the filename.  <a href="#ccd838b44797a5a89dbfd3ab60203375"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT int __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#527f63939bf3f0b5d635fd86cd562086">cfg_parse_boolean</a> (const char *s)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse a boolean option string.  <a href="#527f63939bf3f0b5d635fd86cd562086"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return an option given it's name.  <a href="#33f48558624569678272f46925ead40f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#47cf0b1d0a9aebbff9846937be98f5bb">cfg_opt_setnint</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, long int value, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a value of an integer option.  <a href="#47cf0b1d0a9aebbff9846937be98f5bb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#9e145714b684d85ced96f32068ec0094">cfg_setint</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, long int value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of an integer option given its name.  <a href="#9e145714b684d85ced96f32068ec0094"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#8b94a2e75abe7536ab9af8ee7c7c048b">cfg_setnint</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, long int value, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a value of an integer option given its name and index.  <a href="#8b94a2e75abe7536ab9af8ee7c7c048b"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#8b3d540078b83cbc91697eac952f2ad2">cfg_opt_setnfloat</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, double value, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a value of a floating point option.  <a href="#8b3d540078b83cbc91697eac952f2ad2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#07cc4870b50211627415d5945bf05211">cfg_setfloat</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, double value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of a floating point option given its name.  <a href="#07cc4870b50211627415d5945bf05211"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#179cc35df34e6a51bd7e7a20e65478e1">cfg_setnfloat</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, double value, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a value of a floating point option given its name and index.  <a href="#179cc35df34e6a51bd7e7a20e65478e1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#e49271c4d9188f20ba2f507d14f8ed04">cfg_opt_setnbool</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, <a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> value, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a value of a boolean option.  <a href="#e49271c4d9188f20ba2f507d14f8ed04"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#0c3bcf2927802380238482e6fb09fd8e">cfg_setbool</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, <a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of a boolean option given its name.  <a href="#0c3bcf2927802380238482e6fb09fd8e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#38adad0d83e1a3d7b1f9b636e7de3bc7">cfg_setnbool</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, <a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> value, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a value of a boolean option given its name and index.  <a href="#38adad0d83e1a3d7b1f9b636e7de3bc7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#6ea17369ab2edbe94c236894a5b9df23">cfg_opt_setnstr</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, const char *value, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a value of a string option.  <a href="#6ea17369ab2edbe94c236894a5b9df23"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#dd02a10fac10c9b028c1438dff28343f">cfg_setstr</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, const char *value)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value of a string option given its name.  <a href="#dd02a10fac10c9b028c1438dff28343f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#cbbc5f4c7667fb2555be0c6d232f9f73">cfg_setnstr</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, const char *value, unsigned int index)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a value of a boolean option given its name and index.  <a href="#cbbc5f4c7667fb2555be0c6d232f9f73"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#15e2a938e67dc247b3e28a20c23d1ba6">cfg_setlist</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int nvalues,...)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set values for a list option.  <a href="#15e2a938e67dc247b3e28a20c23d1ba6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#8ec7f5825bb59e983093675447a0f1eb">cfg_addlist</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int nvalues,...)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Add values for a list option.  <a href="#8ec7f5825bb59e983093675447a0f1eb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#6b04cb223e843bee362021dcce9e5cc8">cfg_opt_nprint_var</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index, FILE *fp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default value print function.  <a href="#6b04cb223e843bee362021dcce9e5cc8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#7d764da177c6c53e8540b5416e09541f">cfg_opt_print_indent</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, FILE *fp, int indent)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print an option and its value to a file.  <a href="#7d764da177c6c53e8540b5416e09541f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#62f2b7c1ec02443315f43250c7a84728">cfg_opt_print</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, FILE *fp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print an option and its value to a file.  <a href="#62f2b7c1ec02443315f43250c7a84728"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ac68b8ff7e5000071afdd4a8660aeb91">cfg_print_indent</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, FILE *fp, int indent)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print the options and values to a file.  <a href="#ac68b8ff7e5000071afdd4a8660aeb91"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT void __export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#f4254e5ea4b856c4072df8526de929b2">cfg_print</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, FILE *fp)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print the options and values to a file.  <a href="#f4254e5ea4b856c4072df8526de929b2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> <br>
__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#292ba236b86cbe1bec047a467c8d605d">cfg_opt_set_print_func</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, <a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> pf)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a print callback function for an option.  <a href="#292ba236b86cbe1bec047a467c8d605d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> <br>
__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#03bdd2ac7828e5161e68da93cb07238d">cfg_set_print_func</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, <a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> pf)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a print callback function for an option given its name.  <a href="#03bdd2ac7828e5161e68da93cb07238d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#19556f2582c33df0a9e67b4ef284acb2">cfg_validate_callback_t</a> <br>
__export&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#8f07eca3c5e341ee6a81ecede2fbd5d8">cfg_set_validate_func</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, <a class="el" href="confuse_8h.html#19556f2582c33df0a9e67b4ef284acb2">cfg_validate_callback_t</a> vf)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Register a validating callback function for an option.  <a href="#8f07eca3c5e341ee6a81ecede2fbd5d8"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A configuration file parser library. 
<p>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="6b29dd8a4c6cd3d392d4ab6b2e535597"></a><!-- doxytag: member="confuse.h::CFG_END" ref="6b29dd8a4c6cd3d392d4ab6b2e535597" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CFG_END          </td>
          <td>(</td>
&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;{0,CFGT_NONE,0,0,CFGF_NONE,0,{0,0,cfg_false,0,0},0,0,0,0,0,0}</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Terminate list of options. 
<p>
This must be the last initializer in the option list. <dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a13">ftpconf.c</a>, <a class="el" href="reread_8c-example.html#a4">reread.c</a>, and <a class="el" href="simple_8c-example.html#a5">simple.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="b1ff85d6346cdefeb2ec2b696e50fde9"></a><!-- doxytag: member="confuse.h::CFG_FUNC" ref="b1ff85d6346cdefeb2ec2b696e50fde9" args="(name, func)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CFG_FUNC          </td>
          <td>(</td>
          <td class="paramtype">name,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">func&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;{name,CFGT_FUNC,0,0,CFGF_NONE,0,{0,0,cfg_false,0,0},func,0,0,0,0,0}</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize a function. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>func</em>&nbsp;</td><td>The callback function.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#a03c699cc8d5edd44646c06953687c29">cfg_func_t</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a18">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="240cd896d81e219b3acbcf8f7279ffbb"></a><!-- doxytag: member="confuse.h::CFG_PTR_CB" ref="240cd896d81e219b3acbcf8f7279ffbb" args="(name, def, flags, parsecb, freecb)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CFG_PTR_CB          </td>
          <td>(</td>
          <td class="paramtype">name,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">def,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">flags,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">parsecb,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">freecb&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;__CFG_PTR(name, def, flags, 0, parsecb, freecb)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize a user-defined option. 
<p>
CFG_PTR options can only be used together with a value parsing callback.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>def</em>&nbsp;</td><td>Default value </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>Flags </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>parsecb</em>&nbsp;</td><td>Value parsing callback </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>freecb</em>&nbsp;</td><td>Memory release function</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#36a881bfc97488a48d78ad172846c360">cfg_callback_t</a>, <a class="el" href="confuse_8h.html#151da832c725d2a0ddb8d17a60370d24">cfg_free_func_t</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="043d5c79624269e5f60f59a698e461a6"></a><!-- doxytag: member="confuse.h::CFG_SEC" ref="043d5c79624269e5f60f59a698e461a6" args="(name, opts, flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CFG_SEC          </td>
          <td>(</td>
          <td class="paramtype">name,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">opts,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">flags&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;{name,CFGT_SEC,0,0,flags,opts,{0,0,cfg_false,0,0},0,0,0,0,0,0}</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize a section. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>opts</em>&nbsp;</td><td>Array of options that are valid within this section</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>Flags, specify CFGF_MULTI if it should be possible to have multiples of the same section, and CFGF_TITLE if the section(s) must have a title (which can be used in the <a class="el" href="confuse_8h.html#c1fda0e6937653d891ae276ae69d0f76">cfg_gettsec()</a> function) </td></tr>
  </table>
</dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a14">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a6">reread.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="e54fbbc31bd8c7ec8d7f04597a9f749d"></a><!-- doxytag: member="confuse.h::CFG_SIMPLE_STR" ref="e54fbbc31bd8c7ec8d7f04597a9f749d" args="(name, svalue)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CFG_SIMPLE_STR          </td>
          <td>(</td>
          <td class="paramtype">name,         <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">svalue&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%">&nbsp;&nbsp;&nbsp;__CFG_STR(name, 0, CFGF_NONE, svalue, 0)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Initialize a "simple" string option. 
<p>
"Simple" options (in lack of a better expression) does not support lists of values or multiple sections. LibConfuse will store the value of a simple option in the user-defined location specified by the value parameter in the initializer. Simple options are not stored in the <a class="el" href="structcfg__t.html">cfg_t</a> context, only a pointer. Sections can not be initialized as a "simple" option.<p>
As of version 2.2, libConfuse can now return the values of simple options with the cfg_get functions. This allows using the new cfg_print function with simple options.<p>
libConfuse doesn't support handling default values for "simple" options. They are assumed to be set by the calling application before cfg_parse is called.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>name of the option </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>svalue</em>&nbsp;</td><td>pointer to a character pointer (a char **). This value must be initalized either to NULL or to a malloc()'ed string. You can't use <pre>
 char *user = "joe";
 ...
 <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> opts[] = {
     CFG_SIMPLE_STR("user", &amp;user),
 ...
 </pre> since libConfuse will try to free the static string "joe" (which is an error) when a "user" option is found. Rather, use the following code snippet: <pre>
 char *user = strdup("joe");
 ...
 <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> opts[] = {
      CFG_SIMPLE_STR("user", &amp;user),
 ...
 </pre> Alternatively, the default value can be set after the opts struct is defined, as in: <pre>
 char *user = 0;
 ...
 <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> opts[] = {
      CFG_SIMPLE_STR("user", &amp;user),
 ...
 user = strdup("joe");
 cfg = cfg_init(opts, 0);
 cfg_parse(cfg, filename);
 </pre> </td></tr>
  </table>
</dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="simple_8c-example.html#a2">simple.c</a>.</dl>
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="36a881bfc97488a48d78ad172846c360"></a><!-- doxytag: member="confuse.h::cfg_callback_t" ref="36a881bfc97488a48d78ad172846c360" args="(cfg_t *cfg, cfg_opt_t *opt, const char *value, void *result)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(*) <a class="el" href="confuse_8h.html#36a881bfc97488a48d78ad172846c360">cfg_callback_t</a>(<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, const char *value, void *result)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Value parsing callback prototype. 
<p>
This is a callback function (different from the one registered with the CFG_FUNC initializer) used to parse a value. This can be used to override the internal parsing of a value.<p>
Suppose you want an integer option that only can have certain values, for example 1, 2 and 3, and these should be written in the configuration file as "yes", "no" and "maybe". The callback function would be called with the found value ("yes", "no" or "maybe") as a string, and the result should be stored in the result parameter.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value found in the configuration file. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>Pointer to storage for the result, cast to a void pointer.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>On success, 0 should be returned. All other values indicates an error, and the parsing is aborted. The callback function should notify the error itself, for example by calling <a class="el" href="confuse_8h.html#5b448a145f12b67e90bd4e6bd387f129">cfg_error()</a>. </dd></dl>

</div>
</div><p>
<a class="anchor" name="151da832c725d2a0ddb8d17a60370d24"></a><!-- doxytag: member="confuse.h::cfg_free_func_t" ref="151da832c725d2a0ddb8d17a60370d24" args="(void *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(*) <a class="el" href="confuse_8h.html#151da832c725d2a0ddb8d17a60370d24">cfg_free_func_t</a>(void *value)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
User-defined memory release function for CFG_PTR values. 
<p>
This callback is used to free memory allocated in a value parsing callback function. Especially useful for CFG_PTR options, since libConfuse will not itself release such values. If the values are simply allocated with a malloc(3), one can use the standard free(3) function here. 
</div>
</div><p>
<a class="anchor" name="a03c699cc8d5edd44646c06953687c29"></a><!-- doxytag: member="confuse.h::cfg_func_t" ref="a03c699cc8d5edd44646c06953687c29" args="(cfg_t *cfg, cfg_opt_t *opt, int argc, const char **argv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(*) <a class="el" href="confuse_8h.html#a03c699cc8d5edd44646c06953687c29">cfg_func_t</a>(<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, int argc, const char **argv)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Function prototype used by CFGT_FUNC options. 
<p>
This is a callback function, registered with the CFG_FUNC initializer. Each time libConfuse finds a function, the registered callback function is called (parameters are passed as strings, any conversion to other types should be made in the callback function). libConfuse does not support any storage of the data found; these are passed as parameters to the callback, and it's the responsibility of the callback function to do whatever it should do with the data.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argc</em>&nbsp;</td><td>Number of arguments passed. The callback function is responsible for checking that the correct number of arguments are passed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>argv</em>&nbsp;</td><td>Arguments as an array of character strings.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>On success, 0 should be returned. All other values indicates an error, and the parsing is aborted. The callback function should notify the error itself, for example by calling <a class="el" href="confuse_8h.html#5b448a145f12b67e90bd4e6bd387f129">cfg_error()</a>.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#b1ff85d6346cdefeb2ec2b696e50fde9">CFG_FUNC</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="8a08c4cec09dd5644dc451c3ea0eb613"></a><!-- doxytag: member="confuse.h::cfg_print_func_t" ref="8a08c4cec09dd5644dc451c3ea0eb613" args="(cfg_opt_t *opt, unsigned int index, FILE *fp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(*) <a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a>(<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index, FILE *fp)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Function prototype used by the cfg_print_ functions. 
<p>
This callback function is used to print option values. For options with a value parsing callback, this is often required, especially if a string is mapped to an integer by the callback. This print callback must then map the integer back to the appropriate string.<p>
Except for functions, the print callback function should only print the value of the option, not the name and the equal sign (that is handled by the cfg_opt_print function). For function options however, the name and the parenthesis must be printed by this function. The value to print can be accessed with the cfg_opt_get functions.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fp</em>&nbsp;</td><td>File stream to print to, use stdout to print to the screen.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#f4254e5ea4b856c4072df8526de929b2">cfg_print</a>, <a class="el" href="confuse_8h.html#03bdd2ac7828e5161e68da93cb07238d">cfg_set_print_func</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="19556f2582c33df0a9e67b4ef284acb2"></a><!-- doxytag: member="confuse.h::cfg_validate_callback_t" ref="19556f2582c33df0a9e67b4ef284acb2" args="(cfg_t *cfg, cfg_opt_t *opt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef int(*) <a class="el" href="confuse_8h.html#19556f2582c33df0a9e67b4ef284acb2">cfg_validate_callback_t</a>(<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Validating callback prototype. 
<p>
This callback function is called after an option has been parsed and set. The function is called for both fundamental values (strings, integers etc) as well as lists and sections. This can for example be used to validate that all required options in a section has been set to sane values.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>On success, 0 should be returned. All other values indicates an error, and the parsing is aborted. The callback function should notify the error itself, for example by calling <a class="el" href="confuse_8h.html#5b448a145f12b67e90bd4e6bd387f129">cfg_error()</a>.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#8f07eca3c5e341ee6a81ecede2fbd5d8">cfg_set_validate_func</a> </dd></dl>

</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="9c62155b0deae0e1831507520a2ff7c7"></a><!-- doxytag: member="confuse.h::cfg_type_t" ref="9c62155b0deae0e1831507520a2ff7c7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="confuse_8h.html#9c62155b0deae0e1831507520a2ff7c7">cfg_type_t</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Fundamental option types. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="9c62155b0deae0e1831507520a2ff7c7f397ec05171bfacd9944b3d538fbd6dc"></a><!-- doxytag: member="CFGT_INT" ref="9c62155b0deae0e1831507520a2ff7c7f397ec05171bfacd9944b3d538fbd6dc" args="" -->CFGT_INT</em>&nbsp;</td><td>
integer </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9c62155b0deae0e1831507520a2ff7c7bd237f20c366857f5521da911ba813cb"></a><!-- doxytag: member="CFGT_FLOAT" ref="9c62155b0deae0e1831507520a2ff7c7bd237f20c366857f5521da911ba813cb" args="" -->CFGT_FLOAT</em>&nbsp;</td><td>
floating point number </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9c62155b0deae0e1831507520a2ff7c7c6a18c97187c38648e11f18ad465f4f3"></a><!-- doxytag: member="CFGT_STR" ref="9c62155b0deae0e1831507520a2ff7c7c6a18c97187c38648e11f18ad465f4f3" args="" -->CFGT_STR</em>&nbsp;</td><td>
string </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9c62155b0deae0e1831507520a2ff7c78f04ccea50fbe06f9a118b4423ead6fd"></a><!-- doxytag: member="CFGT_BOOL" ref="9c62155b0deae0e1831507520a2ff7c78f04ccea50fbe06f9a118b4423ead6fd" args="" -->CFGT_BOOL</em>&nbsp;</td><td>
boolean value </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9c62155b0deae0e1831507520a2ff7c7a786f6288e70d0ec5fc0ef38f1671f1b"></a><!-- doxytag: member="CFGT_SEC" ref="9c62155b0deae0e1831507520a2ff7c7a786f6288e70d0ec5fc0ef38f1671f1b" args="" -->CFGT_SEC</em>&nbsp;</td><td>
section </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9c62155b0deae0e1831507520a2ff7c7531bc0d05779dd0fbbe90ac9ae744c0f"></a><!-- doxytag: member="CFGT_FUNC" ref="9c62155b0deae0e1831507520a2ff7c7531bc0d05779dd0fbbe90ac9ae744c0f" args="" -->CFGT_FUNC</em>&nbsp;</td><td>
function </td></tr>
<tr><td valign="top"><em><a class="anchor" name="9c62155b0deae0e1831507520a2ff7c71b2260acd1f600d08b1317676b90dbb4"></a><!-- doxytag: member="CFGT_PTR" ref="9c62155b0deae0e1831507520a2ff7c71b2260acd1f600d08b1317676b90dbb4" args="" -->CFGT_PTR</em>&nbsp;</td><td>
pointer to user-defined value </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="8ec7f5825bb59e983093675447a0f1eb"></a><!-- doxytag: member="confuse.h::cfg_addlist" ref="8ec7f5825bb59e983093675447a0f1eb" args="(cfg_t *cfg, const char *name, unsigned int nvalues,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_addlist           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>nvalues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Add values for a list option. 
<p>
The new values are appended to any current values in the list.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nvalues</em>&nbsp;</td><td>Number of values to add. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>The values to add, the type must match the type of the option and the number of values must be equal to the nvalues parameter. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="5b448a145f12b67e90bd4e6bd387f129"></a><!-- doxytag: member="confuse.h::cfg_error" ref="5b448a145f12b67e90bd4e6bd387f129" args="(cfg_t *cfg, const char *fmt,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_error           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Show a parser error. 
<p>
Any user-defined error reporting function is called. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#e5cd3df98ec4c9895fbe73fd1c32f7a1">cfg_set_error_function</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a2">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="0601a1513882caf574ea91a2177bdfdb"></a><!-- doxytag: member="confuse.h::cfg_free" ref="0601a1513882caf574ea91a2177bdfdb" args="(cfg_t *cfg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_free           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free a <a class="el" href="structcfg__t.html">cfg_t</a> context. 
<p>
All memory allocated by the <a class="el" href="structcfg__t.html">cfg_t</a> context structure are freed, and can't be used in any further cfg_* calls. <dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a31">ftpconf.c</a>, <a class="el" href="reread_8c-example.html#a9">reread.c</a>, and <a class="el" href="simple_8c-example.html#a11">simple.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="f6003c72a220f36cdecd3a14bd2285cc"></a><!-- doxytag: member="confuse.h::cfg_free_value" ref="f6003c72a220f36cdecd3a14bd2285cc" args="(cfg_opt_t *opt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_free_value           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Free the memory allocated for the values of a given option. 
<p>
Only the values are freed, not the option itself (it is freed by <a class="el" href="confuse_8h.html#0601a1513882caf574ea91a2177bdfdb">cfg_free()</a>).<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#0601a1513882caf574ea91a2177bdfdb">cfg_free()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="b4903f75c29f9c2973696039c4f5c0df"></a><!-- doxytag: member="confuse.h::cfg_getbool" ref="b4903f75c29f9c2973696039c4f5c0df" args="(cfg_t *cfg, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export cfg_getbool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a boolean option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The requested value is returned. If the option was not set in the configuration file, the default value given in the corresponding <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a26">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="40e3d18ed9fbf5eae90aec58d68cb474"></a><!-- doxytag: member="confuse.h::cfg_getfloat" ref="40e3d18ed9fbf5eae90aec58d68cb474" args="(cfg_t *cfg, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT double __export cfg_getfloat           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a floating point option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The requested value is returned. If the option was not set in the configuration file, the default value given in the corresponding <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>

</div>
</div><p>
<a class="anchor" name="aa50eb2942ae8e7cb7f9ccbfe002b3cd"></a><!-- doxytag: member="confuse.h::cfg_getint" ref="aa50eb2942ae8e7cb7f9ccbfe002b3cd" args="(cfg_t *cfg, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT long int __export cfg_getint           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of an integer option. 
<p>
This is the same as calling cfg_getnint with index 0. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The requested value is returned. If the option was not set in the configuration file, the default value given in the corresponding <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a29">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a16">reread.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="8984944ec9de3a67e3007bfba32f2127"></a><!-- doxytag: member="confuse.h::cfg_getnbool" ref="8984944ec9de3a67e3007bfba32f2127" args="(cfg_t *cfg, const char *name, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export cfg_getnbool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indexed version of <a class="el" href="confuse_8h.html#b4903f75c29f9c2973696039c4f5c0df">cfg_getbool()</a>, used for lists. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#b4903f75c29f9c2973696039c4f5c0df">cfg_getbool</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="af63837150498ce6ecd530a9769f9e43"></a><!-- doxytag: member="confuse.h::cfg_getnfloat" ref="af63837150498ce6ecd530a9769f9e43" args="(cfg_t *cfg, const char *name, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT double __export cfg_getnfloat           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indexed version of <a class="el" href="confuse_8h.html#40e3d18ed9fbf5eae90aec58d68cb474">cfg_getfloat()</a>, used for lists. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#40e3d18ed9fbf5eae90aec58d68cb474">cfg_getfloat</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="ddba63989fbf548cb0365ce875f138d4"></a><!-- doxytag: member="confuse.h::cfg_getnint" ref="ddba63989fbf548cb0365ce875f138d4" args="(cfg_t *cfg, const char *name, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT long int __export cfg_getnint           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indexed version of <a class="el" href="confuse_8h.html#aa50eb2942ae8e7cb7f9ccbfe002b3cd">cfg_getint()</a>, used for lists. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#aa50eb2942ae8e7cb7f9ccbfe002b3cd">cfg_getint</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="d5e8eea765588892053b73eed4017edd"></a><!-- doxytag: member="confuse.h::cfg_getnsec" ref="d5e8eea765588892053b73eed4017edd" args="(cfg_t *cfg, const char *name, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_getnsec           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indexed version of <a class="el" href="confuse_8h.html#a1339bde1f672aa0279a51bf2324545d">cfg_getsec()</a>, used for sections with the CFGF_MULTI flag set. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the section to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#a1339bde1f672aa0279a51bf2324545d">cfg_getsec</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a27">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a15">reread.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="abb00a590331a4d9d4e772201dff34d1"></a><!-- doxytag: member="confuse.h::cfg_getnstr" ref="abb00a590331a4d9d4e772201dff34d1" args="(cfg_t *cfg, const char *name, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT char* __export cfg_getnstr           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Indexed version of <a class="el" href="confuse_8h.html#4a9c34acc55cca63649c088d98053905">cfg_getstr()</a>, used for lists. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#4a9c34acc55cca63649c088d98053905">cfg_getstr</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a30">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="33f48558624569678272f46925ead40f"></a><!-- doxytag: member="confuse.h::cfg_getopt" ref="33f48558624569678272f46925ead40f" args="(cfg_t *cfg, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a>* __export cfg_getopt           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return an option given it's name. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns a pointer to the option. If the option isn't declared, libConfuse will print an error message and return 0. </dd></dl>

</div>
</div><p>
<a class="anchor" name="d4f0fdb31b6c0113b3c78891e8ee5429"></a><!-- doxytag: member="confuse.h::cfg_getptr" ref="d4f0fdb31b6c0113b3c78891e8ee5429" args="(cfg_t *cfg, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void* __export cfg_getptr           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a user-defined option (void pointer). 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The requested value is returned. If the option was not set in the configuration file, the default value given in the corresponding <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>

</div>
</div><p>
<a class="anchor" name="a1339bde1f672aa0279a51bf2324545d"></a><!-- doxytag: member="confuse.h::cfg_getsec" ref="a1339bde1f672aa0279a51bf2324545d" args="(cfg_t *cfg, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_getsec           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a section option. 
<p>
The returned value is another <a class="el" href="structcfg__t.html">cfg_t</a> structure that can be used in following calls to cfg_getint, cfg_getstr or other get-functions. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The requested section is returned. If no section is found with that name, 0 is returned. There can only be default values for section without the CFGF_MULTI flag set. It is an error to try to get a section that isn't declared. </dd></dl>

</div>
</div><p>
<a class="anchor" name="4a9c34acc55cca63649c088d98053905"></a><!-- doxytag: member="confuse.h::cfg_getstr" ref="4a9c34acc55cca63649c088d98053905" args="(cfg_t *cfg, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT char* __export cfg_getstr           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a string option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The requested value is returned. If the option was not set in the configuration file, the default value given in the corresponding <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a28">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a13">reread.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="c1fda0e6937653d891ae276ae69d0f76"></a><!-- doxytag: member="confuse.h::cfg_gettsec" ref="c1fda0e6937653d891ae276ae69d0f76" args="(cfg_t *cfg, const char *name, const char *title)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_gettsec           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>title</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return a section given the title, used for section with the CFGF_TITLE flag set. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>title</em>&nbsp;</td><td>The title of this section. The CFGF_TITLE flag must have been set for this option. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#a1339bde1f672aa0279a51bf2324545d">cfg_getsec</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="73e8e62914759632e5d5165fa877f4b3"></a><!-- doxytag: member="confuse.h::cfg_include" ref="73e8e62914759632e5d5165fa877f4b3" args="(cfg_t *cfg, cfg_opt_t *opt, int argc, const char **argv)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT int __export cfg_include           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>argv</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Predefined include-function. 
<p>
This function can be used in the options passed to <a class="el" href="confuse_8h.html#ec07794916564c8ab437e030ac618aa8">cfg_init()</a> to specify a function for including other configuration files in the parsing. For example: CFG_FUNC("include", &amp;cfg_include) <dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a21">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="ec07794916564c8ab437e030ac618aa8"></a><!-- doxytag: member="confuse.h::cfg_init" ref="ec07794916564c8ab437e030ac618aa8" args="(cfg_opt_t *opts, cfg_flag_t flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_init           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">cfg_flag_t&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Create and initialize a <a class="el" href="structcfg__t.html">cfg_t</a> structure. 
<p>
This should be the first function called when setting up the parsing of a configuration file. The options passed in the first parameter is initialized using the CFG_* initializers. The last option in the option array must be <a class="el" href="confuse_8h.html#6b29dd8a4c6cd3d392d4ab6b2e535597">CFG_END()</a>, unless you like segmentation faults.<p>
The options must no longer be defined in the same scope as where the cfg_xxx functions are used (since version 2.3).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opts</em>&nbsp;</td><td>An arrary of options </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</td><td>One or more flags (bitwise or'ed together). Currently only CFGF_NOCASE is available. Use 0 if no flags are needed.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>A configuration context structure. This pointer is passed to almost all other functions as the first parameter. </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a22">ftpconf.c</a>, <a class="el" href="reread_8c-example.html#a10">reread.c</a>, and <a class="el" href="simple_8c-example.html#a7">simple.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="af379c267736432e004cccf3b2786bfa"></a><!-- doxytag: member="confuse.h::cfg_name" ref="af379c267736432e004cccf3b2786bfa" args="(cfg_t *cfg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT const char* __export cfg_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the name of a section. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns the title, or 0 if there is no title. This string should not be modified. </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a5">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="f49441953ac0c45960728b347c25dba3"></a><!-- doxytag: member="confuse.h::cfg_opt_getnbool" ref="f49441953ac0c45960728b347c25dba3" args="(cfg_opt_t *opt, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export cfg_opt_getnbool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a boolean option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#8984944ec9de3a67e3007bfba32f2127">cfg_getnbool</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="a93c59e332c95937db84f93c1a9b25bd"></a><!-- doxytag: member="confuse.h::cfg_opt_getnfloat" ref="a93c59e332c95937db84f93c1a9b25bd" args="(cfg_opt_t *opt, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT double __export cfg_opt_getnfloat           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a floating point option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#af63837150498ce6ecd530a9769f9e43">cfg_getnfloat</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="baa00b2bb179bfc1062c67da8b2beae3"></a><!-- doxytag: member="confuse.h::cfg_opt_getnint" ref="baa00b2bb179bfc1062c67da8b2beae3" args="(cfg_opt_t *opt, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT signed long __export cfg_opt_getnint           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of an integer option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#ddba63989fbf548cb0365ce875f138d4">cfg_getnint</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a4">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="4312c6bc126283ad8b6dc849c1138a71"></a><!-- doxytag: member="confuse.h::cfg_opt_getnsec" ref="4312c6bc126283ad8b6dc849c1138a71" args="(cfg_opt_t *opt, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_opt_getnsec           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a section option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#d5e8eea765588892053b73eed4017edd">cfg_getnsec</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a6">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="99289f214566005664f05cac4dc50318"></a><!-- doxytag: member="confuse.h::cfg_opt_getnstr" ref="99289f214566005664f05cac4dc50318" args="(cfg_opt_t *opt, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT char* __export cfg_opt_getnstr           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a string option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>Index of the value to get. Zero based. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#abb00a590331a4d9d4e772201dff34d1">cfg_getnstr</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="dec6a5049ac8306b0892f274e6d406ad"></a><!-- doxytag: member="confuse.h::cfg_opt_gettsec" ref="dec6a5049ac8306b0892f274e6d406ad" args="(cfg_opt_t *opt, const char *title)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_opt_gettsec           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>title</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Returns the value of a section option, given a <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> pointer and the title. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>title</em>&nbsp;</td><td>The title of this section. The CFGF_TITLE flag must have been set for this option. </td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#c1fda0e6937653d891ae276ae69d0f76">cfg_gettsec</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="6d3645d6140afbd45b0f2b1475e56ffe"></a><!-- doxytag: member="confuse.h::cfg_opt_name" ref="6d3645d6140afbd45b0f2b1475e56ffe" args="(cfg_opt_t *opt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT const char* __export cfg_opt_name           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the name of an option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns the title, or 0 if there is no title. This string should not be modified. </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a3">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="6b04cb223e843bee362021dcce9e5cc8"></a><!-- doxytag: member="confuse.h::cfg_opt_nprint_var" ref="6b04cb223e843bee362021dcce9e5cc8" args="(cfg_opt_t *opt, unsigned int index, FILE *fp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_opt_nprint_var           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>fp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Default value print function. 
<p>
Print only the value of a given option. Does not handle sections or functions. Use cfg_opt_print to print the whole assignment ("option = value"), or cfg_print to print the whole config file.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index in the option value array that should be printed </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fp</em>&nbsp;</td><td>File stream to print to.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#f4254e5ea4b856c4072df8526de929b2">cfg_print</a>, <a class="el" href="confuse_8h.html#62f2b7c1ec02443315f43250c7a84728">cfg_opt_print</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="62f2b7c1ec02443315f43250c7a84728"></a><!-- doxytag: member="confuse.h::cfg_opt_print" ref="62f2b7c1ec02443315f43250c7a84728" args="(cfg_opt_t *opt, FILE *fp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_opt_print           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>fp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Print an option and its value to a file. 
<p>
If a print callback function is specified for the option, it is used instead of cfg_opt_nprint_var.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fp</em>&nbsp;</td><td>File stream to print to.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="7d764da177c6c53e8540b5416e09541f"></a><!-- doxytag: member="confuse.h::cfg_opt_print_indent" ref="7d764da177c6c53e8540b5416e09541f" args="(cfg_opt_t *opt, FILE *fp, int indent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_opt_print_indent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>fp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>indent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Print an option and its value to a file. 
<p>
Same as cfg_opt_print, but with the indentation level specified. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#62f2b7c1ec02443315f43250c7a84728">cfg_opt_print</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="292ba236b86cbe1bec047a467c8d605d"></a><!-- doxytag: member="confuse.h::cfg_opt_set_print_func" ref="292ba236b86cbe1bec047a467c8d605d" args="(cfg_opt_t *opt, cfg_print_func_t pf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> __export cfg_opt_set_print_func           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a>&nbsp;</td>
          <td class="paramname"> <em>pf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a print callback function for an option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pf</em>&nbsp;</td><td>The print function callback.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="e49271c4d9188f20ba2f507d14f8ed04"></a><!-- doxytag: member="confuse.h::cfg_opt_setnbool" ref="e49271c4d9188f20ba2f507d14f8ed04" args="(cfg_opt_t *opt, cfg_bool_t value, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_opt_setnbool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a>&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a value of a boolean option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index in the option value array that should be modified. It is an error to set values with indices larger than 0 for options without the CFGF_LIST flag set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="8b3d540078b83cbc91697eac952f2ad2"></a><!-- doxytag: member="confuse.h::cfg_opt_setnfloat" ref="8b3d540078b83cbc91697eac952f2ad2" args="(cfg_opt_t *opt, double value, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_opt_setnfloat           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a value of a floating point option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index in the option value array that should be modified. It is an error to set values with indices larger than 0 for options without the CFGF_LIST flag set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="47cf0b1d0a9aebbff9846937be98f5bb"></a><!-- doxytag: member="confuse.h::cfg_opt_setnint" ref="47cf0b1d0a9aebbff9846937be98f5bb" args="(cfg_opt_t *opt, long int value, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_opt_setnint           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long int&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a value of an integer option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index in the option value array that should be modified. It is an error to set values with indices larger than 0 for options without the CFGF_LIST flag set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="6ea17369ab2edbe94c236894a5b9df23"></a><!-- doxytag: member="confuse.h::cfg_opt_setnstr" ref="6ea17369ab2edbe94c236894a5b9df23" args="(cfg_opt_t *opt, const char *value, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_opt_setnstr           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a value of a string option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. Memory for the string is allocated and the value is copied. Any previous string value is freed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index in the option value array that should be modified. It is an error to set values with indices larger than 0 for options without the CFGF_LIST flag set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="1648e78297e9bc970b1f3fa90a715da6"></a><!-- doxytag: member="confuse.h::cfg_opt_size" ref="1648e78297e9bc970b1f3fa90a715da6" args="(cfg_opt_t *opt)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT unsigned int __export cfg_opt_size           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&nbsp;</td>
          <td class="paramname"> <em>opt</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the number of values this option has. 
<p>
If no default value is given for the option and no value was found in the config file, 0 will be returned (ie, the option value is not set at all). <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>opt</em>&nbsp;</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#33f48558624569678272f46925ead40f">cfg_getopt()</a>) </td></tr>
  </table>
</dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a7">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="0fca327466956c5580199e24397d49fe"></a><!-- doxytag: member="confuse.h::cfg_parse" ref="0fca327466956c5580199e24397d49fe" args="(cfg_t *cfg, const char *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT int __export cfg_parse           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse a configuration file. 
<p>
Tilde expansion is performed on the filename before it is opened. After a configuration file has been initialized (with <a class="el" href="confuse_8h.html#ec07794916564c8ab437e030ac618aa8">cfg_init()</a>) and parsed (with <a class="el" href="confuse_8h.html#0fca327466956c5580199e24397d49fe">cfg_parse()</a>), the values can be read with the cfg_getXXX functions.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context as returned from <a class="el" href="confuse_8h.html#ec07794916564c8ab437e030ac618aa8">cfg_init()</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>The name of the file to parse.</td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>On success, CFG_SUCCESS is returned. If the file couldn't be opened for reading, CFG_FILE_ERROR is returned. On all other errors, CFG_PARSE_ERROR is returned and <a class="el" href="confuse_8h.html#5b448a145f12b67e90bd4e6bd387f129">cfg_error()</a> was called with a descriptive error message. </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a24">ftpconf.c</a>, <a class="el" href="reread_8c-example.html#a12">reread.c</a>, and <a class="el" href="simple_8c-example.html#a8">simple.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="527f63939bf3f0b5d635fd86cd562086"></a><!-- doxytag: member="confuse.h::cfg_parse_boolean" ref="527f63939bf3f0b5d635fd86cd562086" args="(const char *s)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT int __export cfg_parse_boolean           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>s</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Parse a boolean option string. 
<p>
Accepted "true" values are "true", "on" and "yes", and accepted "false" values are "false", "off" and "no".<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns 1 or 0 (true/false) if the string was parsed correctly, or -1 if an error occurred. </dd></dl>

</div>
</div><p>
<a class="anchor" name="6da020721a065f359cf343f014e7834c"></a><!-- doxytag: member="confuse.h::cfg_parse_buf" ref="6da020721a065f359cf343f014e7834c" args="(cfg_t *cfg, const char *buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT int __export cfg_parse_buf           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Same as <a class="el" href="confuse_8h.html#0fca327466956c5580199e24397d49fe">cfg_parse()</a> above, but takes a character buffer as argument. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context as returned from <a class="el" href="confuse_8h.html#ec07794916564c8ab437e030ac618aa8">cfg_init()</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>A zero-terminated string with configuration directives.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#0fca327466956c5580199e24397d49fe">cfg_parse()</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="reread_8c-example.html#a11">reread.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="7ff54be21c704c3150ad439d7e17dcca"></a><!-- doxytag: member="confuse.h::cfg_parse_fp" ref="7ff54be21c704c3150ad439d7e17dcca" args="(cfg_t *cfg, FILE *fp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT int __export cfg_parse_fp           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>fp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Same as <a class="el" href="confuse_8h.html#0fca327466956c5580199e24397d49fe">cfg_parse()</a> above, but takes an already opened file as argument. 
<p>
Reading begins at the current position. After parsing, the position is not reset. The caller is responsible for closing the file.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context as returned from <a class="el" href="confuse_8h.html#ec07794916564c8ab437e030ac618aa8">cfg_init()</a>. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fp</em>&nbsp;</td><td>An open file stream.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#0fca327466956c5580199e24397d49fe">cfg_parse()</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="f4254e5ea4b856c4072df8526de929b2"></a><!-- doxytag: member="confuse.h::cfg_print" ref="f4254e5ea4b856c4072df8526de929b2" args="(cfg_t *cfg, FILE *fp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_print           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>fp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Print the options and values to a file. 
<p>
Note that options in any included file are expanded and printed directly to the file. Option values given with environment variables in the parsed input are also printed expanded. This means that if you parse a configuration file you can't expect that the output from this function is identical to the initial file.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>fp</em>&nbsp;</td><td>File stream to print to, use stdout to print to the screen.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a>, <a class="el" href="confuse_8h.html#03bdd2ac7828e5161e68da93cb07238d">cfg_set_print_func</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="simple_8c-example.html#a10">simple.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="ac68b8ff7e5000071afdd4a8660aeb91"></a><!-- doxytag: member="confuse.h::cfg_print_indent" ref="ac68b8ff7e5000071afdd4a8660aeb91" args="(cfg_t *cfg, FILE *fp, int indent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_print_indent           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FILE *&nbsp;</td>
          <td class="paramname"> <em>fp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>indent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Print the options and values to a file. 
<p>
Same as cfg_print, but with the indentation level specified. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#f4254e5ea4b856c4072df8526de929b2">cfg_print</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="e5cd3df98ec4c9895fbe73fd1c32f7a1"></a><!-- doxytag: member="confuse.h::cfg_set_error_function" ref="e5cd3df98ec4c9895fbe73fd1c32f7a1" args="(cfg_t *cfg, cfg_errfunc_t errfunc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#0267993f28fe29108cb6ba085e23274c">cfg_errfunc_t</a> __export cfg_set_error_function           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="confuse_8h.html#0267993f28fe29108cb6ba085e23274c">cfg_errfunc_t</a>&nbsp;</td>
          <td class="paramname"> <em>errfunc</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Install a user-defined error reporting function. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The old error reporting function is returned. </dd></dl>

</div>
</div><p>
<a class="anchor" name="03bdd2ac7828e5161e68da93cb07238d"></a><!-- doxytag: member="confuse.h::cfg_set_print_func" ref="03bdd2ac7828e5161e68da93cb07238d" args="(cfg_t *cfg, const char *name, cfg_print_func_t pf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> __export cfg_set_print_func           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a>&nbsp;</td>
          <td class="paramname"> <em>pf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a print callback function for an option given its name. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pf</em>&nbsp;</td><td>The print callback function.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#8a08c4cec09dd5644dc451c3ea0eb613">cfg_print_func_t</a> </dd></dl>

</div>
</div><p>
<a class="anchor" name="8f07eca3c5e341ee6a81ecede2fbd5d8"></a><!-- doxytag: member="confuse.h::cfg_set_validate_func" ref="8f07eca3c5e341ee6a81ecede2fbd5d8" args="(cfg_t *cfg, const char *name, cfg_validate_callback_t vf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#19556f2582c33df0a9e67b4ef284acb2">cfg_validate_callback_t</a> __export cfg_set_validate_func           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="confuse_8h.html#19556f2582c33df0a9e67b4ef284acb2">cfg_validate_callback_t</a>&nbsp;</td>
          <td class="paramname"> <em>vf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Register a validating callback function for an option. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>vf</em>&nbsp;</td><td>The validating callback function.</td></tr>
  </table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="confuse_8h.html#19556f2582c33df0a9e67b4ef284acb2">cfg_validate_callback_t</a> </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a23">ftpconf.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="0c3bcf2927802380238482e6fb09fd8e"></a><!-- doxytag: member="confuse.h::cfg_setbool" ref="0c3bcf2927802380238482e6fb09fd8e" args="(cfg_t *cfg, const char *name, cfg_bool_t value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_setbool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a>&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the value of a boolean option given its name. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. If the option is a list (the CFGF_LIST flag is set), only the first value (with index 0) is set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="07cc4870b50211627415d5945bf05211"></a><!-- doxytag: member="confuse.h::cfg_setfloat" ref="07cc4870b50211627415d5945bf05211" args="(cfg_t *cfg, const char *name, double value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_setfloat           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the value of a floating point option given its name. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. If the option is a list (the CFGF_LIST flag is set), only the first value (with index 0) is set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="9e145714b684d85ced96f32068ec0094"></a><!-- doxytag: member="confuse.h::cfg_setint" ref="9e145714b684d85ced96f32068ec0094" args="(cfg_t *cfg, const char *name, long int value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_setint           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long int&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the value of an integer option given its name. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. If the option is a list (the CFGF_LIST flag is set), only the first value (with index 0) is set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="15e2a938e67dc247b3e28a20c23d1ba6"></a><!-- doxytag: member="confuse.h::cfg_setlist" ref="15e2a938e67dc247b3e28a20c23d1ba6" args="(cfg_t *cfg, const char *name, unsigned int nvalues,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_setlist           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>nvalues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set values for a list option. 
<p>
All existing values are replaced with the new ones.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nvalues</em>&nbsp;</td><td>Number of values to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>The values to set, the type must match the type of the option and the number of values must be equal to the nvalues parameter. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="38adad0d83e1a3d7b1f9b636e7de3bc7"></a><!-- doxytag: member="confuse.h::cfg_setnbool" ref="38adad0d83e1a3d7b1f9b636e7de3bc7" args="(cfg_t *cfg, const char *name, cfg_bool_t value, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_setnbool           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="confuse_8h.html#4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a>&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a value of a boolean option given its name and index. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index in the option value array that should be modified. It is an error to set values with indices larger than 0 for options without the CFGF_LIST flag set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="179cc35df34e6a51bd7e7a20e65478e1"></a><!-- doxytag: member="confuse.h::cfg_setnfloat" ref="179cc35df34e6a51bd7e7a20e65478e1" args="(cfg_t *cfg, const char *name, double value, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_setnfloat           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a value of a floating point option given its name and index. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index in the option value array that should be modified. It is an error to set values with indices larger than 0 for options without the CFGF_LIST flag set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="8b94a2e75abe7536ab9af8ee7c7c048b"></a><!-- doxytag: member="confuse.h::cfg_setnint" ref="8b94a2e75abe7536ab9af8ee7c7c048b" args="(cfg_t *cfg, const char *name, long int value, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_setnint           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long int&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a value of an integer option given its name and index. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index in the option value array that should be modified. It is an error to set values with indices larger than 0 for options without the CFGF_LIST flag set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="cbbc5f4c7667fb2555be0c6d232f9f73"></a><!-- doxytag: member="confuse.h::cfg_setnstr" ref="cbbc5f4c7667fb2555be0c6d232f9f73" args="(cfg_t *cfg, const char *name, const char *value, unsigned int index)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_setnstr           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&nbsp;</td>
          <td class="paramname"> <em>index</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a value of a boolean option given its name and index. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. Memory for the string is allocated and the value is copied. Any privious string value is freed. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>index</em>&nbsp;</td><td>The index in the option value array that should be modified. It is an error to set values with indices larger than 0 for options without the CFGF_LIST flag set. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="dd02a10fac10c9b028c1438dff28343f"></a><!-- doxytag: member="confuse.h::cfg_setstr" ref="dd02a10fac10c9b028c1438dff28343f" args="(cfg_t *cfg, const char *name, const char *value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT void __export cfg_setstr           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set the value of a string option given its name. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value to set. Memory for the string is allocated and the value is copied. Any previous string value is freed. If the option is a list (the CFGF_LIST flag is set), only the first value (with index 0) is set. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="simple_8c-example.html#a9">simple.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="cb8b2b9aa7d9e2e3c0eca67ea27bed15"></a><!-- doxytag: member="confuse.h::cfg_size" ref="cb8b2b9aa7d9e2e3c0eca67ea27bed15" args="(cfg_t *cfg, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT unsigned int __export cfg_size           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the number of values this option has. 
<p>
If no default value is given for the option and no value was found in the config file, 0 will be returned (ie, the option value is not set at all).<p>
Note that there is no way to *not* specify a default value for integers, floats and booleans. Ie, they always have default values (since 0 or NULL is a valid integer/float/boolean value). Only strings and lists may have no default value.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>The name of the option. </td></tr>
  </table>
</dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="ftpconf_8c-example.html#a8">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a14">reread.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="ccd838b44797a5a89dbfd3ab60203375"></a><!-- doxytag: member="confuse.h::cfg_tilde_expand" ref="ccd838b44797a5a89dbfd3ab60203375" args="(const char *filename)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT char* __export cfg_tilde_expand           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>filename</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Does tilde expansion (~ -&gt; $HOME) on the filename. 
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The expanded filename is returned. If a ~user was not found, the original filename is returned. In any case, a dynamically allocated string is returned, which should be free()'d by the caller. </dd></dl>

</div>
</div><p>
<a class="anchor" name="e5681800390fa1dad4b1412ef5288de7"></a><!-- doxytag: member="confuse.h::cfg_title" ref="e5681800390fa1dad4b1412ef5288de7" args="(cfg_t *cfg)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DLLIMPORT const char* __export cfg_title           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&nbsp;</td>
          <td class="paramname"> <em>cfg</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return the title of a section. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>cfg</em>&nbsp;</td><td>The configuration file context. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Returns the title, or 0 if there is no title. This string should not be modified. </dd></dl>

</div>
</div><p>
<!-- doxygen-footer.html starts here -->
  </div>
 </body>
</html>