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