<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>lomoco: iniparser/src/iniparser.h File Reference</title> <style type="text/css"> .cp-doNotDisplay { display: none; } @media aural, braille, handheld, tty { .cp-doNotDisplay { display: inline; speak: normal; }} .cp-edit { text-align: right; } @media print, embossed { .cp-edit { display: none; }} </style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="MSSmartTagsPreventParsing" content="true" /> <meta name="robots" content="all" /> <link rel="stylesheet" type="text/css" href="doxygen.css" /> <link rel="stylesheet" media="screen" type="text/css" href="csync.css" /> <link rel="stylesheet" media="print, embossed" type="text/css" href="print.css" /> </head> <body> <ul class="cp-doNotDisplay"> <li><a href="#cp-content" accesskey="2">Skip to content</a></li> <li><a href="#cp-menu" accesskey="5">Skip to link menu</a></li> </ul> <div id="container"> <div id="header"> <div id="header_top"><div><div style="padding: 10px 30px;"> <!-- <img alt ="" src="top-kde.jpg"/> --> csync API Reference </div></div></div> <div id="header_bottom"> <div id="location"> <ul> <li><a href="index.html">csync</a></li> </ul> </div> <div id="menu"> <ul><li><a href="http://www.csync.org/">Sitemap</a></li> <li><a href="http://www.csync.org/">Contact Us</a></li> </ul> </div> </div> </div> <!-- End page header --> <div id="body_wrapper"> <div id="body"> <!-- begin main content --> <div id="right"> <div class="content"> <div id="main"> <div class="clearer"> </div> <!-- <h2><a name="content"></a>lomoco</h2> --> <!-- BC --> <!-- Generated by Doxygen 1.5.9 --> <div class="navpath"><a class="el" href="dir_83899319ec122a03d431d68c45b0dd06.html">iniparser</a> » <a class="el" href="dir_78cebf553df91c53d1da58b5e3c2bd5d.html">src</a> </div> <div class="contents"> <h1>iniparser.h File Reference</h1>Parser for ini files. <a href="#_details">More...</a> <p> <code>#include <stdio.h></code><br> <code>#include <stdlib.h></code><br> <code>#include <string.h></code><br> <code>#include "<a class="el" href="dictionary_8h_source.html">dictionary.h</a>"</code><br> <p> <div class="dynheader"> Include dependency graph for iniparser.h:</div> <div class="dynsection"> <p><center><img src="iniparser_8h__incl.png" border="0" usemap="#iniparser/src/iniparser.h_map" alt=""></center> <map name="iniparser/src/iniparser.h_map"> <area shape="rect" id="node9" href="dictionary_8h.html" title="Implements a dictionary for string variables." alt="" coords="208,80,349,107"></map> </div> <p> <a href="iniparser_8h_source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#046436b3489cd8854ba8e29109250324">iniparser_dump</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d, FILE *f)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#ece0e32de371c9e9592d8333f816dfac">iniparser_dump_ini</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d, FILE *f)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#3d67c98bbc0cb5239f024ad54bdc63f1">iniparser_find_entry</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *ini, char *entry)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#90549ee518523921886b74454ff872eb">iniparser_freedict</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#eb93c13fcbb75efaa396f53bfd73ff4d">iniparser_getboolean</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d, const char *key, int notfound)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#480d35322f1252344cf2246ac21ee559">iniparser_getdouble</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d, char *key, double notfound)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#694eb1110f4200db8648820a0bb405fa">iniparser_getint</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d, const char *key, int notfound)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#0b5d6cdc7587e2d27a30f5cdc4a91931">iniparser_getnsec</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#393212be805f395bbfdeb1bafa8bb72a">iniparser_getsecname</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d, int n)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#587eafb48937fdee8ae414ad7a666db8">iniparser_getstr</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d, const char *key)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#7894f8480e1f254d4a1b4a31bdc51b46">iniparser_getstring</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *d, const char *key, char *def)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#b0be559bfb769224b3f1b75e26242a67">iniparser_load</a> (const char *ininame)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#605a88057bac4c3249513fc588421c32">iniparser_setstr</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *ini, char *entry, char *val)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#7b1a7f2492a35043867fa801b8f21e52">iniparser_unset</a> (<a class="el" href="struct__dictionary__.html">dictionary</a> *ini, char *entry)</td></tr> </table> <hr><h2>Detailed Description</h2> Parser for ini files. <p> <dl class="author" compact><dt><b>Author:</b></dt><dd>N. Devillard </dd></dl> <dl class="date" compact><dt><b>Date:</b></dt><dd>Mar 2000 </dd></dl> <dl class="version" compact><dt><b>Version:</b></dt><dd></dd></dl> <dl class="rcs" compact><dt><b>Revision</b></dt><dd>1.23 </dd></dl> <p>Definition in file <a class="el" href="iniparser_8h_source.html">iniparser.h</a>.</p> <hr><h2>Function Documentation</h2> <a class="anchor" name="046436b3489cd8854ba8e29109250324"></a><!-- doxytag: member="iniparser.h::iniparser_dump" ref="046436b3489cd8854ba8e29109250324" args="(dictionary *d, FILE *f)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void iniparser_dump </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">FILE * </td> <td class="paramname"> <em>f</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Dump a dictionary to an opened file pointer. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to dump. </td></tr> <tr><td valign="top"></td><td valign="top"><em>f</em> </td><td>Opened file pointer to dump to. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>void</dd></dl> This function prints out the contents of a dictionary, one element by line, onto the provided file pointer. It is OK to specify <code>stderr</code> or <code>stdout</code> as output files. This function is meant for debugging purposes mostly. </div> </div><p> <a class="anchor" name="ece0e32de371c9e9592d8333f816dfac"></a><!-- doxytag: member="iniparser.h::iniparser_dump_ini" ref="ece0e32de371c9e9592d8333f816dfac" args="(dictionary *d, FILE *f)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void iniparser_dump_ini </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">FILE * </td> <td class="paramname"> <em>f</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Save a dictionary to a loadable ini file. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to dump </td></tr> <tr><td valign="top"></td><td valign="top"><em>f</em> </td><td>Opened file pointer to dump to </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>void</dd></dl> This function dumps a given dictionary into a loadable ini file. It is Ok to specify <code>stderr</code> or <code>stdout</code> as output files. </div> </div><p> <a class="anchor" name="3d67c98bbc0cb5239f024ad54bdc63f1"></a><!-- doxytag: member="iniparser.h::iniparser_find_entry" ref="3d67c98bbc0cb5239f024ad54bdc63f1" args="(dictionary *ini, char *entry)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iniparser_find_entry </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>ini</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>entry</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Finds out if a given entry exists in a dictionary. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ini</em> </td><td>Dictionary to search </td></tr> <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>Name of the entry to look for </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>integer 1 if entry exists, 0 otherwise</dd></dl> Finds out if a given entry exists in the dictionary. Since sections are stored as keys with NULL associated values, this is the only way of querying for the presence of sections in a dictionary. </div> </div><p> <a class="anchor" name="90549ee518523921886b74454ff872eb"></a><!-- doxytag: member="iniparser.h::iniparser_freedict" ref="90549ee518523921886b74454ff872eb" args="(dictionary *d)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void iniparser_freedict </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Free all memory associated to an ini dictionary. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to free </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>void</dd></dl> Free all memory associated to an ini dictionary. It is mandatory to call this function before the dictionary object gets out of the current context. </div> </div><p> <a class="anchor" name="eb93c13fcbb75efaa396f53bfd73ff4d"></a><!-- doxytag: member="iniparser.h::iniparser_getboolean" ref="eb93c13fcbb75efaa396f53bfd73ff4d" args="(dictionary *d, const char *key, int notfound)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iniparser_getboolean </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>notfound</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Get the string associated to a key, convert to a boolean. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to search </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>Key string to look for </td></tr> <tr><td valign="top"></td><td valign="top"><em>notfound</em> </td><td>Value to return in case of error </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>integer</dd></dl> This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the notfound value is returned.<p> A true boolean is found if one of the following is matched:<p> <ul> <li>A string starting with 'y'</li><li>A string starting with 'Y'</li><li>A string starting with 't'</li><li>A string starting with 'T'</li><li>A string starting with '1'</li></ul> <p> A false boolean is found if one of the following is matched:<p> <ul> <li>A string starting with 'n'</li><li>A string starting with 'N'</li><li>A string starting with 'f'</li><li>A string starting with 'F'</li><li>A string starting with '0'</li></ul> <p> The notfound value returned if no boolean is identified, does not necessarily have to be 0 or 1. </div> </div><p> <a class="anchor" name="480d35322f1252344cf2246ac21ee559"></a><!-- doxytag: member="iniparser.h::iniparser_getdouble" ref="480d35322f1252344cf2246ac21ee559" args="(dictionary *d, char *key, double notfound)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">double iniparser_getdouble </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">double </td> <td class="paramname"> <em>notfound</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Get the string associated to a key, convert to a double. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to search </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>Key string to look for </td></tr> <tr><td valign="top"></td><td valign="top"><em>notfound</em> </td><td>Value to return in case of error </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>double</dd></dl> This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the notfound value is returned. </div> </div><p> <a class="anchor" name="694eb1110f4200db8648820a0bb405fa"></a><!-- doxytag: member="iniparser.h::iniparser_getint" ref="694eb1110f4200db8648820a0bb405fa" args="(dictionary *d, const char *key, int notfound)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iniparser_getint </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>notfound</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Get the string associated to a key, convert to an int. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to search </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>Key string to look for </td></tr> <tr><td valign="top"></td><td valign="top"><em>notfound</em> </td><td>Value to return in case of error </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>integer</dd></dl> This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the notfound value is returned.<p> Supported values for integers include the usual C notation so decimal, octal (starting with 0) and hexadecimal (starting with 0x) are supported. Examples:<p> <ul> <li>"42" -> 42</li><li>"042" -> 34 (octal -> decimal)</li><li>"0x42" -> 66 (hexa -> decimal)</li></ul> <p> Warning: the conversion may overflow in various ways. Conversion is totally outsourced to strtol(), see the associated man page for overflow handling.<p> Credits: Thanks to A. Becker for suggesting strtol() </div> </div><p> <a class="anchor" name="0b5d6cdc7587e2d27a30f5cdc4a91931"></a><!-- doxytag: member="iniparser.h::iniparser_getnsec" ref="0b5d6cdc7587e2d27a30f5cdc4a91931" args="(dictionary *d)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iniparser_getnsec </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Get number of sections in a dictionary. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to examine </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>int Number of sections found in dictionary</dd></dl> This function returns the number of sections found in a dictionary. The test to recognize sections is done on the string stored in the dictionary: a section name is given as "section" whereas a key is stored as "section:key", thus the test looks for entries that do not contain a colon.<p> This clearly fails in the case a section name contains a colon, but this should simply be avoided.<p> This function returns -1 in case of error. </div> </div><p> <a class="anchor" name="393212be805f395bbfdeb1bafa8bb72a"></a><!-- doxytag: member="iniparser.h::iniparser_getsecname" ref="393212be805f395bbfdeb1bafa8bb72a" args="(dictionary *d, int n)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* iniparser_getsecname </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>n</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Get name for section n in a dictionary. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to examine </td></tr> <tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>Section number (from 0 to nsec-1). </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to char string</dd></dl> This function locates the n-th section in a dictionary and returns its name as a pointer to a string statically allocated inside the dictionary. Do not free or modify the returned string!<p> This function returns NULL in case of error. </div> </div><p> <a class="anchor" name="587eafb48937fdee8ae414ad7a666db8"></a><!-- doxytag: member="iniparser.h::iniparser_getstr" ref="587eafb48937fdee8ae414ad7a666db8" args="(dictionary *d, const char *key)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* iniparser_getstr </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>key</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Get the string associated to a key, return NULL if not found. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to search </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>Key string to look for </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to statically allocated character string, or NULL.</dd></dl> This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, NULL is returned. The returned char pointer is pointing to a string allocated in the dictionary, do not free or modify it.<p> This function is only provided for backwards compatibility with previous versions of iniparser. It is recommended to use <a class="el" href="iniparser_8h.html#7894f8480e1f254d4a1b4a31bdc51b46" title="Get the string associated to a key.">iniparser_getstring()</a> instead. </div> </div><p> <a class="anchor" name="7894f8480e1f254d4a1b4a31bdc51b46"></a><!-- doxytag: member="iniparser.h::iniparser_getstring" ref="7894f8480e1f254d4a1b4a31bdc51b46" args="(dictionary *d, const char *key, char *def)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* iniparser_getstring </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>d</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>def</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Get the string associated to a key. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to search </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>Key string to look for </td></tr> <tr><td valign="top"></td><td valign="top"><em>def</em> </td><td>Default value to return if key not found. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to statically allocated character string</dd></dl> This function queries a dictionary for a key. A key as read from an ini file is given as "section:key". If the key cannot be found, the pointer passed as 'def' is returned. The returned char pointer is pointing to a string allocated in the dictionary, do not free or modify it. </div> </div><p> <a class="anchor" name="b0be559bfb769224b3f1b75e26242a67"></a><!-- doxytag: member="iniparser.h::iniparser_load" ref="b0be559bfb769224b3f1b75e26242a67" args="(const char *ininame)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="struct__dictionary__.html">dictionary</a>* iniparser_load </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>ininame</em> </td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p> Parse an ini file and return an allocated dictionary object. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ininame</em> </td><td>Name of the ini file to read. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to newly allocated dictionary</dd></dl> This is the parser for ini files. This function is called, providing the name of the file to be read. It returns a dictionary object that should not be accessed directly, but through accessor functions instead.<p> The returned dictionary must be freed using <a class="el" href="iniparser_8h.html#90549ee518523921886b74454ff872eb" title="Free all memory associated to an ini dictionary.">iniparser_freedict()</a>. </div> </div><p> <a class="anchor" name="605a88057bac4c3249513fc588421c32"></a><!-- doxytag: member="iniparser.h::iniparser_setstr" ref="605a88057bac4c3249513fc588421c32" args="(dictionary *ini, char *entry, char *val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int iniparser_setstr </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>ini</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>entry</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>val</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Set an entry in a dictionary. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ini</em> </td><td>Dictionary to modify. </td></tr> <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>Entry to modify (entry name) </td></tr> <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>New value to associate to the entry. </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>int 0 if Ok, -1 otherwise.</dd></dl> If the given entry can be found in the dictionary, it is modified to contain the provided value. If it cannot be found, -1 is returned. It is Ok to set val to NULL. </div> </div><p> <a class="anchor" name="7b1a7f2492a35043867fa801b8f21e52"></a><!-- doxytag: member="iniparser.h::iniparser_unset" ref="7b1a7f2492a35043867fa801b8f21e52" args="(dictionary *ini, char *entry)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void iniparser_unset </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__dictionary__.html">dictionary</a> * </td> <td class="paramname"> <em>ini</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"> <em>entry</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p> Delete an entry in a dictionary. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ini</em> </td><td>Dictionary to modify </td></tr> <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>Entry to delete (entry name) </td></tr> </table> </dl> <dl class="return" compact><dt><b>Returns:</b></dt><dd>void</dd></dl> If the given entry can be found, it is deleted from the dictionary. </div> </div><p> </div> </div> </div> </div> <div id="left"> <div class="menu_box"> <a name="cp-menu" /><div class="menutitle"><div> <h2 id="cp-menu-project">lomoco</h2> <a href="#cp-skip-project" class="cp-doNotDisplay">Skip menu "lomoco"</a> </div></div> <!-- menu --> <div class="menu_box"> <a name="cp-menu" /><div class="menutitle"><div> <h2 id="cp-menu-project">API Documentation</h2> <a href="#cp-skip-project" class="cp-doNotDisplay">Skip menu "@topname@"</a> </div></div> <div class="nav_list"> <ul> <!-- gmenu --> </ul></div></div> </div> </div> <div class="clearer"></div> </div> <div class="clearer"></div> </div> <div id="end_body"></div> <div id="footer"><div id="footer_text"> Generated with <a href="http://www.stack.nl/~dimitri/doxygen/" target="_blank">Doxygen</a> </div></div> </div> </body> </html>