forked from OSchip/llvm-project
Factor out common condition into an easier to understand helper function (NFC).
llvm-svn: 324935
This commit is contained in:
parent
a6716d9d81
commit
baf9c20b02
|
@ -20,9 +20,17 @@ static cl::opt<cl::boolOrDefault>
|
||||||
cl::desc("use colored syntax highlighting (default=autodetect)"),
|
cl::desc("use colored syntax highlighting (default=autodetect)"),
|
||||||
cl::init(cl::BOU_UNSET));
|
cl::init(cl::BOU_UNSET));
|
||||||
|
|
||||||
|
bool WithColor::colorsEnabled(raw_ostream &OS) {
|
||||||
|
switch (UseColor) {
|
||||||
|
case cl::BOU_UNSET: return OS.has_colors();
|
||||||
|
case cl::BOU_TRUE: return true;
|
||||||
|
case cl::BOU_FALSE: return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
WithColor::WithColor(raw_ostream &OS, enum HighlightColor Type) : OS(OS) {
|
WithColor::WithColor(raw_ostream &OS, enum HighlightColor Type) : OS(OS) {
|
||||||
// Detect color from terminal type unless the user passed the --color option.
|
// Detect color from terminal type unless the user passed the --color option.
|
||||||
if (UseColor == cl::BOU_UNSET ? OS.has_colors() : UseColor == cl::BOU_TRUE) {
|
if (colorsEnabled(OS)) {
|
||||||
switch (Type) {
|
switch (Type) {
|
||||||
case Address: OS.changeColor(raw_ostream::YELLOW); break;
|
case Address: OS.changeColor(raw_ostream::YELLOW); break;
|
||||||
case String: OS.changeColor(raw_ostream::GREEN); break;
|
case String: OS.changeColor(raw_ostream::GREEN); break;
|
||||||
|
@ -38,6 +46,6 @@ WithColor::WithColor(raw_ostream &OS, enum HighlightColor Type) : OS(OS) {
|
||||||
}
|
}
|
||||||
|
|
||||||
WithColor::~WithColor() {
|
WithColor::~WithColor() {
|
||||||
if (UseColor == cl::BOU_UNSET ? OS.has_colors() : UseColor == cl::BOU_TRUE)
|
if (colorsEnabled(OS))
|
||||||
OS.resetColor();
|
OS.resetColor();
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,8 @@ enum HighlightColor {
|
||||||
/// specific color.
|
/// specific color.
|
||||||
class WithColor {
|
class WithColor {
|
||||||
raw_ostream &OS;
|
raw_ostream &OS;
|
||||||
|
/// Determine whether colors should be displayed.
|
||||||
|
bool colorsEnabled(raw_ostream &OS);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/// To be used like this: WithColor(OS, syntax::String) << "text";
|
/// To be used like this: WithColor(OS, syntax::String) << "text";
|
||||||
|
|
Loading…
Reference in New Issue