From 4a4d72f9177aec7a1f2025cf0c5eeda48d932728 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Wed, 1 May 2019 10:06:42 -0700 Subject: [PATCH] Fix handling of invalid string in chrono formatting --- include/fmt/chrono.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/fmt/chrono.h b/include/fmt/chrono.h index 53563860271a..2b289a879189 100644 --- a/include/fmt/chrono.h +++ b/include/fmt/chrono.h @@ -593,12 +593,12 @@ struct formatter, Char> { FMT_CONSTEXPR parse_range do_parse(basic_parse_context& ctx) { auto begin = ctx.begin(), end = ctx.end(); - if (begin == end) return {begin, end}; + if (begin == end || *begin == '}') return {begin, begin}; spec_handler handler{*this, ctx, format_str}; begin = internal::parse_align(begin, end, handler); - if (begin == end) return {begin, end}; + if (begin == end) return {begin, begin}; begin = internal::parse_width(begin, end, handler); - if (begin == end) return {begin, end}; + if (begin == end) return {begin, begin}; if (*begin == '.') { if (std::is_floating_point::value) begin = internal::parse_precision(begin, end, handler);