1 #include <stdio.h>
2 #include <string.h>
3 #include <dotconf.h>
4
5 static DOTCONF_CB(cb_list);
6 static DOTCONF_CB(cb_str);
7
8 static const configoption_t options[] = {
9 {"ExampleStr", ARG_STR, cb_str, NULL, CTX_ALL},
10 {"ExampleList", ARG_LIST, cb_list, NULL, CTX_ALL},
11 LAST_OPTION
12 };
13
main(int argc,char ** argv)14 int main(int argc, char **argv)
15 {
16 configfile_t *configfile;
17
18 configfile = dotconf_create(argv[1] ? argv[1] : "simple.conf",
19 options, NULL, CASE_INSENSITIVE);
20 if (!configfile) {
21 fprintf(stderr, "Error opening config file\n");
22 return 1;
23 }
24
25 if (dotconf_command_loop(configfile) == 0)
26 fprintf(stderr, "Error reading config file\n");
27
28 dotconf_cleanup(configfile);
29
30 return 0;
31 }
32
DOTCONF_CB(cb_list)33 DOTCONF_CB(cb_list)
34 {
35 int i;
36 printf("%s:%ld: %s: [ ",
37 cmd->configfile->filename, cmd->configfile->line, cmd->name);
38 for (i = 0; i < cmd->arg_count; i++)
39 printf("(%d) %s ", i, cmd->data.list[i]);
40 printf("]\n");
41 return NULL;
42 }
43
DOTCONF_CB(cb_str)44 DOTCONF_CB(cb_str)
45 {
46 printf("%s:%ld: %s: [%s]\n",
47 cmd->configfile->filename, cmd->configfile->line,
48 cmd->name, cmd->data.str);
49 return NULL;
50 }
51
52 /*
53 vim:set ts=4:
54 vim:set shiftwidth=4:
55 */
56