mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
AK: Replace wchar_t formatting with char32_t
This makes TestFormat fully cross-platform as we no longer have to work around the 16 vs 32-bit wide strings
This commit is contained in:
parent
7f0f513159
commit
5f5ae6bf8b
|
|
@ -984,11 +984,11 @@ ErrorOr<void> Formatter<char>::format(FormatBuilder& builder, char value)
|
|||
return formatter.format(builder, { &value, 1 });
|
||||
}
|
||||
}
|
||||
ErrorOr<void> Formatter<wchar_t>::format(FormatBuilder& builder, wchar_t value)
|
||||
ErrorOr<void> Formatter<char32_t>::format(FormatBuilder& builder, char32_t value)
|
||||
{
|
||||
if (m_mode == Mode::Binary || m_mode == Mode::BinaryUppercase || m_mode == Mode::Decimal || m_mode == Mode::Octal || m_mode == Mode::Hexadecimal || m_mode == Mode::HexadecimalUppercase) {
|
||||
Formatter<u32> formatter { *this };
|
||||
return formatter.format(builder, static_cast<u32>(value));
|
||||
return formatter.format(builder, value);
|
||||
} else {
|
||||
StringBuilder codepoint;
|
||||
codepoint.append_code_point(value);
|
||||
|
|
|
|||
|
|
@ -514,8 +514,8 @@ struct Formatter<char> : StandardFormatter {
|
|||
ErrorOr<void> format(FormatBuilder&, char);
|
||||
};
|
||||
template<>
|
||||
struct Formatter<wchar_t> : StandardFormatter {
|
||||
ErrorOr<void> format(FormatBuilder& builder, wchar_t);
|
||||
struct Formatter<char32_t> : StandardFormatter {
|
||||
ErrorOr<void> format(FormatBuilder& builder, char32_t);
|
||||
};
|
||||
template<>
|
||||
struct Formatter<bool> : StandardFormatter {
|
||||
|
|
|
|||
|
|
@ -397,16 +397,17 @@ TEST_CASE(vector_format)
|
|||
}
|
||||
}
|
||||
|
||||
TEST_CASE(format_wchar)
|
||||
TEST_CASE(format_utf32)
|
||||
{
|
||||
EXPECT_EQ(ByteString::formatted("{}", L'a'), "a");
|
||||
EXPECT_EQ(ByteString::formatted("{}", L'\U0001F41E'), "\xF0\x9F\x90\x9E");
|
||||
EXPECT_EQ(ByteString::formatted("{:x}", L'a'), "61");
|
||||
EXPECT_EQ(ByteString::formatted("{:x}", L'\U0001F41E'), "1f41e");
|
||||
EXPECT_EQ(ByteString::formatted("{:d}", L'a'), "97");
|
||||
EXPECT_EQ(ByteString::formatted("{:d}", L'\U0001F41E'), "128030");
|
||||
EXPECT_EQ(ByteString::formatted("{}", U'a'), "a");
|
||||
EXPECT_EQ(ByteString::formatted("{}", U'\U0001F41E'), "\xF0\x9F\x90\x9E");
|
||||
EXPECT_EQ(ByteString::formatted("{:x}", U'a'), "61");
|
||||
EXPECT_EQ(ByteString::formatted("{:x}", U'\U0001F41E'), "1f41e");
|
||||
|
||||
EXPECT_EQ(ByteString::formatted("{:6}", L'a'), "a ");
|
||||
EXPECT_EQ(ByteString::formatted("{:6d}", L'a'), " 97");
|
||||
EXPECT_EQ(ByteString::formatted("{:#x}", L'\U0001F41E'), "0x1f41e");
|
||||
EXPECT_EQ(ByteString::formatted("{:d}", U'a'), "97");
|
||||
EXPECT_EQ(ByteString::formatted("{:d}", U'\U0001F41E'), "128030");
|
||||
|
||||
EXPECT_EQ(ByteString::formatted("{:6}", U'a'), "a ");
|
||||
EXPECT_EQ(ByteString::formatted("{:6d}", U'a'), " 97");
|
||||
EXPECT_EQ(ByteString::formatted("{:#x}", U'\U0001F41E'), "0x1f41e");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user