annotate cfgparser.h @ 150:2f3e01a1fd87

cfgparse fixes
author szabii
date Mon, 19 Mar 2001 01:49:44 +0000
parents 0a0d7dd8fb51
children 9708d4b2765b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
147
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
1 /*
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
2 * command line and config file parser
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
3 */
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
4
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
5 #ifndef __CONFIG_H
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
6 #define __CONFIG_H
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
7
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
8 #define CONF_TYPE_FLAG 0
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
9 #define CONF_TYPE_INT 1
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
10 #define CONF_TYPE_FLOAT 2
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
11 #define CONF_TYPE_STRING 3
150
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
12 #define CONF_TYPE_FUNC 4
147
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
13
150
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
14 #define CONF_CHK_MIN (1<<0)
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
15 #define CONF_CHK_MAX (1<<1)
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
16 #define CONF_FUNC_PARAM (1<<2)
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
17 #define CONF_NOCFG (1<<3)
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
18 #define CONF_NOCMD (1<<4)
147
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
19
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
20 struct config {
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
21 char *name;
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
22 void *p;
150
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
23 unsigned int type :3;
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
24 unsigned int flags:5;
147
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
25 float min,max;
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
26 };
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
27
150
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
28 typedef int (*cfg_func_param_t)(struct config *, char *);
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
29 typedef int (*cfg_func_t)(struct config *);
2f3e01a1fd87 cfgparse fixes
szabii
parents: 147
diff changeset
30
147
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
31 /* parse_config_file returns:
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
32 * -1 on error (can't malloc, invalid option...)
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
33 * 0 if can't open configfile
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
34 * 1 on success
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
35 */
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
36 int parse_config_file(struct config *conf, char *conffile);
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
37
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
38 /* parse_command_line reutrns:
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
39 * -1 on error (invalid option...)
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
40 * 0 if there was no filename on command line
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
41 * 1 if it found a filename
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
42 */
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
43 int parse_command_line(struct config *conf, int argc, char **argv, char **envp, char **filename);
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
44
0a0d7dd8fb51 new command line/config file parser
szabii
parents:
diff changeset
45 #endif /* __CONFIG_H */