$Id: CHANGES,v 1.22 2001/08/01 01:34:33 kalt Exp $ Changes since 0.22a: - ported to Cygwin. - finally added code to handle allow joining channels with a key set. - fixed IPv6. (did it ever really work before? ;-) - check for "gcc -pthread" on FreeBSD. (ugh) - will now attempt to connect to other IPs known for a particular server when a connect() fails with EHOSTUNREACH. - added "/server -d". - couple bugfixes for reverse "/dns" lookups when using getaddrinfo(). - increased the verbosity of "/server -v". - added ^W key binding. - bugfix for ^T (reported by Stefan `Sec` Zehl). - added "/yow". - look in libsocket for getaddrinfo(). Changes since 0.21a: - added -v option to "/server". - added IPv6 support (requires getaddrinfo() as specified by RFC 2533). - added support for GNU Pth to handle systems that do not have POSIX threads. - replaced the DNS slave process with a second thread. - NetBSD has finally (1.4K) fixed the prototype for tputs(), updated os.h. - buffer size mismatch in configuration parsing fixed. - tgetent() buffer needs to be retained (from Kurt Roeckx). - added code to handle missing CS capability (rather inefficient). Changes since 0.20a: - ircii style rendering is now parsed (ESC-h). - added K_CHIDE to allow tagging characters in a line to be hidden (ESC-H). - signal handlers weren't correctly initialized. - configure now looks for libmapmalloc, and uses it if it exists. - removed periodic log cleaning, you really have to use "/clear" now. - removed abort() from sic_getch(). - LOG_HIGHLIGHT was sloppy. - updated configure to look for tgetent() in curses and ncurses (RedHat 6). - SIGINT (^C) is now handled. Changes since 0.19a: - server options read from file could be set for the wrong server if the connection was delayed until DNS lookup completion. - SIGCONT and SIGWINCH are now handled. - curses replaced by termios (yay!). - updates to configure (among others, -lsocket was missing on solaris?!). - "/seen" is now a little smarter about where things are seen. - simplified configure.in by using new autoconf 1.13 macros. - update to understand 2.10 channel creation (!!). - fixed broken reply to CTCP TIMEs. - added "last" and "previous" options to "/window". - added "/run" command and -r switch. - "/option ?.c=." now assumes current window's default channel (if any). - silenced many warnings. Changes since 0.18a: - fixed bad interaction between enhanced tabkey and DCCs. - added new option to log URLs seen by the client (in $SICDIR/URLs). - incoming DCCs code was hideous (and buggy). - [nick] would crash the client when using extended syntax (tabkey). - ported to NetBSD. Changes since 0.17a: - "/clear" now also scrolls to the bottom of the log. - added a few OPER commands (connect, die, restart). - found a better middle between one and many PING. - updated "/join" not to crash on comma separated list of channels. - fixed several simple bugs occuring when a window isn't bound to any server. - added 'u' flag on status bar (ESC-u). - output wasn't flushed after a ^T. - cleaned up sic_swin() to fix window group merges. - tabkey for dcc chats bugfix. - data was read from servers & DCC chats line by line, eventually waiting. - many PINGs were sent to servers when one was enough. - PINGs sent to servers weren't logged. Changes since 0.16a: - added some man pages. - a buffer was too small in display_status(). - if a rejoin to a channel is pending, an invite will trigger a join. - when kicked, C_JOINED wasn't cleared, messing up the client internal state. - USER environment variable is now used for the username. - various little memory leaks here and there. - total counters were not updated. - missing "else" in sic_format() where a "break;" was previously missing. [Michael 'Eumel' Neumayer ] (Note to self: stop sleep-coding) Changes since 0.15a: - missing "break;" in sic_format(). - code to use the protocol level wasn't done. (what was I thinking?) Changes since 0.14a: - added protocol detection (until we can have protocol negociation) it can be used to customize (see MANUAL). - missing ^A prefix added in ctcp TIME reply. - used lame trick to know when JOIN is done instead of asking channel modes. - fixed /leave (was forgetting channels). [this code is too complex.. bugs!] - added support for ircd 2.10's !channels. - removed tgetent() call in term_init(): the tty now seem to be reset properly when exiting, and the call was apparently not needed. - fill the reverse status bar completely (from Eumel). - fixed long standing dispredency between active and current in get_*(). - Z_UNDEL is now unset (window level: ESC-u) when the log is clear'ed. - fixed hiding of incoming CTCPs (was hiding every private message;). Changes since 0.13a: - now runs on AIX (ported on a 4.1.5 system). - cleaned up some bad C practices. - added Z_VCTCP (verbose CTCPs). - `return' can now be used to scroll down. (convenient with Z_HOLD) - configure now checks for regular expression matching procedures and uses them if they exist. The GNU Rx library is for OSes that don't have these. - fixed various problems caused by the big changes between 0.11a and 0.12a. Changes since 0.12a: - added K_HIDE and K_IGNORE. - keywords (not matched against origin) can now be regexp (needs K_REGEXP set). - added counters for repeating messages (requires GNU Rx library). - added rewriting rules (based on GNU Rx library). - "/clear" now only hides entries, they'll be really deleted up to 1h later. - added Z_RSTATUS, Z_ETABKEY, Z_UNDEL, Z_HOLD (see struct.h). - cleaned up tabkey for use with services. - finally fixed tabkey. - C_JOINED wasn't cleared upon disconnect, breaking auto-rejoins. Changes since 0.11a: - extended server configuration file to allow individual uname/rname settings. - major cleanup of the channel joining/parting code to get rid of the annoying bugs preventing the client to forget about a channel. The downside is that the client is much stricter about join/part which could lead to more annoying bugs. Hopefully, it's bugfree ;-) - fixed tabkey for =nicks. - 2.9 style JOINs weren't displayed properly. - runtime switch options now implemented (and used for auto rejoin/reconnect) - CTCP time/ping replies are now CTCP/2 compliant. - ignoring was restricted to public messages on channels. Changes since 0.10a: - added ESC-s to toggle search on/off. - bugfix for window_wchannel(). - "/squery" messages now displayed in the default window. - aliases can now be used to send text to the current channnel. - the prefix was omitted from log files. - added sic_wptoggle(), bound ESC-t to it. - /lastlog was broken. - auto-rejoin upon reconnect was triggered by /motd. - tabkey fixes. - KILL wasn't parsed: added F_KILL (19 which shifts all above numbers). - DCC would attempt to reconnect! - reconnects would still be tried if all server windows had been reassigned. - parse_alias() bugfix. Changes since 0.9a: - keep trying to rejoin a channel after a kick. - keep trying to reconnect to servers when losing a connection. - mask 10 is now used as activity level. - tab/space key features have a separate list per server. - "hmmpf" cleanup to remove aborts on pilot errors. - added "/option reformat". - "/topic" still had the problem mentionned below. - activity no longer reset while scrolling. - cmd_kick() was broken.. (and I noticed!!). - transfer rates were shown in b/s but labbeled as Kb/s. - "/server #" count was messed up. Changes since 0.8a: - implemented "/lastlog". - cursor keys. [Michael 'Eumel' Neumayer ] - flush logfiles after everyline. [Michael 'Eumel' Neumayer ] - "/option get.*.keyword [word]" implemented. - no need to bind() if socket() failed. - finished DCC support. - server pings didn't work. - "/part" will now really work when not connected to the server. - "/topic" would always try to set the topic, impossible to just see it. - cheap fix so that the umode displayed on the status bar are correct. - fixed buffer overflow in cmd_msgnotice(). Changes since 0.7a: - "/join" now moves the channel to the current window if it isn't there. - implemented "/window dcc" (also bound to ^x^d and ^x-d). - various cleanups. - added basic virtual interface support (env variable SICIP). - implemented "/seen". - implemented "/ping". - ping the server if nothing was received for more than 60 seconds. - new key bindings. - "/option get" cleanup. - implemented logfiles. - cleaned up dcc get termination code. Changes since 0.6a: - configure now checks if -ltermcap is needed (FreeBSD). - implemented "/dcc get" (painful). - fixed analysis of DCC requests. - no longer checking for data from DNS slave when not waiting for some. - client no longer crashes on /quit when no server is defined. - term.c cast changed for portability (FreeBSD).[Stefan `Sec` Zehl] - guesses were too assertive. Changes since 0.5a: - "/cmode", "/kick", "/list", "/names", "/topic", "/who" guess the channel. - implemented "/kick", "/cmode", "/umode". - "/query" didn't work with DCC chats. - incoming DCCs didn't trigger the window activity flag. - channels are now rejoined after receiving numeric 001. - /part now works when not connected. - nick changes were displayed and recorded on all servers. - line matching a search now have their prefix in bold. - ignored lines now have their prefix underlined when displayed. - now using strerror(). - removed more abort() from the code. - failed connect() doesn't call abort() anymore. - a second "/quit" will close the connection immediately. - smarter "/query". - zombies are now repelled. - if "sdns" dies, it will be restarted (if possible). - fixed resolving bug. - fixed cmd_join() to know about channel keys. - fixed problem in parse_alias(). Changes since 0.4a: - implemented "/alias". - implemented "/query". - it's now possible to change the default channel within the same window. - implemented input history. - added bindings for ESC-- and ESC-+. - smarter tabkey and spacekey behaviours. - a "QUIT :#channel" message could crash the client. - fixed allocation problem for numeric formats. - %p can now be split into words. - added right/left alignement to formatting routines. - linux hack from Eumel broke sic_dcc(). - "/ctcp nick foo" doesn't add nick to the tabkey list anymore. - fixed displaying of 8bit characters. Changes since 0.3a: - infinite loop resulting from a "/part". - failed server connections didn't mark the server as not connected. - tested on IRIX 5.3. - autoconf'ed. (hmm) - ported to linux. (eww) - read/write pipes are specific to SVR4. Changes since 0.2a: - general cleanup. - added (customizable) format strings for numerics. - going to the next/previous window didn't work if the window order changed. - server customization files are now read upon first connect. - cleaned up DNS. (didn't handle server lookup failures well) - fixed non blocking IO code. - PONG replies are now RFC compliant. - cleaned up early parsing (in particular, removed the erroneous assertion on messages having to start with :). - implemented the ^-space feature. - "/join asd" would create a channel that you could never get rid of. Changes since 0.1a: - implemented "/clear" - cleaned up window/server re/mappings - implemented "/window kill" (^x k), "/window number" - rmatch() was implemented for use in get_ignore() - cleaned up DCC code, added "/dcc delete" - IOs are now non blocking (except reads)