Diff for /libaitcfg/src/queue.c between versions 1.14.4.2 and 1.16

version 1.14.4.2, 2014/03/19 17:00:51 version 1.16, 2014/04/14 19:58:21
Line 72  _selectAttribute(cfg_root_t * __restrict cfg, const ch Line 72  _selectAttribute(cfg_root_t * __restrict cfg, const ch
                 do {                  do {
                         if (!strcmp(AIT_GET_STR(&c->cfg_attr), csAttr))                          if (!strcmp(AIT_GET_STR(&c->cfg_attr), csAttr))
                                 return c;       /* FOUND! */                                  return c;       /* FOUND! */
                } while (RB_NEXT(tagRC, cfg, c) && !cfg_tree_cmp(c, &fav));                } while ((c = RB_NEXT(tagRC, cfg, c)) && c && !cfg_tree_cmp(c, &fav));
                 return NULL;    /* not found */                  return NULL;    /* not found */
         }          }
 }  }
Line 97  cfg_getSection(cfg_root_t * __restrict cfg, const char Line 97  cfg_getSection(cfg_root_t * __restrict cfg, const char
                 return NULL;                  return NULL;
         } else          } else
                 memset(&fav, 0, sizeof fav);                  memset(&fav, 0, sizeof fav);
           if (csSec && !*csSec)
                   csSec = NULL;
   
         if (csSec && *csSec)          if (csSec && *csSec)
                 AIT_KEY(&fav.cfg_sec) = crcFletcher16((u_short*) csSec,                   AIT_KEY(&fav.cfg_sec) = crcFletcher16((u_short*) csSec, 
Line 105  cfg_getSection(cfg_root_t * __restrict cfg, const char Line 107  cfg_getSection(cfg_root_t * __restrict cfg, const char
         av = RB_NFIND(tagRC, cfg, &fav);          av = RB_NFIND(tagRC, cfg, &fav);
         if (!av)          if (!av)
                 return NULL;                  return NULL;
        if (strcmp(AIT_GET_STR(&av->cfg_sec), csSec))        if (csSec) {
                return NULL;                if (AIT_ISEMPTY(&av->cfg_sec) || strcmp(AIT_GET_STR(&av->cfg_sec), csSec))
                         return NULL;
         } else {
                 if (!AIT_ISEMPTY(&av->cfg_sec))
                         return NULL;
         }
   
         arr = array_Init(1);          arr = array_Init(1);
         if (!arr) {          if (!arr) {
Line 115  cfg_getSection(cfg_root_t * __restrict cfg, const char Line 122  cfg_getSection(cfg_root_t * __restrict cfg, const char
         } else          } else
                 array_Push(arr, av, 0);                  array_Push(arr, av, 0);
   
        while (RB_NEXT(tagRC, cfg, av) && !strcmp(AIT_GET_STR(&av->cfg_sec), csSec))        while ((av = RB_NEXT(tagRC, cfg, av)) && av) {
                 if (csSec) {
                         if (AIT_ISEMPTY(&av->cfg_sec) || strcmp(AIT_GET_STR(&av->cfg_sec), csSec))
                                 break;
                 } else {
                         if (!AIT_ISEMPTY(&av->cfg_sec))
                                 break;
                 }
 
                 array_Push(arr, av, 0);                  array_Push(arr, av, 0);
           }
   
         return arr;          return arr;
 }  }
Line 275  cfg_getAttribute(cfg_root_t * __restrict cfg, const ch Line 291  cfg_getAttribute(cfg_root_t * __restrict cfg, const ch
                 return NULL;                  return NULL;
   
         return AIT_GET_STR(&av->cfg_val);          return AIT_GET_STR(&av->cfg_val);
   }
   
   /*
    * cfg_getAttributeLong() - Get item as long from config and return value from it
    *
    * @cfg = Config root
    * @csSec = Config section //[{csSec}], if NULL unset in *default* section
    * @csAttr = Config attribute //{csAttr} = ..., if NULL as *any* attribute
    * return: value
    */
   long
   cfg_getAttributeLong(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)
   {
           const char *str = NULL;
   
           str = cfg_getAttribute(cfg, csSec, csAttr);
           return strtol(str ? str : "", NULL, 0);
   }
   
   /*
    * cfg_getAttributeLLong() - Get item as long long from config and return value from it
    *
    * @cfg = Config root
    * @csSec = Config section //[{csSec}], if NULL unset in *default* section
    * @csAttr = Config attribute //{csAttr} = ..., if NULL as *any* attribute
    * return: value
    */
   long long
   cfg_getAttributeLLong(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)
   {
           const char *str = NULL;
   
           str = cfg_getAttribute(cfg, csSec, csAttr);
           return strtoll(str ? str : "", NULL, 0);
   }
   
   /*
    * cfg_getAttributeDouble() - Get item as double from config and return value from it
    *
    * @cfg = Config root
    * @csSec = Config section //[{csSec}], if NULL unset in *default* section
    * @csAttr = Config attribute //{csAttr} = ..., if NULL as *any* attribute
    * return: value
    */
   double
   cfg_getAttributeDouble(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)
   {
           const char *str = NULL;
   
           str = cfg_getAttribute(cfg, csSec, csAttr);
           return strtod(str ? str : "", NULL);
   }
   
   /*
    * cfg_getAttributeLDouble() - Get item as long double from config and return value from it
    *
    * @cfg = Config root
    * @csSec = Config section //[{csSec}], if NULL unset in *default* section
    * @csAttr = Config attribute //{csAttr} = ..., if NULL as *any* attribute
    * return: value
    */
   long double
   cfg_getAttributeLDouble(cfg_root_t * __restrict cfg, const char *csSec, const char *csAttr)
   {
           const char *str = NULL;
   
           str = cfg_getAttribute(cfg, csSec, csAttr);
           return strtold(str ? str : "", NULL);
 }  }
   
 /*  /*

Removed from v.1.14.4.2  
changed lines
  Added in v.1.16


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