~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to source3/iniparser/html/iniparser_8h.html

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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 *&nbsp;</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">&nbsp;</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&nbsp;</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">&nbsp;</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>
 
63
Parser 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 *&nbsp;</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 *&nbsp;</td>
 
84
          <td class="paramname"> <em>f</em></td><td>&nbsp;</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>
 
96
Dump 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>&nbsp;</td><td>Dictionary to dump. </td></tr>
 
101
    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</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>
 
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. 
 
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 *&nbsp;</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 *&nbsp;</td>
 
122
          <td class="paramname"> <em>f</em></td><td>&nbsp;</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>
 
134
Save 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>&nbsp;</td><td>Dictionary to dump </td></tr>
 
139
    <tr><td valign="top"></td><td valign="top"><em>f</em>&nbsp;</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>
 
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. 
 
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 *&nbsp;</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 *&nbsp;</td>
 
160
          <td class="paramname"> <em>entry</em></td><td>&nbsp;</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>
 
172
Finds 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>&nbsp;</td><td>Dictionary to search </td></tr>
 
177
    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</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>
 
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. 
 
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 *&nbsp;</td>
 
192
          <td class="paramname"> <em>d</em>          </td>
 
193
          <td>&nbsp;)&nbsp;</td>
 
194
          <td width="100%"></td>
 
195
        </tr>
 
196
      </table>
 
197
</div>
 
198
<div class="memdoc">
 
199
 
 
200
<p>
 
201
Free 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>&nbsp;</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>
 
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. 
 
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 *&nbsp;</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 *&nbsp;</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&nbsp;</td>
 
232
          <td class="paramname"> <em>notfound</em></td><td>&nbsp;</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>
 
244
Get 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>&nbsp;</td><td>Dictionary to search </td></tr>
 
249
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key string to look for </td></tr>
 
250
    <tr><td valign="top"></td><td valign="top"><em>notfound</em>&nbsp;</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>
 
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>
 
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>
 
259
A 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>
 
263
The 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 *&nbsp;</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 *&nbsp;</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&nbsp;</td>
 
286
          <td class="paramname"> <em>notfound</em></td><td>&nbsp;</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>
 
298
Get 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>&nbsp;</td><td>Dictionary to search </td></tr>
 
303
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key string to look for </td></tr>
 
304
    <tr><td valign="top"></td><td valign="top"><em>notfound</em>&nbsp;</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>
 
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. 
 
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 *&nbsp;</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 *&nbsp;</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&nbsp;</td>
 
331
          <td class="paramname"> <em>notfound</em></td><td>&nbsp;</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>
 
343
Get 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>&nbsp;</td><td>Dictionary to search </td></tr>
 
348
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key string to look for </td></tr>
 
349
    <tr><td valign="top"></td><td valign="top"><em>notfound</em>&nbsp;</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>
 
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>
 
355
<ul>
 
356
<li>"42" -&gt; 42</li><li>"042" -&gt; 34 (octal -&gt; decimal)</li><li>"0x42" -&gt; 66 (hexa -&gt; decimal)</li></ul>
 
357
<p>
 
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() 
 
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 *&nbsp;</td>
 
370
          <td class="paramname"> <em>d</em>          </td>
 
371
          <td>&nbsp;)&nbsp;</td>
 
372
          <td width="100%"></td>
 
373
        </tr>
 
374
      </table>
 
375
</div>
 
376
<div class="memdoc">
 
377
 
 
378
<p>
 
379
Get 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>&nbsp;</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>
 
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. 
 
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 *&nbsp;</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&nbsp;</td>
 
406
          <td class="paramname"> <em>n</em></td><td>&nbsp;</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>
 
418
Get 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>&nbsp;</td><td>Dictionary to examine </td></tr>
 
423
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</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>
 
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. 
 
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 *&nbsp;</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 *&nbsp;</td>
 
445
          <td class="paramname"> <em>key</em></td><td>&nbsp;</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>
 
457
Get 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>&nbsp;</td><td>Dictionary to search </td></tr>
 
462
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</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>
 
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. 
 
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 *&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
 
490
          <td class="paramname"> <em>def</em></td><td>&nbsp;</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>
 
502
Get 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>&nbsp;</td><td>Dictionary to search </td></tr>
 
507
    <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>Key string to look for </td></tr>
 
508
    <tr><td valign="top"></td><td valign="top"><em>def</em>&nbsp;</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>
 
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. 
 
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 *&nbsp;</td>
 
523
          <td class="paramname"> <em>ininame</em>          </td>
 
524
          <td>&nbsp;)&nbsp;</td>
 
525
          <td width="100%"></td>
 
526
        </tr>
 
527
      </table>
 
528
</div>
 
529
<div class="memdoc">
 
530
 
 
531
<p>
 
532
Parse 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>&nbsp;</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>
 
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>. 
 
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 *&nbsp;</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 *&nbsp;</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 *&nbsp;</td>
 
564
          <td class="paramname"> <em>val</em></td><td>&nbsp;</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>
 
576
Set 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>&nbsp;</td><td>Dictionary to modify. </td></tr>
 
581
    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</td><td>Entry to modify (entry name) </td></tr>
 
582
    <tr><td valign="top"></td><td valign="top"><em>val</em>&nbsp;</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>
 
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. 
 
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 *&nbsp;</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 *&nbsp;</td>
 
603
          <td class="paramname"> <em>entry</em></td><td>&nbsp;</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>
 
615
Delete 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>&nbsp;</td><td>Dictionary to modify </td></tr>
 
620
    <tr><td valign="top"></td><td valign="top"><em>entry</em>&nbsp;</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>
 
624
If the given entry can be found, it is deleted from the dictionary. 
 
625
</div>
 
626
</div><p>
 
627
 
 
628
</body>
 
629
</html>