summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/CppUnit/src/src/cppunit/StringTools.cpp')
-rw-r--r--3rdParty/CppUnit/src/src/cppunit/StringTools.cpp80
1 files changed, 80 insertions, 0 deletions
diff --git a/3rdParty/CppUnit/src/src/cppunit/StringTools.cpp b/3rdParty/CppUnit/src/src/cppunit/StringTools.cpp
new file mode 100644
index 0000000..dc995d8
--- /dev/null
+++ b/3rdParty/CppUnit/src/src/cppunit/StringTools.cpp
@@ -0,0 +1,80 @@
+#include <cppunit/tools/StringTools.h>
+#include <cppunit/portability/Stream.h>
+#include <algorithm>
+
+
+CPPUNIT_NS_BEGIN
+
+
+std::string
+StringTools::toString( int value )
+{
+ OStringStream stream;
+ stream << value;
+ return stream.str();
+}
+
+
+std::string
+StringTools::toString( double value )
+{
+ OStringStream stream;
+ stream << value;
+ return stream.str();
+}
+
+
+StringTools::Strings
+StringTools::split( const std::string &text,
+ char separator )
+{
+ Strings splittedText;
+
+ std::string::const_iterator itStart = text.begin();
+ while ( !text.empty() )
+ {
+ std::string::const_iterator itSeparator = std::find( itStart,
+ text.end(),
+ separator );
+ splittedText.push_back( text.substr( itStart - text.begin(),
+ itSeparator - itStart ) );
+ if ( itSeparator == text.end() )
+ break;
+ itStart = itSeparator +1;
+ }
+
+ return splittedText;
+}
+
+
+std::string
+StringTools::wrap( const std::string &text,
+ int wrapColumn )
+{
+ const char lineBreak = '\n';
+ Strings lines = split( text, lineBreak );
+
+ std::string wrapped;
+ for ( Strings::const_iterator it = lines.begin(); it != lines.end(); ++it )
+ {
+ if ( it != lines.begin() )
+ wrapped += lineBreak;
+
+ const std::string &line = *it;
+ unsigned int index =0;
+ while ( index < line.length() )
+ {
+ std::string lineSlice( line.substr( index, wrapColumn ) );
+ wrapped += lineSlice;
+ index += wrapColumn;
+ if ( index < line.length() )
+ wrapped += lineBreak;
+ }
+ }
+
+ return wrapped;
+}
+
+
+CPPUNIT_NS_END
+