• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
64          <td class="paramname"> <em>f</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to dump. </td></tr>
79    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
102          <td class="paramname"> <em>f</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to dump </td></tr>
117    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
140          <td class="paramname"> <em>entry</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to search </td></tr>
155    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</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 *&nbsp;</td>
172          <td class="paramname"> <em>d</em></td>
173          <td>&nbsp;)&nbsp;</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>&nbsp;</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 *&nbsp;</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 *&nbsp;</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&nbsp;</td>
212          <td class="paramname"> <em>notfound</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to search </td></tr>
227    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key string to look for </td></tr>
228    <tr><td valign="top"></td><td valign="top"><em>notfound</em>&nbsp;</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 *&nbsp;</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 *&nbsp;</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&nbsp;</td>
274          <td class="paramname"> <em>notfound</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to search </td></tr>
289    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key string to look for </td></tr>
290    <tr><td valign="top"></td><td valign="top"><em>notfound</em>&nbsp;</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 *&nbsp;</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 *&nbsp;</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&nbsp;</td>
319          <td class="paramname"> <em>notfound</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to search </td></tr>
334    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key string to look for </td></tr>
335    <tr><td valign="top"></td><td valign="top"><em>notfound</em>&nbsp;</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" -&gt; 42</li>
344<li>"042" -&gt; 34 (octal -&gt; decimal)</li>
345<li>"0x42" -&gt; 66 (hexa -&gt; 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 *&nbsp;</td>
360          <td class="paramname"> <em>d</em></td>
361          <td>&nbsp;)&nbsp;</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>&nbsp;</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 *&nbsp;</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&nbsp;</td>
396          <td class="paramname"> <em>n</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to examine </td></tr>
411    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</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 *&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
441          <td class="paramname"> <em>def</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to search </td></tr>
456    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key string to look for </td></tr>
457    <tr><td valign="top"></td><td valign="top"><em>def</em>&nbsp;</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 *&nbsp;</td>
474          <td class="paramname"> <em>ininame</em></td>
475          <td>&nbsp;)&nbsp;</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>&nbsp;</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 *&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
515          <td class="paramname"> <em>val</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to modify. </td></tr>
530    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>Entry to modify (entry name) </td></tr>
531    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
554          <td class="paramname"> <em>entry</em></td><td>&nbsp;</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>&nbsp;</td><td>Dictionary to modify </td></tr>
569    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</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&nbsp;
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