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