diff --git a/doc/syntax.md b/doc/syntax.md index c0b3193c..f1e01fac 100644 --- a/doc/syntax.md +++ b/doc/syntax.md @@ -667,7 +667,7 @@ fmt::print("{}", std::vector{'h', 'e', 'l', 'l', 'o'}); fmt::print("{:n}", std::vector{'h', 'e', 'l', 'l', 'o'}); // Output: 'h', 'e', 'l', 'l', 'o' fmt::print("{:s}", std::vector{'h', 'e', 'l', 'l', 'o'}); -// Output: "hello" +// Output: hello fmt::print("{:?s}", std::vector{'h', 'e', 'l', 'l', 'o', '\n'}); // Output: "hello\n" fmt::print("{::}", std::vector{'h', 'e', 'l', 'l', 'o'}); diff --git a/include/fmt/ranges.h b/include/fmt/ranges.h index 19a3e333..50f43c84 100644 --- a/include/fmt/ranges.h +++ b/include/fmt/ranges.h @@ -467,7 +467,6 @@ struct range_formatter< break; case '?': is_debug = true; - set_brackets({}, {}); ++it; if (it == end || *it != 's') report_error("invalid format specifier"); FMT_FALLTHROUGH; @@ -475,8 +474,7 @@ struct range_formatter< if (!std::is_same::value) report_error("invalid format specifier"); if (!is_debug) { - set_brackets(detail::string_literal{}, - detail::string_literal{}); + set_brackets({}, {}); set_separator({}); detail::maybe_set_debug_format(underlying_, false); } diff --git a/test/ranges-test.cc b/test/ranges-test.cc index 8a9a0832..e61ab81e 100644 --- a/test/ranges-test.cc +++ b/test/ranges-test.cc @@ -59,10 +59,10 @@ TEST(ranges_test, format_vector) { auto vec = std::vector{'a', '\n', '\t'}; auto vvc = std::vector>{vc, vc}; EXPECT_EQ(fmt::format("{}", vc), "['a', 'b', 'c']"); - EXPECT_EQ(fmt::format("{:s}", vc), "\"abc\""); + EXPECT_EQ(fmt::format("{:s}", vc), "abc"); EXPECT_EQ(fmt::format("{:?s}", vec), "\"a\\n\\t\""); - EXPECT_EQ(fmt::format("{:s}", vec), "\"a\n\t\""); - EXPECT_EQ(fmt::format("{::s}", vvc), "[\"abc\", \"abc\"]"); + EXPECT_EQ(fmt::format("{:s}", vec), "a\n\t"); + EXPECT_EQ(fmt::format("{::s}", vvc), "[abc, abc]"); EXPECT_EQ(fmt::format("{}", vvc), "[['a', 'b', 'c'], ['a', 'b', 'c']]"); EXPECT_EQ(fmt::format("{:n}", vvc), "['a', 'b', 'c'], ['a', 'b', 'c']"); EXPECT_EQ(fmt::format("{:n:n}", vvc), "'a', 'b', 'c', 'a', 'b', 'c'");