Differences From Artifact [8041bfaa01]:
- File src/OFString+JSONValue.m — part of check-in [7e5c81e186] at 2018-01-03 19:49:46 on branch trunk — Update copyright notice (user: js, size: 12983) [annotate] [blame] [check-ins using]
To Artifact [0d9de1d0b0]:
- File
src/OFString+JSONValue.m
— part of check-in
[505137f25f]
at
2018-02-25 04:31:30
on branch trunk
— Reintroduce of_char{16,32}_t
There is no reliable way to check if C++ already defined those, as Clang
now defines char{16,32}_t even when it is not in C++ 11 mode. So we
cannot check if we are not in C++ 11 and then define them and otherwise
rely on the C++ 11 types. (user: js, size: 12995) [annotate] [blame] [check-ins using]
| ︙ | ︙ | |||
103 104 105 106 107 108 109 | old = *pointer; skipWhitespaces(pointer, stop, line); skipComment(pointer, stop, line); } } | | | | 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
old = *pointer;
skipWhitespaces(pointer, stop, line);
skipComment(pointer, stop, line);
}
}
static inline of_char16_t
parseUnicodeEscape(const char *pointer, const char *stop)
{
of_char16_t ret = 0;
if (pointer + 5 >= stop)
return 0xFFFF;
if (pointer[0] != '\\' || pointer[1] != 'u')
return 0xFFFF;
|
| ︙ | ︙ | |||
184 185 186 187 188 189 190 | break; case 't': buffer[i++] = '\t'; (*pointer)++; break; /* Parse Unicode escape sequence */ case 'u':; | | | 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
break;
case 't':
buffer[i++] = '\t';
(*pointer)++;
break;
/* Parse Unicode escape sequence */
case 'u':;
of_char16_t c1, c2;
of_unichar_t c;
size_t l;
c1 = parseUnicodeEscape(*pointer - 1, stop);
if (c1 == 0xFFFF) {
free(buffer);
return nil;
|
| ︙ | ︙ | |||
303 304 305 306 307 308 309 |
(**pointer >= 'A' && **pointer <= 'Z') ||
(**pointer >= '0' && **pointer <= '9') ||
**pointer == '_' || **pointer == '$' ||
(**pointer & 0x80)) {
buffer[i++] = **pointer;
(*pointer)++;
} else if (**pointer == '\\') {
| | | 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 |
(**pointer >= 'A' && **pointer <= 'Z') ||
(**pointer >= '0' && **pointer <= '9') ||
**pointer == '_' || **pointer == '$' ||
(**pointer & 0x80)) {
buffer[i++] = **pointer;
(*pointer)++;
} else if (**pointer == '\\') {
of_char16_t c1, c2;
of_unichar_t c;
size_t l;
if (++(*pointer) >= stop || **pointer != 'u') {
free(buffer);
return nil;
}
|
| ︙ | ︙ |