summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/raw_ostream.cpp
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-04-16 08:56:50 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-04-16 08:56:50 +0000
commit13d16f3bf3f9097ed30f411f90397372c73e664b (patch)
tree9869cf79469e6b4daa4347b182af3ff57ffd0c69 /llvm/lib/Support/raw_ostream.cpp
parentf08a5a45fb991b1c1ec59922acf98f5a67be2d20 (diff)
downloadbcm5719-llvm-13d16f3bf3f9097ed30f411f90397372c73e664b.tar.gz
bcm5719-llvm-13d16f3bf3f9097ed30f411f90397372c73e664b.zip
Reapply 'Add reverseColor to raw_ostream'.
To be used in printing unprintable source in clang diagnostics. Patch by Seth Cantrell, with a minor fix for mingw by me. llvm-svn: 154805
Diffstat (limited to 'llvm/lib/Support/raw_ostream.cpp')
-rw-r--r--llvm/lib/Support/raw_ostream.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Support/raw_ostream.cpp b/llvm/lib/Support/raw_ostream.cpp
index 72d3986f41d..86cdca15727 100644
--- a/llvm/lib/Support/raw_ostream.cpp
+++ b/llvm/lib/Support/raw_ostream.cpp
@@ -633,6 +633,19 @@ raw_ostream &raw_fd_ostream::resetColor() {
return *this;
}
+raw_ostream &raw_fd_ostream::reverseColor() {
+ if (sys::Process::ColorNeedsFlush())
+ flush();
+ const char *colorcode = sys::Process::OutputReverse();
+ if (colorcode) {
+ size_t len = strlen(colorcode);
+ write(colorcode, len);
+ // don't account colors towards output characters
+ pos -= len;
+ }
+ return *this;
+}
+
bool raw_fd_ostream::is_displayed() const {
return sys::Process::FileDescriptorIsDisplayed(FD);
}
OpenPOWER on IntegriCloud