Closed Bug 238222 Opened 21 years ago Closed 21 years ago

extra tab in multi-channel join

Categories

(Other Applications Graveyard :: ChatZilla, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: daniel, Assigned: rginda)

Details

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113 When you attempt to join multiple channels at once in a single /join command, ChatZilla produces an extra tab. Reproducible: Always Steps to Reproduce: 1. Type in a multiple-join command, like: /join #mozilla,#ircmonkey,#foo Actual Results: This automatically produces one tab for "#mozilla,#ircmonkey,#foo". The server then sees you joining three channels and sends you back an appropriate JOIN reply for each. ChatZilla sees the three JOIN replies, and produces three new tabs, one for each of #mozilla, #ircmonkey and #foo. The user ends up with four tabs when they joined three channels. Expected Results: ChatZilla should not open the "#mozilla,#ircmonkey,#foo" tab. The original IRC RFC (I don't recall the number off-hand) with which, to my knowledge, the majority of IRC servers comply at least for backwards-compatibility, allows for users to join multiple channels with a single join command by separating channel names with a single comma (,) and no space. Eg: JOIN #mozilla,#ircmonkey,#foo Because this is a feature of the way the server parses the first argument to a JOIN message, clients need not specifically support this for it to work. What this all means is that, while ChatZilla appears unaware of the possibility for this behaviour, it still works -- and ChatZilla isn't entirely sure what to do with it. example: typing the command in ChatZilla /join #mozilla,#ircmonkey,#foo Will automatically produce one tab for "#mozilla,#ircmonkey,#foo". The server then sees you joining three channels and sends you back an appropriate JOIN reply for each. ChatZilla sees the three JOIN replies, and produces three new tabs, one for each of #mozilla, #ircmonkey and #foo. The user ends up with four tabs when they joined three channels. As I see it, this can be fixed in two ways: 1) parsing the first parameter to /join locally and constructing tabs appropriately; or 2) waiting for the server to respond with a JOIN reply before constructing the tabs. The latter option will produce a visible delay if lag exists between the client and the server, as the server must receive and respond to the JOIN message before the client actually visibly "does something" -- not user friendly! The former option is basically just tokenising the first parameter for commas. Note that it does, however, become much more complex when channel keys/etc are required.
This 'feature' was sorted out in version 0.9.54a of ChatZilla, released 2003-12-10. This code was checked in to Mozilla on 2004-01-03. See here: http://bonsai.mozilla.org/cvsblame.cgi?file=mozilla/extensions/irc/xul/content/commands.js&mark=1472-1487#1470 The code takes approach 1, and parses the command and re-issues a /join for each channel listed. While this has got to be the best bug report (in terms of details, etc.) I've seen in months (perhaps even the best one ever), I'm marking it WORKSFORME as the bug does not exist in the current version of ChatZilla.
Status: UNCONFIRMED → RESOLVED
Closed: 21 years ago
Resolution: --- → WORKSFORME
Aha. That'll learn me to hunt down a more recent version than the bundled one (I got this version from the Mozilla 1.6 bundle that I downloaded on the 8th of March.) > While this has got to be the best bug report (in terms of details, etc.) I've seen in months (perhaps even the best one ever) Thanks. :) I've encountered this problem myself in my own (unreleased, terminal-only) IRC client, hence my intimate knowledge of the cause and solutions. ;)
Product: Core → Other Applications
Product: Other Applications → Other Applications Graveyard
You need to log in before you can comment on or make changes to this bug.