#################################################################################
# 12/03/01, ChatZilla 0.8.5, <rginda@netscape.com>

Shipped with 0.9.7.  Again, thanks to Samuel Sieb <samuel@sieb.net> for
contributing many of the fixes (the most obvious of which is mIRC color code
support), reviews, and driving the release candidate process.  Thanks to Casey 
Hutchinson <nnooiissee@yahoo.com> for mac accelerator cleanup, help and edit
menus, xul refactoring work, statusbar, and motivation.  Thanks to
KOIKE Kazuhiko, Katsuhiko Momoi, Shoji Matsumoto, and others who helped out in
bug 41564 to get charsets working.

* strict warning cleanup.
* add input/output charset support.  use /charset <charsetname> to
  change the current charset, settings will be saved.
* add "open at startup" item to view menus.
* implement urls for /query views (isnick urls.)
* make nicknames in output window isnick urls.
* add mozilla statusbar.
* add chatzilla icon to mozilla statusbar.
* move "statusbar" to top of message window, rename to "header".
* add mirc color code handling.
* show long topics in multiple lines in header, instead of cropping.
* add bugzilla munger rule, links "bug 12345" and "bug #12345" to appropriate
  bugzilla bugs.
* add channel munger rule to link #channelname to the channel.
* add edit and help menus.
* make /attach accept urls and url "fragments",
  /attach moznet, /attach moznet/chatzilla, and /attach irc://moznet/chatzilla
  are now all valid commands.
* add prefs for when to make noise; new msg, msg in existing query view, and/or
  /stalk matches.
* allow for space separated list of sounds to play, like "beep beep", or
  "file:/foo.wav"
* fix bogus "connection refused" error when disconnecting.
* add editable topic in header area.
* implement server passowrds (they were way broke.)
* add ctrl-tab and ctrl-shift-tab handlers to switch views.
* fix tab complete behavior, so it works for words in the middle of the line.
* add /about command to get version info.
* add "collapse consecutive messages" option, useful for motifs with faces.
* mac s/ctrl/meta/ fixes.
* add default completions per view, as described in bug 63621.
* add whowas help info.
* format responses from WHO queries.
* add network view maxlines pref.
* only print "attampting to connect" message once per network.
* add target in Kick item of message pane context menu.
* remove timestamp tooltips, use status text instead.
* show message source in status bar, after timestamp.
* remove usage warning from /quit command.
* change max connect attempts from 20 to 5.
* remove unused listbox.js file from chatzilla.jar.
* add help menu.
* allow params in /ctcp commands.


=================================================================================
= Bugs fixed

41564,63621,71549,86032,88438,91399,92080,95913,97288,98244,99612,100159,100704,101942,102377,103104,103598,104114,105343,105604,105881,105882,106349,107148,108061,110006,111546,111565

http://bugzilla.mozilla.org/buglist.cgi?bug_id=41564%2C63621%2C71549%2C86032%2C88438%2C91399%2C92080%2C95913%2C97288%2C98244%2C99612%2C100159%2C100704%2C101942%2C102377%2C103104%2C103598%2C104114%2C105343%2C105604%2C105881%2C105882%2C106349%2C107148%2C108061%2C110006%2C111546%2C111565

