Add forgotten files 1.4.70b
[polyglot.git] / ini.h
1 // ini.h
2
3 #ifndef INI_H
4 #define INI_H
5
6 // defines
7
8 #define IniEntriesNb 256
9
10 // includes
11
12 #include "option.h"
13
14 // types
15
16 typedef struct {
17     const char *section;
18     const char *name;
19     const char *value;
20     const char *comment;
21 } ini_entry_t;
22
23 typedef struct {
24     ini_entry_t entries[IniEntriesNb];
25     int index;
26     int iter;
27 } ini_t;
28
29 typedef enum {
30     SYNTAX_ERROR,
31     EMPTY_LINE,
32     NAME_VALUE,
33     EMPTY_VALUE,
34     SECTION
35 } line_type_t;
36
37 // functions
38
39 extern void         ini_init              (ini_t *ini);
40 extern void         ini_clear             (ini_t *ini);
41 extern void         ini_copy              (ini_t *dst, ini_t *src);
42 extern int          ini_parse             (ini_t *ini, const char *filename);
43 extern void         ini_disp              (ini_t *ini);
44 extern void         ini_insert            (ini_t *ini, ini_entry_t *entry);
45 extern void         ini_insert_ex         (ini_t *ini,
46                                            const char *section,
47                                            const char *name,
48                                            const char *value);
49 extern void         ini_start_iter        (ini_t *ini);
50 extern ini_entry_t *ini_next              (ini_t *ini);
51 extern ini_entry_t *ini_find              (ini_t *ini,
52                                            const char *section,
53                                            const char *name);
54 extern line_type_t ini_line_parse         (const char *line,
55                                            char *section,
56                                            char *name,
57                                            char *value);
58
59 extern const char * ini_specials;
60
61 #endif // !defined INI_H
62
63 // end of ini.h