Annotation of embedaddon/confuse/examples/nested.c, revision 1.1

1.1     ! misho       1: /* Example by Thomas Adam */
        !             2: 
        !             3: #include <confuse.h>
        !             4: #include <stdio.h>
        !             5: #include <string.h>
        !             6: 
        !             7: #define CONF "nested.conf"
        !             8: 
        !             9: int main(void)
        !            10: {
        !            11:        cfg_opt_t group_opts[] = {
        !            12:                CFG_INT("number", 0, CFGF_NONE),
        !            13:                CFG_INT("total", 0, CFGF_NONE),
        !            14:                CFG_END()
        !            15:        };
        !            16:        cfg_opt_t groups_opts[] = {
        !            17:                CFG_STR("name", "Esmé", CFGF_NONE),
        !            18:                CFG_SEC("group", group_opts, CFGF_TITLE | CFGF_MULTI),
        !            19:                CFG_END()
        !            20:        };
        !            21:        cfg_opt_t opts[] = {
        !            22:                CFG_SEC("groups", groups_opts, CFGF_NONE),
        !            23:                CFG_END()
        !            24:        };
        !            25:        cfg_t *cfg, *sec;
        !            26:        size_t i, j;
        !            27: 
        !            28:        cfg = cfg_init(opts, CFGF_NONE);
        !            29:        if (!cfg || cfg_parse(cfg, CONF) == CFG_PARSE_ERROR) {
        !            30:                perror("Failed parsing " CONF);
        !            31:                return 1;
        !            32:        }
        !            33: 
        !            34:        /* Iterate over the sections and print fields from each section. */
        !            35:        for (i = 0; i < cfg_size(cfg, "groups"); i++) {
        !            36:                sec = cfg_getnsec(cfg, "groups", i);
        !            37: 
        !            38:                for (j = 0; j < cfg_size(sec, "group"); j++) {
        !            39:                        cfg_t *opt = cfg_getnsec(sec, "group", j);
        !            40: 
        !            41:                        printf("group title:  '%s'\n", cfg_title(opt));
        !            42:                        printf("group number:  %ld\n", cfg_getint(opt, "number"));
        !            43:                        printf("group total:   %ld\n", cfg_getint(opt, "total"));
        !            44:                        printf("\n");
        !            45:                }
        !            46:        }
        !            47: 
        !            48:        cfg_free(cfg);
        !            49: 
        !            50:        return 0;
        !            51: }
        !            52: 
        !            53: /**
        !            54:  * Local Variables:
        !            55:  *  indent-tabs-mode: t
        !            56:  *  c-file-style: "linux"
        !            57:  * End:
        !            58:  */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>