in include/yyjson/yyjson.c [3824:3846]
static_inline bool read_nan(bool sign, u8 **ptr, u8 **pre, yyjson_val *val) {
u8 *hdr = *ptr - sign;
u8 *cur = *ptr;
u8 **end = ptr;
if ((cur[0] == 'N' || cur[0] == 'n') &&
(cur[1] == 'A' || cur[1] == 'a') &&
(cur[2] == 'N' || cur[2] == 'n')) {
cur += 3;
*end = cur;
if (false) {
/* add null-terminator for previous raw string */
if (*pre) **pre = '\0';
*pre = cur;
val->tag = ((u64)(cur - hdr) << YYJSON_TAG_BIT) | YYJSON_TYPE_RAW;
val->uni.str = (const char *)hdr;
} else {
val->tag = YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL;
val->uni.u64 = f64_raw_get_nan(sign);
}
return true;
}
return false;
}