forked from fmtlib/fmt
committed by
Victor Zverovich
parent
2730e90186
commit
a82c1dc6d9
@@ -504,24 +504,30 @@ template <typename S, typename Char = char_t<S> >
|
|||||||
void vprint(std::FILE* f, const text_style& ts, const S& format,
|
void vprint(std::FILE* f, const text_style& ts, const S& format,
|
||||||
basic_format_args<buffer_context<Char> > args) {
|
basic_format_args<buffer_context<Char> > args) {
|
||||||
bool has_style = false;
|
bool has_style = false;
|
||||||
|
basic_memory_buffer<Char> buf;
|
||||||
if (ts.has_emphasis()) {
|
if (ts.has_emphasis()) {
|
||||||
has_style = true;
|
has_style = true;
|
||||||
internal::fputs<Char>(internal::make_emphasis<Char>(ts.get_emphasis()), f);
|
auto emphasis = internal::make_emphasis<Char>(ts.get_emphasis());
|
||||||
|
buf.append(emphasis.begin(), emphasis.end());
|
||||||
}
|
}
|
||||||
if (ts.has_foreground()) {
|
if (ts.has_foreground()) {
|
||||||
has_style = true;
|
has_style = true;
|
||||||
internal::fputs<Char>(
|
auto foreground =
|
||||||
internal::make_foreground_color<Char>(ts.get_foreground()), f);
|
internal::make_foreground_color<Char>(ts.get_foreground());
|
||||||
|
buf.append(foreground.begin(), foreground.end());
|
||||||
}
|
}
|
||||||
if (ts.has_background()) {
|
if (ts.has_background()) {
|
||||||
has_style = true;
|
has_style = true;
|
||||||
internal::fputs<Char>(
|
auto background =
|
||||||
internal::make_background_color<Char>(ts.get_background()), f);
|
internal::make_background_color<Char>(ts.get_background());
|
||||||
|
buf.append(background.begin(), background.end());
|
||||||
}
|
}
|
||||||
vprint(f, format, args);
|
vformat_to(buf, format, args);
|
||||||
if (has_style) {
|
if (has_style) {
|
||||||
internal::reset_color<Char>(f);
|
internal::reset_color<Char>(buf);
|
||||||
}
|
}
|
||||||
|
buf.push_back(Char(0));
|
||||||
|
internal::fputs(buf.data(), f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user