add a raw_ostream::indent method, to be used like:

OS.indent(i) << "whatever";

people seem to like indenting things ;-)

llvm-svn: 79784
This commit is contained in:
Chris Lattner 2009-08-22 23:10:29 +00:00
parent 52cba58070
commit b20aefd460
2 changed files with 21 additions and 0 deletions

View File

@ -230,6 +230,10 @@ public:
// Formatted output, see the format() function in Support/Format.h.
raw_ostream &operator<<(const format_object_base &Fmt);
/// indent - Insert 'NumSpaces' spaces.
raw_ostream &indent(unsigned NumSpaces);
/// Changes the foreground color of text that will be output from this point
/// forward.
/// @param colors ANSI color to use, the special SAVEDCOLOR can be used to

View File

@ -289,6 +289,23 @@ raw_ostream &raw_ostream::operator<<(const format_object_base &Fmt) {
}
}
/// indent - Insert 'NumSpaces' spaces.
raw_ostream &raw_ostream::indent(unsigned NumSpaces) {
const char *Spaces = " ";
// Usually the indentation is small, handle it with a fastpath.
if (NumSpaces <= 16)
return write(Spaces, NumSpaces);
while (NumSpaces) {
unsigned NumToWrite = std::min(NumSpaces, 16U);
write(Spaces, NumToWrite);
NumSpaces -= NumToWrite;
}
return *this;
}
//===----------------------------------------------------------------------===//
// Formatted Output
//===----------------------------------------------------------------------===//