Diff for /libelwix/src/json.c between versions 1.7.12.1 and 1.9.34.1

version 1.7.12.1, 2019/01/31 22:19:46 version 1.9.34.1, 2024/10/26 14:55:56
Line 427  json_token2val(const char *jstr, jtok_t * __restrict t Line 427  json_token2val(const char *jstr, jtok_t * __restrict t
                 return NULL;                  return NULL;
   
         AIT_SET_STRSIZ(v, json_toklen(tok));          AIT_SET_STRSIZ(v, json_toklen(tok));
        strncpy(AIT_GET_STR(v), json_tokstr(jstr, tok), AIT_LEN(v) - 1);        if (AIT_GET_STR(v))
                 strncpy(AIT_GET_STR(v), json_tokstr(jstr, tok), AIT_LEN(v) - 1);
         else
                 ait_freeVar(&v);
   
         return v;          return v;
 }  }
Line 442  json_token2val(const char *jstr, jtok_t * __restrict t Line 445  json_token2val(const char *jstr, jtok_t * __restrict t
 char *  char *
 json_token2str(const char *jstr, jtok_t * __restrict tok)  json_token2str(const char *jstr, jtok_t * __restrict tok)
 {  {
        char *str = NULL;        char *s, *s2, *wrk, *str = NULL;
         size_t len;          size_t len;
   
         if (!jstr || !tok)          if (!jstr || !tok)
                 return NULL;                  return NULL;
   
   
         len = json_toklen(tok);          len = json_toklen(tok);
         str = e_malloc(len + 1);          str = e_malloc(len + 1);
         if (!str)          if (!str)
                 return NULL;                  return NULL;
         else {          else {
                strncpy(str, json_tokstr(jstr, tok), len);                memset(str, 0, len + 1);
                str[len] = 0;
                 wrk = e_strdup(json_tokstr(jstr, tok));
                 wrk[len] = 0;
                 for (s = wrk, s2 = str; *s; s++)
                         *s2++ = (*s != '\\') ? *s : *++s;
                 e_free(wrk);
         }          }
   
         return str;          return str;
Line 561  json_findbykey(const char *jstr, const char *key, jtyp Line 570  json_findbykey(const char *jstr, const char *key, jtyp
                 klen = strlen(key);                  klen = strlen(key);
   
         for (i = 1; i < toksnum; i++) {          for (i = 1; i < toksnum; i++) {
                if (toks[i].tok_type == J_STRING &&                 if (toks[i].tok_type == J_STRING && toks[i].tok_size == 1 && 
                                 klen == toks[i].tok_end - toks[i].tok_start &&                                   klen == toks[i].tok_end - toks[i].tok_start && 
                                 !strncmp(jstr + toks[i].tok_start, key, klen)) {                                  !strncmp(jstr + toks[i].tok_start, key, klen)) {
                         if (type != J_UNDEF) {                          if (type != J_UNDEF) {

Removed from v.1.7.12.1  
changed lines
  Added in v.1.9.34.1


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