From 9abe862308081155837512dd5e6c581752c9ddb2 Mon Sep 17 00:00:00 2001 From: erik Date: Fri, 09 Feb 2007 21:10:30 +0000 Subject: This commit is based on the patch attached to Opie bug 1735: http://opie-bugs.oszine.de/view.php?id=1735 It changes the opie-irc app to be able to support the additional user characters that the unrealircd irc daemon provides. Thanks goes to andrewy for reporting and providing a patch. --- diff --git a/noncore/net/opieirc/ircmessageparser.cpp b/noncore/net/opieirc/ircmessageparser.cpp index 32e1011..c449a65 100644 --- a/noncore/net/opieirc/ircmessageparser.cpp +++ b/noncore/net/opieirc/ircmessageparser.cpp @@ -593,18 +593,33 @@ void IRCMessageParser::parseNumericalNames(IRCMessage *message) { int flag = 0; QString nick; /* Parse person flags */ - if (flagch == '@' || flagch == '+' || flagch=='%' || flagch == '*') { + if (flagch == '~' || flagch == '&' || flagch == '@' || flagch == '+' || + flagch=='%' || flagch == '*') { nick = temp.right(temp.length()-1); switch (flagch) { - case '@': flag = IRCChannelPerson::PERSON_FLAG_OP; break; - case '+': flag = IRCChannelPerson::PERSON_FLAG_VOICE; break; - case '%': flag = IRCChannelPerson::PERSON_FLAG_HALFOP; break; - default : flag = 0; break; + /** + * @note '~' and `&' are extensions of the unrealircd irc + * daemon. This app can't see users w/out checking for these + * chars. + */ + case '~': + case '&': + case '@': + flag = IRCChannelPerson::PERSON_FLAG_OP; + break; + case '+': + flag = IRCChannelPerson::PERSON_FLAG_VOICE; + break; + case '%': + flag = IRCChannelPerson::PERSON_FLAG_HALFOP; + break; + default : + flag = 0; + break; } - } else { + } else nick = temp; - } IRCPerson *person = m_session->getPerson(nick); if (person == 0) { @@ -616,9 +631,9 @@ void IRCMessageParser::parseNumericalNames(IRCMessage *message) { chan_person->setFlags(flag); channel->addPerson(chan_person); } - } else { - emit outputReady(IRCOutput(OUTPUT_ERROR, tr("Server message with unknown channel"))); - } + } else + emit outputReady(IRCOutput(OUTPUT_ERROR, + tr("Server message with unknown channel"))); } void IRCMessageParser::parseNumericalEndOfNames(IRCMessage *message) { -- cgit v0.9.0.2