annotate th_config.h @ 144:51eec969b07a

Update copyrights.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 01 Jan 2015 09:22:08 +0200
parents aa2d608fb3f3
children b4e1b15a64e1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 /*
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
2 * Very simple configuration file handling
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 * Programmed and designed by Matti 'ccr' Hamalainen
144
51eec969b07a Update copyrights.
Matti Hamalainen <ccr@tnsp.org>
parents: 129
diff changeset
4 * (C) Copyright 2004-2015 Tecnic Software productions (TNSP)
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 *
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 * Please read file 'COPYING' for information on license and distribution.
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 */
49
598609fb49b0 Change how "config.h" is included, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 22
diff changeset
8 #ifndef TH_CONFIG_H
598609fb49b0 Change how "config.h" is included, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 22
diff changeset
9 #define TH_CONFIG_H
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11 #ifdef __cplusplus
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 extern "C" {
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 #endif
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14
70
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
15 #include "th_ioctx.h"
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
17
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
18 /* Definitions
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19 */
69
28156333ef4c Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 66
diff changeset
20 enum ITEM_TYPE
28156333ef4c Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 66
diff changeset
21 {
16
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
22 ITEM_SECTION = 1,
11
e467b3586e4d Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 10
diff changeset
23 ITEM_COMMENT,
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
24 ITEM_STRING,
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
25 ITEM_INT,
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
26 ITEM_UINT,
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
27 ITEM_BOOL,
11
e467b3586e4d Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 10
diff changeset
28 ITEM_FLOAT,
16
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
29 ITEM_HEX_TRIPLET,
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
30
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
31 ITEM_STRING_LIST,
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
32 ITEM_HEX_TRIPLET_LIST
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
33 };
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
34
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35
70
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
36 typedef struct _th_cfgitem_t
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
37 {
15
Matti Hamalainen <ccr@tnsp.org>
parents: 11
diff changeset
38 int type;
11
e467b3586e4d Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 10
diff changeset
39 char *name;
15
Matti Hamalainen <ccr@tnsp.org>
parents: 11
diff changeset
40 union {
Matti Hamalainen <ccr@tnsp.org>
parents: 11
diff changeset
41 int *val_int;
Matti Hamalainen <ccr@tnsp.org>
parents: 11
diff changeset
42 unsigned int *val_uint;
16
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
43 char **val_str;
15
Matti Hamalainen <ccr@tnsp.org>
parents: 11
diff changeset
44 BOOL *val_bool;
16
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
45
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
46 void *data;
Matti Hamalainen <ccr@tnsp.org>
parents: 15
diff changeset
47 qlist_t **list;
70
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
48 struct _th_cfgitem_t *section;
22
1ac2449c4df7 ISO C99 compatibility fixes.
Matti Hamalainen <ccr@tnsp.org>
parents: 16
diff changeset
49 } v;
11
e467b3586e4d Cleanups.
Matti Hamalainen <ccr@tnsp.org>
parents: 10
diff changeset
50
70
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
51 struct _th_cfgitem_t *next, *prev;
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
52 } th_cfgitem_t;
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 3
diff changeset
55 /* Functions
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 */
70
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
57 int th_cfg_read(th_ioctx_t *, th_cfgitem_t *);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
58 void th_cfg_free(th_cfgitem_t *);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
59 int th_cfg_write(th_ioctx_t *, const th_cfgitem_t *);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
60
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
61 int th_cfg_add_section(th_cfgitem_t **cfg, const char *name, th_cfgitem_t *data);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
62 int th_cfg_add_comment(th_cfgitem_t **cfg, const char *comment);
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
63
70
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
64 int th_cfg_add_int(th_cfgitem_t **cfg, const char *name, int *data, int itemDef);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
65 int th_cfg_add_uint(th_cfgitem_t **cfg, const char *name, unsigned int *data, unsigned int itemDef);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
66 int th_cfg_add_string(th_cfgitem_t **cfg, const char *name, char **data, char *itemDef);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
67 int th_cfg_add_bool(th_cfgitem_t **cfg, const char *name, BOOL *data, BOOL itemDef);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
68 int th_cfg_add_float(th_cfgitem_t **cfg, const char *name, float *data, float itemDef);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
69 int th_cfg_add_hexvalue(th_cfgitem_t **cfg, const char *name, int *data, int itemDef);
a0e1b29be35d Refactor configuration file handling module rather thoroughly. The API is
Matti Hamalainen <ccr@tnsp.org>
parents: 69
diff changeset
70 int th_cfg_add_string_list(th_cfgitem_t **cfg, const char *name, qlist_t **list);
15
Matti Hamalainen <ccr@tnsp.org>
parents: 11
diff changeset
71
83
50006067bcd1 Add new function, th_cfg_find().
Matti Hamalainen <ccr@tnsp.org>
parents: 70
diff changeset
72 th_cfgitem_t *th_cfg_find(th_cfgitem_t *cfg, const char *section, const char *name, const int type);
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74 #ifdef __cplusplus
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
75 }
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 #endif
129
aa2d608fb3f3 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 83
diff changeset
77 #endif // TH_CONFIG_H