bool sepstream::GetToken(Flux::string &token) { Flux::string::iterator lsp = last_starting_position; while (n != tokens.end()) { if (*n == sep || n + 1 == tokens.end()) { last_starting_position = n + 1; token = Flux::string(lsp, n + 1 == tokens.end() ? n + 1 : n); while (token.length() && token.rfind(sep) == token.length() - 1) token.erase(token.end() - 1); ++n; return true; } ++n; } token.clear(); return false; }
void OnPrivmsgChannel(User *u, Channel *c, const Flux::vector ¶ms) { Flux::string nolog = params.size() == 2 ? params[1] : ""; if(!u || !c) return; if(c->name != Config->LogChannel) return; Flux::string msg = ConcatinateVector(params); if(nolog != "#nl" && u) { if(nolog == "\001ACTION") { msg = msg.erase(0, 8); CLog("*** %s %s", u->nick.c_str(), Flux::Sanitize(msg).c_str()); } else CLog("<%s> %s", u->nick.c_str(), msg.c_str()); } }