Diff for /libaitcfg/example/testcfg.c between versions 1.1 and 1.2

version 1.1, 2021/11/25 22:31:10 version 1.2, 2021/11/26 01:15:03
Line 0 Line 1
   #include <stdio.h>
   #include <unistd.h>
   #include <string.h>
   #include <elwix.h>
   #include <aitcfg.h>
   
   
   int
   main(int argc, char **argv)
   {
           cfg_root_t cfg;
           char ch, *str, *sec, *attr;
           array_t *arr;
           int i, mode = 0;
           struct tagCfg *av;
   
           while ((ch = getopt(argc, argv, "rd")) != -1)
                   switch (ch) {
                           case 'r':
                                   mode = 42;
                                   break;
                           case 'd':
                                   mode = 21;
                                   break;
                           default:
                                   printf("Error:: missing config.\n\ntestcfg [-r] <config> [section/attribute]\n");
                                   return 1;
                   }
           argc -= optind;
           argv += optind;
           if (!argc) {
                   printf("Error:: missing config.\n\ntestcfg [-r] <config> [section/attribute]\n");
                   return 1;
           } else
                   str = argv[1];
   
           if (cfgLoadConfig(argv[0], &cfg)) {
                   ELIBERR(cfg);
                   return 1;
           } else
                   printf("Opened config\n");
   
           if (str) {
                   attr = strchr(argv[1], '/');
                   if (!attr) {
                           attr = str;
                           sec = NULL;
                   } else {
                           *attr++ = 0;
                           sec = str;
                   }
                   if (sec && !*sec)
                           sec = NULL;
                   printf("Section=%s Attribute=%s\n", sec, attr);
   
                   if (attr && *attr)
                           printf("%s = %s\n", attr, cfg_getAttribute(&cfg, sec, attr));
                   else {
                           arr = cfg_getSection(&cfg, sec);
                           if (arr) {
                                   printf("[%s]\n", sec);
                                   for (i = 0; i < array_Size(arr); i++) {
                                           av = array(arr, i, struct tagCfg*);
                                           if (av)
                                                   printf("%s = %s\n", 
                                                                   AIT_ADDR(&av->cfg_attr), 
                                                                   AIT_GET_STR(&av->cfg_val));
                                   }
                                   array_Destroy(&arr);
                           }
                   }
           } else if (!mode)
                   cfgWriteConfig(stdout, &cfg, 1);
           else if (mode == 42)
                   cfgWriteConfigRaw(stdout, &cfg, 1);
           else
                   cfg_dumpCfg(&cfg);
   
           cfgUnloadConfig(&cfg);
           printf("Closed config\n");
   
           printf("Done.\n");
           return 0;
   }

Removed from v.1.1  
changed lines
  Added in v.1.2


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