#include "Terminal.h" namespace term { // this is SUCH a dodgy hack static bool forcecolour = false; void forceColour(bool state) { forcecolour = state; } string title(string const &str) { return string("]0;") + str + ""; } string background(Colour colour) { return string("[4") + str::stringify(colour) + "m"; } string foreground(Colour colour) { return string("[3") + str::stringify(colour) + "m"; } string colour(Colour colour) { return string("[3") + str::stringify(colour) + "m"; } string attribute(Attribute attribute) { return string("[") + str::stringify(attribute) + "m"; } ostream &black(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &red(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &green(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &yellow(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &blue(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &magenta(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &cyan(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &white(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &normal(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &bold(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &halfbright(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &underline(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &blink(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } ostream &reverse(ostream &os) { if (&cout == &os && (forcecolour || isatty(1))) os << ""; return os; } }