ChangeLog for sirc and ssfe, by orabidoo <roger.espel.llima@pobox.com>

This ChangeLog is written from the beginning to the end, and not
the other way round.


Version 1.0

Put up sirc in 2 days because it was needed. First the basic handling
of server lines, then the user commands.  Stable by 1st Nov 94

Version 1.1 : 23rd Jan 95

Perl5 compatibility fix, and made it so that /w (or /whois) sends
the nick by default. Made it recognize all the $SIRC* environment
variables. Added /mo.

Version 1.2 : 6th Feb 95

Added a number of oper-only commands, checked them on an unconnected
server. Wrote a README. Added suport for &channels (local to the
server). Made it look at the directory it was executed in for the
bt_sockets.ph file. Fixed a bug in nickname handling that could make
the client lose your own nickname. Added online help. Sent out to
a few ftp sites.

Version 1.21 : 9th Feb 95

Complain on invalid help topics. Take nick and server on command-line,
and ignore extra arguments that are not options.

Version 1.21a : 20th Feb 95

Wrote ssfe; added -r switch to sirc to make it compatible with the
first versions of ssfe.

Version 1.3 : 9th Mar 95

Made it compatible with ssfe's protocol, making -r unnecessary. Gave
it the whole zer0-look. Added /query and recognized * as a short for
the current channel in a lot of places. Added tabkey and ^r, /clear,
/eval, ^t, prompts, command-line history. Read compressed help. Simple
substitution /alias-es. Added ^ for silent lines. /echo, .sircrc and
.sircrc.pl.

Version 1.4a : 11th Mar 95

Functions, hooks and userhosts. Wrote the programming docs and the
paragraph on ssfe, in README. Wrote zer0.pl and fixed a few bugs
in the hooks.

Version 1.4d : 12th Mar 95

Tabkey handler changed to keep track of the most recent entry properly.
Notify lists added, and the moment of evaluation of .sircrc fixed.
Patterns, -min and -max added to /list. Added /ignore. Made it so that
//command doesnt do aliases or functions. Fixed &getuserline.

Version 1.5 : 14th Mar 95

Rewrote and fixed a few things; finally added /server and caught 
disconnections with the proper messages. Fixed &getuserline some more. 
Removed /talkto and made /join do the work. 

Version 1.51 : 15th Mar 95

Ignored ^c in ssfe and made it interrupt a server connect() in sirc.
Made ssfe respond to SIGWINCH and redisplay the status/command lines.
Made it show modes and usermodes in the status line, and keep track
of them.

Version 1.6 : 16th Mar 95

Added /dcc chat, /dcc close chat, rewrote most of the main select loop. 
Fixed /dcc chat so it doesn't think it lost the connection when sent an 
empty line. Fixed some termcap handling in ssfe. Changed the convention 
to calling hooks not to include the hook type. Added the variable 
$add_ons. Added /cd and /system.

Version 1.61 : 17th Mar 95

Added the remaining dcc's: /dcc get, /dcc send, /dcc close get/send, 
and /dcc list. Added the hold mode to ssfe.

Version 1.99 : 18th Mar 95

Recognized the shell variable USERINFO. Changed (again) the way ssfe and 
sirc handle signals, so sirc alone can be stopped with ^c but sirc+ssfe 
can't. Renamed bt_sockets.ph to sircsock.ph. Made mksock recognize a 
bunch of architectures directly. Fixed /notify so it doesnt send a lot 
of 1-nick ISON's if a script does a lot of notify's at the same time. 
Made it work if you send an empty nick when you havent registered yet. 
Made ^x c exit the front-end, ^x i toggle ^b^v^_ handling. Added the 
undernet 2.9 specific commands. Called it all 1.99 (beta) and sent out 
for beta-testing.

Version 1.991 : 20th Mar 95

Bug fixes and additions: handled the numerics for /trace. Made it 
possible to /quit without being connected. Added the -beep option to 
ssfe, and ^x b to toggle it. Removed the -d (debug) option. Called
the dumb client dsirc and added the shell-script "sirc" itself.
Cut the main if/elsif/elsif structure in 2, as it would overflow some 
parsers. Fixed &getuserline in case it gets an EOF.

Version 1.992 : 21th Mar 95

Made the "install" script and removed a lot of installing instructions
from README. Added the "input" hook.

Version 1.993 : 22nd Mar 95

Reviewed the select/socket handling, minor changes, possibly fixed a
bug in /dcc send. Allowed /server while not connected.

Version 1.994 : 23rd Mar 95

Made ssfe compatible with older non-ansi C compilers *sigh*. Fixed
/dcc close chat for offered chats.

Version 1.995 : 26th Mar 95

