Disable printing the reset escape code when no style modifiers where applied.

This commit is contained in:
Nicolas Lesser 2018-12-09 16:32:31 +01:00
parent bf1f1c73e3
commit 35510be63b
No known key found for this signature in database
GPG Key ID: 55F9BC675F85A2DF

View File

@ -429,20 +429,26 @@ template <
typename S, typename Char = typename internal::char_t<S>::type> typename S, typename Char = typename internal::char_t<S>::type>
void vprint(const text_style &tf, const S &format, void vprint(const text_style &tf, const S &format,
basic_format_args<typename buffer_context<Char>::type> args) { basic_format_args<typename buffer_context<Char>::type> args) {
bool has_style = false;
if (tf.has_emphasis()) { if (tf.has_emphasis()) {
has_style = true;
internal::fputs<Char>( internal::fputs<Char>(
internal::make_emphasis<Char>(tf.get_emphasis()), stdout); internal::make_emphasis<Char>(tf.get_emphasis()), stdout);
} }
if (tf.has_foreground()) { if (tf.has_foreground()) {
has_style = true;
internal::fputs<Char>( internal::fputs<Char>(
internal::make_foreground_color<Char>(tf.get_foreground()), stdout); internal::make_foreground_color<Char>(tf.get_foreground()), stdout);
} }
if (tf.has_background()) { if (tf.has_background()) {
has_style = true;
internal::fputs<Char>( internal::fputs<Char>(
internal::make_background_color<Char>(tf.get_background()), stdout); internal::make_background_color<Char>(tf.get_background()), stdout);
} }
vprint(format, args); vprint(format, args);
internal::reset_color<Char>(stdout); if (has_style) {
internal::reset_color<Char>(stdout);
}
} }
/** /**