Diff for /libaitcfg/src/parse.c between versions 1.20.2.1 and 1.20.2.2

version 1.20.2.1, 2023/01/23 21:03:50 version 1.20.2.2, 2023/01/23 23:24:22
Line 56  SUCH DAMAGE. Line 56  SUCH DAMAGE.
 int  int
 cfgReadConfig(FILE *f, cfg_root_t * __restrict cfg)  cfgReadConfig(FILE *f, cfg_root_t * __restrict cfg)
 {  {
        char line[BUFSIZ], origin[BUFSIZ];        char line[BUFSIZ], origin[BUFSIZ], chkattr[STRSIZ];
         struct tagCfg *av = NULL;          struct tagCfg *av = NULL;
         int flg = 0;          int flg = 0;
         char *psAttr, *psVal, szSection[STRSIZ] = { 0 };          char *psAttr, *psVal, szSection[STRSIZ] = { 0 };
Line 115  cfgReadConfig(FILE *f, cfg_root_t * __restrict cfg) Line 115  cfgReadConfig(FILE *f, cfg_root_t * __restrict cfg)
                         continue;                          continue;
                 }                  }
   
                   /* check for duplicated element */
                   if (*line != '#' && *line != ';' && *line != '/' && *line != '%' && 
                                   (psAttr = strchr(line, '='))) {
                           strncpy(chkattr, line, psAttr - line);
                           chkattr[psAttr - line] = 0;
                           str_RTrim(chkattr);
                           if (cfg_findAttribute(cfg, szSection, chkattr))
                                   cfg_unsetAttribute(cfg, szSection, chkattr);
                   }
   
                 /* *NEW PAIR* alloc new pair element */                  /* *NEW PAIR* alloc new pair element */
                 av = e_malloc(sizeof(struct tagCfg));                  av = e_malloc(sizeof(struct tagCfg));
                 if (!av) {                  if (!av) {
Line 413  cfgMergeConfig(cfg_root_t * __restrict cfg, cfg_root_t Line 423  cfgMergeConfig(cfg_root_t * __restrict cfg, cfg_root_t
                         if (!AIT_ISEMPTY(&merge->cfg_sec) && !AIT_ISEMPTY(&item->cfg_sec) &&                           if (!AIT_ISEMPTY(&merge->cfg_sec) && !AIT_ISEMPTY(&item->cfg_sec) && 
                                         AIT_ADDR(&merge->cfg_sec) && AIT_ADDR(&item->cfg_sec) &&                                          AIT_ADDR(&merge->cfg_sec) && AIT_ADDR(&item->cfg_sec) &&
                                         !strcmp(AIT_GET_STR(&merge->cfg_sec), AIT_GET_STR(&item->cfg_sec))) {                                          !strcmp(AIT_GET_STR(&merge->cfg_sec), AIT_GET_STR(&item->cfg_sec))) {
                                flg = 1;                                flg = -1;
                                 break;                                  break;
                         }                          }
                 }                  }
   
                if (!flg)                switch (flg) {
                        TAILQ_INSERT_TAIL(cfg, item, cfg_next);                        case -1:
                else                                continue;       /* skip duplicated element */
                        TAILQ_INSERT_AFTER(cfg, merge, item, cfg_next);                        case 1:
                                 TAILQ_INSERT_AFTER(cfg, merge, item, cfg_next);
                                 break;
                         case 0:
                                 TAILQ_INSERT_TAIL(cfg, item, cfg_next);
                                 break;
                 }
                 RB_INSERT(tagRC, cfg, item);                  RB_INSERT(tagRC, cfg, item);
         }          }
   
Line 482  cfgReadLines(FILE *f, const char *delim, const char *e Line 498  cfgReadLines(FILE *f, const char *delim, const char *e
                 }                  }
                 if (!av_MakeExt(p, SEC_LINES_DELIM, &psSec, &psAttr))                  if (!av_MakeExt(p, SEC_LINES_DELIM, &psSec, &psAttr))
                         psAttr = p;                          psAttr = p;
   
                   /* check for duplicated element */
                   if (psAttr && cfg_findAttribute(cfg, psSec, psAttr))
                           cfg_unsetAttribute(cfg, psSec, psAttr);
   
                 /* *NEW PAIR* alloc new pair element */                  /* *NEW PAIR* alloc new pair element */
                 av = e_malloc(sizeof(struct tagCfg));                  av = e_malloc(sizeof(struct tagCfg));

Removed from v.1.20.2.1  
changed lines
  Added in v.1.20.2.2


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