Blame src/cppunit/StringTools.cpp

Packit 8c9aa0
#include <cppunit/tools/StringTools.h>
Packit 8c9aa0
#include <cppunit/portability/Stream.h>
Packit 8c9aa0
#include <algorithm>
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_NS_BEGIN
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
std::string 
Packit 8c9aa0
StringTools::toString( int value )
Packit 8c9aa0
{
Packit 8c9aa0
  OStringStream stream;
Packit 8c9aa0
  stream << value;
Packit 8c9aa0
  return stream.str();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
std::string 
Packit 8c9aa0
StringTools::toString( double value )
Packit 8c9aa0
{
Packit 8c9aa0
  OStringStream stream;
Packit 8c9aa0
  stream << value;
Packit 8c9aa0
  return stream.str();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
StringTools::Strings
Packit 8c9aa0
StringTools::split( const std::string &text, 
Packit 8c9aa0
                    char separator )
Packit 8c9aa0
{
Packit 8c9aa0
  Strings splittedText;
Packit 8c9aa0
Packit 8c9aa0
  std::string::const_iterator itStart = text.begin();
Packit 8c9aa0
  while ( !text.empty() )
Packit 8c9aa0
  {
Packit 8c9aa0
    std::string::const_iterator itSeparator = std::find( itStart, 
Packit 8c9aa0
                                                         text.end(), 
Packit 8c9aa0
                                                         separator );
Packit 8c9aa0
    splittedText.push_back( text.substr( itStart - text.begin(),
Packit 8c9aa0
                                         itSeparator - itStart ) );
Packit 8c9aa0
    if ( itSeparator == text.end() )
Packit 8c9aa0
      break;
Packit 8c9aa0
    itStart = itSeparator +1;
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  return splittedText;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
std::string 
Packit 8c9aa0
StringTools::wrap( const std::string &text,
Packit 8c9aa0
                   int wrapColumn )
Packit 8c9aa0
{
Packit 8c9aa0
  const char lineBreak = '\n';
Packit 8c9aa0
  Strings lines = split( text, lineBreak );
Packit 8c9aa0
Packit 8c9aa0
  std::string wrapped;
Packit 8c9aa0
  for ( Strings::const_iterator it = lines.begin(); it != lines.end(); ++it )
Packit 8c9aa0
  {
Packit 8c9aa0
    if ( it != lines.begin() )
Packit 8c9aa0
      wrapped += lineBreak;
Packit 8c9aa0
Packit 8c9aa0
    const std::string &line = *it;
Packit 8c9aa0
    unsigned int index =0;
Packit 8c9aa0
    while ( index < line.length() )
Packit 8c9aa0
    {
Packit 8c9aa0
      std::string lineSlice( line.substr( index, wrapColumn ) );
Packit 8c9aa0
      wrapped += lineSlice;
Packit 8c9aa0
      index += wrapColumn;
Packit 8c9aa0
      if ( index < line.length() )
Packit 8c9aa0
        wrapped += lineBreak;
Packit 8c9aa0
    }
Packit 8c9aa0
  }
Packit 8c9aa0
Packit 8c9aa0
  return wrapped;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_NS_END
Packit 8c9aa0