Diff for /libaitcfg/src/queue.c between versions 1.7 and 1.10

version 1.7, 2012/04/04 13:11:49 version 1.10, 2012/08/06 14:53:34
Line 49  SUCH DAMAGE. Line 49  SUCH DAMAGE.
 static inline struct tagCfg *  static inline struct tagCfg *
 _selectAttribute(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)  _selectAttribute(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)
 {  {
        struct tagCfg fav;        struct tagCfg fav, *c;
   
         if (!cfg)          if (!cfg)
                 return NULL;                  return NULL;
Line 65  _selectAttribute(cfg_root_t * __restrict cfg, const ch Line 65  _selectAttribute(cfg_root_t * __restrict cfg, const ch
   
         if (!csAttr)          if (!csAttr)
                 return RB_NFIND(tagRC, cfg, &fav);                  return RB_NFIND(tagRC, cfg, &fav);
        else        else {
                return RB_FIND(tagRC, cfg, &fav);                c = RB_FIND(tagRC, cfg, &fav);
                 if (!c)
                         return NULL;    /* not found */
                 do {
                         if (!strcmp(AIT_GET_STR(&c->cfg_attr), csAttr))
                                 return c;       /* FOUND! */
                 } while (RB_NEXT(tagRC, cfg, c) && !cfg_tree_cmp(c, &fav));
                 return NULL;    /* not found */
         }
 }  }
   
 /* --------------------------------------------------------------- */  /* --------------------------------------------------------------- */
Line 135  cfg_unsetAttribute(cfg_root_t * __restrict cfg, const  Line 143  cfg_unsetAttribute(cfg_root_t * __restrict cfg, const 
         AIT_FREE_VAL(&av->cfg_val);          AIT_FREE_VAL(&av->cfg_val);
         AIT_FREE_VAL(&av->cfg_attr);          AIT_FREE_VAL(&av->cfg_attr);
         AIT_FREE_VAL(&av->cfg_sec);          AIT_FREE_VAL(&av->cfg_sec);
        free(av);        io_free(av);
         return 1;          return 1;
 }  }
   
Line 161  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch Line 169  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch
                 /* adding new element */                  /* adding new element */
                 section = _selectAttribute(cfg, csSec, NULL);                  section = _selectAttribute(cfg, csSec, NULL);
   
                av = malloc(sizeof(struct tagCfg));                av = io_malloc(sizeof(struct tagCfg));
                 if (!av) {                  if (!av) {
                         LOGERR;                          LOGERR;
                         return -1;                          return -1;
Line 192  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch Line 200  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch
                 return 2;                  return 2;
         }          }
   
        if (csVal && strcmp((char*) csVal, (char*) AIT_GET_STR(&av->cfg_val))) {        if (csVal && AIT_ADDR(&av->cfg_val) && 
                         strcmp((char*) csVal, (char*) AIT_GET_STR(&av->cfg_val))) {
                 /* Update element */                  /* Update element */
                 AIT_FREE_VAL(&av->cfg_val);                  AIT_FREE_VAL(&av->cfg_val);
                 AIT_SET_STR(&av->cfg_val, csVal);                  AIT_SET_STR(&av->cfg_val, csVal);
Line 248  cfg_loadAttribute(cfg_root_t * __restrict cfg, const c Line 257  cfg_loadAttribute(cfg_root_t * __restrict cfg, const c
                 return -1;                  return -1;
         }          }
   
           AIT_INIT_VAL(val);
         av = _selectAttribute(cfg, csSec, csAttr);          av = _selectAttribute(cfg, csSec, csAttr);
         if (!av) {          if (!av) {
                 /* not found item */                  /* not found item */
                 if (csDefValue) {                  if (csDefValue) {
                         AIT_SET_STR(val, csDefValue);                          AIT_SET_STR(val, csDefValue);
                         ret = AIT_LEN(val);                          ret = AIT_LEN(val);
                }                } else
                         AIT_INIT_VAL(val);
                 return ret;                  return ret;
         }          }
   
        if (AIT_ISEMPTY(&av->cfg_val) || !*AIT_GET_LIKE(&av->cfg_val, char*)) {        if (AIT_ISEMPTY(&av->cfg_val) || !AIT_ADDR(&av->cfg_val) || 
                         !*AIT_GET_LIKE(&av->cfg_val, char*)) {
                 /* empty value */                  /* empty value */
                 if (csDefValue) {                  if (csDefValue) {
                         AIT_SET_STR(val, csDefValue);                          AIT_SET_STR(val, csDefValue);
                         ret = AIT_LEN(val);                          ret = AIT_LEN(val);
                }                } else
                         AIT_INIT_VAL(val);
         } else {          } else {
                 /* copy value */                  /* copy value */
                 AIT_SET_STR(val, AIT_GET_STR(&av->cfg_val));                  AIT_SET_STR(val, AIT_GET_STR(&av->cfg_val));

Removed from v.1.7  
changed lines
  Added in v.1.10


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