]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/hashcomp.cpp
Fixed to dynamically allocate the fieldlist
[user/henk/code/inspircd.git] / src / hashcomp.cpp
index 924ffa940df1b51658f489c8361e6b5556b7cf26..34f53ea288f9114a1026d41dedb18210e997a242 100644 (file)
@@ -178,7 +178,7 @@ std::istream& operator>>(std::istream &is, irc::string &str)
        return is;
 }
 
-irc::tokenstream::tokenstream(std::string &source) : tokens(source), last_pushed(false)
+irc::tokenstream::tokenstream(const std::string &source) : tokens(source), last_pushed(false)
 {
        last_starting_position = tokens.begin();
        n = tokens.begin();
@@ -220,3 +220,30 @@ const std::string irc::tokenstream::GetToken()
        return "";
 }
 
+irc::commasepstream::commasepstream(const std::string &source) : tokens(source)
+{
+       last_starting_position = tokens.begin();
+       n = tokens.begin();
+}
+
+const std::string irc::commasepstream::GetToken()
+{
+       std::string::iterator lsp = last_starting_position;
+
+       while (n != tokens.end())
+       {
+               if ((*n == ',') || (n+1 == tokens.end()))
+               {
+                       last_starting_position = n+1;
+                       return std::string(lsp, n+1 == tokens.end() ? n+1  : n++);
+               }
+
+               n++;
+       }
+
+       return "";
+}
+
+irc::commasepstream::~commasepstream()
+{
+}