mirror of
https://github.com/fmtlib/fmt.git
synced 2024-11-04 17:26:42 +00:00
Move the implementation of ColorWriter::operator() to format.cc
This commit is contained in:
parent
6968ef3bb3
commit
43fe100875
10
format.cc
10
format.cc
@ -82,6 +82,8 @@ inline int FMT_SNPRINTF(char *buffer, size_t size, const char *format, ...) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif // _MSC_VER
|
#endif // _MSC_VER
|
||||||
|
|
||||||
|
const char RESET_COLOR[] = "\x1b[0m";
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@ -663,7 +665,13 @@ void fmt::BasicFormatter<Char>::DoFormat() {
|
|||||||
writer.buffer_.append(start, s);
|
writer.buffer_.append(start, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char fmt::ColorWriter::RESET[] = "\x1b[0m";
|
void fmt::ColorWriter::operator()(const fmt::BasicWriter<char> &w) const {
|
||||||
|
char escape[] = "\x1b[30m";
|
||||||
|
escape[3] = '0' + color_;
|
||||||
|
std::fputs(escape, stdout);
|
||||||
|
std::fwrite(w.data(), 1, w.size(), stdout);
|
||||||
|
std::fputs(RESET_COLOR, stdout);
|
||||||
|
}
|
||||||
|
|
||||||
// Explicit instantiations for char.
|
// Explicit instantiations for char.
|
||||||
|
|
||||||
|
9
format.h
9
format.h
@ -1472,19 +1472,12 @@ enum Color {BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE};
|
|||||||
class ColorWriter {
|
class ColorWriter {
|
||||||
private:
|
private:
|
||||||
Color color_;
|
Color color_;
|
||||||
static const char RESET[];
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ColorWriter(Color c) : color_(c) {}
|
explicit ColorWriter(Color c) : color_(c) {}
|
||||||
|
|
||||||
/** Writes the colored output to stdout. */
|
/** Writes the colored output to stdout. */
|
||||||
void operator()(const BasicWriter<char> &w) const {
|
void operator()(const BasicWriter<char> &w) const;
|
||||||
char escape[] = "\x1b[30m";
|
|
||||||
escape[3] = '0' + color_;
|
|
||||||
std::fputs(escape, stdout);
|
|
||||||
std::fwrite(w.data(), 1, w.size(), stdout);
|
|
||||||
std::fputs(RESET, stdout);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Formats a string and prints it to stdout with the given color.
|
// Formats a string and prints it to stdout with the given color.
|
||||||
|
Loading…
Reference in New Issue
Block a user