summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-pdbutil/DiffPrinter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-pdbutil/DiffPrinter.cpp')
-rw-r--r--llvm/tools/llvm-pdbutil/DiffPrinter.cpp38
1 files changed, 13 insertions, 25 deletions
diff --git a/llvm/tools/llvm-pdbutil/DiffPrinter.cpp b/llvm/tools/llvm-pdbutil/DiffPrinter.cpp
index dd61cc18259..45641e2e4b0 100644
--- a/llvm/tools/llvm-pdbutil/DiffPrinter.cpp
+++ b/llvm/tools/llvm-pdbutil/DiffPrinter.cpp
@@ -6,31 +6,18 @@
using namespace llvm;
using namespace llvm::pdb;
-namespace {
-struct Colorize {
- Colorize(raw_ostream &OS, DiffResult Result) : OS(OS) {
- if (!OS.has_colors())
- return;
- switch (Result) {
- case DiffResult::IDENTICAL:
- OS.changeColor(raw_ostream::Colors::GREEN, false);
- break;
- case DiffResult::EQUIVALENT:
- OS.changeColor(raw_ostream::Colors::YELLOW, true);
- break;
- default:
- OS.changeColor(raw_ostream::Colors::RED, false);
- break;
- }
- }
-
- ~Colorize() {
- if (OS.has_colors())
- OS.resetColor();
+static void setColor(llvm::raw_ostream &OS, DiffResult Result) {
+ switch (Result) {
+ case DiffResult::IDENTICAL:
+ OS.changeColor(raw_ostream::Colors::GREEN, false);
+ break;
+ case DiffResult::EQUIVALENT:
+ OS.changeColor(raw_ostream::Colors::YELLOW, true);
+ break;
+ default:
+ OS.changeColor(raw_ostream::Colors::RED, false);
+ break;
}
-
- raw_ostream &OS;
-};
}
DiffPrinter::DiffPrinter(uint32_t Indent, StringRef Header,
@@ -137,8 +124,9 @@ void DiffPrinter::printValue(StringRef Value, DiffResult C, AlignStyle Style,
std::string FormattedItem =
formatv("{0}", fmt_align(Value, Style, Width)).str();
if (C != DiffResult::UNSPECIFIED) {
- Colorize Color(OS, C);
+ setColor(OS, C);
OS << FormattedItem;
+ OS.resetColor();
} else
OS << FormattedItem;
if (Style == AlignStyle::Right)
OpenPOWER on IntegriCloud