diff options
| author | David Greene <greened@obbligato.org> | 2009-07-13 16:49:27 +0000 | 
|---|---|---|
| committer | David Greene <greened@obbligato.org> | 2009-07-13 16:49:27 +0000 | 
| commit | 20f6ac073800ded66709ec603a88b68e4bef5caa (patch) | |
| tree | 3acbec5989e937a503cd2e0b7d04395397100b55 /llvm/lib/Support | |
| parent | 290b052d43e8656a0226553e3601ebaeb51abbac (diff) | |
| download | bcm5719-llvm-20f6ac073800ded66709ec603a88b68e4bef5caa.tar.gz bcm5719-llvm-20f6ac073800ded66709ec603a88b68e4bef5caa.zip | |
Make some more changes suggested by Chris.  Manipulators go away.
llvm-svn: 75472
Diffstat (limited to 'llvm/lib/Support')
| -rw-r--r-- | llvm/lib/Support/FormattedStream.cpp | 99 | 
1 files changed, 41 insertions, 58 deletions
| diff --git a/llvm/lib/Support/FormattedStream.cpp b/llvm/lib/Support/FormattedStream.cpp index d471d53df83..df91641962f 100644 --- a/llvm/lib/Support/FormattedStream.cpp +++ b/llvm/lib/Support/FormattedStream.cpp @@ -1,74 +1,57 @@ -//===-- llvm/CodeGen/AsmStream.cpp - AsmStream Framework --------*- C++ -*-===// +//===-- llvm/Support/FormattedStream.cpp - Formatted streams ----*- C++ -*-===//  //  //                     The LLVM Compiler Infrastructure  // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details.  //  //===----------------------------------------------------------------------===//  // -// This file contains instantiations of "standard" AsmOStreams. +// This file contains the implementation of formatted_raw_ostream and +// friends.  //  //===----------------------------------------------------------------------===//  #include "llvm/Support/FormattedStream.h" -namespace llvm { -  /// ComputeColumn - Examine the current output and figure out which -  /// column we end up in after output. -  /// -  void formatted_raw_ostream::ComputeColumn(const char *Ptr, unsigned Size) -  { -    // Keep track of the current column by scanning the string for -    // special characters - -    // Find the last newline.  This is our column start.  If there -    // is no newline, start with the current column. -    const char *nlpos = NULL; -    for (const char *pos = Ptr + Size, *epos = Ptr; pos > epos; --pos) { -      if (*(pos-1) == '\n') { -        nlpos = pos-1; -        // The newline will be counted, setting this to zero.  We -        // need to do it this way in case nlpos is Ptr. -        Column = -1; -        break; -      } -    } - -    if (nlpos == NULL) { -      nlpos = Ptr; -    } - -    // Walk through looking for tabs and advance column as appropriate -    for (const char *pos = nlpos, *epos = Ptr + Size; pos != epos; ++pos) { -      ++Column; -      if (*pos == '\t') { -        // Advance to next tab stop (every eight characters) -        Column += ((8 - (Column & 0x7)) & 0x7); -        assert(!(Column & 0x3) && "Column out of alignment"); -      } -    } +using namespace llvm; + +/// ComputeColumn - Examine the current output and figure out which +/// column we end up in after output. +/// +void formatted_raw_ostream::ComputeColumn(const char *Ptr, unsigned Size) +{ +  // Keep track of the current column by scanning the string for +  // special characters + +  for (const char *epos = Ptr + Size; Ptr != epos; ++Ptr) { +    ++Column; +    if (*Ptr == '\n' || *Ptr == '\r') +      Column = 0; +    else if (*Ptr == '\t') +      Column += (8 - (Column & 0x7)) & 0x7;    } +} -  /// PadToColumn - Align the output to some column number -  /// -  /// \param NewCol - The column to move to -  /// \param MinPad - The minimum space to give after the most recent -  /// I/O, even if the current column + minpad > newcol -  /// -  void formatted_raw_ostream::PadToColumn(unsigned NewCol, unsigned MinPad)  -  { -    flush(); - -    // Output spaces until we reach the desired column -    unsigned num = NewCol - Column; -    if (NewCol < Column || num < MinPad) { -      num = MinPad; -    } +/// PadToColumn - Align the output to some column number. +/// +/// \param NewCol - The column to move to. +/// \param MinPad - The minimum space to give after the most recent +/// I/O, even if the current column + minpad > newcol. +/// +void formatted_raw_ostream::PadToColumn(unsigned NewCol, unsigned MinPad)  +{ +  flush(); + +  // Output spaces until we reach the desired column. +  unsigned num = NewCol - Column; +  if (NewCol < Column || num < MinPad) { +    num = MinPad; +  } -    // TODO: Write a whole string at a time -    while (num-- > 0) { -      write(' '); -    } +  // TODO: Write a whole string at a time. +  while (num-- > 0) { +    write(' ');    }  } + | 

