This patch, applied to a PennMUSH 1.7.3p14, will upgrade it to PennMUSH 1.7.4p0
To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
patch -p1 < 1.7.3p14-1.7.4p0
make update
make
If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1',
not just 'patch -p1'.
Then @shutdown and restart your MUSH. A full @shutdown is recommended.
- Alan/Javelin
In this patch:
Major Changes:
* This is now the stable minor version. PennMUSH 1.7.2 is no longer
supported except to help people transition to this version.
Commands:
* The practically useless 'rob' command has been removed.
Minor Changes:
* A virtually complete French translation joins the Swedish and
Hungarian ones! Congratulations to Jean-Michael Amblat and
Guillaime Lupin.
* The index-files.pl script handles long help topic titles better when
creating the index of help entries. [SW]
* Config options that can be set with @config/set are now documented in
mush help. [SW]
* A @config/set of a dbref option now checks dbref for validity. [SW]
* An ansi_normal code is added at the end of each channel title.
* You can clear attributes that have invalid names. [SW]
* stripansi() removes HTML markup as well as ANSI. [SW]
* @poll and @doing cannot have ANSI or HTML markup. [SW]
* soundex() and soundslike() strip ANSI and HTML. [SW]
* The maximum length of attribute names has been limited to 1024
characters. [SW]
* Nesting ansi() functions now works better. Patch by Luke@M*U*S*H.
* help credits explains [initials] used herein. Suggested by Kyieren@M*U*S*H
Fixes:
* Help fixes by Nymeria, Balerion, Trispis, Vexon (all@M*U*S*H),
Jeff Ferrell, and [SW,LdW]
* The two-argument forms of regmatch() and regmatchi() were backwards
when it came to case-sensitivity. [SW]
* @search on zone class did parent instead. Fix by Luke@M*U*S*H.
* Use of @mail after @mail/nuke could cause a crash.
Reported by Brazil. [SW]
* make update handles the include directive correctly. [SW]
* The admin WHO output looks better when locations reach 5-digit
dbrefs now.
* regedit() and regeditall() were case-insenstive. Fixed. [SW]
* The code for log() was changed some time back to allow an optional
base argument, but the help and function table were never updated. [SW]
* owner() could be used to determine if any attribute existed on any
object. [SW]
* atrlock() has been cleaned up, fixing many bugs. [SW]
* Some list functions that evaluate attributes could be used to determine
if the attribute existed even if the object doing the function couldn't
normally see the attribute. Fixed, and their error messages are now
consistant with the other list functions (In other words, no errors, just
a null string) [SW]
* Idle timeout is now checked every minute rather than at dbck intervals.
Based on a report by Noltar@Korongil.
* Cleanup of signed/unsigned casts and signal handlers. [SW,DW]
* forbidden_name now does a case-insensitive comparison.
Reported by Kyieren@M*U*S*H.
* Blank lines at the start of help files are now correctly ignored
on Win32 and Mac systems as well as Unix. Report by Nymeria@M*U*S*H.
* functions() didn't show @functions. [SW]
* Nuked players weren't getting removed from @maliases. [SW]
* Database corruption caused by reading a db with over-long attribute
names or with attributes starting with quotes fixed. [SW]
* Crash bug in @attribute/rename fixed. [SW]
* Potential memory leak in help_command fixed. [SW]
* Warnings removed. Reported by [NJG]
* Windows NT native IO (NT_TCP) stuff should work again. Reported by
Bellemore@M*U*S*H. [NJG]
* @forwardlist now requires that you control the target, be pemit_all,
or pass the target's @lock/forward. Report by Vadiv@M*U*S*H.
* unparse_flags didn't handle exit toggles. Report by Draci@Chaotic.
* Casting and cleanup to enable compiling with lcc [SW]
* A potential problem with regexps with heavy backtracking fixed. [SW]
* Memory leaks with @clock fixed. [SW]
* Typo in spellnum() "fourty" fixed. Reported by Kyieren@M*U*S*H.
* @malias/set didn't work. Reported by Kyieren@M*U*S*H.
* Win32 portability fixes. [NJG]
* MacOS portability fixes [DW]
Prereq: 1.7.3p14
*** 1_7_3.300/Patchlevel Fri, 19 Jan 2001 09:27:13 -0600 dunemush (pennmush/5_Patchlevel 1.17 600)
--- 1_7_4.32(w)/Patchlevel Tue, 06 Feb 2001 15:02:40 -0600 dunemush (pennmush/5_Patchlevel 1.18 600)
***************
*** 1,2 ****
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.3p14
--- 1,2 ----
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.4p0
*** 1_7_3.300/FAQ Sat, 15 Apr 2000 10:56:00 -0500 dunemush (pennmush/6_FAQ 1.1 600)
--- 1_7_4.32(w)/FAQ Sun, 25 Feb 2001 13:31:02 -0600 dunemush (pennmush/6_FAQ 1.2 600)
***************
*** 1,8 ****
Frequently asked questions about the PennMUSH Server, post-pl10
! Updated: September 7, 1998
! *** There's a newer, probably better FAQ, on the web at:
*** http://services.pennmush.org/faq.html
0. What's the release history since pl10?
1. How do I ask for help with a problem?
--- 1,9 ----
Frequently asked questions about the PennMUSH Server, post-pl10
! Updated: Febuary 23, 2001
! *** There are other FAQs on the web at:
*** http://services.pennmush.org/faq.html
+ *** http://raevnos.pennmush.org/pennmush/faq.html
0. What's the release history since pl10?
1. How do I ask for help with a problem?
***************
*** 11,16 ****
--- 12,18 ----
4. Where can I get more information about admin'ing and hacking MUSH?
5. Where can I hear about new releases?
6. Why doesn't %t or space() work right for Pueblo clients?
+ 7. Compiling with the lcc compiler.
-----------------------------
***************
*** 104,106 ****
--- 106,131 ----
This is correct behavior. In HTML, if you really want spaces to
count as spaces, you must put your text in
..
blocks,
e.g. tagwrap(PRE,this %t has %t tabs %t and spaces).
+
+ 7. Compiling with the lcc compiler.
+
+ lcc is a freely available C compiler described in the book _A
+ Retargetable C Compiler: Design and Implementation_, by C.W. Fraser
+ and D.R. Hanson, and is available from
+ http://www.cs.princeton.edu/software/lcc/. A precompiled windows
+ version is available. This might be of interest to people who want to
+ compile Penn on Windows but don't want to download cygwin or another
+ package with a Windows port of gcc. The lcc package might be a smaller
+ download, but does lack some tools like sh that Configure and restart
+ depend on, so you'll have to find them or try to figure out everything
+ in config.h yourself.
+
+ PennMUSH can be compiled using lcc, though it produces a lot of
+ spurious warnings. After running Configure, make sure that HAS_STRDUP
+ is commented out of config.h. lcc uses many of gcc's headers and
+ libraries, so that this function might be detected, but it's never
+ recognized by lcc. We'll just use our own implementation, as it makes
+ things easier.
+
+
+
*** 1_7_3.300/CHANGES.OLD Mon, 18 Sep 2000 15:03:30 -0500 dunemush (pennmush/7_CHANGES.OL 1.6 600)
--- 1_7_4.32(w)/CHANGES.OLD Tue, 06 Feb 2001 15:03:59 -0600 dunemush (pennmush/7_CHANGES.OL 1.7 600)
***************
*** 2,17 ****
This is the old changes file for PennMUSH. Changes are reported in reverse
chronological order (more recent first)
! [TN] is Thorvald Natvig, a PennMUSH developer
! [TAP] is T. Alexander Popiel, a PennMUSH developer
[RLM] is Ralph Melton, a former PennMUSH developer
[NJG] is Nick Gammon, the Win32 porter
[DW] is Dan Williams, the MacOS porter
- [SW] is Shawn Wagner, a sourcehack
[2.2] refers to code which originated with the TinyMUSH 2.2 developers
==========================================================================
Version 1.7.2 patchlevel 32 April 17, 2000
Fixes:
--- 2,872 ----
This is the old changes file for PennMUSH. Changes are reported in reverse
chronological order (more recent first)
! [TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian)
! [TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek)
! [SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos)
! [LdW] is Luuk de Waard, a PennMUSH developer (aka Halatir)
[RLM] is Ralph Melton, a former PennMUSH developer
[NJG] is Nick Gammon, the Win32 porter
[DW] is Dan Williams, the MacOS porter
[2.2] refers to code which originated with the TinyMUSH 2.2 developers
+ [3] refers to code by (or inspired by) TinyMUSH 3.0
+ [Rhost] refers to code by (or inspired by) RhostMUSH
==========================================================================
+ Version 1.7.3 patchlevel 14 January 29, 2001
+
+ Major Changes:
+ * Commands and functions can now be aliased to other names
+ in mush.cnf, so you can provide translated command names
+ as well as the english one, etc. Suggested at various times
+ by Krad@M*U*S*H and David@M*U*S*H. New file aliases.cnf
+ in game/ is created to put these command_alias and function_alias
+ directives (as well as reserve_alias). [SW]
+ Minor Changes:
+ * smalloc and bigram compression options are no longer supported. [SW]
+ * Internal improvements to @search/lsearch, which are now more
+ consistent with one another. [SW]
+ * mush.cnf options that refer to dbrefs now understand # as
+ well as just . They are also formatted as dbrefs in @config
+ and config(). [SW]
+ * Much longer game/names.cnf file contributed by Kyieren@M*U*S*H.
+ * New internal function notify_format() to replace notify+tprintf
+ more safely. [SW]
+ * Tweaks to network activity timeout code. [SW]
+ * @stat and lstats no longer needs to scan the entire database. [SW]
+ Commands:
+ * @switch and @select can now take a /notify switch, like @dolist.
+ * Players may @chown by dbref, but they must still be carrying
+ the object if it's a thing. Suggested by Kyieren@M*U*S*H.
+ * @clone can now clone rooms. Suggested by Kyieren@M*U*S*H.
+ * @verb's matching of the argument has been relaxed so
+ non-privileged objects can use it on remote actors, if the normal
+ permission checks succeed. This makes @verb much more useful for zones
+ and master room objects. [SW]
+ Attributes:
+ * @forwardlist [2.2,SW]
+ Functions:
+ * itemize() takes a list "a b c" and produces "a, b, and c" and
+ similar tricks. Also callable as elist() for Rhost compatibility.
+ * ilev() returns the current iter nesting level. [Rhost,SW]
+ Fixes:
+ * When indexing help files, ones that aren't in the right format
+ weren't being properly closed. Report by Nammyung@M*U*S*H. [SW]
+ * We're much more forgiving about help files that start with
+ blank lines now.
+ * Help updates by Kyieren@M*U*S*H, [SW]
+ * Games w/o MAIL_ALIAS couldn't load maildbs that had mail aliases.
+ Reported by Nymeria. [SW]
+ * max_pennies had a limit of 10,000 in conf.c, even though it
+ has always defaulted to 100,000. Reported by Intrevis@M*U*S*H.
+ * src/filecopy.c didn't include hdrs/log.h. Fixed by Noltar@Korongil.
+ * MacOS portability fixes. [DW]
+ * vsnprintf used in place of vsprintf everywhere when available. [SW]
+ * Cleanup of @atrlock code. [SW]
+ * '#' without any trailing numbers was treated as #0 when used as a
+ dbref. [SW]
+ * Added explicit checking for lower-case letters in good_atr_name(). [SW]
+ * Trying to set an attribute with a bad name now gives a better
+ error message. [SW]
+ * Fix to potential overflow bug in revwords. [SW]
+ * Fix to potential overflow bug in @grep. [SW]
+ * Configure checks for snprintf. Systems unfortunate enough not to
+ have this (Solaris 2.5.1, for example) are stuck with sprintf.
+ Report by Broncalo@DuneIII.
+ * CHARGES were decremented whenever an A-attribute would be
+ executed, *even if the attribute wasn't set on the object*.
+ Reported by Kyieren@M*U*S*H.
+
+ Version 1.7.3 patchlevel 13 January 9, 2001
+
+ Major Changes:
+ * Semaphores may use attributes other than SEMAPHORE. These
+ "named semaphores" make it easier to have multiple semaphores
+ waiting on the same object. [SW]
+ * New attribute flag AF_NODUMP prevents attributes from being
+ dumped to the db. It applies to QUEUE, SEMAPHORE, and attributes
+ used as named SEMAPHORES. [SW]
+ Commands:
+ * @wait/until can be used to put commands on the wait queue until
+ some absolute time (in secs) is reached. [SW]
+ * @cpattr/noflagcopy copies attribute data without flags.
+ Same for @mvattr. Suggested by Noltar@Korongil.
+ Functions:
+ * foreach() takes start and end arguments like TM3/MUX2. [3,SW]
+ * locate() has a new option to force matching the preferred type,
+ and an undocumented option to eliminate ambiguous matching is now
+ documented. [SW]
+ Minor Changes:
+ * Experimental support for translating 8-bit accented characters to HTML
+ entities for Pueblo. [SW]
+ * Objects without a @lock/zone that are used as zones are noticed and
+ warned about during dbcks. [SW]
+ * Some people prefer that +channel "foo now cause you to say "foo
+ on the channel, instead of stripping the initial quote. Now
+ it's a mush.cnf option (chat_strip_quote). Suggested by Dave Milford.
+ * isint() now ignores tiny_math, so isint(foo) will always return 0. [SW]
+ Fixes:
+ * Hopefully fixed a problem with puppets doing look for non-Pueblo
+ players with Pueblo support turned on. The line after the look
+ could appear to come from the puppet even if it didn't. [SW]
+ * If you disabled a command with a one-character token (like say),
+ then running the command with the token ("hi!) would fail, but
+ wouldn't return the right thing for $command matching. Now it
+ returns the canoncalized raw command (SAY hi!) so you can trap
+ it in softcode. Reported by Mackenzie@SWGT Mush
+ * General linting [SW]
+ * Help fixes by Eratl@M*U*S*H.
+ * make customize doesn't try to link mkindx any more. And README and
+ os2/Makefile don't refer to it either. By Bobby Bailey (Chil@M*U*S*H).
+ * The internal tprintf() function is safer. [SW]
+ * Crash bug in @edit fixed, and @edit code is cleaned up. [SW]
+ * max_pennies documented in mush.cnf. Noted by Oriens@Alexandria
+ * cmdlocal.dst now includes cmds.h. Reported by David@M*U*S*H.
+
+
+ Version 1.7.3 patchlevel 12 January 4, 2001
+
+ Locks:
+ * A new @lock/chzone, set on a ZMO, controls who may @chzone
+ objects to the ZMO. This can simplify multi-player building
+ using ZMOs. Suggested by David@M*U*S*H
+ Commands:
+ * @wcheck/me checks all of a player's objects for them.
+ Functions:
+ * cflags() function gets channel flags.
+ * ctitle() gets channel title for an object. Suggested by Luke@M*U*S*H.
+ * strinsert() function does insert() on strings. Suggested by
+ Reagan@M*U*S*H. [SW]
+ * channels() on an object you can't examine now shows you channels
+ that you have in common with it. Suggested by Trispis@M*U*S*H
+ Minor changes:
+ * Runaway objects are now logged, along with the command that
+ pushed them over the edge. Suggested by Trispis@M*U*S*H.
+ * All instances of fprintf(stderr,...) after logging is started
+ are now handled through do_rawlog(LT_ERR,...). By David@M*U*S*H.
+ * @atrchown works more reasonably. [SW]
+ * @lock/link on an unlinked exit restricts who may link it.
+ * Everyone (even mortals) sees object names at the top of
+ their descriptions when they look at them. Suggested by Jeff
+ Ferrell most recently.
+ * New reserve_alias mush.cnf directive makes run-time command
+ alias reservation possible. Suggested by Jeff Ferrell.
+ * Mortals may use @command to get info about commands. Suggested by
+ Chili@M*U*S*H.
+ * Messages logged during help file indexing distinguish indexing
+ of admin topics. Suggested by mith@M*U*S*H
+ Fixes:
+ * Help fixes by [SW], Jeff Ferrell, mith@M*U*S*H, Mirth@AtheneuMUSH.
+ * Help update to @cpattr based on behavior noted by Noltar@Korongil.
+ * cwho and @chan/who behave better with hidden (@hide) players.
+ Reported by Reagan@M*U*S*H.
+ * MUSHes with no @functions crashed on @list calls due to a
+ problem with the hashtable code. Reported by Whiskey. [SW]
+ * A bug in handling of errors under debug in process_expression
+ was reported by Reagan@M*U*S*H. [SW]
+ * Rare memory leak in process_expression fixed. [SW]
+ * Inconsistencies in the handling of destroyed objects/players
+ and their locations fixed. [SW]
+ * The QUEUE attribute was not properly cleared on restart
+ for non-player objects. It was buggy in other ways, too. [SW]
+ * The AF_SAFE attribute flag couldn't be reset. Reported by
+ Pegasus@StarQuest.
+ * @teleporting into garbage could cause crashes. Reported by Howie
+ * The help_command and ahelp_command directives now look for
+ whitespace generally, not spaces specifically.
+ Suggested by Krad@M*U*S*H
+ * SIGHUP once again re-reads the config file. [SW]
+ * If an exit @created an object, that object would be inside the exit
+ until the next dbck. Now it is created in the exit's source room. [SW]
+ * Turning the lowest possible integer number into a string could
+ result in garbage output. [SW]
+ * Solaris needed arpa/nameser.h before resolv.h in mysocket.c
+
+ Version 1.7.3 patchlevel 11 December 4, 2000
+
+ Minor changes:
+ * Added 'comsys' as help alias for 'chat'. Suggested by David@M*U*S*H
+ * New win32 project files and MSVC build instructions by Jenny Lind.
+ Fixes:
+ * Improved test for non-broken getdate and getnameinfo.
+ * Loading panic dumps does better on chatdb. By Maverick@M*U*S*H
+ * You may leave a channel even if you're the wrong type
+ to get onto it. Suggested by Cheetah@M*U*S*H.
+ * Typo in the win32 strcasecmp code fixed [NJG]
+ * stddev's algorithm improved. [TAP]
+ * If the go command is restricted, other commands produce spurious
+ errors during the exit-matching phase of command parsing.
+ Reported by Jamie@M*U*S*H
+
+ Version 1.7.3 patchlevel 10 November 20, 2000
+
+ Major Changes:
+ * Improved detection of errors saving the game. If any problems
+ are encountered, the save is aborted, and online admins notified so
+ they can fix the problem before finding out about it too late. [SW]
+ Flags:
+ * The INHERIT flag has been renamed TRUST, which better describes
+ its function. INHERIT remains as an alias.
+ Commands:
+ * @chan now takes /ungag, /unhide, and /unmute as well as the
+ usual @chan/gag =no. By David@M*U*S*H.
+ Minor Changes:
+ * money() called on a no_pay player returns the value of
+ MAX_PENNIES to ease softcode checks. Suggested by Oriens@Alexandria.
+ * Removed help and &help entries from the distributed pennmush.nws
+ because people will generally want to override them anyway
+ and we shouldn't introduce problems. Suggested by Jeff Heinen.
+ * safe_str and friends optimize trivial 0 and 1 letter strings. [SW]
+ * A version of word-based compression that's almost 8-bit clean
+ is now included. [SW]
+ * We now use stricmp and friends for strcasecmp and friends on
+ Win32, rather than roll our own. [SW]
+ Fixes:
+ * @mail aliases couldn't be used by players who didn't have
+ permissions to see the alias members, which is wrong.
+ Fixed now. Report by Grinna@M*U*S*H.
+ * lnum(1) and lnum(0,0) were broken. Report by Jeff Ferrell
+ * Help updates. [SW]
+ * @set obj/notanattribute=flag now returns a 'No such attribute' error.
+ Reported by David@M*U*S*H. [SW]
+ * Help file indexing tries to detect files that aren't in the right
+ format. [SW]
+ * function restrictions were checking the wrong object. [SW]
+ * objmem and playermem counted eval-locks and atr-locks incorrectly.
+ Reported by Javin@DynamixMUSH. [SW]
+ * Fixes to win32 NT_TCP stuff. [NJG]
+ * Rare memory leak in do_page fixed by David@M*U*S*H.
+
+ Version 1.7.3 patchlevel 9 November 20, 2000
+
+ Major Changes:
+ * Help files and their associated commands are now defined with
+ the 'help_command' (or 'ahelp_command') directive
+ in mush.cnf. So you can translate the help to french and
+ add an "aidez-moi" command if you like. [SW]
+ * Help file indexes are now kept in memory and built by the
+ server. The mkindx program is no longer used. [SW]
+ * Added restrict_function and @function/restrict, like the versions
+ for commands. [SW]
+ * User @functions can now override built-in functions, if you
+ @function/delete the built-in first. You can also @function/restore
+ the built-in back. [SW]
+ Attributes:
+ * @[oa]zenter and @[oa]zleave on ZMOs are triggered when someone
+ enters or leaves a given zone. Motion between rooms in the same
+ zone doesn't trigger these. "Zone" is based on the mover's
+ absolute room (outermost container) so that entering and leaving
+ an unzoned object in a zoned room doesn't trigger these either.
+ Suggested by Michael Kurtz.
+ Commands:
+ * New /silent switch for @teleport without @[o|a|ox]tport msgs.
+ Minor Changes:
+ * Still less allocation involved in outputting text to connections. [SW]
+ * @scan has better output when multiple attribs match. [SW]
+ * Added internal absolute_room function for use by fun_room
+ and move.c and wiz.c, etc.
+ * MEM_CHECK now uses a sorted linked list and is faster. [SW]
+ Fixes:
+ * References to kill_timer removed from win32 sections. [SW]
+ * conf.c reports error via logging routines, not fprintf. [SW]
+ * Assorted minor bug and warning fixes. [SW]
+ * Fix to example in help regedit by Amberyl.
+ * @wait and other timing functions were broken under win32.
+ Fixed now. [LdW]
+
+
+ Version 1.7.3 patchlevel 8 November 12, 2000
+
+ Major Changes:
+ * Objects' names are stored in a string tree like attributes, so
+ we don't have hundreds of copies of 'West ;west;w' and such
+ taking up memory. Attribute name "hash table" is now a strtree. [SW]
+ * We no longer use alarm() to know when to run stuff on the queue. [SW]
+ * @shutdown/reboot is now supported on Windows builds. This is
+ slightly experimental. By Revian.
+ Minor Changes:
+ * %qa-%qz now operate as global registers like %q0-%q9.
+ Suggested by Trispis@M*U*S*H and probably others.
+ * Hashtable lookups are faster (collision chains are sorted) [SW]
+ * @uptime/mortal suppresses the extra process information [SW]
+ * Wizard @uptime prints better process information on linux. [SW]
+ * @listen, @filter and @infilter respect the REGEXP and CASE attribute
+ flags. Suggested by Maestro@M*U*S*H [SW]
+ * Having many @waits or semaphores is more efficient, because we
+ sort those queues by time and we stop looking sooner. [SW]
+ * User-defined lock names must follow the same rules as attribute
+ names. The name part of attrib and eval locks have to also. [SW]
+ * @chan/title's confirmation message is nicer. [SW]
+ * Minor optimizations related to strcpy() and malloc() overhead. [SW]
+ * safe_format uses vsnprintf if your system has it. By Luke@M*U*S*H.
+ * replace_string is safer. By Luke@M*U*S*H.
+ Fixes:
+ * iter() is smarter about quitting when the function invocation
+ limit is reached or the buffer is filled. [TAP]
+ * lnum() has been greatly sped up. [TAP]
+ * RWHO references removed from game/mushcnf.dst, game/restart,
+ etc. by mith@M*U*S*H.
+ * Fix to help filter by Revian.
+ * COMPRESSION_TYPE 0 didn't compile. Report by David@M*U*S*H.
+ * Clarification of @lock/teleport in help @elock by Envinyatar@M*U*S*H
+ * Compiling w/o MAIL_ALIASES didn't declare load_maliases.
+ Reported by Envinyatar@M*U*S*H
+ * clone() was stomping %0-%9. Report by Revian.
+ * @dol with an empty list now does the right thing (nothing)
+ instead of running the command once. Report by Linda Naughton [SW]
+ * spname cleanup by mith@M*U*S*H.
+ * Fixed a bug in @function function-name [SW]
+ * make update should finally handle CHAT_TOKEN_ALIAS right.
+ It's also smarter with mush.cnf
+ * isword() on a null string now returns 0. Suggested by Ashen-Shugar.
+ * channels(object) returns a better error when object isn't matched.
+ Suggested by Trispis.
+ * Fix to help rand() to reflect actual error return value. Reported
+ by Philip Mak.
+ * More translated strings noted by Krad.
+ * Problems with encrypt()'s logic fixed by Ashen-Shugar. [Rhost]
+ * Other encrypt() sillyness fixed by Brazil.
+ * Potential crashers around DEBUG and other buffer overruns
+ have been fixed. Report by Tajan and Rimnar. [SW]
+ * notify_anything allocates less memory. [SW]
+ * Fixed mistagged memcheck "restart.descriptor".
+ * MacOS portability changes. Should build on MacOS X public beta
+ (Darwin) systems nearly straightaway. [DW]
+ * Restart script test for already-running MUSH condensed to one
+ line. Suggested most recently by Cory Albrecht.
+ * Serious crash bug in page fixed. Reported by Revian.
+ * Win32 bugs fixed by Luke@M*U*S*H: problems with dumping
+ compression suffixes, problems with @uptime
+ * MUSH no longer crashes if a player alias is > 32 chars in length.
+ It truncates names that are too long instead. By Luke@M*U*S*H.
+ * We don't check AF_PRIVATE attributes for $/^commands on children.
+ By Luke@M*U*S*H.
+ * Under win32, the MUSH would often start ignoring commands from
+ players after the first 98 per connection. Fixed by Revian.
+
+ Version 1.7.3 patchlevel 7 October 12, 2000
+
+ Functions:
+ * filterbool(), for TM3 compatibility. Like filter(),
+ but tests for any true value, not just 1. [3,SW]
+ * case(), for TM3 compatibility, and caseall(). Like switch()
+ and switchall(), but does an exact match, not wildcard. [3,SW]
+ * valid() takes more categories. [SW]
+ * localize(), for TM3 compatibility. Like a cross between
+ s() and ulocal(). [3,SW]
+ Commands:
+ * @break, for Rhost compatibility. Stops processing the
+ current action list. [Rhost,SW]
+ * @enable and @disable can be used on any boolean config option. [SW]
+ * @function/enable and @function/disable for built-ins
+ * @function function-name reports some information on the function,
+ like @command command-name.
+ Flags:
+ * New attribute flag 'safe' prevents accidental modification.
+ Suggested by Stephen Viscido. [TAP]
+ Minor Changes:
+ * The daytime config option is no more. Do a few @searches in
+ its honor. [SW]
+ * lsearch() permission is controlled by @search, and entrances()
+ by @entrances, for consistency with other functions that have
+ a corresponding command. [SW]
+ * The number of reboots is tracked, and the restarts() function
+ added, for TM3 compatibility. [3,SW]
+ * Rearranged some compile flags to suit systems that have
+ /usr/local/include/ident.h. By Luiz Claudio Duarte.
+ * More strings marked for translation. By Krad@M*U*S*H
+ * :, [, ], (, and ) are no longer legal in attribute names
+ due to ambiguities and security issues. [TAP,SW]
+ * Ranges in @search, lsearch() and @find can be either #dbrefs or
+ (for backwards compatibility), integers. Inspired by ElendorMUSH. [SW]
+ * Broadcast messages in bsd.c replaced with GAME prefix.
+ Suggested by Krad@M*U*S*H.
+ Fixes:
+ * Fixed a bug in filter() where it only looked
+ at the first character of the evaluated attribute. [SW]
+ * Some more noise from info_slave was removed. [SW]
+ * do_pcreate and do_chownall now live in game.h and not
+ externs.h. Reported by Maestro@M*U*S*H.
+ * Clean-up of atr_add calls in void context. [TAP]
+ * IPv6 buglet fixed. Report by Vexon@M*U*S*H. [SW]
+ * @config/set can no longer be used to set options in the files
+ and messages categories, as this has icky consequences. [SW]
+ * Fixed a logic bug in letters_to_privs where not all the letters
+ were being turned into privs properly. Report by Bolt@M*U*S*H [SW]
+ * Fix to isint() so that isint(1a) is 0. [SW]
+ * Added safe_boolean internal function, and fixed a hang bug
+ in edit() reported by Walker@M*U*S*H. [SW]
+ * Fixed problems in panic dumps/reads of maildb and chatdb. [SW]
+ * @edit is a bit more efficient. [SW]
+ * Assorted lock structures are allocated in big chunks like
+ attribute structures, to save malloc overhead. [SW]
+ * User-defined lock names are stored in the attribute name tree. [SW]
+ * Various help fixes [SW, Javelin]
+ * LASTLOGOUT time now forces two-digit day for convtime niceness. [SW]
+ * Very large malias names or member lists could cause buffer
+ overruns. [SW]
+ * Buffer overrun fix, fix to str_chr. [TAP]
+ * tprintfs removed from DEBUG output so DEBUG doesn't mess up
+ messages in ^-commands anymore. [TAP]
+
+ Version 1.7.3 patchlevel 6 September 20, 2000
+
+ Minor Changes:
+ * Translation files are now archived separately on the ftp site.
+ * A variety of options.h settings have been removed.
+ EXTENDED_ANSI, DUMP_EMPTY_ATTRS, DUMP_LESS_GARBAGE and the *_LOCK
+ defines are totally gone. [SW]
+ OLD_NEWLINES, DELETE_ATTRS and VISIBLE_EMPTY_ATTRS have been
+ moved out of options.h as they're special-purpose. [SW]
+ * More common function error messages were made into variables
+ rather than being hardcoded in as string literals. [SW]
+ * If a player is set HALT, their queued commands will not run.
+ * Speedup in process_expression. [TAP].
+ Functions:
+ * The regedit(?:all)?i? family of functions, like perl's s///. [SW]
+ * Case-insenstive versions of regrab() and regraball(). [SW]
+ * etimefmt(), which is to timestring() as timefmt() is to time(). [SW]
+ Fixes:
+ * Error messages that were already variables are now translated. [SW]
+ * Fixes to various metaconfig rules. [SW]
+ * Open_Anywhere and Link_Anywhere were sharing the same
+ bitmask. Fixed. [SW]
+ * You can escape : in $command patterns that are being regexp-
+ matched now. [SW]
+ * Rewrites of the regexp functions so that, say, regrab() and
+ regraball() point to the same actual code, using called_as to
+ know when to stop. They also use PCRE's match optimizing
+ pcre_study() function when appropriate. [SW]
+ * Buglets in game/restart and game/mushcnf.dst fixed.
+ Reported by Krad and Nymeria at M*U*S*H.
+ * page_aliases directive in mush.cnf works now. Report by Nymeria.
+ * Same for float_precision. Report by Oleo@M*U*S*H.
+ * mushtype.h now included in compress.c. [DW]
+ * Less noise in log/netmush.log from failed ident queries.
+ * More strings marked for translation.
+ * Fixes to problems with @search reported by Oleo@M*U*S*H.
+ * Weird evaluation of functions in softcoded commands fixed. [TAP]
+ * Cleanup of typos here and there by Padraic@M*U*S*H.
+
+
+ Version 1.7.3 patchlevel 5 September 7, 2000
+
+ Minor Changes:
+ * FLOATING_POINT is no longer an option (it's always on). [SW]
+ * EXTENDED_ANSI defaults to enabled. [SW]
+ Attributes:
+ * @receive/@oreceive/@areceive triggered on the recipient
+ after a get or give, so you've got access to who caused
+ you to acquire the object and the object's dbref now.
+ * @give/@ogive/@agive triggered on the giver with object's
+ dbref in %0. Suggested by Oriens@Alexandria.
+ Fixes:
+ * Fixes for systems with broken or incomplete IPv6 support. [SW]
+ * Uses of index() changed to strchr() for consistency. [SW]
+ * Much removal of duplicate function prototypes and rearranging
+ of headers. hdrs/globals.h is now hdrs/case.h. hdrs/intrface.h is
+ no more, and hdrs/boolexp.h, hdrs/log.h were added. [SW]
+ * @search supports "quoted player names".
+ * We no longer report failed connect to ident servers in the log.
+
+ Version 1.7.3 patchlevel 4 August 8, 2000
+
+ Major Changes:
+ * Internationalization:
+ * Support for international time formats via LC_TIME locale [SW]
+ * Support for message translation
+ * Support for locale-sensitive ordering of strings (LC_COLLATE) [SW]
+ To take advantage of the new features, you should have your
+ LANG environment variable set to an appropriate locale
+ before you 'make install' (which will cause the right message
+ catalog to be compiled), and you should see the section
+ in game/restart for setting it there (which will actually cause
+ the server to use it).
+ * IPv6 support [SW]
+ Commands:
+ * @dolist/delim and @map/delim [SW]
+ * @stats/tables [SW]
+ * SESSION command displays session statistics (experimental) [SW]
+ Functions:
+ * uldefault(), like udefault but saves registers like ulocal() [SW]
+ * switchall(), for Tiny compatibility. [SW]
+ * cemit() with an option to act like @cemit/noisy [SW]
+ * vmin() and vmax(), for returning the min and max of each pair in two
+ vectors. [SW]
+ * utctime(), convutcsecs() for UTC/GMT time instead of server-local. [SW]
+ * convtime() uses getdate() if present, along with a variety of templates
+ * that it can accept. [SW]
+ * timefmt() - like the strftime() C function. [SW]
+ * pcreate() side effect function suggested by Adamas and Padraic@M*U*S*H
+ * starttime() now returns the first startup time, and
+ restarttime() returns the time of the last @shutdown/reboot [SW]
+ Minor Changes:
+ * +help is mentioned in help help. Suggested by Trispis@M*U*S*H.
+ * include directive for config files, with an example moving all
+ the restrict_command's to another file. [SW]
+ * make indent runs expand, then indent, because indent doesn't seem to
+ handle tabs very well. [SW]
+ * index-files.pl sorts patchlevels correctly. Patch by Jeff
+ Heinen.
+ * LASTLOGOUT attribute records logout time, like LAST, but not
+ visual. Suggested by Oriens@Alexandria, and others.
+ * Internal cleanup by David@M*U*S*H. New @config category 'messages',
+ no more OBJECT_ENDOWMENT or OBJECT_DEPOSIT macros, etc.
+ * Internal functions safe_integer(), safe_number(), and safe_dbref()
+ to replace safe_str(unparse_FOO(data), buff, bp) calls [SW]
+ * You can now @trigger an attribute containing a $command or
+ ^listen and it'll work (skipping the $...: or ^...: parts).
+ So you can now do this:
+ &DO_WHO obj=$who *: @pemit %#=[u(who,%0)]
+ &DO_+WHO obj=$+who *: @tr me/do_who=%0
+ (But you can do this much more efficiently with regexp...)
+ Fixes:
+ * table() is less CPU-intensive in extreme cases. [SW]
+ * Hopefully, Configure now determines pagesize on FreeBSD.
+ Method suggested by Matt Harris.
+ * CHAT_TOKEN_ALIAS comment clarification by Oleo@M*U*S*H.
+ * pcre regexp engine updated to version 3.4.
+ * Typo in @chan/who fixed by Vexon@M*U*S*H.
+ * @attribute/access won't modify AF_INTERNAL attributes now.
+ * Additional win32 portability fixes. [NJG]
+ * con() was buggy in a bad way. Fixed now.
+ * Configure -d should now work on linux systems that don't have
+ crypt libraries. Reports by mith and Inek@M*U*S*H.
+ * Fix to Z_TEL on things.
+ * Help fix to @lock5 by Datron@SW2.
+ Languages:
+ * Swedish and Hungarian translations for most strings are
+ included in this patchlevel.
+
+
+ Version 1.7.3 patchlevel 3 July 12, 2000
+
+ Major Changes:
+ * Restrictions to the 7-bit ascii charset have largely been removed
+ except in attribute names, to help international users. [SW]
+ * If available, we now use setlocale to support international
+ charsets (and eventually other conventions, though this should
+ be considered experimental). If you set your LC_CTYPE environment
+ variable to, say, 'fr_FR', french-accented characters should work.
+ Wide (multibyte) charsets are not supported.
+ Minor Changes:
+ * Internal cleanup of page/whisper code by David@M*U*S*H.
+ * New mush.cnf directive, page_aliases, for showing alias of
+ paging player. Supported by code by David@M*U*S*H.
+ Requested by many. A contrib version by Flame dates to 1996.
+ * @chat on a non-existant channel returns an error message. [SW]
+ * Two new CRYPT_SYSTEM options. One checks both SHS and crypt(3)
+ for passwords, and saves them back using SHS. The other does
+ the same for plaintext passwords. These should encourage folks
+ who currently use crypt(3) to make a painless move to SHS. [SW]
+ Commands:
+ * @remit can take /silent and /noisy switches now. Suggested by
+ Philip Mak.
+ * @lemit and @emit can take /silent switch. [SW]
+ * @config/set can set configuration parameters at runtime. [SW]
+ Functions:
+ * The set algebra functions can be given a sort order for output. [SW]
+ Fixes:
+ * CHAT_TOKEN_ALIAS could get defined w/o a character value.
+ Added a better explanation of CHAT_TOKEN_ALIAS in options.h.dist.
+ and fixed utils/update.pl to handle commented defines that take
+ values a bit better. Report by Nymeria@M*U*S*H.
+ * You can no longer initiate following a disconnected player.
+ Report by Dave@Galactic.
+ * CHANGES for 1.7.1 and 1.7.0 were missing. Back now.
+ * Typo in options.h.dist corrected. Report by Padraic@M*U*S*H.
+ * Small Configure portability improvements.
+ * Better handling of cases where the maildb has messages from
+ dbrefs that are out of range (due to truncating a db to remove
+ corruption, for example). Suggested by Ashen-Shugar.
+ * We now check for sitelocked sites before asking info_slave to
+ do ident lookups.
+ * Many help clarifications. [SW]
+ * linux Configure can use nm to find symbols, finally.
+ * help locate() now includes the z flag.
+
+
+ Version 1.7.3 patchlevel 2 June 3, 2000
+
+ Commands:
+ * New @sitelock options to control access to god, wizards, admin
+ by site. [SW]
+ * @force can now take /noeval [SW]
+
+ Functions:
+ * squish() can take a second argument to squish non-spaces. [SW]
+ * div(), floordiv(), modulo(), and remainder(), a set of functions
+ jointly adopted by MUSH and MUX servers for compatibility. [TAP]
+ * @@() and null() functions suggested by [LdW].
+
+ Minor Changes:
+ * @uptime now shows initial restart time, not just time since
+ last reboot.
+ * Each player now has a limit to the number of @mail messages
+ in their inbox (folder 0), configurable in mush.cnf.
+ Suggested by Edwin@M*U*S*H.
+
+ Fixes:
+ * More linting and improved indenting [SW]
+ * PARANOID works right for broadcast messages (like @cemit) now
+ too. Report by Vexon@M*U*S*H.
+ * You can no longer follow what you can't see.
+ * CHAT_TOKEN_ALIAS info appears in options.h now. Report by
+ Rhysem@M*U*S*H.
+ * Mac portability changes. [DW]
+ * Disconnected players don't follow any more. Suggested by Don Burks.
+ * Various fixes to better resist crashing due to attacks involving
+ overwhelming connections.
+ * @mail/stats for all was broken. Fixed now.
+ * Clearer message after failed @pemit. Suggested by Eratl@M*U*S*H
+ * Destroyed things stop following/leading. Report by Ashen-Shugar.
+ * follow didn't properly set up the followers as enactors.
+ We no longer short-circuit process_command. Report by Moe@Chicago.
+
+ Version 1.7.3 patchlevel 1 May 18, 2000
+
+ Commands:
+ * @oemit now takes a list of players. Adapted from patch by Philip Mak.
+
+ Minor Changes:
+ * Reconnecting is less spammy - we don't show motds again
+ to players already connected. Suggested by Trispis@M*U*S*H.
+
+ Fixes:
+ * Configure problem that resulted in weird compile failures on
+ bind/accept in src/bsd.c fixed.
+ * Further linting. [SW]
+ * FreeBSD getrlimit problem diagnosed by [SW] is worked around.
+ * Couldn't compile w/o FLOATING_POINTS defined. Fixed.
+ * Fixed a few dependencies in the Makefiles to insure that
+ hdrs/patches.h and hdrs/switches.h are rebuilt properly.
+ * Indentation cleanup.
+ * We now recognize egcs as if it were gcc 2, and set ccflags
+ accordingly.
+ * Increased size of some hash tables for performance. [SW]
+ * Help fixes. [SW]
+ * flags(obj/attrib) behaved badly unless attrib was CAPITALIZED.
+ Fixed now. Reported by Vexon@M*U*S*H.
+
+ Version 1.7.3 patchlevel 0 April 20, 2000
+
+ Major Changes:
+ * If you create a 'patches' subdirectory and keep any user-contrib
+ patches you apply in there, and if the patches are properly
+ formatted, i.e., they include these lines:
+ # Patch name:
+ # Patch version:
+ your MUSH's @version and INFO output will report them.
+ In addition to being helpful for you, this will help the
+ developers when you send us a bug report including your
+ @version. [TN]
+ * As @cemit doesn't override @chan/gag and allows
+ NOSPOOF notification, it basically now operates just like
+ @pemit/list (you can protect yourself from spoofing, and you can
+ silence it). Accordingly, the cemit power is no longer
+ necessary. It's now a runtime option.
+ * @malias (@mailing lists) by Daniel Peters.
+ * Attribute names are now stored in a single string tree,
+ so we don't have thousands of copies of the string
+ "FINGER_NOTE", etc., taking up memory. [TAP]
+ * As a consequence of the attribute name tree, the STARTUP flag
+ is no longer needed, and will be automatically removed from
+ dbs.
+ * Attributes are now inserted in alphabetical order, which
+ speeds lookup. [TAP]
+ * Panic dumps now dump the maildb and chatdb, appended to the
+ end of PANIC.db. The MUSH handles breaking them up on restart.
+ * New link_anywhere power allows @link'ing to any destination.
+ * Mortals may create VARIABLE exits. At the time the destination
+ is computed, the exit is check to see if it has permission to
+ link there (i.e., the exit controls the destination or the
+ exit is link_anywhere or the destination is link_ok).
+ To keep old code from breaking, all existing variable exits are
+ given the link_anywhere power at first db read in this patch.
+ Suggested by David@M*U*S*H.
+ * The follow command is implemented!
+ * Nested iter is now useful. The itext(n) function returns
+ the value of ## for the nth innermost iteraction, where
+ 0 is the most inner, and inum(n) does the same for #@. [TN]
+ * New regexp library, pcre, now allows perl 5.005 compatible
+ regular expressions! Suggested by [SW].
+ * Objects are now limited in the number of attributes that may
+ be set on them. This prevents a DoS attack. Suggested by
+ Ashen-Shugar.
+ * Some more english-style matching (look my 2nd box). [TN]
+
+ Functions:
+ * config() returns a list of config option names.
+ config(