Differences From Artifact [9190d7a166]:
- File
src/OFString+JSONValue.m
— part of check-in
[c8a5922af2]
at
2012-02-24 20:38:35
on branch 0.6
— Don't use OF_INLINE where the function contains a @try block.
Doing so does not work if exceptions are SJLJ. (user: js, size: 8611) [annotate] [blame] [check-ins using] [more...]
To Artifact [8ad19cb41d]:
- File
src/OFString+JSONValue.m
— part of check-in
[54f80aba7a]
at
2012-06-04 22:32:38
on branch trunk
— Initial JSON5 support.
Supported so far:
* comments
* single quoted strings (user: js, size: 8658) [annotate] [blame] [check-ins using]
︙ | |||
126 127 128 129 130 131 132 133 134 135 136 137 138 139 | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | + | } static inline OFString* parseString(const char *restrict *pointer, const char *stop) { char *buffer; size_t i = 0; char delimiter = **pointer; if (++(*pointer) + 1 >= stop) return nil; if ((buffer = malloc(stop - *pointer)) == NULL) return nil; |
︙ | |||
232 233 234 235 236 237 238 | 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 | - + | break; default: free(buffer); return nil; } /* End of string found */ |
︙ | |||
396 397 398 399 400 401 402 403 404 405 406 407 408 409 | 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 | + | skipWhitespacesAndComments(pointer, stop); if (*pointer >= stop) return nil; switch (**pointer) { case '"': case '\'': return parseString(pointer, stop); case '[': return parseArray(pointer, stop); case '{': return parseDictionary(pointer, stop); case 't': if (*pointer + 3 >= stop) |
︙ |