| 5476 | } |
| 5477 | |
| 5478 | static ::std::string escape(const char* begin, const char* end, bool& is_escaped) { |
| 5479 | ::std::string escaped {}; |
| 5480 | escaped.reserve(std::distance(begin, end)); |
| 5481 | for (; begin != end; ++begin) { |
| 5482 | switch (*begin) { |
| 5483 | case 0x01: |
| 5484 | escaped += "\\u0001"; |
| 5485 | is_escaped = true; |
| 5486 | break; |
| 5487 | case 0x02: |
| 5488 | escaped += "\\u0002"; |
| 5489 | is_escaped = true; |
| 5490 | break; |
| 5491 | case 0x03: |
| 5492 | escaped += "\\u0003"; |
| 5493 | is_escaped = true; |
| 5494 | break; |
| 5495 | case 0x04: |
| 5496 | escaped += "\\u0004"; |
| 5497 | is_escaped = true; |
| 5498 | break; |
| 5499 | case 0x05: |
| 5500 | escaped += "\\u0005"; |
| 5501 | is_escaped = true; |
| 5502 | break; |
| 5503 | case 0x06: |
| 5504 | escaped += "\\u0006"; |
| 5505 | is_escaped = true; |
| 5506 | break; |
| 5507 | case '\a': |
| 5508 | escaped += "\\a"; |
| 5509 | is_escaped = true; |
| 5510 | break; |
| 5511 | case '\b': |
| 5512 | escaped += "\\b"; |
| 5513 | is_escaped = true; |
| 5514 | break; |
| 5515 | case '\t': |
| 5516 | escaped += "\\t"; |
| 5517 | is_escaped = true; |
| 5518 | break; |
| 5519 | case '\n': |
| 5520 | escaped += "\\n"; |
| 5521 | is_escaped = true; |
| 5522 | break; |
| 5523 | case '\v': |
| 5524 | escaped += "\\v"; |
| 5525 | is_escaped = true; |
| 5526 | break; |
| 5527 | case '\f': |
| 5528 | escaped += "\\f"; |
| 5529 | is_escaped = true; |
| 5530 | break; |
| 5531 | case '\r': |
| 5532 | escaped += "\\r"; |
| 5533 | is_escaped = true; |
| 5534 | break; |
| 5535 | case 0x0E: |
no test coverage detected