MCPcopy Create free account
hub / github.com/awslabs/aws-lambda-cpp / Colorize

Class Colorize

src/backward.h:3971–4006  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3969} // namespace Color
3970
3971class Colorize {
3972public:
3973 Colorize(std::ostream& os) : _os(os), _reset(false), _enabled(false) {}
3974
3975 void activate(ColorMode::type mode) { _enabled = mode == ColorMode::always; }
3976
3977 void activate(ColorMode::type mode, FILE* fp) { activate(mode, fileno(fp)); }
3978
3979 void set_color(Color::type ccode)
3980 {
3981 if (!_enabled)
3982 return;
3983
3984 // I assume that the terminal can handle basic colors. Seriously I
3985 // don't want to deal with all the termcap shit.
3986 _os << "\033[" << static_cast<int>(ccode) << "m";
3987 _reset = (ccode != Color::reset);
3988 }
3989
3990 ~Colorize()
3991 {
3992 if (_reset) {
3993 set_color(Color::reset);
3994 }
3995 }
3996
3997private:
3998 void activate(ColorMode::type mode, int fd)
3999 {
4000 activate(mode == ColorMode::automatic && isatty(fd) ? ColorMode::always : mode);
4001 }
4002
4003 std::ostream& _os;
4004 bool _reset;
4005 bool _enabled;
4006};
4007
4008#else // ndef BACKWARD_SYSTEM_LINUX
4009

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected