--- libaitcfg/src/queue.c 2012/04/02 16:00:00 1.6.4.4 +++ libaitcfg/src/queue.c 2012/04/02 16:11:13 1.6.4.5 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: queue.c,v 1.6.4.4 2012/04/02 16:00:00 misho Exp $ +* $Id: queue.c,v 1.6.4.5 2012/04/02 16:11:13 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -63,16 +63,6 @@ _selectAttribute(cfg_root_t * __restrict cfg, const ch AIT_KEY(&fav.cfg_attr) = crcFletcher16((u_short*) csAttr, io_align(strlen(csAttr), 1) / 2); - /* - struct tagCfg *av; - - RB_FOREACH(av, tagRC, cfg) { - printf("sec=%s(%d) attr=%s(%d) val=%s\n", AIT_GET_LIKE(&av->cfg_sec, char*), AIT_KEY(&av->cfg_sec), - AIT_GET_LIKE(&av->cfg_attr, char*), AIT_KEY(&av->cfg_attr), AIT_GET_STR(&av->cfg_val)); - } - - printf("ssss=%d aaaa=%d\n", AIT_KEY(&fav.cfg_sec), AIT_KEY(&fav.cfg_attr)); - */ if (!csAttr) return RB_NFIND(tagRC, cfg, &fav); else @@ -87,7 +77,7 @@ _destroyAttribute(struct tagCfg *av) } -// ---------------------------------------------- +/* --------------------------------------------------------------- */ /* * cfg_findAttribute() - Find attribute position in config file @@ -171,7 +161,7 @@ cfg_setAttribute(cfg_root_t * __restrict cfg, const ch { struct tagCfg *av, *section; - if (!cfg || !csAttr || !csVal) + if (!cfg || !csAttr) return -1; av = _selectAttribute(cfg, csSec, csAttr); @@ -199,7 +189,7 @@ cfg_setAttribute(cfg_root_t * __restrict cfg, const ch AIT_KEY(&av->cfg_sec) = crcFletcher16(AIT_GET_LIKE(&av->cfg_sec, u_short*), io_align(AIT_LEN(&av->cfg_sec) - 1, 1) / 2); } - AIT_SET_STR(&av->cfg_val, csVal); + AIT_SET_STR(&av->cfg_val, csVal ? csVal : ""); AIT_SET_STR(&av->cfg_attr, csAttr); AIT_KEY(&av->cfg_attr) = crcFletcher16(AIT_GET_LIKE(&av->cfg_attr, u_short*), io_align(AIT_LEN(&av->cfg_attr) - 1, 1) / 2); @@ -210,7 +200,7 @@ cfg_setAttribute(cfg_root_t * __restrict cfg, const ch return 2; } - if (strcmp((char*) csVal, (char*) AIT_GET_STR(&av->cfg_val))) { + if (csVal && strcmp((char*) csVal, (char*) AIT_GET_STR(&av->cfg_val))) { /* Update element */ AIT_FREE_VAL(&av->cfg_val); AIT_SET_STR(&av->cfg_val, csVal);