From: Ari Johnson Date: Tue, 5 Sep 2006 00:30:46 +0000 (+0000) Subject: Initial import from 0.72 release X-Git-Tag: 0.72~1 X-Git-Url: https://git.theari.com/?a=commitdiff_plain;h=0b5d56f5dbd079fb3ff658529c1f900495aae7e9;p=cobramush.git Initial import from 0.72 release --- 0b5d56f5dbd079fb3ff658529c1f900495aae7e9 diff --git a/BUGS b/BUGS new file mode 100644 index 0000000..9814dae --- /dev/null +++ b/BUGS @@ -0,0 +1,9 @@ +Bugs that aren't our fault, but might bite people with old compilers: + +* Ralph Melton reports that compiling with gcc 2.5.8 under SunOS 4.1.1 + using -O optimization and forking dumps causes the dump process to + crash. Removing -O fixes the problem; so might using a more recent gcc. +* Javelin has confirmed that compiling with gcc 2.7.2.3 under Linux 2.2.16 + using -O optimization causes ansi(rh,a) to crash. Removing -O fixes + the problem; so might using a more recent gcc + diff --git a/CHANGES.174 b/CHANGES.174 new file mode 100644 index 0000000..fc9f59f --- /dev/null +++ b/CHANGES.174 @@ -0,0 +1,715 @@ + +This is the most current changes file for PennMUSH. Please look it +over; each version contains new things which might significantly affect +the function of your server. Changes are reported in reverse +chronological order (most 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 former PennMUSH developer (aka Halatir) +[RLM] is Ralph Melton, a former PennMUSH developer +[NJG] is Nick Gammon, the primary Win32 porter +[EEH] is Ervin Hearn III, a Win32 porter (aka Noltar) +[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.4 patchlevel 20 September 19, 2002 + +Fixes: + * Help semaphores4 typo fixed by Mike Griffiths. + * Help cleanup. [TAP] + * See_All players now see hidden connected mail senders. Suggested + by Philip Mak. + * spellnum could introduce spurious spaces. Reported by Intrevis@M*U*S*H. + * table() sometimes produced spurious blank rows. Reported by + Nymeria@M*U*S*H. This is the first attempt at a fix. + * switch() help improved. [SW] + * enter no longer returns Permission denied, but + "I can't see that here", as you can only enter things. + Suggested by Philip Mak. + * A one-time, one-pointer memory leak in plyrlist.c fixed + by Vadiv@M*U*S*H. + * Unbalanced or empty double-quotes gave weird results in page + and whisper. Reported by Vadiv@M*U*S*H. [SW] + * @chan/decomp no longer shows names of channels that the enactor + can't see. Reported by Nat@SW:ANT. + * The lock() and elock() functions now operate properly with + user:whatever locks. Reported by Mike Griffiths. + * pmatch() will locate hidden players if they're visible to you + because they're nearby. Suggested by Julian@M*U*S*H. + * regedit and other functions that used $-substitutions for subpatterns + could produce weird results in some cases. Reported by Bellemore@M*U*S*H + + +Version 1.7.4 patchlevel 19 June 14, 2002 + +Minor changes: + * Wizards can now unset the WIZARD flag on any thing, whether they + own it or not. Suggested by Cerekk@bDv. + * Circular zoning is no longer allowed. Fixes part of a bug reported + by Philip Mak. [SW] +Fixes: + * Win32 portability fixes. [EEH] + * grep for 'grep' rather than 'egrep' in restart because in grep 2.5.1, + egrep is a shell script that exec's grep instead of a link. + Fix by Vadiv@M*U*S*H. + * The messages for a possessive get used the object's new location + instead of its old one. Fixed by Apollo@Restoration. + * Attempts by unlinked exits to @link an exit could crash. + * %1 in @areceive was being set to the recipient rather than the giver. + Fixed. Report by jubjup@trekmush.org + * @uptime fix for Linux 2.4 kernel. [SW] + * The @@() function no longer complains about commas. Report by + Trispis@M*U*S*H. [TAP] + * @search flags= is now smarter about toggles with the same + letter and different types. Report by Philip Mak. + * English-style matching now ignores the type of object being matched. + This fixes a bug with, e.g., @link my 1st object=me reported by + Oriens@Alexandria. + * bound() now listed in the math functions list. Report by Dandy@M*U*S*H. + * Help fix for member() by Cerekk@bDV TrekMUSH + * The server can now transparently read mush.cnf (and included) files + that have Dos- or Mac-style line-endings. Suggested by Paleran. + * Crash bug in @search fixed. Reported by Philip Mak. + +Version 1.7.4 patchlevel 18 May 6, 2002 + +Minor Changes: + * The Mersenne Twister RNG has been backported from 1.7.5 into + this patchlevel, as it is not susceptible to some bugs that could + cause the RNG to hang the server. Report by Bellemore@M*U*S*H. + * Improved detection of info_slave errors. Based on patch by CU5. + * Rooms and exits can now be @forced. Suggested by Philip Mak. + * Deleting files from the hlp/nws/etc. directories is now sufficient + to cause game/txt/Makefile to rebuild the txt files. Patch by + Philip Mak. + * A see_all player may now use @chan/decompile on any channel. + Previously, the ROYALTY flag was required. Suggested by Oriens@Alexandria. +Fixes: + * The QUEUE and semaphore attributes aren't listed in @decompile + anymore. Suggested by Oriens@Alexandria. [SW] + * Several compiler warnings fixed. [SW] + * The LASTSITE and LASTIP attributes are now set locked and wizard by default, + to go along with the other connection-tracking attributes. [SW] + * Help on-vacation updated. Report by Nymeria@M*U*S*H. + * Help for following() function added. Report by Ashen-Shugar@Rhost. + * The last line of the access.cnf file sometimes wouldn't get read + properly. [SW] + * lnum improperly cached its return values without consideration for + changes in separator, so subsequent lnums with different separators + broke. Reported by Rhysem and Ambrosia@M*U*S*H. [TAP] + * Failing to speak on a channel you can't see no longer reveals the + full channel name. Reported by Vadiv@M*U*S*H. + * Passing a negative argument to the space() function now returns + an error string instead of 8192 blanks. Patch by Myrddin. + * Improved messages for following/unfollowing an ambiguous object. + Reported by Philip Mak. + + +Version 1.7.4 patchlevel 17 April 14, 2002 + +Minor Changes: + * The on-vacation flag, if in use, is no longer automatically cleared + on connect. Instead, the player is warned on connect (and at each + dump) that their flag is set. Suggested by Nymeria@M*U*S*H. +Fixes: + * Improved help for edit(). Suggested by Trispis@M*U*S*H [SW] + * List functions with null elements and a null output seperator could + trip end-of-buffer checks and stop in the middle of a list. [SW] + * valid() was inconsistent in how it handled attribute names with lower-case + letters compared to what everything else does. Reported by Philip Mak. [SW] + * @open could cause crashes in some unusual contexts. Reported + by Dandy@M*U*S*H. + * Improved sort()'s autodetection of list types. [SW] + * Fixed a problem with sorting dbrefs larger than the highest one in the + db. [SW] + * Mac portability fixes. [DW] + * Help for @open clarified. Suggested by fil@M*U*S*H. + * Help for kill clarified. Suggested by Philip Mak. + * Channel titles can no longer contain newlines or beeps. + Report by Nome@M*U*S*H. + * soundex behaved badly with extended characters. [SW] + * inc() and dec() now behave like the help says, regardless of whether + tiny_math is set or not. Their behavior on null strings and strings + that do not end in a digit depend on the null_eq_zero setting. + Reported by Wayne@PDX. + * The panic db file descriptor was never closed after reading a + panic dump. [SW] + * DOES removed from help attribute list. Suggested Philip Mak. + * Under no circumstances should connection to a null-named player + be allowed. Suggested by Wayne@PDX. + * 'with' no longer allows use of $commands on remote objects you + don't control. Report by Nammyung@M*U*S*H. + +Version 1.7.4 patchlevel 16 March 11, 2002 + +Minor changes: + * After using 'register' at the connect screen, the player is + no longer disconnected. Suggested by Philip Mak. + * 'help mail functions'. Suggested by Trispis@M*U*S*H. + * Messages associated with drop, give, and get are now more + verbose and provide more information about who did what to whom. + Suggested by Philip Mak. + * Attrib locks did case-sensitive comparison of values, which is not + what you probably want. No longer. Reported by Philip Mak. [SW] + * QUEUE and sempahore attributes are now removed (not just emptied) + when drained or notified to 0. [TAP] +Fixes: + * Improvements in handling ansi in string functions. [SW] + * @clone/preserve didn't preserve when cloning exits. Reported by + Bellemore@M*U*S*H. [SW] + * A significant bug in the manual notification of timed semaphores has + been corrected. [SW] + * Revian@M*U*S*H pointed out that user-defined commands starting with + "@" that match the names of standard attributes don't behave as + you might expect. This is now documented in help user-defined commands. + * Security checks for attribute setting used the owner of the setting + object, not the setting object itself. Report by Howie@New Frontier. + * help set() improved based on report by Tareldin@M*U*S*H. + * folderstats() did not behave as promised in the help. Now it + does. Report by Trispis@M*U*S*H. + * Typo in src/log.c fixed by Nathan Schuette. + * Improved help for DEBUG. [SW] + * Aliased 'help ^' to 'help listening2'. Suggested by Philip Mak. + * MacOS portability fixes. [DW] + * The sigusr1 handler would reinstall itself as the sighup handler + on systems that don't provide persistent signals. + Fixed by Bellemore@M*U*S*H. + * &a=b me now properly clears the attribute A=B. Reported by + Trispis@M*U*S*H. In addition, now @tel #1234= produces an error, + as it should. [SW] + * mail functions can now be called by an object on anything it controls + (typically, its owner). Suggested by Trispis@M*U*S*H. + * The givee is now correctly passed in %1 to @give/@ogive/@agive, + and documented. Reported by Philip Mak. + * Added hints for Irix 6.x by Vexon@M*U*S*H. + * i18n fix for function invocation limit message. + * Clarification in help @alias by Philip Mak. + * @set obj=!puppet repeatedly no longer repeats the "not listening" + message. Reported by Philip Mak. + + +Version 1.7.4 patchlevel 15 February 8, 2002 + +Minor Changes: + * @dolist and iter(), where multiple tokens are replaced (## and #@), + now do both replacements at once. This is more efficient in several + ways and fixes a problem where if the second token gets into the + string from a replacement of the first, it gets replaced. (iter(a#@, + ##) should return a#@, not a1). [SW] + * setunion no longer eats empty list elements. [SW] + * The help text for items() is now more descriptive of how it works + and differs from words(). Suggested by Zen@SW1. + * When you attempt to @chzone an object to a ZMO without a zone-lock, + a default zone-lock of "owner of the ZMO" is now set, and the + attempt succeeds. Suggested by Linda Antonsson. + * In the French message translation files, the word 'drapeau' and + 'flag' were used interchangeably. I've standardized on 'flag'. + Report by Vexon@M*U*S*H. +Fixes: + * Message typo fixed by Bellemore@M*U*S*H. + * No more ansified names in logged shutdown messages. Report by + Bellemore@M*U*S*H. + * Messages when destroying players now take into account the + destroy_possessions and really_safe settings. Suggested by Wayne@PDX. + * The parser no longer strips any first layer of braces in, e.g. + @switch action clauses, but only when the first character in the + clause is a brace. This prevents @sw 1=1, @wait me={@emit 1; @emit 2} + from being misparsed and running @emit 2 immediately. Reported by + Azratax@Azmush. [TAP] + +Version 1.7.4 patchlevel 14 January 4, 2002 + +Minor Changes: + * The global function invocation limit is now 5 times the per-evaluation + function invocation limit, to provide some flexibility in cases + where you run a small number of functions that cause a larger + number of other functions to be evaluated (e.g., using tel() + to move players into rooms with function-laden descriptions). [TAP] +Fixes: + * Mortals are now restricted in which html tags they can generate + when pueblo support is enabled. Suggested by BladedThoth. + * @sitelock/name ! was improperly case-sensitive in its + matching. Reported by Linda Antonsson. + * Better invocation count checking and aborting on reaching limit. + Reported by Ashen-Shugar. [TAP] + * Beep characters are ignored when matching object listen patterns. + Suggested by Wayne@PDX. + * The end-of-dump marker is checked when reading the chat database. + Suggested by Bellemore@M*U*S*H. [SW] + * @lock obj=attrib:value locks were broken. Reported by Linda + Antonsson. + * Minor help fixes. + +Version 1.7.4 patchlevel 13 November 30, 2001 + +Minor changes: + * options.h.dist mentions Darwin as well as MacOS X. [DW] + * PCRE updated to 3.7. [SW] + * When CHAN_NAME_LEN is increased beyond 30, the @chan/list header + line is misaligned, and other strange things can happen to + @chan/list. Reported by Bladed Thoth +Fixes: + * Crash bug in chat channels reported by BladedThoth. + +Version 1.7.4 patchlevel 12 November 9, 2001 + +Minor changes: + * @dol/delim is now @dol/delimit, for Mux compatibility. [SW] + * /preserve switch for @chownall works like @chown's /preserve switch. + This changes the default behavior of @chownall, which used to + preserve everything, to work like @chown and strip privileged bits. + Suggested by Taladan@M*U*S*H. +Fixes: + * Warnings in index-files.pl are no longer shown. Report by Noltar@Korongil + * Additional support for ansi in channel names. Ansi is now stripped + when sorting channels and when matching names for @chan/decomp and + @chan/what. Reported by Oriens@Alexandria. + * Help @decompile clarifies the /flags switch. Suggested by Oriens@Alexandria + * Source is indented before diffs are produced. + * Typo in help zmr correct by Oriens@Alexandria. + * Players disconnecting without QUIT continued to use CPU until fully + disconnected. Fixed. Report by Protagonist@M*U*S*H. [SW] + + +Version 1.7.4 patchlevel 11 October 15, 2001 + +Minor Changes: + * In places like switch() that can match \n" in PRE, and the newer clients that are supporting + the pueblo protocol, like MUSHclient, do handle it correctly, causing + an incompatibility problem. Our workaround is to avoid PRE. + Reported by [NJG]. + * The WHO list output is tagged for Pueblo to get + appropriate newline handling. [NJG] + * help @mail mentions help @malias. Suggested by Trispis@M*U*S*H. + * Matching code now treats players you can't see like disconnected players + when matching *player. Reported by Walker@M*U*S*H. + * @newpassword now confirms whose password was changed. Suggested by + Xyrxwyrth@M*U*S*H. + * @chan/who and cwho() now include objects on the channel. Suggested by + Glonk@GlonkMUSH. + * q-register lookup is slightly faster. [SW] + * Floating-point numbers in exponential format (6.02e23) are always + accepted, not just when tiny_math is set. [SW] + * isint() and isnum() ignore the null_eq_zero option, since they already + ignore tiny_math. [SW] + * time() and convsecs() take an optional timezone argument that, + if 'UTC', makes them act the same way as utctime() and convutcsecs(). + From MUX2. [SW] +Fixes: + * Additional range checking to avoid some bugs reported by Alierak. [SW] + * Fix to buglet in @name error with PLAYER_NAME_SPACES reported by + Luke@M*U*S*H. + * Typo in @name error message fixed by Luke@M*U*S*H. + * One could @pcreate players past the hard db limit. Reported by Z@Korongil. + * Typos in config_h.SH and options.h.dist fixed by Oriens@Alexandria. + * Under some conditions, you could double-join a channel. + Reported by Xyrxwyrth@M*U*S*H, investigated by Steven@Champions. + * Error message for @chan/desc improved. Reported by Oriens@Alexandria. + * Typo in alias.cnf fixed by rodregis@M*U*S*H. + * @mvattr sometimes failed to remove the old attrib, when it was a + standard attrib that could be abbreviated (@mvattr a/desc=b). + Fixed by Walker@M*U*S*H. + * Some english-matching (like 'get 1st foo') would fail. Reported by + Mystery8. + * Typo in help @verb reported by Greck. + * MacOS tweaks. [DW] + * Better detection of numbers that are too big. [SW] + * Wizards could crash the server by entering objects in their own + inventory. Reported by Howie@New Frontiers. + +Version 1.7.4 patchlevel 6 June 11, 2001 + +Minor changes: + * English-style matching has been added to some more commands, + to help with the stricter ambiguity checking (@teleport my 3rd foo=box, + etc.). [SW] + * @pemit/list no longer does its useless ## substitution. [SW] + * capstr() and art() skip leading ansi and html. [SW] + * table(), alphamin(), alphamax(), comp(), lcstr(), ucstr(), strinsert(), + and delete() are all ansi and html aware. Mixing html and ansi in their + arguments is probably a bad idea, though. [SW] + * reverse() and scramble() are ansi-aware, and still will break html, but + in a different way than before. [SW] + * foreach() strips ansi and html from the string before doing its things. [SW] + * Complete Norwegian translation by Kenneth Aalberg. +Fixes: + * Bug in growing hash tables fixed. [SW] + * Typo in copyright fixed. Reported by Cheetah@M*U*S*H. + * Unused variable removed from fun_ansi. Reported by Sidney@M*U*S*H. + * Mac portability stuff. [DW] + * Wizards could @chown garbage objects. [SW] + * Wizards could give to garbage objects. [SW] + * Wizards could read God's @mail. [SW] + * Eliminated some compiler warnings. [SW] + * mid() was quite broken with ansi. right() was less broken. + Both hopefully fixed for good. [SW] + * Fixed a problem with the attribute used with foreach() evaluating from + the perspective of the wrong object. [SW] + * before(), after(), and wrap() are now classified as string functions + in the help. [TAP] + * help wildcards now mentions ?. Suggested by cmintrnt@M*U*S*H. + * help fixes by Jeff Ferrell. + * Problems with wrap() when the text included %r%r (or started with %r) + reported by Noltar@Korongil. + * If you somehow managed to load a corrupt db with a parent loop, + lparent could infinite-loop. Reported by Ashen-Shugar. [TAP] + + +Version 1.7.4 patchlevel 5 May 25, 2001 + +Fixes: + * Fix to uninitialized variable that could cause ansi to bleed + on some systems. Patch by Luke@M*U*S*H + * Prototypes for ansi_align and ansi_save added to externs.h. [DW] + * FreeBSD hints file updated to get rid of a compiler warning. [SW] + * Setting hate_dest to no will not disable @recycle [SW] + * switchinc.c updated. [DW] + + +Version 1.7.4 patchlevel 4 May 13, 2001 + +Minor changes: + * Internally, the /folder switch is now /folders, which prefix-matches + to /folder and also lets @mail/folders work as syntactic sugar. + * fun_ansi has been rewritten to use less buffer space by consolidating + ansi codes. New codes for turning off ansi attributes (like hilite) + also added. Patch by Luke@M*U*S*H. + * /silent switch to give suppresses default messages when giving + money to players. Suggested by 8BitMUSH. + * Old port concentrator code removed. [SW] + * On linux, @uptime reads /proc files instead of running 'uptime' [SW] + * Code that uses strdup and then adds a MEM_CHECK record for "string" + now use a wrapper function that does it automatically. [SW] +Fixes: + * Paging a page-locked player didn't give the appropriate messages. + Reported by Steven@Champions. + * left, right, and mid are now ansi-aware. Patch by Luke@M*U*S*H. + * Help fixes to lexits(), name() (Noltar@Korongil), 1.7.4p3 (Z@Korongil). + * win32/cmds.h updated with prototypes for dismiss and desert by + Noltar@Korongil. And hdrs/externs.h, too, by [SW]. + * Memory leak with using alphabetic q-registers in queued commands fixed. + Report by Jayvin@Dynamix [SW] + * Added hints/openbsd.sh to distribution. + * Mac portability linting. [DW] + * Several memory leaks in @malias code fixed. [SW] + +Version 1.7.4 patchlevel 3 April 23, 2001 + +Commands: + * unfollow with no args now stops you from following everyone. + dismiss command stops people from following you. + desert command stops people from following you or leading you. + Idea by Oriens@Alexandria. Names suggested by Noltar@Korongil +Minor changes: + * MONITOR announcements of disconnects distinguish hidden disconnects. + Suggested by Oriens@Alexandria. + * The Uptime field of INFO shows first start time, not last reboot time. + Suggested by Trispis@M*U*S*H. +Fixes: + * Exact matches are now preferred over partial matches, and no longer + result in ambiguity. Report by Steven Viscido. + * Message mentioning INHERIT changed to TRUST by Xyrxwyrth@M*U*S*H. + * Distributed register.txt file is now more descriptive. + Suggested by Xyrxwyrth@M*U*S*H. + * The ctime(), mtime(), restarttime(), and starttime() functions now + return 2-digit days (01 vs. 1). Reported by Z@Korongil. + * @malias output uses the alias token more consistently. Suggested by + Kyieren@M*U*S*H. + * hints/solaris_2.sh modified a bit. + * Mac portability fixes + * Options.h clarification suggested by rodregis@M*U*S*H. + * Cosmetic bug in @halt fixed. Report by Trispis@M*U*S*H. + * Fixed a fencepost error in regedit*() that could generate garbage text. + Reported by Vadiv@M*U*S*H + + +Version 1.7.4 patchlevel 2 March 23, 2001 + +Major changes: + * The object matching routines have been modified. Some things you may + notice: + * Ambiguous cases are more often reported as such (rather than you + getting one of the ambiguous matches arbitrarily). + * locate() now returns #-2 as promised. Reported by Jeff Ferrell. + * A few functions that used accept player names now require + the use of *playername to match the player (e.g. mail(), hidden()). + (This is generally more consistent). +Minor changes: + * @tr of a nonexistent attribute now reports that. Report by Z@Korongil. + * TEL_OK is an alias for JUMP_OK. Suggested by Kyieren@M*U*S*H. + * Added 'help i18n' (aka help translation). Suggested by Kyieren@M*U*S*H. + * When you use 'teach' and, as a result, run the command you are teaching, + it is treated as if the command were run by a player from the socket -- + that is, attribute sets are not evaluated. Suggested by Xyrxwyrth@M*U*S*H. + * See_All players can see all channels and their members, too. + Suggested by Oriens@Alexandria. + * When trying to join yourself to a channel, we only check channels + you're not on; when trying to leave a channel, we only check channels + that you are on. This is handy for disambiguating similar prefixes. + Suggested by Oriens@Alexandria. + * When you're following a leader and the leader moves, you're told that + that you're following them before you attempt to move. Suggested by + Oriens@Alexandria. + * @stats/table is no longer restricted. +Fixes: + * @grep/iprint produced highlighted strings matching the case you + gave, not the case actually found. Reported by Reagan@NF + * @search/lsearch by powers could sometimes get you the equivalent + flag-bit instead of power-bit. Reported by Reagan@NF + * Configure fix. + * hpux-gcc hint file now included. + * Nested ansi() broke again in p1. Fixed now. Reported by Intrevis@M*U*S*H + * Added Configure check for to help Cygwin builds. + Reported by Xyrxwyrth@M*U*S*H. + * Help fix or two. + * Grammatical correction by Eratl@M*U*S*H in @boot/me error message. + * Cosmetics of @mail with folders > 9 improved. Reported by Bellemore@M*U*S*H + * One could be disconnected at the connect screen under some conditions + for no good reason. Reported by Oriens@Alexandria. [SW] + * Compile error when ROYALTY_FLAG not defined patched by Noltar@Korongil. + * Fixed infinite loop reported by Xyrxwyrth@M*U*S*H. [SW] + * It's no longer posible to connect to a GOING player. + +Version 1.7.4 patchlevel 1 March 17, 2001 + +Minor changes: + * Speedup for repeat() function. [TAP] + * Hint for openbsd, which appears to have a broken IPv6 configuration. [SW] + * Some OS-dependent defines have been removed. + * ansi() now only adds a maximum of 7 codes to the string. [TAP] +Fixes: + * The restrict_command for rob has been removed from restrict.cnf + Reported by Kyieren@M*U*S*H. + * Help fixes by Kyieren, rodregis, and Luke @ M*U*S*H, Datron@SW2, + and Noltar@Korongil. + * stripansi() didn't correctly handle multiple ansi codes in + sequence. Reported by CU5@WCX. + * Linting for warnings in pcre. [SW] + * Configure now sends mailing list subscription stuff to the new + list address. + * Updated examples in access.README to use dbrefs. + * Updated a reference to the rob command in 'give' errors. Noted by + rodregis@M*U*S*H. + * median was broken. Reported by Parax@SandsMUSH. + * Fixes to update.pl's handling of CHAT_TOKEN_ALIAS and the like. + Noted by rodregis@M*U*S*H + +Version 1.7.4 patchlevel 0 March 7, 2001 + +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] diff --git a/CHANGES.175 b/CHANGES.175 new file mode 100644 index 0000000..3662209 --- /dev/null +++ b/CHANGES.175 @@ -0,0 +1,488 @@ + +This is the most current changes file for PennMUSH. Please look it +over; each version contains new things which might significantly affect +the function of your server. Changes are reported in reverse +chronological order (most 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 +[EEH] is Ervin Hearn III, a Win32 porter (aka Noltar) +[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.5 patchlevel 12 November 3, 2002 + +Fixes: + * Another bug in wrap() fixed. Reported by Rhysem. [SW] + * Bug in @wall fixed. [SW] + * Variable renaming to avoid C99 keyword 'conj'. [SW] + * Win32 project files for MSVC++ updated by Mark. + * Several portability fixes for MS VS.NET's compiler by BladedThoth. + * flip() and reverse() didn't mix well. Better now. + Reported by Julian. [SW] + * Compiling with CHAT_SYSTEM undefined works again. Report by + BladedThoth. + * bxor() was actually doing a bor(). Reported by Sketch@M*U*S*H. [SW] + + +Version 1.7.5 patchlevel 11 October 31, 2002 + +Config: + * New mush.cnf option only_ascii_in_names (defaults to yes) prohibits + the use of extended characters in names. Games that are running + in non-English locales will probably want to set this to no instead. + Suggested by Philip Mak. [SW] +Commands: + * Added @hook/before and @hook/after [SW,3] +Locks: + * You can now use power^ and channel^ in locks + to test if the enactor has a given power or is on a given channel. + Patch by Vadiv@M*U*S*H. + * @lock/dropto, if set on a room, can prevent objects from being + affected by the room's drop-to. Inspired by Oriens@Alexandria. +Functions: + * The sha1() function computes the SHA-1 cryptographic hash of a string. + * A new nosidefx function restriction to allow disabling the side-effect + version of a function while still enabling the informational version. + For things like name() and parent(). [SW] + * @function's report includes more function restrictions in the flags + field. [SW] +Minor changes: + * Modularization of code for itemizing lists by Vadiv@M*U*S*H. + * If there's no connect.html and you're on an html connection, + connect.txt is now better formatted when sent to you. Same for + other cached text files. Suggested by BladedThoth@M*U*S*H. + * CRYPT_SYSTEM 1 now behaves like CRYPT_SYSTEM 3 (replacing + system-crypt passwords with SHS passwords). Suggested by Vadiv@M*U*S*H. + * flag_table is no longer referenced anywhere except when it is used + to seed the ptab_flag at startup. A stub "flag_add" function has + been added to make life easier for hardcoders. Suggested by + Gepht. +Fixes: + * sig.c was broken on systems without sigprocmask. Reported by + Arithon@Oracle + * Bug with paging disconnected players and @away fixed. + Reported by Vadiv@M*U*S*H. + * Bashisms that crept into utils/mkcmds.sh has been replaced by + more portable alternatives based on Configure's results. + Reported by Jason Newquist. + * Trigonometric functions were broken for non-radian degree types. + Fixed up. + * @decomp / didn't properly use 'here' as the name + of the object in its output. Reported by Oriens@Alexandria. + * Wizards can now modify any lock on anything but God. Reported by + Brian Favela. + * ex/mortal and ex now produce identical output when a mortal + examines an object owned by someone else. Reported by Philip Mak. + * We do a little better about trying to close html and ansi tags + in all conditions. Bugs reported by BladedThoth @ M*U*S*H. + * whisper/@pemit to a puppet should be relayed to the owner, even if the + owner is in the same room. Discovered thanks to MUSH sound test + suite designed by Trispis@M*U*S*H. + * The --longest switch in game/txt/Makefile was broken. Report by + Nymeria@M*U*S*H + * Help fixes by Noltar@Korongil and Intrevis@M*U*S*H + * The M_READ extmail bit is now renamed M_MSGREAD, as M_READ conflicts + with an included define on Solaris. Report by Jason Newquist. + * Setting flags using single characters was not well documented, and + didn't respect the character case. Reported by Intrevis@M*U*S*H. + * @chown by a Wizard attempted to debit the Wizard's money, rather than + that of the new owner of the object, which violated expected conservation + of money. Reported by Peter Bengtson. + * Several bugs in wrap()'s output fixed. Reported by Balerion@M*U*S*H. [SW] + + +Version 1.7.5 patchlevel 10 September 19, 2002 + +Major Changes: + * Commands can now be restricted by generic flags or powers. + Several mush.cnf options (restricted_building, free_objects, + hate_dest, player_locate, cemit_power) are now restrict.cnf + restrictions instead. By Vadiv@M*U*S*H. +Functions: + * When a set function (setdiff, etc.) is called with 4 arguments, + if the last one isn't a valid sorting category, it's treated as + the output separator. Inspired by Mux [SW] + * checkpass(), a wizard function that checks a string against a player's + password. Requested by Writh@M*U*S*H. + * regedit() and variants can now accept multiple regexps and + replacements, in order, like edit(). By Walker@M*U*S*H. + * comp() can take a third argument to specify the type of + comparison to make. Suggested by Philip Mak. + * The trigonometric functions now take an optional argument to + control how the angles they work with are measured to allow them + to accept angles in degrees as well as the default radians. [SW,MUX2,Rhost] + * Added ctu() for converting between angle measurements. [SW,MUX2,Rhost] + * Added atan2(). [SW] + * dist2d() and dist3d() can take floating-point numbers. [SW] + * Other small cleanups in the math functions. [SW] +Mail: + * The MAIL_SUBJECTS option has been removed. @mail now includes + subjects mandatorily. Suggested by Vadiv@M*U*S*H. +Minor Changes: + * When a player @clones an object owned by another player, the + clone is now owned by the @cloning player, instead of the original + owner. Fixes a quota transfer issue reported by Sparta and + Philip Mak. + * The flag table is no longer walked with a linear search. Instead, + ptab_firstentry and ptab_nextentry are used. Flags no longer need + to be added in a particular order or groups in flags.c, and flags + added through hardcode should work better. Patch by Vadiv@M*U*S*H + * Error message for wrong number of arguments to a function + now tells you how many arguments it thinks you gave. + Suggested by Philip Mak. + * GAGGED players may now perform mail reading and maintenance. + * Internal reorganization of signal code. [SW] + * Attempts to speak on a channel that you can't speak on or see + now fail and command parsing continues. Suggested by Vadiv@M*U*S*H. + * The amount of CPU time spent running a queue entry can be limited. + This helps reduce the impact of some types of denial-of-service attacks. + New mush.cnf directive queue_entry_cpu_time. This currently + works only on Unix systems with setitimer. [SW] + * Internal rewrite of page/whisper code by Vadiv@M*U*S*H. + * Flag set/reset messages now include the name of the target object. + Suggested by Kyieren@M*U*S*H. + * game/txt/Makefile now includes options to limit the number of + news/etc topic aliases that are included in the 'entries' indices + generated by index-files.pl. Suggested by Nymeria@M*U*S*H. + * Minor inconsistencies in @sweep output punctuation reported by + Cmintrnt@M*U*S*H have been fixed. + * Added hints/cygwin.sh, tested with cygwin 1.3.12. Added additional + cygwin build information to README. + * The whisper-pose message is now Player senses: , with no + quotation marks added. This matches all other pose-type messages + in the server. Suggested by Philip Mak. + * Only escape codes described in the help are allowed in timefmt() [SW] +Fixes: + * Archaic help reference to FORCE_WHITE removed. Noted by Oriens@Alexandria. + * Help fixes by Cerekk@bDv TrekMUSH, Julian@M*U*S*H, Letters@M*U*S*H, + and Philip Mak. + * The wildcard matcher could lag the MUSH under unusual conditions. + It's now smarter. Discovered by Sketch@M*U*S*H. + * Fixes from 1.7.4p20 + * Fix a bug with setdiff() not using the output separator correctly. [SW] + * convsecs() could attempt to use values larger than 2^31, which could + crash Windows. Reported by Bellemore@M*U*S*H. + * @config didn't correctly show default flags for objects. + Reported by Vadiv@M*U*S*H. + * The strcasecoll function was poorly coded, and is now fixed. + * Created players who hadn't yet logged in didn't have LASTIP set + properly. Reported by Philip Mak. + +Version 1.7.5 patchlevel 9 July 16, 2002 + +Minor Changes: + * /noeval switch added to @wall/@rwall/@wizwall and variants. + Suggested by Philip Mak. +Fixes: + * Added a missing space in the @function report for softcoded + @functions. [SW] + * MUX-style @function foo=obj/attr works right. [SW] + * Cleaned up some multiple includes of the same header files. [SW] + * Lots of cleanup of old _() macros and similar by Vadiv@M*U*S*H. + * Added help for @stats/table. Suggested by Intrevis@M*U*S*H. + * Fixes to csrimalloc #ifdefs that broke in last patchlevel. [SW] + * A typo that could crash @function on certain operating systems + has been fixed. Report by Jeff Heinen. + * Improved switch() help. [SW] + * Changes in the way switchinc.c is generated, to reduce the number + of patches that attempt to patch it due to indentation changes. [SW] + +Version 1.7.5 patchlevel 8 June 26, 2002 + +Minor Changes: + * Added @nspemit and nspemit(). Wizard-only versions of @pemit and + pemit() that don't print nospoof information. Suggested by many people, + most recently Mike Griffiths and Nymeria@M*U*S*H. [SW] + * Help updates. [SW] + * Force the pipes to compression program for database reads and saves to be + block-buffered. [SW] + * @function name=obj/attrib now works, as well as + @function name=obj,attrib [TAP] + * The AF_PREFIXMATCH flag is no longer shown on attributes it's set + on when you examine them. +Fixes: + * A bunch of internal code cleanup, especially around casts. [SW] + * The disconnected room check is skipped on GOING rooms. Suggested + by Philip Mak. + * The dbck check for nameless rooms was only checking disconnected + rooms; now it checks all rooms. + * hasflag() did not work with single-character flag abbreviations. + Report by Mystery8. + * The variable named 'template' in src/strutil.c has been renamed + to avoid clashes with the C++ reserved word. Suggested by Mac@M*U*S*H. + * Improvement to help @filter. Suggested by Philip Mak. [SW] + * Files in the patches directory ending in ~ are ignored + when patches.h is rebuilt. [SW] + * Removed a // comment from strutil.c, as we're still + just following the c89 standard, not c99. Report by + Vadiv@M*U*S*H. [SW] + * make indent now indents the .dst files before the .c ones. + Fixes some spurious warnings from later makes. Suggested by + Vadiv@M*U*S*H. [SW] + * Code cleanup, mostly tprintf() and unneeded header file + checking elimination. [SW] + * Since a Windows header #defines OPAQUE, which conflicts with a + #define for the mush flag of the same name, rename + our #define rather than #undefining the Windows one. [SW] + * Fixes from 1.7.4p19 + + +Version 1.7.5 patchlevel 7 May 14, 2002 + +Utilities: + * 'make globalinstall' will install executables, scripts, and + a game/ directory structure in a global location (/usr/libexec/pennmush + by default). Facilitates rpm builds. By Vadiv@M*U*S*H. + * The utils/ln-dir.sh script can be used to clone a globalinstall'd + pennmush for an individual MUSH/user. In combination, these two + are a replacement for 'make customize', especially for mud hosters. + By Vadiv@M*U*S*H. + * You can now configure options.h settings from the command line + using: make DEFINE="OPTION OPTION=value" UNDEFINE="OPTION" update + This will mostly be useful for autoinstallers and packaging scripts. + Suggested by Vadiv@M*U*S*H. +Minor Changes: + * The default gcc compile flags now include some extra warnings. + * The prefix-table code now only aliases down to unique prefixes. + This prevents @w from calling @wipe (reported by Philip Mak), + and means that you'll need to use alias.cnf to get some of those + short aliases. [SW] + * Attribute lookups only do prefix-matching on attributes with the + AF_PREFIXMATCH flag. Most standard atr_tab.h attributes have this + flag, but newly added @attributes won't. Solves a problem with + inadvertant prefix-matching of @attribs reported by Sam Knowlton. +Fixes: + * Fixes from 1.7.4p18 + * @decomp/skipdefaults skips @lsets of default lock flags. + Suggested by Oriens@Alexandria. [SW] + * Typo in src/bsd.c corrected. Reported by Nymeria@M*U*S*H. + * Missing prototype in src/help.c. Reported by Nymeria@M*U*S*H. + * A bunch of linting. + * Win32 portability fixes. [EEH] + * Updated MSVC++ project files for win32. [EEH] + * @newpassword = foo would change the password of an arbitrary player. + This is now corrected. Report by Oriens@Alexandria. + +Version 1.7.5 patchlevel 6 April 22, 2002 + +Config: + * New attribute_alias config directive, and some default attribute + aliases added to alias.cnf. Based on a report from Hilikiradi. +Functions: + * textfile() returns help/news/etc. entries. Suggested by Trispis@M*U*S*H. +Minor changes: + * New @warnings type lock-checks that reports problems with @locks. [SW] + * exit-unlinked checks do some sanity checks on variable exits. [SW] + * Improved error-checking in evaluation of @locks. [SW] + * No more hdrs/warnings.h file. [SW] + * New @nameaccent attribute to add accent marks to object + names in speech and things like look. Idea from Elendor. [SW] + * accent() understands a few more things. [SW] + * The accented characters->html entities table and other + lookup tables are now in a seperate file, src/tables.c, + which can be regenerated if needed by utils/gentables.c [SW] + * Improvements in caching of cached text files. [SW] +Fixes: + * Buglet in ansi display of high-bit characters fixed. Report by + Trispis@M*U*S*H. [SW] + * Improved @clock2 help by Linda Antonsson. + * Fixes from 1.7.4p17 + * A truly perverse database could cause an infinite loop on load. [TAP] + * Win32 portability fixes. [NJG, EEH] + * The notify code assumed that integers could be directly stored in + pointers. This isn't always true. [SW] + * Removed some un-used code. [SW] + * Fixed some compiler warnings and general code cleanup. [SW] + * Changed signal handlers to always use the ANSI/ISO C form (Returning + void, basically) [SW] + * A null string no longer prefix-matches anything. Report by Prot Diryn + and Cheetah@M*U*S*H. + * @sitelock/remove could remove entries it shouldn't if you remove the first + one after the '@sitelock will add sites...' line. Reported by + Ambrosia@M*U*S*H. [SW] + * The last line of the access.cnf file sometimes wouldn't get read + properly. [SW] + + +Version 1.7.5 patchlevel 5 March 11, 2002 + +Commands: + * @notify and @drain now accept a new switch /any. [TAP] + * Added @remit/list. Suggested by Tareldin@M*U*S*H [SW] +Minor changes: + * We now use the Mersenne Twister pseudo-random number generator, + which is better that that available in most C libraries. + Moreover, we seed with /dev/urandom, if it's available. [SW] + * The 'T' type character (for THING) is now shown when one-character + flag lists are displayed. This is more consistent with other types, + and makes it harder to confuse #23O (#23, opaque) with #230 + (#230, no flags). Suggested by Eratl@M*U*S*H. + * @lock/use on a parent used to apply to attempts to use $commands on + a child. This is no longer necessary, given inheritable locks, + so the behavior has been changed. Parents' locks are no longer checked + when deciding if a $command inherited from the parent should be run + via a child. + * New 'call_limit' config option can limit the number of recursive + parser calls to control process stack size and avoid crashes + on systems with limited stack. Defaults to unlimited, however, because + setting this value too small breaks mushcode. Report by Bellemore + and BladedThoth @ M*U*S*H. +Fixes: + * Code cleanup - some stuff from 1.7.4 got left in that isn't + used in 1.7.5 any more. [SW] + * Fixes from 1.7.4p16, notably an important fix for timed semaphores. + * Cygwin portability fixes. [NJG] + * Updated MSVC++ project files. [EEH] + + +Version 1.7.5 patchlevel 4 February 15, 2002 + +Major changes: + * The mush recognizes telnet-aware connections. This is + neccessary for properly sending them some 8-bit characters. [SW] + * Much more support for handling accented characters in the ISO 8859-1 + character set. See help for accent(), stripaccents(), and NOACCENTS. + Inspired by Elendor. [SW] + * Things that do first-unique-prefix matching (command, attribute and flag + names) now use a more space-efficient data structure than before. + This adds two new files, src/ptab.c and hdrs/ptab.h [SW] +Commands: + * @sitelock/remove removes a sitelock entry. [SW] +Functions: + * ord() and chr() functions for converting characters to/from numerical + values that represent them. [SW] +Minor changes: + * The useless FORCE_WHITE flag is really, truely, gone. [SW] + * Use the new arglens argument to functions in more places. [SW] + * capstr() and before() fixes reimplemented using arglens. [SW] + * We now use the Mersenne Twister PRNG algorithm. [SW] +Fixes: + * setunion() no longer eats empty list elements. [SW] + * Setting an inherited lock on a child could change the parent's lock. + Reported by Riverwolf. [SW] + * Help fixes. [SW, Nymeria] + * Players waiting at the connect screen weren't being disconnected + by the idle_timeout. + * Detection of cygwin in Configure may be improved. + * Fixes from 1.7.4p15. + +Version 1.7.5 patchlevel 3 January 24, 2002 + +Fixes: + * before() was broken in 1.7.5p2. Reported by Sam Knowlton. + * capstr() was broken in 1.7.5p2. + * Win32 portability fixes by Noltar@Korongil. + +Version 1.7.5 patchlevel 2 January 23, 2002 + +Major changes: + * Implementations for softcode functions get the lengths of their arguments + passed to them, and this is taken advantage of in a number of places. [SW] +Minor changes: + * It's harder to get a partial dbref because of end-of-buffer truncation. [SW] + * Code cleanup. In particular, safe_str() and friends are no longer + macros for a safe_copy_str() or the like, because hardly anything + used a different buffer length than BUFFER_LEN, and those places + can be handled other ways. [SW] +Fixes: + * Win32 portability fixes by Noltar@Korongil and Eric Koske. + * When you have two hidden connections, one idle over the inactivity limit, + and the other not, @hide/off on the active connection unhides both, + but you also see the Inactivity re-hide message from the other + connection. Reported by Trispis. + * iname() function actually added to function table so it works. + Reported by K. Shirow. + * @lock obj=attrib:value locks didn't work properly. Reported by + Linda Antonsson. + * Fixes from 1.7.4p14. + +Version 1.7.5 patchlevel 1 December 3, 2001 + +Minor Changes: + * PCRE updated to 3.7. [SW] + * player_name_len is now runtime configurable. Suggested by + Linda Antonsson. [SW] + * Any object of any type may be a ZMO, and any object of any type + may be zoned to a ZMO of any type. However, searching for + $commands has not changed, so $commands on a ZMO are only + searched when the ZMO is not a room, and $commands on objects + within the ZMO are only searched when the ZMO is a room. [TAP] + * @chzoneall nows directly calls @chzone, and @chzone now tells + you when it's not changing a zone. [TAP] + * The term "Zone Master" (player) has been replaced by "Shared + Player" in the help. [TAP] + * Many obsolete db formats are no longer readable. hdrs/oldattrib.h + and src/convdb.c are no more. [SW] + * Code cleanup. [SW] +Fixes: + * Help file for mix updated. Report by Cmintrnt@M*U*S*H + * Updated win32 config.h file and other fixes by Noltar@Korongil + * WHO wasn't showing unconnected players. Report by Noltar@Korongil. [SW] + * Help fixes. [SW] + +Version 1.7.5 patchlevel 0 November 14, 2001 + +Major Changes: + * This is now the development minor version. This first release includes + relatively few changes, to make converting to it easier. + * Internal changes to the lock system. This requires a new minimal.db, + which is now distributed. [SW] + * Locale-based string collation throughout. + * Only ANSI C compilers are still supported; no more K&R. Files are + gradually going to be converted to ANSI C only. + * There is now an option to make ZMOs and ZMRs not count for + control of objects, only ZMPs. [SW] +Flags: + * The ZONE player flag has been renamed SHARED, to help seperate the + ZMP control-only meaning from the command-matching of ZMOs and ZMRs. [SW] +Commands: + * /preserve switch for @link prevents @chowning. Suggested by Vexon@M*U*S*H + * Admin WHO and SESSION now includes unconnected descriptors. [SW] + * Unconnected descriptors can now be booted. Patch by Bellemore@M*U*S*H. + * Unconnected descriptors can now be paged by admin with page/port. [SW] +Functions: + * mix() can take more than 10 lists and of unequal length. [3,SW] + * iname() returns the name of an object from inside (honoring nameformat) + Idea by Jeffrey@TheHotel. + * lplayers() returns a list of players in the location. Handy for + room parents. By Vexon@M*U*S*H. + * lvplayers(), lvcon(), lvexits() are like lplayers/lcon/lexits, but + leave out dark things (and disconnected players). Handy for room + parents. By Vexon@M*U*S*H. +Minor Changes: + * munge() now passes its delimiter as %1 to make generic sorting easier. [SW] + * Word-based attribute compression is faster than before, for both + compression and decompression. [SW] + * Windows memory-usage information for wizards is now in @uptime, not + @stats [SW] + * Word-based attribute compression stats can be viewed on non-Windows + mushes as well, by defining COMP_STATS. See externs.h for details. [SW] + * Setting of the internal QUEUE and semaphore attributes does not modify + an object's last-modified timestamp. [SW] + * Speaking on a channel that you're gagging is now treated like + speaking on a channel that you're not on. Suggested by rodregis@M*U*S*H + * You can use @exitto in place of &DESTINATION to set the destinatino + for variable exits, though DESTINATION is checked first. [3] + * WATCHER is another name for the MONITOR flag. [3] + * max_guest_pennies and guest_paycheck config options. Inspired by [SW] + * Lock and unlock messages now show object name and dbref, and tell + you if you unlock an already unlocked object. Suggested by Jamie Warren. + * A version of portmsg for Win32 is in the win32 directory. + Donated by CU5@WCX + * Tweaks to info_slave, which now uses readv/writev. [SW] + * Lots of code cleanup. [SW] + * CHAT_SYSTEM, INFO_SLAVE, and FUNCTION_SIDE_EFFECTS are now #define'd + by default. [TAP] +Fixes: + * Indentation fixes [SW] + * Fixes up to 1.7.4p12 merged in. + diff --git a/CHANGES.176 b/CHANGES.176 new file mode 100644 index 0000000..56899e5 --- /dev/null +++ b/CHANGES.176 @@ -0,0 +1,353 @@ + +[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 +[EEH] is Ervin Hearn III, a Win32 porter (aka Noltar) +[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.6 patchlevel 16 April 28, 2004 + +Fixes: + * PCRE updated to 4.5 [SW] + + +Version 1.7.6 patchlevel 15 January 25, 2004 + +Fixes: + * Improved freebsd hints. [SW] + * Channel user memory allocation error corrected. + + +Version 1.7.6 patchlevel 14 September 23, 2003 + +Fixes: + * Fix to help @search2 by LeeLaLimaLLama@M*U*S*H. + * The max file descriptor could get stomped in some cases. [SW] + * Powers and toggles on destroyed objects are reset, as they + caused anomalous lsearch/haspower behavior. Report by Mordie@M*U*S*H. + * Changing channel privs and loading channels with objects no longer + permitted could cause crashes. Report by Septimus@SW RP Forum. + + +Version 1.7.6 patchlevel 13 August 11, 2003 + +Fixes: + * Calling panic() while in the middle of a panic dump would cause a loop. + Reported by [EEH]. [SW] + * Outdated mention of compose.csh removed from compose.sh.SH. + Reported by Cheetah@M*U*S*H. + * timestring() dealt wrongly with large arguments. Reported by + Jules@M*U*S*H. timefmt() had a similar problem, reported by + Luke@M*U*S*H. + * Better checking of db save failures. [SW] + + +Version 1.7.6 patchlevel 12 June 23, 2003 + +Minor changes: + * Users no longer see last connection information when they + connect to Guests. Suggested by Jules@M*U*S*H. +Fixes: + * Potential problem with ambigious names in the information functions + fixed. [SW] + * The 'chat' config group is no longer displayed when CHAT_SYSTEM + isn't defined. Report by Mike Griffiths. [SW] + * cygwin install instructions changed to remove obsolete exim + version information. Suggested by Cheetah@M*U*S*H. + * Objects with user-defined locks had problems with finding built-in locks + on the object. Reported by Walker@M*U*S*H. [SW] + + +Version 1.7.6 patchlevel 11 June 1, 2003 + +Minor changes: + * The restart script now insures that GAMEDIR is a real directory + and CONF_FILE exists therein before proceeding. Suggested by + Philip Mak. + * Attribute flag setting messages are more verbose. Suggested by + Mike Griffiths + * See_All players may use the ports() function. Suggested by + Mike Griffiths. +Fixes: + * Wizards can no longer @chzone God. Report by Kevin@M*U*S*H. + * Help fixes by Mike Griffiths. + +Version 1.7.6 patchlevel 10 May 13, 2003 + +Minor changes: + * PCRE (the regex matching engine we use) is updated to version 4.2. [SW] + * @mail/file now unclears the cleared bit when filing @mail. + Suggested by Philip Mak. +Fixes: + * @edit is better with editing ansi. Reported by Trispis@M*U*S*H. [SW] + * Help file cleanup. [SW] + * @warnings about missing FAILURE messages were not correctly + checked, causing false positives. Reported by Cheetah. + * Page message no longer ends in a period. Suggested by Time@M*U*S*H. + * Help fixes by Intrevis@M*U*S*H. + * BASE_ROOM can't be destroyed any more. Suggested by Philip Mak. + + +Version 1.7.6 patchlevel 9 April 9, 2003 + +Fixes: + * index-files.pl now produces a sensible warning for duplicate + help topics, rather than a perl warning. Suggested by Cheetah@M*U*S*H. + * Spellnum cosmetic bug with 'seventeen' fixed. Report by Jules@M*U*S*H. + * Another wrap() buglet tracked down and fixed. Probably the one + reported by Nymeria@M*U*S*H. + * Memory leak in flip() and scramble() fixed. + * Configure test for /dev/urandom from 1.7.5 got left out by mistake. + * Critical overflow bug in command argument parsing fixed. + +Version 1.7.6 patchlevel 8 March 21, 2003 + +Minor changes: + * The CHANGES file has been renamed so that it always refers to + a version number, and utils/mkvershelp.pl now generates seperate + .hlp files for each CHANGES file. This will prevent patch hunk + failures when two patchlevels of different versions are released + and both used to try to modify the same .hlp file. + * Channel names are restricted to printable characters, with no + leading or trailing spaces. Suggested by Letters@M*U*S*H. + * Calling time() with any argument other than 'utc' now generates + an error. Report by Time@M*U*S*H. +Fixes: + * Some redundant code cleanup in look_exits suggested by Vadiv@M*U*S*H. + * Help file fixes by Ves@M*U*S*H, Jules@M*U*S*H, Cerekk@bDv. + * When page_aliases is on, there's a space between the player's + name and alias. Suggested by Saturn@M3. + * Command-checking for ZMR contents didn't function when a ZMR + was used as a player's personal zone. Reported by BlaZe@M*U*S*H. + * Default idle_timeout was different in code and mushcnf.dst. + Reported by James Bond@M*U*S*H. [SW] + + +Version 1.7.6 patchlevel 7 February 20, 2003 + +Fixes: + * Some sloppy coding in src/access.c could generate runtime + debugging exceptions. Reported by BladedThoth@M*U*S*H. + * wrap() could behave incorrectly when a line was exactly the length + of the wrap width and the total input size was larger than + any previously wrapped input. Reported by Liam@Firdeloth. + * Extra NUL characters were sent after telnet codes, which + confused Mudnet and maybe some clients. Patch by Alierak. + + +Version 1.7.6 patchlevel 6 January 23, 2003 + +Minor changes: + * nearby() always works for see_all players. Reported by Sparta. + * findable() now requires that executor control either the object + or the victim or be see_all. Reported by Sparta. +Fixes: + * POWER^ and CHANNEL^ locks tested the wrong object. [SW] + * @grep, @wipe, and @edit now report when no attributes are + matched. Suggested by Procyon@M3 + * Changes to telnet negotiation strings to match those in + PennMUSH 1.7.7, which seems to fix some problems with display + of connect.txt in some clients. Report by Howie@NewFrontier. + Patch by Time@M*U*S*H. + * @mail/silent wasn't unless you used /send too. Report by + Moe@Chicago. + * Wizards could set attributes on garbage objects (which were useless, + but may have leaked memory needlessly). Reported by Taz@M*U*S*H. + * @chan/hide didn't check for hide permissions properly in some + cases. Reported by Tanaku@M*U*S*H. + * Better explanation of when regexp matching is case sensitive vs. + insensitive. Suggested by Jake@BrazilMUX, Brazil@BrazilMUX, and + Vadiv@M*U*S*H. + + +Version 1.7.6 patchlevel 5 January 7, 2003 + +Fixes: + * 1.7.6p4 broke 'go #dbref', which broke the ability of followers + to follow. Reported by Ellis@M*U*S*H. + + +Version 1.7.6 patchlevel 4 January 2, 2003 + +Minor Changes: + * English-style matching now applies to exits in the room + (so '1st down' can match the first 'down' exit if you're not carrying + anything that matches 'down'). New english-style matching adjective + 'toward' restricts the match to exits (so: 'look toward 1st down'). +Fixes: + * Code cleanup to fix several potential buffer overflows. + * The wildcard matcher had problems with backslash escapes in + some cases, making matching a : in a $command very hard. + Reported by Wayne@PDX. + * @chzone could cause crashes on some systems. Reported by Wayne@PDX. + * When two exits match, one is no longer chosen at random. + Instead, the ambiguity should be reported as an error. + Reported by Intrevis@M*U*S*H. + * The dbref returned by locate when given the X parameter is + no longer random, but the last one found (as per the help). + * Serious bug in reading locks from the db on startup corrected. + * The profiling timer is turned off duing dumps, as some systems + (FreeBSD?) appear to continue to use it and interrupt dumps + due to cpu limiting. Reported by Nathan Schuette. + + +Version 1.7.6 patchlevel 3 December 22, 2002 + +Minor changes: + * call_limit now controls the maximum recursion in process_expression, + instead of maximum calls to p_e per command cycle. This still + limits stack size, but doesn't get in the way of massive code + nearly as much. People using a very high call_limit value should + probably lower it significantly. Patch by Philip Mak. + * Improved error messages for many database information functions. + Notably, several functions that require at least one argument, + now complain if they don't get it rather than returning silently. + Suggested by Intrevis@M*U*S*H. [SW] +Fixes: + * @warnings are no longer shown on GOING objects. Suggested by + Philip Mak. + * Help fixes by Intrevis, Time, and Ambrosia@M*U*S*H + * Bug in @decomp/skipdefaults reported by Philip Mak. [SW] + * Tweaks to utils/mkcmds.sh [SW] + * home() on a room acts as described in the help. Reported by + Intrevis@M*U*S*H. [SW] + * whisper/noisy double-notified the whisperer. Reported by Philip Mak. + * Crash bug in @mail fixed. Reported by Titan@OtherSpace. + + +Version 1.7.6 patchlevel 2 December 17, 2002 + +Minor changes: + * An invalid range argument to @search/lsearch is now coerced + to be the lowest or highest dbref, as appropriate. The search + range is also now inclusive. And lsearch() works. + Suggested by Philip Mak. + * mushcnf.dst now includes a default value for call_limit. + Suggested by Philip Mak. + * Testing for whether the mush is already running in the + restart script has been improved by Philip Mak. +Internationalization: + * Polish translation files (partial) are now being distributed. +Fixes: + * Fix to win32 warnings. [EEH] + * Under Win32, a failed accept() call in bsd.c would not be + correctly handled. Report by BladedThoth@M*U*S*H. + * Help fixes by Luigi@8bitMUSH, Kyieren@M*U*S*H, Intrevis@M*U*S*H. + * @map crash bug repoted by Philip Mak, fixed by Walker@M*U*S*H. + * Modifiying locks now updates the object's modification time. + Reported by Philip Mak. + + +Version 1.7.6 patchlevel 1 November 26, 2002 + +Minor changes: + * When using @nuke to destroy a SAFE object when really_safe is "no", + provide a warning (but schedule destruction anyway). Suggested by + Cerekk@bDV. +Fixes: + * VS.NET project file was defaulting to signed instead of unsigned + chars, causing crashes. Fixed by BladedThoth@M*U*S*H. + Several places where we should have cast things to unsigned to + avoid this kind of thing have been fixed. [SW] + * The *emit() functions now set the orator correctly. + Reported by Philip Mak. + * ccom and cplr are cleared after each command execution so they + can't be leaked as easily. Suggested by Philip Mak. + * Linting. + * If God gives the wrong password to @logwipe, provide some feedback. + Suggested by Cerekk@bDv. + * mkcmds.sh was needlessly rebuilding several autogenerated files. + * The rules for flag characters shown in object headers now allows + F_INTERNAL flags to be shown (like GOING), just the same as + when you get a full flag list on examine. Report by Philip Mak. + * Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak. + * @search type=something would report an error AND match the entire + database when something wasn't object, player, exit or room. [SW] + * Cosmetic bug in @malias/list fixed. Report by Tanaku@M*U*S*H. + * The info_slave now properly obeys the use_dns setting in mush.cnf. + This requires a full shutdown to put into effect. Report by + BlaZe@M*U*S*H. [SW] + + +Version 1.7.6 patchlevel 0 November 11, 2002 + +License: + * PennMUSH 1.7.6 and later is now released under the Artistic + License. This is an OSI-compliant open source license. See the file + COPYRITE for the complete license text. + + Notable changes from the old license: + * No restrictions on commercial use + * No requirement to inform developers of improvements or submit + modifications, though it's still a nice thing to do. Note, however + that if you redistribute a modified version of PennMUSH, you MUST + include source code. + + The PennMUSH devteam thanks the copyright holders of TinyMUD, + TinyMUSH 2.0, TinyMUSH 2.2, and TinyMUSH 3.0 for their assistance + in making this possible. +Documentation: + * The README file has been split into README, INSTALL, UPGRADING, + and I18N files. +Minor Changes: + * Rooms now hear remits and lemits in them, and can be pemitted + to. This behavior now matches that of other MUSH servers. + * AUDIBLE objects now propagate sound @remit'd into them. + Report by [SW]. + * Added @lock/destroy to limit who can destroy a DESTROY_OK + object. Suggested by Luigi@8bit. + * PARANOID nospoof notification now includes the name of the object's + owner as well. Suggested by Philip Mak. + * room() no longer notifies the executor of permission errors out of + band. It now just returns the error instead, like loc(). Suggested by + Philip Mak. + * Creation times are now public information via ctime(); permission to + examine is no longer required. This allows objects to use, e.g., + %#@[ctime(%#)] as a historically unique identifier of an enactor. + Suggested by Philip Mak. + * The reboot.db is now versioned. This will make it possible to + @shutdown/reboot across patchlevels that change the reboot.db + format (in 1.7.7 and later versions). + * Rooms on an @forwardlist now receive the message as a remit, + rather than a pemit. Suggested by BladedThoth@M*U*S*H. +Fixes: + * More work on the great table() bug. Looks like a fix. [SW] + * Improved VS.NET project files by BladedThoth. + * Plugged a memory leak in deleting @locks. [SW] + * Fixed @lock-related crash bug reported by Philip Mak. [SW] + * General linting. + * process_expression ignores the [ in ansi escapes. Reported in the + context of #$ by Philip Mak. [SW] + * Internal changes to compress(), which now returns an allocated + string. Under Huffman compression, it should no longer be possible + to overflow a buffer with a pathological compression tree. Initial + concern voiced by Eyal Sagi. + * Table and ansi didn't play well together. Reported by Ellis@M*U*S*H. + * Config file reading should be better on Macs. Patch by Philip Mak. + * Obsolete checks for OLD_ANSI are removed. [SW] + * Crash bug in @function fixed. Report by Dallimar@Hemlock. + * Change to message on failed attribute flag set, to make it more + generic to cover all the possible failures. Report by Cerekk@bDv. + * Translations to some languages were broken. Fixed now. Report by + Sbot@M*U*S*H. + * QUEUE is now visible if you control an object, as promised in the + help. Reported by Luigi@8bit. + * Help fixes by Mortimer@M*U*S*H, Bellemore@M*U*S*H, Hyacinth@8bit, + [EEH], BladedThoth@M*U*S*H, Moe@M*U*S*H, Viila@M*U*S*H, Walker@M*U*S*H. + * Comment in src/Makefile fixed by Vadiv@M*U*S*H. + * A weird crash on @shutdown/reboot, probably attributable to a + broken library or system call, is now worked-around. Report by + Solarius@SWWF. + * Audible objects with @forwardlist set are no longer concealed by + the DARK flag. + * Win32 project files no longer use the win32/ directory as an include + directory, which causes problems. Reported by Gepht. + diff --git a/CHANGES.177 b/CHANGES.177 new file mode 100644 index 0000000..b797a2d --- /dev/null +++ b/CHANGES.177 @@ -0,0 +1,1155 @@ + +This is the most current changes file for PennMUSH. Please look it +over; each version contains new things which might significantly affect +the function of your server. Changes are reported in reverse +chronological order (most 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) +[EEH] is Ervin Hearn III, a PennMUSH developer (aka Noltar) +[LdW] is Luuk de Waard, a former 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.7 patchlevel 32 May 26, 2004 + +Major Changes: + * SQL support. PennMUSH can now operate as an SQL client and perform + queries against an SQL server. Currently only the MySQL server is + supported. This adds the @sql command, the sql() and sqlescape() + functions, and the Sql_Ok power. See README.SQL for some + additional information. Mostly based on patches by Hans Engelen. + * Creating a leaf attribute automatically creates associated branch + attributes if they are not already present. [TAP] + * When a $command matches on an object, but the object's use-lock or + command-lock prevents the command from being run, the object's + COMMAND_LOCK`FAILURE, COMMAND_LOCK`OFAILURE, and COMMAND_LOCK`AFAILURE + attributes will be triggered if the $command never successfully + matched, rather than returning a Huh? to the player. + * Exits and rooms may now run $commands. Rooms are treated as being + located in themselves for purposes of location checks. Exits are + treated as being located in their source room. Suggested by [TAP]. +Commands: + * 'empty ' attempts to get each item in and put + it alongside (in 's location). + * 'give to ' syntax added. +Minor Changes (user-visible): + * @COST attribute is now evaluated, so you can make costs depend + on who's paying, a selected item, etc. Suggested by Walker@M*U*S*H. + Also, the amount given is passed in as %0, so you can code + vendors that accept any amount. + * New OBJID^ lock atom. + * The server now maintains a rolling log of activity (commands issued, + evaluations parsed, and locks evaluated), that is dumped to the log + file on panic, or can be seen by God with @uptime. This aids + debugging code that causes a "clean" panic rather than a crash. + Suggested by Intrevis@M*U*S*H. + * When checking a use/command/listen-lock on an object with patterns + that get matched, we only check the lock once and cache the result, + to prevent multiple lock evaluations if multiple patterns match. [TAP] + * @chan/recall now shows nospoof tags for @cemit'd lines. + Suggested by Sholevi@M*U*S*H. + * SUSPECT flag can now be applied to any type of object. + Suggested by Oriens@Alexandria. +Minor Changes (internals): + * fun_escape() and fun_secure() use the same list of special characters, + rather than each having their own copy. [SW] + * Buffer queue code used by @chan/buffer and the activity log refactored + into src/bufferq.c and hdrs/bufferq.h. + * Added mush_panicf(), with printf()-style format and arguments. [SW] +Fixes: + * @scan correctly shows attributes on parents again. Report by + Wayne@PDX. + * @shutdown/panic and @shutdown/paranoid work again. [SW] + * A panic DB could be created before the database files were actually read, + causing problems on the next restart. [SW] + * Win32 and Debian installer portability fixes. [EEH] + * Code cleanup around errno. [SW] + * The locate() function now respects visibility and interactions. + Report by Jules@M*U*S*H. + + +Version 1.7.7 patchlevel 31 May 11, 2004 + +Minor Changes: + * netmush is now started with only a single argument - the path to + the configuration file. The error log file (typically game/netmush.log) + is now configured in mush.cnf. Suggested by Vadiv@M*U*S*H. + * The restart script now bases its decision about whether the mush + is already running on the full path to the configuration file, + which means you can leave mush.cnf named mush.cnf without fear + of restart problems when multiple mushes are using the same + host. This also facilitates make update. Suggested by Vadiv@M*U*S*H. + * The GAMEDIR environment variable can be passed to 'make update' + to cause it to update *.cnf files in directories other than + game/ (using the template *.dst files in game/). + E.g.: make GAMEDIR=/home/othermush/game update +Commands: + * @nscemit. Suggested by Mystery8@ST:AW. +Functions: + * nscemit(). Suggested by Mystery8@ST:AW. +Flags: + * New HEAVY admin flag, prevents an object from being teleported + by a mortal between two containers they own. Admin without this + flag can now be teleported. +Fixes: + * Help fixes by Anri@AkaneaMUSH and Intrevis@M*U*S*H. + * mix() now treats empty lists as empty, instead of containing a single + null element. Report by Luke@M*U*S*H. + * @power messages no longer reference 'flags'. Report by Nymeria@M*U*S*H. + * Crash bug with @clone in new power system fixed. + + +Version 1.7.7 patchlevel 30 May 6, 2004 + +Major changes: + * CHAT_SYSTEM option removed. If you don't want to use the chat system, + use restrict.cnf to disable @channel, @chat, etc. + * USE_MAILER and MAIL_ALIAS options removed. If you don't want to + use the @mail or @malias systems, use restrict.cnf to disable + the associated commands. + * QUOTA, EMPTY_ATTRS, and FUNCTION_SIDE_EFFECTS options are now + runtime options, instead of compile-time. + * SINGLE_LOGFILE option removed, and log filenames are now + runtime options. You may now give the same name to + multiple log files and get a more fine-grained version of the + same effect. Based on ideas by Vadiv@M*U*S*H. +Minor changes: + * New IP^ and HOSTNAME^ tests for boolexps. Suggested by Luke@M*U*S*H. + * ALLOW_NOSUBJECT option removed. We always use the beginning of the + message as the subject if one is not provided. + * JURY_OK and UNINSPECTED_FLAG options removed. Use @flag to add + flags if you need them. ONLINE_REG and VACATION_FLAG options + removed (default to always defined, add or remove with @flag as + desired). + * MEM_CHECK option removed from options.h; it is now a runtime + option in mush.cnf. + * @function/restrict can be applied to softcoded @functions, and + @function/add can accept a list of restrictions as a fifth argument. + Patch by Luke@M*U*S*H. + * log_walls run-time configuration option removed. Use the + logargs option in restrict.cnf instead. +Fixes: + * Crash bug in anonymous attributes fixed. Report by Intrevis@M*U*S*H. + * lplayers() was broken. Report by T'orA@M*U*S*H. + * Failing to create a player by providing a bad password now gives + a better error. Suggested by [NJG]. + * Setting/clearing a chan title on a notitles channel works, but + reminds you that titles are off. Suggested by Dan@InNomine. + * haspower_restricted removed from mushcnf.dst to stop spurious + warning on startup. Report by Nymeria@M*U*S*H. + + +Version 1.7.7 patchlevel 29 April 28, 2004 + +Major changes: + * Anonymous attributes via #lambda. See help anonymous attributes. [SW] + * Wizards (other than God) and royalty are no longer treated as No_Pay + unless the No_Pay power is explicitly set on them, although they + can still give (themselves or others) as many pennies as they wish. + This helps stop runaway wizards in the queue (they'll run out of cash + like anyone else). To get the old behavior back, @power your admin + No_Pay. You probably want to @power any globals that use search(), + children(), mail*stats(), etc, No_Pay as well. Suggested by Walker@M*U*S*H. + * game/restrict.cnf, alias.cnf, names.cnf are renamed in the tarball and + made with make update like mush.cnf. Suggested by Philip Mak. [SW] + * @powers now operate under the same code as the @flag system, so God + can add and modify powers in the MUSH with @power/add, etc. +Commands: + * @nsemit, @nsoemit, @nslemit, @nsremit, @nszemit and function forms + of the same. Suggested by Cloud@M*U*S*H. +Functions: + * andlpowers(), orlpowers(), andpowers(), orpowers(). + * align() performs fancy text alignment tricks. Patch by Walker@M*U*S*H. + * sent() and recv() show more player descriptor data from SESSION. + Suggested by Ricochet@M*U*S*H. + * scan() with a single argument assumes the executor's point of + view. Suggested by Cheetah@M*U*S*H. + * valid() can also check for syntactically correct passwords, + command names, and function names. +Minor changes: + * No more CRYPT_SYSTEM in options.h. We try everything and we + always reset passwords to SHS. Patch by Vadiv@M*U*S*H. + * Wizards and other privileged players can @chan/recall on channels they're + not on. Suggested by Trispis@M*U*S*H. [SW] + * A separate ip address to bind the SSL port to can now be specified + in mush.cnf. + * @flag/type allows God to change flag types. Suggested by Renee@ShoreSide. + * After each @startup is enqueued (during startup or @restart/all), + we immediately run up to 5 queue cycles. This allows, e.g., God's + @startup to up to five levels of @dol/@tr/@switch/etc and still have + the queued code run ahead of other startups. This requires that you + keep God's dbref as #1. Based on comments by Philip Mak and o + Trispis@M*U*S*H. + * The message after successful @password is now clearer, to avoid + confusion in some unusual cases. Report by Kholnuu. + * Makefile is no longer set executable. Report by Luke@M*U*S*H. + * Server now handles telnet NOP and AYT commands. Suggested by + Philip Mak and Liz (author of Muckclient). + * announce.c is no longer distributed. portmsg.c cleanup. +Fixes: + * @undestroy on an invalid (garbage, or !going) object now produces + an error message. Suggested by T'orA@M*U*S*H. + * On shutdowns, all queue deposits are now refunded. + * Ansi behavior on second and later lines of text fixed by Walker@M*U*S*H. + * Database reading improvements for win32 - ideally, you should now + be able to read a database written on win32/unix on either system. + * allof() now evaluates its separator argument. [SW] + * firstof() doesn't add an extra space before the value it returns. [SW] + * Slackware portability fixes by Dale @ Wolfpaw.net hosting + * ]page properly noevals (the right hand side) now. Report by + Cheetah@M*U*S*H. + * Partial channel match listings no longer reveal channels the player + isn't allowed to see. Report by Taz. + * Help fixes by Trispis@M*U*S*H and Tanaku@M*U*S*H. + * ssl() and terminfo() don't work on other players unless you're + See_All, as promised. Based on patch by Tanaku@M*U*S*H. + * lcon, etc. all do an INTERACT_SEE interaction check now. + Suggested by Thor@bDv. + * Code cleanup. [SW] + * Fixes from 1.7.6p16 + + +Version 1.7.7 patchlevel 28 March 12, 2004 + +Major changes: + * You can add customized configuration parameters to set in mush.cnf + by adding a couple of new lines into the local_configs() function + in local.c. (YOU MUST UPDATE YOUR local.c FROM local.dst IN THIS + PATCHLEVEL). Patch by grapenut@M*U*S*H. + * Object ids: An object id is the string "#dbref:ctime" + where #dbref is the object's dbref and ctime is its creation time + in integer format. The %: substitution returns this + id for the enactor, and the objid() function returns it for an + arbitrary object. Object ids can be used in place of softcode that + stores dbrefs to insure that a recycled dbref isn't used in place + of the intended one. The matcher code will also match objects by + id any time it's matching by dbref. + * @command/add and @command/del. You can add a custom command + (which will have the same precedence as a standard server command), + and then @hook it to softcode, effectively promoting the precedence + of softcoded globals, and letting them take advantage of some + command parser settings. Patch by Walker@M*U*S*H. +Functions: + * tr() accepts ranges of characters like a-z instead of having to + give each one. [SW] + * escape() also escapes parens and commas now. Suggested by Philip Mak. [SW] + * time() can now take a time offset or object argument (in the latter + case, time offset is read from object's TZ attribute). Patch by + Walker@M*U*S*H. + * vcross() performs cross products of vectors. [SW] + * merge() can now take a list of characters. [SW] +Minor changes: + * You can @set multiple flags at once by giving them as a list. + Suggested by Walker@M*U*S*H and others. + * Channel names are recognized when surround by <>'s, too. [SW] + * 'move' is now a command_alias for 'goto' (in alias.cnf), and not + a separate command. + * PAGE_LOCK`{,O,A}FAILURE attributes now activated when a page/pemit fails + due to the victim's @lock/page. Suggested by Sholevi@M*U*S*H. + * Tweaked game message for failing to provide correct password to + @password. Suggested by Philip Mak. + * New command 'warn_on_missing' (defaults to disabled), aliased to the + '[' character. If enabled, players who attempt to write commands + starting with functions will get errors. Suggested by [SW] and + Cheetah@M*U*S*H. + * Renaming something triggers its ONAME and ANAME attributes, if present. + The old name is passed as %0; the new as %1. Suggested by Philip Mak. + * Owner information on ex/br is reported using the usual object_header() + so dbref and flags appear. Suggested by Eratl@M*U*S*H. + * Flags that are F_DARK or F_MDARK no longer appear on @flag/list + by non-admin. Suggested by Philip Mak. + * Warn players who set themselves SHARED with a weak zone lock. + Suggested by Philip Mak. [SW] + * @halt can now take "here". Suggested by Thor@bDv. + * When parsing eqsplit commands, don't evaluate the left side + of the equal sign if the command was run with ]. +Fixes: + * Fixes to robustify file reading on Windows systems. + * The 'nofixed' command restriction works as expected now (previously, + you had to use 'nofix'). + * Exit movements are now translated into explicit GOTO commands, + so @hooks and restrictions on GOTO are now applied. Patch by + Walker@M*U*S*H. + * The AE/ae accent characters can now be produced (accent(a,e)). + Patch by Luke@M*U*S*H. + * @hook/ignore would double-evaluate arguments. Reported by + Ambrosia@M*U*S*H. [SW] + * Mingw error in src/Makefile.SH fixed. Report by Thor@bDv. [SW] + * Help fixes by Cerekk@bDv, Mike Griffiths, Steve Varley, Thor@bDv, [SW], + Dahan, Jason Stover, and Kyieren@M*U*S*H. + * cmdlocal.dst now includes flags.h. By Dahan. + * Win32 portability fixes by Dahan, Nathan Baum, [EEH]. + * utils/mkcmds.sh is now smarter about choosing temp filenames, so + parallel make should work. Fixed by Cheetah@M*U*S*H. + * The Zone: data in examine could be wrong. + + +Version 1.7.7 patchlevel 27 January 25, 2004 + +Minor Changes: + * New etimefmt() formatting codes to make it easier to get nice-looking + results without 0-valued times. Suggested by ranko_usa@M*U*S*H. [SW] + * Autodetect existence of /usr/kerberos/include to make compile + easier for RH9 sufferers. + * src/Makefile is now autobuilt from src/Makefile.SH. IF you use + local hacks that require src/Makefile, this is likely to be a problem + for you. You'll want to start patching Makefile.SH instead. + * Fewer warning flags are now provided to the compiler by default. + You can set your own warning flags instead by defining the + warnings variable in config.over. +Fixes: + * The startups option actually does what it's supposed to now. + * Potential DOS in etimefmt fixed. Report by Ashen-Shugar. [SW] + * Code cleanup. ok_tag_attribute should work. [SW] + * Channels are automatically ungagged only on initial connection + (not reconnection, partial disconnection, etc.). Suggested by + Mordie@M*U*S*H. + * notify() calls during startup would crash. Reported by Mordie@M*U*S*H. [SW] + * Fixes from 1.7.6p15. + + +Version 1.7.7 patchlevel 26 December 15, 2003 + +Commands: + * Add /regexp switch to @switch and @select. Suggested by BladedThoth. [SW] + * New /spoof switch to @pemit, @remit, @lemit, @oemit, @emit, + causes the message to appear to be generated by the cause, rather + than the enactor, which makes globals like $ooc show the right + NOSPOOF information (instead of the name of the global command object). + Patch by Philip Mak. +Functions: + * hostname(), ipaddr(), and cmds() take a dbref or descriptor number + of a connected player and return the hostname, ipaddr, and number + of commands executed. Suggested by Sholevi@M*U*S*H and Renee@ShoreSide, + code by Sholevi@M*U*S*H. + * Add reswitch*() functions. Suggested by BladedThoth. [SW] + * insert() can take a negative position argument to insert from + the right. Patch by Sholevi@M*U*S*H. + * New firstof() and allof() functions return the first true value + or all true values from a set of expressions. Patch by Sholevi@M*U*S*H. + * tr() works like the Unix utility, translating characters. Patch + by Walker@M*U*S*H. +Attributes: + * Attributes may be set DEBUG to cause their evaluation to be + debugged selectively. Patch by Pozzo@SWForum. + * @desc can no longer be gotten remotely without privileges. + To implement this, a new attribute flag NEARBY was added, + which prevents visual attributes from being remotely accessed. + See new configuration directive 'read_remote_desc' if you prefer + the old behavior. Patch by Philip Mak. + * @desc on privileged objects can now be evaluated by mortals. + To implement this, a new attribute flag PUBLIC was added, + which overrides safer_ufun for that attribute. This flag is dangerous + and should be avoided unless you are sure you know what you're doing. + Patch by Philip Mak. +Minor Changes: + * "+ " complains if is ambiguous, and + displays a list of matching channels. Patch by Luke@M*U*S*H. + * Code cleanup around @oemit by Philip Mak. + * If an object has an IDESCFORMAT but no IDESCRIBE, interior viewers + now see the DESCRIBE formatted by IDESCFORMAT (instead of + the DESCRIBE formatted by DESCFORMAT). Suggested by Philip Mak. + * Ported to Win32 with the Mingw development environment. + See win32/README.mingw for compile instructions. [EEH] + * null() can now take any number of arguments. Patch by Walker@M*U*S*H. + * Using @chan/quiet to control the quiet flag on a channel no longer works + (Actually, it never did). Use @chan/priv instead. [SW] + * The NO_WARN flag now prevents disconnected room warnings, too. + Suggested by several people. Patch by Philip Mak. + * @sitelock/name !name still unlocks a reserved name, but no longer + removes that name from names.cnf. Suggested by Nymeria. [SW] + * Some cleanup of fopen() calls. [SW] + * The reference to channel Creator is now Owner in @chan/decomp. + Suggested by Howie@NFTrekMUSH. [SW] + * The name of the channel being tested is passed as %0 in channel locks. + Suggested by Philip Mak. [SW] + * help for @chownall mentions the /preserve switch. Warnings from @chown + and @chownall tell which objects they're for. Suggested by + Mordie@M*U*S*H. [SW] + * Home wrecking is allowed again. Suggested by Philip Mak. +Fixes: + * Puppets in containers with @listen container=* now hear the + outside world correctly. Patch by Philip Mak. + * The email sent on player registration now double-quotes the + player name in the example connect statement. Suggested by + David Kali. + * Two rooms should never be nearby() each other. Fix by Philip Mak. + * can_look_at() now handles the look/out case, too. Fix by Philip Mak. + * Help fixes by Viila@M*U*S*H, MetBoy@M*U*S*H, Cheetah@M*U*S*H. + * @flag/alias or @flag/add without giving an alias no longer crashes + the MUSH. Report by Wildfire. + * Correctly retrieve user full name from /etc/passwd fields under + Linux in Configure. Record it in config.sh. Reported by Vadiv@M*U*S*H. + * Debian package changes. [EEH] + * As the help promises, XCH_CMD and SEND attributes don't work + for non-Wizards. Really. + + +Version 1.7.7 patchlevel 25 October 30, 2003 + +Fixes: + * Crash bug in the interaction between parents and attr trees + fixed. Report by Walker@M*U*S*H. + * Improvements to how locks are decompiled. Built-in locks with the + no_inherit flag cleared are handled better. If the object doing + the @decompile is referenced in a lock key, it's decompiled as 'me' + rather than by dbref, to make it easier to port between games. + Report by Cerekk@bDv. [SW] + * The error typically logged by info_slave on a mush crash is worded + better. [SW] + * panic() renamed mush_panic() as the Mach kernel now has a public + system call panic(). Report by Jeff Ferrell. + + +Version 1.7.7 patchlevel 24 October 19, 2003 + +Minor Changes: + * The puppet flag can now apply to rooms. Suggested by Philip Mak. + * @tel/inside allows priv'd players to teleport into another player's + inventory (instead of to their location). Suggested by Philip Mak. +Fixes: + * Startups from a created minimal.db did not properly initialize + the objdata htab, so subsequent use of that htab (e.g. adding + players to channels) would crash. Report by [LdW]. + * Help fixes by BladedThoth@M*U*S*H and Philip Mak. + * Attempting to clear a branch attribute when it has leaves now + gives a better message. Also better message for inability to + write an attribute due to tree issues. Patch by Luke@M*U*S*H. + * Bug in @debugforwardlist fixed by Luke@M*U*S*H. + + +Version 1.7.7 patchlevel 23 October 10, 2003 + +Major Changes: + * Forking dumps now work with the chunk memory manager. [TAP] +Minor Changes: + * Chunk allocator improvements in partial read/writes and for + Win32. [TAP] + * Use the SHA0 algorithm from OpenSSL instead of our own when possible. [SW] +Functions: + * New digest() function for generating checksums via a variety of + algorithms. [SW] + * cowner() returns the dbref of a channel's owner. Suggested by + Sholevi@M*U*S*H. [SW] + * Added baseconv(), for converting numbers from one base to another. + Useful for tweaking things like Myrddin's bboard code. Suggested + by many people. [SW] +Fixes: + * Remove warnings in set.c and pcre.c. Report by Nymeria@M*U*S*H + * @power messages now show the canonical name of the power. + Suggested by Cheetah@M*U*S*H. + * Adding DARK players to channels produced a duplicated message. + Reported by Mystery8@ST:AW. + * Players set WIZARD and ROYALTY would get double notification + of some GAME: messages. Fixed now. [SW] + * Chatdb corruption possible when admin add players to channels. + Reported by several folks, diagnosed by Mordie@M*U*S*H. + + +Version 1.7.7 patchlevel 22 September 30, 2003 + +Minor Changes: + * When possible, sockets are now set SO_KEEPALIVE and TCP_KEEPIDLE. + This may help prevent disconnections of idle players behind + poorly designed NAT routers and the like, and make the use of + the IDLE command unnecessary. Patch by Philip Mak. + * Better failure messages for 'get blah's blah', especially when + the container or contained object is ambiguous. Suggested by + Philip Mak. +Fixes: + * Attempting to unset attribute flags actually set them. + Report by Ambrosia@M*U*S*H. [SW] + + +Version 1.7.7 patchlevel 21 September 23, 2003 + +Major Changes: + * Attribute trees. Attributes may now be organized hierarchically + like files and directories in a filesystem, using the backtick (`) + character as the branch separator. Attribute access restrictions + propagate down trees. New wildcard ** is introduced to match + all attributes at all tree levels. Suggested by Tabbifli. [TAP] +Locks: + * New framework for performing lock failure activities in hardcode. + As a proof-of-concept, the attributes FOLLOW_LOCK`FAILURE, + FOLLOW_LOCK`OFAILURE, FOLLOW_LOCK`AFAILURE do what you'd expect + when set on a potential leader. Suggested by Sholevi@M*U*S*H. +Channels: + * New per-channel flags NoTitles, NoNames, and NoCemit do what you'd + expect. Set them with @chan/privs. Based on suggestion by + Saturn@M3. + * @chan/recall/quiet omits timestamps. Suggested by Vadiv@M*U*S*H. +Commands: + * 'help ' now lists all help topics that match that + pattern. By popular request. [MUX,SW] + * @flag/letter can be used to change or clear the one-letter alias for a + flag. Suggested by Nymeria@M*U*S*H. [SW] + * @flag/list by God notes disabled flags. Suggested by Nymeria@M*U*S*H. [SW] +Functions: + * rand() now comes in a two-argument (low,high) flavor, and randword() + selects a random word from a list. The latter is aliased to + pickrand() to match Mux's name. Patch by Luke@M*U*S*H. +Minor Changes: + * Although we're Pueblo 2.50 compliant, go back to sending Pueblo 1.10 + as the server version until everyone upgrades their clients so + they can handle the 2.50 string. Suggested by Shirow. + * The locate() function is no longer noisy (no longer notifies + the executor in addition to returning a value). Suggested by + Mystery8@ST:AW. + * @lock/interact now has a higher priority than other interaction + checks, so it will work for Wizards. Suggested by Viila@M*U*S*H. + * Tweaks to facilitate a Debian package of PennMUSH. [EEH] +Fixes: + * max descriptor could get stomped in some cases. [SW] + * Removed extra struct def in hdrs/mushtype.h. Suggested by Kyle. + * Help tweak by Kevin@M*U*S*H. + * Fix to locks on players messing up their connection failure counts. + Reported by Luke@M*U*S*H. + * Fix to @entrances by Luke@M*U*S*H. + * Fix to Win32 not handling a missing minimal.db by Luke@M*U*S*H. + * The confirmation message for setting/clearing attribute flags would use + the flag name given as an argument, not neccessarily the the full name of + the flag. Reported by Vadiv@M*U*S*H. [SW] + * Fix a potential memory leak in ident.c [SW] + +Version 1.7.7 patchlevel 20 September 4, 2003 + +Major Changes: + * minimal.db is no more. If you start up the server and there's no + db to be found, it creates a new minimal database in memory + on the fly. Feel free to delete your coopy of minimal.db. [SW] + (In related news, the default OSUCC on #0 in minimal.db is gone. + Suggested by Cheetah@M*U*S*H. So much for the mists.) +Minor Changes: + * SSL connections are now ended before the dump when rebooting, + but their descriptor information sticks around to ensure that + their @adisconnect is run after the reboot. Based on suggestions + by Vadiv@M*U*S*H and [TAP]. + * When _DEBUG is defined in a win32 build, don't copy pennmush.exe + to pennmush_run.exe. Makes debugging easier. Patch by Luke@M*U*S*H. + * In pueblo mode, no longer clear past images after each room look. + Patch by Konstantine Shirow. + * In pueblo mode, we no longer render ansi attributes or colors with + HTML tags; we assume the client will correctly handle them as ansi + intermixed with Pueblo. This solves a variety of problems. + Based on a discussion with Konstantine Shirow. + * When matching $commands and ^listens, insure that a matching attribute + exists before testing locks. This may break some strange locks using + %c, but hopefully won't. Suggested by Cheetah@M*U*S*H. + * The @scan command temporarily sets %c to the command to be scanned + (without "@scan" prefixed) so that it can detect commands that use + %c-matching. Based on ideas from Cheetah and Walker@M*U*S*H. + * Added support for Pueblo's md5 checksum. We track it on each + descriptor, though we don't do anything with it currently. + * Speed-up to fun_merge. Patch by Walker@M*U*S*H. + * Internal cleanup of flags in channel_broadcast. + * Wizards may @name themselves to names forbidden in names.cnf. + Patch by LeeLaLimaLLama@M*U*S*H. + * We are now forgiving of stupid non-RFC-compliant telnet clients + that send CR only even when they claim to be sending CRLF + (Read: MS Windows XP telnet). MS bug reported first by + Intrevis@M*U*S*H. + * Misleading restrict_command on @clone removed from restrict.cnf, + as @dig/@open/@create permissions already control @clone. + Suggested by Philip Mak. +Functions: + * lstats() and quota() now allow objects to see stats/quota on other + objects they control (e.g., on their owners, perhaps). Suggested + by Philip Mak. + * hastype() can now test for type GARBAGE. Suggested by Tanaku@M*U*S*H. +Commands: + * The new ']' command prefix causes the rest of the command-line + not to be evaluated by the expression parser. Try: ]think [add(1,1)] + Inspired by Elendor. + * @hook/ignore. [mux] + * @hook/override [Rhost, though they don't call it that] +Attributes: + * @debugforwardlist forwards DEBUG output to dbrefs on the list. + Suggested by Balerion@M*U*S*H. +Tests: + * A new test harness for developing regression test suites in perl + for PennMUSH is now included; few test suites are. If you can figure + out how to use this, write some tests for us! (If you can't, don't + ask about it, please :) +Locks: + * @lock/interact can prevent other players from transmitting any + normal sound to you (that is, you won't hear them speak, pose, + emit, etc., like gagging them in a client). It doesn't control + page (use @lock/page) or @mail (use @lock/mail). You still + hear 'presence' messages (connects/disconnects/arrivals/leaves) + so you can have a sense of who can hear you but you can't hear. + Patch by Philip Mak. +Fixes: + * Configure script no longer keeps adding -lssl -lcrypto over and + over to the Makefile. Report by Sholevi@M*U*S*H. + * Portability fixes for compiling with MSVC5 by Luke@M*U*S*H. + * The behavior of spaces inside parentheses that aren't part of a + function has been improved. Report by Jason Newquist. [TAP] + * txt/*.html files were being improperly escaped before being + sent to Pueblo connections. Report by Konstantine Shirow. + * mushdb.h includes flags.h, as it relies on constants from there. + Suggested by Philip Mak. + * Better error reporting on some failure messages in chunk allocator. + Patch by Philip Mak. + * @config/set with an invalid option now returns an error. + Report by Sholevi@M*U*S*H. + * Fix to interaction checking in notify_anything that could result + in the wrong check being performed. Report by Philip Mak. + * Help fixes by LeeLaLimaLLama@M*U*S*H, Sunny@M*U*S*H, Sketch@M*U*S*H. + + +Version 1.7.7 patchlevel 19 August 19, 2003 + +Fixes: + * When SSL connections are dropped on reboot, other players weren't + seeing disconnect messages. Now they are. + * Two calls to flaglist_check_long didn't get converted to the new + abstraction layer, making flag_broadcast not work right. + Report by Luminar@M*U*S*H. + + +Version 1.7.7 patchlevel 18 August 19, 2003 + +Major Changes: + * The flag handling code has been additionally abstracted to + allow, in a future patchlevel, @powers to be handled in the + same way that flags are now. +Minor Changes: + * Wrap the OS-dependant code for making sure the mush always has a free + file descriptor available for use in a pair of functions. [SW] +Fixes: + * Linted some ssl-related warnings. Reported by Cheetah@M*U*S*H. + * Compile failed in timer.c unless USE_MAILER was defined. + Reported by Sunny@M*U*S*H. + * Bug allowing players to view internal and mortal_dark attributes + introduced in p17 has been fixed. [TAP] + + +Version 1.7.7 patchlevel 17 August 11, 2003 + +Major changes: + * SSL support, including server and client authentication as options. + This should be considered experimental. New ssl() function returns 1 + if a player/descriptor is using SSL, 0 otherwise. New file README.SSL + documents how to set up SSL. Two things to note: + - SSL connections are dropped on @shutdown/reboot, so SSL users may + wish to write client triggers to reconnect. + - Output flushing behaves slightly differently for SSL connections. + * The way lock keys are handled internally has been rewritten to allow + them to be tracked by the same chunk-management code that handles + attributes. [SW] + * @mail message texts are now stored with the chunk-management code. [SW] + * The new code can no longer read databases created by versions of Penn + before 1.7.5p0. If you need to do this, load it in 1.7.6, shutdown, + and use that database. [SW] +Minor changes: + * A new minimal.db is distributed (older ones probably won't work, + and this one probably won't work with older versions). [TAP] + * Contents/exits lists and functions that use first_visible (like + lcon, lexits, etc.) are now affected by INTERACT_SEE. Suggested by + Prospero@Metro. + * @chan/recall now displays the last 10 lines by default. Use + @chan/recall =0 to get the full buffer. Suggested by [TAP]. + * Various boolexp tweaks. [SW] + * @power provides more verbose feedback. Suggested by Mordie@M*U*S*H. [SW] + * Additional chunk tweaks, including limiting migrations to one + per second. [TAP] + * PROFILING #define for use when profiling the code (surprise). This + just disables the CPU timer. + * When matching $-commands, only call the slower capturing wildcard match + function when we already know it succeeds, since it won't most of the time. + The faster non-capturing function is checked first to find a match. [SW] + * PCRE is initialized once, at startup, rather than testing to see if it has + to be done before each place regular expressions are used. [SW] + * The TERSE flag now applies to objects, not just players. Suggested + by Aur@M*U*S*H. + * The terminfo() function now returns SSL status as well. + * help-like commands without arguments now use the command name + as the argument. E.g. 'news' now looks for topic 'news', instead of + 'help'. If not found, we fall back on help. Patch by Mike Griffiths. + * When an object is zoned to an unlocked ZMO, the ZMO is now autolocked + to =me instead of $me, because it's probably less confusing. + Suggested by Luke@M*U*S*H. + * @name now automatically trims leading and trailing spaces from its + newname argument, to avoid confusing people who use edit() to + generate new names and leave in spaces. Report by [TAP], patch by [SW]. +Commands: + * New 'logargs' and 'logname' restrictions in restrict.cnf allow + per-command logging. Suggested by Saturn @ M3. +Functions: + * The sha1() function has been renamed sha0(), since that's what it + really does. [TAP] + * trimtiny() and trimpenn() work like trim(), but force the TM or + Penn argument style. + * New 'logargs' and 'logname' restrictions in restrict.cnf allow + per-function logging. Suggested by Saturn @ M3. +Fixes: + * The side-effect version of name() was producing a weird return + value. Reported by Saturn@M3. + * Problems with restrict_command and restrict_function with multiple + restrictions now fixed. Report by Sholevi@M*U*S*H. + * stddef.h now included in src/extchat.c. Report by [EEH]. [SW] + * INFO output now includes a missing newline. Report by [EEH]. [SW] + * help BUILDER updated. Report by Laura Langland-Shula. + * down.txt message wasn't being sent. Report by Sholevi@M*U*S*H. [SW] + * New Win32 project files that include the chunk code. [EEH] + * @chan/what no longer highlights the channel's name, as this is + confusing if you use ansified channel names. Suggested by + Oriens@Alexandria. + * ex/mortal now operates more correctly. Report by Amy Kou'ai. + * Fixes from 1.7.6p13. + +Version 1.7.7 patchlevel 16 June 23, 2003 + +Commands: + * New switch /room for 'with' to run a $command available in a remote + location. Suggested by Mike Griffiths. [SW] +Functions: + * Added the terminfo() function, which returns information about a + client's name and capabilities for a particular connection. [SW] + * New lports() function. Like lwho() but returns port descriptors. + For mux2 compatibility. [SW] + * Functions that return information about a connected player now treat + integer arguments as a port descriptor to look up, rather than using + the least-idle connection of a player. To force a player name to + be treated as such even when it's a number, prefix it with a * in + softcode. For mux2 compatibility. [SW] + * Players can use ports() on themselves and use the descriptors + they're connected to as arguments to the information functions. + For mux2 compatibility. [SW] +Minor Changes: + * Compute various chunk stats (total used, total free space, etc.) + on demand instead of keeping running totals. [TAP] + * @chan/what displays information about a channel's recall buffer, if any. + [SW] + * @chan/recall'ed lines are more clearly marked as such. Suggested by + Oriens@Alexandria. [SW] + * Consolidation of a common idiom used to format times throughout the source + into a simple function call. [SW] + * The time a @mail was sent was stored, unusually, as a string. + No longer. Now it's handled the same way as all other times. [SW] +Fixes: + * Bug in resizing @chan/recall buffers fixed. Reported by Oriens@Alexandria. + [SW] + * Objects with user-defined locks had problems with finding built-in locks + on the object. Reported by Walker@M*U*S*H. [SW] + * Unregistered() macro was checking wrong flag name. Report by + Matt Kirby. + * Help fix by Adu@M*U*S*H. + * Potential problem with ambigious names in the information functions fixed. + + +Version 1.7.7 patchlevel 15 June 1, 2003 + +Fixes: + * Problem with checking command flag masks when the number of + flags was an even multiple of 8. Reported by Nymeria and + Mordie@M*U*S*H. + * Tweak to improve efficiency of ancestor checking code and delint + warning reported by Cheetah@M*U*S*H. + * SESSION output no longer misaligned with 5-digit dbrefs. + Reported by Cheetah@M*U*S*H. [TAP]. + * Fixes from 1.7.6p11. + * game/txt/index-files.pl now uses locale information in the + environment to, e.g., correctly lowercase accented characters. + Report by Krad@M*U*S*H. + * Modified several Makefile.SH targets to prevent Javelin from + releasing patches that don't have the autogenerated files + up-to-date for Windows folks. + * Removed some dependence on typedefs that may or may not be in system + header files. [SW] + * Patch compiler warnings. [SW,EEH] + * Help fixes by Mike Griffiths and Oriens@Alexandria. + + +Version 1.7.7 patchlevel 14 May 22, 2003 + +Major changes: + * Ancestors: an object can be configured to serve as an 'ultimate + parent' of every room, exit, thing, or player, and attributes + that are not found on an object or any of its parents may be inherited + from the ancestor for that object type. The ORPHAN flag prevents + ancestors from being used on an object. Patch by Walker@M*U*S*H. + * Mail messages now track not only the dbref of the sender but the + sender's creation time, so messages from dbrefs that have been + nuked and recreated can be distinguished from messages from the + original sender. This modifies the maildb and make it not usable + with older versions. All existing @mail is grandfathered in, and + can't be tracked this way. Suggested by Philip Mak. + * New chunk memory allocator can be used to greatly reduce process + memory requirements by swapping little-used attribute texts out + to disk and caching often-used attribute texts in memory. + This is incompatible with forking dumps, so if you use it, + you'll do nonforking dumps. Configurable in mush.cnf, see comments + there. [TAP] + * Hardcode: new interaction type INTERACT_PRESENCE marks the + arrival/departure/connection/disconnection/grows ears/loses ears + messages. Many message types that used to be considered auditory + (like most @verb-style messages) are now marked as visual instead. +Functions: + * strreplace() works like replace() for strings. [SW] + * fraction(), for turning floating-point numbers into fractions. [SW] + * root(), for finding roots higher than the square root. [SW] +Minor changes: + * We now use wrapper functions atr_value and safe_atr_value instead of + uncompress(AL_STR(...)) or safe_uncompress(AL_STR(...)), so we + can do future work with attribute storage cleanly. [TAP] + * @*payment attributes now receive the amount of money paid in + as %0. Suggested by Sholevi and Time@M*U*S*H. [SW] + * Config options that take times now accept a notation describing what kind + of units to use. For example, 3600s, 60m, 30m1800s, and 1h all refer to + the same period of time. Suggested by Time@M*U*S*H. [SW] + * Doxygen commenting of non-static members is essentially complete! + Pennhacks see: http://www.pennmush.org/docs/1.7.7/html/ + * The mail() function no longer matches non-player objects by name. + * Several additional messages (locks, parents, etc.) are now quieted by + the QUIET flag. Patch by [EEH]. + * New config option default_home sets the room to send homeless things + to. [TAP] + * Added visual progress indicators for utils/mkcmds.sh so that slow + systems won't think they're hung. Suggested by Cheetah@M*U*S*H. +Fixes: + * Fixes from 1.7.6p10. + * The 'i' sort type was not properly implemented. Reported by + Noltar and BlaZE@M*U*S*H. + * Cleanup of all accesses to ATTR values to use AL_STR() in preparation + for future work on attribute storage. [TAP] + * The 'any' string for specifying flag types didn't work properly. + Reported by Krad@M*U*S*H. + * The connect screen may now appear correctly under windows telnet. [SW] + * The more efficient channel buffer shifting code now handles + pathological cases correctly. + * The tag*() functions could leave tags open at the end of full + buffers. No longer. + * Code cleanup in src/notify.c. + * @rejectmotd and @wizmotd set the wrong messages. Report by + Konstantine Shirow. [SW] + * Using @chan/buffer to resize a recall buffer gives feedback. Reported by + Sholevi@M*U*S*H. [SW] + * Help fix for grab() by Adu@AbryssMUSH. + * You can no longer destroy the base_room (or default_home). Suggested + by Philip Mak. [TAP] + +Version 1.7.7 patchlevel 13 April 9, 2003 + +Major changes: + * Interactions (something like "realms" in mux2). Two functions + in local.c can now be used to control conditions under which + objects can see, hear, or match each other. Possibly useful for + implementing umbral worlds, etc. Patch by Vadiv@M*U*S*H. +Functions: + * children(), syntactic sugar for lsearch(all,parent,). + Suggested by Kyieren@M*U*S*H. Patch by BlaZe@M*U*S*H. + * powers() can now take a second argument to set an @power. + Suggested by Rob@BtFMUSH. +Minor changes: + * @config/set can now set null strings. Suggested by Cheetah@M*U*S*H. + * In restart, set LC_ALL as well as LANG from the given LANG value, + in case the user's got an LC_ALL in their shell. + * The channel buffer shifting code has gotten much more efficient. + Suggested by [TAP]. + * @function/restrict can accept arguments of the form '!' + to clear a restriction. Suggested by Saturn@M3. + * Most of the asterisk lines between different login message files + have been removed. Suggested by Vadiv@M*U*S*H most recently. +Fixes: + * Fixes from 1.7.6p9. + * Win32 portability fixes. [EEH] + * deny_silent in access.cnf was ignored in several cases, and no + longer is. Patch by Cloud@Sci-Fi Chat + * Help fixes by Cheetah@M*U*S*H and LeeLaLimaLLama@M*U*S*H. + + +Version 1.7.7 patchlevel 12 March 21, 2003 + +Commands: + * @channel/buffer creates a buffer for a channel to store the most + recent messages broadcast on the channel. @channel/recall can be + used to recall them. These are not stored across reboots and should + be set up by #1's @startup. +Functions/Substitutions: + * accname() gives the accented name of an object (applying @nameaccent). + * %~ gives the accented name of the enactor. +Minor Changes: + * The chat-related commands and functions have been moved out + of bsd.c and funmisc.c and into extchat.c. Patch by Vadiv@M*U*S*H. + * The notification stuff has been moved out of bsd.c and into a new + notify.c file. + * @name no longer requires a password for changing player names, + and ignores one if given. Suggested by Ambrosia@M*U*S*H (and others). + * @hook can not be used on the @password or @newpassword commands. + * The dump_complete message is also shown after a forking dump, + if one is defined. Suggested by Nathan Schuette. + * @lock/leave on a room now prevents people within it from leaving + via exits or via @tel. Suggested by Peter Bengtson, patch by + BlaZe@M*U*S*H. +Fixes: + * Fixes from 1.7.6p8 + * Cleanup of a few new db[x] mentions in the source to use dbdefs.h + macros. Inspired by Vadiv@M*U*S*H. + * @command/restrict didn't work properly for most flags, especially + new ones. Reported by Caesar and Sholevi@M*U*S*H. + * @pemit/list didn't honor NOSPOOF. Patch by Cheetah@M*U*S*H. + + +Version 1.7.7 patchlevel 11 February 22, 2003 + +Commands: + * New IDLE command (socket-level) does nothing, and does not update + the socket's last_time (so it doesn't change idle times). Useful + for people behind lame NAT firewalls that timeout their connections if + nothing is sent for 5 minutes. Suggested by Bolt and BladedThoth@M*U*S*H. +Fixes: + * Win32 (and other OS) portability fixes. [EEH] + * Fixed the openssl Configure thing again. The right way, this time. + +Version 1.7.7 patchlevel 10 February 22, 2003 + +Fixes: + * Fix to stupid typo in Configure script that breaks on systems + without openssl. Argh. + +Version 1.7.7 patchlevel 9 February 20, 2003 + +Functions: + * New function scan() works like @scan. Suggested by Viila@M*U*S*H. +Flags: + * New flag, MISTRUST, prevents an object from controlling anything + but itself. +Configuration: + * mush.cnf directives ansi_justify, globals, and global_connects have + been removed (they are now always on). + * New unconnected_idle_timeout directive in mush.cnf controls + timeouts for connections idle at the connect screen. + * New max_guests directive in mush.cnf can limit the number of + guests allowed to connect at once. Suggested by Sholevi@M*U*SH. +Minor Changes: + * New lflags search class takes a list of flag names. + * Improved connection failure messages. + * Somewhat more informative message when you @chan/gag,hide,mute + all channels at once. Suggested by Tanaku and Kevin@M*U*S*H. + * Began commenting files using doxygen. + * Internal code cleanup. Mostly converting some magic numbers to + #define'd symbols, and some #define'd symbols to enums for better + debugging and improved readability. Also some conversion of old + K&R style functions. [SW] + * sort() and the set functions understand all the same comparison + types as comp(). [SW] + * Case-sensitive comparison currently isn't always possible, depending + on the locale the mush is running on. Help files reflect this. [SW] + * @uptime shows the time of the last successful database save, and + the time of future events like saves, not just the time until them. + Suggested by Cheetah@M*U*S*H. [SW] + * Improvements to reporting of failed saves. [SW] + * Code cleanup. [SW] + * tel() now takes a third argument that makes it function like + @tel/silent. Suggested by Cheetah@M*U*S*H. [SW] + * @idescformat operates like @descformat for internal descriptions. + Suggested by Tanya@M*U*S*H. +Fixes: + * local_startup() was getting run earlier than in the past due to + changes in the startup sequence. This has been rectified, so + local_startup() again runs after all other initialization (and + just before all object startups are triggered). Report by + BladedThoth and grapenut@M*U*S*H. + * Improved testing for openssl libraries in Configure. The old + approach used to cause problems on systems with runtime-only + openssl installations without development libraries. + * help opaque mentions that opaque blocks look/outside. Suggested + by Cheetah@M*U*S*H. + * itext() and inum() now generate an error on a null argument, + regardless of tiny_math and null_eq_zero settings. Reported by + Intrevis@M*U*S*H. + * Another fix to the new matcher. Bug report by Kyieren@M*U*S*H. + * @flag/alias was broken. Fixed. Reported by Kevin@M*U*S*H. + + +Version 1.7.7 patchlevel 8 January 27, 2003 + +Minor Changes: + * command_add now expects to receive the flag list and the + switch list as strings. Folks who hack into cmdlocal.c should + take note and read example in the new cmdlocal.dst +Fixes: + * Players were not created with all the player_flags. In a related + bug, checking of command flag restrictions wouldn't work with + all flags. Reported by Cory Descoteau. + * Flagmasks on commands weren't grown properly when flags were added. + + +Version 1.7.7 patchlevel 7 January 25, 2003 + +Fixes: + * Crash bug in zone-checking during @dbck fixed. + + +Version 1.7.7 patchlevel 6 January 23, 2003 + +Major changes: + * Rewrite of the flag system. The new system allows for any number + of flags, which may apply to any set of object types (the flags/toggles + distinction has been eliminated). Flags without single-character + abbreviations are better supported. Flags are stored in the object + database, and are referenced in hardcode and the db by the name + of the flag rather than bit positions. Older databases will be + automatically converted to the new format on load, but can not be + converted back (so make backups!). New flaglocal.dst file for + hardcode patch hackers to add custom flags. + * Rewrite of the matcher code (src/match.c). Some semantics of the + matching have changed: matching adjectives are parsed earlier and + restrict the match for greater efficiency; they also behave more + close as described in the help with respect to object ordering. + In addition, you can now do things by dbref without controlling + the object in many cases that previously required control. + Provoked by bug reports by Intrevis@M*U*S*H and Philip Mak. +Commands: + * @flag allows God to manipulate flags within the game, including + adding new flags. Flags additions/changes are maintained across + reboots, so this command does not need to be run at every startup. +Functions: + * lflags(), orlflags(), andlflags() return or test flag lists. +Minor changes: + * New NUMVERSION macro defined in hdrs/version.h that can be tested + by hardcode hacks to add code conditional on version. + * Much cleanup of @wall. Minimally-user-visible changes: + The @rwallemit, @rwallpose, @wallemit, @wallpose, @wizemit and + @wizpose commands have been removed. @wall no longer accepts the + /wizard, /royalty, and /pose switches, and @rwall and @wizwall accept + the /emit switch. Suggested by Vadiv@M*U*S*H, though he'd really + rather see @wall removed. + * @lock and @unlock now show which type of lock was set/cleared. + @lset now specifically notes that lock flags are being changed. + Suggested by Tanaku@M*U*S*H. +Fixes: + * @boot/me will no longer boot a connection if it is the sole + connection the player, even if it's technically inactive. + Suggested by Ambrosia@M*U*S*H. + * @boot'ing an active self (by descriptor) crashes the MUSH. + Discovered by Ashlynn@ChicagoMUSH. + * The thorn and eth characters generated with accent() would + convert to 'th' when stripped or viewed under NOACCENT, which + could be very confusing in object names. Same for the German sharp + s, which converted to 'ss'. Until we can cleverly set up separate + tables for object name unparsing, these have been reverted to their + old behavior so that stripaccents(accent(X,Y)) should return X for + any X and Y. Reported by DeeJee, Intrevis, and Time (@M*U*S*H). + + +Version 1.7.7 patchlevel 5 January 7, 2003 + +Fixes: + * Fixes from 1.7.6p5. + + +Version 1.7.7 patchlevel 4 January 2, 2003 + +Minor Changes: + * When room_connects is on, @aconnect and @adisconnect also + functions on things when players (dis)connect inside them. + Suggested by Philip Mak. [SW] + * Parser-enforced argument counts for user-defined @functions, + as an option to @function. +Config: + * New mush.cnf option max_global_fns allows increasing the number + of @functions allowed without editing source code. If you change + this, you should reboot the MUSH or bad things can happen. + Suggested by hilikiradi@Dardalani. +Fixes: + * mkcmds.sh doesn't always regenerate every file, only what's + needed. Speeds up compiles. Suggested by Philip Mak. [SW] + * Fixes from 1.7.6p4. + + +Version 1.7.7 patchlevel 3 December 25, 2002 + +Commands: + * @sitelock/check tells you which rule, if any, would match. +Fixes: + * The objdata hashtable routines had a serious bug that could + cause crashes. + + +Version 1.7.7 patchlevel 2 December 22, 2002 + +Major Changes: + * The LOCAL_DATA define has been removed along with the pointer + in the object structure. The local functions called on creation, + destruction, and cloning are now always called. Objects can + now store data in a single hashtable using the set_objdata() + and get_objdata() functions. As a proof of concept, the transitory + channel lists on objects are now stored here, and the "channels" + pointer has been removed from the object structure. Design + and much of the implementation by Vadiv@M*U*S*H. +Powers: + * can_nspemit power can be used to provide access to @nspemit + without a Wizard bit. [SW] +Functions: + * lpos from Mux, TM3. [SW] +Fixes: + * Fix to some gcc-specific macros reported by Peter Bengston and + Michael Holbrook. [SW] + * Improvements to stripaccents/noaccents conversions. [SW] + * Fixes from 1.7.6p3. + + +Version 1.7.7 patchlevel 1 December 17, 2002 + +Minor Changes: + * ex obj/attrib returns the attribute value even if it's veiled, + if a specific (non-wildcard) attribute is given. Suggested by + Nhoj@M*U*S*H. +Fixes: + * Win32 portability fixes. [EEH] + * Fixes from 1.7.6p2 + +Version 1.7.7 patchlevel 0 December 8, 2002 + +Major Changes: + * Clients that understand telnet NAWS (See RFC 1073) can tell the mush + what dimensions a given connection's display is. Added the + width() and height() functions, and SCREENWIDTH and SCREENHEIGHT + psuedo-commands for getting/setting this information from the mush. + This changes the reboot.db format and requires a full shutdown. [SW] + * Two new atoms for locks. "#true" in a lock is always evaluated as true + (anyone can pass), and "#false" is always evaluated as false (no one + can pass). Suggested by Vadiv@M*U*S*H. +Internationalization: + * The pronoun sets are no longer hardcoded. If you're running in a + locale other than C or en*, you'll see weird looking pronoun descriptions + for things like %s until a translation team translates them to your + locale's language. Suggested by Dandy@M*U*S*H. +Attributes: + * @DESCFORMAT can be used to separate description contents from formatting. + Suggested by Philip Mak. + * VEILED attribute flag causes attribute value not to be displayed + on default examine, but otherwise accessible as usual. Good for spammy + data attributes. See 'help attribute flags'. Suggested by Cheetah@M*U*S*H. +Commands: + * examine/all shows contents of veiled attributes. Suggested by + Intrevis@M*U*S*H. +Flags: + * The FIXED and ROYALTY flags are no longer optional. +Minor Changes: + * Object creation times are no longer optional. + * Warnings are no longer a compile-time option; they're turned on. + You can stop automatic warnings in mush.cnf, as before. + * Cleanup of the telnet-option code in general. [SW] + * Consolidation of much of the code for functions that return information + about the least-idle connection of a given player. [SW] + * The tiny_attrs configuration option has been removed. + * Removed a lot of preprocessor checks for conditionally including header + files that always succeed because they're standard C headers. [SW] + * Removed the Size_t typedef in favor of the standard size_t. [SW] + * Some optimization hints for the GCC and VS.NET compilers. [SW] + * We try to be more conservative about when we show lines of + asterisks around motd-type messages, to avoid showing them when + there's no message. + * Continued ansi-C-ification of function declarations. diff --git a/CHANGES.OLD b/CHANGES.OLD new file mode 100644 index 0000000..93b2499 --- /dev/null +++ b/CHANGES.OLD @@ -0,0 +1,4302 @@ +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(