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+
14 # 1.0.0 (2026年06月30日)
25 * 最初リリース
変更 src/json.cc
@@ -332,10 +332,20 @@
332332 switch (c) {
333333 case '"': out += "\\\""; break;
334334 case '\\': out += "\\\\"; break;
335+ case '\b': out += "\\b"; break;
336+ case '\f': out += "\\f"; break;
335337 case '\n': out += "\\n"; break;
336338 case '\r': out += "\\r"; break;
337339 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;
339349 }
340350 }
341351