[PATCH] D65854: [diagtool] Use `operator<<(Colors)` to print out colored output.
Rui Ueyama via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 8 00:04:04 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL368259: [diagtool] Use `operator<<(Colors)` to print out colored output. (authored by ruiu, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D65854?vs=213825&id=214071#toc
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D65854/new/
https://reviews.llvm.org/D65854
Files:
cfe/trunk/tools/diagtool/TreeView.cpp
Index: cfe/trunk/tools/diagtool/TreeView.cpp
===================================================================
--- cfe/trunk/tools/diagtool/TreeView.cpp
+++ cfe/trunk/tools/diagtool/TreeView.cpp
@@ -20,31 +20,14 @@
using namespace clang;
using namespace diagtool;
-static bool hasColors(const llvm::raw_ostream &out) {
- if (&out != &llvm::errs() && &out != &llvm::outs())
- return false;
- return llvm::errs().is_displayed() && llvm::outs().is_displayed();
-}
-
class TreePrinter {
+ using Colors = llvm::raw_ostream::Colors;
+
public:
llvm::raw_ostream &out;
- const bool ShowColors;
bool Internal;
- TreePrinter(llvm::raw_ostream &out)
- : out(out), ShowColors(hasColors(out)), Internal(false) {}
-
- void setColor(llvm::raw_ostream::Colors Color) {
- if (ShowColors)
- out << llvm::sys::Process::OutputColor(static_cast<char>(Color), false,
- false);
- }
-
- void resetColor() {
- if (ShowColors)
- out << llvm::sys::Process::ResetColor();
- }
+ TreePrinter(llvm::raw_ostream &out) : out(out), Internal(false) {}
static bool isIgnored(unsigned DiagID) {
// FIXME: This feels like a hack.
@@ -71,12 +54,11 @@
out.indent(Indent * 2);
if (enabledByDefault(Group))
- setColor(llvm::raw_ostream::GREEN);
+ out << Colors::GREEN;
else
- setColor(llvm::raw_ostream::YELLOW);
+ out << Colors::YELLOW;
- out << "-W" << Group.getName() << "\n";
- resetColor();
+ out << "-W" << Group.getName() << "\n" << Colors::RESET;
++Indent;
for (const GroupRecord &GR : Group.subgroups()) {
@@ -85,12 +67,10 @@
if (Internal) {
for (const DiagnosticRecord &DR : Group.diagnostics()) {
- if (ShowColors && !isIgnored(DR.DiagID))
- setColor(llvm::raw_ostream::GREEN);
+ if (!isIgnored(DR.DiagID))
+ out << Colors::GREEN;
out.indent(Indent * 2);
- out << DR.getName();
- resetColor();
- out << "\n";
+ out << DR.getName() << Colors::RESET << "\n";
}
}
}
@@ -136,13 +116,8 @@
}
void showKey() {
- if (ShowColors) {
- out << '\n';
- setColor(llvm::raw_ostream::GREEN);
- out << "GREEN";
- resetColor();
- out << " = enabled by default\n\n";
- }
+ out << '\n' << Colors::GREEN << "GREEN" << Colors::RESET
+ << " = enabled by default\n\n";
}
};
@@ -182,6 +157,8 @@
return -1;
}
+ out.enable_colors(out.has_colors());
+
TreePrinter TP(out);
TP.Internal = Internal;
TP.showKey();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65854.214071.patch
Type: text/x-patch
Size: 2589 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20190808/02f71226/attachment.bin>
More information about the cfe-commits
mailing list