File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / confuse / doc / html / confuse_8h.html
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 00:49:17 2021 UTC (3 years, 3 months ago) by misho
Branches: confuse, MAIN
CVS tags: v3_3, HEAD
confuse 3.3

    1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2: <html xmlns="http://www.w3.org/1999/xhtml">
    3: <head>
    4: <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    5: <meta http-equiv="X-UA-Compatible" content="IE=9"/>
    6: <meta name="generator" content="Doxygen 1.8.17"/>
    7: <title>confuse: confuse.h File Reference</title>
    8: <link href="tabs.css" rel="stylesheet" type="text/css"/>
    9: <script type="text/javascript" src="jquery.js"></script>
   10: <script type="text/javascript" src="dynsections.js"></script>
   11: <link href="search/search.css" rel="stylesheet" type="text/css"/>
   12: <script type="text/javascript" src="search/searchdata.js"></script>
   13: <script type="text/javascript" src="search/search.js"></script>
   14: <link href="doxygen.css" rel="stylesheet" type="text/css" />
   15: </head>
   16: <body>
   17: <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
   18: <div id="titlearea">
   19: <table cellspacing="0" cellpadding="0">
   20:  <tbody>
   21:  <tr style="height: 56px;">
   22:   <td id="projectalign" style="padding-left: 0.5em;">
   23:    <div id="projectname">confuse
   24:    &#160;<span id="projectnumber">3.3</span>
   25:    </div>
   26:   </td>
   27:  </tr>
   28:  </tbody>
   29: </table>
   30: </div>
   31: <!-- end header part -->
   32: <!-- Generated by Doxygen 1.8.17 -->
   33: <script type="text/javascript">
   34: /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   35: var searchBox = new SearchBox("searchBox", "search",false,'Search');
   36: /* @license-end */
   37: </script>
   38: <script type="text/javascript" src="menudata.js"></script>
   39: <script type="text/javascript" src="menu.js"></script>
   40: <script type="text/javascript">
   41: /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
   42: $(function() {
   43:   initMenu('',true,false,'search.php','Search');
   44:   $(document).ready(function() { init_search(); });
   45: });
   46: /* @license-end */</script>
   47: <div id="main-nav"></div>
   48: <!-- window showing the filter options -->
   49: <div id="MSearchSelectWindow"
   50:      onmouseover="return searchBox.OnSearchSelectShow()"
   51:      onmouseout="return searchBox.OnSearchSelectHide()"
   52:      onkeydown="return searchBox.OnSearchSelectKey(event)">
   53: </div>
   54: 
   55: <!-- iframe showing the search results (closed by default) -->
   56: <div id="MSearchResultsWindow">
   57: <iframe src="javascript:void(0)" frameborder="0" 
   58:         name="MSearchResults" id="MSearchResults">
   59: </iframe>
   60: </div>
   61: 
   62: <div id="nav-path" class="navpath">
   63:   <ul>
   64: <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
   65: </div>
   66: </div><!-- top -->
   67: <div class="header">
   68:   <div class="summary">
   69: <a href="#nested-classes">Data Structures</a> &#124;
   70: <a href="#define-members">Macros</a> &#124;
   71: <a href="#typedef-members">Typedefs</a> &#124;
   72: <a href="#enum-members">Enumerations</a> &#124;
   73: <a href="#func-members">Functions</a>  </div>
   74:   <div class="headertitle">
   75: <div class="title">confuse.h File Reference</div>  </div>
   76: </div><!--header-->
   77: <div class="contents">
   78: 
   79: <p>A configuration file parser library.  
   80: <a href="#details">More...</a></p>
   81: <div class="textblock"><code>#include &lt;stdio.h&gt;</code><br />
   82: <code>#include &lt;stdarg.h&gt;</code><br />
   83: </div>
   84: <p><a href="confuse_8h_source.html">Go to the source code of this file.</a></p>
   85: <table class="memberdecls">
   86: <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
   87: Data Structures</h2></td></tr>
   88: <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcfg__t.html">cfg_t</a></td></tr>
   89: <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data structure holding information about a "section".  <a href="structcfg__t.html#details">More...</a><br /></td></tr>
   90: <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
   91: <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unioncfg__value__t.html">cfg_value_t</a></td></tr>
   92: <tr class="memdesc:"><td class="mdescLeft">&#160;</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>
   93: <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
   94: <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unioncfg__simple__t.html">cfg_simple_t</a></td></tr>
   95: <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data structure holding the pointer to a user provided variable defined with CFG_SIMPLE_*.  <a href="unioncfg__simple__t.html#details">More...</a><br /></td></tr>
   96: <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
   97: <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcfg__defvalue__t.html">cfg_defvalue_t</a></td></tr>
   98: <tr class="memdesc:"><td class="mdescLeft">&#160;</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>
   99: <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  100: <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a></td></tr>
  101: <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data structure holding information about an option.  <a href="structcfg__opt__t.html#details">More...</a><br /></td></tr>
  102: <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103: </table><table class="memberdecls">
  104: <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
  105: Macros</h2></td></tr>
  106: <tr class="memitem:a65df72d236bcc3e7f22c5b2b5c24bded"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>&#160;&#160;&#160;(0)</td></tr>
  107: <tr class="memdesc:a65df72d236bcc3e7f22c5b2b5c24bded"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flags.  <a href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">More...</a><br /></td></tr>
  108: <tr class="separator:a65df72d236bcc3e7f22c5b2b5c24bded"><td class="memSeparator" colspan="2">&#160;</td></tr>
  109: <tr class="memitem:a86b522a5daef5c07066b28f1585d2d77"><td class="memItemLeft" align="right" valign="top"><a id="a86b522a5daef5c07066b28f1585d2d77"></a>
  110: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a86b522a5daef5c07066b28f1585d2d77">CFGF_MULTI</a>&#160;&#160;&#160;(1 &lt;&lt;  0)</td></tr>
  111: <tr class="memdesc:a86b522a5daef5c07066b28f1585d2d77"><td class="mdescLeft">&#160;</td><td class="mdescRight">option may be specified multiple times (only applies to sections) <br /></td></tr>
  112: <tr class="separator:a86b522a5daef5c07066b28f1585d2d77"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113: <tr class="memitem:a644afc2caf9da9274ec08407997aa4ef"><td class="memItemLeft" align="right" valign="top"><a id="a644afc2caf9da9274ec08407997aa4ef"></a>
  114: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a644afc2caf9da9274ec08407997aa4ef">CFGF_LIST</a>&#160;&#160;&#160;(1 &lt;&lt;  1)</td></tr>
  115: <tr class="memdesc:a644afc2caf9da9274ec08407997aa4ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">option is a list <br /></td></tr>
  116: <tr class="separator:a644afc2caf9da9274ec08407997aa4ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
  117: <tr class="memitem:a7adecc621a1910b8807c613051bd8d1d"><td class="memItemLeft" align="right" valign="top"><a id="a7adecc621a1910b8807c613051bd8d1d"></a>
  118: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a7adecc621a1910b8807c613051bd8d1d">CFGF_NOCASE</a>&#160;&#160;&#160;(1 &lt;&lt;  2)</td></tr>
  119: <tr class="memdesc:a7adecc621a1910b8807c613051bd8d1d"><td class="mdescLeft">&#160;</td><td class="mdescRight">configuration file is case insensitive <br /></td></tr>
  120: <tr class="separator:a7adecc621a1910b8807c613051bd8d1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  121: <tr class="memitem:a65d20dbd5b778dd1bf3b3895206b4497"><td class="memItemLeft" align="right" valign="top"><a id="a65d20dbd5b778dd1bf3b3895206b4497"></a>
  122: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a65d20dbd5b778dd1bf3b3895206b4497">CFGF_TITLE</a>&#160;&#160;&#160;(1 &lt;&lt;  3)</td></tr>
  123: <tr class="memdesc:a65d20dbd5b778dd1bf3b3895206b4497"><td class="mdescLeft">&#160;</td><td class="mdescRight">option has a title (only applies to sections) <br /></td></tr>
  124: <tr class="separator:a65d20dbd5b778dd1bf3b3895206b4497"><td class="memSeparator" colspan="2">&#160;</td></tr>
  125: <tr class="memitem:a9020ea37bfdb4f3e88a18d0a0d00cdd9"><td class="memItemLeft" align="right" valign="top"><a id="a9020ea37bfdb4f3e88a18d0a0d00cdd9"></a>
  126: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a9020ea37bfdb4f3e88a18d0a0d00cdd9">CFGF_NODEFAULT</a>&#160;&#160;&#160;(1 &lt;&lt;  4)</td></tr>
  127: <tr class="memdesc:a9020ea37bfdb4f3e88a18d0a0d00cdd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">option has no default value <br /></td></tr>
  128: <tr class="separator:a9020ea37bfdb4f3e88a18d0a0d00cdd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129: <tr class="memitem:a0f8c2f9b82f0338efdc22df54805a467"><td class="memItemLeft" align="right" valign="top"><a id="a0f8c2f9b82f0338efdc22df54805a467"></a>
  130: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a0f8c2f9b82f0338efdc22df54805a467">CFGF_NO_TITLE_DUPES</a>&#160;&#160;&#160;(1 &lt;&lt;  5)</td></tr>
  131: <tr class="memdesc:a0f8c2f9b82f0338efdc22df54805a467"><td class="mdescLeft">&#160;</td><td class="mdescRight">multiple section titles must be unique (duplicates raises an error, only applies to sections) <br /></td></tr>
  132: <tr class="separator:a0f8c2f9b82f0338efdc22df54805a467"><td class="memSeparator" colspan="2">&#160;</td></tr>
  133: <tr class="memitem:a51766e2c30fcf1c8d49b125db55a00bb"><td class="memItemLeft" align="right" valign="top"><a id="a51766e2c30fcf1c8d49b125db55a00bb"></a>
  134: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a51766e2c30fcf1c8d49b125db55a00bb">CFGF_IGNORE_UNKNOWN</a>&#160;&#160;&#160;(1 &lt;&lt;  8)</td></tr>
  135: <tr class="memdesc:a51766e2c30fcf1c8d49b125db55a00bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">ignore unknown options in configuration files <br /></td></tr>
  136: <tr class="separator:a51766e2c30fcf1c8d49b125db55a00bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137: <tr class="memitem:ac860586bbfb8db825009652a7ce33347"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ac860586bbfb8db825009652a7ce33347">CFGF_DEPRECATED</a>&#160;&#160;&#160;(1 &lt;&lt;  9)</td></tr>
  138: <tr class="memdesc:ac860586bbfb8db825009652a7ce33347"><td class="mdescLeft">&#160;</td><td class="mdescRight">option is deprecated and should be ignored.  <a href="confuse_8h.html#ac860586bbfb8db825009652a7ce33347">More...</a><br /></td></tr>
  139: <tr class="separator:ac860586bbfb8db825009652a7ce33347"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140: <tr class="memitem:ad6f11a2efb1dec9df6b0c27f9ffe1a16"><td class="memItemLeft" align="right" valign="top"><a id="ad6f11a2efb1dec9df6b0c27f9ffe1a16"></a>
  141: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ad6f11a2efb1dec9df6b0c27f9ffe1a16">CFGF_DROP</a>&#160;&#160;&#160;(1 &lt;&lt; 10)</td></tr>
  142: <tr class="memdesc:ad6f11a2efb1dec9df6b0c27f9ffe1a16"><td class="mdescLeft">&#160;</td><td class="mdescRight">option should be dropped after parsing <br /></td></tr>
  143: <tr class="separator:ad6f11a2efb1dec9df6b0c27f9ffe1a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144: <tr class="memitem:a95c35bf0ec5ca7c43b0dd3f3f8e7ed1e"><td class="memItemLeft" align="right" valign="top"><a id="a95c35bf0ec5ca7c43b0dd3f3f8e7ed1e"></a>
  145: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a95c35bf0ec5ca7c43b0dd3f3f8e7ed1e">CFGF_COMMENTS</a>&#160;&#160;&#160;(1 &lt;&lt; 11)</td></tr>
  146: <tr class="memdesc:a95c35bf0ec5ca7c43b0dd3f3f8e7ed1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable option annotation/comments support. <br /></td></tr>
  147: <tr class="separator:a95c35bf0ec5ca7c43b0dd3f3f8e7ed1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148: <tr class="memitem:a7b25525f51adff514fd2ced4d3caa23e"><td class="memItemLeft" align="right" valign="top"><a id="a7b25525f51adff514fd2ced4d3caa23e"></a>
  149: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a7b25525f51adff514fd2ced4d3caa23e">CFGF_MODIFIED</a>&#160;&#160;&#160;(1 &lt;&lt; 12)</td></tr>
  150: <tr class="memdesc:a7b25525f51adff514fd2ced4d3caa23e"><td class="mdescLeft">&#160;</td><td class="mdescRight">option has been changed from its default value <br /></td></tr>
  151: <tr class="separator:a7b25525f51adff514fd2ced4d3caa23e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152: <tr class="memitem:a292c81c72ef7e04b97226529e3157f30"><td class="memItemLeft" align="right" valign="top"><a id="a292c81c72ef7e04b97226529e3157f30"></a>
  153: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a292c81c72ef7e04b97226529e3157f30">CFGF_KEYSTRVAL</a>&#160;&#160;&#160;(1 &lt;&lt; 13)</td></tr>
  154: <tr class="memdesc:a292c81c72ef7e04b97226529e3157f30"><td class="mdescLeft">&#160;</td><td class="mdescRight">section has free-form key=value string options created when parsing file <br /></td></tr>
  155: <tr class="separator:a292c81c72ef7e04b97226529e3157f30"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156: <tr class="memitem:a66a1002180229809620b9bf2d3b888a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a66a1002180229809620b9bf2d3b888a6">CFG_SUCCESS</a>&#160;&#160;&#160;0</td></tr>
  157: <tr class="memdesc:a66a1002180229809620b9bf2d3b888a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return codes from <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a>, <a class="el" href="confuse_8h.html#a527f63939bf3f0b5d635fd86cd562086" title="Parse a boolean option string.">cfg_parse_boolean()</a>, and cfg_set*() functions.  <a href="confuse_8h.html#a66a1002180229809620b9bf2d3b888a6">More...</a><br /></td></tr>
  158: <tr class="separator:a66a1002180229809620b9bf2d3b888a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159: <tr class="memitem:a963e2ee16396dcf36f6d1937faa00f0c"><td class="memItemLeft" align="right" valign="top"><a id="a963e2ee16396dcf36f6d1937faa00f0c"></a>
  160: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a963e2ee16396dcf36f6d1937faa00f0c">CFG_STR</a>(name,  def,  flags)&#160;&#160;&#160;__CFG_STR(name, def, flags, 0, 0)</td></tr>
  161: <tr class="memdesc:a963e2ee16396dcf36f6d1937faa00f0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a string option. <br /></td></tr>
  162: <tr class="separator:a963e2ee16396dcf36f6d1937faa00f0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163: <tr class="memitem:adb9b1c168e72a3e065d2a06f2ed46c9f"><td class="memItemLeft" align="right" valign="top"><a id="adb9b1c168e72a3e065d2a06f2ed46c9f"></a>
  164: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#adb9b1c168e72a3e065d2a06f2ed46c9f">CFG_STR_LIST</a>(name,  def,  flags)&#160;&#160;&#160;__CFG_STR_LIST(name, def, flags, 0, 0)</td></tr>
  165: <tr class="memdesc:adb9b1c168e72a3e065d2a06f2ed46c9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a string list option. <br /></td></tr>
  166: <tr class="separator:adb9b1c168e72a3e065d2a06f2ed46c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  167: <tr class="memitem:ab5a56a69f0f8236be65c1d35a94b4437"><td class="memItemLeft" align="right" valign="top"><a id="ab5a56a69f0f8236be65c1d35a94b4437"></a>
  168: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ab5a56a69f0f8236be65c1d35a94b4437">CFG_STR_CB</a>(name,  def,  flags,  cb)&#160;&#160;&#160;__CFG_STR(name, def, flags, 0, cb)</td></tr>
  169: <tr class="memdesc:ab5a56a69f0f8236be65c1d35a94b4437"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a string option with a value parsing callback. <br /></td></tr>
  170: <tr class="separator:ab5a56a69f0f8236be65c1d35a94b4437"><td class="memSeparator" colspan="2">&#160;</td></tr>
  171: <tr class="memitem:a1ddedb0317b76dd9da7e8a9f7a585224"><td class="memItemLeft" align="right" valign="top"><a id="a1ddedb0317b76dd9da7e8a9f7a585224"></a>
  172: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a1ddedb0317b76dd9da7e8a9f7a585224">CFG_STR_LIST_CB</a>(name,  def,  flags,  cb)&#160;&#160;&#160;__CFG_STR_LIST(name, def, flags, 0, cb)</td></tr>
  173: <tr class="memdesc:a1ddedb0317b76dd9da7e8a9f7a585224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a string list option with a value parsing callback. <br /></td></tr>
  174: <tr class="separator:a1ddedb0317b76dd9da7e8a9f7a585224"><td class="memSeparator" colspan="2">&#160;</td></tr>
  175: <tr class="memitem:ae54fbbc31bd8c7ec8d7f04597a9f749d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ae54fbbc31bd8c7ec8d7f04597a9f749d">CFG_SIMPLE_STR</a>(name,  svalue)&#160;&#160;&#160;__CFG_STR(name, 0, <a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>, svalue, 0)</td></tr>
  176: <tr class="memdesc:ae54fbbc31bd8c7ec8d7f04597a9f749d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a "simple" string option.  <a href="confuse_8h.html#ae54fbbc31bd8c7ec8d7f04597a9f749d">More...</a><br /></td></tr>
  177: <tr class="separator:ae54fbbc31bd8c7ec8d7f04597a9f749d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  178: <tr class="memitem:ac2b17561e944264c594ea0802e56d308"><td class="memItemLeft" align="right" valign="top"><a id="ac2b17561e944264c594ea0802e56d308"></a>
  179: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ac2b17561e944264c594ea0802e56d308">CFG_INT</a>(name,  def,  flags)&#160;&#160;&#160;__CFG_INT(name, def, flags, 0, 0)</td></tr>
  180: <tr class="memdesc:ac2b17561e944264c594ea0802e56d308"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize an integer option. <br /></td></tr>
  181: <tr class="separator:ac2b17561e944264c594ea0802e56d308"><td class="memSeparator" colspan="2">&#160;</td></tr>
  182: <tr class="memitem:a736ad9fa5db2697c232f490e84bbf622"><td class="memItemLeft" align="right" valign="top"><a id="a736ad9fa5db2697c232f490e84bbf622"></a>
  183: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a736ad9fa5db2697c232f490e84bbf622">CFG_INT_LIST</a>(name,  def,  flags)&#160;&#160;&#160;__CFG_INT_LIST(name, def, flags, 0, 0)</td></tr>
  184: <tr class="memdesc:a736ad9fa5db2697c232f490e84bbf622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize an integer list option. <br /></td></tr>
  185: <tr class="separator:a736ad9fa5db2697c232f490e84bbf622"><td class="memSeparator" colspan="2">&#160;</td></tr>
  186: <tr class="memitem:a6f80d4ee3191ce3fb2f9e3b8fba50d49"><td class="memItemLeft" align="right" valign="top"><a id="a6f80d4ee3191ce3fb2f9e3b8fba50d49"></a>
  187: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a6f80d4ee3191ce3fb2f9e3b8fba50d49">CFG_INT_CB</a>(name,  def,  flags,  cb)&#160;&#160;&#160;__CFG_INT(name, def, flags, 0, cb)</td></tr>
  188: <tr class="memdesc:a6f80d4ee3191ce3fb2f9e3b8fba50d49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize an integer option with a value parsing callback. <br /></td></tr>
  189: <tr class="separator:a6f80d4ee3191ce3fb2f9e3b8fba50d49"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190: <tr class="memitem:a19c5daa71195724822a75b1fbd287209"><td class="memItemLeft" align="right" valign="top"><a id="a19c5daa71195724822a75b1fbd287209"></a>
  191: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a19c5daa71195724822a75b1fbd287209">CFG_INT_LIST_CB</a>(name,  def,  flags,  cb)&#160;&#160;&#160;__CFG_INT_LIST(name, def, flags, 0, cb)</td></tr>
  192: <tr class="memdesc:a19c5daa71195724822a75b1fbd287209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize an integer list option with a value parsing callback. <br /></td></tr>
  193: <tr class="separator:a19c5daa71195724822a75b1fbd287209"><td class="memSeparator" colspan="2">&#160;</td></tr>
  194: <tr class="memitem:a88fa2e73a1294c7e8a1f1519b68ce0ff"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a88fa2e73a1294c7e8a1f1519b68ce0ff">CFG_SIMPLE_INT</a>(name,  svalue)&#160;&#160;&#160;__CFG_INT(name, 0, <a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>, svalue, 0)</td></tr>
  195: <tr class="memdesc:a88fa2e73a1294c7e8a1f1519b68ce0ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a "simple" integer option (see documentation for CFG_SIMPLE_STR for more information).  <a href="confuse_8h.html#a88fa2e73a1294c7e8a1f1519b68ce0ff">More...</a><br /></td></tr>
  196: <tr class="separator:a88fa2e73a1294c7e8a1f1519b68ce0ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
  197: <tr class="memitem:a9c2060101b9c5e0d31a31ecd0dc6941d"><td class="memItemLeft" align="right" valign="top"><a id="a9c2060101b9c5e0d31a31ecd0dc6941d"></a>
  198: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a9c2060101b9c5e0d31a31ecd0dc6941d">CFG_FLOAT</a>(name,  def,  flags)&#160;&#160;&#160;__CFG_FLOAT(name, def, flags, 0, 0)</td></tr>
  199: <tr class="memdesc:a9c2060101b9c5e0d31a31ecd0dc6941d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a floating point option. <br /></td></tr>
  200: <tr class="separator:a9c2060101b9c5e0d31a31ecd0dc6941d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  201: <tr class="memitem:a09dd396c99a0948f03c14214e7735410"><td class="memItemLeft" align="right" valign="top"><a id="a09dd396c99a0948f03c14214e7735410"></a>
  202: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a09dd396c99a0948f03c14214e7735410">CFG_FLOAT_LIST</a>(name,  def,  flags)&#160;&#160;&#160;__CFG_FLOAT_LIST(name, def, flags, 0, 0)</td></tr>
  203: <tr class="memdesc:a09dd396c99a0948f03c14214e7735410"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a floating point list option. <br /></td></tr>
  204: <tr class="separator:a09dd396c99a0948f03c14214e7735410"><td class="memSeparator" colspan="2">&#160;</td></tr>
  205: <tr class="memitem:af4e3227ba01b96f42e5594f25fee00f3"><td class="memItemLeft" align="right" valign="top"><a id="af4e3227ba01b96f42e5594f25fee00f3"></a>
  206: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#af4e3227ba01b96f42e5594f25fee00f3">CFG_FLOAT_CB</a>(name,  def,  flags,  cb)&#160;&#160;&#160;__CFG_FLOAT(name, def, flags, 0, cb)</td></tr>
  207: <tr class="memdesc:af4e3227ba01b96f42e5594f25fee00f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a floating point option with a value parsing callback. <br /></td></tr>
  208: <tr class="separator:af4e3227ba01b96f42e5594f25fee00f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  209: <tr class="memitem:a82567f08b6a432bb92ba9718285b3e7b"><td class="memItemLeft" align="right" valign="top"><a id="a82567f08b6a432bb92ba9718285b3e7b"></a>
  210: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a82567f08b6a432bb92ba9718285b3e7b">CFG_FLOAT_LIST_CB</a>(name,  def,  flags,  cb)&#160;&#160;&#160;__CFG_FLOAT_LIST(name, def, flags, 0, cb)</td></tr>
  211: <tr class="memdesc:a82567f08b6a432bb92ba9718285b3e7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a floating point list option with a value parsing callback. <br /></td></tr>
  212: <tr class="separator:a82567f08b6a432bb92ba9718285b3e7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  213: <tr class="memitem:a073b3b12a5ba4648a1f4f1aa40ff3a2a"><td class="memItemLeft" align="right" valign="top"><a id="a073b3b12a5ba4648a1f4f1aa40ff3a2a"></a>
  214: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a073b3b12a5ba4648a1f4f1aa40ff3a2a">CFG_SIMPLE_FLOAT</a>(name,  svalue)&#160;&#160;&#160;__CFG_FLOAT(name, 0, <a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>, svalue, 0)</td></tr>
  215: <tr class="memdesc:a073b3b12a5ba4648a1f4f1aa40ff3a2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a "simple" floating point option (see documentation for CFG_SIMPLE_STR for more information). <br /></td></tr>
  216: <tr class="separator:a073b3b12a5ba4648a1f4f1aa40ff3a2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  217: <tr class="memitem:a5a49fffc6735970c739e34d51a39c95d"><td class="memItemLeft" align="right" valign="top"><a id="a5a49fffc6735970c739e34d51a39c95d"></a>
  218: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a5a49fffc6735970c739e34d51a39c95d">CFG_BOOL</a>(name,  def,  flags)&#160;&#160;&#160;__CFG_BOOL(name, def, flags, 0, 0)</td></tr>
  219: <tr class="memdesc:a5a49fffc6735970c739e34d51a39c95d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a boolean option. <br /></td></tr>
  220: <tr class="separator:a5a49fffc6735970c739e34d51a39c95d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  221: <tr class="memitem:ad5449a10a53d3ce91ac5a5e0fbffdf35"><td class="memItemLeft" align="right" valign="top"><a id="ad5449a10a53d3ce91ac5a5e0fbffdf35"></a>
  222: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ad5449a10a53d3ce91ac5a5e0fbffdf35">CFG_BOOL_LIST</a>(name,  def,  flags)&#160;&#160;&#160;__CFG_BOOL_LIST(name, def, flags, 0, 0)</td></tr>
  223: <tr class="memdesc:ad5449a10a53d3ce91ac5a5e0fbffdf35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a boolean list option. <br /></td></tr>
  224: <tr class="separator:ad5449a10a53d3ce91ac5a5e0fbffdf35"><td class="memSeparator" colspan="2">&#160;</td></tr>
  225: <tr class="memitem:a7951fcb3b77e290f5e2a04e1a7ee5f96"><td class="memItemLeft" align="right" valign="top"><a id="a7951fcb3b77e290f5e2a04e1a7ee5f96"></a>
  226: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a7951fcb3b77e290f5e2a04e1a7ee5f96">CFG_BOOL_CB</a>(name,  def,  flags,  cb)&#160;&#160;&#160;__CFG_BOOL(name, def, flags, 0, cb)</td></tr>
  227: <tr class="memdesc:a7951fcb3b77e290f5e2a04e1a7ee5f96"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a boolean option with a value parsing callback. <br /></td></tr>
  228: <tr class="separator:a7951fcb3b77e290f5e2a04e1a7ee5f96"><td class="memSeparator" colspan="2">&#160;</td></tr>
  229: <tr class="memitem:a2d905913ddeeb2301dbbc039d6a73d31"><td class="memItemLeft" align="right" valign="top"><a id="a2d905913ddeeb2301dbbc039d6a73d31"></a>
  230: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a2d905913ddeeb2301dbbc039d6a73d31">CFG_BOOL_LIST_CB</a>(name,  def,  flags,  cb)&#160;&#160;&#160;__CFG_BOOL_LIST(name, def, flags, 0, cb)</td></tr>
  231: <tr class="memdesc:a2d905913ddeeb2301dbbc039d6a73d31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a boolean list option with a value parsing callback. <br /></td></tr>
  232: <tr class="separator:a2d905913ddeeb2301dbbc039d6a73d31"><td class="memSeparator" colspan="2">&#160;</td></tr>
  233: <tr class="memitem:a228dc9c22fbcbeabed4d171774662ce8"><td class="memItemLeft" align="right" valign="top"><a id="a228dc9c22fbcbeabed4d171774662ce8"></a>
  234: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a228dc9c22fbcbeabed4d171774662ce8">CFG_SIMPLE_BOOL</a>(name,  svalue)&#160;&#160;&#160;__CFG_BOOL(name, cfg_false, <a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>, svalue, 0)</td></tr>
  235: <tr class="memdesc:a228dc9c22fbcbeabed4d171774662ce8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a "simple" boolean option (see documentation for CFG_SIMPLE_STR for more information). <br /></td></tr>
  236: <tr class="separator:a228dc9c22fbcbeabed4d171774662ce8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  237: <tr class="memitem:a043d5c79624269e5f60f59a698e461a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a043d5c79624269e5f60f59a698e461a6">CFG_SEC</a>(name,  opts,  flags)&#160;&#160;&#160;{name,0,<a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7aa786f6288e70d0ec5fc0ef38f1671f1b">CFGT_SEC</a>,0,0,flags,opts,{0,0,cfg_false,0,0},0,{0},0,0,0,0,0}</td></tr>
  238: <tr class="memdesc:a043d5c79624269e5f60f59a698e461a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a section.  <a href="confuse_8h.html#a043d5c79624269e5f60f59a698e461a6">More...</a><br /></td></tr>
  239: <tr class="separator:a043d5c79624269e5f60f59a698e461a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  240: <tr class="memitem:ab1ff85d6346cdefeb2ec2b696e50fde9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ab1ff85d6346cdefeb2ec2b696e50fde9">CFG_FUNC</a>(name,  func)&#160;&#160;&#160;{name,0,<a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7a531bc0d05779dd0fbbe90ac9ae744c0f">CFGT_FUNC</a>,0,0,<a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>,0,{0,0,cfg_false,0,0},func,{0},0,0,0,0,0}</td></tr>
  241: <tr class="memdesc:ab1ff85d6346cdefeb2ec2b696e50fde9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a function.  <a href="confuse_8h.html#ab1ff85d6346cdefeb2ec2b696e50fde9">More...</a><br /></td></tr>
  242: <tr class="separator:ab1ff85d6346cdefeb2ec2b696e50fde9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  243: <tr class="memitem:a240cd896d81e219b3acbcf8f7279ffbb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a240cd896d81e219b3acbcf8f7279ffbb">CFG_PTR_CB</a>(name,  def,  flags,  parsecb,  freecb)&#160;&#160;&#160;__CFG_PTR(name, def, flags, 0, parsecb, freecb)</td></tr>
  244: <tr class="memdesc:a240cd896d81e219b3acbcf8f7279ffbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a user-defined option.  <a href="confuse_8h.html#a240cd896d81e219b3acbcf8f7279ffbb">More...</a><br /></td></tr>
  245: <tr class="separator:a240cd896d81e219b3acbcf8f7279ffbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  246: <tr class="memitem:a6846af076094d05ca6b0041ebfef0f2b"><td class="memItemLeft" align="right" valign="top"><a id="a6846af076094d05ca6b0041ebfef0f2b"></a>
  247: #define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a6846af076094d05ca6b0041ebfef0f2b">CFG_PTR_LIST_CB</a>(name,  def,  flags,  parsecb,  freecb)&#160;&#160;&#160;__CFG_PTR(name, def, flags | <a class="el" href="confuse_8h.html#a644afc2caf9da9274ec08407997aa4ef">CFGF_LIST</a>, 0, parsecb, freecb)</td></tr>
  248: <tr class="memdesc:a6846af076094d05ca6b0041ebfef0f2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize a list of user-defined options. <br /></td></tr>
  249: <tr class="separator:a6846af076094d05ca6b0041ebfef0f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  250: <tr class="memitem:a6b29dd8a4c6cd3d392d4ab6b2e535597"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a6b29dd8a4c6cd3d392d4ab6b2e535597">CFG_END</a>()&#160;&#160;&#160;{0,0,CFGT_NONE,0,0,<a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>,0,{0,0,cfg_false,0,0},0,{0},0,0,0,0,0}</td></tr>
  251: <tr class="memdesc:a6b29dd8a4c6cd3d392d4ab6b2e535597"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminate list of options.  <a href="confuse_8h.html#a6b29dd8a4c6cd3d392d4ab6b2e535597">More...</a><br /></td></tr>
  252: <tr class="separator:a6b29dd8a4c6cd3d392d4ab6b2e535597"><td class="memSeparator" colspan="2">&#160;</td></tr>
  253: </table><table class="memberdecls">
  254: <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
  255: Typedefs</h2></td></tr>
  256: <tr class="memitem:a775e9fa25691f0754a643c0246efcc3c"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a775e9fa25691f0754a643c0246efcc3c">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>
  257: <tr class="memdesc:a775e9fa25691f0754a643c0246efcc3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function prototype used by CFGT_FUNC options.  <a href="confuse_8h.html#a775e9fa25691f0754a643c0246efcc3c">More...</a><br /></td></tr>
  258: <tr class="separator:a775e9fa25691f0754a643c0246efcc3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  259: <tr class="memitem:a1b97fb911e1203df560f80c2528c5fd9"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9">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>
  260: <tr class="memdesc:a1b97fb911e1203df560f80c2528c5fd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function prototype used by the cfg_print_ functions.  <a href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9">More...</a><br /></td></tr>
  261: <tr class="separator:a1b97fb911e1203df560f80c2528c5fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  262: <tr class="memitem:a6fd5dd8df47cbf571782463ca1e0c4b7"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a6fd5dd8df47cbf571782463ca1e0c4b7">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>
  263: <tr class="memdesc:a6fd5dd8df47cbf571782463ca1e0c4b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Value parsing callback prototype.  <a href="confuse_8h.html#a6fd5dd8df47cbf571782463ca1e0c4b7">More...</a><br /></td></tr>
  264: <tr class="separator:a6fd5dd8df47cbf571782463ca1e0c4b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  265: <tr class="memitem:a16da0a75f6314baedf4ed4ee2dd28d11"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a16da0a75f6314baedf4ed4ee2dd28d11">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>
  266: <tr class="memdesc:a16da0a75f6314baedf4ed4ee2dd28d11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validating callback prototype.  <a href="confuse_8h.html#a16da0a75f6314baedf4ed4ee2dd28d11">More...</a><br /></td></tr>
  267: <tr class="separator:a16da0a75f6314baedf4ed4ee2dd28d11"><td class="memSeparator" colspan="2">&#160;</td></tr>
  268: <tr class="memitem:a5285e2294a128c40810a986ef87c6ed3"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a5285e2294a128c40810a986ef87c6ed3">cfg_validate_callback2_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, void *value)</td></tr>
  269: <tr class="memdesc:a5285e2294a128c40810a986ef87c6ed3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Validating callback2 prototype.  <a href="confuse_8h.html#a5285e2294a128c40810a986ef87c6ed3">More...</a><br /></td></tr>
  270: <tr class="separator:a5285e2294a128c40810a986ef87c6ed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  271: <tr class="memitem:a1761cfbf430e57415ed517374028996f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a1761cfbf430e57415ed517374028996f">cfg_free_func_t</a>) (void *value)</td></tr>
  272: <tr class="memdesc:a1761cfbf430e57415ed517374028996f"><td class="mdescLeft">&#160;</td><td class="mdescRight">User-defined memory release function for CFG_PTR values.  <a href="confuse_8h.html#a1761cfbf430e57415ed517374028996f">More...</a><br /></td></tr>
  273: <tr class="separator:a1761cfbf430e57415ed517374028996f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  274: <tr class="memitem:a21921b63558b504a7f68cf97ba3cf3ce"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a21921b63558b504a7f68cf97ba3cf3ce">cfg_errfunc_t</a>) (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *fmt, va_list ap)</td></tr>
  275: <tr class="memdesc:a21921b63558b504a7f68cf97ba3cf3ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error reporting function.  <a href="confuse_8h.html#a21921b63558b504a7f68cf97ba3cf3ce">More...</a><br /></td></tr>
  276: <tr class="separator:a21921b63558b504a7f68cf97ba3cf3ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
  277: <tr class="memitem:ac0d704ca318d6a83072f3e6860965694"><td class="memItemLeft" align="right" valign="top">typedef int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ac0d704ca318d6a83072f3e6860965694">cfg_print_filter_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)</td></tr>
  278: <tr class="memdesc:ac0d704ca318d6a83072f3e6860965694"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print filter function.  <a href="confuse_8h.html#ac0d704ca318d6a83072f3e6860965694">More...</a><br /></td></tr>
  279: <tr class="separator:ac0d704ca318d6a83072f3e6860965694"><td class="memSeparator" colspan="2">&#160;</td></tr>
  280: </table><table class="memberdecls">
  281: <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
  282: Enumerations</h2></td></tr>
  283: <tr class="memitem:a9c62155b0deae0e1831507520a2ff7c7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7">cfg_type_t</a> { , <br />
  284: &#160;&#160;<a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7af397ec05171bfacd9944b3d538fbd6dc">CFGT_INT</a>, 
  285: <a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7abd237f20c366857f5521da911ba813cb">CFGT_FLOAT</a>, 
  286: <a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7ac6a18c97187c38648e11f18ad465f4f3">CFGT_STR</a>, 
  287: <a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7a8f04ccea50fbe06f9a118b4423ead6fd">CFGT_BOOL</a>, 
  288: <br />
  289: &#160;&#160;<a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7aa786f6288e70d0ec5fc0ef38f1671f1b">CFGT_SEC</a>, 
  290: <a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7a531bc0d05779dd0fbbe90ac9ae744c0f">CFGT_FUNC</a>, 
  291: <a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7a1b2260acd1f600d08b1317676b90dbb4">CFGT_PTR</a>, 
  292: <a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7a5129850f14713386d370f620c828004a">CFGT_COMMENT</a>
  293: <br />
  294:  }</td></tr>
  295: <tr class="memdesc:a9c62155b0deae0e1831507520a2ff7c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fundamental option types.  <a href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7">More...</a><br /></td></tr>
  296: <tr class="separator:a9c62155b0deae0e1831507520a2ff7c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  297: <tr class="memitem:a4bce4b6aed9b07489d6a5c70321907e4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> </td></tr>
  298: <tr class="memdesc:a4bce4b6aed9b07489d6a5c70321907e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Boolean values.  <a href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">More...</a><br /></td></tr>
  299: <tr class="separator:a4bce4b6aed9b07489d6a5c70321907e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  300: </table><table class="memberdecls">
  301: <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
  302: Functions</h2></td></tr>
  303: <tr class="memitem:aec07794916564c8ab437e030ac618aa8"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aec07794916564c8ab437e030ac618aa8">cfg_init</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opts, cfg_flag_t flags)</td></tr>
  304: <tr class="memdesc:aec07794916564c8ab437e030ac618aa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and initialize a <a class="el" href="structcfg__t.html" title="Data structure holding information about a &quot;section&quot;.">cfg_t</a> structure.  <a href="confuse_8h.html#aec07794916564c8ab437e030ac618aa8">More...</a><br /></td></tr>
  305: <tr class="separator:aec07794916564c8ab437e030ac618aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  306: <tr class="memitem:a6d41c76e4378f359cf70c5015f452c5d"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a6d41c76e4378f359cf70c5015f452c5d">cfg_add_searchpath</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *dir)</td></tr>
  307: <tr class="memdesc:a6d41c76e4378f359cf70c5015f452c5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a searchpath directory to the configuration context, the const char* argument will be duplicated and then freed as part of the usual context takedown.  <a href="confuse_8h.html#a6d41c76e4378f359cf70c5015f452c5d">More...</a><br /></td></tr>
  308: <tr class="separator:a6d41c76e4378f359cf70c5015f452c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  309: <tr class="memitem:a2fb3099e4fc619c746eacfb930b9d24d"><td class="memItemLeft" align="right" valign="top">DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a2fb3099e4fc619c746eacfb930b9d24d">cfg_searchpath</a> (cfg_searchpath_t *path, const char *file)</td></tr>
  310: <tr class="memdesc:a2fb3099e4fc619c746eacfb930b9d24d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Search the linked-list of cfg_searchpath_t for the specified file.  <a href="confuse_8h.html#a2fb3099e4fc619c746eacfb930b9d24d">More...</a><br /></td></tr>
  311: <tr class="separator:a2fb3099e4fc619c746eacfb930b9d24d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  312: <tr class="memitem:a0fca327466956c5580199e24397d49fe"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe">cfg_parse</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *filename)</td></tr>
  313: <tr class="memdesc:a0fca327466956c5580199e24397d49fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a configuration file.  <a href="confuse_8h.html#a0fca327466956c5580199e24397d49fe">More...</a><br /></td></tr>
  314: <tr class="separator:a0fca327466956c5580199e24397d49fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
  315: <tr class="memitem:a7ff54be21c704c3150ad439d7e17dcca"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a7ff54be21c704c3150ad439d7e17dcca">cfg_parse_fp</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, FILE *fp)</td></tr>
  316: <tr class="memdesc:a7ff54be21c704c3150ad439d7e17dcca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a> above, but takes an already opened file as argument.  <a href="confuse_8h.html#a7ff54be21c704c3150ad439d7e17dcca">More...</a><br /></td></tr>
  317: <tr class="separator:a7ff54be21c704c3150ad439d7e17dcca"><td class="memSeparator" colspan="2">&#160;</td></tr>
  318: <tr class="memitem:a6da020721a065f359cf343f014e7834c"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a6da020721a065f359cf343f014e7834c">cfg_parse_buf</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *buf)</td></tr>
  319: <tr class="memdesc:a6da020721a065f359cf343f014e7834c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a> above, but takes a character buffer as argument.  <a href="confuse_8h.html#a6da020721a065f359cf343f014e7834c">More...</a><br /></td></tr>
  320: <tr class="separator:a6da020721a065f359cf343f014e7834c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  321: <tr class="memitem:a4ad028d56e64c44ea8413d4d79143843"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a4ad028d56e64c44ea8413d4d79143843">cfg_free_value</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)</td></tr>
  322: <tr class="memdesc:a4ad028d56e64c44ea8413d4d79143843"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free the memory allocated for the values of a given option.  <a href="confuse_8h.html#a4ad028d56e64c44ea8413d4d79143843">More...</a><br /></td></tr>
  323: <tr class="separator:a4ad028d56e64c44ea8413d4d79143843"><td class="memSeparator" colspan="2">&#160;</td></tr>
  324: <tr class="memitem:aae5e08626bf53514a6ebf250580feba3"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aae5e08626bf53514a6ebf250580feba3">cfg_free</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg)</td></tr>
  325: <tr class="memdesc:aae5e08626bf53514a6ebf250580feba3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a <a class="el" href="structcfg__t.html" title="Data structure holding information about a &quot;section&quot;.">cfg_t</a> context.  <a href="confuse_8h.html#aae5e08626bf53514a6ebf250580feba3">More...</a><br /></td></tr>
  326: <tr class="separator:aae5e08626bf53514a6ebf250580feba3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  327: <tr class="memitem:ae5cd3df98ec4c9895fbe73fd1c32f7a1"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#a21921b63558b504a7f68cf97ba3cf3ce">cfg_errfunc_t</a> __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ae5cd3df98ec4c9895fbe73fd1c32f7a1">cfg_set_error_function</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="confuse_8h.html#a21921b63558b504a7f68cf97ba3cf3ce">cfg_errfunc_t</a> errfunc)</td></tr>
  328: <tr class="memdesc:ae5cd3df98ec4c9895fbe73fd1c32f7a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Install a user-defined error reporting function.  <a href="confuse_8h.html#ae5cd3df98ec4c9895fbe73fd1c32f7a1">More...</a><br /></td></tr>
  329: <tr class="separator:ae5cd3df98ec4c9895fbe73fd1c32f7a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  330: <tr class="memitem:a5b448a145f12b67e90bd4e6bd387f129"><td class="memItemLeft" align="right" valign="top">DLLIMPORT void __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a5b448a145f12b67e90bd4e6bd387f129">cfg_error</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *fmt,...)</td></tr>
  331: <tr class="memdesc:a5b448a145f12b67e90bd4e6bd387f129"><td class="mdescLeft">&#160;</td><td class="mdescRight">Show a parser error.  <a href="confuse_8h.html#a5b448a145f12b67e90bd4e6bd387f129">More...</a><br /></td></tr>
  332: <tr class="separator:a5b448a145f12b67e90bd4e6bd387f129"><td class="memSeparator" colspan="2">&#160;</td></tr>
  333: <tr class="memitem:a36381357b5db67d0415494332f4d5d94"><td class="memItemLeft" align="right" valign="top">DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a36381357b5db67d0415494332f4d5d94">cfg_opt_getcomment</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)</td></tr>
  334: <tr class="memdesc:a36381357b5db67d0415494332f4d5d94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the option comment.  <a href="confuse_8h.html#a36381357b5db67d0415494332f4d5d94">More...</a><br /></td></tr>
  335: <tr class="separator:a36381357b5db67d0415494332f4d5d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
  336: <tr class="memitem:a72cac29b3342eaf5bb0bb05cdd98e19f"><td class="memItemLeft" align="right" valign="top">DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a72cac29b3342eaf5bb0bb05cdd98e19f">cfg_getcomment</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  337: <tr class="memdesc:a72cac29b3342eaf5bb0bb05cdd98e19f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the option comment.  <a href="confuse_8h.html#a72cac29b3342eaf5bb0bb05cdd98e19f">More...</a><br /></td></tr>
  338: <tr class="separator:a72cac29b3342eaf5bb0bb05cdd98e19f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  339: <tr class="memitem:abaa00b2bb179bfc1062c67da8b2beae3"><td class="memItemLeft" align="right" valign="top">DLLIMPORT signed long __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#abaa00b2bb179bfc1062c67da8b2beae3">cfg_opt_getnint</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>
  340: <tr class="memdesc:abaa00b2bb179bfc1062c67da8b2beae3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of an integer option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer.  <a href="confuse_8h.html#abaa00b2bb179bfc1062c67da8b2beae3">More...</a><br /></td></tr>
  341: <tr class="separator:abaa00b2bb179bfc1062c67da8b2beae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  342: <tr class="memitem:addba63989fbf548cb0365ce875f138d4"><td class="memItemLeft" align="right" valign="top">DLLIMPORT long int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#addba63989fbf548cb0365ce875f138d4">cfg_getnint</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>
  343: <tr class="memdesc:addba63989fbf548cb0365ce875f138d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#aaa50eb2942ae8e7cb7f9ccbfe002b3cd" title="Returns the value of an integer option.">cfg_getint()</a>, used for lists.  <a href="confuse_8h.html#addba63989fbf548cb0365ce875f138d4">More...</a><br /></td></tr>
  344: <tr class="separator:addba63989fbf548cb0365ce875f138d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  345: <tr class="memitem:aaa50eb2942ae8e7cb7f9ccbfe002b3cd"><td class="memItemLeft" align="right" valign="top">DLLIMPORT long int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aaa50eb2942ae8e7cb7f9ccbfe002b3cd">cfg_getint</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  346: <tr class="memdesc:aaa50eb2942ae8e7cb7f9ccbfe002b3cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of an integer option.  <a href="confuse_8h.html#aaa50eb2942ae8e7cb7f9ccbfe002b3cd">More...</a><br /></td></tr>
  347: <tr class="separator:aaa50eb2942ae8e7cb7f9ccbfe002b3cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  348: <tr class="memitem:aa93c59e332c95937db84f93c1a9b25bd"><td class="memItemLeft" align="right" valign="top">DLLIMPORT double __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aa93c59e332c95937db84f93c1a9b25bd">cfg_opt_getnfloat</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>
  349: <tr class="memdesc:aa93c59e332c95937db84f93c1a9b25bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a floating point option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer.  <a href="confuse_8h.html#aa93c59e332c95937db84f93c1a9b25bd">More...</a><br /></td></tr>
  350: <tr class="separator:aa93c59e332c95937db84f93c1a9b25bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  351: <tr class="memitem:aaf63837150498ce6ecd530a9769f9e43"><td class="memItemLeft" align="right" valign="top">DLLIMPORT double __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aaf63837150498ce6ecd530a9769f9e43">cfg_getnfloat</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>
  352: <tr class="memdesc:aaf63837150498ce6ecd530a9769f9e43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#a40e3d18ed9fbf5eae90aec58d68cb474" title="Returns the value of a floating point option.">cfg_getfloat()</a>, used for lists.  <a href="confuse_8h.html#aaf63837150498ce6ecd530a9769f9e43">More...</a><br /></td></tr>
  353: <tr class="separator:aaf63837150498ce6ecd530a9769f9e43"><td class="memSeparator" colspan="2">&#160;</td></tr>
  354: <tr class="memitem:a40e3d18ed9fbf5eae90aec58d68cb474"><td class="memItemLeft" align="right" valign="top">DLLIMPORT double __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a40e3d18ed9fbf5eae90aec58d68cb474">cfg_getfloat</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  355: <tr class="memdesc:a40e3d18ed9fbf5eae90aec58d68cb474"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a floating point option.  <a href="confuse_8h.html#a40e3d18ed9fbf5eae90aec58d68cb474">More...</a><br /></td></tr>
  356: <tr class="separator:a40e3d18ed9fbf5eae90aec58d68cb474"><td class="memSeparator" colspan="2">&#160;</td></tr>
  357: <tr class="memitem:a99289f214566005664f05cac4dc50318"><td class="memItemLeft" align="right" valign="top">DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a99289f214566005664f05cac4dc50318">cfg_opt_getnstr</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>
  358: <tr class="memdesc:a99289f214566005664f05cac4dc50318"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a string option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer.  <a href="confuse_8h.html#a99289f214566005664f05cac4dc50318">More...</a><br /></td></tr>
  359: <tr class="separator:a99289f214566005664f05cac4dc50318"><td class="memSeparator" colspan="2">&#160;</td></tr>
  360: <tr class="memitem:aabb00a590331a4d9d4e772201dff34d1"><td class="memItemLeft" align="right" valign="top">DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aabb00a590331a4d9d4e772201dff34d1">cfg_getnstr</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>
  361: <tr class="memdesc:aabb00a590331a4d9d4e772201dff34d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#a4a9c34acc55cca63649c088d98053905" title="Returns the value of a string option.">cfg_getstr()</a>, used for lists.  <a href="confuse_8h.html#aabb00a590331a4d9d4e772201dff34d1">More...</a><br /></td></tr>
  362: <tr class="separator:aabb00a590331a4d9d4e772201dff34d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  363: <tr class="memitem:a4a9c34acc55cca63649c088d98053905"><td class="memItemLeft" align="right" valign="top">DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a4a9c34acc55cca63649c088d98053905">cfg_getstr</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  364: <tr class="memdesc:a4a9c34acc55cca63649c088d98053905"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a string option.  <a href="confuse_8h.html#a4a9c34acc55cca63649c088d98053905">More...</a><br /></td></tr>
  365: <tr class="separator:a4a9c34acc55cca63649c088d98053905"><td class="memSeparator" colspan="2">&#160;</td></tr>
  366: <tr class="memitem:af49441953ac0c45960728b347c25dba3"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#af49441953ac0c45960728b347c25dba3">cfg_opt_getnbool</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>
  367: <tr class="memdesc:af49441953ac0c45960728b347c25dba3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a boolean option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer.  <a href="confuse_8h.html#af49441953ac0c45960728b347c25dba3">More...</a><br /></td></tr>
  368: <tr class="separator:af49441953ac0c45960728b347c25dba3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  369: <tr class="memitem:a8984944ec9de3a67e3007bfba32f2127"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a8984944ec9de3a67e3007bfba32f2127">cfg_getnbool</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>
  370: <tr class="memdesc:a8984944ec9de3a67e3007bfba32f2127"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#ab4903f75c29f9c2973696039c4f5c0df" title="Returns the value of a boolean option.">cfg_getbool()</a>, used for lists.  <a href="confuse_8h.html#a8984944ec9de3a67e3007bfba32f2127">More...</a><br /></td></tr>
  371: <tr class="separator:a8984944ec9de3a67e3007bfba32f2127"><td class="memSeparator" colspan="2">&#160;</td></tr>
  372: <tr class="memitem:ab4903f75c29f9c2973696039c4f5c0df"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ab4903f75c29f9c2973696039c4f5c0df">cfg_getbool</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  373: <tr class="memdesc:ab4903f75c29f9c2973696039c4f5c0df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a boolean option.  <a href="confuse_8h.html#ab4903f75c29f9c2973696039c4f5c0df">More...</a><br /></td></tr>
  374: <tr class="separator:ab4903f75c29f9c2973696039c4f5c0df"><td class="memSeparator" colspan="2">&#160;</td></tr>
  375: <tr class="memitem:ad4f0fdb31b6c0113b3c78891e8ee5429"><td class="memItemLeft" align="right" valign="top">DLLIMPORT void *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ad4f0fdb31b6c0113b3c78891e8ee5429">cfg_getptr</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  376: <tr class="memdesc:ad4f0fdb31b6c0113b3c78891e8ee5429"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a user-defined option (void pointer).  <a href="confuse_8h.html#ad4f0fdb31b6c0113b3c78891e8ee5429">More...</a><br /></td></tr>
  377: <tr class="separator:ad4f0fdb31b6c0113b3c78891e8ee5429"><td class="memSeparator" colspan="2">&#160;</td></tr>
  378: <tr class="memitem:a4312c6bc126283ad8b6dc849c1138a71"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a4312c6bc126283ad8b6dc849c1138a71">cfg_opt_getnsec</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>
  379: <tr class="memdesc:a4312c6bc126283ad8b6dc849c1138a71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a section option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer.  <a href="confuse_8h.html#a4312c6bc126283ad8b6dc849c1138a71">More...</a><br /></td></tr>
  380: <tr class="separator:a4312c6bc126283ad8b6dc849c1138a71"><td class="memSeparator" colspan="2">&#160;</td></tr>
  381: <tr class="memitem:ad5e8eea765588892053b73eed4017edd"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ad5e8eea765588892053b73eed4017edd">cfg_getnsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>
  382: <tr class="memdesc:ad5e8eea765588892053b73eed4017edd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#aa1339bde1f672aa0279a51bf2324545d" title="Returns the value of a section option.">cfg_getsec()</a>, used for sections with the CFGF_MULTI flag set.  <a href="confuse_8h.html#ad5e8eea765588892053b73eed4017edd">More...</a><br /></td></tr>
  383: <tr class="separator:ad5e8eea765588892053b73eed4017edd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  384: <tr class="memitem:adec6a5049ac8306b0892f274e6d406ad"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#adec6a5049ac8306b0892f274e6d406ad">cfg_opt_gettsec</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, const char *title)</td></tr>
  385: <tr class="memdesc:adec6a5049ac8306b0892f274e6d406ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a section option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer and the title.  <a href="confuse_8h.html#adec6a5049ac8306b0892f274e6d406ad">More...</a><br /></td></tr>
  386: <tr class="separator:adec6a5049ac8306b0892f274e6d406ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
  387: <tr class="memitem:ac1fda0e6937653d891ae276ae69d0f76"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ac1fda0e6937653d891ae276ae69d0f76">cfg_gettsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, const char *title)</td></tr>
  388: <tr class="memdesc:ac1fda0e6937653d891ae276ae69d0f76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a section given the title, used for section with the CFGF_TITLE flag set.  <a href="confuse_8h.html#ac1fda0e6937653d891ae276ae69d0f76">More...</a><br /></td></tr>
  389: <tr class="separator:ac1fda0e6937653d891ae276ae69d0f76"><td class="memSeparator" colspan="2">&#160;</td></tr>
  390: <tr class="memitem:aa1339bde1f672aa0279a51bf2324545d"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aa1339bde1f672aa0279a51bf2324545d">cfg_getsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  391: <tr class="memdesc:aa1339bde1f672aa0279a51bf2324545d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the value of a section option.  <a href="confuse_8h.html#aa1339bde1f672aa0279a51bf2324545d">More...</a><br /></td></tr>
  392: <tr class="separator:aa1339bde1f672aa0279a51bf2324545d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  393: <tr class="memitem:a1648e78297e9bc970b1f3fa90a715da6"><td class="memItemLeft" align="right" valign="top">DLLIMPORT unsigned int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a1648e78297e9bc970b1f3fa90a715da6">cfg_opt_size</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)</td></tr>
  394: <tr class="memdesc:a1648e78297e9bc970b1f3fa90a715da6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of values this option has.  <a href="confuse_8h.html#a1648e78297e9bc970b1f3fa90a715da6">More...</a><br /></td></tr>
  395: <tr class="separator:a1648e78297e9bc970b1f3fa90a715da6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  396: <tr class="memitem:acb8b2b9aa7d9e2e3c0eca67ea27bed15"><td class="memItemLeft" align="right" valign="top">DLLIMPORT unsigned int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#acb8b2b9aa7d9e2e3c0eca67ea27bed15">cfg_size</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  397: <tr class="memdesc:acb8b2b9aa7d9e2e3c0eca67ea27bed15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of values this option has.  <a href="confuse_8h.html#acb8b2b9aa7d9e2e3c0eca67ea27bed15">More...</a><br /></td></tr>
  398: <tr class="separator:acb8b2b9aa7d9e2e3c0eca67ea27bed15"><td class="memSeparator" colspan="2">&#160;</td></tr>
  399: <tr class="memitem:ac51f9e62688527872e38faf308603fff"><td class="memItemLeft" align="right" valign="top">const DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ac51f9e62688527872e38faf308603fff">cfg_title</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg)</td></tr>
  400: <tr class="memdesc:ac51f9e62688527872e38faf308603fff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the title of a section.  <a href="confuse_8h.html#ac51f9e62688527872e38faf308603fff">More...</a><br /></td></tr>
  401: <tr class="separator:ac51f9e62688527872e38faf308603fff"><td class="memSeparator" colspan="2">&#160;</td></tr>
  402: <tr class="memitem:a5eee21bf6b453b81d477314333d4c47c"><td class="memItemLeft" align="right" valign="top">const DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a5eee21bf6b453b81d477314333d4c47c">cfg_name</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg)</td></tr>
  403: <tr class="memdesc:a5eee21bf6b453b81d477314333d4c47c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the name of a section.  <a href="confuse_8h.html#a5eee21bf6b453b81d477314333d4c47c">More...</a><br /></td></tr>
  404: <tr class="separator:a5eee21bf6b453b81d477314333d4c47c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  405: <tr class="memitem:a20e3b90b5fce510154d4053db0c8eba4"><td class="memItemLeft" align="right" valign="top">const DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a20e3b90b5fce510154d4053db0c8eba4">cfg_opt_name</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)</td></tr>
  406: <tr class="memdesc:a20e3b90b5fce510154d4053db0c8eba4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the name of an option.  <a href="confuse_8h.html#a20e3b90b5fce510154d4053db0c8eba4">More...</a><br /></td></tr>
  407: <tr class="separator:a20e3b90b5fce510154d4053db0c8eba4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  408: <tr class="memitem:a357458a58fe1bd2ba7eac0651e62f403"><td class="memItemLeft" align="right" valign="top">const DLLIMPORT char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a357458a58fe1bd2ba7eac0651e62f403">cfg_opt_getstr</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt)</td></tr>
  409: <tr class="memdesc:a357458a58fe1bd2ba7eac0651e62f403"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the string value of a key=value pair.  <a href="confuse_8h.html#a357458a58fe1bd2ba7eac0651e62f403">More...</a><br /></td></tr>
  410: <tr class="separator:a357458a58fe1bd2ba7eac0651e62f403"><td class="memSeparator" colspan="2">&#160;</td></tr>
  411: <tr class="memitem:a73e8e62914759632e5d5165fa877f4b3"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a73e8e62914759632e5d5165fa877f4b3">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>
  412: <tr class="memdesc:a73e8e62914759632e5d5165fa877f4b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Predefined include-function.  <a href="confuse_8h.html#a73e8e62914759632e5d5165fa877f4b3">More...</a><br /></td></tr>
  413: <tr class="separator:a73e8e62914759632e5d5165fa877f4b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  414: <tr class="memitem:accd838b44797a5a89dbfd3ab60203375"><td class="memItemLeft" align="right" valign="top">DLLIMPORT char *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#accd838b44797a5a89dbfd3ab60203375">cfg_tilde_expand</a> (const char *filename)</td></tr>
  415: <tr class="memdesc:accd838b44797a5a89dbfd3ab60203375"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does tilde expansion (~ -&gt; $HOME) on the filename.  <a href="confuse_8h.html#accd838b44797a5a89dbfd3ab60203375">More...</a><br /></td></tr>
  416: <tr class="separator:accd838b44797a5a89dbfd3ab60203375"><td class="memSeparator" colspan="2">&#160;</td></tr>
  417: <tr class="memitem:a527f63939bf3f0b5d635fd86cd562086"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a527f63939bf3f0b5d635fd86cd562086">cfg_parse_boolean</a> (const char *s)</td></tr>
  418: <tr class="memdesc:a527f63939bf3f0b5d635fd86cd562086"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse a boolean option string.  <a href="confuse_8h.html#a527f63939bf3f0b5d635fd86cd562086">More...</a><br /></td></tr>
  419: <tr class="separator:a527f63939bf3f0b5d635fd86cd562086"><td class="memSeparator" colspan="2">&#160;</td></tr>
  420: <tr class="memitem:a9a0df4576a33e47ef89d7dc450247408"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a9a0df4576a33e47ef89d7dc450247408">cfg_getnopt</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, unsigned int index)</td></tr>
  421: <tr class="memdesc:a9a0df4576a33e47ef89d7dc450247408"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the nth option in a file or section.  <a href="confuse_8h.html#a9a0df4576a33e47ef89d7dc450247408">More...</a><br /></td></tr>
  422: <tr class="separator:a9a0df4576a33e47ef89d7dc450247408"><td class="memSeparator" colspan="2">&#160;</td></tr>
  423: <tr class="memitem:a33f48558624569678272f46925ead40f"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *__export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f">cfg_getopt</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  424: <tr class="memdesc:a33f48558624569678272f46925ead40f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an option given it's name.  <a href="confuse_8h.html#a33f48558624569678272f46925ead40f">More...</a><br /></td></tr>
  425: <tr class="separator:a33f48558624569678272f46925ead40f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  426: <tr class="memitem:a6f4ffe9c0b2bc43692647197495946f0"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="unioncfg__value__t.html">cfg_value_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a6f4ffe9c0b2bc43692647197495946f0">cfg_setopt</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)</td></tr>
  427: <tr class="memdesc:a6f4ffe9c0b2bc43692647197495946f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an option (create an instance of an option).  <a href="confuse_8h.html#a6f4ffe9c0b2bc43692647197495946f0">More...</a><br /></td></tr>
  428: <tr class="separator:a6f4ffe9c0b2bc43692647197495946f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  429: <tr class="memitem:aec07a19c221658f7556d09597cd1c8c5"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aec07a19c221658f7556d09597cd1c8c5">cfg_opt_setcomment</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, char *comment)</td></tr>
  430: <tr class="memdesc:aec07a19c221658f7556d09597cd1c8c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Annotate an option.  <a href="confuse_8h.html#aec07a19c221658f7556d09597cd1c8c5">More...</a><br /></td></tr>
  431: <tr class="separator:aec07a19c221658f7556d09597cd1c8c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  432: <tr class="memitem:abac8ca33706dd89c4eb6677cee9cfffc"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#abac8ca33706dd89c4eb6677cee9cfffc">cfg_setcomment</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, char *comment)</td></tr>
  433: <tr class="memdesc:abac8ca33706dd89c4eb6677cee9cfffc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Annotate an option given its name.  <a href="confuse_8h.html#abac8ca33706dd89c4eb6677cee9cfffc">More...</a><br /></td></tr>
  434: <tr class="separator:abac8ca33706dd89c4eb6677cee9cfffc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  435: <tr class="memitem:ad84e0c6a0fb47551f9dd64374aa2d8ab"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ad84e0c6a0fb47551f9dd64374aa2d8ab">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>
  436: <tr class="memdesc:ad84e0c6a0fb47551f9dd64374aa2d8ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a value of an integer option.  <a href="confuse_8h.html#ad84e0c6a0fb47551f9dd64374aa2d8ab">More...</a><br /></td></tr>
  437: <tr class="separator:ad84e0c6a0fb47551f9dd64374aa2d8ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
  438: <tr class="memitem:a25a64a7417e5240c3c04f02d61f986cf"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a25a64a7417e5240c3c04f02d61f986cf">cfg_setint</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, long int value)</td></tr>
  439: <tr class="memdesc:a25a64a7417e5240c3c04f02d61f986cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of an integer option given its name.  <a href="confuse_8h.html#a25a64a7417e5240c3c04f02d61f986cf">More...</a><br /></td></tr>
  440: <tr class="separator:a25a64a7417e5240c3c04f02d61f986cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  441: <tr class="memitem:a39f3ad12a4218d6e3b9dec0c1e0031bb"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a39f3ad12a4218d6e3b9dec0c1e0031bb">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>
  442: <tr class="memdesc:a39f3ad12a4218d6e3b9dec0c1e0031bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a value of an integer option given its name and index.  <a href="confuse_8h.html#a39f3ad12a4218d6e3b9dec0c1e0031bb">More...</a><br /></td></tr>
  443: <tr class="separator:a39f3ad12a4218d6e3b9dec0c1e0031bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  444: <tr class="memitem:a4843ce0fadd14030af7a2293d558901e"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a4843ce0fadd14030af7a2293d558901e">cfg_opt_setnfloat</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, double value, unsigned int index)</td></tr>
  445: <tr class="memdesc:a4843ce0fadd14030af7a2293d558901e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a value of a floating point option.  <a href="confuse_8h.html#a4843ce0fadd14030af7a2293d558901e">More...</a><br /></td></tr>
  446: <tr class="separator:a4843ce0fadd14030af7a2293d558901e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  447: <tr class="memitem:a03b0983a0c6643722e8e1837ccedad3f"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a03b0983a0c6643722e8e1837ccedad3f">cfg_setfloat</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, double value)</td></tr>
  448: <tr class="memdesc:a03b0983a0c6643722e8e1837ccedad3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a floating point option given its name.  <a href="confuse_8h.html#a03b0983a0c6643722e8e1837ccedad3f">More...</a><br /></td></tr>
  449: <tr class="separator:a03b0983a0c6643722e8e1837ccedad3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  450: <tr class="memitem:a786306f8401e0c39ed7de25055a3cf0b"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a786306f8401e0c39ed7de25055a3cf0b">cfg_setnfloat</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, double value, unsigned int index)</td></tr>
  451: <tr class="memdesc:a786306f8401e0c39ed7de25055a3cf0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a value of a floating point option given its name and index.  <a href="confuse_8h.html#a786306f8401e0c39ed7de25055a3cf0b">More...</a><br /></td></tr>
  452: <tr class="separator:a786306f8401e0c39ed7de25055a3cf0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  453: <tr class="memitem:a7efb1f27133b20f0d0b8b38c51ebf6d7"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a7efb1f27133b20f0d0b8b38c51ebf6d7">cfg_opt_setnbool</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> value, unsigned int index)</td></tr>
  454: <tr class="memdesc:a7efb1f27133b20f0d0b8b38c51ebf6d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a value of a boolean option.  <a href="confuse_8h.html#a7efb1f27133b20f0d0b8b38c51ebf6d7">More...</a><br /></td></tr>
  455: <tr class="separator:a7efb1f27133b20f0d0b8b38c51ebf6d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  456: <tr class="memitem:aca19b746986429bf16af8303c8751a12"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aca19b746986429bf16af8303c8751a12">cfg_setbool</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> value)</td></tr>
  457: <tr class="memdesc:aca19b746986429bf16af8303c8751a12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a boolean option given its name.  <a href="confuse_8h.html#aca19b746986429bf16af8303c8751a12">More...</a><br /></td></tr>
  458: <tr class="separator:aca19b746986429bf16af8303c8751a12"><td class="memSeparator" colspan="2">&#160;</td></tr>
  459: <tr class="memitem:ab5876855b472ddb22a15690355ed7181"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ab5876855b472ddb22a15690355ed7181">cfg_setnbool</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> value, unsigned int index)</td></tr>
  460: <tr class="memdesc:ab5876855b472ddb22a15690355ed7181"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a value of a boolean option given its name and index.  <a href="confuse_8h.html#ab5876855b472ddb22a15690355ed7181">More...</a><br /></td></tr>
  461: <tr class="separator:ab5876855b472ddb22a15690355ed7181"><td class="memSeparator" colspan="2">&#160;</td></tr>
  462: <tr class="memitem:a35daf3fa141ba784a5fc1b8da5df54c7"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a35daf3fa141ba784a5fc1b8da5df54c7">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>
  463: <tr class="memdesc:a35daf3fa141ba784a5fc1b8da5df54c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a value of a string option.  <a href="confuse_8h.html#a35daf3fa141ba784a5fc1b8da5df54c7">More...</a><br /></td></tr>
  464: <tr class="separator:a35daf3fa141ba784a5fc1b8da5df54c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  465: <tr class="memitem:a523a5eec449362eee5a0d2709645c35b"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a523a5eec449362eee5a0d2709645c35b">cfg_setstr</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, const char *value)</td></tr>
  466: <tr class="memdesc:a523a5eec449362eee5a0d2709645c35b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a string option given its name.  <a href="confuse_8h.html#a523a5eec449362eee5a0d2709645c35b">More...</a><br /></td></tr>
  467: <tr class="separator:a523a5eec449362eee5a0d2709645c35b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  468: <tr class="memitem:a652c523d7a1acb6380a0dbd42704dc35"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a652c523d7a1acb6380a0dbd42704dc35">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>
  469: <tr class="memdesc:a652c523d7a1acb6380a0dbd42704dc35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a value of a boolean option given its name and index.  <a href="confuse_8h.html#a652c523d7a1acb6380a0dbd42704dc35">More...</a><br /></td></tr>
  470: <tr class="separator:a652c523d7a1acb6380a0dbd42704dc35"><td class="memSeparator" colspan="2">&#160;</td></tr>
  471: <tr class="memitem:a90f555ffb45e3a19d7d97e67d037d4df"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a90f555ffb45e3a19d7d97e67d037d4df">cfg_setlist</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int nvalues,...)</td></tr>
  472: <tr class="memdesc:a90f555ffb45e3a19d7d97e67d037d4df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set values for a list option.  <a href="confuse_8h.html#a90f555ffb45e3a19d7d97e67d037d4df">More...</a><br /></td></tr>
  473: <tr class="separator:a90f555ffb45e3a19d7d97e67d037d4df"><td class="memSeparator" colspan="2">&#160;</td></tr>
  474: <tr class="memitem:aa798c28419d32dc1d0b0e191d5e11e08"><td class="memItemLeft" align="right" valign="top">DLLIMPORT unsigned int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aa798c28419d32dc1d0b0e191d5e11e08">cfg_num</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg)</td></tr>
  475: <tr class="memdesc:aa798c28419d32dc1d0b0e191d5e11e08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return number of options in a file or section.  <a href="confuse_8h.html#aa798c28419d32dc1d0b0e191d5e11e08">More...</a><br /></td></tr>
  476: <tr class="separator:aa798c28419d32dc1d0b0e191d5e11e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
  477: <tr class="memitem:a5124b04b52aecc00048560d8d454125e"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a5124b04b52aecc00048560d8d454125e">cfg_addlist</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int nvalues,...)</td></tr>
  478: <tr class="memdesc:a5124b04b52aecc00048560d8d454125e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add values for a list option.  <a href="confuse_8h.html#a5124b04b52aecc00048560d8d454125e">More...</a><br /></td></tr>
  479: <tr class="separator:a5124b04b52aecc00048560d8d454125e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  480: <tr class="memitem:a7561c5f3994f1f8eb7d2072efcc58c2a"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a7561c5f3994f1f8eb7d2072efcc58c2a">cfg_opt_setmulti</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, unsigned int nvalues, char **values)</td></tr>
  481: <tr class="memdesc:a7561c5f3994f1f8eb7d2072efcc58c2a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an option (create an instance of an option).  <a href="confuse_8h.html#a7561c5f3994f1f8eb7d2072efcc58c2a">More...</a><br /></td></tr>
  482: <tr class="separator:a7561c5f3994f1f8eb7d2072efcc58c2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  483: <tr class="memitem:a20987aeb026ea918735c03acf6ead85e"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a20987aeb026ea918735c03acf6ead85e">cfg_setmulti</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int nvalues, char **values)</td></tr>
  484: <tr class="memdesc:a20987aeb026ea918735c03acf6ead85e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an option (create an instance of an option).  <a href="confuse_8h.html#a20987aeb026ea918735c03acf6ead85e">More...</a><br /></td></tr>
  485: <tr class="separator:a20987aeb026ea918735c03acf6ead85e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  486: <tr class="memitem:a8226e695ae793bb405a7980e8147ce2d"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a8226e695ae793bb405a7980e8147ce2d">cfg_addtsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, const char *title)</td></tr>
  487: <tr class="memdesc:a8226e695ae793bb405a7980e8147ce2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new titled config section.  <a href="confuse_8h.html#a8226e695ae793bb405a7980e8147ce2d">More...</a><br /></td></tr>
  488: <tr class="separator:a8226e695ae793bb405a7980e8147ce2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  489: <tr class="memitem:a89b520443f8c41e05d5f4e86bdefef5d"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a89b520443f8c41e05d5f4e86bdefef5d">cfg_opt_rmnsec</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index)</td></tr>
  490: <tr class="memdesc:a89b520443f8c41e05d5f4e86bdefef5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes and frees a config section, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer.  <a href="confuse_8h.html#a89b520443f8c41e05d5f4e86bdefef5d">More...</a><br /></td></tr>
  491: <tr class="separator:a89b520443f8c41e05d5f4e86bdefef5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  492: <tr class="memitem:a3658db217bbff1e8eba0245595de16c8"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a3658db217bbff1e8eba0245595de16c8">cfg_rmnsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, unsigned int index)</td></tr>
  493: <tr class="memdesc:a3658db217bbff1e8eba0245595de16c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indexed version of <a class="el" href="confuse_8h.html#aa08643cde27afe36627485bc947cb039" title="Removes and frees a config section.">cfg_rmsec()</a>, used for CFGF_MULTI sections.  <a href="confuse_8h.html#a3658db217bbff1e8eba0245595de16c8">More...</a><br /></td></tr>
  494: <tr class="separator:a3658db217bbff1e8eba0245595de16c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  495: <tr class="memitem:aa08643cde27afe36627485bc947cb039"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aa08643cde27afe36627485bc947cb039">cfg_rmsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name)</td></tr>
  496: <tr class="memdesc:aa08643cde27afe36627485bc947cb039"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes and frees a config section.  <a href="confuse_8h.html#aa08643cde27afe36627485bc947cb039">More...</a><br /></td></tr>
  497: <tr class="separator:aa08643cde27afe36627485bc947cb039"><td class="memSeparator" colspan="2">&#160;</td></tr>
  498: <tr class="memitem:ab5834cea46fc0b7418eecd75c952b220"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ab5834cea46fc0b7418eecd75c952b220">cfg_opt_rmtsec</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, const char *title)</td></tr>
  499: <tr class="memdesc:ab5834cea46fc0b7418eecd75c952b220"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes and frees a config section, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer and the title.  <a href="confuse_8h.html#ab5834cea46fc0b7418eecd75c952b220">More...</a><br /></td></tr>
  500: <tr class="separator:ab5834cea46fc0b7418eecd75c952b220"><td class="memSeparator" colspan="2">&#160;</td></tr>
  501: <tr class="memitem:a28df69d33e0387f3447262e9a99ead83"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a28df69d33e0387f3447262e9a99ead83">cfg_rmtsec</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, const char *title)</td></tr>
  502: <tr class="memdesc:a28df69d33e0387f3447262e9a99ead83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes and frees a section given the title, used for section with the CFGF_TITLE flag set.  <a href="confuse_8h.html#a28df69d33e0387f3447262e9a99ead83">More...</a><br /></td></tr>
  503: <tr class="separator:a28df69d33e0387f3447262e9a99ead83"><td class="memSeparator" colspan="2">&#160;</td></tr>
  504: <tr class="memitem:a98c96229d1d998718cd6c44899aa4364"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a98c96229d1d998718cd6c44899aa4364">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>
  505: <tr class="memdesc:a98c96229d1d998718cd6c44899aa4364"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default value print function.  <a href="confuse_8h.html#a98c96229d1d998718cd6c44899aa4364">More...</a><br /></td></tr>
  506: <tr class="separator:a98c96229d1d998718cd6c44899aa4364"><td class="memSeparator" colspan="2">&#160;</td></tr>
  507: <tr class="memitem:a1c3a275962c11731067e3e8ef9b782df"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a1c3a275962c11731067e3e8ef9b782df">cfg_opt_print_indent</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, FILE *fp, int indent)</td></tr>
  508: <tr class="memdesc:a1c3a275962c11731067e3e8ef9b782df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print an option and its value to a file.  <a href="confuse_8h.html#a1c3a275962c11731067e3e8ef9b782df">More...</a><br /></td></tr>
  509: <tr class="separator:a1c3a275962c11731067e3e8ef9b782df"><td class="memSeparator" colspan="2">&#160;</td></tr>
  510: <tr class="memitem:acb89e597f7220a8940d16c944c72545d"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#acb89e597f7220a8940d16c944c72545d">cfg_opt_print</a> (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, FILE *fp)</td></tr>
  511: <tr class="memdesc:acb89e597f7220a8940d16c944c72545d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print an option and its value to a file.  <a href="confuse_8h.html#acb89e597f7220a8940d16c944c72545d">More...</a><br /></td></tr>
  512: <tr class="separator:acb89e597f7220a8940d16c944c72545d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  513: <tr class="memitem:aac075fd59dc24472ab3bd5d1b33bf2ac"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#aac075fd59dc24472ab3bd5d1b33bf2ac">cfg_print_indent</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, FILE *fp, int indent)</td></tr>
  514: <tr class="memdesc:aac075fd59dc24472ab3bd5d1b33bf2ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the options and values to a file.  <a href="confuse_8h.html#aac075fd59dc24472ab3bd5d1b33bf2ac">More...</a><br /></td></tr>
  515: <tr class="separator:aac075fd59dc24472ab3bd5d1b33bf2ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
  516: <tr class="memitem:ac3343e32da22758f76ec50627316c708"><td class="memItemLeft" align="right" valign="top">DLLIMPORT int __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#ac3343e32da22758f76ec50627316c708">cfg_print</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, FILE *fp)</td></tr>
  517: <tr class="memdesc:ac3343e32da22758f76ec50627316c708"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print the options and values to a file.  <a href="confuse_8h.html#ac3343e32da22758f76ec50627316c708">More...</a><br /></td></tr>
  518: <tr class="separator:ac3343e32da22758f76ec50627316c708"><td class="memSeparator" colspan="2">&#160;</td></tr>
  519: <tr class="memitem:a292ba236b86cbe1bec047a467c8d605d"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9">cfg_print_func_t</a> __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a292ba236b86cbe1bec047a467c8d605d">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#a1b97fb911e1203df560f80c2528c5fd9">cfg_print_func_t</a> pf)</td></tr>
  520: <tr class="memdesc:a292ba236b86cbe1bec047a467c8d605d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a print callback function for an option.  <a href="confuse_8h.html#a292ba236b86cbe1bec047a467c8d605d">More...</a><br /></td></tr>
  521: <tr class="separator:a292ba236b86cbe1bec047a467c8d605d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  522: <tr class="memitem:a03bdd2ac7828e5161e68da93cb07238d"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9">cfg_print_func_t</a> __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a03bdd2ac7828e5161e68da93cb07238d">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#a1b97fb911e1203df560f80c2528c5fd9">cfg_print_func_t</a> pf)</td></tr>
  523: <tr class="memdesc:a03bdd2ac7828e5161e68da93cb07238d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a print callback function for an option given its name.  <a href="confuse_8h.html#a03bdd2ac7828e5161e68da93cb07238d">More...</a><br /></td></tr>
  524: <tr class="separator:a03bdd2ac7828e5161e68da93cb07238d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  525: <tr class="memitem:a6c54ace15f94610dc81ab3c3ada5a014"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#ac0d704ca318d6a83072f3e6860965694">cfg_print_filter_func_t</a> __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a6c54ace15f94610dc81ab3c3ada5a014">cfg_set_print_filter_func</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="confuse_8h.html#ac0d704ca318d6a83072f3e6860965694">cfg_print_filter_func_t</a> pff)</td></tr>
  526: <tr class="memdesc:a6c54ace15f94610dc81ab3c3ada5a014"><td class="mdescLeft">&#160;</td><td class="mdescRight">Install a user-defined print filter function.  <a href="confuse_8h.html#a6c54ace15f94610dc81ab3c3ada5a014">More...</a><br /></td></tr>
  527: <tr class="separator:a6c54ace15f94610dc81ab3c3ada5a014"><td class="memSeparator" colspan="2">&#160;</td></tr>
  528: <tr class="memitem:a8f07eca3c5e341ee6a81ecede2fbd5d8"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#a16da0a75f6314baedf4ed4ee2dd28d11">cfg_validate_callback_t</a> __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a8f07eca3c5e341ee6a81ecede2fbd5d8">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#a16da0a75f6314baedf4ed4ee2dd28d11">cfg_validate_callback_t</a> vf)</td></tr>
  529: <tr class="memdesc:a8f07eca3c5e341ee6a81ecede2fbd5d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a validating callback function for an option.  <a href="confuse_8h.html#a8f07eca3c5e341ee6a81ecede2fbd5d8">More...</a><br /></td></tr>
  530: <tr class="separator:a8f07eca3c5e341ee6a81ecede2fbd5d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  531: <tr class="memitem:a91d59966569b50fb32d09f3e9f65ee6c"><td class="memItemLeft" align="right" valign="top">DLLIMPORT <a class="el" href="confuse_8h.html#a5285e2294a128c40810a986ef87c6ed3">cfg_validate_callback2_t</a> __export&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="confuse_8h.html#a91d59966569b50fb32d09f3e9f65ee6c">cfg_set_validate_func2</a> (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *name, <a class="el" href="confuse_8h.html#a5285e2294a128c40810a986ef87c6ed3">cfg_validate_callback2_t</a> vf)</td></tr>
  532: <tr class="memdesc:a91d59966569b50fb32d09f3e9f65ee6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a validating callback function for an option.  <a href="confuse_8h.html#a91d59966569b50fb32d09f3e9f65ee6c">More...</a><br /></td></tr>
  533: <tr class="separator:a91d59966569b50fb32d09f3e9f65ee6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  534: </table>
  535: <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  536: <div class="textblock"><p>A configuration file parser library. </p>
  537: </div><h2 class="groupheader">Macro Definition Documentation</h2>
  538: <a id="a6b29dd8a4c6cd3d392d4ab6b2e535597"></a>
  539: <h2 class="memtitle"><span class="permalink"><a href="#a6b29dd8a4c6cd3d392d4ab6b2e535597">&#9670;&nbsp;</a></span>CFG_END</h2>
  540: 
  541: <div class="memitem">
  542: <div class="memproto">
  543:       <table class="memname">
  544:         <tr>
  545:           <td class="memname">#define CFG_END</td>
  546:           <td>(</td>
  547:           <td class="paramname"></td><td>)</td>
  548:           <td>&#160;&#160;&#160;{0,0,CFGT_NONE,0,0,<a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>,0,{0,0,cfg_false,0,0},0,{0},0,0,0,0,0}</td>
  549:         </tr>
  550:       </table>
  551: </div><div class="memdoc">
  552: 
  553: <p>Terminate list of options. </p>
  554: <p>This must be the last initializer in the option list. </p>
  555: <dl class="section examples"><dt>Examples</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>.</dd>
  556: </dl>
  557: 
  558: </div>
  559: </div>
  560: <a id="ab1ff85d6346cdefeb2ec2b696e50fde9"></a>
  561: <h2 class="memtitle"><span class="permalink"><a href="#ab1ff85d6346cdefeb2ec2b696e50fde9">&#9670;&nbsp;</a></span>CFG_FUNC</h2>
  562: 
  563: <div class="memitem">
  564: <div class="memproto">
  565:       <table class="memname">
  566:         <tr>
  567:           <td class="memname">#define CFG_FUNC</td>
  568:           <td>(</td>
  569:           <td class="paramtype">&#160;</td>
  570:           <td class="paramname">name, </td>
  571:         </tr>
  572:         <tr>
  573:           <td class="paramkey"></td>
  574:           <td></td>
  575:           <td class="paramtype">&#160;</td>
  576:           <td class="paramname">func&#160;</td>
  577:         </tr>
  578:         <tr>
  579:           <td></td>
  580:           <td>)</td>
  581:           <td></td><td>&#160;&#160;&#160;{name,0,<a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7a531bc0d05779dd0fbbe90ac9ae744c0f">CFGT_FUNC</a>,0,0,<a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>,0,{0,0,cfg_false,0,0},func,{0},0,0,0,0,0}</td>
  582:         </tr>
  583:       </table>
  584: </div><div class="memdoc">
  585: 
  586: <p>Initialize a function. </p>
  587: <dl class="params"><dt>Parameters</dt><dd>
  588:   <table class="params">
  589:     <tr><td class="paramname">name</td><td>The name of the option </td></tr>
  590:     <tr><td class="paramname">func</td><td>The callback function.</td></tr>
  591:   </table>
  592:   </dd>
  593: </dl>
  594: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a775e9fa25691f0754a643c0246efcc3c" title="Function prototype used by CFGT_FUNC options.">cfg_func_t</a> </dd></dl>
  595: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a18">ftpconf.c</a>.</dd>
  596: </dl>
  597: 
  598: </div>
  599: </div>
  600: <a id="a240cd896d81e219b3acbcf8f7279ffbb"></a>
  601: <h2 class="memtitle"><span class="permalink"><a href="#a240cd896d81e219b3acbcf8f7279ffbb">&#9670;&nbsp;</a></span>CFG_PTR_CB</h2>
  602: 
  603: <div class="memitem">
  604: <div class="memproto">
  605:       <table class="memname">
  606:         <tr>
  607:           <td class="memname">#define CFG_PTR_CB</td>
  608:           <td>(</td>
  609:           <td class="paramtype">&#160;</td>
  610:           <td class="paramname">name, </td>
  611:         </tr>
  612:         <tr>
  613:           <td class="paramkey"></td>
  614:           <td></td>
  615:           <td class="paramtype">&#160;</td>
  616:           <td class="paramname">def, </td>
  617:         </tr>
  618:         <tr>
  619:           <td class="paramkey"></td>
  620:           <td></td>
  621:           <td class="paramtype">&#160;</td>
  622:           <td class="paramname">flags, </td>
  623:         </tr>
  624:         <tr>
  625:           <td class="paramkey"></td>
  626:           <td></td>
  627:           <td class="paramtype">&#160;</td>
  628:           <td class="paramname">parsecb, </td>
  629:         </tr>
  630:         <tr>
  631:           <td class="paramkey"></td>
  632:           <td></td>
  633:           <td class="paramtype">&#160;</td>
  634:           <td class="paramname">freecb&#160;</td>
  635:         </tr>
  636:         <tr>
  637:           <td></td>
  638:           <td>)</td>
  639:           <td></td><td>&#160;&#160;&#160;__CFG_PTR(name, def, flags, 0, parsecb, freecb)</td>
  640:         </tr>
  641:       </table>
  642: </div><div class="memdoc">
  643: 
  644: <p>Initialize a user-defined option. </p>
  645: <p>CFG_PTR options can only be used together with a value parsing callback.</p>
  646: <dl class="params"><dt>Parameters</dt><dd>
  647:   <table class="params">
  648:     <tr><td class="paramname">name</td><td>The name of the option </td></tr>
  649:     <tr><td class="paramname">def</td><td>Default value </td></tr>
  650:     <tr><td class="paramname">flags</td><td>Flags </td></tr>
  651:     <tr><td class="paramname">parsecb</td><td>Value parsing callback </td></tr>
  652:     <tr><td class="paramname">freecb</td><td>Memory release function</td></tr>
  653:   </table>
  654:   </dd>
  655: </dl>
  656: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a6fd5dd8df47cbf571782463ca1e0c4b7" title="Value parsing callback prototype.">cfg_callback_t</a>, <a class="el" href="confuse_8h.html#a1761cfbf430e57415ed517374028996f" title="User-defined memory release function for CFG_PTR values.">cfg_free_func_t</a> </dd></dl>
  657: 
  658: </div>
  659: </div>
  660: <a id="a043d5c79624269e5f60f59a698e461a6"></a>
  661: <h2 class="memtitle"><span class="permalink"><a href="#a043d5c79624269e5f60f59a698e461a6">&#9670;&nbsp;</a></span>CFG_SEC</h2>
  662: 
  663: <div class="memitem">
  664: <div class="memproto">
  665:       <table class="memname">
  666:         <tr>
  667:           <td class="memname">#define CFG_SEC</td>
  668:           <td>(</td>
  669:           <td class="paramtype">&#160;</td>
  670:           <td class="paramname">name, </td>
  671:         </tr>
  672:         <tr>
  673:           <td class="paramkey"></td>
  674:           <td></td>
  675:           <td class="paramtype">&#160;</td>
  676:           <td class="paramname">opts, </td>
  677:         </tr>
  678:         <tr>
  679:           <td class="paramkey"></td>
  680:           <td></td>
  681:           <td class="paramtype">&#160;</td>
  682:           <td class="paramname">flags&#160;</td>
  683:         </tr>
  684:         <tr>
  685:           <td></td>
  686:           <td>)</td>
  687:           <td></td><td>&#160;&#160;&#160;{name,0,<a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7aa786f6288e70d0ec5fc0ef38f1671f1b">CFGT_SEC</a>,0,0,flags,opts,{0,0,cfg_false,0,0},0,{0},0,0,0,0,0}</td>
  688:         </tr>
  689:       </table>
  690: </div><div class="memdoc">
  691: 
  692: <p>Initialize a section. </p>
  693: <dl class="params"><dt>Parameters</dt><dd>
  694:   <table class="params">
  695:     <tr><td class="paramname">name</td><td>The name of the option </td></tr>
  696:     <tr><td class="paramname">opts</td><td>Array of options that are valid within this section</td></tr>
  697:     <tr><td class="paramname">flags</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#ac1fda0e6937653d891ae276ae69d0f76" title="Return a section given the title, used for section with the CFGF_TITLE flag set.">cfg_gettsec()</a> function) </td></tr>
  698:   </table>
  699:   </dd>
  700: </dl>
  701: <dl class="section examples"><dt>Examples</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>.</dd>
  702: </dl>
  703: 
  704: </div>
  705: </div>
  706: <a id="a88fa2e73a1294c7e8a1f1519b68ce0ff"></a>
  707: <h2 class="memtitle"><span class="permalink"><a href="#a88fa2e73a1294c7e8a1f1519b68ce0ff">&#9670;&nbsp;</a></span>CFG_SIMPLE_INT</h2>
  708: 
  709: <div class="memitem">
  710: <div class="memproto">
  711:       <table class="memname">
  712:         <tr>
  713:           <td class="memname">#define CFG_SIMPLE_INT</td>
  714:           <td>(</td>
  715:           <td class="paramtype">&#160;</td>
  716:           <td class="paramname">name, </td>
  717:         </tr>
  718:         <tr>
  719:           <td class="paramkey"></td>
  720:           <td></td>
  721:           <td class="paramtype">&#160;</td>
  722:           <td class="paramname">svalue&#160;</td>
  723:         </tr>
  724:         <tr>
  725:           <td></td>
  726:           <td>)</td>
  727:           <td></td><td>&#160;&#160;&#160;__CFG_INT(name, 0, <a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>, svalue, 0)</td>
  728:         </tr>
  729:       </table>
  730: </div><div class="memdoc">
  731: 
  732: <p>Initialize a "simple" integer option (see documentation for CFG_SIMPLE_STR for more information). </p>
  733: <p>Note that confuse uses long integers, so make sure that any pointer you provide for svalue points to a long int rather than a normal int. Otherwise, you will have strange problems on 64-bit architectures. </p>
  734: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="simple_8c-example.html#a3">simple.c</a>.</dd>
  735: </dl>
  736: 
  737: </div>
  738: </div>
  739: <a id="ae54fbbc31bd8c7ec8d7f04597a9f749d"></a>
  740: <h2 class="memtitle"><span class="permalink"><a href="#ae54fbbc31bd8c7ec8d7f04597a9f749d">&#9670;&nbsp;</a></span>CFG_SIMPLE_STR</h2>
  741: 
  742: <div class="memitem">
  743: <div class="memproto">
  744:       <table class="memname">
  745:         <tr>
  746:           <td class="memname">#define CFG_SIMPLE_STR</td>
  747:           <td>(</td>
  748:           <td class="paramtype">&#160;</td>
  749:           <td class="paramname">name, </td>
  750:         </tr>
  751:         <tr>
  752:           <td class="paramkey"></td>
  753:           <td></td>
  754:           <td class="paramtype">&#160;</td>
  755:           <td class="paramname">svalue&#160;</td>
  756:         </tr>
  757:         <tr>
  758:           <td></td>
  759:           <td>)</td>
  760:           <td></td><td>&#160;&#160;&#160;__CFG_STR(name, 0, <a class="el" href="confuse_8h.html#a65df72d236bcc3e7f22c5b2b5c24bded">CFGF_NONE</a>, svalue, 0)</td>
  761:         </tr>
  762:       </table>
  763: </div><div class="memdoc">
  764: 
  765: <p>Initialize a "simple" string option. </p>
  766: <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" title="Data structure holding information about a &quot;section&quot;.">cfg_t</a> context, only a pointer. Sections can not be initialized as a "simple" option.</p>
  767: <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>
  768: <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>
  769: <dl class="params"><dt>Parameters</dt><dd>
  770:   <table class="params">
  771:     <tr><td class="paramname">name</td><td>name of the option </td></tr>
  772:     <tr><td class="paramname">svalue</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>
  773: char *user = "joe";
  774: ...
  775: <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> opts[] = {
  776:     CFG_SIMPLE_STR("user", &amp;user),
  777: ...
  778: </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>
  779: char *user = strdup("joe");
  780: ...
  781: <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> opts[] = {
  782:      CFG_SIMPLE_STR("user", &amp;user),
  783: ...
  784: </pre> Alternatively, the default value can be set after the opts struct is defined, as in: <pre>
  785: char *user = 0;
  786: ...
  787: <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> opts[] = {
  788:      CFG_SIMPLE_STR("user", &amp;user),
  789: ...
  790: user = strdup("joe");
  791: cfg = cfg_init(opts, 0);
  792: cfg_parse(cfg, filename);
  793: </pre> </td></tr>
  794:   </table>
  795:   </dd>
  796: </dl>
  797: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="simple_8c-example.html#a2">simple.c</a>.</dd>
  798: </dl>
  799: 
  800: </div>
  801: </div>
  802: <a id="a66a1002180229809620b9bf2d3b888a6"></a>
  803: <h2 class="memtitle"><span class="permalink"><a href="#a66a1002180229809620b9bf2d3b888a6">&#9670;&nbsp;</a></span>CFG_SUCCESS</h2>
  804: 
  805: <div class="memitem">
  806: <div class="memproto">
  807:       <table class="memname">
  808:         <tr>
  809:           <td class="memname">#define CFG_SUCCESS&#160;&#160;&#160;0</td>
  810:         </tr>
  811:       </table>
  812: </div><div class="memdoc">
  813: 
  814: <p>Return codes from <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a>, <a class="el" href="confuse_8h.html#a527f63939bf3f0b5d635fd86cd562086" title="Parse a boolean option string.">cfg_parse_boolean()</a>, and cfg_set*() functions. </p>
  815: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a25">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a12">reread.c</a>.</dd>
  816: </dl>
  817: 
  818: </div>
  819: </div>
  820: <a id="ac860586bbfb8db825009652a7ce33347"></a>
  821: <h2 class="memtitle"><span class="permalink"><a href="#ac860586bbfb8db825009652a7ce33347">&#9670;&nbsp;</a></span>CFGF_DEPRECATED</h2>
  822: 
  823: <div class="memitem">
  824: <div class="memproto">
  825:       <table class="memname">
  826:         <tr>
  827:           <td class="memname">#define CFGF_DEPRECATED&#160;&#160;&#160;(1 &lt;&lt;  9)</td>
  828:         </tr>
  829:       </table>
  830: </div><div class="memdoc">
  831: 
  832: <p>option is deprecated and should be ignored. </p>
  833: 
  834: </div>
  835: </div>
  836: <a id="a65df72d236bcc3e7f22c5b2b5c24bded"></a>
  837: <h2 class="memtitle"><span class="permalink"><a href="#a65df72d236bcc3e7f22c5b2b5c24bded">&#9670;&nbsp;</a></span>CFGF_NONE</h2>
  838: 
  839: <div class="memitem">
  840: <div class="memproto">
  841:       <table class="memname">
  842:         <tr>
  843:           <td class="memname">#define CFGF_NONE&#160;&#160;&#160;(0)</td>
  844:         </tr>
  845:       </table>
  846: </div><div class="memdoc">
  847: 
  848: <p>Flags. </p>
  849: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a12">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a3">reread.c</a>.</dd>
  850: </dl>
  851: 
  852: </div>
  853: </div>
  854: <h2 class="groupheader">Typedef Documentation</h2>
  855: <a id="a6fd5dd8df47cbf571782463ca1e0c4b7"></a>
  856: <h2 class="memtitle"><span class="permalink"><a href="#a6fd5dd8df47cbf571782463ca1e0c4b7">&#9670;&nbsp;</a></span>cfg_callback_t</h2>
  857: 
  858: <div class="memitem">
  859: <div class="memproto">
  860:       <table class="memname">
  861:         <tr>
  862:           <td class="memname">typedef int(* cfg_callback_t) (<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>
  863:         </tr>
  864:       </table>
  865: </div><div class="memdoc">
  866: 
  867: <p>Value parsing callback prototype. </p>
  868: <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>
  869: <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>
  870: <dl class="params"><dt>Parameters</dt><dd>
  871:   <table class="params">
  872:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
  873:     <tr><td class="paramname">opt</td><td>The option. </td></tr>
  874:     <tr><td class="paramname">value</td><td>The value found in the configuration file. </td></tr>
  875:     <tr><td class="paramname">result</td><td>Pointer to storage for the result, cast to a void pointer.</td></tr>
  876:   </table>
  877:   </dd>
  878: </dl>
  879: <dl class="section return"><dt>Returns</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#a5b448a145f12b67e90bd4e6bd387f129" title="Show a parser error.">cfg_error()</a>. </dd></dl>
  880: 
  881: </div>
  882: </div>
  883: <a id="a21921b63558b504a7f68cf97ba3cf3ce"></a>
  884: <h2 class="memtitle"><span class="permalink"><a href="#a21921b63558b504a7f68cf97ba3cf3ce">&#9670;&nbsp;</a></span>cfg_errfunc_t</h2>
  885: 
  886: <div class="memitem">
  887: <div class="memproto">
  888:       <table class="memname">
  889:         <tr>
  890:           <td class="memname">typedef void(* cfg_errfunc_t) (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, const char *fmt, va_list ap)</td>
  891:         </tr>
  892:       </table>
  893: </div><div class="memdoc">
  894: 
  895: <p>Error reporting function. </p>
  896: 
  897: </div>
  898: </div>
  899: <a id="a1761cfbf430e57415ed517374028996f"></a>
  900: <h2 class="memtitle"><span class="permalink"><a href="#a1761cfbf430e57415ed517374028996f">&#9670;&nbsp;</a></span>cfg_free_func_t</h2>
  901: 
  902: <div class="memitem">
  903: <div class="memproto">
  904:       <table class="memname">
  905:         <tr>
  906:           <td class="memname">typedef void(* cfg_free_func_t) (void *value)</td>
  907:         </tr>
  908:       </table>
  909: </div><div class="memdoc">
  910: 
  911: <p>User-defined memory release function for CFG_PTR values. </p>
  912: <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. </p>
  913: 
  914: </div>
  915: </div>
  916: <a id="a775e9fa25691f0754a643c0246efcc3c"></a>
  917: <h2 class="memtitle"><span class="permalink"><a href="#a775e9fa25691f0754a643c0246efcc3c">&#9670;&nbsp;</a></span>cfg_func_t</h2>
  918: 
  919: <div class="memitem">
  920: <div class="memproto">
  921:       <table class="memname">
  922:         <tr>
  923:           <td class="memname">typedef int(* cfg_func_t) (<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>
  924:         </tr>
  925:       </table>
  926: </div><div class="memdoc">
  927: 
  928: <p>Function prototype used by CFGT_FUNC options. </p>
  929: <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>
  930: <dl class="params"><dt>Parameters</dt><dd>
  931:   <table class="params">
  932:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
  933:     <tr><td class="paramname">opt</td><td>The option. </td></tr>
  934:     <tr><td class="paramname">argc</td><td>Number of arguments passed. The callback function is responsible for checking that the correct number of arguments are passed. </td></tr>
  935:     <tr><td class="paramname">argv</td><td>Arguments as an array of character strings.</td></tr>
  936:   </table>
  937:   </dd>
  938: </dl>
  939: <dl class="section return"><dt>Returns</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#a5b448a145f12b67e90bd4e6bd387f129" title="Show a parser error.">cfg_error()</a>.</dd></dl>
  940: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#ab1ff85d6346cdefeb2ec2b696e50fde9" title="Initialize a function.">CFG_FUNC</a> </dd></dl>
  941: 
  942: </div>
  943: </div>
  944: <a id="ac0d704ca318d6a83072f3e6860965694"></a>
  945: <h2 class="memtitle"><span class="permalink"><a href="#ac0d704ca318d6a83072f3e6860965694">&#9670;&nbsp;</a></span>cfg_print_filter_func_t</h2>
  946: 
  947: <div class="memitem">
  948: <div class="memproto">
  949:       <table class="memname">
  950:         <tr>
  951:           <td class="memname">typedef int(* cfg_print_filter_func_t) (<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>
  952:         </tr>
  953:       </table>
  954: </div><div class="memdoc">
  955: 
  956: <p>Print filter function. </p>
  957: <dl class="params"><dt>Parameters</dt><dd>
  958:   <table class="params">
  959:     <tr><td class="paramname">cfg</td><td>The configuration file context that opt belongs to. </td></tr>
  960:     <tr><td class="paramname">opt</td><td>The configuration option that is about to be printed, or not. </td></tr>
  961:   </table>
  962:   </dd>
  963: </dl>
  964: <dl class="section return"><dt>Returns</dt><dd>Zero if opt should be printed, non-zero if it should be filtered out.</dd></dl>
  965: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a6c54ace15f94610dc81ab3c3ada5a014" title="Install a user-defined print filter function.">cfg_set_print_filter_func()</a> </dd></dl>
  966: 
  967: </div>
  968: </div>
  969: <a id="a1b97fb911e1203df560f80c2528c5fd9"></a>
  970: <h2 class="memtitle"><span class="permalink"><a href="#a1b97fb911e1203df560f80c2528c5fd9">&#9670;&nbsp;</a></span>cfg_print_func_t</h2>
  971: 
  972: <div class="memitem">
  973: <div class="memproto">
  974:       <table class="memname">
  975:         <tr>
  976:           <td class="memname">typedef void(* cfg_print_func_t) (<a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, unsigned int index, FILE *fp)</td>
  977:         </tr>
  978:       </table>
  979: </div><div class="memdoc">
  980: 
  981: <p>Function prototype used by the cfg_print_ functions. </p>
  982: <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>
  983: <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>
  984: <dl class="params"><dt>Parameters</dt><dd>
  985:   <table class="params">
  986:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
  987:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
  988:     <tr><td class="paramname">fp</td><td>File stream to print to, use stdout to print to the screen.</td></tr>
  989:   </table>
  990:   </dd>
  991: </dl>
  992: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#ac3343e32da22758f76ec50627316c708" title="Print the options and values to a file.">cfg_print</a>, <a class="el" href="confuse_8h.html#a03bdd2ac7828e5161e68da93cb07238d" title="Set a print callback function for an option given its name.">cfg_set_print_func</a> </dd></dl>
  993: 
  994: </div>
  995: </div>
  996: <a id="a5285e2294a128c40810a986ef87c6ed3"></a>
  997: <h2 class="memtitle"><span class="permalink"><a href="#a5285e2294a128c40810a986ef87c6ed3">&#9670;&nbsp;</a></span>cfg_validate_callback2_t</h2>
  998: 
  999: <div class="memitem">
 1000: <div class="memproto">
 1001:       <table class="memname">
 1002:         <tr>
 1003:           <td class="memname">typedef int(* cfg_validate_callback2_t) (<a class="el" href="structcfg__t.html">cfg_t</a> *cfg, <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *opt, void *value)</td>
 1004:         </tr>
 1005:       </table>
 1006: </div><div class="memdoc">
 1007: 
 1008: <p>Validating callback2 prototype. </p>
 1009: <p>This callback function is called before an option is set using the cfg_set*() APIs. The function is called only for strings, integers, and floats. Compared to the regular callback function this takes a value pointer argument which must be casted before use, but can also be used to correct a value before it is set, e.g. when a too large value is set this can be used to set the MAX.</p>
 1010: <dl class="section return"><dt>Returns</dt><dd>On success, 0 should be returned. All other values indicates an error, and the cfg_set*() function will return without setting the value.</dd></dl>
 1011: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a91d59966569b50fb32d09f3e9f65ee6c" title="Register a validating callback function for an option.">cfg_set_validate_func2()</a> </dd></dl>
 1012: 
 1013: </div>
 1014: </div>
 1015: <a id="a16da0a75f6314baedf4ed4ee2dd28d11"></a>
 1016: <h2 class="memtitle"><span class="permalink"><a href="#a16da0a75f6314baedf4ed4ee2dd28d11">&#9670;&nbsp;</a></span>cfg_validate_callback_t</h2>
 1017: 
 1018: <div class="memitem">
 1019: <div class="memproto">
 1020:       <table class="memname">
 1021:         <tr>
 1022:           <td class="memname">typedef int(* cfg_validate_callback_t) (<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>
 1023:         </tr>
 1024:       </table>
 1025: </div><div class="memdoc">
 1026: 
 1027: <p>Validating callback prototype. </p>
 1028: <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>
 1029: <dl class="section return"><dt>Returns</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#a5b448a145f12b67e90bd4e6bd387f129" title="Show a parser error.">cfg_error()</a>.</dd></dl>
 1030: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a8f07eca3c5e341ee6a81ecede2fbd5d8" title="Register a validating callback function for an option.">cfg_set_validate_func</a> </dd></dl>
 1031: 
 1032: </div>
 1033: </div>
 1034: <h2 class="groupheader">Enumeration Type Documentation</h2>
 1035: <a id="a4bce4b6aed9b07489d6a5c70321907e4"></a>
 1036: <h2 class="memtitle"><span class="permalink"><a href="#a4bce4b6aed9b07489d6a5c70321907e4">&#9670;&nbsp;</a></span>cfg_bool_t</h2>
 1037: 
 1038: <div class="memitem">
 1039: <div class="memproto">
 1040:       <table class="memname">
 1041:         <tr>
 1042:           <td class="memname">enum <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a></td>
 1043:         </tr>
 1044:       </table>
 1045: </div><div class="memdoc">
 1046: 
 1047: <p>Boolean values. </p>
 1048: 
 1049: </div>
 1050: </div>
 1051: <a id="a9c62155b0deae0e1831507520a2ff7c7"></a>
 1052: <h2 class="memtitle"><span class="permalink"><a href="#a9c62155b0deae0e1831507520a2ff7c7">&#9670;&nbsp;</a></span>cfg_type_t</h2>
 1053: 
 1054: <div class="memitem">
 1055: <div class="memproto">
 1056:       <table class="memname">
 1057:         <tr>
 1058:           <td class="memname">enum <a class="el" href="confuse_8h.html#a9c62155b0deae0e1831507520a2ff7c7">cfg_type_t</a></td>
 1059:         </tr>
 1060:       </table>
 1061: </div><div class="memdoc">
 1062: 
 1063: <p>Fundamental option types. </p>
 1064: <table class="fieldtable">
 1065: <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a9c62155b0deae0e1831507520a2ff7c7af397ec05171bfacd9944b3d538fbd6dc"></a>CFGT_INT&#160;</td><td class="fielddoc"><p>integer </p>
 1066: </td></tr>
 1067: <tr><td class="fieldname"><a id="a9c62155b0deae0e1831507520a2ff7c7abd237f20c366857f5521da911ba813cb"></a>CFGT_FLOAT&#160;</td><td class="fielddoc"><p>floating point number </p>
 1068: </td></tr>
 1069: <tr><td class="fieldname"><a id="a9c62155b0deae0e1831507520a2ff7c7ac6a18c97187c38648e11f18ad465f4f3"></a>CFGT_STR&#160;</td><td class="fielddoc"><p>string </p>
 1070: </td></tr>
 1071: <tr><td class="fieldname"><a id="a9c62155b0deae0e1831507520a2ff7c7a8f04ccea50fbe06f9a118b4423ead6fd"></a>CFGT_BOOL&#160;</td><td class="fielddoc"><p>boolean value </p>
 1072: </td></tr>
 1073: <tr><td class="fieldname"><a id="a9c62155b0deae0e1831507520a2ff7c7aa786f6288e70d0ec5fc0ef38f1671f1b"></a>CFGT_SEC&#160;</td><td class="fielddoc"><p>section </p>
 1074: </td></tr>
 1075: <tr><td class="fieldname"><a id="a9c62155b0deae0e1831507520a2ff7c7a531bc0d05779dd0fbbe90ac9ae744c0f"></a>CFGT_FUNC&#160;</td><td class="fielddoc"><p>function </p>
 1076: </td></tr>
 1077: <tr><td class="fieldname"><a id="a9c62155b0deae0e1831507520a2ff7c7a1b2260acd1f600d08b1317676b90dbb4"></a>CFGT_PTR&#160;</td><td class="fielddoc"><p>pointer to user-defined value </p>
 1078: </td></tr>
 1079: <tr><td class="fieldname"><a id="a9c62155b0deae0e1831507520a2ff7c7a5129850f14713386d370f620c828004a"></a>CFGT_COMMENT&#160;</td><td class="fielddoc"><p>comment/annotation </p>
 1080: </td></tr>
 1081: </table>
 1082: 
 1083: </div>
 1084: </div>
 1085: <h2 class="groupheader">Function Documentation</h2>
 1086: <a id="a6d41c76e4378f359cf70c5015f452c5d"></a>
 1087: <h2 class="memtitle"><span class="permalink"><a href="#a6d41c76e4378f359cf70c5015f452c5d">&#9670;&nbsp;</a></span>cfg_add_searchpath()</h2>
 1088: 
 1089: <div class="memitem">
 1090: <div class="memproto">
 1091:       <table class="memname">
 1092:         <tr>
 1093:           <td class="memname">DLLIMPORT int __export cfg_add_searchpath </td>
 1094:           <td>(</td>
 1095:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1096:           <td class="paramname"><em>cfg</em>, </td>
 1097:         </tr>
 1098:         <tr>
 1099:           <td class="paramkey"></td>
 1100:           <td></td>
 1101:           <td class="paramtype">const char *&#160;</td>
 1102:           <td class="paramname"><em>dir</em>&#160;</td>
 1103:         </tr>
 1104:         <tr>
 1105:           <td></td>
 1106:           <td>)</td>
 1107:           <td></td><td></td>
 1108:         </tr>
 1109:       </table>
 1110: </div><div class="memdoc">
 1111: 
 1112: <p>Add a searchpath directory to the configuration context, the const char* argument will be duplicated and then freed as part of the usual context takedown. </p>
 1113: <p>All directories added to the context in this manner will be searched for the file specified in <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a>, and for those included. All directories added with this function will be "tilde expanded". Note that the current directory is not added to the searchpath by default.</p>
 1114: <dl class="params"><dt>Parameters</dt><dd>
 1115:   <table class="params">
 1116:     <tr><td class="paramname">cfg</td><td>The configuration file context as returned from <a class="el" href="confuse_8h.html#aec07794916564c8ab437e030ac618aa8" title="Create and initialize a cfg_t structure.">cfg_init()</a>. </td></tr>
 1117:     <tr><td class="paramname">dir</td><td>Directory to be added to the search path.</td></tr>
 1118:   </table>
 1119:   </dd>
 1120: </dl>
 1121: <dl class="section return"><dt>Returns</dt><dd>On success, CFG_SUCCESS, on failure (which can only be caused by a failed malloc()), CFG_PARSE_ERROR. </dd></dl>
 1122: 
 1123: </div>
 1124: </div>
 1125: <a id="a5124b04b52aecc00048560d8d454125e"></a>
 1126: <h2 class="memtitle"><span class="permalink"><a href="#a5124b04b52aecc00048560d8d454125e">&#9670;&nbsp;</a></span>cfg_addlist()</h2>
 1127: 
 1128: <div class="memitem">
 1129: <div class="memproto">
 1130:       <table class="memname">
 1131:         <tr>
 1132:           <td class="memname">DLLIMPORT int __export cfg_addlist </td>
 1133:           <td>(</td>
 1134:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1135:           <td class="paramname"><em>cfg</em>, </td>
 1136:         </tr>
 1137:         <tr>
 1138:           <td class="paramkey"></td>
 1139:           <td></td>
 1140:           <td class="paramtype">const char *&#160;</td>
 1141:           <td class="paramname"><em>name</em>, </td>
 1142:         </tr>
 1143:         <tr>
 1144:           <td class="paramkey"></td>
 1145:           <td></td>
 1146:           <td class="paramtype">unsigned int&#160;</td>
 1147:           <td class="paramname"><em>nvalues</em>, </td>
 1148:         </tr>
 1149:         <tr>
 1150:           <td class="paramkey"></td>
 1151:           <td></td>
 1152:           <td class="paramtype">&#160;</td>
 1153:           <td class="paramname"><em>...</em>&#160;</td>
 1154:         </tr>
 1155:         <tr>
 1156:           <td></td>
 1157:           <td>)</td>
 1158:           <td></td><td></td>
 1159:         </tr>
 1160:       </table>
 1161: </div><div class="memdoc">
 1162: 
 1163: <p>Add values for a list option. </p>
 1164: <p>The new values are appended to any current values in the list.</p>
 1165: <dl class="params"><dt>Parameters</dt><dd>
 1166:   <table class="params">
 1167:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1168:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1169:     <tr><td class="paramname">nvalues</td><td>Number of values to add. </td></tr>
 1170:     <tr><td class="paramname">...</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>
 1171:   </table>
 1172:   </dd>
 1173: </dl>
 1174: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 1175: 
 1176: </div>
 1177: </div>
 1178: <a id="a8226e695ae793bb405a7980e8147ce2d"></a>
 1179: <h2 class="memtitle"><span class="permalink"><a href="#a8226e695ae793bb405a7980e8147ce2d">&#9670;&nbsp;</a></span>cfg_addtsec()</h2>
 1180: 
 1181: <div class="memitem">
 1182: <div class="memproto">
 1183:       <table class="memname">
 1184:         <tr>
 1185:           <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* cfg_addtsec </td>
 1186:           <td>(</td>
 1187:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1188:           <td class="paramname"><em>cfg</em>, </td>
 1189:         </tr>
 1190:         <tr>
 1191:           <td class="paramkey"></td>
 1192:           <td></td>
 1193:           <td class="paramtype">const char *&#160;</td>
 1194:           <td class="paramname"><em>name</em>, </td>
 1195:         </tr>
 1196:         <tr>
 1197:           <td class="paramkey"></td>
 1198:           <td></td>
 1199:           <td class="paramtype">const char *&#160;</td>
 1200:           <td class="paramname"><em>title</em>&#160;</td>
 1201:         </tr>
 1202:         <tr>
 1203:           <td></td>
 1204:           <td>)</td>
 1205:           <td></td><td></td>
 1206:         </tr>
 1207:       </table>
 1208: </div><div class="memdoc">
 1209: 
 1210: <p>Create a new titled config section. </p>
 1211: <dl class="params"><dt>Parameters</dt><dd>
 1212:   <table class="params">
 1213:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1214:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1215:     <tr><td class="paramname">title</td><td>The title of this section.</td></tr>
 1216:   </table>
 1217:   </dd>
 1218: </dl>
 1219: <dl class="section return"><dt>Returns</dt><dd>A pointer to the created section or if the section already exists a pointer to that section is returned. If the section could not be created or found, 0 is returned. </dd></dl>
 1220: 
 1221: </div>
 1222: </div>
 1223: <a id="a5b448a145f12b67e90bd4e6bd387f129"></a>
 1224: <h2 class="memtitle"><span class="permalink"><a href="#a5b448a145f12b67e90bd4e6bd387f129">&#9670;&nbsp;</a></span>cfg_error()</h2>
 1225: 
 1226: <div class="memitem">
 1227: <div class="memproto">
 1228:       <table class="memname">
 1229:         <tr>
 1230:           <td class="memname">DLLIMPORT void __export cfg_error </td>
 1231:           <td>(</td>
 1232:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1233:           <td class="paramname"><em>cfg</em>, </td>
 1234:         </tr>
 1235:         <tr>
 1236:           <td class="paramkey"></td>
 1237:           <td></td>
 1238:           <td class="paramtype">const char *&#160;</td>
 1239:           <td class="paramname"><em>fmt</em>, </td>
 1240:         </tr>
 1241:         <tr>
 1242:           <td class="paramkey"></td>
 1243:           <td></td>
 1244:           <td class="paramtype">&#160;</td>
 1245:           <td class="paramname"><em>...</em>&#160;</td>
 1246:         </tr>
 1247:         <tr>
 1248:           <td></td>
 1249:           <td>)</td>
 1250:           <td></td><td></td>
 1251:         </tr>
 1252:       </table>
 1253: </div><div class="memdoc">
 1254: 
 1255: <p>Show a parser error. </p>
 1256: <p>Any user-defined error reporting function is called. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#ae5cd3df98ec4c9895fbe73fd1c32f7a1" title="Install a user-defined error reporting function.">cfg_set_error_function</a> </dd></dl>
 1257: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a2">ftpconf.c</a>.</dd>
 1258: </dl>
 1259: 
 1260: </div>
 1261: </div>
 1262: <a id="aae5e08626bf53514a6ebf250580feba3"></a>
 1263: <h2 class="memtitle"><span class="permalink"><a href="#aae5e08626bf53514a6ebf250580feba3">&#9670;&nbsp;</a></span>cfg_free()</h2>
 1264: 
 1265: <div class="memitem">
 1266: <div class="memproto">
 1267:       <table class="memname">
 1268:         <tr>
 1269:           <td class="memname">DLLIMPORT int __export cfg_free </td>
 1270:           <td>(</td>
 1271:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1272:           <td class="paramname"><em>cfg</em></td><td>)</td>
 1273:           <td></td>
 1274:         </tr>
 1275:       </table>
 1276: </div><div class="memdoc">
 1277: 
 1278: <p>Free a <a class="el" href="structcfg__t.html" title="Data structure holding information about a &quot;section&quot;.">cfg_t</a> context. </p>
 1279: <p>All memory allocated by the <a class="el" href="structcfg__t.html" title="Data structure holding information about a &quot;section&quot;.">cfg_t</a> context structure are freed, and can't be used in any further cfg_* calls.</p>
 1280: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 1281: <dl class="section examples"><dt>Examples</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>.</dd>
 1282: </dl>
 1283: 
 1284: </div>
 1285: </div>
 1286: <a id="a4ad028d56e64c44ea8413d4d79143843"></a>
 1287: <h2 class="memtitle"><span class="permalink"><a href="#a4ad028d56e64c44ea8413d4d79143843">&#9670;&nbsp;</a></span>cfg_free_value()</h2>
 1288: 
 1289: <div class="memitem">
 1290: <div class="memproto">
 1291:       <table class="memname">
 1292:         <tr>
 1293:           <td class="memname">DLLIMPORT int __export cfg_free_value </td>
 1294:           <td>(</td>
 1295:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 1296:           <td class="paramname"><em>opt</em></td><td>)</td>
 1297:           <td></td>
 1298:         </tr>
 1299:       </table>
 1300: </div><div class="memdoc">
 1301: 
 1302: <p>Free the memory allocated for the values of a given option. </p>
 1303: <p>Only the values are freed, not the option itself (it is freed by <a class="el" href="confuse_8h.html#aae5e08626bf53514a6ebf250580feba3" title="Free a cfg_t context.">cfg_free()</a>).</p>
 1304: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#aae5e08626bf53514a6ebf250580feba3" title="Free a cfg_t context.">cfg_free()</a></dd></dl>
 1305: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 1306: 
 1307: </div>
 1308: </div>
 1309: <a id="ab4903f75c29f9c2973696039c4f5c0df"></a>
 1310: <h2 class="memtitle"><span class="permalink"><a href="#ab4903f75c29f9c2973696039c4f5c0df">&#9670;&nbsp;</a></span>cfg_getbool()</h2>
 1311: 
 1312: <div class="memitem">
 1313: <div class="memproto">
 1314:       <table class="memname">
 1315:         <tr>
 1316:           <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export cfg_getbool </td>
 1317:           <td>(</td>
 1318:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1319:           <td class="paramname"><em>cfg</em>, </td>
 1320:         </tr>
 1321:         <tr>
 1322:           <td class="paramkey"></td>
 1323:           <td></td>
 1324:           <td class="paramtype">const char *&#160;</td>
 1325:           <td class="paramname"><em>name</em>&#160;</td>
 1326:         </tr>
 1327:         <tr>
 1328:           <td></td>
 1329:           <td>)</td>
 1330:           <td></td><td></td>
 1331:         </tr>
 1332:       </table>
 1333: </div><div class="memdoc">
 1334: 
 1335: <p>Returns the value of a boolean option. </p>
 1336: <dl class="params"><dt>Parameters</dt><dd>
 1337:   <table class="params">
 1338:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1339:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1340:   </table>
 1341:   </dd>
 1342: </dl>
 1343: <dl class="section return"><dt>Returns</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" title="Data structure holding information about an option.">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>
 1344: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a26">ftpconf.c</a>.</dd>
 1345: </dl>
 1346: 
 1347: </div>
 1348: </div>
 1349: <a id="a72cac29b3342eaf5bb0bb05cdd98e19f"></a>
 1350: <h2 class="memtitle"><span class="permalink"><a href="#a72cac29b3342eaf5bb0bb05cdd98e19f">&#9670;&nbsp;</a></span>cfg_getcomment()</h2>
 1351: 
 1352: <div class="memitem">
 1353: <div class="memproto">
 1354:       <table class="memname">
 1355:         <tr>
 1356:           <td class="memname">DLLIMPORT char* __export cfg_getcomment </td>
 1357:           <td>(</td>
 1358:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1359:           <td class="paramname"><em>cfg</em>, </td>
 1360:         </tr>
 1361:         <tr>
 1362:           <td class="paramkey"></td>
 1363:           <td></td>
 1364:           <td class="paramtype">const char *&#160;</td>
 1365:           <td class="paramname"><em>name</em>&#160;</td>
 1366:         </tr>
 1367:         <tr>
 1368:           <td></td>
 1369:           <td>)</td>
 1370:           <td></td><td></td>
 1371:         </tr>
 1372:       </table>
 1373: </div><div class="memdoc">
 1374: 
 1375: <p>Returns the option comment. </p>
 1376: <p>This function can be used to extract option annotations from a config file. Only comments preceding the option are read by <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a>.</p>
 1377: <dl class="params"><dt>Parameters</dt><dd>
 1378:   <table class="params">
 1379:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1380:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1381:   </table>
 1382:   </dd>
 1383: </dl>
 1384: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#abac8ca33706dd89c4eb6677cee9cfffc" title="Annotate an option given its name.">cfg_setcomment</a> </dd></dl>
 1385: <dl class="section return"><dt>Returns</dt><dd>The comment for this option, or NULL if unset </dd></dl>
 1386: 
 1387: </div>
 1388: </div>
 1389: <a id="a40e3d18ed9fbf5eae90aec58d68cb474"></a>
 1390: <h2 class="memtitle"><span class="permalink"><a href="#a40e3d18ed9fbf5eae90aec58d68cb474">&#9670;&nbsp;</a></span>cfg_getfloat()</h2>
 1391: 
 1392: <div class="memitem">
 1393: <div class="memproto">
 1394:       <table class="memname">
 1395:         <tr>
 1396:           <td class="memname">DLLIMPORT double __export cfg_getfloat </td>
 1397:           <td>(</td>
 1398:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1399:           <td class="paramname"><em>cfg</em>, </td>
 1400:         </tr>
 1401:         <tr>
 1402:           <td class="paramkey"></td>
 1403:           <td></td>
 1404:           <td class="paramtype">const char *&#160;</td>
 1405:           <td class="paramname"><em>name</em>&#160;</td>
 1406:         </tr>
 1407:         <tr>
 1408:           <td></td>
 1409:           <td>)</td>
 1410:           <td></td><td></td>
 1411:         </tr>
 1412:       </table>
 1413: </div><div class="memdoc">
 1414: 
 1415: <p>Returns the value of a floating point option. </p>
 1416: <dl class="params"><dt>Parameters</dt><dd>
 1417:   <table class="params">
 1418:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1419:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1420:   </table>
 1421:   </dd>
 1422: </dl>
 1423: <dl class="section return"><dt>Returns</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" title="Data structure holding information about an option.">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>
 1424: 
 1425: </div>
 1426: </div>
 1427: <a id="aaa50eb2942ae8e7cb7f9ccbfe002b3cd"></a>
 1428: <h2 class="memtitle"><span class="permalink"><a href="#aaa50eb2942ae8e7cb7f9ccbfe002b3cd">&#9670;&nbsp;</a></span>cfg_getint()</h2>
 1429: 
 1430: <div class="memitem">
 1431: <div class="memproto">
 1432:       <table class="memname">
 1433:         <tr>
 1434:           <td class="memname">DLLIMPORT long int __export cfg_getint </td>
 1435:           <td>(</td>
 1436:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1437:           <td class="paramname"><em>cfg</em>, </td>
 1438:         </tr>
 1439:         <tr>
 1440:           <td class="paramkey"></td>
 1441:           <td></td>
 1442:           <td class="paramtype">const char *&#160;</td>
 1443:           <td class="paramname"><em>name</em>&#160;</td>
 1444:         </tr>
 1445:         <tr>
 1446:           <td></td>
 1447:           <td>)</td>
 1448:           <td></td><td></td>
 1449:         </tr>
 1450:       </table>
 1451: </div><div class="memdoc">
 1452: 
 1453: <p>Returns the value of an integer option. </p>
 1454: <p>This is the same as calling cfg_getnint with index 0. </p><dl class="params"><dt>Parameters</dt><dd>
 1455:   <table class="params">
 1456:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1457:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1458:   </table>
 1459:   </dd>
 1460: </dl>
 1461: <dl class="section return"><dt>Returns</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" title="Data structure holding information about an option.">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>
 1462: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a29">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a17">reread.c</a>.</dd>
 1463: </dl>
 1464: 
 1465: </div>
 1466: </div>
 1467: <a id="a8984944ec9de3a67e3007bfba32f2127"></a>
 1468: <h2 class="memtitle"><span class="permalink"><a href="#a8984944ec9de3a67e3007bfba32f2127">&#9670;&nbsp;</a></span>cfg_getnbool()</h2>
 1469: 
 1470: <div class="memitem">
 1471: <div class="memproto">
 1472:       <table class="memname">
 1473:         <tr>
 1474:           <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export cfg_getnbool </td>
 1475:           <td>(</td>
 1476:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1477:           <td class="paramname"><em>cfg</em>, </td>
 1478:         </tr>
 1479:         <tr>
 1480:           <td class="paramkey"></td>
 1481:           <td></td>
 1482:           <td class="paramtype">const char *&#160;</td>
 1483:           <td class="paramname"><em>name</em>, </td>
 1484:         </tr>
 1485:         <tr>
 1486:           <td class="paramkey"></td>
 1487:           <td></td>
 1488:           <td class="paramtype">unsigned int&#160;</td>
 1489:           <td class="paramname"><em>index</em>&#160;</td>
 1490:         </tr>
 1491:         <tr>
 1492:           <td></td>
 1493:           <td>)</td>
 1494:           <td></td><td></td>
 1495:         </tr>
 1496:       </table>
 1497: </div><div class="memdoc">
 1498: 
 1499: <p>Indexed version of <a class="el" href="confuse_8h.html#ab4903f75c29f9c2973696039c4f5c0df" title="Returns the value of a boolean option.">cfg_getbool()</a>, used for lists. </p>
 1500: <dl class="params"><dt>Parameters</dt><dd>
 1501:   <table class="params">
 1502:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1503:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1504:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
 1505:   </table>
 1506:   </dd>
 1507: </dl>
 1508: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#ab4903f75c29f9c2973696039c4f5c0df" title="Returns the value of a boolean option.">cfg_getbool</a> </dd></dl>
 1509: 
 1510: </div>
 1511: </div>
 1512: <a id="aaf63837150498ce6ecd530a9769f9e43"></a>
 1513: <h2 class="memtitle"><span class="permalink"><a href="#aaf63837150498ce6ecd530a9769f9e43">&#9670;&nbsp;</a></span>cfg_getnfloat()</h2>
 1514: 
 1515: <div class="memitem">
 1516: <div class="memproto">
 1517:       <table class="memname">
 1518:         <tr>
 1519:           <td class="memname">DLLIMPORT double __export cfg_getnfloat </td>
 1520:           <td>(</td>
 1521:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1522:           <td class="paramname"><em>cfg</em>, </td>
 1523:         </tr>
 1524:         <tr>
 1525:           <td class="paramkey"></td>
 1526:           <td></td>
 1527:           <td class="paramtype">const char *&#160;</td>
 1528:           <td class="paramname"><em>name</em>, </td>
 1529:         </tr>
 1530:         <tr>
 1531:           <td class="paramkey"></td>
 1532:           <td></td>
 1533:           <td class="paramtype">unsigned int&#160;</td>
 1534:           <td class="paramname"><em>index</em>&#160;</td>
 1535:         </tr>
 1536:         <tr>
 1537:           <td></td>
 1538:           <td>)</td>
 1539:           <td></td><td></td>
 1540:         </tr>
 1541:       </table>
 1542: </div><div class="memdoc">
 1543: 
 1544: <p>Indexed version of <a class="el" href="confuse_8h.html#a40e3d18ed9fbf5eae90aec58d68cb474" title="Returns the value of a floating point option.">cfg_getfloat()</a>, used for lists. </p>
 1545: <dl class="params"><dt>Parameters</dt><dd>
 1546:   <table class="params">
 1547:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1548:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1549:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
 1550:   </table>
 1551:   </dd>
 1552: </dl>
 1553: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a40e3d18ed9fbf5eae90aec58d68cb474" title="Returns the value of a floating point option.">cfg_getfloat</a> </dd></dl>
 1554: 
 1555: </div>
 1556: </div>
 1557: <a id="addba63989fbf548cb0365ce875f138d4"></a>
 1558: <h2 class="memtitle"><span class="permalink"><a href="#addba63989fbf548cb0365ce875f138d4">&#9670;&nbsp;</a></span>cfg_getnint()</h2>
 1559: 
 1560: <div class="memitem">
 1561: <div class="memproto">
 1562:       <table class="memname">
 1563:         <tr>
 1564:           <td class="memname">DLLIMPORT long int __export cfg_getnint </td>
 1565:           <td>(</td>
 1566:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1567:           <td class="paramname"><em>cfg</em>, </td>
 1568:         </tr>
 1569:         <tr>
 1570:           <td class="paramkey"></td>
 1571:           <td></td>
 1572:           <td class="paramtype">const char *&#160;</td>
 1573:           <td class="paramname"><em>name</em>, </td>
 1574:         </tr>
 1575:         <tr>
 1576:           <td class="paramkey"></td>
 1577:           <td></td>
 1578:           <td class="paramtype">unsigned int&#160;</td>
 1579:           <td class="paramname"><em>index</em>&#160;</td>
 1580:         </tr>
 1581:         <tr>
 1582:           <td></td>
 1583:           <td>)</td>
 1584:           <td></td><td></td>
 1585:         </tr>
 1586:       </table>
 1587: </div><div class="memdoc">
 1588: 
 1589: <p>Indexed version of <a class="el" href="confuse_8h.html#aaa50eb2942ae8e7cb7f9ccbfe002b3cd" title="Returns the value of an integer option.">cfg_getint()</a>, used for lists. </p>
 1590: <dl class="params"><dt>Parameters</dt><dd>
 1591:   <table class="params">
 1592:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1593:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1594:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
 1595:   </table>
 1596:   </dd>
 1597: </dl>
 1598: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#aaa50eb2942ae8e7cb7f9ccbfe002b3cd" title="Returns the value of an integer option.">cfg_getint</a> </dd></dl>
 1599: 
 1600: </div>
 1601: </div>
 1602: <a id="a9a0df4576a33e47ef89d7dc450247408"></a>
 1603: <h2 class="memtitle"><span class="permalink"><a href="#a9a0df4576a33e47ef89d7dc450247408">&#9670;&nbsp;</a></span>cfg_getnopt()</h2>
 1604: 
 1605: <div class="memitem">
 1606: <div class="memproto">
 1607:       <table class="memname">
 1608:         <tr>
 1609:           <td class="memname">DLLIMPORT <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a>* cfg_getnopt </td>
 1610:           <td>(</td>
 1611:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1612:           <td class="paramname"><em>cfg</em>, </td>
 1613:         </tr>
 1614:         <tr>
 1615:           <td class="paramkey"></td>
 1616:           <td></td>
 1617:           <td class="paramtype">unsigned int&#160;</td>
 1618:           <td class="paramname"><em>index</em>&#160;</td>
 1619:         </tr>
 1620:         <tr>
 1621:           <td></td>
 1622:           <td>)</td>
 1623:           <td></td><td></td>
 1624:         </tr>
 1625:       </table>
 1626: </div><div class="memdoc">
 1627: 
 1628: <p>Return the nth option in a file or section. </p>
 1629: <dl class="params"><dt>Parameters</dt><dd>
 1630:   <table class="params">
 1631:     <tr><td class="paramname">cfg</td><td>The configuration file or section context </td></tr>
 1632:     <tr><td class="paramname">index</td><td>Option index </td></tr>
 1633:   </table>
 1634:   </dd>
 1635: </dl>
 1636: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#aa798c28419d32dc1d0b0e191d5e11e08" title="Return number of options in a file or section.">cfg_num</a> </dd></dl>
 1637: 
 1638: </div>
 1639: </div>
 1640: <a id="ad5e8eea765588892053b73eed4017edd"></a>
 1641: <h2 class="memtitle"><span class="permalink"><a href="#ad5e8eea765588892053b73eed4017edd">&#9670;&nbsp;</a></span>cfg_getnsec()</h2>
 1642: 
 1643: <div class="memitem">
 1644: <div class="memproto">
 1645:       <table class="memname">
 1646:         <tr>
 1647:           <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_getnsec </td>
 1648:           <td>(</td>
 1649:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1650:           <td class="paramname"><em>cfg</em>, </td>
 1651:         </tr>
 1652:         <tr>
 1653:           <td class="paramkey"></td>
 1654:           <td></td>
 1655:           <td class="paramtype">const char *&#160;</td>
 1656:           <td class="paramname"><em>name</em>, </td>
 1657:         </tr>
 1658:         <tr>
 1659:           <td class="paramkey"></td>
 1660:           <td></td>
 1661:           <td class="paramtype">unsigned int&#160;</td>
 1662:           <td class="paramname"><em>index</em>&#160;</td>
 1663:         </tr>
 1664:         <tr>
 1665:           <td></td>
 1666:           <td>)</td>
 1667:           <td></td><td></td>
 1668:         </tr>
 1669:       </table>
 1670: </div><div class="memdoc">
 1671: 
 1672: <p>Indexed version of <a class="el" href="confuse_8h.html#aa1339bde1f672aa0279a51bf2324545d" title="Returns the value of a section option.">cfg_getsec()</a>, used for sections with the CFGF_MULTI flag set. </p>
 1673: <dl class="params"><dt>Parameters</dt><dd>
 1674:   <table class="params">
 1675:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1676:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1677:     <tr><td class="paramname">index</td><td>Index of the section to get. Zero based. </td></tr>
 1678:   </table>
 1679:   </dd>
 1680: </dl>
 1681: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#aa1339bde1f672aa0279a51bf2324545d" title="Returns the value of a section option.">cfg_getsec</a> </dd></dl>
 1682: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a27">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a16">reread.c</a>.</dd>
 1683: </dl>
 1684: 
 1685: </div>
 1686: </div>
 1687: <a id="aabb00a590331a4d9d4e772201dff34d1"></a>
 1688: <h2 class="memtitle"><span class="permalink"><a href="#aabb00a590331a4d9d4e772201dff34d1">&#9670;&nbsp;</a></span>cfg_getnstr()</h2>
 1689: 
 1690: <div class="memitem">
 1691: <div class="memproto">
 1692:       <table class="memname">
 1693:         <tr>
 1694:           <td class="memname">DLLIMPORT char* __export cfg_getnstr </td>
 1695:           <td>(</td>
 1696:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1697:           <td class="paramname"><em>cfg</em>, </td>
 1698:         </tr>
 1699:         <tr>
 1700:           <td class="paramkey"></td>
 1701:           <td></td>
 1702:           <td class="paramtype">const char *&#160;</td>
 1703:           <td class="paramname"><em>name</em>, </td>
 1704:         </tr>
 1705:         <tr>
 1706:           <td class="paramkey"></td>
 1707:           <td></td>
 1708:           <td class="paramtype">unsigned int&#160;</td>
 1709:           <td class="paramname"><em>index</em>&#160;</td>
 1710:         </tr>
 1711:         <tr>
 1712:           <td></td>
 1713:           <td>)</td>
 1714:           <td></td><td></td>
 1715:         </tr>
 1716:       </table>
 1717: </div><div class="memdoc">
 1718: 
 1719: <p>Indexed version of <a class="el" href="confuse_8h.html#a4a9c34acc55cca63649c088d98053905" title="Returns the value of a string option.">cfg_getstr()</a>, used for lists. </p>
 1720: <dl class="params"><dt>Parameters</dt><dd>
 1721:   <table class="params">
 1722:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1723:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1724:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
 1725:   </table>
 1726:   </dd>
 1727: </dl>
 1728: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a4a9c34acc55cca63649c088d98053905" title="Returns the value of a string option.">cfg_getstr</a> </dd></dl>
 1729: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a30">ftpconf.c</a>.</dd>
 1730: </dl>
 1731: 
 1732: </div>
 1733: </div>
 1734: <a id="a33f48558624569678272f46925ead40f"></a>
 1735: <h2 class="memtitle"><span class="permalink"><a href="#a33f48558624569678272f46925ead40f">&#9670;&nbsp;</a></span>cfg_getopt()</h2>
 1736: 
 1737: <div class="memitem">
 1738: <div class="memproto">
 1739:       <table class="memname">
 1740:         <tr>
 1741:           <td class="memname">DLLIMPORT <a class="el" href="structcfg__opt__t.html">cfg_opt_t</a>* __export cfg_getopt </td>
 1742:           <td>(</td>
 1743:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1744:           <td class="paramname"><em>cfg</em>, </td>
 1745:         </tr>
 1746:         <tr>
 1747:           <td class="paramkey"></td>
 1748:           <td></td>
 1749:           <td class="paramtype">const char *&#160;</td>
 1750:           <td class="paramname"><em>name</em>&#160;</td>
 1751:         </tr>
 1752:         <tr>
 1753:           <td></td>
 1754:           <td>)</td>
 1755:           <td></td><td></td>
 1756:         </tr>
 1757:       </table>
 1758: </div><div class="memdoc">
 1759: 
 1760: <p>Return an option given it's name. </p>
 1761: <dl class="params"><dt>Parameters</dt><dd>
 1762:   <table class="params">
 1763:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1764:     <tr><td class="paramname">name</td><td>The name of the option.</td></tr>
 1765:   </table>
 1766:   </dd>
 1767: </dl>
 1768: <dl class="section return"><dt>Returns</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>
 1769: 
 1770: </div>
 1771: </div>
 1772: <a id="ad4f0fdb31b6c0113b3c78891e8ee5429"></a>
 1773: <h2 class="memtitle"><span class="permalink"><a href="#ad4f0fdb31b6c0113b3c78891e8ee5429">&#9670;&nbsp;</a></span>cfg_getptr()</h2>
 1774: 
 1775: <div class="memitem">
 1776: <div class="memproto">
 1777:       <table class="memname">
 1778:         <tr>
 1779:           <td class="memname">DLLIMPORT void* __export cfg_getptr </td>
 1780:           <td>(</td>
 1781:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1782:           <td class="paramname"><em>cfg</em>, </td>
 1783:         </tr>
 1784:         <tr>
 1785:           <td class="paramkey"></td>
 1786:           <td></td>
 1787:           <td class="paramtype">const char *&#160;</td>
 1788:           <td class="paramname"><em>name</em>&#160;</td>
 1789:         </tr>
 1790:         <tr>
 1791:           <td></td>
 1792:           <td>)</td>
 1793:           <td></td><td></td>
 1794:         </tr>
 1795:       </table>
 1796: </div><div class="memdoc">
 1797: 
 1798: <p>Returns the value of a user-defined option (void pointer). </p>
 1799: <dl class="params"><dt>Parameters</dt><dd>
 1800:   <table class="params">
 1801:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1802:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1803:   </table>
 1804:   </dd>
 1805: </dl>
 1806: <dl class="section return"><dt>Returns</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" title="Data structure holding information about an option.">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>
 1807: 
 1808: </div>
 1809: </div>
 1810: <a id="aa1339bde1f672aa0279a51bf2324545d"></a>
 1811: <h2 class="memtitle"><span class="permalink"><a href="#aa1339bde1f672aa0279a51bf2324545d">&#9670;&nbsp;</a></span>cfg_getsec()</h2>
 1812: 
 1813: <div class="memitem">
 1814: <div class="memproto">
 1815:       <table class="memname">
 1816:         <tr>
 1817:           <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_getsec </td>
 1818:           <td>(</td>
 1819:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1820:           <td class="paramname"><em>cfg</em>, </td>
 1821:         </tr>
 1822:         <tr>
 1823:           <td class="paramkey"></td>
 1824:           <td></td>
 1825:           <td class="paramtype">const char *&#160;</td>
 1826:           <td class="paramname"><em>name</em>&#160;</td>
 1827:         </tr>
 1828:         <tr>
 1829:           <td></td>
 1830:           <td>)</td>
 1831:           <td></td><td></td>
 1832:         </tr>
 1833:       </table>
 1834: </div><div class="memdoc">
 1835: 
 1836: <p>Returns the value of a section option. </p>
 1837: <p>The returned value is another <a class="el" href="structcfg__t.html" title="Data structure holding information about a &quot;section&quot;.">cfg_t</a> structure that can be used in following calls to cfg_getint, cfg_getstr or other get-functions. </p><dl class="params"><dt>Parameters</dt><dd>
 1838:   <table class="params">
 1839:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1840:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1841:   </table>
 1842:   </dd>
 1843: </dl>
 1844: <dl class="section return"><dt>Returns</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>
 1845: 
 1846: </div>
 1847: </div>
 1848: <a id="a4a9c34acc55cca63649c088d98053905"></a>
 1849: <h2 class="memtitle"><span class="permalink"><a href="#a4a9c34acc55cca63649c088d98053905">&#9670;&nbsp;</a></span>cfg_getstr()</h2>
 1850: 
 1851: <div class="memitem">
 1852: <div class="memproto">
 1853:       <table class="memname">
 1854:         <tr>
 1855:           <td class="memname">DLLIMPORT char* __export cfg_getstr </td>
 1856:           <td>(</td>
 1857:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1858:           <td class="paramname"><em>cfg</em>, </td>
 1859:         </tr>
 1860:         <tr>
 1861:           <td class="paramkey"></td>
 1862:           <td></td>
 1863:           <td class="paramtype">const char *&#160;</td>
 1864:           <td class="paramname"><em>name</em>&#160;</td>
 1865:         </tr>
 1866:         <tr>
 1867:           <td></td>
 1868:           <td>)</td>
 1869:           <td></td><td></td>
 1870:         </tr>
 1871:       </table>
 1872: </div><div class="memdoc">
 1873: 
 1874: <p>Returns the value of a string option. </p>
 1875: <dl class="params"><dt>Parameters</dt><dd>
 1876:   <table class="params">
 1877:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1878:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1879:   </table>
 1880:   </dd>
 1881: </dl>
 1882: <dl class="section return"><dt>Returns</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" title="Data structure holding information about an option.">cfg_opt_t</a> structure is returned. It is an error to try to get an option that isn't declared. </dd></dl>
 1883: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a28">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a14">reread.c</a>.</dd>
 1884: </dl>
 1885: 
 1886: </div>
 1887: </div>
 1888: <a id="ac1fda0e6937653d891ae276ae69d0f76"></a>
 1889: <h2 class="memtitle"><span class="permalink"><a href="#ac1fda0e6937653d891ae276ae69d0f76">&#9670;&nbsp;</a></span>cfg_gettsec()</h2>
 1890: 
 1891: <div class="memitem">
 1892: <div class="memproto">
 1893:       <table class="memname">
 1894:         <tr>
 1895:           <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_gettsec </td>
 1896:           <td>(</td>
 1897:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1898:           <td class="paramname"><em>cfg</em>, </td>
 1899:         </tr>
 1900:         <tr>
 1901:           <td class="paramkey"></td>
 1902:           <td></td>
 1903:           <td class="paramtype">const char *&#160;</td>
 1904:           <td class="paramname"><em>name</em>, </td>
 1905:         </tr>
 1906:         <tr>
 1907:           <td class="paramkey"></td>
 1908:           <td></td>
 1909:           <td class="paramtype">const char *&#160;</td>
 1910:           <td class="paramname"><em>title</em>&#160;</td>
 1911:         </tr>
 1912:         <tr>
 1913:           <td></td>
 1914:           <td>)</td>
 1915:           <td></td><td></td>
 1916:         </tr>
 1917:       </table>
 1918: </div><div class="memdoc">
 1919: 
 1920: <p>Return a section given the title, used for section with the CFGF_TITLE flag set. </p>
 1921: <dl class="params"><dt>Parameters</dt><dd>
 1922:   <table class="params">
 1923:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 1924:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 1925:     <tr><td class="paramname">title</td><td>The title of this section. The CFGF_TITLE flag must have been set for this option. </td></tr>
 1926:   </table>
 1927:   </dd>
 1928: </dl>
 1929: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#aa1339bde1f672aa0279a51bf2324545d" title="Returns the value of a section option.">cfg_getsec</a> </dd></dl>
 1930: 
 1931: </div>
 1932: </div>
 1933: <a id="a73e8e62914759632e5d5165fa877f4b3"></a>
 1934: <h2 class="memtitle"><span class="permalink"><a href="#a73e8e62914759632e5d5165fa877f4b3">&#9670;&nbsp;</a></span>cfg_include()</h2>
 1935: 
 1936: <div class="memitem">
 1937: <div class="memproto">
 1938:       <table class="memname">
 1939:         <tr>
 1940:           <td class="memname">DLLIMPORT int __export cfg_include </td>
 1941:           <td>(</td>
 1942:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 1943:           <td class="paramname"><em>cfg</em>, </td>
 1944:         </tr>
 1945:         <tr>
 1946:           <td class="paramkey"></td>
 1947:           <td></td>
 1948:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 1949:           <td class="paramname"><em>opt</em>, </td>
 1950:         </tr>
 1951:         <tr>
 1952:           <td class="paramkey"></td>
 1953:           <td></td>
 1954:           <td class="paramtype">int&#160;</td>
 1955:           <td class="paramname"><em>argc</em>, </td>
 1956:         </tr>
 1957:         <tr>
 1958:           <td class="paramkey"></td>
 1959:           <td></td>
 1960:           <td class="paramtype">const char **&#160;</td>
 1961:           <td class="paramname"><em>argv</em>&#160;</td>
 1962:         </tr>
 1963:         <tr>
 1964:           <td></td>
 1965:           <td>)</td>
 1966:           <td></td><td></td>
 1967:         </tr>
 1968:       </table>
 1969: </div><div class="memdoc">
 1970: 
 1971: <p>Predefined include-function. </p>
 1972: <p>This function can be used in the options passed to <a class="el" href="confuse_8h.html#aec07794916564c8ab437e030ac618aa8" title="Create and initialize a cfg_t structure.">cfg_init()</a> to specify a function for including other configuration files in the parsing. For example: CFG_FUNC("include", &amp;cfg_include) </p>
 1973: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a21">ftpconf.c</a>.</dd>
 1974: </dl>
 1975: 
 1976: </div>
 1977: </div>
 1978: <a id="aec07794916564c8ab437e030ac618aa8"></a>
 1979: <h2 class="memtitle"><span class="permalink"><a href="#aec07794916564c8ab437e030ac618aa8">&#9670;&nbsp;</a></span>cfg_init()</h2>
 1980: 
 1981: <div class="memitem">
 1982: <div class="memproto">
 1983:       <table class="memname">
 1984:         <tr>
 1985:           <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_init </td>
 1986:           <td>(</td>
 1987:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 1988:           <td class="paramname"><em>opts</em>, </td>
 1989:         </tr>
 1990:         <tr>
 1991:           <td class="paramkey"></td>
 1992:           <td></td>
 1993:           <td class="paramtype">cfg_flag_t&#160;</td>
 1994:           <td class="paramname"><em>flags</em>&#160;</td>
 1995:         </tr>
 1996:         <tr>
 1997:           <td></td>
 1998:           <td>)</td>
 1999:           <td></td><td></td>
 2000:         </tr>
 2001:       </table>
 2002: </div><div class="memdoc">
 2003: 
 2004: <p>Create and initialize a <a class="el" href="structcfg__t.html" title="Data structure holding information about a &quot;section&quot;.">cfg_t</a> structure. </p>
 2005: <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#a6b29dd8a4c6cd3d392d4ab6b2e535597" title="Terminate list of options.">CFG_END()</a>, unless you like segmentation faults.</p>
 2006: <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>
 2007: <p>CFGF_IGNORE_UNKNOWN can be specified to use the "__unknown" option whenever an unknown option is parsed. Be sure to define an "__unknown" option in each scope that unknown parameters are allowed.</p>
 2008: <p>Call setlocale() before calling this function to localize handling of types, LC_CTYPE, and messages, LC_MESSAGES, since version 2.9: </p><pre>
 2009:     setlocale(LC_MESSAGES, "");
 2010:     setlocale(LC_CTYPE, "");
 2011: </pre> <dl class="params"><dt>Parameters</dt><dd>
 2012:   <table class="params">
 2013:     <tr><td class="paramname">opts</td><td>An arrary of options </td></tr>
 2014:     <tr><td class="paramname">flags</td><td>One or more flags (bitwise or'ed together). Currently only CFGF_NOCASE and CFGF_IGNORE_UNKNOWN are available. Use 0 if no flags are needed.</td></tr>
 2015:   </table>
 2016:   </dd>
 2017: </dl>
 2018: <dl class="section return"><dt>Returns</dt><dd>A configuration context structure. This pointer is passed to almost all other functions as the first parameter. </dd></dl>
 2019: <dl class="section examples"><dt>Examples</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>.</dd>
 2020: </dl>
 2021: 
 2022: </div>
 2023: </div>
 2024: <a id="a5eee21bf6b453b81d477314333d4c47c"></a>
 2025: <h2 class="memtitle"><span class="permalink"><a href="#a5eee21bf6b453b81d477314333d4c47c">&#9670;&nbsp;</a></span>cfg_name()</h2>
 2026: 
 2027: <div class="memitem">
 2028: <div class="memproto">
 2029:       <table class="memname">
 2030:         <tr>
 2031:           <td class="memname">const DLLIMPORT char* __export cfg_name </td>
 2032:           <td>(</td>
 2033:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 2034:           <td class="paramname"><em>cfg</em></td><td>)</td>
 2035:           <td></td>
 2036:         </tr>
 2037:       </table>
 2038: </div><div class="memdoc">
 2039: 
 2040: <p>Return the name of a section. </p>
 2041: <dl class="params"><dt>Parameters</dt><dd>
 2042:   <table class="params">
 2043:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 2044:   </table>
 2045:   </dd>
 2046: </dl>
 2047: <dl class="section return"><dt>Returns</dt><dd>Returns the title, or 0 if there is no title. This string should not be modified. </dd></dl>
 2048: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a5">ftpconf.c</a>.</dd>
 2049: </dl>
 2050: 
 2051: </div>
 2052: </div>
 2053: <a id="aa798c28419d32dc1d0b0e191d5e11e08"></a>
 2054: <h2 class="memtitle"><span class="permalink"><a href="#aa798c28419d32dc1d0b0e191d5e11e08">&#9670;&nbsp;</a></span>cfg_num()</h2>
 2055: 
 2056: <div class="memitem">
 2057: <div class="memproto">
 2058:       <table class="memname">
 2059:         <tr>
 2060:           <td class="memname">DLLIMPORT unsigned int __export cfg_num </td>
 2061:           <td>(</td>
 2062:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 2063:           <td class="paramname"><em>cfg</em></td><td>)</td>
 2064:           <td></td>
 2065:         </tr>
 2066:       </table>
 2067: </div><div class="memdoc">
 2068: 
 2069: <p>Return number of options in a file or section. </p>
 2070: <dl class="params"><dt>Parameters</dt><dd>
 2071:   <table class="params">
 2072:     <tr><td class="paramname">cfg</td><td>The configuration file or section context</td></tr>
 2073:   </table>
 2074:   </dd>
 2075: </dl>
 2076: <p>When a file has been parsed this function returns the number of options/settings the file, or a sub-section, has.</p>
 2077: <dl class="section return"><dt>Returns</dt><dd>Number of options in a config file or section. </dd></dl>
 2078: 
 2079: </div>
 2080: </div>
 2081: <a id="a36381357b5db67d0415494332f4d5d94"></a>
 2082: <h2 class="memtitle"><span class="permalink"><a href="#a36381357b5db67d0415494332f4d5d94">&#9670;&nbsp;</a></span>cfg_opt_getcomment()</h2>
 2083: 
 2084: <div class="memitem">
 2085: <div class="memproto">
 2086:       <table class="memname">
 2087:         <tr>
 2088:           <td class="memname">DLLIMPORT char* __export cfg_opt_getcomment </td>
 2089:           <td>(</td>
 2090:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2091:           <td class="paramname"><em>opt</em></td><td>)</td>
 2092:           <td></td>
 2093:         </tr>
 2094:       </table>
 2095: </div><div class="memdoc">
 2096: 
 2097: <p>Returns the option comment. </p>
 2098: <dl class="params"><dt>Parameters</dt><dd>
 2099:   <table class="params">
 2100:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2101:   </table>
 2102:   </dd>
 2103: </dl>
 2104: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a72cac29b3342eaf5bb0bb05cdd98e19f" title="Returns the option comment.">cfg_getcomment</a> </dd></dl>
 2105: 
 2106: </div>
 2107: </div>
 2108: <a id="af49441953ac0c45960728b347c25dba3"></a>
 2109: <h2 class="memtitle"><span class="permalink"><a href="#af49441953ac0c45960728b347c25dba3">&#9670;&nbsp;</a></span>cfg_opt_getnbool()</h2>
 2110: 
 2111: <div class="memitem">
 2112: <div class="memproto">
 2113:       <table class="memname">
 2114:         <tr>
 2115:           <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a> __export cfg_opt_getnbool </td>
 2116:           <td>(</td>
 2117:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2118:           <td class="paramname"><em>opt</em>, </td>
 2119:         </tr>
 2120:         <tr>
 2121:           <td class="paramkey"></td>
 2122:           <td></td>
 2123:           <td class="paramtype">unsigned int&#160;</td>
 2124:           <td class="paramname"><em>index</em>&#160;</td>
 2125:         </tr>
 2126:         <tr>
 2127:           <td></td>
 2128:           <td>)</td>
 2129:           <td></td><td></td>
 2130:         </tr>
 2131:       </table>
 2132: </div><div class="memdoc">
 2133: 
 2134: <p>Returns the value of a boolean option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer. </p>
 2135: <dl class="params"><dt>Parameters</dt><dd>
 2136:   <table class="params">
 2137:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2138:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
 2139:   </table>
 2140:   </dd>
 2141: </dl>
 2142: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a8984944ec9de3a67e3007bfba32f2127" title="Indexed version of cfg_getbool(), used for lists.">cfg_getnbool</a> </dd></dl>
 2143: 
 2144: </div>
 2145: </div>
 2146: <a id="aa93c59e332c95937db84f93c1a9b25bd"></a>
 2147: <h2 class="memtitle"><span class="permalink"><a href="#aa93c59e332c95937db84f93c1a9b25bd">&#9670;&nbsp;</a></span>cfg_opt_getnfloat()</h2>
 2148: 
 2149: <div class="memitem">
 2150: <div class="memproto">
 2151:       <table class="memname">
 2152:         <tr>
 2153:           <td class="memname">DLLIMPORT double __export cfg_opt_getnfloat </td>
 2154:           <td>(</td>
 2155:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2156:           <td class="paramname"><em>opt</em>, </td>
 2157:         </tr>
 2158:         <tr>
 2159:           <td class="paramkey"></td>
 2160:           <td></td>
 2161:           <td class="paramtype">unsigned int&#160;</td>
 2162:           <td class="paramname"><em>index</em>&#160;</td>
 2163:         </tr>
 2164:         <tr>
 2165:           <td></td>
 2166:           <td>)</td>
 2167:           <td></td><td></td>
 2168:         </tr>
 2169:       </table>
 2170: </div><div class="memdoc">
 2171: 
 2172: <p>Returns the value of a floating point option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer. </p>
 2173: <dl class="params"><dt>Parameters</dt><dd>
 2174:   <table class="params">
 2175:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2176:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
 2177:   </table>
 2178:   </dd>
 2179: </dl>
 2180: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#aaf63837150498ce6ecd530a9769f9e43" title="Indexed version of cfg_getfloat(), used for lists.">cfg_getnfloat</a> </dd></dl>
 2181: 
 2182: </div>
 2183: </div>
 2184: <a id="abaa00b2bb179bfc1062c67da8b2beae3"></a>
 2185: <h2 class="memtitle"><span class="permalink"><a href="#abaa00b2bb179bfc1062c67da8b2beae3">&#9670;&nbsp;</a></span>cfg_opt_getnint()</h2>
 2186: 
 2187: <div class="memitem">
 2188: <div class="memproto">
 2189:       <table class="memname">
 2190:         <tr>
 2191:           <td class="memname">DLLIMPORT signed long __export cfg_opt_getnint </td>
 2192:           <td>(</td>
 2193:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2194:           <td class="paramname"><em>opt</em>, </td>
 2195:         </tr>
 2196:         <tr>
 2197:           <td class="paramkey"></td>
 2198:           <td></td>
 2199:           <td class="paramtype">unsigned int&#160;</td>
 2200:           <td class="paramname"><em>index</em>&#160;</td>
 2201:         </tr>
 2202:         <tr>
 2203:           <td></td>
 2204:           <td>)</td>
 2205:           <td></td><td></td>
 2206:         </tr>
 2207:       </table>
 2208: </div><div class="memdoc">
 2209: 
 2210: <p>Returns the value of an integer option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer. </p>
 2211: <dl class="params"><dt>Parameters</dt><dd>
 2212:   <table class="params">
 2213:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2214:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
 2215:   </table>
 2216:   </dd>
 2217: </dl>
 2218: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#addba63989fbf548cb0365ce875f138d4" title="Indexed version of cfg_getint(), used for lists.">cfg_getnint</a> </dd></dl>
 2219: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a4">ftpconf.c</a>.</dd>
 2220: </dl>
 2221: 
 2222: </div>
 2223: </div>
 2224: <a id="a4312c6bc126283ad8b6dc849c1138a71"></a>
 2225: <h2 class="memtitle"><span class="permalink"><a href="#a4312c6bc126283ad8b6dc849c1138a71">&#9670;&nbsp;</a></span>cfg_opt_getnsec()</h2>
 2226: 
 2227: <div class="memitem">
 2228: <div class="memproto">
 2229:       <table class="memname">
 2230:         <tr>
 2231:           <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_opt_getnsec </td>
 2232:           <td>(</td>
 2233:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2234:           <td class="paramname"><em>opt</em>, </td>
 2235:         </tr>
 2236:         <tr>
 2237:           <td class="paramkey"></td>
 2238:           <td></td>
 2239:           <td class="paramtype">unsigned int&#160;</td>
 2240:           <td class="paramname"><em>index</em>&#160;</td>
 2241:         </tr>
 2242:         <tr>
 2243:           <td></td>
 2244:           <td>)</td>
 2245:           <td></td><td></td>
 2246:         </tr>
 2247:       </table>
 2248: </div><div class="memdoc">
 2249: 
 2250: <p>Returns the value of a section option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer. </p>
 2251: <dl class="params"><dt>Parameters</dt><dd>
 2252:   <table class="params">
 2253:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2254:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
 2255:   </table>
 2256:   </dd>
 2257: </dl>
 2258: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#ad5e8eea765588892053b73eed4017edd" title="Indexed version of cfg_getsec(), used for sections with the CFGF_MULTI flag set.">cfg_getnsec</a> </dd></dl>
 2259: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a6">ftpconf.c</a>.</dd>
 2260: </dl>
 2261: 
 2262: </div>
 2263: </div>
 2264: <a id="a99289f214566005664f05cac4dc50318"></a>
 2265: <h2 class="memtitle"><span class="permalink"><a href="#a99289f214566005664f05cac4dc50318">&#9670;&nbsp;</a></span>cfg_opt_getnstr()</h2>
 2266: 
 2267: <div class="memitem">
 2268: <div class="memproto">
 2269:       <table class="memname">
 2270:         <tr>
 2271:           <td class="memname">DLLIMPORT char* __export cfg_opt_getnstr </td>
 2272:           <td>(</td>
 2273:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2274:           <td class="paramname"><em>opt</em>, </td>
 2275:         </tr>
 2276:         <tr>
 2277:           <td class="paramkey"></td>
 2278:           <td></td>
 2279:           <td class="paramtype">unsigned int&#160;</td>
 2280:           <td class="paramname"><em>index</em>&#160;</td>
 2281:         </tr>
 2282:         <tr>
 2283:           <td></td>
 2284:           <td>)</td>
 2285:           <td></td><td></td>
 2286:         </tr>
 2287:       </table>
 2288: </div><div class="memdoc">
 2289: 
 2290: <p>Returns the value of a string option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer. </p>
 2291: <dl class="params"><dt>Parameters</dt><dd>
 2292:   <table class="params">
 2293:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2294:     <tr><td class="paramname">index</td><td>Index of the value to get. Zero based. </td></tr>
 2295:   </table>
 2296:   </dd>
 2297: </dl>
 2298: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#aabb00a590331a4d9d4e772201dff34d1" title="Indexed version of cfg_getstr(), used for lists.">cfg_getnstr</a> </dd></dl>
 2299: 
 2300: </div>
 2301: </div>
 2302: <a id="a357458a58fe1bd2ba7eac0651e62f403"></a>
 2303: <h2 class="memtitle"><span class="permalink"><a href="#a357458a58fe1bd2ba7eac0651e62f403">&#9670;&nbsp;</a></span>cfg_opt_getstr()</h2>
 2304: 
 2305: <div class="memitem">
 2306: <div class="memproto">
 2307:       <table class="memname">
 2308:         <tr>
 2309:           <td class="memname">const DLLIMPORT char* cfg_opt_getstr </td>
 2310:           <td>(</td>
 2311:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2312:           <td class="paramname"><em>opt</em></td><td>)</td>
 2313:           <td></td>
 2314:         </tr>
 2315:       </table>
 2316: </div><div class="memdoc">
 2317: 
 2318: <p>Return the string value of a key=value pair. </p>
 2319: <dl class="params"><dt>Parameters</dt><dd>
 2320:   <table class="params">
 2321:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a9a0df4576a33e47ef89d7dc450247408" title="Return the nth option in a file or section.">cfg_getnopt()</a>) </td></tr>
 2322:   </table>
 2323:   </dd>
 2324: </dl>
 2325: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a20e3b90b5fce510154d4053db0c8eba4" title="Return the name of an option.">cfg_opt_name</a> </dd></dl>
 2326: <dl class="section return"><dt>Returns</dt><dd>The string value for the option, or NULL if it's not a string. This string must not be modified! </dd></dl>
 2327: 
 2328: </div>
 2329: </div>
 2330: <a id="adec6a5049ac8306b0892f274e6d406ad"></a>
 2331: <h2 class="memtitle"><span class="permalink"><a href="#adec6a5049ac8306b0892f274e6d406ad">&#9670;&nbsp;</a></span>cfg_opt_gettsec()</h2>
 2332: 
 2333: <div class="memitem">
 2334: <div class="memproto">
 2335:       <table class="memname">
 2336:         <tr>
 2337:           <td class="memname">DLLIMPORT <a class="el" href="structcfg__t.html">cfg_t</a>* __export cfg_opt_gettsec </td>
 2338:           <td>(</td>
 2339:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2340:           <td class="paramname"><em>opt</em>, </td>
 2341:         </tr>
 2342:         <tr>
 2343:           <td class="paramkey"></td>
 2344:           <td></td>
 2345:           <td class="paramtype">const char *&#160;</td>
 2346:           <td class="paramname"><em>title</em>&#160;</td>
 2347:         </tr>
 2348:         <tr>
 2349:           <td></td>
 2350:           <td>)</td>
 2351:           <td></td><td></td>
 2352:         </tr>
 2353:       </table>
 2354: </div><div class="memdoc">
 2355: 
 2356: <p>Returns the value of a section option, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer and the title. </p>
 2357: <dl class="params"><dt>Parameters</dt><dd>
 2358:   <table class="params">
 2359:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2360:     <tr><td class="paramname">title</td><td>The title of this section. The CFGF_TITLE flag must have been set for this option. </td></tr>
 2361:   </table>
 2362:   </dd>
 2363: </dl>
 2364: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#ac1fda0e6937653d891ae276ae69d0f76" title="Return a section given the title, used for section with the CFGF_TITLE flag set.">cfg_gettsec</a> </dd></dl>
 2365: 
 2366: </div>
 2367: </div>
 2368: <a id="a20e3b90b5fce510154d4053db0c8eba4"></a>
 2369: <h2 class="memtitle"><span class="permalink"><a href="#a20e3b90b5fce510154d4053db0c8eba4">&#9670;&nbsp;</a></span>cfg_opt_name()</h2>
 2370: 
 2371: <div class="memitem">
 2372: <div class="memproto">
 2373:       <table class="memname">
 2374:         <tr>
 2375:           <td class="memname">const DLLIMPORT char* __export cfg_opt_name </td>
 2376:           <td>(</td>
 2377:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2378:           <td class="paramname"><em>opt</em></td><td>)</td>
 2379:           <td></td>
 2380:         </tr>
 2381:       </table>
 2382: </div><div class="memdoc">
 2383: 
 2384: <p>Return the name of an option. </p>
 2385: <dl class="params"><dt>Parameters</dt><dd>
 2386:   <table class="params">
 2387:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2388:   </table>
 2389:   </dd>
 2390: </dl>
 2391: <dl class="section return"><dt>Returns</dt><dd>Returns the title, or 0 if there is no title. This string should not be modified. </dd></dl>
 2392: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a3">ftpconf.c</a>.</dd>
 2393: </dl>
 2394: 
 2395: </div>
 2396: </div>
 2397: <a id="a98c96229d1d998718cd6c44899aa4364"></a>
 2398: <h2 class="memtitle"><span class="permalink"><a href="#a98c96229d1d998718cd6c44899aa4364">&#9670;&nbsp;</a></span>cfg_opt_nprint_var()</h2>
 2399: 
 2400: <div class="memitem">
 2401: <div class="memproto">
 2402:       <table class="memname">
 2403:         <tr>
 2404:           <td class="memname">DLLIMPORT int __export cfg_opt_nprint_var </td>
 2405:           <td>(</td>
 2406:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2407:           <td class="paramname"><em>opt</em>, </td>
 2408:         </tr>
 2409:         <tr>
 2410:           <td class="paramkey"></td>
 2411:           <td></td>
 2412:           <td class="paramtype">unsigned int&#160;</td>
 2413:           <td class="paramname"><em>index</em>, </td>
 2414:         </tr>
 2415:         <tr>
 2416:           <td class="paramkey"></td>
 2417:           <td></td>
 2418:           <td class="paramtype">FILE *&#160;</td>
 2419:           <td class="paramname"><em>fp</em>&#160;</td>
 2420:         </tr>
 2421:         <tr>
 2422:           <td></td>
 2423:           <td>)</td>
 2424:           <td></td><td></td>
 2425:         </tr>
 2426:       </table>
 2427: </div><div class="memdoc">
 2428: 
 2429: <p>Default value print function. </p>
 2430: <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
 2431: = value"), or cfg_print to print the whole config file.</p>
 2432: <dl class="params"><dt>Parameters</dt><dd>
 2433:   <table class="params">
 2434:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2435:     <tr><td class="paramname">index</td><td>The index in the option value array that should be printed </td></tr>
 2436:     <tr><td class="paramname">fp</td><td>File stream to print to.</td></tr>
 2437:   </table>
 2438:   </dd>
 2439: </dl>
 2440: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#ac3343e32da22758f76ec50627316c708" title="Print the options and values to a file.">cfg_print</a>, <a class="el" href="confuse_8h.html#acb89e597f7220a8940d16c944c72545d" title="Print an option and its value to a file.">cfg_opt_print</a></dd></dl>
 2441: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2442: 
 2443: </div>
 2444: </div>
 2445: <a id="acb89e597f7220a8940d16c944c72545d"></a>
 2446: <h2 class="memtitle"><span class="permalink"><a href="#acb89e597f7220a8940d16c944c72545d">&#9670;&nbsp;</a></span>cfg_opt_print()</h2>
 2447: 
 2448: <div class="memitem">
 2449: <div class="memproto">
 2450:       <table class="memname">
 2451:         <tr>
 2452:           <td class="memname">DLLIMPORT int __export cfg_opt_print </td>
 2453:           <td>(</td>
 2454:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2455:           <td class="paramname"><em>opt</em>, </td>
 2456:         </tr>
 2457:         <tr>
 2458:           <td class="paramkey"></td>
 2459:           <td></td>
 2460:           <td class="paramtype">FILE *&#160;</td>
 2461:           <td class="paramname"><em>fp</em>&#160;</td>
 2462:         </tr>
 2463:         <tr>
 2464:           <td></td>
 2465:           <td>)</td>
 2466:           <td></td><td></td>
 2467:         </tr>
 2468:       </table>
 2469: </div><div class="memdoc">
 2470: 
 2471: <p>Print an option and its value to a file. </p>
 2472: <p>If a print callback function is specified for the option, it is used instead of cfg_opt_nprint_var.</p>
 2473: <dl class="params"><dt>Parameters</dt><dd>
 2474:   <table class="params">
 2475:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2476:     <tr><td class="paramname">fp</td><td>File stream to print to.</td></tr>
 2477:   </table>
 2478:   </dd>
 2479: </dl>
 2480: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9" title="Function prototype used by the cfg_print_ functions.">cfg_print_func_t</a></dd></dl>
 2481: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2482: 
 2483: </div>
 2484: </div>
 2485: <a id="a1c3a275962c11731067e3e8ef9b782df"></a>
 2486: <h2 class="memtitle"><span class="permalink"><a href="#a1c3a275962c11731067e3e8ef9b782df">&#9670;&nbsp;</a></span>cfg_opt_print_indent()</h2>
 2487: 
 2488: <div class="memitem">
 2489: <div class="memproto">
 2490:       <table class="memname">
 2491:         <tr>
 2492:           <td class="memname">DLLIMPORT int __export cfg_opt_print_indent </td>
 2493:           <td>(</td>
 2494:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2495:           <td class="paramname"><em>opt</em>, </td>
 2496:         </tr>
 2497:         <tr>
 2498:           <td class="paramkey"></td>
 2499:           <td></td>
 2500:           <td class="paramtype">FILE *&#160;</td>
 2501:           <td class="paramname"><em>fp</em>, </td>
 2502:         </tr>
 2503:         <tr>
 2504:           <td class="paramkey"></td>
 2505:           <td></td>
 2506:           <td class="paramtype">int&#160;</td>
 2507:           <td class="paramname"><em>indent</em>&#160;</td>
 2508:         </tr>
 2509:         <tr>
 2510:           <td></td>
 2511:           <td>)</td>
 2512:           <td></td><td></td>
 2513:         </tr>
 2514:       </table>
 2515: </div><div class="memdoc">
 2516: 
 2517: <p>Print an option and its value to a file. </p>
 2518: <p>Same as cfg_opt_print, but with the indentation level specified. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#acb89e597f7220a8940d16c944c72545d" title="Print an option and its value to a file.">cfg_opt_print</a></dd></dl>
 2519: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2520: 
 2521: </div>
 2522: </div>
 2523: <a id="a89b520443f8c41e05d5f4e86bdefef5d"></a>
 2524: <h2 class="memtitle"><span class="permalink"><a href="#a89b520443f8c41e05d5f4e86bdefef5d">&#9670;&nbsp;</a></span>cfg_opt_rmnsec()</h2>
 2525: 
 2526: <div class="memitem">
 2527: <div class="memproto">
 2528:       <table class="memname">
 2529:         <tr>
 2530:           <td class="memname">DLLIMPORT int __export cfg_opt_rmnsec </td>
 2531:           <td>(</td>
 2532:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2533:           <td class="paramname"><em>opt</em>, </td>
 2534:         </tr>
 2535:         <tr>
 2536:           <td class="paramkey"></td>
 2537:           <td></td>
 2538:           <td class="paramtype">unsigned int&#160;</td>
 2539:           <td class="paramname"><em>index</em>&#160;</td>
 2540:         </tr>
 2541:         <tr>
 2542:           <td></td>
 2543:           <td>)</td>
 2544:           <td></td><td></td>
 2545:         </tr>
 2546:       </table>
 2547: </div><div class="memdoc">
 2548: 
 2549: <p>Removes and frees a config section, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer. </p>
 2550: <dl class="params"><dt>Parameters</dt><dd>
 2551:   <table class="params">
 2552:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2553:     <tr><td class="paramname">index</td><td>Index of the section to remove. Zero based. </td></tr>
 2554:   </table>
 2555:   </dd>
 2556: </dl>
 2557: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a3658db217bbff1e8eba0245595de16c8" title="Indexed version of cfg_rmsec(), used for CFGF_MULTI sections.">cfg_rmnsec</a></dd></dl>
 2558: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2559: 
 2560: </div>
 2561: </div>
 2562: <a id="ab5834cea46fc0b7418eecd75c952b220"></a>
 2563: <h2 class="memtitle"><span class="permalink"><a href="#ab5834cea46fc0b7418eecd75c952b220">&#9670;&nbsp;</a></span>cfg_opt_rmtsec()</h2>
 2564: 
 2565: <div class="memitem">
 2566: <div class="memproto">
 2567:       <table class="memname">
 2568:         <tr>
 2569:           <td class="memname">DLLIMPORT int __export cfg_opt_rmtsec </td>
 2570:           <td>(</td>
 2571:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2572:           <td class="paramname"><em>opt</em>, </td>
 2573:         </tr>
 2574:         <tr>
 2575:           <td class="paramkey"></td>
 2576:           <td></td>
 2577:           <td class="paramtype">const char *&#160;</td>
 2578:           <td class="paramname"><em>title</em>&#160;</td>
 2579:         </tr>
 2580:         <tr>
 2581:           <td></td>
 2582:           <td>)</td>
 2583:           <td></td><td></td>
 2584:         </tr>
 2585:       </table>
 2586: </div><div class="memdoc">
 2587: 
 2588: <p>Removes and frees a config section, given a <a class="el" href="structcfg__opt__t.html" title="Data structure holding information about an option.">cfg_opt_t</a> pointer and the title. </p>
 2589: <dl class="params"><dt>Parameters</dt><dd>
 2590:   <table class="params">
 2591:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2592:     <tr><td class="paramname">title</td><td>The title of this section. The CFGF_TITLE flag must have been set for this option. </td></tr>
 2593:   </table>
 2594:   </dd>
 2595: </dl>
 2596: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a28df69d33e0387f3447262e9a99ead83" title="Removes and frees a section given the title, used for section with the CFGF_TITLE flag set.">cfg_rmtsec</a></dd></dl>
 2597: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2598: 
 2599: </div>
 2600: </div>
 2601: <a id="a292ba236b86cbe1bec047a467c8d605d"></a>
 2602: <h2 class="memtitle"><span class="permalink"><a href="#a292ba236b86cbe1bec047a467c8d605d">&#9670;&nbsp;</a></span>cfg_opt_set_print_func()</h2>
 2603: 
 2604: <div class="memitem">
 2605: <div class="memproto">
 2606:       <table class="memname">
 2607:         <tr>
 2608:           <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9">cfg_print_func_t</a> __export cfg_opt_set_print_func </td>
 2609:           <td>(</td>
 2610:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2611:           <td class="paramname"><em>opt</em>, </td>
 2612:         </tr>
 2613:         <tr>
 2614:           <td class="paramkey"></td>
 2615:           <td></td>
 2616:           <td class="paramtype"><a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9">cfg_print_func_t</a>&#160;</td>
 2617:           <td class="paramname"><em>pf</em>&#160;</td>
 2618:         </tr>
 2619:         <tr>
 2620:           <td></td>
 2621:           <td>)</td>
 2622:           <td></td><td></td>
 2623:         </tr>
 2624:       </table>
 2625: </div><div class="memdoc">
 2626: 
 2627: <p>Set a print callback function for an option. </p>
 2628: <dl class="params"><dt>Parameters</dt><dd>
 2629:   <table class="params">
 2630:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2631:     <tr><td class="paramname">pf</td><td>The print function callback.</td></tr>
 2632:   </table>
 2633:   </dd>
 2634: </dl>
 2635: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9" title="Function prototype used by the cfg_print_ functions.">cfg_print_func_t</a> </dd></dl>
 2636: 
 2637: </div>
 2638: </div>
 2639: <a id="aec07a19c221658f7556d09597cd1c8c5"></a>
 2640: <h2 class="memtitle"><span class="permalink"><a href="#aec07a19c221658f7556d09597cd1c8c5">&#9670;&nbsp;</a></span>cfg_opt_setcomment()</h2>
 2641: 
 2642: <div class="memitem">
 2643: <div class="memproto">
 2644:       <table class="memname">
 2645:         <tr>
 2646:           <td class="memname">DLLIMPORT int __export cfg_opt_setcomment </td>
 2647:           <td>(</td>
 2648:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2649:           <td class="paramname"><em>opt</em>, </td>
 2650:         </tr>
 2651:         <tr>
 2652:           <td class="paramkey"></td>
 2653:           <td></td>
 2654:           <td class="paramtype">char *&#160;</td>
 2655:           <td class="paramname"><em>comment</em>&#160;</td>
 2656:         </tr>
 2657:         <tr>
 2658:           <td></td>
 2659:           <td>)</td>
 2660:           <td></td><td></td>
 2661:         </tr>
 2662:       </table>
 2663: </div><div class="memdoc">
 2664: 
 2665: <p>Annotate an option. </p>
 2666: <dl class="params"><dt>Parameters</dt><dd>
 2667:   <table class="params">
 2668:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2669:     <tr><td class="paramname">comment</td><td>The annotation </td></tr>
 2670:   </table>
 2671:   </dd>
 2672: </dl>
 2673: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#abac8ca33706dd89c4eb6677cee9cfffc" title="Annotate an option given its name.">cfg_setcomment</a> </dd></dl>
 2674: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2675: 
 2676: </div>
 2677: </div>
 2678: <a id="a7561c5f3994f1f8eb7d2072efcc58c2a"></a>
 2679: <h2 class="memtitle"><span class="permalink"><a href="#a7561c5f3994f1f8eb7d2072efcc58c2a">&#9670;&nbsp;</a></span>cfg_opt_setmulti()</h2>
 2680: 
 2681: <div class="memitem">
 2682: <div class="memproto">
 2683:       <table class="memname">
 2684:         <tr>
 2685:           <td class="memname">DLLIMPORT int cfg_opt_setmulti </td>
 2686:           <td>(</td>
 2687:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 2688:           <td class="paramname"><em>cfg</em>, </td>
 2689:         </tr>
 2690:         <tr>
 2691:           <td class="paramkey"></td>
 2692:           <td></td>
 2693:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2694:           <td class="paramname"><em>opt</em>, </td>
 2695:         </tr>
 2696:         <tr>
 2697:           <td class="paramkey"></td>
 2698:           <td></td>
 2699:           <td class="paramtype">unsigned int&#160;</td>
 2700:           <td class="paramname"><em>nvalues</em>, </td>
 2701:         </tr>
 2702:         <tr>
 2703:           <td class="paramkey"></td>
 2704:           <td></td>
 2705:           <td class="paramtype">char **&#160;</td>
 2706:           <td class="paramname"><em>values</em>&#160;</td>
 2707:         </tr>
 2708:         <tr>
 2709:           <td></td>
 2710:           <td>)</td>
 2711:           <td></td><td></td>
 2712:         </tr>
 2713:       </table>
 2714: </div><div class="memdoc">
 2715: 
 2716: <p>Set an option (create an instance of an option). </p>
 2717: <dl class="params"><dt>Parameters</dt><dd>
 2718:   <table class="params">
 2719:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 2720:     <tr><td class="paramname">opt</td><td>The option definition. </td></tr>
 2721:     <tr><td class="paramname">nvalues</td><td>The number of values to set for the option. </td></tr>
 2722:     <tr><td class="paramname">values</td><td>The value(s) for the option.</td></tr>
 2723:   </table>
 2724:   </dd>
 2725: </dl>
 2726: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2727: 
 2728: </div>
 2729: </div>
 2730: <a id="a7efb1f27133b20f0d0b8b38c51ebf6d7"></a>
 2731: <h2 class="memtitle"><span class="permalink"><a href="#a7efb1f27133b20f0d0b8b38c51ebf6d7">&#9670;&nbsp;</a></span>cfg_opt_setnbool()</h2>
 2732: 
 2733: <div class="memitem">
 2734: <div class="memproto">
 2735:       <table class="memname">
 2736:         <tr>
 2737:           <td class="memname">DLLIMPORT int __export cfg_opt_setnbool </td>
 2738:           <td>(</td>
 2739:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2740:           <td class="paramname"><em>opt</em>, </td>
 2741:         </tr>
 2742:         <tr>
 2743:           <td class="paramkey"></td>
 2744:           <td></td>
 2745:           <td class="paramtype"><a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a>&#160;</td>
 2746:           <td class="paramname"><em>value</em>, </td>
 2747:         </tr>
 2748:         <tr>
 2749:           <td class="paramkey"></td>
 2750:           <td></td>
 2751:           <td class="paramtype">unsigned int&#160;</td>
 2752:           <td class="paramname"><em>index</em>&#160;</td>
 2753:         </tr>
 2754:         <tr>
 2755:           <td></td>
 2756:           <td>)</td>
 2757:           <td></td><td></td>
 2758:         </tr>
 2759:       </table>
 2760: </div><div class="memdoc">
 2761: 
 2762: <p>Set a value of a boolean option. </p>
 2763: <dl class="params"><dt>Parameters</dt><dd>
 2764:   <table class="params">
 2765:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2766:     <tr><td class="paramname">value</td><td>The value to set. </td></tr>
 2767:     <tr><td class="paramname">index</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>
 2768:   </table>
 2769:   </dd>
 2770: </dl>
 2771: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2772: 
 2773: </div>
 2774: </div>
 2775: <a id="a4843ce0fadd14030af7a2293d558901e"></a>
 2776: <h2 class="memtitle"><span class="permalink"><a href="#a4843ce0fadd14030af7a2293d558901e">&#9670;&nbsp;</a></span>cfg_opt_setnfloat()</h2>
 2777: 
 2778: <div class="memitem">
 2779: <div class="memproto">
 2780:       <table class="memname">
 2781:         <tr>
 2782:           <td class="memname">DLLIMPORT int __export cfg_opt_setnfloat </td>
 2783:           <td>(</td>
 2784:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2785:           <td class="paramname"><em>opt</em>, </td>
 2786:         </tr>
 2787:         <tr>
 2788:           <td class="paramkey"></td>
 2789:           <td></td>
 2790:           <td class="paramtype">double&#160;</td>
 2791:           <td class="paramname"><em>value</em>, </td>
 2792:         </tr>
 2793:         <tr>
 2794:           <td class="paramkey"></td>
 2795:           <td></td>
 2796:           <td class="paramtype">unsigned int&#160;</td>
 2797:           <td class="paramname"><em>index</em>&#160;</td>
 2798:         </tr>
 2799:         <tr>
 2800:           <td></td>
 2801:           <td>)</td>
 2802:           <td></td><td></td>
 2803:         </tr>
 2804:       </table>
 2805: </div><div class="memdoc">
 2806: 
 2807: <p>Set a value of a floating point option. </p>
 2808: <dl class="params"><dt>Parameters</dt><dd>
 2809:   <table class="params">
 2810:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2811:     <tr><td class="paramname">value</td><td>The value to set. </td></tr>
 2812:     <tr><td class="paramname">index</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>
 2813:   </table>
 2814:   </dd>
 2815: </dl>
 2816: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2817: 
 2818: </div>
 2819: </div>
 2820: <a id="ad84e0c6a0fb47551f9dd64374aa2d8ab"></a>
 2821: <h2 class="memtitle"><span class="permalink"><a href="#ad84e0c6a0fb47551f9dd64374aa2d8ab">&#9670;&nbsp;</a></span>cfg_opt_setnint()</h2>
 2822: 
 2823: <div class="memitem">
 2824: <div class="memproto">
 2825:       <table class="memname">
 2826:         <tr>
 2827:           <td class="memname">DLLIMPORT int __export cfg_opt_setnint </td>
 2828:           <td>(</td>
 2829:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2830:           <td class="paramname"><em>opt</em>, </td>
 2831:         </tr>
 2832:         <tr>
 2833:           <td class="paramkey"></td>
 2834:           <td></td>
 2835:           <td class="paramtype">long int&#160;</td>
 2836:           <td class="paramname"><em>value</em>, </td>
 2837:         </tr>
 2838:         <tr>
 2839:           <td class="paramkey"></td>
 2840:           <td></td>
 2841:           <td class="paramtype">unsigned int&#160;</td>
 2842:           <td class="paramname"><em>index</em>&#160;</td>
 2843:         </tr>
 2844:         <tr>
 2845:           <td></td>
 2846:           <td>)</td>
 2847:           <td></td><td></td>
 2848:         </tr>
 2849:       </table>
 2850: </div><div class="memdoc">
 2851: 
 2852: <p>Set a value of an integer option. </p>
 2853: <dl class="params"><dt>Parameters</dt><dd>
 2854:   <table class="params">
 2855:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2856:     <tr><td class="paramname">value</td><td>The value to set. </td></tr>
 2857:     <tr><td class="paramname">index</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>
 2858:   </table>
 2859:   </dd>
 2860: </dl>
 2861: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2862: 
 2863: </div>
 2864: </div>
 2865: <a id="a35daf3fa141ba784a5fc1b8da5df54c7"></a>
 2866: <h2 class="memtitle"><span class="permalink"><a href="#a35daf3fa141ba784a5fc1b8da5df54c7">&#9670;&nbsp;</a></span>cfg_opt_setnstr()</h2>
 2867: 
 2868: <div class="memitem">
 2869: <div class="memproto">
 2870:       <table class="memname">
 2871:         <tr>
 2872:           <td class="memname">DLLIMPORT int __export cfg_opt_setnstr </td>
 2873:           <td>(</td>
 2874:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2875:           <td class="paramname"><em>opt</em>, </td>
 2876:         </tr>
 2877:         <tr>
 2878:           <td class="paramkey"></td>
 2879:           <td></td>
 2880:           <td class="paramtype">const char *&#160;</td>
 2881:           <td class="paramname"><em>value</em>, </td>
 2882:         </tr>
 2883:         <tr>
 2884:           <td class="paramkey"></td>
 2885:           <td></td>
 2886:           <td class="paramtype">unsigned int&#160;</td>
 2887:           <td class="paramname"><em>index</em>&#160;</td>
 2888:         </tr>
 2889:         <tr>
 2890:           <td></td>
 2891:           <td>)</td>
 2892:           <td></td><td></td>
 2893:         </tr>
 2894:       </table>
 2895: </div><div class="memdoc">
 2896: 
 2897: <p>Set a value of a string option. </p>
 2898: <dl class="params"><dt>Parameters</dt><dd>
 2899:   <table class="params">
 2900:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2901:     <tr><td class="paramname">value</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>
 2902:     <tr><td class="paramname">index</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>
 2903:   </table>
 2904:   </dd>
 2905: </dl>
 2906: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 2907: 
 2908: </div>
 2909: </div>
 2910: <a id="a1648e78297e9bc970b1f3fa90a715da6"></a>
 2911: <h2 class="memtitle"><span class="permalink"><a href="#a1648e78297e9bc970b1f3fa90a715da6">&#9670;&nbsp;</a></span>cfg_opt_size()</h2>
 2912: 
 2913: <div class="memitem">
 2914: <div class="memproto">
 2915:       <table class="memname">
 2916:         <tr>
 2917:           <td class="memname">DLLIMPORT unsigned int __export cfg_opt_size </td>
 2918:           <td>(</td>
 2919:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 2920:           <td class="paramname"><em>opt</em></td><td>)</td>
 2921:           <td></td>
 2922:         </tr>
 2923:       </table>
 2924: </div><div class="memdoc">
 2925: 
 2926: <p>Return the number of values this option has. </p>
 2927: <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><dl class="params"><dt>Parameters</dt><dd>
 2928:   <table class="params">
 2929:     <tr><td class="paramname">opt</td><td>The option structure (eg, as returned from <a class="el" href="confuse_8h.html#a33f48558624569678272f46925ead40f" title="Return an option given it&#39;s name.">cfg_getopt()</a>) </td></tr>
 2930:   </table>
 2931:   </dd>
 2932: </dl>
 2933: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a7">ftpconf.c</a>.</dd>
 2934: </dl>
 2935: 
 2936: </div>
 2937: </div>
 2938: <a id="a0fca327466956c5580199e24397d49fe"></a>
 2939: <h2 class="memtitle"><span class="permalink"><a href="#a0fca327466956c5580199e24397d49fe">&#9670;&nbsp;</a></span>cfg_parse()</h2>
 2940: 
 2941: <div class="memitem">
 2942: <div class="memproto">
 2943:       <table class="memname">
 2944:         <tr>
 2945:           <td class="memname">DLLIMPORT int __export cfg_parse </td>
 2946:           <td>(</td>
 2947:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 2948:           <td class="paramname"><em>cfg</em>, </td>
 2949:         </tr>
 2950:         <tr>
 2951:           <td class="paramkey"></td>
 2952:           <td></td>
 2953:           <td class="paramtype">const char *&#160;</td>
 2954:           <td class="paramname"><em>filename</em>&#160;</td>
 2955:         </tr>
 2956:         <tr>
 2957:           <td></td>
 2958:           <td>)</td>
 2959:           <td></td><td></td>
 2960:         </tr>
 2961:       </table>
 2962: </div><div class="memdoc">
 2963: 
 2964: <p>Parse a configuration file. </p>
 2965: <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#aec07794916564c8ab437e030ac618aa8" title="Create and initialize a cfg_t structure.">cfg_init()</a>) and parsed (with <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a>), the values can be read with the cfg_getXXX functions.</p>
 2966: <dl class="params"><dt>Parameters</dt><dd>
 2967:   <table class="params">
 2968:     <tr><td class="paramname">cfg</td><td>The configuration file context as returned from <a class="el" href="confuse_8h.html#aec07794916564c8ab437e030ac618aa8" title="Create and initialize a cfg_t structure.">cfg_init()</a>. </td></tr>
 2969:     <tr><td class="paramname">filename</td><td>The name of the file to parse.</td></tr>
 2970:   </table>
 2971:   </dd>
 2972: </dl>
 2973: <dl class="section return"><dt>Returns</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#a5b448a145f12b67e90bd4e6bd387f129" title="Show a parser error.">cfg_error()</a> was called with a descriptive error message. </dd></dl>
 2974: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a24">ftpconf.c</a>, <a class="el" href="reread_8c-example.html#a13">reread.c</a>, and <a class="el" href="simple_8c-example.html#a8">simple.c</a>.</dd>
 2975: </dl>
 2976: 
 2977: </div>
 2978: </div>
 2979: <a id="a527f63939bf3f0b5d635fd86cd562086"></a>
 2980: <h2 class="memtitle"><span class="permalink"><a href="#a527f63939bf3f0b5d635fd86cd562086">&#9670;&nbsp;</a></span>cfg_parse_boolean()</h2>
 2981: 
 2982: <div class="memitem">
 2983: <div class="memproto">
 2984:       <table class="memname">
 2985:         <tr>
 2986:           <td class="memname">DLLIMPORT int __export cfg_parse_boolean </td>
 2987:           <td>(</td>
 2988:           <td class="paramtype">const char *&#160;</td>
 2989:           <td class="paramname"><em>s</em></td><td>)</td>
 2990:           <td></td>
 2991:         </tr>
 2992:       </table>
 2993: </div><div class="memdoc">
 2994: 
 2995: <p>Parse a boolean option string. </p>
 2996: <p>Accepted "true" values are "true", "on" and "yes", and accepted "false" values are "false", "off" and "no".</p>
 2997: <dl class="section return"><dt>Returns</dt><dd>Returns 1 or 0 (true/false) if the string was parsed correctly, or -1 if an error occurred. </dd></dl>
 2998: 
 2999: </div>
 3000: </div>
 3001: <a id="a6da020721a065f359cf343f014e7834c"></a>
 3002: <h2 class="memtitle"><span class="permalink"><a href="#a6da020721a065f359cf343f014e7834c">&#9670;&nbsp;</a></span>cfg_parse_buf()</h2>
 3003: 
 3004: <div class="memitem">
 3005: <div class="memproto">
 3006:       <table class="memname">
 3007:         <tr>
 3008:           <td class="memname">DLLIMPORT int __export cfg_parse_buf </td>
 3009:           <td>(</td>
 3010:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3011:           <td class="paramname"><em>cfg</em>, </td>
 3012:         </tr>
 3013:         <tr>
 3014:           <td class="paramkey"></td>
 3015:           <td></td>
 3016:           <td class="paramtype">const char *&#160;</td>
 3017:           <td class="paramname"><em>buf</em>&#160;</td>
 3018:         </tr>
 3019:         <tr>
 3020:           <td></td>
 3021:           <td>)</td>
 3022:           <td></td><td></td>
 3023:         </tr>
 3024:       </table>
 3025: </div><div class="memdoc">
 3026: 
 3027: <p>Same as <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a> above, but takes a character buffer as argument. </p>
 3028: <dl class="params"><dt>Parameters</dt><dd>
 3029:   <table class="params">
 3030:     <tr><td class="paramname">cfg</td><td>The configuration file context as returned from <a class="el" href="confuse_8h.html#aec07794916564c8ab437e030ac618aa8" title="Create and initialize a cfg_t structure.">cfg_init()</a>. </td></tr>
 3031:     <tr><td class="paramname">buf</td><td>A zero-terminated string with configuration directives.</td></tr>
 3032:   </table>
 3033:   </dd>
 3034: </dl>
 3035: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a></dd></dl>
 3036: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3037: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="reread_8c-example.html#a11">reread.c</a>.</dd>
 3038: </dl>
 3039: 
 3040: </div>
 3041: </div>
 3042: <a id="a7ff54be21c704c3150ad439d7e17dcca"></a>
 3043: <h2 class="memtitle"><span class="permalink"><a href="#a7ff54be21c704c3150ad439d7e17dcca">&#9670;&nbsp;</a></span>cfg_parse_fp()</h2>
 3044: 
 3045: <div class="memitem">
 3046: <div class="memproto">
 3047:       <table class="memname">
 3048:         <tr>
 3049:           <td class="memname">DLLIMPORT int __export cfg_parse_fp </td>
 3050:           <td>(</td>
 3051:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3052:           <td class="paramname"><em>cfg</em>, </td>
 3053:         </tr>
 3054:         <tr>
 3055:           <td class="paramkey"></td>
 3056:           <td></td>
 3057:           <td class="paramtype">FILE *&#160;</td>
 3058:           <td class="paramname"><em>fp</em>&#160;</td>
 3059:         </tr>
 3060:         <tr>
 3061:           <td></td>
 3062:           <td>)</td>
 3063:           <td></td><td></td>
 3064:         </tr>
 3065:       </table>
 3066: </div><div class="memdoc">
 3067: 
 3068: <p>Same as <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a> above, but takes an already opened file as argument. </p>
 3069: <p>Reading begins at the current position. After parsing, the position is not reset. The caller is responsible for closing the file.</p>
 3070: <dl class="params"><dt>Parameters</dt><dd>
 3071:   <table class="params">
 3072:     <tr><td class="paramname">cfg</td><td>The configuration file context as returned from <a class="el" href="confuse_8h.html#aec07794916564c8ab437e030ac618aa8" title="Create and initialize a cfg_t structure.">cfg_init()</a>. </td></tr>
 3073:     <tr><td class="paramname">fp</td><td>An open file stream.</td></tr>
 3074:   </table>
 3075:   </dd>
 3076: </dl>
 3077: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a></dd></dl>
 3078: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3079: 
 3080: </div>
 3081: </div>
 3082: <a id="ac3343e32da22758f76ec50627316c708"></a>
 3083: <h2 class="memtitle"><span class="permalink"><a href="#ac3343e32da22758f76ec50627316c708">&#9670;&nbsp;</a></span>cfg_print()</h2>
 3084: 
 3085: <div class="memitem">
 3086: <div class="memproto">
 3087:       <table class="memname">
 3088:         <tr>
 3089:           <td class="memname">DLLIMPORT int __export cfg_print </td>
 3090:           <td>(</td>
 3091:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3092:           <td class="paramname"><em>cfg</em>, </td>
 3093:         </tr>
 3094:         <tr>
 3095:           <td class="paramkey"></td>
 3096:           <td></td>
 3097:           <td class="paramtype">FILE *&#160;</td>
 3098:           <td class="paramname"><em>fp</em>&#160;</td>
 3099:         </tr>
 3100:         <tr>
 3101:           <td></td>
 3102:           <td>)</td>
 3103:           <td></td><td></td>
 3104:         </tr>
 3105:       </table>
 3106: </div><div class="memdoc">
 3107: 
 3108: <p>Print the options and values to a file. </p>
 3109: <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>
 3110: <dl class="params"><dt>Parameters</dt><dd>
 3111:   <table class="params">
 3112:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3113:     <tr><td class="paramname">fp</td><td>File stream to print to, use stdout to print to the screen.</td></tr>
 3114:   </table>
 3115:   </dd>
 3116: </dl>
 3117: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9" title="Function prototype used by the cfg_print_ functions.">cfg_print_func_t</a>, <a class="el" href="confuse_8h.html#a03bdd2ac7828e5161e68da93cb07238d" title="Set a print callback function for an option given its name.">cfg_set_print_func</a></dd></dl>
 3118: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3119: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="simple_8c-example.html#a10">simple.c</a>.</dd>
 3120: </dl>
 3121: 
 3122: </div>
 3123: </div>
 3124: <a id="aac075fd59dc24472ab3bd5d1b33bf2ac"></a>
 3125: <h2 class="memtitle"><span class="permalink"><a href="#aac075fd59dc24472ab3bd5d1b33bf2ac">&#9670;&nbsp;</a></span>cfg_print_indent()</h2>
 3126: 
 3127: <div class="memitem">
 3128: <div class="memproto">
 3129:       <table class="memname">
 3130:         <tr>
 3131:           <td class="memname">DLLIMPORT int __export cfg_print_indent </td>
 3132:           <td>(</td>
 3133:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3134:           <td class="paramname"><em>cfg</em>, </td>
 3135:         </tr>
 3136:         <tr>
 3137:           <td class="paramkey"></td>
 3138:           <td></td>
 3139:           <td class="paramtype">FILE *&#160;</td>
 3140:           <td class="paramname"><em>fp</em>, </td>
 3141:         </tr>
 3142:         <tr>
 3143:           <td class="paramkey"></td>
 3144:           <td></td>
 3145:           <td class="paramtype">int&#160;</td>
 3146:           <td class="paramname"><em>indent</em>&#160;</td>
 3147:         </tr>
 3148:         <tr>
 3149:           <td></td>
 3150:           <td>)</td>
 3151:           <td></td><td></td>
 3152:         </tr>
 3153:       </table>
 3154: </div><div class="memdoc">
 3155: 
 3156: <p>Print the options and values to a file. </p>
 3157: <p>Same as cfg_print, but with the indentation level specified. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#ac3343e32da22758f76ec50627316c708" title="Print the options and values to a file.">cfg_print</a></dd></dl>
 3158: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3159: 
 3160: </div>
 3161: </div>
 3162: <a id="a3658db217bbff1e8eba0245595de16c8"></a>
 3163: <h2 class="memtitle"><span class="permalink"><a href="#a3658db217bbff1e8eba0245595de16c8">&#9670;&nbsp;</a></span>cfg_rmnsec()</h2>
 3164: 
 3165: <div class="memitem">
 3166: <div class="memproto">
 3167:       <table class="memname">
 3168:         <tr>
 3169:           <td class="memname">DLLIMPORT int __export cfg_rmnsec </td>
 3170:           <td>(</td>
 3171:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3172:           <td class="paramname"><em>cfg</em>, </td>
 3173:         </tr>
 3174:         <tr>
 3175:           <td class="paramkey"></td>
 3176:           <td></td>
 3177:           <td class="paramtype">const char *&#160;</td>
 3178:           <td class="paramname"><em>name</em>, </td>
 3179:         </tr>
 3180:         <tr>
 3181:           <td class="paramkey"></td>
 3182:           <td></td>
 3183:           <td class="paramtype">unsigned int&#160;</td>
 3184:           <td class="paramname"><em>index</em>&#160;</td>
 3185:         </tr>
 3186:         <tr>
 3187:           <td></td>
 3188:           <td>)</td>
 3189:           <td></td><td></td>
 3190:         </tr>
 3191:       </table>
 3192: </div><div class="memdoc">
 3193: 
 3194: <p>Indexed version of <a class="el" href="confuse_8h.html#aa08643cde27afe36627485bc947cb039" title="Removes and frees a config section.">cfg_rmsec()</a>, used for CFGF_MULTI sections. </p>
 3195: <dl class="params"><dt>Parameters</dt><dd>
 3196:   <table class="params">
 3197:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3198:     <tr><td class="paramname">name</td><td>The name of the section. </td></tr>
 3199:     <tr><td class="paramname">index</td><td>Index of the section to remove. Zero based. </td></tr>
 3200:   </table>
 3201:   </dd>
 3202: </dl>
 3203: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#aa08643cde27afe36627485bc947cb039" title="Removes and frees a config section.">cfg_rmsec</a></dd></dl>
 3204: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3205: 
 3206: </div>
 3207: </div>
 3208: <a id="aa08643cde27afe36627485bc947cb039"></a>
 3209: <h2 class="memtitle"><span class="permalink"><a href="#aa08643cde27afe36627485bc947cb039">&#9670;&nbsp;</a></span>cfg_rmsec()</h2>
 3210: 
 3211: <div class="memitem">
 3212: <div class="memproto">
 3213:       <table class="memname">
 3214:         <tr>
 3215:           <td class="memname">DLLIMPORT int __export cfg_rmsec </td>
 3216:           <td>(</td>
 3217:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3218:           <td class="paramname"><em>cfg</em>, </td>
 3219:         </tr>
 3220:         <tr>
 3221:           <td class="paramkey"></td>
 3222:           <td></td>
 3223:           <td class="paramtype">const char *&#160;</td>
 3224:           <td class="paramname"><em>name</em>&#160;</td>
 3225:         </tr>
 3226:         <tr>
 3227:           <td></td>
 3228:           <td>)</td>
 3229:           <td></td><td></td>
 3230:         </tr>
 3231:       </table>
 3232: </div><div class="memdoc">
 3233: 
 3234: <p>Removes and frees a config section. </p>
 3235: <p>This is the same as calling cfg_rmnsec with index 0. </p><dl class="params"><dt>Parameters</dt><dd>
 3236:   <table class="params">
 3237:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3238:     <tr><td class="paramname">name</td><td>The name of the section.</td></tr>
 3239:   </table>
 3240:   </dd>
 3241: </dl>
 3242: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3243: 
 3244: </div>
 3245: </div>
 3246: <a id="a28df69d33e0387f3447262e9a99ead83"></a>
 3247: <h2 class="memtitle"><span class="permalink"><a href="#a28df69d33e0387f3447262e9a99ead83">&#9670;&nbsp;</a></span>cfg_rmtsec()</h2>
 3248: 
 3249: <div class="memitem">
 3250: <div class="memproto">
 3251:       <table class="memname">
 3252:         <tr>
 3253:           <td class="memname">DLLIMPORT int __export cfg_rmtsec </td>
 3254:           <td>(</td>
 3255:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3256:           <td class="paramname"><em>cfg</em>, </td>
 3257:         </tr>
 3258:         <tr>
 3259:           <td class="paramkey"></td>
 3260:           <td></td>
 3261:           <td class="paramtype">const char *&#160;</td>
 3262:           <td class="paramname"><em>name</em>, </td>
 3263:         </tr>
 3264:         <tr>
 3265:           <td class="paramkey"></td>
 3266:           <td></td>
 3267:           <td class="paramtype">const char *&#160;</td>
 3268:           <td class="paramname"><em>title</em>&#160;</td>
 3269:         </tr>
 3270:         <tr>
 3271:           <td></td>
 3272:           <td>)</td>
 3273:           <td></td><td></td>
 3274:         </tr>
 3275:       </table>
 3276: </div><div class="memdoc">
 3277: 
 3278: <p>Removes and frees a section given the title, used for section with the CFGF_TITLE flag set. </p>
 3279: <dl class="params"><dt>Parameters</dt><dd>
 3280:   <table class="params">
 3281:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3282:     <tr><td class="paramname">name</td><td>The name of the section. </td></tr>
 3283:     <tr><td class="paramname">title</td><td>The title of this section. The CFGF_TITLE flag must have been set for this option. </td></tr>
 3284:   </table>
 3285:   </dd>
 3286: </dl>
 3287: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#aa08643cde27afe36627485bc947cb039" title="Removes and frees a config section.">cfg_rmsec</a></dd></dl>
 3288: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3289: 
 3290: </div>
 3291: </div>
 3292: <a id="a2fb3099e4fc619c746eacfb930b9d24d"></a>
 3293: <h2 class="memtitle"><span class="permalink"><a href="#a2fb3099e4fc619c746eacfb930b9d24d">&#9670;&nbsp;</a></span>cfg_searchpath()</h2>
 3294: 
 3295: <div class="memitem">
 3296: <div class="memproto">
 3297:       <table class="memname">
 3298:         <tr>
 3299:           <td class="memname">DLLIMPORT char* __export cfg_searchpath </td>
 3300:           <td>(</td>
 3301:           <td class="paramtype">cfg_searchpath_t *&#160;</td>
 3302:           <td class="paramname"><em>path</em>, </td>
 3303:         </tr>
 3304:         <tr>
 3305:           <td class="paramkey"></td>
 3306:           <td></td>
 3307:           <td class="paramtype">const char *&#160;</td>
 3308:           <td class="paramname"><em>file</em>&#160;</td>
 3309:         </tr>
 3310:         <tr>
 3311:           <td></td>
 3312:           <td>)</td>
 3313:           <td></td><td></td>
 3314:         </tr>
 3315:       </table>
 3316: </div><div class="memdoc">
 3317: 
 3318: <p>Search the linked-list of cfg_searchpath_t for the specified file. </p>
 3319: <p>If not NULL, the return value is freshly allocated and and should be freed by the caller.</p>
 3320: <dl class="params"><dt>Parameters</dt><dd>
 3321:   <table class="params">
 3322:     <tr><td class="paramname">path</td><td>The linked list of cfg_searchpath_t structs, each containg a directory to be searched </td></tr>
 3323:     <tr><td class="paramname">file</td><td>The file for which to search</td></tr>
 3324:   </table>
 3325:   </dd>
 3326: </dl>
 3327: <dl class="section return"><dt>Returns</dt><dd>If the file is found on the searchpath then the full path to the file is returned. If not found, NULL is returned. </dd></dl>
 3328: 
 3329: </div>
 3330: </div>
 3331: <a id="ae5cd3df98ec4c9895fbe73fd1c32f7a1"></a>
 3332: <h2 class="memtitle"><span class="permalink"><a href="#ae5cd3df98ec4c9895fbe73fd1c32f7a1">&#9670;&nbsp;</a></span>cfg_set_error_function()</h2>
 3333: 
 3334: <div class="memitem">
 3335: <div class="memproto">
 3336:       <table class="memname">
 3337:         <tr>
 3338:           <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#a21921b63558b504a7f68cf97ba3cf3ce">cfg_errfunc_t</a> __export cfg_set_error_function </td>
 3339:           <td>(</td>
 3340:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3341:           <td class="paramname"><em>cfg</em>, </td>
 3342:         </tr>
 3343:         <tr>
 3344:           <td class="paramkey"></td>
 3345:           <td></td>
 3346:           <td class="paramtype"><a class="el" href="confuse_8h.html#a21921b63558b504a7f68cf97ba3cf3ce">cfg_errfunc_t</a>&#160;</td>
 3347:           <td class="paramname"><em>errfunc</em>&#160;</td>
 3348:         </tr>
 3349:         <tr>
 3350:           <td></td>
 3351:           <td>)</td>
 3352:           <td></td><td></td>
 3353:         </tr>
 3354:       </table>
 3355: </div><div class="memdoc">
 3356: 
 3357: <p>Install a user-defined error reporting function. </p>
 3358: <dl class="section return"><dt>Returns</dt><dd>The old error reporting function is returned. </dd></dl>
 3359: 
 3360: </div>
 3361: </div>
 3362: <a id="a6c54ace15f94610dc81ab3c3ada5a014"></a>
 3363: <h2 class="memtitle"><span class="permalink"><a href="#a6c54ace15f94610dc81ab3c3ada5a014">&#9670;&nbsp;</a></span>cfg_set_print_filter_func()</h2>
 3364: 
 3365: <div class="memitem">
 3366: <div class="memproto">
 3367:       <table class="memname">
 3368:         <tr>
 3369:           <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#ac0d704ca318d6a83072f3e6860965694">cfg_print_filter_func_t</a> __export cfg_set_print_filter_func </td>
 3370:           <td>(</td>
 3371:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3372:           <td class="paramname"><em>cfg</em>, </td>
 3373:         </tr>
 3374:         <tr>
 3375:           <td class="paramkey"></td>
 3376:           <td></td>
 3377:           <td class="paramtype"><a class="el" href="confuse_8h.html#ac0d704ca318d6a83072f3e6860965694">cfg_print_filter_func_t</a>&#160;</td>
 3378:           <td class="paramname"><em>pff</em>&#160;</td>
 3379:         </tr>
 3380:         <tr>
 3381:           <td></td>
 3382:           <td>)</td>
 3383:           <td></td><td></td>
 3384:         </tr>
 3385:       </table>
 3386: </div><div class="memdoc">
 3387: 
 3388: <p>Install a user-defined print filter function. </p>
 3389: <p>This callback is called for each option when printing cfg, or something above cfg if cfg is a section in some parent cfg. When cfg (or something above cfg) is printed, this filter is also inherited to child sections unless the child section has its own print filter.</p>
 3390: <dl class="params"><dt>Parameters</dt><dd>
 3391:   <table class="params">
 3392:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3393:     <tr><td class="paramname">pff</td><td>The print filter callback function.</td></tr>
 3394:   </table>
 3395:   </dd>
 3396: </dl>
 3397: <dl class="section return"><dt>Returns</dt><dd>The old print filter function is returned.</dd></dl>
 3398: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#ac0d704ca318d6a83072f3e6860965694" title="Print filter function.">cfg_print_filter_func_t</a> </dd></dl>
 3399: 
 3400: </div>
 3401: </div>
 3402: <a id="a03bdd2ac7828e5161e68da93cb07238d"></a>
 3403: <h2 class="memtitle"><span class="permalink"><a href="#a03bdd2ac7828e5161e68da93cb07238d">&#9670;&nbsp;</a></span>cfg_set_print_func()</h2>
 3404: 
 3405: <div class="memitem">
 3406: <div class="memproto">
 3407:       <table class="memname">
 3408:         <tr>
 3409:           <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9">cfg_print_func_t</a> __export cfg_set_print_func </td>
 3410:           <td>(</td>
 3411:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3412:           <td class="paramname"><em>cfg</em>, </td>
 3413:         </tr>
 3414:         <tr>
 3415:           <td class="paramkey"></td>
 3416:           <td></td>
 3417:           <td class="paramtype">const char *&#160;</td>
 3418:           <td class="paramname"><em>name</em>, </td>
 3419:         </tr>
 3420:         <tr>
 3421:           <td class="paramkey"></td>
 3422:           <td></td>
 3423:           <td class="paramtype"><a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9">cfg_print_func_t</a>&#160;</td>
 3424:           <td class="paramname"><em>pf</em>&#160;</td>
 3425:         </tr>
 3426:         <tr>
 3427:           <td></td>
 3428:           <td>)</td>
 3429:           <td></td><td></td>
 3430:         </tr>
 3431:       </table>
 3432: </div><div class="memdoc">
 3433: 
 3434: <p>Set a print callback function for an option given its name. </p>
 3435: <dl class="params"><dt>Parameters</dt><dd>
 3436:   <table class="params">
 3437:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3438:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3439:     <tr><td class="paramname">pf</td><td>The print callback function.</td></tr>
 3440:   </table>
 3441:   </dd>
 3442: </dl>
 3443: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a1b97fb911e1203df560f80c2528c5fd9" title="Function prototype used by the cfg_print_ functions.">cfg_print_func_t</a> </dd></dl>
 3444: 
 3445: </div>
 3446: </div>
 3447: <a id="a8f07eca3c5e341ee6a81ecede2fbd5d8"></a>
 3448: <h2 class="memtitle"><span class="permalink"><a href="#a8f07eca3c5e341ee6a81ecede2fbd5d8">&#9670;&nbsp;</a></span>cfg_set_validate_func()</h2>
 3449: 
 3450: <div class="memitem">
 3451: <div class="memproto">
 3452:       <table class="memname">
 3453:         <tr>
 3454:           <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#a16da0a75f6314baedf4ed4ee2dd28d11">cfg_validate_callback_t</a> __export cfg_set_validate_func </td>
 3455:           <td>(</td>
 3456:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3457:           <td class="paramname"><em>cfg</em>, </td>
 3458:         </tr>
 3459:         <tr>
 3460:           <td class="paramkey"></td>
 3461:           <td></td>
 3462:           <td class="paramtype">const char *&#160;</td>
 3463:           <td class="paramname"><em>name</em>, </td>
 3464:         </tr>
 3465:         <tr>
 3466:           <td class="paramkey"></td>
 3467:           <td></td>
 3468:           <td class="paramtype"><a class="el" href="confuse_8h.html#a16da0a75f6314baedf4ed4ee2dd28d11">cfg_validate_callback_t</a>&#160;</td>
 3469:           <td class="paramname"><em>vf</em>&#160;</td>
 3470:         </tr>
 3471:         <tr>
 3472:           <td></td>
 3473:           <td>)</td>
 3474:           <td></td><td></td>
 3475:         </tr>
 3476:       </table>
 3477: </div><div class="memdoc">
 3478: 
 3479: <p>Register a validating callback function for an option. </p>
 3480: <dl class="params"><dt>Parameters</dt><dd>
 3481:   <table class="params">
 3482:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3483:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3484:     <tr><td class="paramname">vf</td><td>The validating callback function.</td></tr>
 3485:   </table>
 3486:   </dd>
 3487: </dl>
 3488: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a16da0a75f6314baedf4ed4ee2dd28d11" title="Validating callback prototype.">cfg_validate_callback_t</a> </dd></dl>
 3489: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a23">ftpconf.c</a>.</dd>
 3490: </dl>
 3491: 
 3492: </div>
 3493: </div>
 3494: <a id="a91d59966569b50fb32d09f3e9f65ee6c"></a>
 3495: <h2 class="memtitle"><span class="permalink"><a href="#a91d59966569b50fb32d09f3e9f65ee6c">&#9670;&nbsp;</a></span>cfg_set_validate_func2()</h2>
 3496: 
 3497: <div class="memitem">
 3498: <div class="memproto">
 3499:       <table class="memname">
 3500:         <tr>
 3501:           <td class="memname">DLLIMPORT <a class="el" href="confuse_8h.html#a5285e2294a128c40810a986ef87c6ed3">cfg_validate_callback2_t</a> __export cfg_set_validate_func2 </td>
 3502:           <td>(</td>
 3503:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3504:           <td class="paramname"><em>cfg</em>, </td>
 3505:         </tr>
 3506:         <tr>
 3507:           <td class="paramkey"></td>
 3508:           <td></td>
 3509:           <td class="paramtype">const char *&#160;</td>
 3510:           <td class="paramname"><em>name</em>, </td>
 3511:         </tr>
 3512:         <tr>
 3513:           <td class="paramkey"></td>
 3514:           <td></td>
 3515:           <td class="paramtype"><a class="el" href="confuse_8h.html#a5285e2294a128c40810a986ef87c6ed3">cfg_validate_callback2_t</a>&#160;</td>
 3516:           <td class="paramname"><em>vf</em>&#160;</td>
 3517:         </tr>
 3518:         <tr>
 3519:           <td></td>
 3520:           <td>)</td>
 3521:           <td></td><td></td>
 3522:         </tr>
 3523:       </table>
 3524: </div><div class="memdoc">
 3525: 
 3526: <p>Register a validating callback function for an option. </p>
 3527: <p>This callback is called for all cfg_set*() functions, although not cfg_opt_set*(), and can be used to check and modify a value/string *before* it is actually set. The regular callbacks are run after the fact and are only called when parsing a buffer or file.</p>
 3528: <dl class="params"><dt>Parameters</dt><dd>
 3529:   <table class="params">
 3530:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3531:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3532:     <tr><td class="paramname">vf</td><td>The validating callback function.</td></tr>
 3533:   </table>
 3534:   </dd>
 3535: </dl>
 3536: <dl class="section see"><dt>See also</dt><dd><a class="el" href="confuse_8h.html#a5285e2294a128c40810a986ef87c6ed3" title="Validating callback2 prototype.">cfg_validate_callback2_t</a> </dd></dl>
 3537: 
 3538: </div>
 3539: </div>
 3540: <a id="aca19b746986429bf16af8303c8751a12"></a>
 3541: <h2 class="memtitle"><span class="permalink"><a href="#aca19b746986429bf16af8303c8751a12">&#9670;&nbsp;</a></span>cfg_setbool()</h2>
 3542: 
 3543: <div class="memitem">
 3544: <div class="memproto">
 3545:       <table class="memname">
 3546:         <tr>
 3547:           <td class="memname">DLLIMPORT int __export cfg_setbool </td>
 3548:           <td>(</td>
 3549:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3550:           <td class="paramname"><em>cfg</em>, </td>
 3551:         </tr>
 3552:         <tr>
 3553:           <td class="paramkey"></td>
 3554:           <td></td>
 3555:           <td class="paramtype">const char *&#160;</td>
 3556:           <td class="paramname"><em>name</em>, </td>
 3557:         </tr>
 3558:         <tr>
 3559:           <td class="paramkey"></td>
 3560:           <td></td>
 3561:           <td class="paramtype"><a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a>&#160;</td>
 3562:           <td class="paramname"><em>value</em>&#160;</td>
 3563:         </tr>
 3564:         <tr>
 3565:           <td></td>
 3566:           <td>)</td>
 3567:           <td></td><td></td>
 3568:         </tr>
 3569:       </table>
 3570: </div><div class="memdoc">
 3571: 
 3572: <p>Set the value of a boolean option given its name. </p>
 3573: <dl class="params"><dt>Parameters</dt><dd>
 3574:   <table class="params">
 3575:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3576:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3577:     <tr><td class="paramname">value</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>
 3578:   </table>
 3579:   </dd>
 3580: </dl>
 3581: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3582: 
 3583: </div>
 3584: </div>
 3585: <a id="abac8ca33706dd89c4eb6677cee9cfffc"></a>
 3586: <h2 class="memtitle"><span class="permalink"><a href="#abac8ca33706dd89c4eb6677cee9cfffc">&#9670;&nbsp;</a></span>cfg_setcomment()</h2>
 3587: 
 3588: <div class="memitem">
 3589: <div class="memproto">
 3590:       <table class="memname">
 3591:         <tr>
 3592:           <td class="memname">DLLIMPORT int __export cfg_setcomment </td>
 3593:           <td>(</td>
 3594:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3595:           <td class="paramname"><em>cfg</em>, </td>
 3596:         </tr>
 3597:         <tr>
 3598:           <td class="paramkey"></td>
 3599:           <td></td>
 3600:           <td class="paramtype">const char *&#160;</td>
 3601:           <td class="paramname"><em>name</em>, </td>
 3602:         </tr>
 3603:         <tr>
 3604:           <td class="paramkey"></td>
 3605:           <td></td>
 3606:           <td class="paramtype">char *&#160;</td>
 3607:           <td class="paramname"><em>comment</em>&#160;</td>
 3608:         </tr>
 3609:         <tr>
 3610:           <td></td>
 3611:           <td>)</td>
 3612:           <td></td><td></td>
 3613:         </tr>
 3614:       </table>
 3615: </div><div class="memdoc">
 3616: 
 3617: <p>Annotate an option given its name. </p>
 3618: <p>All options can be annotated as long as the CFGF_COMMENTS flag is given to <a class="el" href="confuse_8h.html#aec07794916564c8ab437e030ac618aa8" title="Create and initialize a cfg_t structure.">cfg_init()</a>.</p>
 3619: <p>When calling <a class="el" href="confuse_8h.html#ac3343e32da22758f76ec50627316c708" title="Print the options and values to a file.">cfg_print()</a>, annotations are saved as a C style one-liner comment before each option.</p>
 3620: <p>When calling <a class="el" href="confuse_8h.html#a0fca327466956c5580199e24397d49fe" title="Parse a configuration file.">cfg_parse()</a>, only one-liner comments preceding an option are read and used to annotate the option.</p>
 3621: <dl class="params"><dt>Parameters</dt><dd>
 3622:   <table class="params">
 3623:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3624:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3625:     <tr><td class="paramname">comment</td><td>The annotation</td></tr>
 3626:   </table>
 3627:   </dd>
 3628: </dl>
 3629: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. This function will fail if memory for the new comment cannot be allocated. </dd></dl>
 3630: 
 3631: </div>
 3632: </div>
 3633: <a id="a03b0983a0c6643722e8e1837ccedad3f"></a>
 3634: <h2 class="memtitle"><span class="permalink"><a href="#a03b0983a0c6643722e8e1837ccedad3f">&#9670;&nbsp;</a></span>cfg_setfloat()</h2>
 3635: 
 3636: <div class="memitem">
 3637: <div class="memproto">
 3638:       <table class="memname">
 3639:         <tr>
 3640:           <td class="memname">DLLIMPORT int __export cfg_setfloat </td>
 3641:           <td>(</td>
 3642:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3643:           <td class="paramname"><em>cfg</em>, </td>
 3644:         </tr>
 3645:         <tr>
 3646:           <td class="paramkey"></td>
 3647:           <td></td>
 3648:           <td class="paramtype">const char *&#160;</td>
 3649:           <td class="paramname"><em>name</em>, </td>
 3650:         </tr>
 3651:         <tr>
 3652:           <td class="paramkey"></td>
 3653:           <td></td>
 3654:           <td class="paramtype">double&#160;</td>
 3655:           <td class="paramname"><em>value</em>&#160;</td>
 3656:         </tr>
 3657:         <tr>
 3658:           <td></td>
 3659:           <td>)</td>
 3660:           <td></td><td></td>
 3661:         </tr>
 3662:       </table>
 3663: </div><div class="memdoc">
 3664: 
 3665: <p>Set the value of a floating point option given its name. </p>
 3666: <dl class="params"><dt>Parameters</dt><dd>
 3667:   <table class="params">
 3668:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3669:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3670:     <tr><td class="paramname">value</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>
 3671:   </table>
 3672:   </dd>
 3673: </dl>
 3674: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3675: 
 3676: </div>
 3677: </div>
 3678: <a id="a25a64a7417e5240c3c04f02d61f986cf"></a>
 3679: <h2 class="memtitle"><span class="permalink"><a href="#a25a64a7417e5240c3c04f02d61f986cf">&#9670;&nbsp;</a></span>cfg_setint()</h2>
 3680: 
 3681: <div class="memitem">
 3682: <div class="memproto">
 3683:       <table class="memname">
 3684:         <tr>
 3685:           <td class="memname">DLLIMPORT int __export cfg_setint </td>
 3686:           <td>(</td>
 3687:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3688:           <td class="paramname"><em>cfg</em>, </td>
 3689:         </tr>
 3690:         <tr>
 3691:           <td class="paramkey"></td>
 3692:           <td></td>
 3693:           <td class="paramtype">const char *&#160;</td>
 3694:           <td class="paramname"><em>name</em>, </td>
 3695:         </tr>
 3696:         <tr>
 3697:           <td class="paramkey"></td>
 3698:           <td></td>
 3699:           <td class="paramtype">long int&#160;</td>
 3700:           <td class="paramname"><em>value</em>&#160;</td>
 3701:         </tr>
 3702:         <tr>
 3703:           <td></td>
 3704:           <td>)</td>
 3705:           <td></td><td></td>
 3706:         </tr>
 3707:       </table>
 3708: </div><div class="memdoc">
 3709: 
 3710: <p>Set the value of an integer option given its name. </p>
 3711: <dl class="params"><dt>Parameters</dt><dd>
 3712:   <table class="params">
 3713:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3714:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3715:     <tr><td class="paramname">value</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>
 3716:   </table>
 3717:   </dd>
 3718: </dl>
 3719: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3720: 
 3721: </div>
 3722: </div>
 3723: <a id="a90f555ffb45e3a19d7d97e67d037d4df"></a>
 3724: <h2 class="memtitle"><span class="permalink"><a href="#a90f555ffb45e3a19d7d97e67d037d4df">&#9670;&nbsp;</a></span>cfg_setlist()</h2>
 3725: 
 3726: <div class="memitem">
 3727: <div class="memproto">
 3728:       <table class="memname">
 3729:         <tr>
 3730:           <td class="memname">DLLIMPORT int __export cfg_setlist </td>
 3731:           <td>(</td>
 3732:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3733:           <td class="paramname"><em>cfg</em>, </td>
 3734:         </tr>
 3735:         <tr>
 3736:           <td class="paramkey"></td>
 3737:           <td></td>
 3738:           <td class="paramtype">const char *&#160;</td>
 3739:           <td class="paramname"><em>name</em>, </td>
 3740:         </tr>
 3741:         <tr>
 3742:           <td class="paramkey"></td>
 3743:           <td></td>
 3744:           <td class="paramtype">unsigned int&#160;</td>
 3745:           <td class="paramname"><em>nvalues</em>, </td>
 3746:         </tr>
 3747:         <tr>
 3748:           <td class="paramkey"></td>
 3749:           <td></td>
 3750:           <td class="paramtype">&#160;</td>
 3751:           <td class="paramname"><em>...</em>&#160;</td>
 3752:         </tr>
 3753:         <tr>
 3754:           <td></td>
 3755:           <td>)</td>
 3756:           <td></td><td></td>
 3757:         </tr>
 3758:       </table>
 3759: </div><div class="memdoc">
 3760: 
 3761: <p>Set values for a list option. </p>
 3762: <p>All existing values are replaced with the new ones.</p>
 3763: <dl class="params"><dt>Parameters</dt><dd>
 3764:   <table class="params">
 3765:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3766:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3767:     <tr><td class="paramname">nvalues</td><td>Number of values to set. </td></tr>
 3768:     <tr><td class="paramname">...</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>
 3769:   </table>
 3770:   </dd>
 3771: </dl>
 3772: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3773: 
 3774: </div>
 3775: </div>
 3776: <a id="a20987aeb026ea918735c03acf6ead85e"></a>
 3777: <h2 class="memtitle"><span class="permalink"><a href="#a20987aeb026ea918735c03acf6ead85e">&#9670;&nbsp;</a></span>cfg_setmulti()</h2>
 3778: 
 3779: <div class="memitem">
 3780: <div class="memproto">
 3781:       <table class="memname">
 3782:         <tr>
 3783:           <td class="memname">DLLIMPORT int cfg_setmulti </td>
 3784:           <td>(</td>
 3785:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3786:           <td class="paramname"><em>cfg</em>, </td>
 3787:         </tr>
 3788:         <tr>
 3789:           <td class="paramkey"></td>
 3790:           <td></td>
 3791:           <td class="paramtype">const char *&#160;</td>
 3792:           <td class="paramname"><em>name</em>, </td>
 3793:         </tr>
 3794:         <tr>
 3795:           <td class="paramkey"></td>
 3796:           <td></td>
 3797:           <td class="paramtype">unsigned int&#160;</td>
 3798:           <td class="paramname"><em>nvalues</em>, </td>
 3799:         </tr>
 3800:         <tr>
 3801:           <td class="paramkey"></td>
 3802:           <td></td>
 3803:           <td class="paramtype">char **&#160;</td>
 3804:           <td class="paramname"><em>values</em>&#160;</td>
 3805:         </tr>
 3806:         <tr>
 3807:           <td></td>
 3808:           <td>)</td>
 3809:           <td></td><td></td>
 3810:         </tr>
 3811:       </table>
 3812: </div><div class="memdoc">
 3813: 
 3814: <p>Set an option (create an instance of an option). </p>
 3815: <dl class="params"><dt>Parameters</dt><dd>
 3816:   <table class="params">
 3817:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3818:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3819:     <tr><td class="paramname">nvalues</td><td>The number of values to set for the option. </td></tr>
 3820:     <tr><td class="paramname">values</td><td>The value(s) for the option.</td></tr>
 3821:   </table>
 3822:   </dd>
 3823: </dl>
 3824: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3825: 
 3826: </div>
 3827: </div>
 3828: <a id="ab5876855b472ddb22a15690355ed7181"></a>
 3829: <h2 class="memtitle"><span class="permalink"><a href="#ab5876855b472ddb22a15690355ed7181">&#9670;&nbsp;</a></span>cfg_setnbool()</h2>
 3830: 
 3831: <div class="memitem">
 3832: <div class="memproto">
 3833:       <table class="memname">
 3834:         <tr>
 3835:           <td class="memname">DLLIMPORT int __export cfg_setnbool </td>
 3836:           <td>(</td>
 3837:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3838:           <td class="paramname"><em>cfg</em>, </td>
 3839:         </tr>
 3840:         <tr>
 3841:           <td class="paramkey"></td>
 3842:           <td></td>
 3843:           <td class="paramtype">const char *&#160;</td>
 3844:           <td class="paramname"><em>name</em>, </td>
 3845:         </tr>
 3846:         <tr>
 3847:           <td class="paramkey"></td>
 3848:           <td></td>
 3849:           <td class="paramtype"><a class="el" href="confuse_8h.html#a4bce4b6aed9b07489d6a5c70321907e4">cfg_bool_t</a>&#160;</td>
 3850:           <td class="paramname"><em>value</em>, </td>
 3851:         </tr>
 3852:         <tr>
 3853:           <td class="paramkey"></td>
 3854:           <td></td>
 3855:           <td class="paramtype">unsigned int&#160;</td>
 3856:           <td class="paramname"><em>index</em>&#160;</td>
 3857:         </tr>
 3858:         <tr>
 3859:           <td></td>
 3860:           <td>)</td>
 3861:           <td></td><td></td>
 3862:         </tr>
 3863:       </table>
 3864: </div><div class="memdoc">
 3865: 
 3866: <p>Set a value of a boolean option given its name and index. </p>
 3867: <dl class="params"><dt>Parameters</dt><dd>
 3868:   <table class="params">
 3869:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3870:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3871:     <tr><td class="paramname">value</td><td>The value to set. </td></tr>
 3872:     <tr><td class="paramname">index</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>
 3873:   </table>
 3874:   </dd>
 3875: </dl>
 3876: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3877: 
 3878: </div>
 3879: </div>
 3880: <a id="a786306f8401e0c39ed7de25055a3cf0b"></a>
 3881: <h2 class="memtitle"><span class="permalink"><a href="#a786306f8401e0c39ed7de25055a3cf0b">&#9670;&nbsp;</a></span>cfg_setnfloat()</h2>
 3882: 
 3883: <div class="memitem">
 3884: <div class="memproto">
 3885:       <table class="memname">
 3886:         <tr>
 3887:           <td class="memname">DLLIMPORT int __export cfg_setnfloat </td>
 3888:           <td>(</td>
 3889:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3890:           <td class="paramname"><em>cfg</em>, </td>
 3891:         </tr>
 3892:         <tr>
 3893:           <td class="paramkey"></td>
 3894:           <td></td>
 3895:           <td class="paramtype">const char *&#160;</td>
 3896:           <td class="paramname"><em>name</em>, </td>
 3897:         </tr>
 3898:         <tr>
 3899:           <td class="paramkey"></td>
 3900:           <td></td>
 3901:           <td class="paramtype">double&#160;</td>
 3902:           <td class="paramname"><em>value</em>, </td>
 3903:         </tr>
 3904:         <tr>
 3905:           <td class="paramkey"></td>
 3906:           <td></td>
 3907:           <td class="paramtype">unsigned int&#160;</td>
 3908:           <td class="paramname"><em>index</em>&#160;</td>
 3909:         </tr>
 3910:         <tr>
 3911:           <td></td>
 3912:           <td>)</td>
 3913:           <td></td><td></td>
 3914:         </tr>
 3915:       </table>
 3916: </div><div class="memdoc">
 3917: 
 3918: <p>Set a value of a floating point option given its name and index. </p>
 3919: <dl class="params"><dt>Parameters</dt><dd>
 3920:   <table class="params">
 3921:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3922:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3923:     <tr><td class="paramname">value</td><td>The value to set. </td></tr>
 3924:     <tr><td class="paramname">index</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>
 3925:   </table>
 3926:   </dd>
 3927: </dl>
 3928: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3929: 
 3930: </div>
 3931: </div>
 3932: <a id="a39f3ad12a4218d6e3b9dec0c1e0031bb"></a>
 3933: <h2 class="memtitle"><span class="permalink"><a href="#a39f3ad12a4218d6e3b9dec0c1e0031bb">&#9670;&nbsp;</a></span>cfg_setnint()</h2>
 3934: 
 3935: <div class="memitem">
 3936: <div class="memproto">
 3937:       <table class="memname">
 3938:         <tr>
 3939:           <td class="memname">DLLIMPORT int __export cfg_setnint </td>
 3940:           <td>(</td>
 3941:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3942:           <td class="paramname"><em>cfg</em>, </td>
 3943:         </tr>
 3944:         <tr>
 3945:           <td class="paramkey"></td>
 3946:           <td></td>
 3947:           <td class="paramtype">const char *&#160;</td>
 3948:           <td class="paramname"><em>name</em>, </td>
 3949:         </tr>
 3950:         <tr>
 3951:           <td class="paramkey"></td>
 3952:           <td></td>
 3953:           <td class="paramtype">long int&#160;</td>
 3954:           <td class="paramname"><em>value</em>, </td>
 3955:         </tr>
 3956:         <tr>
 3957:           <td class="paramkey"></td>
 3958:           <td></td>
 3959:           <td class="paramtype">unsigned int&#160;</td>
 3960:           <td class="paramname"><em>index</em>&#160;</td>
 3961:         </tr>
 3962:         <tr>
 3963:           <td></td>
 3964:           <td>)</td>
 3965:           <td></td><td></td>
 3966:         </tr>
 3967:       </table>
 3968: </div><div class="memdoc">
 3969: 
 3970: <p>Set a value of an integer option given its name and index. </p>
 3971: <dl class="params"><dt>Parameters</dt><dd>
 3972:   <table class="params">
 3973:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 3974:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 3975:     <tr><td class="paramname">value</td><td>The value to set. </td></tr>
 3976:     <tr><td class="paramname">index</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>
 3977:   </table>
 3978:   </dd>
 3979: </dl>
 3980: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 3981: 
 3982: </div>
 3983: </div>
 3984: <a id="a652c523d7a1acb6380a0dbd42704dc35"></a>
 3985: <h2 class="memtitle"><span class="permalink"><a href="#a652c523d7a1acb6380a0dbd42704dc35">&#9670;&nbsp;</a></span>cfg_setnstr()</h2>
 3986: 
 3987: <div class="memitem">
 3988: <div class="memproto">
 3989:       <table class="memname">
 3990:         <tr>
 3991:           <td class="memname">DLLIMPORT int __export cfg_setnstr </td>
 3992:           <td>(</td>
 3993:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 3994:           <td class="paramname"><em>cfg</em>, </td>
 3995:         </tr>
 3996:         <tr>
 3997:           <td class="paramkey"></td>
 3998:           <td></td>
 3999:           <td class="paramtype">const char *&#160;</td>
 4000:           <td class="paramname"><em>name</em>, </td>
 4001:         </tr>
 4002:         <tr>
 4003:           <td class="paramkey"></td>
 4004:           <td></td>
 4005:           <td class="paramtype">const char *&#160;</td>
 4006:           <td class="paramname"><em>value</em>, </td>
 4007:         </tr>
 4008:         <tr>
 4009:           <td class="paramkey"></td>
 4010:           <td></td>
 4011:           <td class="paramtype">unsigned int&#160;</td>
 4012:           <td class="paramname"><em>index</em>&#160;</td>
 4013:         </tr>
 4014:         <tr>
 4015:           <td></td>
 4016:           <td>)</td>
 4017:           <td></td><td></td>
 4018:         </tr>
 4019:       </table>
 4020: </div><div class="memdoc">
 4021: 
 4022: <p>Set a value of a boolean option given its name and index. </p>
 4023: <dl class="params"><dt>Parameters</dt><dd>
 4024:   <table class="params">
 4025:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 4026:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 4027:     <tr><td class="paramname">value</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>
 4028:     <tr><td class="paramname">index</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>
 4029:   </table>
 4030:   </dd>
 4031: </dl>
 4032: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 4033: 
 4034: </div>
 4035: </div>
 4036: <a id="a6f4ffe9c0b2bc43692647197495946f0"></a>
 4037: <h2 class="memtitle"><span class="permalink"><a href="#a6f4ffe9c0b2bc43692647197495946f0">&#9670;&nbsp;</a></span>cfg_setopt()</h2>
 4038: 
 4039: <div class="memitem">
 4040: <div class="memproto">
 4041:       <table class="memname">
 4042:         <tr>
 4043:           <td class="memname">DLLIMPORT <a class="el" href="unioncfg__value__t.html">cfg_value_t</a>* cfg_setopt </td>
 4044:           <td>(</td>
 4045:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 4046:           <td class="paramname"><em>cfg</em>, </td>
 4047:         </tr>
 4048:         <tr>
 4049:           <td class="paramkey"></td>
 4050:           <td></td>
 4051:           <td class="paramtype"><a class="el" href="structcfg__opt__t.html">cfg_opt_t</a> *&#160;</td>
 4052:           <td class="paramname"><em>opt</em>, </td>
 4053:         </tr>
 4054:         <tr>
 4055:           <td class="paramkey"></td>
 4056:           <td></td>
 4057:           <td class="paramtype">const char *&#160;</td>
 4058:           <td class="paramname"><em>value</em>&#160;</td>
 4059:         </tr>
 4060:         <tr>
 4061:           <td></td>
 4062:           <td>)</td>
 4063:           <td></td><td></td>
 4064:         </tr>
 4065:       </table>
 4066: </div><div class="memdoc">
 4067: 
 4068: <p>Set an option (create an instance of an option). </p>
 4069: <dl class="params"><dt>Parameters</dt><dd>
 4070:   <table class="params">
 4071:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 4072:     <tr><td class="paramname">opt</td><td>The option definition. </td></tr>
 4073:     <tr><td class="paramname">value</td><td>The initial value for the option.</td></tr>
 4074:   </table>
 4075:   </dd>
 4076: </dl>
 4077: <dl class="section return"><dt>Returns</dt><dd>Returns a pointer to the value object. </dd></dl>
 4078: 
 4079: </div>
 4080: </div>
 4081: <a id="a523a5eec449362eee5a0d2709645c35b"></a>
 4082: <h2 class="memtitle"><span class="permalink"><a href="#a523a5eec449362eee5a0d2709645c35b">&#9670;&nbsp;</a></span>cfg_setstr()</h2>
 4083: 
 4084: <div class="memitem">
 4085: <div class="memproto">
 4086:       <table class="memname">
 4087:         <tr>
 4088:           <td class="memname">DLLIMPORT int __export cfg_setstr </td>
 4089:           <td>(</td>
 4090:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 4091:           <td class="paramname"><em>cfg</em>, </td>
 4092:         </tr>
 4093:         <tr>
 4094:           <td class="paramkey"></td>
 4095:           <td></td>
 4096:           <td class="paramtype">const char *&#160;</td>
 4097:           <td class="paramname"><em>name</em>, </td>
 4098:         </tr>
 4099:         <tr>
 4100:           <td class="paramkey"></td>
 4101:           <td></td>
 4102:           <td class="paramtype">const char *&#160;</td>
 4103:           <td class="paramname"><em>value</em>&#160;</td>
 4104:         </tr>
 4105:         <tr>
 4106:           <td></td>
 4107:           <td>)</td>
 4108:           <td></td><td></td>
 4109:         </tr>
 4110:       </table>
 4111: </div><div class="memdoc">
 4112: 
 4113: <p>Set the value of a string option given its name. </p>
 4114: <dl class="params"><dt>Parameters</dt><dd>
 4115:   <table class="params">
 4116:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 4117:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 4118:     <tr><td class="paramname">value</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>
 4119:   </table>
 4120:   </dd>
 4121: </dl>
 4122: <dl class="section return"><dt>Returns</dt><dd>POSIX OK(0), or non-zero on failure. </dd></dl>
 4123: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="simple_8c-example.html#a9">simple.c</a>.</dd>
 4124: </dl>
 4125: 
 4126: </div>
 4127: </div>
 4128: <a id="acb8b2b9aa7d9e2e3c0eca67ea27bed15"></a>
 4129: <h2 class="memtitle"><span class="permalink"><a href="#acb8b2b9aa7d9e2e3c0eca67ea27bed15">&#9670;&nbsp;</a></span>cfg_size()</h2>
 4130: 
 4131: <div class="memitem">
 4132: <div class="memproto">
 4133:       <table class="memname">
 4134:         <tr>
 4135:           <td class="memname">DLLIMPORT unsigned int __export cfg_size </td>
 4136:           <td>(</td>
 4137:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 4138:           <td class="paramname"><em>cfg</em>, </td>
 4139:         </tr>
 4140:         <tr>
 4141:           <td class="paramkey"></td>
 4142:           <td></td>
 4143:           <td class="paramtype">const char *&#160;</td>
 4144:           <td class="paramname"><em>name</em>&#160;</td>
 4145:         </tr>
 4146:         <tr>
 4147:           <td></td>
 4148:           <td>)</td>
 4149:           <td></td><td></td>
 4150:         </tr>
 4151:       </table>
 4152: </div><div class="memdoc">
 4153: 
 4154: <p>Return the number of values this option has. </p>
 4155: <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>
 4156: <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>
 4157: <dl class="params"><dt>Parameters</dt><dd>
 4158:   <table class="params">
 4159:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 4160:     <tr><td class="paramname">name</td><td>The name of the option. </td></tr>
 4161:   </table>
 4162:   </dd>
 4163: </dl>
 4164: <dl class="section examples"><dt>Examples</dt><dd><a class="el" href="ftpconf_8c-example.html#a8">ftpconf.c</a>, and <a class="el" href="reread_8c-example.html#a15">reread.c</a>.</dd>
 4165: </dl>
 4166: 
 4167: </div>
 4168: </div>
 4169: <a id="accd838b44797a5a89dbfd3ab60203375"></a>
 4170: <h2 class="memtitle"><span class="permalink"><a href="#accd838b44797a5a89dbfd3ab60203375">&#9670;&nbsp;</a></span>cfg_tilde_expand()</h2>
 4171: 
 4172: <div class="memitem">
 4173: <div class="memproto">
 4174:       <table class="memname">
 4175:         <tr>
 4176:           <td class="memname">DLLIMPORT char* __export cfg_tilde_expand </td>
 4177:           <td>(</td>
 4178:           <td class="paramtype">const char *&#160;</td>
 4179:           <td class="paramname"><em>filename</em></td><td>)</td>
 4180:           <td></td>
 4181:         </tr>
 4182:       </table>
 4183: </div><div class="memdoc">
 4184: 
 4185: <p>Does tilde expansion (~ -&gt; $HOME) on the filename. </p>
 4186: <dl class="section return"><dt>Returns</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>
 4187: 
 4188: </div>
 4189: </div>
 4190: <a id="ac51f9e62688527872e38faf308603fff"></a>
 4191: <h2 class="memtitle"><span class="permalink"><a href="#ac51f9e62688527872e38faf308603fff">&#9670;&nbsp;</a></span>cfg_title()</h2>
 4192: 
 4193: <div class="memitem">
 4194: <div class="memproto">
 4195:       <table class="memname">
 4196:         <tr>
 4197:           <td class="memname">const DLLIMPORT char* __export cfg_title </td>
 4198:           <td>(</td>
 4199:           <td class="paramtype"><a class="el" href="structcfg__t.html">cfg_t</a> *&#160;</td>
 4200:           <td class="paramname"><em>cfg</em></td><td>)</td>
 4201:           <td></td>
 4202:         </tr>
 4203:       </table>
 4204: </div><div class="memdoc">
 4205: 
 4206: <p>Return the title of a section. </p>
 4207: <dl class="params"><dt>Parameters</dt><dd>
 4208:   <table class="params">
 4209:     <tr><td class="paramname">cfg</td><td>The configuration file context. </td></tr>
 4210:   </table>
 4211:   </dd>
 4212: </dl>
 4213: <dl class="section return"><dt>Returns</dt><dd>Returns the title, or 0 if there is no title. This string should not be modified. </dd></dl>
 4214: 
 4215: </div>
 4216: </div>
 4217: </div><!-- contents -->
 4218: <!-- start footer part -->
 4219: <hr class="footer"/><address class="footer"><small>
 4220: Generated by &#160;<a href="http://www.doxygen.org/index.html">
 4221: <img class="footer" src="doxygen.png" alt="doxygen"/>
 4222: </a> 1.8.17
 4223: </small></address>
 4224: </body>
 4225: </html>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>