| 450 | } |
| 451 | |
| 452 | size_t eraseUTF8CharAt(std::string& str, size_t utf8CharOffset) |
| 453 | { |
| 454 | if (utf8CharOffset >= str.length()) |
| 455 | return 0; |
| 456 | const UTF8* source = (const UTF8*)str.data(); |
| 457 | const UTF8* sourceEnd = source + str.length(); |
| 458 | size_t byteOffset = getUTF8ByteOffset(str, utf8CharOffset); |
| 459 | if (byteOffset == std::string_view::npos) |
| 460 | return 0; |
| 461 | auto size = getUTF8SequenceSize(source + byteOffset, sourceEnd); |
| 462 | if (size == 0) |
| 463 | return 0; |
| 464 | str.erase(byteOffset, size); |
| 465 | return size; |
| 466 | } |
| 467 | |
| 468 | bool hasNonAsciiUTF8(const char* str, size_t len) |
| 469 | { |
no test coverage detected