Fix precision with non-ascii characters
This commit is contained in:
parent
05e3a9233a
commit
f5cd979adf
@ -773,7 +773,8 @@ inline auto code_point_index(string_view s, size_t n) -> size_t {
|
|||||||
for (size_t i = 0, size = s.size(); i != size; ++i) {
|
for (size_t i = 0, size = s.size(); i != size; ++i) {
|
||||||
if ((data[i] & 0xc0) != 0x80 && ++num_code_points > n) return i;
|
if ((data[i] & 0xc0) != 0x80 && ++num_code_points > n) return i;
|
||||||
}
|
}
|
||||||
return s.size();
|
size_t size = s.size();
|
||||||
|
return n < size ? n : size;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline auto code_point_index(basic_string_view<char8_type> s, size_t n)
|
inline auto code_point_index(basic_string_view<char8_type> s, size_t n)
|
||||||
|
|||||||
@ -155,6 +155,8 @@ TEST(xchar_test, format_utf8_precision) {
|
|||||||
EXPECT_EQ(fmt::detail::compute_width(result), 4);
|
EXPECT_EQ(fmt::detail::compute_width(result), 4);
|
||||||
EXPECT_EQ(result.size(), 5);
|
EXPECT_EQ(result.size(), 5);
|
||||||
EXPECT_EQ(from_u8str(result), from_u8str(str.substr(0, 5)));
|
EXPECT_EQ(from_u8str(result), from_u8str(str.substr(0, 5)));
|
||||||
|
|
||||||
|
EXPECT_EQ(fmt::format("{:.0}", "\xad").size(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(xchar_test, format_to) {
|
TEST(xchar_test, format_to) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user