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)); |