merge Goswin Brederlow "support download of index files for different archs"
[ntk/apt.git] / apt-pkg / contrib / strutl.cc
index 4c05f2d..bed5188 100644 (file)
@@ -983,6 +983,23 @@ bool TokSplitString(char Tok,char *Input,char **List,
    return true;
 }
                                                                        /*}}}*/
+// ExplodeString - Split a string up into a vector                     /*{{{*/
+// ---------------------------------------------------------------------
+/* This can be used to split a given string up into a vector, so the
+   propose is the same as in the method above and this one is a bit slower
+   also, but the advantage is that we an iteratable vector */
+vector<string> ExplodeString(string const &haystack, char const &split) {
+       string::const_iterator start = haystack.begin();
+       string::const_iterator end = start;
+       vector<string> exploded;
+       do {
+               for (; end != haystack.end() && *end != split; ++end);
+               exploded.push_back(string(start, end));
+               start = end;
+       } while (end != haystack.end() && (++end) != haystack.end());
+       return exploded;
+}
+                                                                       /*}}}*/
 // RegexChoice - Simple regex list/list matcher                                /*{{{*/
 // ---------------------------------------------------------------------
 /* */