annotate ini.h @ 142:e3cf5ac9a5aa

[p]array_insert now returns -1 or index of added element
author David Demelier <markand@malikania.fr>
date Tue, 08 May 2012 15:02:17 +0200
parents 07800b7af208
children 0cf53c588a83
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * ini.h -- parse .ini like files
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
97
0321fc3c0972 Update license
David Demelier <markand@malikania.fr>
parents: 96
diff changeset
4 * Copyright (c) 2011, 2012, David Demelier <markand@malikania.fr>
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #ifndef _INI_H_
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
20 #define _INI_H_
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
21
135
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
22 #ifdef __cplusplus
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
23 extern "C" {
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
24 #endif
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
25
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 #define INI_VERBOSE (1 << 0) /* be verbose */
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 #define INI_NOREDEFINE (1 << 1) /* do not allow redefinitions */
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 #define INI_FAILERROR (1 << 2) /* abort parsing on first error */
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
29
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
30 typedef struct ini_config INI_Config;
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
31 typedef struct ini_section INI_Section;
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
32 typedef struct ini_option INI_Option;
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
33 typedef struct ini_handler INI_Handler;
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
34
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
35 typedef void (*INI_ConvertFunc)(void *, const char *, void *);
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
36
142
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
37 #if !defined(LIST_ENTRY)
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
38 #define LIST_ENTRY(type) \
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
39 struct { \
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
40 struct type *le_next; \
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
41 struct type **le_prev; \
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
42 }
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
43 #endif
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
44
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
45 #if !define(LIST_HEAD)
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
46 #define LIST_HEAD(name, type) \
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
47 struct name { \
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
48 struct type *lh_first;
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
49 }
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
50
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
51 /* --------------------------------------------------------
105
eac1f370910a English review (thanks afranke@)
David Demelier <markand@malikania.fr>
parents: 102
diff changeset
52 * Structure definitions
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
53 * -------------------------------------------------------- */
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
54
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
55 struct ini_config {
135
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
56 /*
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
57 * General settings
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
58 */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
59 const char *path; /* (ro) file path */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
60 int flags; /* (ro) optional flags */
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
61
135
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
62 /*
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
63 * Sections that have been parsed
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
64 */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
65 INI_Section *sections; /* (ro) linked-list of sections */
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
66
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
67 /* Private fields */
135
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
68 INI_Section *ic_current; /* current working section */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
69 char *ic_line; /* line buffer */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
70 int ic_lineno; /* number of current line */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
71 int ic_linesize; /* initial line size */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
72 int ic_ignore; /* must ignore (no redefine) */
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
73 };
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
74
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
75 struct ini_option {
135
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
76 char *key; /* (rw) option name */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
77 char *value; /* (rw) option value */
142
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
78
e3cf5ac9a5aa [p]array_insert now returns -1 or index of added element
David Demelier <markand@malikania.fr>
parents: 135
diff changeset
79 LIST_ENTRY(ini_option) link; /* (rw) link entry */
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
80 };
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
81
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
82 struct ini_section {
135
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
83 char *key; /* (rw) section key */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
84 INI_Option *options; /* (ro) linked-list of options */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
85 INI_Section *next; /* (ro) linked-list of sections */
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
86 };
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
87
82
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
88 struct ini_handler {
135
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
89 char *key; /* (rw) option to check */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
90 void *dst; /* (rw) where to store */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
91 INI_ConvertFunc handler; /* (rw) conversion function */
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
92 void *userdata; /* (rw) optional user data */
82
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
93 };
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
94
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
95 /* --------------------------------------------------------
105
eac1f370910a English review (thanks afranke@)
David Demelier <markand@malikania.fr>
parents: 102
diff changeset
96 * Main functions
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 * -------------------------------------------------------- */
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
98
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
99 INI_Config *
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 ini_load(const char *, int);
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
101
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
102 INI_Section *
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
103 ini_select_section(const INI_Config *, const char *);
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
104
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
105 INI_Option *
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
106 ini_select_option(const INI_Section *, const char *);
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
100
85ddc81848bd Add a little helper in ini.c to find an option
David Demelier <markand@malikania.fr>
parents: 97
diff changeset
108 INI_Option *
85ddc81848bd Add a little helper in ini.c to find an option
David Demelier <markand@malikania.fr>
parents: 97
diff changeset
109 ini_find(const INI_Config *, const char *, const char *);
85ddc81848bd Add a little helper in ini.c to find an option
David Demelier <markand@malikania.fr>
parents: 97
diff changeset
110
102
735d6c774f7a Reorder protos in ini.h
David Demelier <markand@malikania.fr>
parents: 100
diff changeset
111 char *
735d6c774f7a Reorder protos in ini.h
David Demelier <markand@malikania.fr>
parents: 100
diff changeset
112 ini_get_error(void);
735d6c774f7a Reorder protos in ini.h
David Demelier <markand@malikania.fr>
parents: 100
diff changeset
113
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
114 void
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
115 ini_free(INI_Config *, int, int);
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
116
82
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
117 /* --------------------------------------------------------
105
eac1f370910a English review (thanks afranke@)
David Demelier <markand@malikania.fr>
parents: 102
diff changeset
118 * Convenient api to query and convert data
82
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
119 * -------------------------------------------------------- */
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
120
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
121 /*
105
eac1f370910a English review (thanks afranke@)
David Demelier <markand@malikania.fr>
parents: 102
diff changeset
122 * For the config, read all available values and store them in
82
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
123 * the array ini_handler.
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
124 */
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
125
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
126 void
96
dcaf2c61c902 Big change in ini, much cleaner and simpler
David Demelier <markand@malikania.fr>
parents: 90
diff changeset
127 ini_dispatch(INI_Section *, INI_Handler *, int);
82
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
128
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
129 /*
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
130 * Convert to bool. dst must be (char *).
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
131 * It converts "yes" "true" "1" or opposites. Only lower
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
132 * case is supported right now.
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
133 */
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
134
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
135 void
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
136 ini_convert_bool(void *, const char *, void *);
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
137
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
138 /*
105
eac1f370910a English review (thanks afranke@)
David Demelier <markand@malikania.fr>
parents: 102
diff changeset
139 * Convert to an int. dst must be (int *).
82
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
140 */
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
141
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
142 void
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
143 ini_convert_int(void *, const char *, void *);
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
144
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
145 /*
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
146 * Convert to a short. dst must be (short *).
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
147 */
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
148
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
149 void
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
150 ini_convert_short(void *, const char *, void *);
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
151
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
152 /*
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
153 * Convert to a char *. dst must be (char **). This
105
eac1f370910a English review (thanks afranke@)
David Demelier <markand@malikania.fr>
parents: 102
diff changeset
154 * function uses strdup(). You need to free the dst
82
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
155 * pointer.
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
156 */
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
157
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
158 void
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
159 ini_convert_string(void *, const char *, void *);
c8bbdbedcf07 Added a little convenient API for ini
David Demelier <markand@malikania.fr>
parents: 81
diff changeset
160
135
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
161 #ifdef __cplusplus
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
162 }
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
163 #endif
07800b7af208 Huge cosmetic, no breakage
David Demelier <markand@malikania.fr>
parents: 105
diff changeset
164
79
fd817a7dbf2f Switched a lot of things in ini
David Demelier <markand@malikania.fr>
parents:
diff changeset
165 #endif /* _INI_H_ */