CVS commit by domi: found a bug: when escaping a val ending in "::", you got wrong results with explode
M +14 -1 stl_util.cpp 1.3 --- kdenonbeta/kdedebian/kapture/kapture/stl_util.cpp #1.2:1.3 @@ -20,4 +20,8 @@ #include <iostream> +#ifdef DOMI_DEBUG +#include <algorithm> +#include <iterator> +#endif #include "stl_util.h" @@ -67,5 +71,5 @@ list<string> capture::explode (string s, //cerr << "orig: " << s . substr (0, pos) << endl; //cerr << "unesc: " << unescape (s . substr (0, pos), delim) << endl; - } else minpos = pos + 1; + } else minpos = pos + delim.length(); //cerr << "pos = " << pos << ", minpos = " << minpos << endl; } @@ -128,2 +132,11 @@ argmap capture::string2argmap (string s) return res; } + +#ifdef DOMI_DEBUG +int main() { + string test = "appels@::met@::::frieten!!@@"; + list<string> ret = explode( test, "::" ); + std::copy( ret.begin(), ret.end(), std::ostream_iterator<std::string>( cout, "\n" ) ); + return 0; +} +#endif