Fix handling of numeric alignment with no width (#675)

This commit is contained in:
Victor Zverovich 2018-03-11 21:04:42 -04:00
parent 9facc119a6
commit 7db0e94b9e
2 changed files with 3 additions and 1 deletions

View File

@ -2787,7 +2787,8 @@ void basic_writer<Range>::write_double(T value, const format_specs &spec) {
if (sign) {
*reserve(1) = sign;
sign = 0;
--as.width_;
if (as.width_)
--as.width_;
}
as.align_ = ALIGN_RIGHT;
} else {

View File

@ -532,6 +532,7 @@ TEST(FormatterTest, NumericAlign) {
format_error, "format specifier requires numeric argument");
EXPECT_THROW_MSG(format("{0:=8}", reinterpret_cast<void*>(0xface)),
format_error, "format specifier requires numeric argument");
EXPECT_EQ(" 1", fmt::format("{:= }", 1.0));
}
TEST(FormatterTest, CenterAlign) {