--- libaitcfg/src/parse.c 2012/07/30 10:45:16 1.8.4.2 +++ libaitcfg/src/parse.c 2012/07/30 11:23:09 1.8.4.3 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: parse.c,v 1.8.4.2 2012/07/30 10:45:16 misho Exp $ +* $Id: parse.c,v 1.8.4.3 2012/07/30 11:23:09 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -361,13 +361,12 @@ cfgReadLines(FILE *f, const char *delim, const char *e char line[BUFSIZ]; struct tagCfg *av = NULL; char *psAttr, *psVal = NULL; - int ret; while (!feof(f)) { memset(line, 0, sizeof line); fgets(line, sizeof line - 1, f); /* check for user end-of-file */ - if (!strspn(line, end)) + if (strspn(line, end)) break; if (!(psAttr = strpbrk(line, "\r\n"))) { @@ -380,9 +379,12 @@ cfgReadLines(FILE *f, const char *delim, const char *e continue; } - ret = io_MakeAV2((char**) &line, delim, psAttr, psVal); - io_LTrimStr(psVal); - io_RTrimStr(psAttr); + if (!io_MakeAV2(line, delim, &psAttr, &psVal)) + continue; + else { + io_LTrimStr(psVal); + io_RTrimStr(psAttr); + } /* *NEW PAIR* alloc new pair element */ av = io_malloc(sizeof(struct tagCfg)); @@ -396,7 +398,8 @@ cfgReadLines(FILE *f, const char *delim, const char *e CFG_RC_UNLOCK(cfg); } - AIT_SET_STR(&av->cfg_val, psVal ? psVal : ""); + if (psVal) + AIT_SET_STR(&av->cfg_val, psVal); AIT_SET_STR(&av->cfg_attr, psAttr); AIT_KEY(&av->cfg_attr) = crcFletcher16(AIT_GET_LIKE(&av->cfg_attr, u_short*), io_align(AIT_LEN(&av->cfg_attr) - 1, 1) / 2);