Annotation of embedaddon/confuse/examples/addsec.c, revision 1.1
1.1 ! misho 1: #ifdef HAVE_CONFIG_H
! 2: #include <config.h>
! 3: #endif
! 4: #include <errno.h>
! 5: #include <string.h>
! 6: #include <locale.h>
! 7: #ifdef HAVE_UNISTD_H
! 8: #include <unistd.h>
! 9: #endif
! 10: #ifdef HAVE_STDLIB_H
! 11: #include <stdlib.h>
! 12: #endif
! 13: #include "confuse.h"
! 14:
! 15: cfg_t *cfg = NULL;
! 16: const char *config_filename = "./reread.conf";
! 17:
! 18: void read_config(void)
! 19: {
! 20: static cfg_opt_t arg_opts[] = {
! 21: CFG_STR("value", "default", CFGF_NONE),
! 22: CFG_END()
! 23: };
! 24: cfg_opt_t opts[] = {
! 25: CFG_INT("delay", 3, CFGF_NONE),
! 26: CFG_STR("message", "This is a message", CFGF_NONE),
! 27: CFG_SEC("argument", arg_opts, CFGF_MULTI | CFGF_TITLE),
! 28: CFG_END()
! 29: };
! 30:
! 31: cfg = cfg_init(opts, CFGF_NONE);
! 32: if (cfg_parse(cfg, config_filename) != CFG_SUCCESS) {
! 33: fprintf(stderr, "Failed parsing configuration: %s\n", strerror(errno));
! 34: exit(1);
! 35: }
! 36: }
! 37:
! 38: void print_message()
! 39: {
! 40: size_t i;
! 41:
! 42: printf("Message: %s", cfg_getstr(cfg, "message"));
! 43: for (i = 0; i < cfg_size(cfg, "argument"); i++) {
! 44: cfg_t *arg;
! 45:
! 46: arg = cfg_getnsec(cfg, "argument", i);
! 47: if (arg)
! 48: printf(", %s", cfg_getstr(arg, "value"));
! 49: }
! 50: printf("\n");
! 51: }
! 52:
! 53: int main(void)
! 54: {
! 55: cfg_t* sec;
! 56:
! 57: /* Localize messages & types according to environment, since v2.9 */
! 58: #ifdef LC_MESSAGES
! 59: setlocale(LC_MESSAGES, "");
! 60: setlocale(LC_CTYPE, "");
! 61: #endif
! 62:
! 63: read_config();
! 64: print_message();
! 65:
! 66: /* Add a new section */
! 67: sec = cfg_addtsec(cfg, "argument", "two");
! 68: cfg_setstr(sec, "value", "foo");
! 69: print_message();
! 70:
! 71: cfg_free(cfg);
! 72:
! 73: return 0;
! 74:
! 75: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>