Diff for /libaitcfg/src/queue.c between versions 1.6.4.4 and 1.9.4.1

version 1.6.4.4, 2012/04/02 16:00:00 version 1.9.4.1, 2012/08/06 14:52:51
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 63  _selectAttribute(cfg_root_t * __restrict cfg, const ch Line 63  _selectAttribute(cfg_root_t * __restrict cfg, const ch
                 AIT_KEY(&fav.cfg_attr) = crcFletcher16((u_short*) csAttr,                   AIT_KEY(&fav.cfg_attr) = crcFletcher16((u_short*) csAttr, 
                                 io_align(strlen(csAttr), 1) / 2);                                  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)          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 */
         }
 }  }
   
static inline void/* --------------------------------------------------------------- */
_destroyAttribute(struct tagCfg *av) 
{ 
        if (!av) 
                return; 
   
 }  
   
 // ----------------------------------------------  
   
 /*  /*
  * cfg_findAttribute() - Find attribute position in config file   * cfg_findAttribute() - Find attribute position in config file
  *   *
Line 153  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 171  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch Line 161  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch
 {  {
         struct tagCfg *av, *section;          struct tagCfg *av, *section;
   
        if (!cfg || !csAttr || !csVal)        if (!cfg || !csAttr)
                 return -1;                  return -1;
   
         av = _selectAttribute(cfg, csSec, csAttr);          av = _selectAttribute(cfg, csSec, csAttr);
Line 179  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 199  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch Line 189  cfg_setAttribute(cfg_root_t * __restrict cfg, const ch
                         AIT_KEY(&av->cfg_sec) = crcFletcher16(AIT_GET_LIKE(&av->cfg_sec, u_short*),                           AIT_KEY(&av->cfg_sec) = crcFletcher16(AIT_GET_LIKE(&av->cfg_sec, u_short*), 
                                         io_align(AIT_LEN(&av->cfg_sec) - 1, 1) / 2);                                          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_SET_STR(&av->cfg_attr, csAttr);
                 AIT_KEY(&av->cfg_attr) = crcFletcher16(AIT_GET_LIKE(&av->cfg_attr, u_short*),                   AIT_KEY(&av->cfg_attr) = crcFletcher16(AIT_GET_LIKE(&av->cfg_attr, u_short*), 
                                 io_align(AIT_LEN(&av->cfg_attr) - 1, 1) / 2);                                  io_align(AIT_LEN(&av->cfg_attr) - 1, 1) / 2);
Line 210  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 (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 266  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.6.4.4  
changed lines
  Added in v.1.9.4.1


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