Diff for /libelwix/src/json.c between versions 1.1.2.10 and 1.2.2.1

version 1.1.2.10, 2017/11/29 08:32:46 version 1.2.2.1, 2017/12/03 20:01:42
Line 563  json_token2array(const char *jstr, jtok_t * __restrict Line 563  json_token2array(const char *jstr, jtok_t * __restrict
                 }                  }
         } else {          } else {
                 elwix_SetErr(J_ERR_PARAM, "%s", jerrstr[J_ERR_PARAM]);                  elwix_SetErr(J_ERR_PARAM, "%s", jerrstr[J_ERR_PARAM]);
                   ait_freeVars(&arr);
                 return NULL;                  return NULL;
         }          }
   
Line 921  json_add_pair(char * __restrict jstr, int jlen, int ws Line 922  json_add_pair(char * __restrict jstr, int jlen, int ws
                 jstr[eos] = 0;                  jstr[eos] = 0;
                 return -1;                  return -1;
         }          }
        if ((len = json_add_string(jstr, jlen, 0, key)) == -1) {        if ((len = json_add_string(jstr, jlen, 0, val)) == -1) {
                 jstr[eos] = 0;                  jstr[eos] = 0;
                 return -1;                  return -1;
         }          }
Line 981  json_add_array(char * __restrict jstr, int jlen, int w Line 982  json_add_array(char * __restrict jstr, int jlen, int w
         }          }
   
         return len;          return len;
   }
   
   /*
    * json_dump_yaml() - Dump parsed JSON string to YAML format
    *
    * @f = Output handler
    * @jstr = JSON string
    * @toks = JSON tokens
    * @toksnum = Number of tokens
    * @indent = Start indent spaces
    * return: 0 done and 1 added one more item
    */
   int
   json_dump_yaml(FILE *f, const char *jstr, jtok_t *toks, int toksnum, int indent)
   {
           register int i, j, k;
   
           if (!toksnum)
                   return 0;
   
           if (toks->tok_type == J_VALUE) {
                   fprintf(f, "%.*s", (int) json_toklen(toks), json_tokstr(jstr, toks));
                   return 1;
           } else if (toks->tok_type == J_STRING) {
                   fprintf(f, "%.*s", (int) json_toklen(toks), json_tokstr(jstr, toks));
                   return 1;
           } else if (toks->tok_type == J_OBJECT) {
                   fprintf(f, "\n");
                   for (j = i = 0; i < json_toksize(toks); i++) {
                           for (k = 0; k < indent; k++)
                                   fprintf(f, "  ");
                           j += json_dump_yaml(f, jstr, toks + j + 1, toksnum - j, indent + 1);
                           fprintf(f, ": ");
                           j += json_dump_yaml(f, jstr, toks + j + 1, toksnum - j, indent + 1);
                           fprintf(f, "\n");
                   }
                   return j + 1;
           } else if (toks->tok_type == J_ARRAY) {
                   fprintf(f, "\n");
                   for (j = i = 0; i < json_toksize(toks); i++) {
                           for (k = 0; k < indent - 1; k++)
                                   fprintf(f, "  ");
                           fprintf(f, "   - ");
                           j += json_dump_yaml(f, jstr, toks + j + 1, toksnum - j, indent + 1);
                           fprintf(f, "\n");
                   }
                   return j + 1;
           }
   
           return 0;
 }  }

Removed from v.1.1.2.10  
changed lines
  Added in v.1.2.2.1


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