Author: ruiu Date: Fri Aug 2 00:22:34 2019 New Revision: 367658 URL: http://llvm.org/viewvc/llvm-project?rev=367658&view=rev Log: Revert r367649: Improve raw_ostream so that you can "write" colors using operator<<
This reverts commit r367649 in an attempt to unbreak Windows bots. Modified: cfe/trunk/include/clang/AST/ASTDumperUtils.h cfe/trunk/lib/Analysis/CFG.cpp cfe/trunk/lib/Frontend/CompilerInvocation.cpp cfe/trunk/lib/Frontend/TextDiagnostic.cpp cfe/trunk/tools/diagtool/TreeView.cpp Modified: cfe/trunk/include/clang/AST/ASTDumperUtils.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/ASTDumperUtils.h?rev=367658&r1=367657&r2=367658&view=diff ============================================================================== --- cfe/trunk/include/clang/AST/ASTDumperUtils.h (original) +++ cfe/trunk/include/clang/AST/ASTDumperUtils.h Fri Aug 2 00:22:34 2019 @@ -27,7 +27,7 @@ enum ASTDumpOutputFormat { // Do not use bold yellow for any text. It is hard to read on white screens. struct TerminalColor { - llvm::raw_ostream::Color Color; + llvm::raw_ostream::Colors Color; bool Bold; }; Modified: cfe/trunk/lib/Analysis/CFG.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/CFG.cpp?rev=367658&r1=367657&r2=367658&view=diff ============================================================================== --- cfe/trunk/lib/Analysis/CFG.cpp (original) +++ cfe/trunk/lib/Analysis/CFG.cpp Fri Aug 2 00:22:34 2019 @@ -5509,7 +5509,7 @@ static void print_block(raw_ostream &OS, if (print_edges) { // Print the predecessors of this block. if (!B.pred_empty()) { - const raw_ostream::Color Color = raw_ostream::BLUE; + const raw_ostream::Colors Color = raw_ostream::BLUE; if (ShowColors) OS.changeColor(Color); OS << " Preds " ; @@ -5546,7 +5546,7 @@ static void print_block(raw_ostream &OS, // Print the successors of this block. if (!B.succ_empty()) { - const raw_ostream::Color Color = raw_ostream::MAGENTA; + const raw_ostream::Colors Color = raw_ostream::MAGENTA; if (ShowColors) OS.changeColor(Color); OS << " Succs "; Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=367658&r1=367657&r2=367658&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original) +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Fri Aug 2 00:22:34 2019 @@ -1491,10 +1491,6 @@ bool clang::ParseDiagnosticArgs(Diagnost OPT_fno_diagnostics_show_option, DefaultShowOpt); llvm::sys::Process::UseANSIEscapeCodes(Args.hasArg(OPT_fansi_escape_codes)); - if (Opts.ShowColors) { - llvm::outs().enable_colors(); - llvm::errs().enable_colors(); - } // Default behavior is to not to show note include stacks. Opts.ShowNoteIncludeStack = false; Modified: cfe/trunk/lib/Frontend/TextDiagnostic.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/TextDiagnostic.cpp?rev=367658&r1=367657&r2=367658&view=diff ============================================================================== --- cfe/trunk/lib/Frontend/TextDiagnostic.cpp (original) +++ cfe/trunk/lib/Frontend/TextDiagnostic.cpp Fri Aug 2 00:22:34 2019 @@ -23,16 +23,23 @@ using namespace clang; -static const raw_ostream::Color noteColor = raw_ostream::BLACK; -static const raw_ostream::Color remarkColor = raw_ostream::BLUE; -static const raw_ostream::Color fixitColor = raw_ostream::GREEN; -static const raw_ostream::Color caretColor = raw_ostream::GREEN; -static const raw_ostream::Color warningColor = raw_ostream::MAGENTA; -static const raw_ostream::Color templateColor = raw_ostream::CYAN; -static const raw_ostream::Color errorColor = raw_ostream::RED; -static const raw_ostream::Color fatalColor = raw_ostream::RED; +static const enum raw_ostream::Colors noteColor = + raw_ostream::BLACK; +static const enum raw_ostream::Colors remarkColor = + raw_ostream::BLUE; +static const enum raw_ostream::Colors fixitColor = + raw_ostream::GREEN; +static const enum raw_ostream::Colors caretColor = + raw_ostream::GREEN; +static const enum raw_ostream::Colors warningColor = + raw_ostream::MAGENTA; +static const enum raw_ostream::Colors templateColor = + raw_ostream::CYAN; +static const enum raw_ostream::Colors errorColor = raw_ostream::RED; +static const enum raw_ostream::Colors fatalColor = raw_ostream::RED; // Used for changing only the bold attribute. -static const raw_ostream::Color savedColor = raw_ostream::SAVEDCOLOR; +static const enum raw_ostream::Colors savedColor = + raw_ostream::SAVEDCOLOR; /// Add highlights to differences in template strings. static void applyTemplateHighlighting(raw_ostream &OS, StringRef Str, Modified: cfe/trunk/tools/diagtool/TreeView.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/diagtool/TreeView.cpp?rev=367658&r1=367657&r2=367658&view=diff ============================================================================== --- cfe/trunk/tools/diagtool/TreeView.cpp (original) +++ cfe/trunk/tools/diagtool/TreeView.cpp Fri Aug 2 00:22:34 2019 @@ -20,16 +20,29 @@ DEF_DIAGTOOL("tree", "Show warning flags using namespace clang; using namespace diagtool; -class TreePrinter { - using Color = llvm::raw_ostream::Color; +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 { public: llvm::raw_ostream &out; + const bool ShowColors; bool Internal; - TreePrinter(llvm::raw_ostream &out) : out(out), Internal(false) { - if (&out != &llvm::errs() && &out != &llvm::outs()) - out.disable_colors(); + 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(Color, false, false); + } + + void resetColor() { + if (ShowColors) + out << llvm::sys::Process::ResetColor(); } static bool isIgnored(unsigned DiagID) { @@ -57,11 +70,12 @@ public: out.indent(Indent * 2); if (enabledByDefault(Group)) - out << Color::GREEN; + setColor(llvm::raw_ostream::GREEN); else - out << Color::YELLOW; + setColor(llvm::raw_ostream::YELLOW); - out << "-W" << Group.getName() << "\n" << Color::RESET; + out << "-W" << Group.getName() << "\n"; + resetColor(); ++Indent; for (const GroupRecord &GR : Group.subgroups()) { @@ -70,10 +84,12 @@ public: if (Internal) { for (const DiagnosticRecord &DR : Group.diagnostics()) { - if (!isIgnored(DR.DiagID)) - out << Color::GREEN; + if (ShowColors && !isIgnored(DR.DiagID)) + setColor(llvm::raw_ostream::GREEN); out.indent(Indent * 2); - out << DR.getName() << Color::RESET << "\n"; + out << DR.getName(); + resetColor(); + out << "\n"; } } } @@ -119,9 +135,13 @@ public: } void showKey() { - out << '\n' - << Color::GREEN << "GREEN" << Color::RESET - << " = enabled by default\n\n"; + if (ShowColors) { + out << '\n'; + setColor(llvm::raw_ostream::GREEN); + out << "GREEN"; + resetColor(); + out << " = enabled by default\n\n"; + } } }; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits