Version: 0.16 (using KDE KDE 3.3.1) OS: Linux Parsing of channels in whois reply doesn't handle some "strange" (but not really uncommon) replies correctly: On ircd-hybrid (for example EFNet), if you have voice and ops, your whois reply can have @+#channel Konversation shows this as: [Whois] coekie is an operator on channels: +#channel On "ircd" (for example IRCNet), a normal user on a !ABCDEFchannel is shown as: [Whois] coekie is owner of channels: ABCDEFfoo (see rfc 2811 to see what ! prefixed channels are)
CVS commit by cartman: Fix whois replies containing @+ correctly. Fixes first part of #97354 CCBUG:97354 M +5 -0 inputfilter.cpp 1.192 --- kdeextragear-2/konversation/konversation/inputfilter.cpp #1.191:1.192 @@ -890,4 +890,9 @@ void InputFilter::parseServerCommand(con server->setChannelNick(lookChannel.mid(1), parameterList[1], 8); } + else if(lookChannel.startsWith("@+")) + { + opChannels.append(lookChannel.mid(2)); + server->setChannelNick(lookChannel.mid(2), parameterList[1], 4); + } else if(lookChannel.startsWith("@")) {
Wouter can you tell me how to create a safe channel prefixed with ! or tell me how the server replies for a normal user on such a channel and for the creator ?
Connect to IRCNet and /join !!channel then you'll end up a channel like !ABCDEFchannel prefixes for voices and ops are just the same: @!ABCDEFchannel, +!ABCDEFchannel You *could* strip the prefix, it's not "really" part of the name (in irssi channels have a 'real' name and visual name, which are different for safe channels). But safe channels are hardly used, so that's probably not worth the effort :) But safe channels are just one case of different prefix, see CHANTYPES for other prefixes ;)
CVS commit by cartman: Fix whois parsing for safe channels. Second part of #97354 BUG:97354 M +2 -2 inputfilter.cpp 1.193 --- kdeextragear-2/konversation/konversation/inputfilter.cpp #1.192:1.193 @@ -885,10 +885,10 @@ void InputFilter::parseServerCommand(con server->setChannelNick(lookChannel.mid(1), parameterList[1], 16); } - else if(lookChannel.startsWith("!")) + else if(lookChannel.startsWith("!") && server->isAChannel(lookChannel.mid(1))) // See bug #97354 part 2 { ownerChannels.append(lookChannel.mid(1)); server->setChannelNick(lookChannel.mid(1), parameterList[1], 8); } - else if(lookChannel.startsWith("@+")) + else if(lookChannel.startsWith("@+")) // See bug #97354 part 1 { opChannels.append(lookChannel.mid(2));
commit ddd2d8d7f6204a8f29531483b9b938013d44ac76 Author: İsmail Dönmez <ismail@kde.org> Date: Sat Mar 26 18:29:41 2005 +0000 Fix whois replies containing @+ correctly. Fixes first part of #97354 CCBUG:97354 svn path=/trunk/kdeextragear-2/konversation/; revision=400820 diff --git a/konversation/inputfilter.cpp b/konversation/inputfilter.cpp index 347a835..98a66f2 100644 --- a/konversation/inputfilter.cpp +++ b/konversation/inputfilter.cpp @@ -889,6 +889,11 @@ void InputFilter::parseServerCommand(const QString &prefix, const QString &comma ownerChannels.append(lookChannel.mid(1)); server->setChannelNick(lookChannel.mid(1), parameterList[1], 8); } + else if(lookChannel.startsWith("@+")) + { + opChannels.append(lookChannel.mid(2)); + server->setChannelNick(lookChannel.mid(2), parameterList[1], 4); + } else if(lookChannel.startsWith("@")) { opChannels.append(lookChannel.mid(1));