- std::istringstream stream(data);
- stream >> res.freeform;
- stream >> res.action;
- stream >> res.gline_time;
- res.reason = stream.str();
+ irc::tokenstream tokens(data);
+ tokens.GetToken(res.freeform);
+ tokens.GetToken(res.action);
+ tokens.GetToken(res.flags);
+ if (res.flags == "-")
+ res.flags = "";
+ res.FillFlags(res.flags);
+ tokens.GetToken(res.gline_time);
+ tokens.GetToken(res.reason);
+
+ /* Hax to allow spaces in the freeform without changing the design of the irc protocol */
+ for (std::string::iterator n = res.freeform.begin(); n != res.freeform.end(); n++)
+ if (*n == '\7')
+ *n = ' ';
+