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<title>iniparser: iniparser.h File Reference</title> 6<link href="tabs.css" rel="stylesheet" type="text/css"/> 7<link href="doxygen.css" rel="stylesheet" type="text/css"/> 8</head> 9<body> 10<!-- Generated by Doxygen 1.6.3 --> 11<div class="contents"> 12<h1>iniparser.h File Reference</h1> 13<p>Parser for ini files. 14<a href="#_details">More...</a></p> 15<table border="0" cellpadding="0" cellspacing="0"> 16<tr><td colspan="2"><h2>Functions</h2></td></tr> 17<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#a0b5d6cdc7587e2d27a30f5cdc4a91931">iniparser_getnsec</a> (dictionary *d)</td></tr> 18<tr><td class="mdescLeft"> </td><td class="mdescRight">Get number of sections in a dictionary. <a href="#a0b5d6cdc7587e2d27a30f5cdc4a91931"></a><br/></td></tr> 19<tr><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#a393212be805f395bbfdeb1bafa8bb72a">iniparser_getsecname</a> (dictionary *d, int n)</td></tr> 20<tr><td class="mdescLeft"> </td><td class="mdescRight">Get name for section n in a dictionary. <a href="#a393212be805f395bbfdeb1bafa8bb72a"></a><br/></td></tr> 21<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#aece0e32de371c9e9592d8333f816dfac">iniparser_dump_ini</a> (dictionary *d, FILE *f)</td></tr> 22<tr><td class="mdescLeft"> </td><td class="mdescRight">Save a dictionary to a loadable ini file. <a href="#aece0e32de371c9e9592d8333f816dfac"></a><br/></td></tr> 23<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#a046436b3489cd8854ba8e29109250324">iniparser_dump</a> (dictionary *d, FILE *f)</td></tr> 24<tr><td class="mdescLeft"> </td><td class="mdescRight">Dump a dictionary to an opened file pointer. <a href="#a046436b3489cd8854ba8e29109250324"></a><br/></td></tr> 25<tr><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#aec2e5539bc2be063d1323cdf65f162a3">iniparser_getstring</a> (dictionary *d, char *key, char *def)</td></tr> 26<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the string associated to a key. <a href="#aec2e5539bc2be063d1323cdf65f162a3"></a><br/></td></tr> 27<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#ab813340fa9c9a7fcfe6775d6e5e458c2">iniparser_getint</a> (dictionary *d, char *key, int notfound)</td></tr> 28<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the string associated to a key, convert to an int. <a href="#ab813340fa9c9a7fcfe6775d6e5e458c2"></a><br/></td></tr> 29<tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#a480d35322f1252344cf2246ac21ee559">iniparser_getdouble</a> (dictionary *d, char *key, double notfound)</td></tr> 30<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the string associated to a key, convert to a double. <a href="#a480d35322f1252344cf2246ac21ee559"></a><br/></td></tr> 31<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#aa2ea2b34f6f4b3cf93c9d4f8f992811f">iniparser_getboolean</a> (dictionary *d, char *key, int notfound)</td></tr> 32<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the string associated to a key, convert to a boolean. <a href="#aa2ea2b34f6f4b3cf93c9d4f8f992811f"></a><br/></td></tr> 33<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#aa5d5787f96d6982a937edb2fd499ba60">iniparser_set</a> (dictionary *ini, char *entry, char *val)</td></tr> 34<tr><td class="mdescLeft"> </td><td class="mdescRight">Set an entry in a dictionary. <a href="#aa5d5787f96d6982a937edb2fd499ba60"></a><br/></td></tr> 35<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#a7b1a7f2492a35043867fa801b8f21e52">iniparser_unset</a> (dictionary *ini, char *entry)</td></tr> 36<tr><td class="mdescLeft"> </td><td class="mdescRight">Delete an entry in a dictionary. <a href="#a7b1a7f2492a35043867fa801b8f21e52"></a><br/></td></tr> 37<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#a3d67c98bbc0cb5239f024ad54bdc63f1">iniparser_find_entry</a> (dictionary *ini, char *entry)</td></tr> 38<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds out if a given entry exists in a dictionary. <a href="#a3d67c98bbc0cb5239f024ad54bdc63f1"></a><br/></td></tr> 39<tr><td class="memItemLeft" align="right" valign="top">dictionary * </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#a45d87791d4d2593781bfdfe2991c3a2d">iniparser_load</a> (char *ininame)</td></tr> 40<tr><td class="mdescLeft"> </td><td class="mdescRight">Parse an ini file and return an allocated dictionary object. <a href="#a45d87791d4d2593781bfdfe2991c3a2d"></a><br/></td></tr> 41<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="iniparser_8h.html#a90549ee518523921886b74454ff872eb">iniparser_freedict</a> (dictionary *d)</td></tr> 42<tr><td class="mdescLeft"> </td><td class="mdescRight">Free all memory associated to an ini dictionary. <a href="#a90549ee518523921886b74454ff872eb"></a><br/></td></tr> 43</table> 44<hr/><a name="_details"></a><h2>Detailed Description</h2> 45<p>Parser for ini files. </p> 46<dl class="author"><dt><b>Author:</b></dt><dd>N. Devillard </dd></dl> 47<dl class="date"><dt><b>Date:</b></dt><dd>Sep 2007 </dd></dl> 48<dl class="version"><dt><b>Version:</b></dt><dd>3.0 </dd></dl> 49<hr/><h2>Function Documentation</h2> 50<a class="anchor" id="a046436b3489cd8854ba8e29109250324"></a><!-- doxytag: member="iniparser.h::iniparser_dump" ref="a046436b3489cd8854ba8e29109250324" args="(dictionary *d, FILE *f)" --> 51<div class="memitem"> 52<div class="memproto"> 53 <table class="memname"> 54 <tr> 55 <td class="memname">void iniparser_dump </td> 56 <td>(</td> 57 <td class="paramtype">dictionary * </td> 58 <td class="paramname"> <em>d</em>, </td> 59 </tr> 60 <tr> 61 <td class="paramkey"></td> 62 <td></td> 63 <td class="paramtype">FILE * </td> 64 <td class="paramname"> <em>f</em></td><td> </td> 65 </tr> 66 <tr> 67 <td></td> 68 <td>)</td> 69 <td></td><td></td><td></td> 70 </tr> 71 </table> 72</div> 73<div class="memdoc"> 74 75<p>Dump a dictionary to an opened file pointer. </p> 76<dl><dt><b>Parameters:</b></dt><dd> 77 <table border="0" cellspacing="2" cellpadding="0"> 78 <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to dump. </td></tr> 79 <tr><td valign="top"></td><td valign="top"><em>f</em> </td><td>Opened file pointer to dump to. </td></tr> 80 </table> 81 </dd> 82</dl> 83<dl class="return"><dt><b>Returns:</b></dt><dd>void</dd></dl> 84<p>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. </p> 85 86</div> 87</div> 88<a class="anchor" id="aece0e32de371c9e9592d8333f816dfac"></a><!-- doxytag: member="iniparser.h::iniparser_dump_ini" ref="aece0e32de371c9e9592d8333f816dfac" args="(dictionary *d, FILE *f)" --> 89<div class="memitem"> 90<div class="memproto"> 91 <table class="memname"> 92 <tr> 93 <td class="memname">void iniparser_dump_ini </td> 94 <td>(</td> 95 <td class="paramtype">dictionary * </td> 96 <td class="paramname"> <em>d</em>, </td> 97 </tr> 98 <tr> 99 <td class="paramkey"></td> 100 <td></td> 101 <td class="paramtype">FILE * </td> 102 <td class="paramname"> <em>f</em></td><td> </td> 103 </tr> 104 <tr> 105 <td></td> 106 <td>)</td> 107 <td></td><td></td><td></td> 108 </tr> 109 </table> 110</div> 111<div class="memdoc"> 112 113<p>Save a dictionary to a loadable ini file. </p> 114<dl><dt><b>Parameters:</b></dt><dd> 115 <table border="0" cellspacing="2" cellpadding="0"> 116 <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to dump </td></tr> 117 <tr><td valign="top"></td><td valign="top"><em>f</em> </td><td>Opened file pointer to dump to </td></tr> 118 </table> 119 </dd> 120</dl> 121<dl class="return"><dt><b>Returns:</b></dt><dd>void</dd></dl> 122<p>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. </p> 123 124</div> 125</div> 126<a class="anchor" id="a3d67c98bbc0cb5239f024ad54bdc63f1"></a><!-- doxytag: member="iniparser.h::iniparser_find_entry" ref="a3d67c98bbc0cb5239f024ad54bdc63f1" args="(dictionary *ini, char *entry)" --> 127<div class="memitem"> 128<div class="memproto"> 129 <table class="memname"> 130 <tr> 131 <td class="memname">int iniparser_find_entry </td> 132 <td>(</td> 133 <td class="paramtype">dictionary * </td> 134 <td class="paramname"> <em>ini</em>, </td> 135 </tr> 136 <tr> 137 <td class="paramkey"></td> 138 <td></td> 139 <td class="paramtype">char * </td> 140 <td class="paramname"> <em>entry</em></td><td> </td> 141 </tr> 142 <tr> 143 <td></td> 144 <td>)</td> 145 <td></td><td></td><td></td> 146 </tr> 147 </table> 148</div> 149<div class="memdoc"> 150 151<p>Finds out if a given entry exists in a dictionary. </p> 152<dl><dt><b>Parameters:</b></dt><dd> 153 <table border="0" cellspacing="2" cellpadding="0"> 154 <tr><td valign="top"></td><td valign="top"><em>ini</em> </td><td>Dictionary to search </td></tr> 155 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>Name of the entry to look for </td></tr> 156 </table> 157 </dd> 158</dl> 159<dl class="return"><dt><b>Returns:</b></dt><dd>integer 1 if entry exists, 0 otherwise</dd></dl> 160<p>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. </p> 161 162</div> 163</div> 164<a class="anchor" id="a90549ee518523921886b74454ff872eb"></a><!-- doxytag: member="iniparser.h::iniparser_freedict" ref="a90549ee518523921886b74454ff872eb" args="(dictionary *d)" --> 165<div class="memitem"> 166<div class="memproto"> 167 <table class="memname"> 168 <tr> 169 <td class="memname">void iniparser_freedict </td> 170 <td>(</td> 171 <td class="paramtype">dictionary * </td> 172 <td class="paramname"> <em>d</em></td> 173 <td> ) </td> 174 <td></td> 175 </tr> 176 </table> 177</div> 178<div class="memdoc"> 179 180<p>Free all memory associated to an ini dictionary. </p> 181<dl><dt><b>Parameters:</b></dt><dd> 182 <table border="0" cellspacing="2" cellpadding="0"> 183 <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to free </td></tr> 184 </table> 185 </dd> 186</dl> 187<dl class="return"><dt><b>Returns:</b></dt><dd>void</dd></dl> 188<p>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. </p> 189 190</div> 191</div> 192<a class="anchor" id="aa2ea2b34f6f4b3cf93c9d4f8f992811f"></a><!-- doxytag: member="iniparser.h::iniparser_getboolean" ref="aa2ea2b34f6f4b3cf93c9d4f8f992811f" args="(dictionary *d, char *key, int notfound)" --> 193<div class="memitem"> 194<div class="memproto"> 195 <table class="memname"> 196 <tr> 197 <td class="memname">int iniparser_getboolean </td> 198 <td>(</td> 199 <td class="paramtype">dictionary * </td> 200 <td class="paramname"> <em>d</em>, </td> 201 </tr> 202 <tr> 203 <td class="paramkey"></td> 204 <td></td> 205 <td class="paramtype">char * </td> 206 <td class="paramname"> <em>key</em>, </td> 207 </tr> 208 <tr> 209 <td class="paramkey"></td> 210 <td></td> 211 <td class="paramtype">int </td> 212 <td class="paramname"> <em>notfound</em></td><td> </td> 213 </tr> 214 <tr> 215 <td></td> 216 <td>)</td> 217 <td></td><td></td><td></td> 218 </tr> 219 </table> 220</div> 221<div class="memdoc"> 222 223<p>Get the string associated to a key, convert to a boolean. </p> 224<dl><dt><b>Parameters:</b></dt><dd> 225 <table border="0" cellspacing="2" cellpadding="0"> 226 <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to search </td></tr> 227 <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>Key string to look for </td></tr> 228 <tr><td valign="top"></td><td valign="top"><em>notfound</em> </td><td>Value to return in case of error </td></tr> 229 </table> 230 </dd> 231</dl> 232<dl class="return"><dt><b>Returns:</b></dt><dd>integer</dd></dl> 233<p>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> 234<p>A true boolean is found if one of the following is matched:</p> 235<ul> 236<li>A string starting with 'y'</li> 237<li>A string starting with 'Y'</li> 238<li>A string starting with 't'</li> 239<li>A string starting with 'T'</li> 240<li>A string starting with '1'</li> 241</ul> 242<p>A false boolean is found if one of the following is matched:</p> 243<ul> 244<li>A string starting with 'n'</li> 245<li>A string starting with 'N'</li> 246<li>A string starting with 'f'</li> 247<li>A string starting with 'F'</li> 248<li>A string starting with '0'</li> 249</ul> 250<p>The notfound value returned if no boolean is identified, does not necessarily have to be 0 or 1. </p> 251 252</div> 253</div> 254<a class="anchor" id="a480d35322f1252344cf2246ac21ee559"></a><!-- doxytag: member="iniparser.h::iniparser_getdouble" ref="a480d35322f1252344cf2246ac21ee559" args="(dictionary *d, char *key, double notfound)" --> 255<div class="memitem"> 256<div class="memproto"> 257 <table class="memname"> 258 <tr> 259 <td class="memname">double iniparser_getdouble </td> 260 <td>(</td> 261 <td class="paramtype">dictionary * </td> 262 <td class="paramname"> <em>d</em>, </td> 263 </tr> 264 <tr> 265 <td class="paramkey"></td> 266 <td></td> 267 <td class="paramtype">char * </td> 268 <td class="paramname"> <em>key</em>, </td> 269 </tr> 270 <tr> 271 <td class="paramkey"></td> 272 <td></td> 273 <td class="paramtype">double </td> 274 <td class="paramname"> <em>notfound</em></td><td> </td> 275 </tr> 276 <tr> 277 <td></td> 278 <td>)</td> 279 <td></td><td></td><td></td> 280 </tr> 281 </table> 282</div> 283<div class="memdoc"> 284 285<p>Get the string associated to a key, convert to a double. </p> 286<dl><dt><b>Parameters:</b></dt><dd> 287 <table border="0" cellspacing="2" cellpadding="0"> 288 <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to search </td></tr> 289 <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>Key string to look for </td></tr> 290 <tr><td valign="top"></td><td valign="top"><em>notfound</em> </td><td>Value to return in case of error </td></tr> 291 </table> 292 </dd> 293</dl> 294<dl class="return"><dt><b>Returns:</b></dt><dd>double</dd></dl> 295<p>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> 296 297</div> 298</div> 299<a class="anchor" id="ab813340fa9c9a7fcfe6775d6e5e458c2"></a><!-- doxytag: member="iniparser.h::iniparser_getint" ref="ab813340fa9c9a7fcfe6775d6e5e458c2" args="(dictionary *d, char *key, int notfound)" --> 300<div class="memitem"> 301<div class="memproto"> 302 <table class="memname"> 303 <tr> 304 <td class="memname">int iniparser_getint </td> 305 <td>(</td> 306 <td class="paramtype">dictionary * </td> 307 <td class="paramname"> <em>d</em>, </td> 308 </tr> 309 <tr> 310 <td class="paramkey"></td> 311 <td></td> 312 <td class="paramtype">char * </td> 313 <td class="paramname"> <em>key</em>, </td> 314 </tr> 315 <tr> 316 <td class="paramkey"></td> 317 <td></td> 318 <td class="paramtype">int </td> 319 <td class="paramname"> <em>notfound</em></td><td> </td> 320 </tr> 321 <tr> 322 <td></td> 323 <td>)</td> 324 <td></td><td></td><td></td> 325 </tr> 326 </table> 327</div> 328<div class="memdoc"> 329 330<p>Get the string associated to a key, convert to an int. </p> 331<dl><dt><b>Parameters:</b></dt><dd> 332 <table border="0" cellspacing="2" cellpadding="0"> 333 <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to search </td></tr> 334 <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>Key string to look for </td></tr> 335 <tr><td valign="top"></td><td valign="top"><em>notfound</em> </td><td>Value to return in case of error </td></tr> 336 </table> 337 </dd> 338</dl> 339<dl class="return"><dt><b>Returns:</b></dt><dd>integer</dd></dl> 340<p>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> 341<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> 342<ul> 343<li>"42" -> 42</li> 344<li>"042" -> 34 (octal -> decimal)</li> 345<li>"0x42" -> 66 (hexa -> decimal)</li> 346</ul> 347<p>Warning: the conversion may overflow in various ways. Conversion is totally outsourced to strtol(), see the associated man page for overflow handling.</p> 348<p>Credits: Thanks to A. Becker for suggesting strtol() </p> 349 350</div> 351</div> 352<a class="anchor" id="a0b5d6cdc7587e2d27a30f5cdc4a91931"></a><!-- doxytag: member="iniparser.h::iniparser_getnsec" ref="a0b5d6cdc7587e2d27a30f5cdc4a91931" args="(dictionary *d)" --> 353<div class="memitem"> 354<div class="memproto"> 355 <table class="memname"> 356 <tr> 357 <td class="memname">int iniparser_getnsec </td> 358 <td>(</td> 359 <td class="paramtype">dictionary * </td> 360 <td class="paramname"> <em>d</em></td> 361 <td> ) </td> 362 <td></td> 363 </tr> 364 </table> 365</div> 366<div class="memdoc"> 367 368<p>Get number of sections in a dictionary. </p> 369<dl><dt><b>Parameters:</b></dt><dd> 370 <table border="0" cellspacing="2" cellpadding="0"> 371 <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to examine </td></tr> 372 </table> 373 </dd> 374</dl> 375<dl class="return"><dt><b>Returns:</b></dt><dd>int Number of sections found in dictionary</dd></dl> 376<p>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> 377<p>This clearly fails in the case a section name contains a colon, but this should simply be avoided.</p> 378<p>This function returns -1 in case of error. </p> 379 380</div> 381</div> 382<a class="anchor" id="a393212be805f395bbfdeb1bafa8bb72a"></a><!-- doxytag: member="iniparser.h::iniparser_getsecname" ref="a393212be805f395bbfdeb1bafa8bb72a" args="(dictionary *d, int n)" --> 383<div class="memitem"> 384<div class="memproto"> 385 <table class="memname"> 386 <tr> 387 <td class="memname">char* iniparser_getsecname </td> 388 <td>(</td> 389 <td class="paramtype">dictionary * </td> 390 <td class="paramname"> <em>d</em>, </td> 391 </tr> 392 <tr> 393 <td class="paramkey"></td> 394 <td></td> 395 <td class="paramtype">int </td> 396 <td class="paramname"> <em>n</em></td><td> </td> 397 </tr> 398 <tr> 399 <td></td> 400 <td>)</td> 401 <td></td><td></td><td></td> 402 </tr> 403 </table> 404</div> 405<div class="memdoc"> 406 407<p>Get name for section n in a dictionary. </p> 408<dl><dt><b>Parameters:</b></dt><dd> 409 <table border="0" cellspacing="2" cellpadding="0"> 410 <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to examine </td></tr> 411 <tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>Section number (from 0 to nsec-1). </td></tr> 412 </table> 413 </dd> 414</dl> 415<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to char string</dd></dl> 416<p>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> 417<p>This function returns NULL in case of error. </p> 418 419</div> 420</div> 421<a class="anchor" id="aec2e5539bc2be063d1323cdf65f162a3"></a><!-- doxytag: member="iniparser.h::iniparser_getstring" ref="aec2e5539bc2be063d1323cdf65f162a3" args="(dictionary *d, char *key, char *def)" --> 422<div class="memitem"> 423<div class="memproto"> 424 <table class="memname"> 425 <tr> 426 <td class="memname">char* iniparser_getstring </td> 427 <td>(</td> 428 <td class="paramtype">dictionary * </td> 429 <td class="paramname"> <em>d</em>, </td> 430 </tr> 431 <tr> 432 <td class="paramkey"></td> 433 <td></td> 434 <td class="paramtype">char * </td> 435 <td class="paramname"> <em>key</em>, </td> 436 </tr> 437 <tr> 438 <td class="paramkey"></td> 439 <td></td> 440 <td class="paramtype">char * </td> 441 <td class="paramname"> <em>def</em></td><td> </td> 442 </tr> 443 <tr> 444 <td></td> 445 <td>)</td> 446 <td></td><td></td><td></td> 447 </tr> 448 </table> 449</div> 450<div class="memdoc"> 451 452<p>Get the string associated to a key. </p> 453<dl><dt><b>Parameters:</b></dt><dd> 454 <table border="0" cellspacing="2" cellpadding="0"> 455 <tr><td valign="top"></td><td valign="top"><em>d</em> </td><td>Dictionary to search </td></tr> 456 <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>Key string to look for </td></tr> 457 <tr><td valign="top"></td><td valign="top"><em>def</em> </td><td>Default value to return if key not found. </td></tr> 458 </table> 459 </dd> 460</dl> 461<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to statically allocated character string</dd></dl> 462<p>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. </p> 463 464</div> 465</div> 466<a class="anchor" id="a45d87791d4d2593781bfdfe2991c3a2d"></a><!-- doxytag: member="iniparser.h::iniparser_load" ref="a45d87791d4d2593781bfdfe2991c3a2d" args="(char *ininame)" --> 467<div class="memitem"> 468<div class="memproto"> 469 <table class="memname"> 470 <tr> 471 <td class="memname">dictionary* iniparser_load </td> 472 <td>(</td> 473 <td class="paramtype">char * </td> 474 <td class="paramname"> <em>ininame</em></td> 475 <td> ) </td> 476 <td></td> 477 </tr> 478 </table> 479</div> 480<div class="memdoc"> 481 482<p>Parse an ini file and return an allocated dictionary object. </p> 483<dl><dt><b>Parameters:</b></dt><dd> 484 <table border="0" cellspacing="2" cellpadding="0"> 485 <tr><td valign="top"></td><td valign="top"><em>ininame</em> </td><td>Name of the ini file to read. </td></tr> 486 </table> 487 </dd> 488</dl> 489<dl class="return"><dt><b>Returns:</b></dt><dd>Pointer to newly allocated dictionary</dd></dl> 490<p>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> 491<p>The returned dictionary must be freed using <a class="el" href="iniparser_8h.html#a90549ee518523921886b74454ff872eb" title="Free all memory associated to an ini dictionary.">iniparser_freedict()</a>. </p> 492 493</div> 494</div> 495<a class="anchor" id="aa5d5787f96d6982a937edb2fd499ba60"></a><!-- doxytag: member="iniparser.h::iniparser_set" ref="aa5d5787f96d6982a937edb2fd499ba60" args="(dictionary *ini, char *entry, char *val)" --> 496<div class="memitem"> 497<div class="memproto"> 498 <table class="memname"> 499 <tr> 500 <td class="memname">int iniparser_set </td> 501 <td>(</td> 502 <td class="paramtype">dictionary * </td> 503 <td class="paramname"> <em>ini</em>, </td> 504 </tr> 505 <tr> 506 <td class="paramkey"></td> 507 <td></td> 508 <td class="paramtype">char * </td> 509 <td class="paramname"> <em>entry</em>, </td> 510 </tr> 511 <tr> 512 <td class="paramkey"></td> 513 <td></td> 514 <td class="paramtype">char * </td> 515 <td class="paramname"> <em>val</em></td><td> </td> 516 </tr> 517 <tr> 518 <td></td> 519 <td>)</td> 520 <td></td><td></td><td></td> 521 </tr> 522 </table> 523</div> 524<div class="memdoc"> 525 526<p>Set an entry in a dictionary. </p> 527<dl><dt><b>Parameters:</b></dt><dd> 528 <table border="0" cellspacing="2" cellpadding="0"> 529 <tr><td valign="top"></td><td valign="top"><em>ini</em> </td><td>Dictionary to modify. </td></tr> 530 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>Entry to modify (entry name) </td></tr> 531 <tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>New value to associate to the entry. </td></tr> 532 </table> 533 </dd> 534</dl> 535<dl class="return"><dt><b>Returns:</b></dt><dd>int 0 if Ok, -1 otherwise.</dd></dl> 536<p>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. </p> 537 538</div> 539</div> 540<a class="anchor" id="a7b1a7f2492a35043867fa801b8f21e52"></a><!-- doxytag: member="iniparser.h::iniparser_unset" ref="a7b1a7f2492a35043867fa801b8f21e52" args="(dictionary *ini, char *entry)" --> 541<div class="memitem"> 542<div class="memproto"> 543 <table class="memname"> 544 <tr> 545 <td class="memname">void iniparser_unset </td> 546 <td>(</td> 547 <td class="paramtype">dictionary * </td> 548 <td class="paramname"> <em>ini</em>, </td> 549 </tr> 550 <tr> 551 <td class="paramkey"></td> 552 <td></td> 553 <td class="paramtype">char * </td> 554 <td class="paramname"> <em>entry</em></td><td> </td> 555 </tr> 556 <tr> 557 <td></td> 558 <td>)</td> 559 <td></td><td></td><td></td> 560 </tr> 561 </table> 562</div> 563<div class="memdoc"> 564 565<p>Delete an entry in a dictionary. </p> 566<dl><dt><b>Parameters:</b></dt><dd> 567 <table border="0" cellspacing="2" cellpadding="0"> 568 <tr><td valign="top"></td><td valign="top"><em>ini</em> </td><td>Dictionary to modify </td></tr> 569 <tr><td valign="top"></td><td valign="top"><em>entry</em> </td><td>Entry to delete (entry name) </td></tr> 570 </table> 571 </dd> 572</dl> 573<dl class="return"><dt><b>Returns:</b></dt><dd>void</dd></dl> 574<p>If the given entry can be found, it is deleted from the dictionary. </p> 575 576</div> 577</div> 578</div> 579<hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Mar 2 22:04:59 2011 for iniparser by 580<a href="http://www.doxygen.org/index.html"> 581<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> 582</body> 583</html> 584