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>
9
<body text="#000000" bgcolor="#ffffff">
13
<!-- Generated by Doxygen 1.5.1 -->
14
<h1>iniparser.h File Reference</h1>Parser for ini files. <a href="#_details">More...</a>
16
<table border="0" cellpadding="0" cellspacing="0">
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
60
<tr><td class="mdescLeft"> </td><td class="mdescRight">Free all memory associated to an ini dictionary. <a href="#90549ee518523921886b74454ff872eb"></a><br></td></tr>
62
<hr><a name="_details"></a><h2>Detailed Description</h2>
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>
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)" -->
72
<div class="memproto">
73
<table class="memname">
75
<td class="memname">void iniparser_dump </td>
77
<td class="paramtype">dictionary * </td>
78
<td class="paramname"> <em>d</em>, </td>
81
<td class="paramkey"></td>
83
<td class="paramtype">FILE * </td>
84
<td class="paramname"> <em>f</em></td><td> </td>
89
<td></td><td></td><td width="100%"></td>
96
Dump a dictionary to an opened file pointer.
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>
104
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void</dd></dl>
105
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.
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">
113
<td class="memname">void iniparser_dump_ini </td>
115
<td class="paramtype">dictionary * </td>
116
<td class="paramname"> <em>d</em>, </td>
119
<td class="paramkey"></td>
121
<td class="paramtype">FILE * </td>
122
<td class="paramname"> <em>f</em></td><td> </td>
127
<td></td><td></td><td width="100%"></td>
134
Save a dictionary to a loadable ini file.
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>
142
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void</dd></dl>
143
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.
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">
151
<td class="memname">int iniparser_find_entry </td>
153
<td class="paramtype">dictionary * </td>
154
<td class="paramname"> <em>ini</em>, </td>
157
<td class="paramkey"></td>
159
<td class="paramtype">char * </td>
160
<td class="paramname"> <em>entry</em></td><td> </td>
165
<td></td><td></td><td width="100%"></td>
172
Finds out if a given entry exists in a dictionary.
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>
180
<dl class="return" compact><dt><b>Returns:</b></dt><dd>integer 1 if entry exists, 0 otherwise</dd></dl>
181
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.
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">
189
<td class="memname">void iniparser_freedict </td>
191
<td class="paramtype">dictionary * </td>
192
<td class="paramname"> <em>d</em> </td>
193
<td> ) </td>
194
<td width="100%"></td>
201
Free all memory associated to an ini dictionary.
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>
208
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void</dd></dl>
209
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.
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">
217
<td class="memname">int iniparser_getboolean </td>
219
<td class="paramtype">dictionary * </td>
220
<td class="paramname"> <em>d</em>, </td>
223
<td class="paramkey"></td>
225
<td class="paramtype">const char * </td>
226
<td class="paramname"> <em>key</em>, </td>
229
<td class="paramkey"></td>
231
<td class="paramtype">int </td>
232
<td class="paramname"> <em>notfound</em></td><td> </td>
237
<td></td><td></td><td width="100%"></td>
244
Get the string associated to a key, convert to a boolean.
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>
253
<dl class="return" compact><dt><b>Returns:</b></dt><dd>integer</dd></dl>
254
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>
255
A true boolean is found if one of the following is matched:<p>
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>
259
A false boolean is found if one of the following is matched:<p>
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>
263
The notfound value returned if no boolean is identified, does not necessarily have to be 0 or 1.
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">
271
<td class="memname">double iniparser_getdouble </td>
273
<td class="paramtype">dictionary * </td>
274
<td class="paramname"> <em>d</em>, </td>
277
<td class="paramkey"></td>
279
<td class="paramtype">char * </td>
280
<td class="paramname"> <em>key</em>, </td>
283
<td class="paramkey"></td>
285
<td class="paramtype">double </td>
286
<td class="paramname"> <em>notfound</em></td><td> </td>
291
<td></td><td></td><td width="100%"></td>
298
Get the string associated to a key, convert to a double.
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>
307
<dl class="return" compact><dt><b>Returns:</b></dt><dd>double</dd></dl>
308
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.
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">
316
<td class="memname">int iniparser_getint </td>
318
<td class="paramtype">dictionary * </td>
319
<td class="paramname"> <em>d</em>, </td>
322
<td class="paramkey"></td>
324
<td class="paramtype">const char * </td>
325
<td class="paramname"> <em>key</em>, </td>
328
<td class="paramkey"></td>
330
<td class="paramtype">int </td>
331
<td class="paramname"> <em>notfound</em></td><td> </td>
336
<td></td><td></td><td width="100%"></td>
343
Get the string associated to a key, convert to an int.
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>
352
<dl class="return" compact><dt><b>Returns:</b></dt><dd>integer</dd></dl>
353
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>
354
Supported values for integers include the usual C notation so decimal, octal (starting with 0) and hexadecimal (starting with 0x) are supported. Examples:<p>
356
<li>"42" -> 42</li><li>"042" -> 34 (octal -> decimal)</li><li>"0x42" -> 66 (hexa -> decimal)</li></ul>
358
Warning: the conversion may overflow in various ways. Conversion is totally outsourced to strtol(), see the associated man page for overflow handling.<p>
359
Credits: Thanks to A. Becker for suggesting strtol()
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">
367
<td class="memname">int iniparser_getnsec </td>
369
<td class="paramtype">dictionary * </td>
370
<td class="paramname"> <em>d</em> </td>
371
<td> ) </td>
372
<td width="100%"></td>
379
Get number of sections in a dictionary.
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>
386
<dl class="return" compact><dt><b>Returns:</b></dt><dd>int Number of sections found in dictionary</dd></dl>
387
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>
388
This clearly fails in the case a section name contains a colon, but this should simply be avoided.<p>
389
This function returns -1 in case of error.
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">
397
<td class="memname">char* iniparser_getsecname </td>
399
<td class="paramtype">dictionary * </td>
400
<td class="paramname"> <em>d</em>, </td>
403
<td class="paramkey"></td>
405
<td class="paramtype">int </td>
406
<td class="paramname"> <em>n</em></td><td> </td>
411
<td></td><td></td><td width="100%"></td>
418
Get name for section n in a dictionary.
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>
426
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to char string</dd></dl>
427
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>
428
This function returns NULL in case of error.
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">
436
<td class="memname">char* iniparser_getstr </td>
438
<td class="paramtype">dictionary * </td>
439
<td class="paramname"> <em>d</em>, </td>
442
<td class="paramkey"></td>
444
<td class="paramtype">const char * </td>
445
<td class="paramname"> <em>key</em></td><td> </td>
450
<td></td><td></td><td width="100%"></td>
457
Get the string associated to a key, return NULL if not found.
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>
465
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to statically allocated character string, or NULL.</dd></dl>
466
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>
467
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">iniparser_getstring()</a> instead.
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">
475
<td class="memname">char* iniparser_getstring </td>
477
<td class="paramtype">dictionary * </td>
478
<td class="paramname"> <em>d</em>, </td>
481
<td class="paramkey"></td>
483
<td class="paramtype">const char * </td>
484
<td class="paramname"> <em>key</em>, </td>
487
<td class="paramkey"></td>
489
<td class="paramtype">char * </td>
490
<td class="paramname"> <em>def</em></td><td> </td>
495
<td></td><td></td><td width="100%"></td>
502
Get the string associated to a key.
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>
511
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to statically allocated character string</dd></dl>
512
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.
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">
520
<td class="memname">dictionary* iniparser_load </td>
522
<td class="paramtype">const char * </td>
523
<td class="paramname"> <em>ininame</em> </td>
524
<td> ) </td>
525
<td width="100%"></td>
532
Parse an ini file and return an allocated dictionary object.
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>
539
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Pointer to newly allocated dictionary</dd></dl>
540
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>
541
The returned dictionary must be freed using <a class="el" href="iniparser_8h.html#90549ee518523921886b74454ff872eb">iniparser_freedict()</a>.
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">
549
<td class="memname">int iniparser_setstr </td>
551
<td class="paramtype">dictionary * </td>
552
<td class="paramname"> <em>ini</em>, </td>
555
<td class="paramkey"></td>
557
<td class="paramtype">char * </td>
558
<td class="paramname"> <em>entry</em>, </td>
561
<td class="paramkey"></td>
563
<td class="paramtype">char * </td>
564
<td class="paramname"> <em>val</em></td><td> </td>
569
<td></td><td></td><td width="100%"></td>
576
Set an entry in a dictionary.
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>
585
<dl class="return" compact><dt><b>Returns:</b></dt><dd>int 0 if Ok, -1 otherwise.</dd></dl>
586
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.
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">
594
<td class="memname">void iniparser_unset </td>
596
<td class="paramtype">dictionary * </td>
597
<td class="paramname"> <em>ini</em>, </td>
600
<td class="paramkey"></td>
602
<td class="paramtype">char * </td>
603
<td class="paramname"> <em>entry</em></td><td> </td>
608
<td></td><td></td><td width="100%"></td>
615
Delete an entry in a dictionary.
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>
623
<dl class="return" compact><dt><b>Returns:</b></dt><dd>void</dd></dl>
624
If the given entry can be found, it is deleted from the dictionary.