|
|
@ -1240,9 +1240,24 @@ void pattern_formatter::handle_flag_(char flag, details::padding_info padding)
|
|
|
|
|
|
|
|
|
|
|
|
default: // Unknown flag appears as is
|
|
|
|
default: // Unknown flag appears as is
|
|
|
|
auto unknown_flag = std::make_unique<details::aggregate_formatter>();
|
|
|
|
auto unknown_flag = std::make_unique<details::aggregate_formatter>();
|
|
|
|
unknown_flag->add_ch('%');
|
|
|
|
|
|
|
|
unknown_flag->add_ch(flag);
|
|
|
|
if (!padding.truncate_)
|
|
|
|
formatters_.push_back((std::move(unknown_flag)));
|
|
|
|
{
|
|
|
|
|
|
|
|
unknown_flag->add_ch('%');
|
|
|
|
|
|
|
|
unknown_flag->add_ch(flag);
|
|
|
|
|
|
|
|
formatters_.push_back((std::move(unknown_flag)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// fix issue #1617 (prev char was '!' and should have been treated as funcname flag instead of truncating flag)
|
|
|
|
|
|
|
|
// spdlog::set_pattern("[%10!] %v") => "[ main] some message"
|
|
|
|
|
|
|
|
// spdlog::set_pattern("[%3!!] %v") => "[mai] some message"
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
padding.truncate_ = false;
|
|
|
|
|
|
|
|
formatters_.push_back(std::make_unique<details::source_funcname_formatter<Padder>>(padding));
|
|
|
|
|
|
|
|
unknown_flag->add_ch(flag);
|
|
|
|
|
|
|
|
formatters_.push_back((std::move(unknown_flag)));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|