28 bugs found.
ID Opened Summary
63621 2000-12-22 [RFE] Shortcut to reply to the last IRC message
98244 2001-09-04 Add "Leave this channel" to channel popup menu
101942 2001-09-27 whowas command said unknown even though it exists
92080 2001-07-24 Enter key to navigate menus also sends commmand
105604 2001-10-18 chatzilla should have a status bar (and component bar)
99612 2001-09-14 Chatzilla window id should not be "main-window"
102377 2001-09-29 Chatzilla does not handle server passwords
103104 2001-10-04 implement isnick urls
103598 2001-10-07 JavaScript strict mode patch for Chatzilla
91399 2001-07-18 Missing "screen buffer length" pref setting in prefs.js
104114 2001-10-10 Can't localize some strings in Chatzilla.
100704 2001-09-20 chatzilla needs an easy way to edit the topic
105882 2001-10-21 Chatzilla keyboard shortcuts use wrong modifier key
100159 2001-09-17 hiding a minimized userlist expands it instead
105343 2001-10-17 chatzilla should have /about command
106349 2001-10-23 [rfe]show a check beside selected motif in the view menu.
107148 2001-10-27 chatzilla menus should move to an overlay
105881 2001-10-21 `Edit' menu is missing in Chatzilla
88438 2001-06-29 2xAlt-Tab will bring up unexpected "user-match"-message
110006 2001-11-13 view/hide status bar is not saved
71549 2001-03-09 [RFE] add mIRC and IrcII color code support
86032 2001-06-14 [RFE] Ctrl+[shift]+tab and [shift]+F6 to switch channel view
95913 2001-08-18 Include Chatzilla icon in Component Bar
111565 2001-11-23 /query command no longer sends second argument
111546 2001-11-22 User list doesn't repopulate correctly after rejoining chann
108061 2001-11-01 /stalk won't stalk nicknames
41564 2000-06-05 Internationalize ChatZilla to handle different language scri
97288 2001-08-28 Chatzilla gets disconnected w/o indicating anything is wrong

#################################################################################
# 8/23/01, ChatZilla 0.8.4, <rginda@netscape.com>

Shipped with Mozilla 0.9.4, 0.9.5, and 0.9.6, introduced motifs, channel and
mailto links, and other things that were only availble in the 0.8.1a/b releases,
which were not checked in.  Thanks to Samuel Sieb <samuel@sieb.net> for
contributing many of the fixes, and reviewing the rest.

=================================================================================
= Bugs fixed

superbug: 103386

41337,44447,69296,72272,72702,73652,73767,74408,79322,85573,89692,89717,92327,92403,95781,96567

http://bugzilla.mozilla.org/buglist.cgi?bugidtype=include&bug_id=41337%2C44447%2C69296%2C72272%2C72702%2C73652%2C73767%2C74408%2C79322%2C85573%2C89692%2C89717%2C92327%2C92403%2C95781%2C96567

SuperBug: http://bugzilla.mozilla.org/show_bug.cgi?id=89713

16 bugs found.
ID    Opened     Summary
92403 2001-07-26 mozilla -help displays >>>>>>>>>>>> chatzilla-service loaded
96567 2001-08-22 long nicks cause extra-high lines
95781 2001-08-17 Chatzilla text is black-on-black
74408 2001-04-02 Typing in Chatzilla should give Textbox at bottom focus
                 automatically.
89692 2001-07-06 /away command only uses first word for reason
85573 2001-06-12 [RFE] support for mailto:
72272 2001-03-16 irc urls don't detect server/network names correctly
72702 2001-03-20 need UI for adding irc:// bookmarks
89717 2001-07-06 header text not visible for op and voice
73652 2001-03-27 Missing support for !-Channels
41337 2000-06-02 /join should join the current window if it is a channel and you
                 are not currently in it
79322 2001-05-07 [RFE] Make chatzilla user scriptable
73767 2001-03-28 Confusing behaviour if nick already in use
44447 2000-07-02 no ctcp ping results
69296 2001-02-18 irc URL with # doesn't work
92327 2001-07-25 [RFE] Have ops' names in red

#################################################################################
# 07/01/01, ChatZilla 0.8.3, <rginda@netscape.com>

Revision 0.8.3 removed hardcoded strings, in favor of the Mozilla i18n/l10n api.
RTL languages may still have some issues.  Many thanks to Chiaki Koufugata
<chiaki@mozilla.gr.jp> for doing the heavy lifting.

=================================================================================
= Bugs fixed

http://bugzilla.mozilla.org/show_bug.cgi?id=27805
Bug 27805, "ChatZilla needs i18n"

#################################################################################
# 06/03/01, ChatZilla 0.8.2, <rginda@netscape.com>

=================================================================================
= Bugs fixed
79311, 75226, 80993

=================================================================================
= Changes by file name...
chatzilla-service.js:
- Add stub allowPort method.
- Fix signature for handleContent method, bug 80993

connection-xpcom.js:
- factor chatzilla specific code out of this file.  Callbacks into chatzilla specific code are now used, making this file more generic.
- according to darinf (the current necko guy), using openOutputStream with asyncRead is a bad thing.  Most of the changes in this file involve migrating from usage of openOutputStream to asyncWrite.
- Changes also include fixing the function declaration syntax to match the rest of the code (two lines, named functions.)

irc-debug.js:
- check nextLine before using it.

irc.js:
- changes to work with new socket interface.
- correct isOp detection in setTopic
- remove checks for undefined exceptions
- route data-available immediatley.  inserting a data-available event to be routed later caused disconnect events to be recieved out of order.

utils.js:
- fix HAS_XPCOM test (XPCDOM broke it.)
- add jsenv.HAS_NSPR_EVENTQ

mybot.js:
- not built -
- add dummy escape/unescape if it isn't there

handlers.js:
- return false the first time through onClose(), and disconnect from all servers.  This makes sure we keep the window around long enough to send the QUIT messages.
- close window if client.userClose is set and we disconnected from the last server.

chatzilla.xul:
- hook up onclose event.
- apply patch from 75226, fixes initial splitter position.

static.js:
- copy client.userAgent code from chatzilla 0.8.1x
- implement getConnectionCount()

#################################################################################
# ChatZilla 0.8.1a and 0.8.1b released only in XPI format, changes to be merged
# in later.
#################################################################################

#################################################################################
# 03/08/01, ChatZilla 0.8, <rginda@netscape.com>

=================================================================================
= Bugs fixed

The superbug for ChatZilla 0.8 is 71468, which fixes the following bugs:
22890, 40959, 41798, 42905, 43850, 44077, 54143, 56312, 59036, 59374, 65633, 65634, 65861, 66040, 71310, and 71378.

Also, a workaround for bug 70335 is included, and bug 45576 *may* be fixed, we'll have to wait and see

Link to superbug: http://bugzilla.mozilla.org/show_bug.cgi?id=71468
Link to list of bugs fixed: http://bugzilla.mozilla.org/buglist.cgi?bug_id=22890%2C+40959%2C+41798%2C+42905%2C+43850%2C+44077%2C+54143%2C+56312%2C+59036%2C+59374%2C+65633%2C+65634%2C+65861%2C+66040%2C+71310%2C+71378

=================================================================================
= Changes by file name...

These changes are listed as they appear, when reading a diff between what's in cvs now, and what's in my local tree.  Before checking in, I'll tag the current chatzilla code as chatzilla0.7, and after, chatzilla0.8.  Just diff those two tags to get something to look at alongside this ChangeLog.  Or see the superbug for ChatZilla 0.8, 71468, which has a copy of the diff attached to it.

---------------------------------------------------------------------------------
- NEW FILES:

outputwindow.html:
- used as the base html for the output window, allowed bug 41798, bug 54143, and bug 59374 to be fixed.

ChangeLog:
- this file, tracks changes between ChatZilla versions.  I added the comments from the previous large checkin (retro-branded as ChatZilla 0.7) as well.

TODO:
- List of things to do in the future.

---------------------------------------------------------------------------------
- MODIFIED FILES:

README:
- Started user guide, only the TOC at the moment.

connection-xpcom.js:
- Don't call close on output streams, it throws a NS_ERROR_NOT_IMPLEMENTED.  dougt says just let the refcount go to 0 and it'll be fine.
- Tell the IRCServer object it has lost it's connection when the stream gets an onStopRequest (bug 22890 and 42905)

events.js:
- dump exception on error (to get the filename and linenumber info, if it's there)

irc-debug.js:
- show data for new "info" type of event.

irc.js:
- add a servers collection to the IRCNetwork.  I'm not exactly sure why I didn't do this from the beginning.  It allows us to recover and reuse server objects in the event of a disconnect/reconnect. (bug 22890 and 66040)
- set default number of reconnect attempts to something more tolerable. (bug 22890 and 66040)
- move connection attempt/ next host to attempt information from the event object onto the actual network object.  The new reconnect logic needs it in places where the event is not available. (bug 22890 and 66040)
- spew out info event when max connect attempts are exhausted. (bug 22890 and 66040)
- spew out info event when a connection attempt starts. (bug 22890 and 66040)
- add try/catch around server creation, to be safe.
- spew info event when moving on to the next connection attempt. (bug 22890 and 66040)
- modify CIRCServer connection to check for a dupe server in it's parent.servers collection, re-init/return that object if it exists, otherwise make a new one.
- try to reconnect if the connection was broken before we got a 001 message from the server, regardless of wether ot not the parent IRCNetwork has it's "stayingPower" flag set.
- forward the disconnect event from the server to the network, to keep the network properly informed.
- if an unknown message arrives at the server, send it to the server's onUnknown handler if it exists.  If the server has no onUnknown handler, send it to the parent network's handler for that type of message, if it has one.  If the parent network has no handler for this message, send it to the network's onUnknown handler as a last ditch.  (the event code will fail silently if the network has no onUnknown handler.)
- when we get an 001, reset connection attempt cound, and record the successful connection.
- if the channel's users collection is considered "stable" when a new names list begins to arrive, mark it as unstable before wiping it out.  the list will be marked stable again when the end of names (code 366) message arrives.
- refer to this.foo instead of e.server.foo.  they are the same object, but this.foo is one less lookup.  this change should happen to the rest of this file eventually.
- Tell the network when the user changes their nick.  This is so nick changes that occur when you're not on any channel don't go unnoticed.
- round off excess decimals in the server lag.
- add opCount and voiceCount vars to the IRCChannel during a channel.getUsersCount() call.

utils.js:
- make keys() return an array instead of a string.  this function was not called by anything before this change.
- add formatDateOffset() function to the result of a Date subtraction into english.
- add arraySpeak() function to join an array into an english list.
- add arrayContains() function to search an array for an element.
- add arrayIndexOf() function to get the index of an element within the array.
- modify hyphenateWord() function to search for a goo place to break the word with a -/+ 5 character fuzz factor.
- add splitLongWord() function, similar to hyphenateWord, except returns an array.
- fix stoopid paren bug in roundTo() function.

chatzilla.xul:
- add broadcasters for the file menu items.
- add keys for the file menu items.
- add file menu. (bug 43850)
- move options menu under file menu.
- remove old view toolbar.
- add crop="right" attribute to the userlist table to prevent horizontal scrollbars. (bug 56312)
- whitespace fixes.
- add input splitter for multiline-input mode.
- add multiline-input control for multiline-input mode.
- add crop="right" to statusbar elements (bug 59036 maybe 45576)

commands.js:
- alphabetize commands.
- add client, cancel, disconnect, infobar, list, networks, notify, query, and status commands. (bug 44077)

handlers.js:
- don't call setOutputStyle() onLoad (it's been deleted.)
- we can now call setClientOutput() and initStatic() onLoad, because the output window is a separate .html file.  This means the the xul onLoad will not be called until the .html file is loaded, and so we can be sure that the content model for the output window will be stable.
- global change from 'quotes like this' to ``quotes like this''.
- set client.debugMode variable when debug messages are on.  This flag is used to determine how we display irc message codes.
- remove onToggleToolbarIcons() because we don't have a toolbar anymore.
- don't allow the last view to be deleted.
- move to new sort-service, but leave the old one in for now.  This keeps us from breaking 0.8 users.
- add keyUp handler for the multiline-input control.
- clear the input control's value in the singleline input control's keyUp handler, instead of onInputCompleteLine(), because we don't want to clear the multiline control.
- switch to multiline mode if the singleline control hears a ctl+up.
- don't spew an error message if autocomplete can't locate a match on [tab]
- remove old (and broken) multiline code.
- add onNotifyTimeout() handler to take care of sending ISON messages.  ISON is used to ask the server if certain users are on, used for the /notify command.
- add onInputCancel() handler (for the /cancel command) to cancel and pending /attach command.
- send unknown / commands directly to the server, (after warning the user that the command was unknown.)
- add onInputSimpleCommand().  Any / commands that can be sent directly to the server can use this function, instead of creating a new one for every "simple" command.
- add onInputStatus() (for the /status command.)  Prints connection status, including connection duration, lag, and channels joined.
- revamp onInputTestdisplay().  It now tests all types of messages, and all munger rules, from multiple sources, to multiple targets.  Much more useful than it used to be.
- add onInputNetworks() (for /networks.)  Lists all networks as a set of irc:// links.
- show an error message if you attempt to /attach to a network you are already attached to.
- fail a /delete if the user provided a parameter.  /delete deletes the *current* view, failing if a param is given prevents accidental deletion.
- Change onInputNames() from a function that toggles the infobar (userlist) visibility to a function that sends a NAMES command to the server.
- add onInputInfobar() to do what onInputName() used to do.
- add extra help message to onInputCommands().
- add status messages to onInputAttach().
- fix onInputMe() so it works on /query views as well as channels.
- add onInputQuery() function (for /query.)
- fix onInputMsg() so it does not force a new query window to open.
- change parameter of temporary doEval() function form s to __s, so as not to interfere with eval'd expressions.
- split EVAL message types into EVAL-IN and EVAL-OUT, so you can see was was eval()d, in the event of an error.
- change onInputTopic() from a function that would consult the irc library for topic information to a function send asks the server to update the topic information in the irc library.  the code that handles TOPIC replies now tales care of printing this information out.
- add onInputNotify() function (for /notify.)
- add onInfo handler to networks.
- add onUnknown handler to networks.
- add 005 to the list of initial server messages that are *always* displayed on the network view.
- force handlers attached to the my_showtonet() function to display on the network view (ignoring the client.SLOPPY_NETWORKS setting.)
- allow NOTICE messages to be affected by client.SPLOPPY_NETWORKS.
- add an on303 (ISON reply) handler to networks.
- add an on322 (LIST reply) handler to networks.
- use the new arraySpeak() and formatDateOffset() functions when printing WHOIS information.
- print error message when a network gets disconnected. (bug 42905)
- show nick change information on the network if it is the current view.
- display "end of NAMES" message if the channel's pendingNamesReply flag is set, then clear pendingNamesReply.  channel.pendingNamesReply is set by the /names command (and cleared in on366) to control wether or not NAMES information (353 and 366 messages) should actually be displayed.  (the irc library will request this information when a new channels is joined, and we don't want to display it in that case.) (bug 40959)
- print topic information on a 332.
- print topic setter information on a 333.
- print NAMES information on 353 if the channel's pendingNamesReply flag is set. (bug 40959)
- global fixes to .display callsites.  new syntax is obj.display (<msg>, <type>, <source>, <dest>);
- beep when a message from a user is received.

readprefs.js:
- remove toolbar.icons pref, we don't have a toolbar anymore.
- set client.debugMode based on debug messages pref.

static.js:
- removed some unused client.PREFERENCE type variables.
- added client.SLOPPY_NETWORKS switch (see comment.)
- added client.HIDE_CODES switch (see comment.)
- added a message code -> display glyph map for use when client.HIDE_CODES is true.
- remove the isPermanent flag from the client view, allows users to delete the client view.
- set client.IGNORE_MOTD to false.
- bump MAX_MESSAGES up a few notches for various view types.
- set onresize handler for the window. (bug 41798)
- create an nsISound in the client object, so we can beep for /msgs.
- hook up multiline-input control keyUp handler.
- remove icons-in-toolbar related code.
- remove network list from the hello message, but...
- call onInputNetworks() during init.
- start the notify interval.
- global change from 'quotes like this' to ``quotes like this''.
- remove dead servers from the efnet server list.
- add opennet network. (bug 65633)
- removed the "you-talking-to-me" munger rule, this is now done in display().
- made bold, underline, teletype, italic regexps more better.
- remove matchMyNick function, this is now done in display().
- add a "chatzilla-link" class to all links.
- style rheet matches as chatzilla-rheet and chatzilla-link.
- keep smileys that start with the number 8 from matching.  (bug 65861)
- fix insertHyphenatedWord() to use splitLongWord() and empty <img> tags, instead of using hyphenateWord() to insert spaces in long words.  the empty <img> lets the layout engine break long words, without adding spaces.
- added skin switching voodoo to mainStep, it's a dumb ass hack, read the comment. (bug 59374)
- removed setOutputStyle() function, we can't do this now that we load the basic output document as a .html file.
- simplified setClientOutput() function.  all the extra work is not needed now that we load the basic output document as a .html file.
- global fixes to .display callsites.  new syntax is obj.display (<msg>, <type>, <source>, <dest>);
- added multilineLineInputMode() function, to set the input mode state.
- added stringToMsg() function.  takes a string and converts it into munged DOM nodes ready to be added to the message window.
- set the "selected" attribute on the current view tab button.
- add scrollDown() function, it's now used from addHistory and onresize.
- put a <tbody> in the <table> before adding content.  (bug 70335)
- create <xul:tab>s instead of <xul:menubutton>s for the views.
- add client.load() function to load js subscripts (won't work until bug 48974 is fixed.)
- combined client, network, channel, and user.display() implementations into a single function.

munger.js:
- rename third parameter to .munge() method.
- break long words found inside text that matched other munger rules.

chatzilla.css:
- remove unused ids and classes.
- made the status data color darker. (bug 65634)

output-default.css:
- removed unused classes.
- added huge comment (read it.)
- changed color scheme.

face-*.gif:
- made the smiley faces smaller so they fit better with the small font.

#################################################################################
# 10/23/00, ChatZilla 0.7, <rginda@netscape.com>

=================================================================================
= Bugs fixed

The superbug for ChatZilla 0.7 is 57633, which fixes the following bugs:
40636, 41343, 51352, 54145, 56708, 57104, and 57138

Link to superbug: http://bugzilla.mozilla.org/show_bug.cgi?id=57633
List of bugs dependent on the superbug: http://bugzilla.mozilla.org/buglist.cgi?field0-0-0=dependson&type0-0-0=equals&value0-0-0=57633&cmdtype=doit

=================================================================================
= Changes ...

= fixed 41343, tab complete still works after part.
= fixed 56708, link to rheet.wav when someone says rheet.
= fixed 40636, delete text when simleys are matched
= fixed 57138, toolbars not collapsing correctly.
= fixed 57104, link regex was kinda lame.
= fixed 54145, link completion char should be a pref.
= fixed 51352, chatzilla should remember your nick.
= cleaned up strict mode warnings.
= adjusted menu layout to make it easier to grok (i hope.)
= added "save settings now" and "save settings on exit" menu items.
= fixed invalid xul tags (<label/>) to avoid nasty warnings.
= implemented save settings functions.
= added prefs for default network, startup urls, nickname autocomplete suffix,
= delete view after part, save settings on exit, stalk list, smiley text deletion.
= removed pref fot startup network/channel (replaced by startup urls.)
= added graphic for scc's ear emoticon (*
= made ui state (toolbar, userlist, statusbar visiblity) persist.

