summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-07-16 02:15:45 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-07-16 02:15:45 +0000
commit654482dc4fdc10d215acffe552a6eb78d67dd638 (patch)
tree899ebda4141819caa0676335a4ae617dbdec5943
parentef10f984fa75c3197ec2515418e1b180fdbfc390 (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.cpp32
-rw-r--r--src/inspircd.cpp3
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());