diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-07-16 02:15:45 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-07-16 02:15:45 +0000 |
commit | 654482dc4fdc10d215acffe552a6eb78d67dd638 (patch) | |
tree | 899ebda4141819caa0676335a4ae617dbdec5943 | |
parent | ef10f984fa75c3197ec2515418e1b180fdbfc390 (diff) |
Improved this a lot
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4398 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/hashcomp.cpp | 32 | ||||
-rw-r--r-- | src/inspircd.cpp | 3 |
2 files changed, 6 insertions, 29 deletions
diff --git a/src/hashcomp.cpp b/src/hashcomp.cpp index 351dc1fd7..924ffa940 100644 --- a/src/hashcomp.cpp +++ b/src/hashcomp.cpp @@ -182,40 +182,12 @@ irc::tokenstream::tokenstream(std::string &source) : tokens(source), last_pushed { last_starting_position = tokens.begin(); n = tokens.begin(); - - /*for (std::string::iterator n = source.begin(); n != source.end(); n++) - { - if ((last_pushed) && (*n == ':')) - { - * If we find a token thats not the first and starts with :, - * this is the last token on the line - * - tokens.push_back(new std::string(n+1, source.end())); - break; - } - - last_pushed = false; - - if ((*n == ' ') || (n+1 == source.end())) - { - * If we find a space, or end of string, this is the end of a token. - - tokens.push_back(new std::string(last_starting_position, n+1 == source.end() ? n+1 : n)); - last_starting_position = n+1; - last_pushed = true; - } - }*/ } irc::tokenstream::~tokenstream() { } -/*unsigned int irc::tokenstream::GetNumTokens() -{ - return tokens.size(); -}*/ - const std::string irc::tokenstream::GetToken() { std::string::iterator lsp = last_starting_position; @@ -227,7 +199,9 @@ const std::string irc::tokenstream::GetToken() /* If we find a token thats not the first and starts with :, * this is the last token on the line */ - return std::string(n+1, tokens.end()); + std::string::iterator curr = ++n; + n = tokens.end(); + return std::string(curr, tokens.end()); } last_pushed = false; diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 41410a26c..d9541807f 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -971,6 +971,7 @@ int main(int argc, char** argv) printf("Token 1 = '%s'\n",test.GetToken().c_str()); printf("Token 2 = '%s'\n",test.GetToken().c_str()); printf("Token 3 = '%s'\n",test.GetToken().c_str()); + printf("Token 4 = '%s'\n",test.GetToken().c_str()); std::string b = "PRIVMSG #test :FOO BAR BAZ"; printf("String: '%s'\n",b.c_str()); @@ -978,6 +979,7 @@ int main(int argc, char** argv) printf("Token 0 = '%s'\n",test2.GetToken().c_str()); printf("Token 1 = '%s'\n",test2.GetToken().c_str()); printf("Token 2 = '%s'\n",test2.GetToken().c_str()); + printf("Token 3 = '%s'\n",test2.GetToken().c_str()); std::string c = ":PRIVMSG #test :FOO BAR BAZ"; printf("String: '%s'\n",c.c_str()); @@ -988,6 +990,7 @@ int main(int argc, char** argv) printf("String: '%s'\n",c.c_str()); irc::tokenstream test4(c); printf("Token 0 = '%s'\n",test4.GetToken().c_str()); + printf("Token 1 = '%s'\n",test4.GetToken().c_str()); c = ""; printf("String: '%s'\n",c.c_str()); |