mirror of
https://github.com/fmtlib/fmt.git
synced 2024-11-21 10:20:03 +00:00
Add support for code units > 0xFFFF in fill
This commit is contained in:
parent
58c185b634
commit
601be1cbe7
@ -800,7 +800,8 @@ class basic_specs {
|
||||
template <typename Char> constexpr auto fill_unit() const -> Char {
|
||||
using uchar = unsigned char;
|
||||
return static_cast<Char>(static_cast<uchar>(fill_data_[0]) |
|
||||
(static_cast<uchar>(fill_data_[1]) << 8));
|
||||
(static_cast<uchar>(fill_data_[1]) << 8) |
|
||||
(static_cast<uchar>(fill_data_[2]) << 16));
|
||||
}
|
||||
|
||||
FMT_CONSTEXPR void set_fill(char c) {
|
||||
@ -816,6 +817,7 @@ class basic_specs {
|
||||
unsigned uchar = static_cast<detail::unsigned_char<Char>>(s[0]);
|
||||
fill_data_[0] = static_cast<char>(uchar);
|
||||
fill_data_[1] = static_cast<char>(uchar >> 8);
|
||||
fill_data_[2] = static_cast<char>(uchar >> 16);
|
||||
return;
|
||||
}
|
||||
FMT_ASSERT(size <= max_fill_size, "invalid fill");
|
||||
|
@ -72,16 +72,17 @@ TEST(xchar_test, format_explicitly_convertible_to_wstring_view) {
|
||||
#endif
|
||||
|
||||
TEST(xchar_test, format) {
|
||||
EXPECT_EQ(L"42", fmt::format(L"{}", 42));
|
||||
EXPECT_EQ(L"4.2", fmt::format(L"{}", 4.2));
|
||||
EXPECT_EQ(L"abc", fmt::format(L"{}", L"abc"));
|
||||
EXPECT_EQ(L"z", fmt::format(L"{}", L'z'));
|
||||
EXPECT_EQ(fmt::format(L"{}", 42), L"42");
|
||||
EXPECT_EQ(fmt::format(L"{}", 4.2), L"4.2");
|
||||
EXPECT_EQ(fmt::format(L"{}", L"abc"), L"abc");
|
||||
EXPECT_EQ(fmt::format(L"{}", L'z'), L"z");
|
||||
EXPECT_THROW(fmt::format(fmt::runtime(L"{:*\x343E}"), 42), fmt::format_error);
|
||||
EXPECT_EQ(L"true", fmt::format(L"{}", true));
|
||||
EXPECT_EQ(L"a", fmt::format(L"{0}", L'a'));
|
||||
EXPECT_EQ(L"Cyrillic letter \x42e",
|
||||
fmt::format(L"Cyrillic letter {}", L'\x42e'));
|
||||
EXPECT_EQ(L"abc1", fmt::format(L"{}c{}", L"ab", 1));
|
||||
EXPECT_EQ(fmt::format(L"{}", true), L"true");
|
||||
EXPECT_EQ(fmt::format(L"{0}", L'a'), L"a");
|
||||
EXPECT_EQ(fmt::format(L"Letter {}", L'\x40e'), L"Letter \x40e"); // Ў
|
||||
if (sizeof(wchar_t) == 4)
|
||||
EXPECT_EQ(fmt::format(fmt::runtime(L"{:𓀨>3}"), 42), L"𓀨42");
|
||||
EXPECT_EQ(fmt::format(L"{}c{}", L"ab", 1), L"abc1");
|
||||
}
|
||||
|
||||
TEST(xchar_test, is_formattable) {
|
||||
|
Loading…
Reference in New Issue
Block a user