diff options
Diffstat (limited to 'llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp')
| -rw-r--r-- | llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp b/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp index 65d66fc8f51..46c19bcc451 100644 --- a/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp +++ b/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp @@ -20,9 +20,17 @@ static cl::opt<cl::boolOrDefault>               cl::desc("use colored syntax highlighting (default=autodetect)"),               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) {    // 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) {      case Address:    OS.changeColor(raw_ostream::YELLOW);         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() { -  if (UseColor == cl::BOU_UNSET ? OS.has_colors() : UseColor == cl::BOU_TRUE) +  if (colorsEnabled(OS))      OS.resetColor();  } | 

