mirror of
https://github.com/fmtlib/fmt.git
synced 2025-02-07 06:39:59 +00:00
Minor cleanup
This commit is contained in:
parent
993f56cff6
commit
3135421257
@ -926,9 +926,8 @@ template <typename T> class buffer {
|
||||
|
||||
/// Appends data to the end of the buffer.
|
||||
template <typename U>
|
||||
// Workaround for Visual Studio 2019 to fix error C2893: Failed to specialize
|
||||
// function template 'void fmt::v11::detail::buffer<T>::append(const U *,const
|
||||
// U *)'
|
||||
// Workaround for MSVC2019 to fix error C2893: Failed to specialize function
|
||||
// template 'void fmt::v11::detail::buffer<T>::append(const U *,const U *)'.
|
||||
#if !FMT_MSC_VERSION || FMT_MSC_VERSION >= 1930
|
||||
FMT_CONSTEXPR20
|
||||
#endif
|
||||
@ -2285,7 +2284,7 @@ template <typename Char>
|
||||
FMT_CONSTEXPR auto code_point_length(const Char* begin) -> int {
|
||||
if (const_check(sizeof(Char) != 1)) return 1;
|
||||
auto c = static_cast<unsigned char>(*begin);
|
||||
return static_cast<int>((0x3a55000000000000ull >> (2 * (c >> 3))) & 0x3) + 1;
|
||||
return static_cast<int>((0x3a55000000000000ull >> (2 * (c >> 3))) & 3) + 1;
|
||||
}
|
||||
|
||||
// Return the result via the out param to workaround gcc bug 77539.
|
||||
@ -2880,8 +2879,7 @@ inline void report_truncation(bool truncated) {
|
||||
if (truncated) report_error("output is truncated");
|
||||
}
|
||||
|
||||
// Use vformat_args and avoid type_identity to keep symbols short and workaround
|
||||
// a GCC <= 4.8 bug.
|
||||
// Use vformat_args and avoid type_identity to keep symbols short.
|
||||
template <typename Char = char> struct vformat_args {
|
||||
using type = basic_format_args<buffered_context<Char>>;
|
||||
};
|
||||
|
@ -2264,26 +2264,24 @@ FMT_CONSTEXPR auto write(OutputIt out, basic_string_view<Char> s,
|
||||
auto size = s.size();
|
||||
if (specs.precision >= 0 && to_unsigned(specs.precision) < size)
|
||||
size = code_point_index(s, to_unsigned(specs.precision));
|
||||
bool is_debug = specs.type() == presentation_type::debug;
|
||||
size_t width = 0;
|
||||
|
||||
bool is_debug = specs.type() == presentation_type::debug;
|
||||
if (is_debug) {
|
||||
auto buf = counting_buffer<Char>();
|
||||
write_escaped_string(basic_appender<Char>(buf), s);
|
||||
size = buf.count();
|
||||
}
|
||||
|
||||
size_t width = 0;
|
||||
if (specs.width != 0) {
|
||||
if (is_debug)
|
||||
width = size;
|
||||
else
|
||||
width = compute_width(basic_string_view<Char>(data, size));
|
||||
width =
|
||||
is_debug ? size : compute_width(basic_string_view<Char>(data, size));
|
||||
}
|
||||
return write_padded<Char>(out, specs, size, width,
|
||||
[=](reserve_iterator<OutputIt> it) {
|
||||
if (is_debug) return write_escaped_string(it, s);
|
||||
return copy<Char>(data, data + size, it);
|
||||
});
|
||||
return write_padded<Char>(
|
||||
out, specs, size, width, [=](reserve_iterator<OutputIt> it) {
|
||||
return is_debug ? write_escaped_string(it, s)
|
||||
: copy<Char>(data, data + size, it);
|
||||
});
|
||||
}
|
||||
template <typename Char, typename OutputIt>
|
||||
FMT_CONSTEXPR auto write(OutputIt out,
|
||||
|
Loading…
x
Reference in New Issue
Block a user