(0.9.80) * Modified the quirc.inst script to properly handle quedit. * Modified echo to properly support multiple window types. * Removed a few unnecessary variables from style.tcl. * Included a new version of DawnRazor's QuEdit. (Be sure to remove ~/.quirc/quedit.* or it may not work properly.) * Changed a few colors in style.tcl to default_foreground variables. * Fixed a funny bug where /ops would always display "#UofACS." * Converted the variables in style.tcl to their ::dynamic::theme_* counterparts. * Added the windows proc to return all open window pathnames. * Added the /clearall and /clearrawview commands. * Changed pre_text_insertion to blank_lines_before_text, and changed the type of its contents. Moved it out of the theme settings. * Added Tcl/Tk 8.2 support to the configure.in file. * Fixed a mostly non-consequential bug in the Tcl/Tk interface. * Made the /wii alias properly handle multiple spaces. * Added Control-n and Control-p to the key bindings to change windows. * Theoretically fixed the bug that prevented DCC file transfers with no size. * Added event_ctcp and event_text. * Converted the event_privmsgs to use event_ctcp and event_text. * Added event_ctcpreply and event_noticetext. * Converted the event_notices to use event_ctcpreply and event_noticetext. * Changed the CTCP replies to be more like the spec. Updated the CTCP portion of the FAQ. Added many CTCP replies. * Added the idle command. * Fixed a bug where echoing over 10k of text caused QuIRC to crash. * Moved nicklist_side out of style.tcl and into variables.tcl. * Nailed 4 memory leaks. * Fixed newserver to not modify its arguments. (This was interfering with the auto_start array.) * Split tcl.cc into two files (servertcl.cc). * Added operator= and getsize to the normal linked list. * Added the default_mode variable. * Made it so the nick is set on numeric events before most of the tcl events are run. This is mainly to benefit event_001. * Modified notify to use fset/fdisplay. * Replaced the output previously covered by the display procs with their fset equivalents. * Fixed the DCC File popup menus. * Kick events now make the windowlist active. * Removed echo_services_to_status in favor of the new fset. * Added fparse, fset, flocation, and fdisplay. See README for details. * Converted ALL of style.tcl to the new fset scheme. A lot of code was able to be removed, and the stuff that wasn't is no in default.tcl. * Added hero's new advanced nick complete. It is capable of advanced matching and completion techniques. See nickcomp.txt for details. See /doc variables.tcl for information on the nick_complete variables. * Added event_echo to allow for timestamping, logging, and text interception scripts. * Added serverindex proc, see README for details. * Added modes and topic to retreive the current modes and topic. * Added /umode. * Added a menu button for quick access to a variety of functions. * Made a small theme chooser. * Added some session management. * DawnRazor contributed the QuEdit Howto (quedit.txt) and ChangeLog. * Fixed whois idle response for when no signon is given (IRCnet). * Added dict.tcl, compliments of tech (Add to default_globalscripts). * Updated the ChatNet server list (Thanks Albert). * Renamed style.tcl to default.tcl. * Added /reverse to fun.tcl. * Added the <<*Enter>> virtual events to support both Return and KP_Enter as methods for entering. See qwidget.tcl for details. * Changed the defaults for nicks and user. * Added "Start a New Server" to the menu. * Removed the new user instructions. * Killed quirc.inst and built a GUI installation system into QuIRC. * Removed the start-up process docmentation from the README. * Added join and query menu options to the server menu. * Eliminated two duplicate lines of code in the echo code. * Added a work-around for a Tcl bug (submitted a patch). * Fixed a bug in the 324 (mode) handling code that caused it to crash if you had a channel window open, but you were not joined to that channel and a mode request was sent. Also added handling to prevent buggy IRCds from crashing QuIRC under a similar situation. * Renamed default.tcl to server.tcl. * Added the wallops alias (Thanks Tier). * Added nicklist_scrollbar option and made it default to on. * do_rawview now defaults to off. * Added better KILL display. * Fixed a bug in /away. * Added handling for a bug in the IRCd in NOTICE. * Added echotags for more versatile echoing. * Added gettags so echotags is more useful. * Added the convert proc to translate.tcl with f<->c temp conversions. * Made it so /ping sends a ping to your current window. * Fixed a rare bug in /query where sending a message would go to the wrong place. * Added the ability to have channels and queries not pop up when they are created. See auto_raise_* in the configuration system. * Added addtag to easily add tags to gettags lists. -http://www.unifix-online.com/BWidget/ -fdisplay could have problems if the server specific sections are activated globally. -Popup menus based on nicks displayed in window? -Finish advanced install -Fix backup stuff, doesn't seem to work consistently. Ask hero about his. -Perhaps one option should do a mv ~/.quirc ~/quirc-backup-##### -Send info about 0.9.80 for FreeBSD port: andrews@technologist.com -Fix start-up process documentation -Wish based installation program with simple upgrade option. -Make a style.tcl ChangeLog as well as a ChangeLog for the different scripts that need to be loaded. -Make the windowlist more generic, and make better access functions, and make it right clickable with a popup menu for it. -QuEdit, fontsel and tkdiff use /usr/bin/wish. Make note of it. http://www.ede.com/free/tkdiff/index.html -Make configure option here? -Make history a tcl stack system with history add and history clear |all -Add option to make invisible (black on black/white on white/etc) text appear. -Add popups in the entry boxes that have the various characters you can insert as well as their key shortcuts. -Fix install about quirc.inst -Fix the configure help screen. -Added Auto-reconnect -Document auto-reconnect and intentional_disconnect and condis -Added a configuration system -Moved global.tcl to tbe beginning of the scripts as to load useful functions. -Added dcc filename completion. -Possibly rename global.tcl to init.tcl or something like that. -Should add generic parameter bug handling to server.cc. -Add gettags to format text from a colorized form into a form acceptable directly to echotags. How make echo just as fast using new generic proc system? Maybe some sort of pseudo include code in the middle of other code trick. -http://www.lag.net/~robey/ctcp/ -http://www.irc3.org -IRSSI is impressive looking... http://xlife.dhs.org/irssi/about.php -Deal with cur.tcl 07/12/1999 (0.9.79) * Made the light grey and orange (gold) colors what they are in mIRC. * Added /ame (see /doc default.tcl). * Added /amsg. * Made say not turn windows active. * Added /lusers to the status window popup menu. * Dawnrazor contributed the QuIRC Style Editor. See popups in Main Status window. * Fixed a bug preventing Main Status window popups. * Added a bunch of Main Status window popups. * Made a global popup command and made the server popup command not handle main status window popups. * Added popups.tcl to default_globalscripts. * Added a basic configuration GUI. * Changed the first time instructions and procedure. 07/06/1999 (0.9.78) * Fixed a bug in the 315 (end of who-list) event code that caused the message to appear sometimes when it wasn't supposed to. * Made the URL message appear in the appropriate channel window. * Updated the documentation. * Added event_client_start. * Made /set able to display the contents of arrays. * Added auto_rejoin. * Made /cycle able to handle keys. * Added error checking for broken IRCd mode changes. * Fixed the mode box's key handling. * Fixed the mode box's limit handling. * Enhanced /blist. * Added llongest and max procs to global.tcl. * Massively increased the speed of the echo code. * Fixed a bug in configure. (Thanks to Raistlin for pointing it out.) * Added /wi (see /doc default.tcl). * Added /w. * Added /bk. * Changed /kb to kick first, ban second. * Added /k. * Modified /join's behaviour. * Added /j. * Added BanKick popup. * Updated /ver. * Updated /ops. * Moved ::done_main_window to the internal namespace. * Enhanced /mop. * Enhanced /mub. * Removed /fillbl. * Enhanced /mv. * Enhanced /muv. * Updated /cloak and /decloak. * Enhanced /deop. * Enhanced /devoice. * Made an enhancement to the "unknown" command that removes the previous known limitations where the script couldn't figure out which server it was supposed to run under using the namespace alone. * Modified evalserver to simply execute the script in the given server's namespace. * Removed two FAQ items relating to the old "unknown" limitations. * Made it so // commands were executed within the :: namespace. * Made it so popups were executed within the :: namespace. * Enhanced /gblist substantially. * Moved ban proc to ::template and enhanced it substantially. * Moved qban proc to ::template::queueban and enhanced it as well. * Made mode+b use the full mask instead of just the nick to indicate who set the ban. * Finally integrated all of hero's code in default.tcl into the regular code. * Enhanced /wii. * Added /c. * Added ability to start servers/channels automatically on startup. (See global.tcl for details.) * Made the modes reset on JOIN and 324. * Removed the following procs from the server namespace: acceptlist, channelmode, channels, createchannel, createquery, dcc, ison, isop, isvoice, script, modenicks, mynick, nicks, onchannel, pathname, popup, queries, quote, and userhost. If you were calling any of these scripts via ::::procname, you should use evalserver procname instead. * Modified /away. * Enhanced /ban. * Documented /calc. * Modified /channel. * Added documentation about QuIRC's startup process to the README. * Fixed a small bug in echo. * Added QColorChooser to qwidgets.tcl. * Moved the theme tcl out of the default_scripts and made it automatically load before the other default_scripts. * Added fact proc to do factorials. * Removed the "8" bug debugging code. I believe the bug to be fixed. * Changed the mode code to be a tad more efficient. * Changed the s/p mode handling. * Added password support to newserver. (See /doc global.tcl) * Added listfile.tcl for sending /list's to a file. * Changed around the startup code and added the default_globalscripts variable instead of only loading global.tcl. * Changed the INSTALL file substantially. * Fixed a few issues in quirc.inst * Converted to automake. * Made /set able to handle wildcards for displaying variables. * Fixed a bug where gblist didn't work properly with channels that contains .'s in their names. * Modified the servers file. 05/25/1999 (0.9.77) * Replaced all the ~'s in quirc.inst with $HOME. * QuIRC now checks to see if the right version of scripts is found within ~/.quirc. * Special thanks go to Timothee Besset for helping fix a number of compile-time issues among other things. * Added /sv. * Supposedly added socks5 support. If you actually use this feature, let me know if it works. See the INSTALL file for details. * Changed quirc.org substantially. 0.9.76 - I still haven't heard any response about the bug where it seems to paste odd text into channels/queries for you, either positive or negative. If you have this problem happen to you at all, I would like to hear about it. Also, if you've had it happen to you before, but it doesn't seem to be occuring any longer, I'd like to hear about that as well. - Searching for #QuIRC ops. See INSTALL for details. - Removed the test dir that snuck into the distribution last time. - Fixed a typo that messed up DCC file accepts (dcc_auto_overwite) - Removed the const from the llist copy constructor to prevent conflict. - Added comparison operators to tpair, tuserlist, and talias. - Fixed a typo in Makefile.in. exex_prefix->exec_prefix. - Added index to tuserlist to fix yet another compile problem. - Removed the C++ comments from arlib.c - Modified the multiline TCL eval statements to be more portable - Changed the default font again to a more readable iso-8859-1 font. - Changed size_t to socklen_t for a variety of socket function calls. - Incorporated a patch from Petter Reinholdtsen which fixed the following 3 details: - Added int return types to the operators that were missing them. - Changed arlib to always use the ANSI declarations. - Made configure.in use LDFLAGS for the -L options. - Made the RPM actually use Tcl/Tk 8.0. - Created a new quirc.inst system. - Fixed the bug where blank lines in the middle of a set of lines caused it to stop looping on that input. 0.9.75 - Added yet MORE debugging info to aid in the tracking of the odd bug that makes you say wierd things, usually when starting a new server. If you experience this bug, please come find me (Hynato) on irc.dal.net and hopefully this will be solved quickly. This debugging info contributes a fair bit to the memory usage of QuIRC, so it is important that this bug be found quickly. The bug MAY even be fixed in this version, so it is important for me to know if anyone encounters it. - Moved more stuff to the display procs. - Added a messages.h file for internationalization purposes. - Added DCC Chat popups. - Added pathname files. - Made the RPM use Tcl/Tk 8.0 once again. - Cleaned up the Makefile. - Changed the configure script a lot. - Fixed a bug in the windowlist (totop) code. - Fixed a bug in the entry box handling. - Fixed a bug in the DCC say code. - Fixed a typo in llist.h. - Made the using std::string; lines optional with the USING_STD_STRING define. Made configure check if using std::string is not needed. - Adder /homer (Courtesy of Dinkmeister) - Changed the font from Clean back to Courier. Clean was not ISO-8859-1 compliant. - Added install-binary in preparation for the release of a plain binary package. - Fixed a few bugs in the code relating to uninitialized variables. 0.9.74 - Added insertbackground setting to change the cursor colour of the entry boxes. Added the display proc to style.tcl to handle a lot of the text that was previously handled internally. Added the default_foreground2 and default_foreground3 variables. Changed what the checks for the Tcl/Tk libraries look for. Made it so $LIBS specified before the configure come before any other libs. Fixed a serious bug in the event_windowchanged title code. Tcl/Tk 8.1 support. A lot more ./configure options for the tcl/tk side of things. Added using std::string; into the files that #include . Moved most of window.h into window.cc. 0.9.73 - Fixed a couple bugs in the server renaming code. Added more debugging information to help track down the "8" bug. The last time it occured to me was after I started a new server after a split. I'm looking forward to solving this one. 0.9.72 - Updated some URLs due to quirc.org. Changed mdop and mop to check if the person is an op or not an op before adding them to the mode queue. Implemented the escape proc to facilate easy tcl escaping. Fixed a bug in the rawview inserting code. Made /store properly store variables and arrays. Fixed /set, /append, and /remove to allow data with spaces. Made /unset able to unset multiple variables at once. Changed /set to be more like ircii. Removed the menu. Not like it really did anything anyways. Added event_windowchanged. See the README for details. Made the server lag checker work properly for multiple servers. Changed the return values of a few events and aliases. Removed the /md alias. NOTE THE FOLLOWING INCOMPATIBILITY CHANGES. The return values from events have changed purposes. Return 4 now does what return 8 did, and the ability to bypass internal events except in special circumstances has been removed. It was too difficult to maintain properly and didn't provide any real benefits. The config.tcl/userconfig.tcl system has been removed in favour of variables.tcl/dynamic.tcl. The key bindings moved to the bottom of global.tcl. See /doc variables.tcl for details. END OF CHANGES. Added event_disconnect. Added event_raw_unparsed and moved the rawview inserting code into it. Moved the html code out of the dir. Started work on userlist support. The first-time routine has changed, it is now handled within the client. Fixed the New Server window. Made the license GPL. Hero contributed more pretty parsing. Made a one pixel border around the button bar. Imported mIRC's server.ini using mircserver.tcl. Made alt-n open the server dialog. Made /fixnicklist TCL based and moved the old /fixnicklist into the tcl proc fixnicklist. Added the dccquote proc. Rewrote large portions of the networking code (It was really quite ugly). Added event_connect. Changed /store to store geometry info as well. Modified the newserver command. Made closing the main window run the special exit command instead of just dying. //command args will now evaluate /command args as a tcl expresion in the same context as it was executed (ie. global/server). Added the shutdown proc and changed around the exit sequence. Finally figured out how to, and fixed the bugs that caused the window not to be scrolled to the bottom properly at the start as well as the Connect/Disconnect button showing the wrong state. Modified the loading methods in style.tcl to fix a few coding annoyances. Added the title proc. Gave titles to dcc chat and dcc file windows. The title updates when channel topics change too. Changed the networking yet again. The networking is fully integrated into the TCL event loop now. QuIRC should use less CPU and the DCC transfers have increased their maximum possible speed by about 1000%. Fixed the DCC Files windowlist sort order bug. Fixed the bug that made the DCC Files window kill the wrong DCC when right clicked on. Added /set +variable data for appending. Added dcc_auto_accept and dcc_auto_overwrite variables. Make overwrite work for DCC. Made it so closing a window made the next window up active, not the main status window. Added the windowindex proc. Added the renamewindow proc. Made QListBox::insert not select items on insert. Made it so that when people change their nicks, the query window nick changes. Made an option setting (rename_servers) that will change the name of the server window based on certain server responses. 0.9.71 - Added notify support. Fixed a bug where join messages didn't cause the windowlist to activate. Unload is now subdir capable. There is a new unscript function to accomodate the script function. There is also a /reload function for loading scripts. When a script is unloaded, the event_unload procedure it contains will be called. Added a [connected] proc. Added in hero's WHOIS parser which includes country.tcl. Changed AWAY(301) and PONG display. Fixed script and unscript to use the last slash not the first slash. Changed echo so that instead of passing in a single pathname, a list of pathnames can be passed in. Added pathname all and made pathname guess more powerful. Added /set, /unset, /append, and /remove for dealing with variables and lists within the dynamic namespace. Modified /store to store variables and lists to file. Channels are set to not-joined on connect. A number of the docs are stored within the TCL files themselves now. If you can't figure something out, try /doc file.tcl. For example, /doc notify.tcl will help with the new notify system. 0.9.70 - Made DCC CHAT windows disconnect automatically when you try to send a new request or you receive a request and the window is already open. Changed the tcl.h/tk.h checks back to the way they used to be due to more problems on BSDish systems. Made the echo proc ignore null characters instead of stoping printing at that point. Added winpopup.tcl for handling, believe it or not, WinPopup messages. 0.9.69 - Better header checking for tcl.h and tk.h. Changed the FAQ a bit. Added a base conversion function to translate.tcl. Use as [base original_number original_base new_base]. Added the killjpq.tcl script which allows one to mute join/part/quit/mode/nick/kick messages from certain channels. Changed the README. Added push, pop, rpn, and is_number to global.tcl. Added the /doc alias to global.tcl. Added /colour. Added ~, *, and ? handling to dcc (it takes the first file in the list if more than one match). Gave the /calc alias the ability to recall variables. Made it so the event handler no longer spews variables all over the global namespace. Made a fun.tcl file and added Dinkmeister's asian name generator to it. Added the quirc icon the the homepage. Changed the say command, it is not totally backwards compatible with the previous say command. It now allows multiple lines and a target parameter. Fixed a bug in ison, isvoice, and isop that occured when the procedures were called on a channel that wasn't joined. 0.9.68 - Made QuIRC remove the DCC entry if the file being sent is not found. Made DCC chat delete the CR character when it was on the end of the line (Pirch). Made the Makefile and configure file BSD friendly. 0.9.67 - Well, a number of the changes in 0.9.66 somehow got erased and I needed to actually put them in for this version. I also added in the stuff neccesary to create the QuIRC RPMs. Added op message support to privmsg. As well, changed the window CTCPs directed to the channel go to. Fixed bugs in all four /eval commands. Moved back to using the TCL hash since it doesn't appear to be the cause of the memory problem. Fixed a bug that was causing QuIRC to not display connect messages in DCC Chats. Discovered a bug in the connect routines and made large changes to the error checking on connect. 0.9.66 - /msg, /notice, /cloak, and /decloak now display something. newserver now returns the index of the server it creates. Added evalserver to execute script for another server. See global.tcl for details. Added /alias and /store as well as the dynamic namespace to handle details that are configurable while the client is running. Removed the "max" number in the banlist considering it was useless anyways. Fixed a bug where DCC actions went to the wrong window. Added ctrl-_ and ctrl-u to do underlines. Changed the DCC File code to display the files that are transfering in a different manner. The DCC code does not open the file for writing before a connection is established now. A who is now done on join of a channel to fill the IAL. Added nick complete to the DCC chat window. The previous two features are compliments of hero once again. Fixed a couple installation issues. quirc.inst will now work on systems without install, but uses cp, mkdir, and chmod instead. Fixed a problem that arose due to the move to CVS. Renamed the global index proc to currentindex due to the possibility of confusion. Notices that are destined for different servers than you are currently on are rerouted to the status window of the given server. Op notices are displayed differently. Added the global index proc which always returns -1. Removed the namespace parameter from the popup proc. Fixed the popup proc to work with the new alias behaviour. Revamped global.tcl. Changed the DCC code so it allows a minimum delay for DCC status updates. This practically eliminates the massive speed problems that occured before when transfering files. Simplified the command.cc code for running commands. Changed the IAL from using the Tcl hash, to using the STL map class. Added the killdcc proc as a "temporary" measure to deal with removing items from the dcc list. The DCC Files window and server windows can't be closed when there's items in the DCC list. Fixed a problem with the banlist due to the new index code. Well this is the biggest CHANGELOG entry yet, so I'm guessing there will be a few bugs associated with the changes. Look for the next version soon. 0.9.65 - Removed a file which wasn't supposed to be there. Fixed some huge memory leaks that originated in version 0.9.63. Made some minor speed improvements to the Tcl/Tk interface. 0.9.64 - Fixed the version number. 0.9.63 thought it was 0.9.62. Changed the networking code s'more. Added indenting in the server list. Added configuration in config.tcl for the window list. Made the style configuration into a "theme" system. Added autoconnect. Fixed a bug in the do_command function which caused wierd /me behaviour sometimes. Fixed a bug with the DCC Chat popup. Changed the scripting system a lot. See the README for details on the new features. Hero- submitted a patch for /fk. Hero- changed the behaviour of notices. 0.9.63 - Changed the parsing code for the data that comes from the server. That particular block of code is WAY faster and more memory efficient now. Made some substantial speed improvements in the echo code. Improved the speed of the Tcl/Tk interface code. Rewrote the main event loop. Rewrote a lot of the networking code. Swept the code for unused variables. Changed the Makefile a bit. 0.9.62 - Removed a test file again. Added the servers proc. Made /away behave like the IRCII /away command. Added control-l to do bold. Changed the exit code. Renamed the tcl exit command to die. Made a new exit command which runs some stuff and then runs the tcl die command. Added /beep, /bye, /cd, /channel. Fixed a bug where the socket entry in the sockets list wasn't being removed for dcc items. It could have caused icky select errors. 0.9.61 - Made it so that the nicklist no longer exports its selection. Moved /clear to global.tcl. Moved /query to default.tcl. Fixed the alias return value handling. See the README for how it works now. Fixed a bug in event_324. Added a "Who" popup. Changed the color handling for the Who list. Fixed a bug that would cause QuIRC to crash sometimes when you closed DCC windows. Added hero's changes to the popup file so that the popups use the modequeue. Changed the ban alias slightly. Fixed a bug in the /dcc alias. Added the /abort alias. Changed the /quit alias. Fixed a bug in the alias system. 0.9.60 - Moved the mode checking in default.tcl to event_join where it was supposed to be in the first place. Removed idiotic test files. Added CTCP cloaking via means of a variable in the server namespace called ctcp_cloak. Added /cloak and /decloak. Made it so dcc send converted filenames with spaces into underlines so it could send the DCC request. Added the ability to send files with spaces in their names. DCC GET was implemented. There are no provisions in place for overwriting or resuming files at the moment. 0.9.59 - Executing /commands that don't exist in the Main Status window no longer crashes the client. The ability to specify which IP to use for DCC was instated in 0.9.58. It is documented in this version. Added the above feature for DCC SEND as was in DCC CHAT. Changed the CTCP version reply TCL. Made it so "/dcc chat nick " worked. Added /server. Fixed a bug in /eval and /evalnr. Started the QuIRC FAQ. Changed the quit message to point to the new homesite. 0.9.58 - Changed the error reporting on connect to make it not crash sometimes on some systems. Fixed a bug where it would core if you tried to colorize an index out of range of the widget. Made it so the bgerror proc knows if it caused an infinite loop. Added mode query on join of channel, and made pretty output for the response. Hero contributed a whole bunch of code to default.tcl. There's so much of it I don't even know what it all is. See the file for details. Fixed a bug related to returning large values in the C based TCL procs. It could have been responsible for various core dumps. Added checking for alias procs within the global namespace. Added /loadglobal. Changed The names of the "load" stuff to "script" cause load is already a tcl command. Created global.tcl and moved a bunch of global stuff into it. I'm not sure how good the code is at this point due to the fact that I've been very busy lately and have not had the chance to keep track of what's going on. So here it is anways! 0.9.57 - Added channelmode. Piddled with the networking a bit. Found out that there's already a quIRC in existance... it's an IRC client for Windows Added s'more popups and a fancy mode adjuster. Added the QEntryBox widget. Hitting the close button clears the Main Status Window. Added Shift-Return to insert linefeeds. 0.9.56 - DCC Chat now operates correctly if more than one connection request is sent or recieved. Changed some popups. Added DCC File Send. Changed a bunch of the networking code around. Moved the clear alias back into command.cc until some issues are cleared up involving scripts active for the main status window. It is clear at this point that the tk text widget is fairly slow... it slows the client down considerably on occaision. I am not sure what should be done about this, but I will search for possible solutions. Added event_dcc_connect and event_dcc_status, neither of which are documented at the moment, but their use can be seen in style.tcl. They might be changing a bit in the near future and are just in there at the moment cause they needed to be. Fixed a bug in DCC Chat that made it think there was an error when there wasn't really. Changed more DCC code around, fixed some "window already exists" behaviour. Almost none of the DCC code is documented. I'll do that for the next version. I wanna get this one released and tested s'more first. 0.9.55 - Changed strcmpi and strncmpi to strcasecmp and strncasecmp. Changed the and includes to "tcl.h" and "tk.h" so screwed up systems can be circumvented. Made some adjustments to dcc.cc and to configure.in to make QuIRC more portable. Fixed a bug in bgerror that made it go into an infinite loop and crash QuIRC on occaision. Made it so dcc chating the same person again won't open a new window. Completed DCC Chat and added the acceptlist, event_dcc_accept, and event_dcc_text as a result. Fixed an error relating to recursive scripts which wouldn't have come up before now. Added a bunch of ban stuff compliments of hero. Try out /gblist /blist /ban and /unban. 0.9.54 - Fixed errors with a bunch of the bindings. 0.9.53 - Actually included popups.tcl with the distribution. 0.9.52 - Fixed a focus error... I'm not sure if it's in 0.9.51 or not, but it's "fixed." Added ctrl-pgup and ctrl-pgdn to scroll the nicklist. Replaced the status window code in server.cc with the Init_Window code. Fixed a bug where the commands for use in a script namespace were being loaded after the script was. Fixed a bug in the popup command related to the new callproc setup. Added QuIRC's first built in popups. They were created by hero- and are in popups.tcl. Fixed a bug in selectednicks and selectedmodenicks that caused it to behave incorrectly with certain nicks. Changed the selection behavior of the right mouse button in the nicklists. Added ctrl-f4 and alt-f4 keys. Took out the ability to create toplevel windows instead of frames. This can be changed again by editing qwidgets.tcl if you really want to. Finished moving the query and channel creation code into qwidgets.tcl. Fixed the {} uparrow bug. 0.9.51 - PONG now checks to see if a number is returned before presuming it's meant for server lag checking. Added the scrollbottom proc. Fixed bugs with the scrollback action. Added pgup and pgdn to the scroll bindings. Removed the scrolldown scrollup and scrollbottom procs entirely cause they were redundant with the scroll bugs fixed. Removed the connect item from the menu. Moved the generic tk window init code into qwidgets.tcl. Removed the scrollbars from the windowlist widget. Moved more GUI Init code into qwidgets.tcl. Moved a bunch of commands from command.cc into default.tcl. Added do_rawview to the config file that lets you change when text is echo'd to the raw window. Added /loadglobal. Changed the echo to a more intelligent format. The old version is still there but may be removed at some point in the future. Changed /eval and /evalnr to run in the namespace of the server they're using, and made a /evalglobal and a /evalglobalnr. Added callproc which is mainly for internal QuIRC use but people may find a use for it. Changed the index procs. Fixed the "disconnect" button when a new server is started. Changed the connect proc and made it available for general use. Changed the disconnect proc and made it available for general use. Moved the totop proc into general use. Moved bgerror and activebutton into general use. Fixed a bug in bgerror that could have caused it to crash the client when certain errors occured. Put some code back into newserver.tcl. It's not back at its old glory, but is better than nothing. Removed the internal quit proc. BTW, a lot of the changes this time don't have error checking associated with them so they could crash if used improperly. Let me know if you encounter this. Moved the configtags proc into general use. Moved the parseentry and domainloop procs into general use. Removed the inttcl files. 0.9.50 - Added the global echo proc back which was somehow accidentally removed. Moved a whole bunch of source around, finished off the TT_Init proc which added in a whole bunch of functionality that was removed along with ET. This is supposedly a good release, I of course don't know of any bugs other than the ones noted in the README file, so I hope I'm right ;) Enjoy the newly independant QuIRC! :) 0.9.49 - Pasting is now disabled in the window list. 0.9.48 - Changed the FixName function some to allow for hero's n_complete proc. There's a whole load of bugs related to the removal of ET. Those will need to be cleared up over time. Fixed /clear. 0.9.47 - Removed ET entirely due to some problems it had with the hack et.c file. As a result, some of the functionality that QuIRC previously had (especially relating to command line options) no longer exists. I personally never used them, but I plan to reimplement them due to the fact that I wanna know how they work. 0.9.46 - Fixed more bugs relating to the removal of ET. 0.9.45 - Made a bunch of changes to the docs and Makefile relating mostly to the removal of ET. 0.9.44 - Changed the scope of some of the ban stuff in default.tcl. Moved the loading of userconfig.tcl from config.tcl to the C code. Before, if you copied config.tcl to userconfig.tcl as suggested it would load itself over and over and over... I can't believe nobody pointed that out to me before. Removed ET from the source files. Made et.c part of the distribution for the moment before I can analyze the Et_Init() function and rewrite it properly. There could be bugs relating to the ET to pure Tcl/Tk conversion, so keep your eyes out for them. 0.9.43 - Added a server lag checker. Added popups. Added selectednicks, selectedmodenicks, and windowname procs. 0.9.42 - Notices to channels will no longer come through from lagged channels after you have parted. Added the ability to load scripts in dirs other than ~/.quirc. Replaced [millitime] with [microtime] which uses gettimeofday() instead of ftime(), cause ftime() doesn't even work on my machine. Did s'more work on DCC without any real results. 0.9.41 - Fixed the 433 event. Added [millitime] which returns the time in a more precise format than [clock seconds]. Fixed the millisecond ping reply bug as well. Added specific mode events that use single parsed mode changes instead of the full mode change. 0.9.40 - Added a 433 event, /wii, and /ctcpreply to default.tcl, again compliments of hero-. hero- also changed the ping code to allow for differences of less than a second. There is a bug in the ping code that will cause incorrect ping replies sometimes. This is also compliments of hero-. I think I have fixed the last bug within the new windowlist... it shouldn't make different windows active at the wrong times now. 0.9.39 - Added QListBox::select and made it so that switching windows with the control arrow keys moved the windowlist selection. Changed the configure script so libdl was not mandatory. 0.9.38 - Finished getting rid of the Tix remnants, DCC now works again. Added pathname chat. 0.9.37 - Fixed a bug that would cause the client to crash if a window was destroyed and before the item was removed from the windowlist it was clicked on. 0.9.36 - Fixed a bug in the QListBox widget that made the items coloured in a collective manner, so they wouldn't change states individually. 0.9.35 - Forgot to mention the addition of alt-enter that trims whitespace off of data before sending it in a literal manner. Edited the docs to reflect this change. Changed the I-beam cursor in the windowlist to a normal pointer. Got rid of a piece of code that wasn't even supposed to be in the release and was just for testing something. It didn't affect anything but compilation. 0.9.34 - Converted the configuration to autoconf. There are likely problems with this new configuration system that I don't know about since this is my first time dealing with autoconf, so I would appreciate any input in cases where it doesn't work correctly. It should work at least as well as the Makefile originally did. I also added the version tcl proc. There is now the ability to press control-enter to send unparsed messages so lines with / in them will not be interpreted as commands. Added a global index proc, so the index of the current server can easily be retrieved from /eval. Removed Tix support... it was just too much of a pain to compile and provided few benefits. As a result a new listbox widget was written (see qwidgets.tcl) and the server selection screen is totally broken. 0.9.33 - Added the installdata section back into the makefile. The ability to initiate and use DCC CHAT connections is also in place now. Moved a bunch of scripting code into a single function. This will make it easier to add new scripting features to QuIRC in the future. I wasn't going to release this version until the ability to accept DCC CHAT connections and some DCC scripting were completed, but popular demand (read Hero wanted it) has caused its release. Besides it's about time for another release anyways eh?! 0.9.32 - Changed some of the color handing. Edited parts of code to make it more friendly for other systems. Added a server specific echo with the "all" option. Moved the display code from server.et into style.tcl. style.tcl can be reloaded like a normal script, so what quirc displays can be configured on the fly. Changed the event handling system some to accomodate the above. See the README file for details on that. Added many new commands. See the README for info on that as well. Well, DCC CHAT send was postponed due to the makeover of the event/display system... I'm guessing it will be available within the next few versions. Moved a bunch of stuff from default.tcl into style.tcl. Added the join and part aliases to default.tcl. Added more aliases, made lots of changes to default.tcl and style.tcl. *BE SURE TO LOAD STYLE.TCL OR EQUIVALENT WITH THIS AND FUTURE VERSIONS OF QUIRC, OR THE OUTPUT WILL BE HORRIBLE LOOKING.* I probably made other changes that I'm forgeting. Ahh well... enjoy :) 0.9.31 - Corrected for a bug in the watch message that had the incorrect target for the 601 reply. Added a newer version of [-Hero-]'s nick complete; it handles status and query completion. Worked more on the DCC. DCC CHAT send will be available very soon, likely in 0.9.32. 0.9.30 - Made another change to the mask proc dealing with usernames longer than 10 characters. [-Hero-] added new formatting for one part of the whois reply. Added [nicks], [modenicks], [isop], [isvoice], and [index]. 0.9.29 - CTCPs no longer display the : if there is no data. Fixed a bug with replies to INVITEs that caused it to display the wrong parameters of the reply. Added display of part message if one given. Does not assume the first parameter of the 272 reply is "my nick" any longer. ERROR (discconnect) messages no longer make every window turn "active" in the window list. Made /query handle spaces after the nick properly, and added the new feature that any text after the nick is sent to the user as an initial message. Added connect and disconnect messages that are echo'd to all windows. Made "Attempting connection" messages go to all windows. [-Hero-] added /wall to default.tcl as well as fixing a bug that caused the ban routines to ban the wrong mask if the username was too long. Made /msg's with targets that have an open query window echo to that window. Reorganized default.tcl and edited a few things. Replaced references to sys_errlist with strerror to make it more portable. Edited makefile a bit to make it easier for me to compile it on the machines at my school. 0.9.28 - ANSI support modeled after BitchX has been included. 0.9.27 - Made an inconsequential change to the Makefile and changed the display format for WALLOPS messages. 0.9.26 - Added default_quit variable which will be sent as a quit message unless another is specified explicitly. See config.tcl for details. Continued work on DCC, not producing anything useful as of yet. 0.9.25 - Did a lot of code cleaning in relation to messages printed out. Fixed up the hist proc for general use. Made the morse code portion of the translate.tcl compatible with that of kSirc's. Made it so the nick changes of the client owner are shown in the channel and query windows. Removed the /say command since it was useless. Fixed a bug dealing with the display of otherwise unhandled server messages. Made the INVITE and WALLOPS replies pretty. 0.9.24 - Made the error checking a lot better and changed the error reporting for a variety of errors. Changed the makefile defines substantially. Did a bit more makefile cleaning and removed a few unnecessary files. Using the new defaults, QuIRC does not use SIGIO anymore, but instead polls for data. This was done to make errors on connect appear more rapidly. Otherwise there will be basically no difference. Added ability to change where QuIRC is installed using the Makefile. 0.9.23 - Added icky error checking on connect. 0.9.22 - Edited newserver.tcl so double clicking or pressing enter on a server list entry will use it. Added the closewindow proc to allow scripts to perform the same actions as the close button. Added more functions to the pathname proc so you can find the pathname to basically any window. Made the IAL update on nick changes. Fixed a bug in newserver.tcl that caused it to not add servers correctly. 0.9.21 - Fixed a bug in the hex part of the translate.tcl script. Added /rot13 to the translate.tcl script. Made newserver.tcl WAY better. Added /morse to the translate.tcl script. 0.9.20 - Changed the error reporting to work properly and not crash the client in situations like errors in the config file. Changed the translate.tcl script and added /hex. 0.9.19 - Fixed code that changed titlebar, a variable was being reused accidentally before it was done being used. Now the query windows work right. 0.9.18 - Added code to change the titlebar 0.9.17 - Fixed MORE reprecusions from 0.9.12. Installed the new nick and channel name complete written by [-Hero-]. This version features better channel name completion, partial nick complete and status window nick completion. It is not finished yet so there are a couple bugs... coming up will be query nick complete. Fixed bugs where client cored when pressing connect or disconnect while in the Main Status window. Made the client use the nick stored in $default_nick on every connection attemp. Changed the connect/disconnect buttons. Removed the button configuration for the connect and disconnect buttons from config.tcl and added in configuration for the condis button. Added the newserver.tcl file which is called when the "Start a New Server" button is pressed. I wouldn't be too suprised if this release generates a number of bugs due to how tired I was while coding. 0.9.16 - Moved the key bindings into config.tcl so you can change them easily or add new ones as you like. There is another script loaded that can be used for configuring things. See the info on postconfig.tcl below. Client now checks to see if it is connected before it tries to send data. New /ban, /unban, and /kb aliases courtesy of [-Hero-]. Adjusted to makefile to NOT include objects with the distibution. 0.9.15 - Fixed bug created in version 0.9.12 that made QUIT messages not show up. Removed the Control-Right and Control-Left keys from their job of changing windows so they can do what they originally did in moving the cursor one word right or left. 0.9.14 - Fixed a bug, which Etherdink pointed out, that caused QuIRC to crash if an unknown command was executed in the Main Status window. Made an adjustment to the lookup command as well. 0.9.13 - Changed the makefile a bunch to automate more of the distribution process. Made the distribution smaller by moving junk out of it. Changed the documentation setup. 0.9.12 - Fixed bug that caused quirc to crash when entering non-command text in the Main Status window. Changed the tcl/tk error reporting a bit. Changed the config system, see the top of config.tcl for details. Fixed a major bug dealing with the method used to abort future processing of scripts. See later in the readme for details on changes to scripts. Made additional changes to parsing routine to increase speed and reduce memory requirements. Changed the order in which the scripts loaded (now later scripts can override events from previous scripts). Added an "inst" rule to the makefile, mainly for my private use, but it may be useful to others as well. It will no longer open windows on CTCPs and CTCP-REPLYs and it displays recieved CTCPs in the status window. 0.9.11 - Command line history and scroll-back keys (see KEYS) 0.9.10 - Keyboard shortcuts for switching windows (see KEYS) 0.9.9 - Fixed a few aliases and edited a couple docs. 0.9.8 - Added proper error handling for hostname lookups. Fixed three things relating to the close button. The echo routine has been moved out of the server class and into its own file and should reduce the memory requirements of the program. 0.9.7 - Much better error reporting for errors in scripts. Fixed a bug causing messed up focus at start of program. Added name resolution (although it's not the non-blocking resolution I wanted it's at least there now). Now prints out more information while connecting. There is bad error checking on the hostname lookup, so the client will exit if the lookup fails. If you look up an IP the DNS system on the machine does not have to be functioning and the lookup will still work (at least it does on my machine). 0.9.6 - There is now a Main Status window that error messages and other messages not intended for any particular server will go to. As well quircrc and style.tcl have been merged into config.tcl. Please see the top of the file for the new format. 0.9.5 - Changed [currentpathname] to [currentwindow] cause I kept on typing [currentwindow] anyways. Fixed the translate.tcl script. 0.9.4 - Rudimentary IAL (Internal Address List) support via [userhost]. Masks are collected from the prefix, and from USERHOST and WHO replies. All of the userhost reply including the ~ is recorded. 0.9.3 - Messages that are too long now are reported with an error message in the status window instead of being ignored. 0.9.2 - Fixed the makefile to include the INSTALL and README files. Included uninstall instructions in INSTALL. Fixed a bug dealing with the scripting system where events with { and } were not handled properly. 0.9.1 - This is the first version with the new kernel-like version numbering system, and I actually intend to keep track of the versions from here on in. The version numbers will stay at 0.9.x until 1.0.0 which will be considered a stable release with a full set of features for what it needs to do.