diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-07-16 15:45:13 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-07-16 15:45:13 +0000 |
commit | f8956e4b455e27e0c694b0651cad090752d3a83f (patch) | |
tree | 608dacf37a982a4a3f1468aad0affea74af3ff43 | |
parent | b07953b0e7da6291914bf417d7290e3ab2a913db (diff) |
*Changed user input/output buffering to incur less copies
*Fix warnings in command_parse
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4418 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/command_parse.cpp | 4 | ||||
-rw-r--r-- | src/users.cpp | 14 |
2 files changed, 6 insertions, 12 deletions
diff --git a/src/command_parse.cpp b/src/command_parse.cpp index 7d930ec65..b483c410b 100644 --- a/src/command_parse.cpp +++ b/src/command_parse.cpp @@ -104,7 +104,7 @@ int CommandParser::LoopCall(userrec* user, command_t* CommandObj, const char** p irc::commasepstream items1(parameters[splithere]); irc::commasepstream items2(parameters[extra]); std::string item = ""; - int max = 0; + unsigned int max = 0; /* Attempt to iterate these lists and call the command objech * which called us, for every parameter pair until there are @@ -131,7 +131,7 @@ int CommandParser::LoopCall(userrec* user, command_t* CommandObj, const char** p /* Only one commasepstream here */ irc::commasepstream items1(parameters[splithere]); std::string item = ""; - int max = 0; + unsigned int max = 0; /* Parse the commasepstream until there are no tokens remaining. * Each token we parse out, call the command handler that called us diff --git a/src/users.cpp b/src/users.cpp index 61a5be70a..10a0a0353 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -397,9 +397,8 @@ bool userrec::HasPermission(const std::string &command) bool userrec::AddBuffer(const std::string &a) { std::string b = ""; - char* n = (char*)a.c_str(); - for (char* i = n; *i; i++) + for (std::string::const_iterator i = a.begin(); i != a.end(); i++) { if ((*i != '\r') && (*i != '\0') && (*i != 7)) b = b + *i; @@ -429,12 +428,7 @@ bool userrec::AddBuffer(const std::string &a) bool userrec::BufferIsReady() { - unsigned int t = recvq.length(); - - for (unsigned int i = 0; i < t; i++) - if (recvq[i] == '\n') - return true; - return false; + return (recvq.find('\n') != std::string::npos); } void userrec::ClearBuffer() @@ -447,10 +441,10 @@ std::string userrec::GetBuffer() if (recvq == "") return ""; - char* line = (char*)recvq.c_str(); + const char* line = recvq.c_str(); std::string ret = ""; - + while ((*line != '\n') && (*line)) { ret = ret + *line; |