serialize関数を終わらせる
諏訪子 <suwako@076.moe>、2026-07-05 03:53
コミット 1a069d7824229cd21759631a2ece72eb334aff6c
・親 e5e1abf
・ファイルを見る
2個のファイル、+14 -1
変更
CHANGELOG.md
| @@ -1,2 +1,5 @@ | ||
| 1 | +# 1.0.1 (2026年07月05日) | |
| 2 | +* `serialize()`関数を終わらせる | |
| 3 | + | |
| 1 | 4 | # 1.0.0 (2026年06月30日) |
| 2 | 5 | * 最初リリース |
変更
src/json.cc
| @@ -332,10 +332,20 @@ | ||
| 332 | 332 | switch (c) { |
| 333 | 333 | case '"': out += "\\\""; break; |
| 334 | 334 | case '\\': out += "\\\\"; break; |
| 335 | + case '\b': out += "\\b"; break; | |
| 336 | + case '\f': out += "\\f"; break; | |
| 335 | 337 | case '\n': out += "\\n"; break; |
| 336 | 338 | case '\r': out += "\\r"; break; |
| 337 | 339 | case '\t': out += "\\t"; break; |
| 338 | - default: out += c; break; | |
| 340 | + default: | |
| 341 | + if (c < 0x20) { | |
| 342 | + char buf[7]; | |
| 343 | + std::snprintf(buf, sizeof(buf), "\\u%04X", c); | |
| 344 | + out += buf; | |
| 345 | + } else { | |
| 346 | + out += static_cast<char>(c); | |
| 347 | + } | |
| 348 | + break; | |
| 339 | 349 | } |
| 340 | 350 | } |
| 341 | 351 |