Possibly fixed an annoying /dcc send bug. Fixed bug in zer0.pl's /ig
and /unig (they didn't work).

Version 1.9951

Fixed the chomping of :'s so it doesn't remove them from /away reasons.
Fixed a bug in SIGWICH handling and another in the prompts, in ssfe.

Version 1.9954 : 13th Apr 95

Added a 7-bit mode option (-7). Fixed /list to reset the max/min/pattern 
at the end of the list. Forget pending /dcc get if we couldn't write to 
the file. Print what server numerics come from if it's not the current 
one. Added the "dcc_request" hook. Fixed a bug in the back scrolling of 
the command-line (reported by Chag!nmj3e@darwin.clas.virginia.edu).

Version 1.9955 : 17 Apr 95

Fixed portability bug in Ultrix 4.3 for ssfe, reported by 
GG!choude@wolfe.eece.maine.edu. Fixed /motd and /admin so they don't 
show "from some.irc.server".

Version 1.9956 : 18 Apr 95

Fixed /join to a channel that we're already in, which didn't work.
Made ^o type the last msg (or dcc chat msg) you got on the command line.

Version 1.996 : 9 May 95

Fixed *the* /dcc bug and removed previous kludges to circumvent it 
(thanks to whoever made "strace", the best way to really see what's 
going on). /dcc send and get are no longer a big CPU hog. Showed 
"(away)" status in the status line. Handled ~/something and ~/something 
in /dcc send filenames. Added support for server passwords and ports 
specified in the format server.hostname:portnumber:password. 7-bit mode 
is now default, use -8 to start in 8-bit mode. Fixed the arguments to 
/kill. Made notify signoffs faster. Added logging with /log and 
/logfile. Made it so that ^x h and the like work when ssfe is waiting 
for a key in hold mode, so you can get out of hold mode even if there's 
a lot of coming text. Command-line history in ssfe redone to keep old 
lines when edited. Multiple offered DCC SEND requests from the same user 
don't get forgotten anymore. Re-did the &userhost system so it can 
handle more than one request at the time, and added the "notify_signon" 
and "notify_signoff" hooks.

Version 2.0 : 10th May 95

Accepted a filename in all the /dcc close's, and added /dcc rename.
Added full grouped and delayed auto-ops to zer0.pl.

Version 2.01 : 15 May 95

Switched to the GNU General Public License, corrected a couple glitches
in the PROGRAMMING docs, and made it upate the status bar when /join-ing
a channel in which we already are. Fixed ^y on Solaris.

Version 2.02 : 25th May 95

Made /leave and /part leave the current channel if none is specified,
so they become synonymous with /hop. Fixed a small bug in keeping track
of channel modes. Made it impossible to confuse ssfe with "ssfe escapes"
sent on irc, reported by T-Bone!tmorgan@mcs.csuhayward.edu.

Version 2.021 : 4th Jun 95

Made the empty command do like "/say", so you can do "/ /blah" as with
ircII.

Version 2.022 : 3rd Oct 95

Made auto-rejoin use the channel key if there was one; suggested by
slackie!agreb@pobox.com

Version 2.023 : 18th Oct 95

Added the REHASH command.

Version 2.03 : 23rd Oct 95

Made the idle times returned by /whois be translated into hours, minutes 
and seconds; made zer0.pl's /ub = /unban take an address as well as a 
nick. Made ops, deops and debans group 4 by 4 instead of 3 by 3. Changed 
the look of the status bar (suggested by slackie!agreb@pobox.com).
Added site-ignore, sitebans, sitekickbans, filterkickbans, and indexed 
ban removing (rewritten after some code by 
DayTrip!pyrex@sutr.novalink.com) to zer0.pl. Renamed zer0.pl to 
n0thing.pl, to avoid confusion with the ircII script, and arbitrarily 
started its version number at 2.0.

Version 2.04 : 26th Oct 95

Added support for the BSD interface to ttys on ssfe; sirc now compiles
properly on NeXT's, Sequent and other BSD machines that don't support
tcgetattr()/tcsetattr().

Version 2.041 : 3rd Nov 95

Made sirc not remove a leading : in a /quit reason, when showing it;
made hours, minutes and times in dates have 2 digits always. Possibly
made /dcc work better when the IP number is setup wrong on /etc/hosts,
or on multihomed systems.

Version 2.1 of n0thing.pl : 7th Nov 95

Added /setquit; made /ban take more than one nick.

Version 2.1 : 4th Dec 95

/aliases now take arguments like $0, $1- and $channel. /load now has a 
path, @loadpath, defaulting with $HOME/.sirc, the directory dsirc has 
been loaded from, and the current directory. It is now possible to
/msg =someone while not fully connected to a server.

Version 2.101 : 16th Dec 95

Added the possibility to pick a new nick when changing servers, with
/server newnick@server.name.

Version 2.102 : 23rd Jan 96

Added the -flow option to ssfe for terminals with ^S/^Q flow control.

Version 2.103 : 3rd Feb 96

Made /dcc work even if the system's own IP number as given by /etc/hosts 
is wrong (as happens often with dynamically assigned IP addresses).

Version 2.104 : 11th Mar 96

Added un-echoed password prompting to /oper, and a default port of 6667
for remote connects.

Version 2.11 : 22nd Mar 96

Made /dcc chat smarter: if we get a request from someone we've sent a 
request to, connect to theirs and forget ours.

Version 2.111 : 4th Apr 96

Fixed ssfe's handling of null chars, reported by flarp!tmorgan@pobox.com. 
Made the 'sirc' sh script only set $SIRCSERVER if $IRCSERVER is unset.

Version 2.12 : 9th Apr 96

Added the possibility to delete a timer with &deltimer; code contributed 
by Hevy!wally@totavia.com.

Version 2.122 : 20th Apr 96 

Made ssfe not redisplay the input line when ^a or ^e is pressed and the
corresponding cursor position is already visible.  

Version 2.123 : 12th May 96

Recognized .pl as the default extension for the /load command. Added
/log and /logfile to the /help.

Version 2.13 : 12th May 96

Fixed a very annoying bug in how ssfe handles a screen resize (reported 
by slackie!agreb@pobox.com).  Added a hook for server notices, 
appropriately called "server_notice" (suggested by 
Marsala!mars@loeffel.txdirect.net).

Version 2.131 : 14th May 96

Fixed the "the server says" message to not chop the first word of the
line, to show server protocol errors.

Version 2.132 : 17 May 96

Made sirc take the nick from the 001 numeric, so we don't lose track of 
the user's nick when it was too long or invalid.

Version 2.133 : 17 Sep 96

Added -L to specify an alternate .sircrc file (patch suggested by Doug
Morris, w.d.morris.jr@larc.nasa.gov).

Version 2.14 : 3 Nov 96

Made sirc not prompt for a server, the user will have to type /server
whatever instead; this way one doens't lose the ability to dcc chat
while not connected (suggested by slackie!agreb@pobox.com).  Removed
some useless stuff from socket handling.  Added the "disconnect" hook,
and /reconnect to n0thing.pl.

Version 2.141 : 11 Nov 96

Minor change to ssfe.c to deal with terminfo-based systems that are
missing the termcap 'cs' capability on vt/xterm terminals.

Version 2.15 : 6 Dec 96

Added /printchan and printing of number of bytes transmitted in a /dcc
chat (after ideas by slackie!agreb@pobox.com and scripts by
flarp!tmorgan@pobox.com).  Signal handling tweaks to make ^c interrupt
/server and /dcc connects on some Solaris versions.  Added minimal
support for +channels (recognizes them as channels).

Version 2.151 : 8 Dec 96

Added /printuh to print user@host on msgs, invites and notices (after an
idea by slackie!agreb@pobox.com and a script by flarp!tmorgan@pobox.com,
as usual).  CTCP replies now show who they were sent to if it's not you
(suggested by slackie).  Added a max recursion limit on &docommand
(suggested by benny!mike@ef.net)

Version 2.4 of n0thing.pl : 8 Dec 96

Unbuffered away file so msgs are there even if sirc crashes/gets killed;
/remop takes patterns; bans with ?'s are recognized.

Version 2.2 of sirc : 12 Jun 97

Used perl5's Socket module if available; unbuffered logs; /query and
/dcc work when not connected; /join w/o args joins the last invited
channel; ^o shows u@h if printuh is on; some cosmetic changes in ctcp;
new hooks: status, print, command, dcc_disconnect, chat_disconnect,
send_ctcp; added an API for sockets (&socket, &connect, &resolve,
&listen, &accept, &nextfh) and for select()ing on fh's (&addsel,
&remsel); fixed some dcc chat bugs; push "=nick" to the tab queue when a
dcc chat is established; added support for virtual hosts; made a /dcc
rchat (rename chat); added a /set command, moved lots of things into it;
an interface for scripts to add /set vars; settable level of ctcp
support with noflood; comments in .sircrc allowed (line beginning with
#); log into .gz pipes thru a gzip; added a restricted (secure) mode
with no access to files or shell or perl; -q also not load .sircrc.pl
unless -l (or -L for .sircrc) given; added &load; redid the buffering of
stdin to avoid bugs with large pastes; refuse to dcc chat yourself;
remove ^W = clear screen from ssfe; fixed ssfe bug (chopping 1 char at
the end of continued lines); made ssfe cut a word if it starts in the
1st half of the line; optimized &dostatus redraws; added /dis and
/disconnect; made dcc send a lot faster (~3x) by sending ahead of the
acks (/set sendahead); added /server 1; a system-wide sircrc and
sircrc.pl; added support for socks proxies via a loadable script;
changed the install script to be more precise about compiling ssfe, to
use different default servers, to recognize perl 5, and to optionally
install socks support

Version 2.5 of n0thing.pl : 12 Jun 1997

moved /a from dsirc to n0thing; /rdc for dcc rchat; made /unig better;
added /pj; (settable) not show repeated away messages; most of the
settings moved into /set variables and made aliases for the old
commands; saved messages in memory rather than a file; added /wall and
/set wallv from wallops.pl; re-join channels and re-umode on reconnect
(settable); opbegs now use ctcp op and take a password; save more things
including /set variables in /sve; removed ctcp pong replies

