ChangeLog of User Features.

Where a -- version # -- is noted, it includes all changes listed below
it in the file; anything above it will be part of the next release.

Minor user-visible changes are not listed here.

 -- 1.9.7-devel17 --

 PAM: Use "login" service, not "slforum". Add logging for PAM errors.


 -- 1.9.7-devel16 --

 Fix potential infinite-loop in banner print


 -- 1.9.7-devel15 --

 Compiles and runs on fedora core 5 (fc5).    (12 Sep 2006)


 -- 1.9.7-devel14 --	4 Jul 2006

 Recap of recent conversation when connecting.

 User count file for checking status from outside the room:
	# cat /var/lib/slforum/usercount-7777
	1 person (52 slots empty; 7 more people are too idle)

 Prompt character can be changed from '>' to anything else at compile time.

 ^E (macro-expand) followed by ESC or ^H (backspace) won't say you have no
	macro by that odd name.  It will assume you are cancelling the expand.
	If anyone does have macros defined with ^E<esc> or ^E^H, it will still
	expand them.  Can't create or edit those macros, however, can only
	delete them.


 -- 1.9.7-devel13 --

 Compiles and runs on fedora core 4 (fc4).    (25 Dec 2005)


 -- 1.9.7-devel12 --

 Should compile and run on rh9 with gcc3.


 -=-=-=- 1.9.6.3 -=-=-=-  (1.9.6 maintenance release)  25 Dec 2005

	Includes everything below this line, including 1.9.7-devel items.


 -- 1.9.7-devel11 --

 Compiles and runs on rh9 with gcc2.x.


 -=-=-=- 1.9.6.2 -=-=-=-  (1.9.6 maintenance release)  7 Jan 2003

	Includes everything below this line, including 1.9.7-devel items.


 -- 1.9.7-devel10 --

 Added standalone utility virtdb, for working with the virtual user database
	at the system command line or batch mode.


 -- 1.9.7-devel9 --

 Compiles and runs on OS X (10.1 tested), including virtusers.  (25 Dec 2002)


 -- 1.9.7-devel8 --

 !8ball now takes an optional question to ask (and print out)


 -- 1.9.7-devel7 --
 
 Same as 1.9.6.1 except for the version number it prints.


 -=-=-=- 1.9.6.1 -=-=-=-  (1.9.6 maintenance release)  3 Aug 2002

	Includes everything below this line, including 1.9.7-devel items.

 When topics are off, admins trying a topic-related command will be reminded
	once (hint message) how they can turn topics on.

 Added a note to INSTALL about nbdm / gdbm.

 ESC ESC clears input line, just in case.
 
 Prevent topic monopolizing -- the "Time until topic change allowed" is not
        reset when topic changes, unless topic setter also has changed.  This
 	prevents any user from owning it for more than the standard time.


 -- 1.9.7-devel6 --

 New key: Can hit ESC twice to exit whisper ( !! / !to all ) and keep your
	input line.


 -- 1.9.7-devel5 --

 Now supports 60 max users instead of 30.


 -- 1.9.7-devel4 --

 Add !ignore idlesoon


 -- 1.9.7-devel3 --

 The user who set current topic can change it at any time

 Dynamic topics on/off switch: Topics are compiled in, but disabled at startup,
 by default; use !admin topics on/off to switch from within SLForum.


 -- 1.9.7-devel2 --

 Just bugfixes


  
 -=-=-=- 1.9.6 -=-=-=-    4 Jul 2002.

 Added !set showaidle pref -- show/hide AWAY:idle users in !showaway and !users


 -- 1.9.6-devel3 --

 Added warning message and hit-any-key-to-cancel before autoaway due to idle


 -- 1.9.6-devel2 --

 Update to authlocal.c 1.0.5 - authlocal failures resolved.
 Removed code to log authlocal failures.


 -- 1.9.6-devel1 --

 Devel release; No user-visible changes.  Added code to log authlocal failures.


 -=-=-=- 1.9.5 -=-=-=-    4 Apr 2002.

 Topics on/off can be toggled at runtime with !admin topic off, if they
 are compiled in.

 Dice roll total can be twice as high; also removed many debug items which
 would bloat the log and are no longer necessary.  1.9.5-develx has been
 proven very stable and it's time for release.


 -- 1.9.5-devel55 --

 added !uptime command


 -- 1.9.5-devel54 --

 authlocal should work correctly with kernel 2.4.


 -- 1.9.5-devel53 --

 Fixed a misspelling in an 8ball response.


 -- 1.9.5-devel52 --

 8ball messages are now public; also fixed a bug where some TCP connection
 losses would disconnect users without announcing that fact.


 -- 1.9.5-devel51 --

 Just bug fixes.


 -- 1.9.5-devel50 --

 Debug: Can be compiled to dump core in /tmp instead of not dumping core.


 -- 1.9.5-devel49 --

 Docs: Alphabetized ctrl key listing, added reflow mode explanation.

 Added "dsize" user pref, to set # sides on dice for !roll.

 Added Reflow Mode for prettier pasting (details in features.html).

 Added the !8ball command.


 -- 1.9.5-devel48 --

 Can now do !who <username> to print more detailed info.

 "jetlag" code is all done, incl. timers/alarms, EXCEPT
	that public timers are always announced/listed with jetlag 0.


 -- 1.9.5-devel47 --

 Attempted kicks no longer beep for everyone, just for the kicked user, and
	you can !ignore kicks.

 Added 'jetlag' user setting - handles being in a different timezone than
	the server.  (West coast users set jetlag to -3 if the server's on
	the east coast, for example)


 -- 1.9.5-devel46 --

 Kicks are no longer private.


 -- 1.9.5-devel45 -- [internal snapshot]

 Holding down <tab> will never run off the end of line.

 Now warns on entry if you're ignoring public.


 -- 1.9.5-devel44 -- [internal snapshot]

 Bugfix -- No more "No slots available for non-localhost users"


 -- 1.9.5-devel43 --

 !roll now allows up to 1600 dice!

 Bugfix -- logs to stdout properly if -nofork and no log file given.

 ASCII 255 playback in macro expansion is now handled correctly


 -- 1.9.5-devel42 --

 Bugfixes -- no longer clears buffer before expanding a macro; now handles
	input and output of ASCII 128 and ASCII 255 correctly.

 Note:  The login banner and spam banners cannot contain ASCII 255; it's a
	telnet control character and will be stripped out by SLForum.
	If anyone really really needs ascii 255 in the login banner or a spam
	banner, let me know and I will fix this.


 -- 1.9.5-devel41 --

 SECURITY BUGFIX: Change in telnet parameters was causing
	remote logins to have local echo on (INCLUDING WHILE TYPING PASSWORD)

 -- 1.9.5-devel40 --

  High-bit characters are now supported, and on by default.  (comment out
	#define SLF_ALLOW_HIGHBITS in slfprefs.h to disable this)


 -- 1.9.5-devel39 --

   Virtual users: added fields "sponsoring user", "email address" to database.


 -- 1.9.5-devel38 --

   Tabs can now be backspaced through properly.  (Previously, repeated spaces
   were mistaken for tabs.)

   last line sent (^P buffer) now only set for public messages.


 -=-=-=- 1.9.4.1 -=-=-=-  (1.9.4 maintenance release)  30 Mar 2001

      Small C++ syntax fix in SLForumCmd allows more restrictive
      GCC's to compile SLForum.
	[ the other changes noted below are for 1.9.5-devel ]

 -- 1.9.5-devel37 --
 -- 1.9.5-devel36 --
 -- 1.9.5-devel35 --
 -- 1.9.5-devel34 --
 -- 1.9.5-devel33 --

  Your username, name, etc no longer auto-added to your listen list.

 -- 1.9.5-devel32 --

  !macro del added

 -- 1.9.5-devel31 --

  Macros now saved, loaded with all other user prefs!

 -- 1.9.5-devel30 --

  !macro edit works

 -- 1.9.5-devel29 --

  !to, !also now remind you if the person you're !to'ing is away.

 -- 1.9.5-devel28 --

  Basic macro functionality added (not saved/restored with prefs yet)

 -- 1.9.5-devel27 --
 -- 1.9.5-devel26 --
 -- 1.9.5-devel25 --

  Banners are no longer logged, only their filename.

 -- 1.9.5-devel24 --
 -- 1.9.5-devel23 --
 -- 1.9.5-devel22 --

  Hourly chime at midnight now announces the new weekday
  Can now use !ban none in addition to !ban clear (and also !listen none).

 -- 1.9.5-devel21 --

  ^T now does rot13 of the input buffer
  !set rotamt can change it from 13 to any other offset 0-25.

 -- 1.9.5-devel20 --
 -- 1.9.5-devel19 --
 -- 1.9.5-devel18 --

  !version now reports room uptime

  !set altcmd alternate command char added (for IRC folks, you can now have
	TWO command characters)

  !set autoaway added (auto-away when too idle)

 -- 1.9.5-devel17 --
 -- 1.9.5-devel16 --

  !me command (emotes) added

 -- 1.9.5-devel15 --
 -- 1.9.5-devel14 --

  "make install" added

 -- 1.9.5-devel13 --
 -- 1.9.5-devel12 --
 -- 1.9.5-devel11 --
 -- 1.9.5-devel10 --

  Command line options -d (SLF home dir), -bd (banner dir)
  Virtual users can now log in

 -- 1.9.5-devel9 --
 -- 1.9.5-devel8 --
 -- 1.9.5-devel7 --
 -- 1.9.5-devel6 --

  !admin functionally complete; virtusers and virtuser management

 -- 1.9.5-devel5 --
 -- 1.9.5-devel4 --
 -- 1.9.5-devel3 --
 -- 1.9.5-devel2 --
 -- 1.9.5-devel1 --

 -=-=-=- 1.9.4 -=-=-=-    4 Jul 2000.

  New docs are done!  Check 'em out at http://shadowlands.org/forum/

 -- 1.9.4-devel37 --

  auto-msgchk-but-user-has-no-mailbox bugfix

 -- 1.9.4-devel36 --

  Whisperban bugfix.

 -- 1.9.4-devel35 --

  20000623.0026: passwd-unix-inc.c:unix_validate now checks to see
	if the pwent password's not "x" even though shadow support is on,
	and uses that non-shadowed password to validate if that's the case.
	(This covers when we're compiling with shadow support, but shadow
	 is currently not installed.)

 -- 1.9.4-devel34 --

  20000612.2200: !lockout renamed to !lock

 -- 1.9.4-devel33 --

  Added !lockout command: makes your view of Forum read-only til you type
	your password in.


 -- 1.9.4-devel32 --

 20000610.1100: !ban <username> lets you disallow certain user(s) from
	whispering to you.


 -- 1.9.4-devel31 --

 (20000610.1030): ALLOW_LOCKOUT enables/disables c_lockout (default: disabled)

 20000609.2030: !set tabself now allows you to tabcomplete to your own
	username, making it easier to make quick notes to yourself using chat.

 20000607.1730?: c_lockout :)


 -- 1.9.4-devel30 --

 (20000524.1345): Now compiles with topics enabled.


 -- 1.9.4-devel29 --

 ^-- this should be the last devel release before 1.9.4... :)

 20000523.1815: PAM support now works!  Had to make a service description
	file to stick in /etc/pam.d

 2000523.1530: Default port number. (7777)

 -- 1.9.4-devel28 --

 -- 1.9.4-devel27 --

  20000513.1920: Shadow support now works!

  20000511.1720: automsgchk notifications now beep.


 -- 1.9.4-devel26 --

 (20000511.0910): Bugfix: Was reporting new mail every msgchk interval.
	Had a >= where should've been != ... fixed


 -- 1.9.4-devel25 --

 20000510.1933: alphabetized !set display (except !set command, that's first)

 20000510.1900: auto-msgchk checks every few minutes, reports if you have
	new mail.


 -- 1.9.4-devel24 --

 20000506.1010: Added final timestamp in the log, ctime format, of when
	a run terminates, so we don't need to scroll back through the log
	to determine the date on which it ended.

 20000506.0945: Added -h / -help commandline option.

 20000506.0900: Added commandline option (+-aa) for autoaccept guests,
	option for print guest-howto-message (+-ghm), and in theory, can
	now accept the arguments after port # in any order.


 -- 1.9.4-devel23 --

 20000505.2040: Added guest auto-accept option at compile time (slfprefs.h).
	AUTO_ACCEPT_GUESTS defaults to 0, of course!  Also mentioned this
	in INSTALL.

 -- 1.9.4-devel22 --

 -- 1.9.4-devel21 --


 -- 1.9.4-devel20 --

 20000430.1240: Listen list now saved and restored with other prefs

 20000430.1200: Added ctrl-o for enable/disable command char
	(good for pasting things in.)

 20000430.1110: Added trueidle user preference (idle time based on last
	keypress (this was the old behavior) instead of last public action.)


 -- 1.9.4-devel19 --

 20000429.2200: BEHAVIOR CHANGE in something long-established:
	Only public messages reset user idle time.
	(added all_keys_reset_idle field)
	(!set trueidle on for old behavior)


 -- 1.9.4-devel18 --

 20000429.1155: If the person you're whispering to leaves while you're
	typing a command, or typing a line that would be sent public using !!,
	that input would have been cleared; this is no longer so.

 (20000429.1015): Fixed the timer time-parsing bug that showed up only when
	a timer was already set.


 -- 1.9.4-devel17 --

 20000401.1956: Fixed timer bug

 20000401.1950: Added another second to ^D^D timeout for laggy modem users.
	(demaria request)


 -- 1.9.4-devel16 --

 20000321.1405: SECURITY FIX: Wasn't clearing yankbuffer on discon.  Fixed.

 20000321.1400: added lastbuffer to user.  (Private, no getter.)
	Added ^P to user::ManageInputBuffer so a user can paste in the
	last public or private line sent.
	Added pasteIntoBuffer private method for ^Y, ^N, ^P.

 20000321.1330: Added lastpublicmsg field to room.  (getLastPublicMsg()
	is getter).  Added ^N to user::ManageInputBuffer so a user can
	paste in the last public message.


 -- 1.9.4-devel15 --

 -- 1.9.4-devel14 --

 20000305.1145: !timer/!alarm now display the old timer being replaced when
	setting a new one.

 -- 1.9.4-devel13 --

 20000227.1930: Hourly chimes now have a hint message telling how to ignore
	them if you so desire.  (As with all other hint messages, this only
	shows up once for each user, and is not displayed after the first
	time.)

 (20000227.0200): !timer/!alarm now lists public timers too

 (20000226.1850): Public timers are now announced to room when set.

 (20000225.1605): removed !banner, now just !spam does c_banner


 -- 1.9.4-devel12 --

 20000219.0700: slforumroom::listusers now says how many users are here but
	not shown.

 20002019.0020: Simplified c_[un]ignore and its bloated help message by
	taking out banter and pbeep (demaria idea)

 (20000219.0018): c_showaway now shows the header line, as it should.

 20000218.2300: rewrote c_msgchk, it should work for everyone now, and
	now uses no external commands or files in /tmp  :-)


 -- 1.9.4-devel11 --

 20000217.0343: Added option for public timers.
	Current syntax: !timer <time> public [<message>];
	as we parse it now, public must go after time.  We can fix that. :-)


 -- 1.9.4-devel10 --

 20000209.1630: Can now ignore system messages, because moves, rolls and
	hourly chimes are system messages.  We now just don't let the user
	ignore system messages, but they can ignore messages with other flags
	besides just MSG_SYS and MSG_PUBLIC set.

 20000208.1445: Just plain !timer shows the current timer; now it also
	shows the timer_message, if any.  Also will show previous timer if
	any.	[ IsTimerSet indicates current timer; timer_expire_hour==-1
		  means no previous timer, any other value means there was one]


 -- 1.9.4-devel9 --


 -- 1.9.4-devel8 --

 20000206.2045: user prefs now saved to disk!

 20000206.0200: message "Shadowlands Forum is exiting." now has a timestamp.

 20000206.0130: set default hereidle threshold to 20 mins, from 15.

 20000206.0100: dschin: All prefs now load! 

 20000206.0001: at midnight, now announces the new date as well

 20000205.1830: made commands.html a little clearer about !ignore/!listen


 -- 1.9.4-devel7 --


 -- 1.9.4-devel6 --


 (20000201.1200): RE-MERGED IN 1.9.3 UPDATES FROM 1.9.2,
	plus Dan's persistent user prefs.

 20000131.1430: changed "timer due to expire" to more cheerful "timer set for"


 -- 1.9.4-devel5 --

 20000131.1415: !timer now takes a time in minutes, or hh:mm absolute time.


 -- 1.9.4-devel4 --

 20000131.0945: added msgdesc bits MSG_HCHIME so hourly chime can be
	ignored by users.  Added to c_ignore.


 -- 1.9.4-devel3 --

 matted additions: (1.9.4-devel3 is matt's version)

 20000129.1245: added hourly chime (room::CheckHourChime etc) - matted

 20000126.1730: added c_timer - matted


 -- 1.9.4-devel2 --

 20000129.1010: can now beep multiple users w/ c_beep

 20000129.0200: cmdline parser in SLForumUser::HandleUserCommand now
	gives an error if an integer param was expected and something else
	was there instead: using strtol instead of atoi.


 -- 1.9.4-devel1 --
 



 -- 1.9.3 --


 [Note: 1.9.3 was lost for a time in a disk crash, and not recovered
	til after 1.9.4 devel had begun (using 1.9.2 sources).  The
	changes shown below aren't merged into the main version til
	1.9.4-devel6. ]

 19991116.0200: loadPrefs() and savePrefs() - persistent user prefs - dschin

 19991111.1840: max guests/max remote logins (reserved spots for local users)

 19991108.2245: !showaway now has a header line.  It looked weird
	without one.  (This _will_ be part of a version bump.)
	Added an optional bool parameter (with_header) to room::ListAways
	for this.


 [Note: 1.9.3 was lost for a time in a disk crash, and not recovered
	til after 1.9.4-devel had begun (using 1.9.2 sources).  The
	changes shown above aren't merged into the main version til
	1.9.4-devel6. ]




 


 -=-=-=- 1.9.2 -=-=-=-    8 Nov 1999.

 19991108.0105: c_zebra: added !set (retained !zebra), changed "escape"
	variable name to "command"

 19991108.0045: added !version command (suggestion by Matt);
	sends the VERSION_MESSAGE one-line version string, which I added
	for this purpose.


 -=-=-=- 1.9.1 -=-=-=-    31 Oct 1999.

 19991031.0615: moved !roll to "checking stuff" in help summary to save
	a screen line on login.

 19991031.0606: removed !local, now that we can do !zebra local {on/off}.

 19991031.0530: !kick now warns the kickee in all cases the attempt fails
	(try by guest, or try to kick a non-guest) with a timestamp and a beep.

 (19991031.0525): Announcements about "guest requests entry" and "kicked" now
	have the MSG_MOVES msgdescbit, for users who don't really care and are
	ignoring such things.

 19991031.0245: BEHAVIOR CHANGE in something long-established:
	After discussion w/ demaria and dschin, changed the default
	command character to '!' from '%' .
	(This would lead to much bitching for about four days, and then
	 everyone either loved it or used !zebra to set it to % for themself.)
	(This was in prep. for initial public release.)

 19991031.0225: ^L now clears screen.  (Suggestion by Demaria)

 19991031.0210: The %% command always was a shortcut for "%to all";
	it now accepts two of the current command character if that gets
	changed (Ex. '//'), instead of /% in this case.

 19991031.0155: Can change the %here threshold, with %zebra hereidle <number>

 19991031.0142: People not away, but more than 15 mins idle, no longer
	show up in %here.

 19991031.0140: Lists both users and aways on login



 -=-=-=- 1.9.0 -=-=-=-    30 Oct 1999.
 ^
 New features added, so I'm bumping the release number to 1.9.0-release:
 Note also the release date.  Happy anniversary Draco!!!

 19991029.2345: BEHAVIOR CHANGE in something long-established:  The default
	%who now lists only users; %users shows users and away messages,
	and %showaway shows only away users and their messages.
	Changed return type of slforumroom::ListUsers and ListAways to bool;
	added HINT_SHOWAWAY; swapped names of c_who and c_users, and their
	descriptions in the big list of commands in slforumuser.cc.

 19991029.2040: added %here command; can exclude away'd users from %who list
	(added idle_here_threshold to slforumuser) (thanks to Draco for sugg.)

 19991029.2000: dschin: changed %listaway to %showaway (better tabcomplete)


 -- 1.8.1-devel11 --

 19991029.1445: incorporating dschin whoaway patch of 19991012.0100:
	dschin: implemented the split %who, but kept the legacy
      %who around... the new ones are (currently) called %users and 
	%listaway. We need to find a better name for %listaway because
	the tab completion currently conflists with %listen, so its not
	much help

 (19991028.1840): added slforumuser::cmd_char field, to specify the preferred
	character to escape commands.  Defaults to '%', of course.

 -- 1.8.1-devel10 --

 -- 1.8.1-devel9 --

 19991021.1800: Tab-completion of usernames for commands will never complete
	to your name; this makes it easier to %to someone when you and she
	have usernames that start w/ the same letter. (suggestion: Demaria)


 

 -- 1.8.1-devel8 --

 -- 1.8.1-devel7 --

 -- 1.8.1-devel6 --

 -- 1.8.1-devel5 --

 19990924.0120: private beeps to someone are now heard, even if the recipient
	is ignoring beeps!  They can now %ignore privbeep or %ignore pbeep
	to ignore these beeps.  (suggestion: paras)

 19990923.2045: merged in (from dschin 19990922.1145):
	added %autowho and %autotopic.
	also made %roll take less screen lines, and made the Star Wars PRG
	rolling a #define, so it will roll normally, as expected.


 -- 1.8.1-devel4 --

 19990922.2100: lines/sec brake implemented.  checkMaxLinesBrake()
	is the crucial function.


 -- 1.8.1-devel3 --

 19990920.1745: by default, guests cannot banner; added this feature.
	(Previously there was no check for this, and guests did gleefully
	 banner.)


 -- 1.8.1-devel2 --

 19990907.1515: added automatic localhost-login authentication!
	No need to type username and password.  This only works in linux.
	Authlocal was decent to write, and fun to use.



 19990814.2145: added %prevtopic command.

 19990814.1400: ^Y now appends the yankbuffer to current input line instead
	of overwriting it.

 19990811.1545: ctrl-k, ctrl-y yankbuffer added.  Thanks to Dan Chin
	for this idea.






 19990731.2245:  Possible to set a chatroom topic (with %topic) and
	have users comment on it (with %comment).  Leaving either argument
	blank will list the topic and all set comments.  Waiting time between
	topic resets is declared in slforum.h.  Resetting the topic resets
	all comments.  --matted

 19990729.1200: dschin idea: backspace should go back one tab at a time,
	not one char at a time through tabs.



 -=-=-=- 1.7.4 -=-=-=-    18 Jul 1999.


 (19990717.2305): fixed bug where a plain '%' while you're away would
	be said publicly, but wouldn't bring you back from being away.
	(in HandleGetLine)

 19990717.2250: case-insensitive command names.


 -=-=-=- 1.7.3 -=-=-=-    6 Jul 1999.

 (19990706.2120): fixed a crock where... well, inside Send is where we check
	to see if we're ignoring what's being said.  If it's being ignored,
	we send the user a message saying "we heard the word blahfile" and
	no longer ignore it... but if they're listening for a word like
	'we' or 'heard' or 'the', it'll come back from being ignored there.
	Fixed to fix the ignoringbits flags _before_ sending that message,
	and also, we don't check MSG_SYS messages, we always print them.
	Thanks to jadaris for finding this bug.


 -=-=-=- 1.7.2 -=-=-=-    4 Jul 1999.

 19990702.1900: now sends a space-ctrlh to idle users every PING_INTERVAL_SEC
	seconds, so we know they haven't left, even if the room's idle.


 -=-=-=- 1.7.1 -=-=-=-    2 Jul 1999.

 (19990702.1430): input buffer length variable now rechecked after every
	command execution, unconditionally, because commands can change the
	content	of the buffer.  ^U now works properly again in all cases.



 -=-=-=- 1.7.0 -=-=-=-    23 Jun 1999.
 ^ So finally we have...

 19990623.2335: ctrl and high-bit chars (under 32 or over 127, below 128+32)
	in lpcat are changed to spaces.

 19990623.2330: no 1-letter words in listenListAdd

 19990623.2000: added %printwho command to list who you're to-many-ing.

 19990623.1830: talk to many now really _says_ " to many", and is
	padded out so everyone's talking in that whisper group has the same
	margin.

 19990617.1900: When someone leaves/discons, immediately tell other
	folks who are %to-ing them that they've left.  Renamed
	sendMessagesToNone to sendMessagesTofromNone.


 -- 1.6.11 --

 19990616.1500: a two-way private conversation no longer prints the
	entire <from> to <to>: attribution when the conversation switches
	to/from directions; instead, from <user>: or to <user>: will be
	printed.  This is to ensure that multiple conversations don't get
	confused; whenever you're talking with someone new, you will get
	the full <from> to <to>: attribution.


 -- 1.6.10 --

 19990615.?: commands will now not lose data or broadcast it!  We've wanted
	this for a while.  If a command executes because the user types 'til
	it runs out of line, it will find the last space (so as not to break
	a word), copy everything after that to a buffer, execute the command
	without that last word-fragment, then paste the fragment into the new
	blank line.  Also, commands can request that their arguments can be
	placed into the new line; for example, %to <user> <message> requests
	that its first param (<user>) goes on the line so what you type on
	the next line also is %to <user> !

 19990615.1800: Disallow blank lines if they're not preceded by a line
	from the same person... this prevents some of the annoying spurious
	blank lines; blanks should be for whitespace among pasted code.


 -- 1.6.9-2 --

 19990614.? : a line with a '%' by itself is now properly echoed to
	chat, not treated as an invalid command.


 -- 1.6.9 --

 19990613.0400: trying out blank attrib lines in subsequent whispers from the
	same person, just like public chat.

 19990612.2330: input line now lines up with lines above it instead of
	being left-justified.


 -- 1.6.8 --

 19990612.0055: ManageInputBuffer now expands tabs to spaces after
	non-alphanumeric chars; it still doesn't interfere with tab
	completion.  Before, it would only expand tabs after whitespace.


 -- 1.6.7 --

 19990607.1800: username, gecos info now placed in listen list on login.

 (19990607.0245): now un-aways if you type a whole line that wraps,
	which is after all semantically equivalent to if you type a shorter
	line and hit enter; either way, it goes to public chat and thus you
	should be un-away'd.


 -- 1.6.6 --

 19990606.0220: Added ignore-banners and ignore-rolls.

 19990606.0130: added MAX_BLANK_LINES brake


 -- 1.6.5 --
 ^ And the resulting file is version...

 (19990529.1800): Auto cmd parsing!  Doesn't tab-complete intelligently yet.
	But it's now much easier to write new commands that take parameters.
	Also removed user::extractUserParam and extractStringParam
	hack/callback functions, which were there for cmds to manually
	do what auto cmd parsing now does.


 -- 1.6.4 --

 ---- NAME CHANGE ---- Renamed everything from jdm___ to slf___


 -- 1.6.3 --

 (19990527.2047) : disabled rndCommand() til it works right again,
	right now it segv's (see jdmchatuser::rndCommand for details)

 19990522.1800: Solaris port.  ln -s Makefile-solaris-2-6 Makefile ; make
	to build it.

 19990522.1515: now distinguishes between when someone leaves by %exit
	and when they've lost their connection. (thanks to Ro for suggestion)

 (19990522.0230): fixed bug where you couldn't see your own public
	messages if you were ignoring public.

 19990522.0100: now sorts the %who list by idle time!

 (19990521.2330): failed lpcat of /etc/issue.forum and /etc/issue.net
	now ignored; this prevents chat from not accepting users if both
	of these files are missing or unreadable.)





 990427.0100 dschin:
	When someone times out, it now prints the time.

 990425.0100 dschin:
	now reads /etc/issue.forum for the logon banner, and falls back to
	/etc/issue.net

 990416.1715 dschin:  tab expansion

 19990406.2100: aak, STATE_GET_NAME rejected all non-isalpha() chars..
	this was too restrictive of the original author.  This is now
	broadened to all alphanumerics, plus '-' '_' and '.'

 19990402.0000 dschin: ignores leading whitespace for cmds.

 (19990401.0515): moved ChangeLog to separate file from jdmchatuser.cc

 19990330.2200 dschin: %% is now %to all. (jdmusercmd.cc)
 




 19990222.2350: finally can ignore beeps. (requested by gharial)

 19990215.1900: When ignoring public chat, listen for specific words...
	un-ignore public when we hear them. (thanks to Mike for excellent
	suggestion)  I brought in linkedlist.[ch] for this.

 19990215.0730: Implemented paras' suggestion: Don't print repeated
	username at left edge of each line, when a user sends several
	lines in a row.

 19990211.0200: added %ignore public and %ignore guest...
	i really refuse to ignore specific people who are fellow users, that's
	something really juvenile.

 19990209.2345: can now use %time or %date (tho only %time is in help menu)

 19990206.1215: can now use %quit, %exit or %bye
	(only %exit and %quit are listed in help menu)

 19990206.0300: %away now displays a line with time of %away.

 (19990201.1400) FindSlotForNewUser() now prints a "room full" message
	when the room is full and someone tries to log in





 19990126.2100: tab completion for command names.

 19990124.0110: dschin: Dice rolling with %roll;
	also, GUESTS_CANNOT_ROLL optional #define in jdmchat.h

 19990113.1412: added to_bits, from_bits bitfields to support %to-multiple;
	added methods getUserByIndex and sendToByIndex to JDMChatRoom.






 981219.0600: tab now lists multiple matches if they exist; ^D now
	logs the user out if typed twice quickly (less than 2 sec apart).
	(reqested by Rowan)




 981207.0015: partial-user matching and completion (tab, ^D) support.





 981108.1600: no more beep when going away (now consistent with leaving).




 (981008.1950): if just '%' or '%help', won't say "no such command",
	just lists valid ones.	(thanks Rowan)

 981005.1930: un-%away only on <cr> on non-cmd when not in %to mode

 981005.1025: added enforced wait on incorrect logins.
	As of 981008.1950, this _still_ doesn't work quite right...

 981005.0955: added timestamp to login, logout announces.





 (980914.0850): fixed: check for WasUserAccepted() before printing
	"has left"... before, you could log in, and just not type anything
	at the password field and let it time out, and it said to the room that
	you'd left, without ever having said you were there.

	Used prevstate field of user object to store previous state when
	we go to STATE_NO_CONNECTION.  Added public WasUserAccepted()
	to return this info.

 (980914.0840): fixed: now prints hostname not host ip when possible

 980911.2300: added optional guest-howto-message on login (for jpritch!)
	Define GUEST_HOWTO_MESSAGE to print it.

 980910.0930: added ^W support to ManageInputBuffer

 980903.2200: removed %beep due to awkward implementation, due to hardcoded
	^G's in strings.

 980903.1200: guest timeout is announced to room.

 980830.2000: %time command; also, kick-idle-self now announces to the room.

 980809.1120: per user, can disable the beeps!

 980809.1020: find and kick duplicate logins of yourself on login.





 980710.1530: now, only guests can be kicked;
	this fixed the can-kick-self race condition as well.

 980709.1700: added hint bits: "hint" messages are printed the first time
	something shows up, and not again.  (Instructions on how to accept
	a guest, for example.)

 980703.2345: added guest support

 980701.1500: added specify-recipient
   Note:
	Currently, if the target of private messages logs off,
	the sender of these messages will still send there
	for the next message (i.e., the discon check is in
	_sendOut)... better would be to set to broadcast when
	the person-has-left notification goes out.





 980524.1800: added word wrap on long lines

 980524.1630: added username/password authentication
 	. added /etc/issue.net pretty login message

 980524.1500: . added ^U support

 -- down here is The Beginning of Development, from jdkchat 1.3 --
 -- on 24 may 1998.  Twas such a short, simple program...  -jer --

