| @@ -264,27 +264,27 @@ mj_parse(mj_t *atom, const char *s, int | | | @@ -264,27 +264,27 @@ mj_parse(mj_t *atom, const char *s, int |
264 | | | 264 | |
265 | switch(atom->type = *tok = gettok(s, from, to, tok)) { | | 265 | switch(atom->type = *tok = gettok(s, from, to, tok)) { |
266 | case MJ_NUMBER: | | 266 | case MJ_NUMBER: |
267 | atom->value.s = strnsave(&s[*from], *to - *from, 1); | | 267 | atom->value.s = strnsave(&s[*from], *to - *from, 1); |
268 | atom->c = atom->size = strlen(atom->value.s); | | 268 | atom->c = atom->size = strlen(atom->value.s); |
269 | return gettok(s, from, to, tok); | | 269 | return gettok(s, from, to, tok); |
270 | case MJ_STRING: | | 270 | case MJ_STRING: |
271 | atom->value.s = strnsave(&s[*from + 1], *to - *from - 2, 1); | | 271 | atom->value.s = strnsave(&s[*from + 1], *to - *from - 2, 1); |
272 | atom->c = atom->size = strlen(atom->value.s); | | 272 | atom->c = atom->size = strlen(atom->value.s); |
273 | return gettok(s, from, to, tok); | | 273 | return gettok(s, from, to, tok); |
274 | case MJ_NULL: | | 274 | case MJ_NULL: |
275 | case MJ_FALSE: | | 275 | case MJ_FALSE: |
276 | case MJ_TRUE: | | 276 | case MJ_TRUE: |
277 | atom->c = (unsigned)to; | | 277 | atom->c = (unsigned)*to; |
278 | return gettok(s, from, to, tok); | | 278 | return gettok(s, from, to, tok); |
279 | case MJ_OPEN_BRACKET: | | 279 | case MJ_OPEN_BRACKET: |
280 | mj_create(atom, "array"); | | 280 | mj_create(atom, "array"); |
281 | ALLOC(mj_t, atom->value.v, atom->size, atom->c, 10, 10, "mj_parse()", return 0); | | 281 | ALLOC(mj_t, atom->value.v, atom->size, atom->c, 10, 10, "mj_parse()", return 0); |
282 | while (mj_parse(&atom->value.v[atom->c++], s, from, to, tok) >= 0 && *tok != MJ_CLOSE_BRACKET) { | | 282 | while (mj_parse(&atom->value.v[atom->c++], s, from, to, tok) >= 0 && *tok != MJ_CLOSE_BRACKET) { |
283 | if (*tok != MJ_COMMA) { | | 283 | if (*tok != MJ_COMMA) { |
284 | (void) fprintf(stderr, "1. expected comma (got %d) at '%s'\n", *tok, &s[*from]); | | 284 | (void) fprintf(stderr, "1. expected comma (got %d) at '%s'\n", *tok, &s[*from]); |
285 | break; | | 285 | break; |
286 | } | | 286 | } |
287 | ALLOC(mj_t, atom->value.v, atom->size, atom->c, 10, 10, "mj_parse()", return 0); | | 287 | ALLOC(mj_t, atom->value.v, atom->size, atom->c, 10, 10, "mj_parse()", return 0); |
288 | } | | 288 | } |
289 | return gettok(s, from, to, tok); | | 289 | return gettok(s, from, to, tok); |
290 | case MJ_OPEN_BRACE: | | 290 | case MJ_OPEN_BRACE: |