summaryrefslogtreecommitdiff
path: root/src/cppunit/StringTools.cpp
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2002-06-16 16:55:58 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2002-06-16 16:55:58 +0000
commit0a810d68d0550ba6f7f28f2e0dfcef691bdca7b4 (patch)
treea060d291bf0dfb6c75720ecbce7f27927b326a5b /src/cppunit/StringTools.cpp
parent73a038f1eaa268cec330d971fb550befec6f7798 (diff)
downloadcppunit-0a810d68d0550ba6f7f28f2e0dfcef691bdca7b4.tar.gz
Release 1.
release 1.9.8 * include/cppunit/plugin/TestPlugIn.h: updated documentation. * include/cppunit/tools/XmlDocument.h: updated documentation. * include/cppunit/tools/StringTools.h: * src/cppunit/StringTools.cpp: added split() and wrap() functions. * include/cppunit/CompilerOutputter.h: * src/cppunit/CompilerOutputter.cpp: extracted wrap() and splitMessageIntoLines() to StringTools. * include/cppunit/XmlOutputterHook.h: * src/cppunit/XmlOutputterHook.cpp: removed rooNode parameter from beginDocument() and endDocument(). It can be retreive from document. Renamed 'node' occurences to 'element'. * include/cppunit/XmlOutputter.h: * src/cppunit/XmlOutputter.cpp: updated against XmlOutputterHook changes. Renamed 'node' occurences to 'element'. * examples/ClockerPlugIn/ClockerXmlHook.h: * examples/ClockerPlugIn/ClockerXmlHook.cpp: updated against XmlOutputterHook changes. * examples/cppunittest/XmlElementTest.h: * examples/cppunittest/XmlElementTest.cpp: Renamed 'node' occurences to 'element'. * examples/cppunittest/XmlOutputterTest.cpp: updated against XmlOutputterHook changes. * examples/cppunittest/StringToolsTest.h: * examples/cppunittest/StringToolsTest.cpp: added. Unit tests for StringTools. Turn out that VC++ dismiss empty lines in tools output, which is the reason why empty lines where not printed in CompilerOutputter.
Diffstat (limited to 'src/cppunit/StringTools.cpp')
-rw-r--r--src/cppunit/StringTools.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/cppunit/StringTools.cpp b/src/cppunit/StringTools.cpp
index 9bfb939..7dc50ea 100644
--- a/src/cppunit/StringTools.cpp
+++ b/src/cppunit/StringTools.cpp
@@ -1,4 +1,5 @@
#include <cppunit/tools/StringTools.h>
+#include <algorithm>
namespace CppUnit
@@ -22,6 +23,56 @@ namespace StringTools
}
+ Strings 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 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;
+ 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;
+ }
+
+
} // namespace StringTools