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.