AK: Add StringBuilder::append_codepoint(u32)

Also, implement append(Utf32View) using it.
This commit is contained in:
Andreas Kling 2020-06-04 21:04:31 +02:00
parent 0bc92c259d
commit d4bbc00901
Notes: sideshowbarker 2024-07-19 05:49:56 +09:00
2 changed files with 25 additions and 19 deletions

View File

@ -113,10 +113,8 @@ void StringBuilder::clear()
m_length = 0;
}
void StringBuilder::append(const Utf32View& utf32_view)
void StringBuilder::append_codepoint(u32 codepoint)
{
for (size_t i = 0; i < utf32_view.length(); ++i) {
auto codepoint = utf32_view.codepoints()[i];
if (codepoint <= 0x7f) {
append((char)codepoint);
} else if (codepoint <= 0x07ff) {
@ -137,6 +135,13 @@ void StringBuilder::append(const Utf32View& utf32_view)
append(0xbd);
}
}
void StringBuilder::append(const Utf32View& utf32_view)
{
for (size_t i = 0; i < utf32_view.length(); ++i) {
auto codepoint = utf32_view.codepoints()[i];
append_codepoint(codepoint);
}
}
}

View File

@ -42,6 +42,7 @@ public:
void append(const StringView&);
void append(const Utf32View&);
void append(char);
void append_codepoint(u32);
void append(const char*, size_t);
void appendf(const char*, ...);
void appendvf(const char*, va_list);