+++ /dev/null
-This is the changes file for PennMUSH 1.7.7. 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 40 December 1, 2004
-
-Major Changes:
- * Another pass at the chunk allocator! Simpler but effective.
- Folks should, however, greatly reduce their chunk_migrate
- value in mush.cnf -- we suggest '50'. [TAP]
-Commands:
- * @command/alias can alias commands. Patch by Walker@M*U*S*H.
-Functions:
- * zwho() and zmwho(). [EEH]
-Minor Changes:
- * utils/penn-install is no longer part of the PennMUSH distribution
- (it's part of the Debian maintainer's stuff). [EEH]
- * Inheritable @locks are inherited off of ancestor objects.
- Suggested by Zith@Lovarii. [SW]
-Fixes:
- * Infinite recursion in @lock/examine fixed. Report by
- Amy Kou'ai (Amy@ShoujoAi) and Sparta Kerleon (Sparta@ShoujoAi). [TAP]
- * @flag/letter now allows setting a flag's letter to one used by
- another flag that works on different object types. Report by Lenon.
- * Translation corrections by Cheetah@M*U*S*H and [EEH].
- * Added __USE_POSIX to the cflags for linux, and removed
- checking for -lbind, to help SuSE 9. Report by Ambrosia@M*U*S*H.
- * Fixes to panic db loading logic. [SW]
- * escape() shouldn't double-escape the first character of the
- string when it's a special character. Report by Walker@M*U*S*H.
-
-
-Version 1.7.7 patchlevel 39 October 25, 2004
-
-Major Changes:
- * Game and chat database formats have been rewritten. They are
- much more human-readable, can be extended with new fields
- without using versioning flags, and provide better detection
- and reporting of malformed databases. [SW]
- * Chunk deref counts for locks are now stored in the database. [SW]
-Commands:
- * New 'buy' command for purchasing items from vendors that can offer
- multiple items at multiple prices. Patch by Walker@M*U*S*H.
- * restrict_command and @command/restrict can now include an
- error message to be sent when the player can't use the command,
- which supercedes more generic errors. Suggested by Philip Mak.
- Patch by Walker@M*U*S*H.
-Functions:
- * lwho() can take an argument to produce the who list from that
- player's viewpoint. Patch by Walker@M*U*S*H.
-Fixes:
- * nattr(obj/attrib) returns 1 when matching a non-wildcarded attrib.
- Report by Impster@M*U*S*H.
- * +chan <msg> is now converted to @chat <chan>=<msg> (with noeval)
- so @chat hooks apply to +chatting too. Patch by Walker@M*U*S*H.
- * You must be able to locate a player to perform elock() on them.
- Report by Ambrosia.
- * Help fixes by Sketch@M*U*S*H.
- * Simplification of @version code. [SW]
- * cemit() restrictions are now based on those of @cemit, instead
- of @emit. Report by BlackPhyr.
- * Setting queue_loss to 0 disables queue_loss. A bad idea, but
- more consistent behavior. Suggested by K Moon.
- * Examining objects always shows their actual number of coins,
- whether or not they're admin or no_pay.
- * Code cleanup in @edit and in char routines. [SW].
- * Wrong object checked when reporting money as unlimited. Report
- by Nate Barney. [EEH]
- * New hints/freebsd_5.sh. Suggested by James Lang.
- * INFO command once again reports the server as "PennMUSH",
- not just a version number. Report by Mark Hassman.
- * Win32 linting. Builds with NT_TCP should work again (although
- @shutdown/reboot under NT_TCP is still not functional).
- Reorganization of the Win32 services macros. [EEH]
- * Fix to bug with login attempts using literal encrypted strings.
- Reported by Cadar and Mirrador.
- * @ps/all shows the right label on top. Patch by qa'toq@bDv.
-
-
-Version 1.7.7 patchlevel 38 August 25, 2004
-
-Commands:
- * @boot/silent disconnects without the standard message.
- Suggested by Thor@bDv.
-Fixes:
- * Crash bug in is_objid fixed. Report by Wayne@PDX.
- * God could cause a flag to lose its type status, and then become
- inaccessible. Report by Wayne@PDX.
-
-
-Version 1.7.7 patchlevel 37 August 23, 2004
-
-Major changes:
- * @adisconnect is triggered on every disconnection, partial or full.
- This mirrors the behavior of @aconnect. Use %1 (the number of
- remaining connections) to distinguish between partial and full
- disconnects in @adisconnect code.
-Minor changes (user-visible):
- * When a player disconnects, their recv(), sent(), and cmds()
- values are passed to triggered @adisconnects as %2, %3, and %4.
- The number of remaining connections is passed as %1.
- Suggested by Jessica Hawthorne and Wayne@PDX.
- * No_Pay players now have their money reported as unlimited by
- examine and score (but money() still returns a useful integer value).
- ex/debug can be used to see the object's Pennies field.
- Suggested by Wayne@PDX.
-Fixes:
- * ex obj/*1 and similar was matching like ex obj/*1*. Reported by
- Math@HavenMUSH.
- * inc() and dec() with out-of-range integers now return a more
- useful error instead of odd behavior. Suggested by Jessica Hawthorne.
- * Win32 bug with renamed temporary database files resolved.
- Reported by AndromedaMU.
- * Help fixes by Mike Griffiths.
- * @mail commands with no message list were not using current folder.
- Report by Jessica Hawthorne.
-
-Version 1.7.7 patchlevel 36 August 9, 2004
-
-Functions:
- * l/lv/n/nv/x/xvthings() functions by Walker@M*U*S*H.
- * New flag to locate(), 'y', for matching player names like pmatch(),
- without requiring a leading * before the name like the 'p' flag. [SW]
- * lattr()/nattr() works for mortals on non-owned objects, showing
- or counting only attribs they can examine. Suggested by Philip Mak,
- patch by Walker@M*U*S*H.
-Minor changes (user-visible):
- * Mortals can no longer teleport HEAVY admin through exits.
- Suggested by Ambrosia@M*U*S*H.
-Minor changes (internals):
- * win32 directory has subdirectories for msvc6 and msvc.net. [EEH]
- * locate() on dark rooms now works for see_all players. Suggested
- by Wayne@PDX.
-Fixes:
- * @mail subjects are stripped of ansi before being stored (escape
- chars were always smashed on display). Suggested by Wayne@PDX.
- * @command/delete by God of a non-existing command caused a crash.
- Report by Wayne@PDX.
- * Follow works again. Report by Shirow.
- * Fix to digest()'s sha hash on systems without OpenSSL. [SW]
- * @list/command no longer includes duplicates. Report by Relay@M*U*S*H. [EEH]
- * comp() again returns -1/1 instead of -2/2. Report by Jessica Hawthorne.
- * sort() of large floats works again. Report by Jessica Hawthorne.
- * Linting of warnings in funlist.c. Report by Nymeria@M*U*S*H.
- * It was possible for wizards to create circular zone chains that
- would cause an infinite loop. Report by Wayne@PDX.
- * safe_ansi_string was double-prepending starting ansi codes.
- Report by Shirow.
- * Debian packaging improvements. [EEH]
- * Help fixes by Mike Griffiths.
-
-
-Version 1.7.7 patchlevel 35 July 21, 2004
-
-Attributes:
- * NO_NAME and NO_SPACE attribute flags, when applied to @o-message
- attributes, omit either the enactor's name or the space after it
- when sending the message to others. Patch by Walker@M*U*S*H. [3]
-Commands:
- * @break <expression>=<new command> now runs <new command>
- instead of simply stopping execution when <expression> is true.
- New command @assert breaks and runs new command when <expression>
- is false. Suggested by Philip Mak and Zebranky@M*U*S*H. Patch by
- Walker@M*U*S*H.
- * The new command 'huh_command' is responsible for handling unmatched
- command input. By default, it produces the usual Huh? message, but
- it can be overridden with @hook. Logging of huhs is now controlled
- in restrict.cnf and the log_huhs mush.cnf directive is removed.
- Suggested by T'orA and Walker@M*U*S*H.
- * New @decompile/prefix switch generalizes @decompile/tf.
- Prefixes are now applied even when decompiling multiple attributes,
- and a bug in doing so is corrected. Patch by Walker@M*U*S*H.
- * New @edit/first switch only replaces first occurrence of string.
- Suggested by Kevin@M*U*S*H.
-Functions:
- * malias() function for examining mail aliases. Inspired by
- Kevin@M*U*S*H.
- * llocks()/locks() lists locks on an object. Patch by Walker@M*U*S*H.
- * lset() function works like @lset. Patch by Walker@M*U*S*H.
- * lockflags() and llockflags() show short and long flags set on a lock.
- Patch by Walker@M*U*S*H.
- * lattrp() is lattr() including parent attribs. Patch by Walker@M*U*S*H.
- * nattr(obj/wildcardpattern) is now supported. Patch by Walker@M*U*S*H.
- * nattrp() is nattr() including parent attribs. Patch by Walker@M*U*S*H.
- * xattr(obj/wildcardpattern,start,count) extracts the corresponding
- elements from lattr(). xattrp() is xattr() including parent attribs.
- Patch by Walker@M*U*S*H.
-Minor changes (user-visible):
- * @lset and lock() recognize locks beginning with user:. Patch by
- Walker@M*U*S*H.
- * When a player causes an ambiguous channel match, the error message
- mentions CHAN_USEFIRSTMATCH, which now has a help entry.
- Suggested by Luke@M*U*S*H.
- * New sort options: sorting by dbref name, idle time, connection seconds,
- creation time, owner dbref, and attribute values. sort() and any
- functions that use list2arr() are now ansi-aware. Patch by Walker@M*U*S*H.
- * You can @name yourself to your @alias; this swaps name and alias.
- Suggested by Oriens@Alexandria. Patch by Walker@M*U*S*H.
-Minor changes (internals):
- * Several global variables are now encapsulated in a single structure
- to reduce potential namespace clashes.
- * Reorganization of some filecopy.c code. [SW]
-Fixes:
- * @mail manipulation specifying folder 0 explicitly when the
- current folder is non-zero didn't work right. Report by
- Jess Hawthorne.
- * Buffer overflow in string handling fixed. Report by Ashen-Shugar.
- * @sitelock/name of an already locked name no longer creates extra
- entries. Report by Nymeria@M*U*S*H.
- * make depend no longer produces an unterminated Makefile.SH.
- Reported by Bytor and Cheetah@M*U*S*H.
- * Help fixes by [SW].
- * Fix to replace_string2 to prevent overflow situations. Report by
- Atuarre. [SW].
- * Removed non-static shutdownsock prototype in hdrs/mysocket.h.
- Report by Kholnuu@M*U*S*H.
- * SQL code should be much more memory-efficient. [SW]
- * Code cleanup and fixes to some memory leaks with strcoll. [SW]
-
-
-Version 1.7.7 patchlevel 34 June 22, 2004
-
-Flags and Powers:
- * Debit power allows the giving of negative amounts of money.
- Suggested by Hemlon@SevenStones.
- * The setting and resetting of flags and powers can be logged
- by using the new 'log' restriction. Changes were made in
- flaglocal.dst which you must carry over into flaglocal.c
- (or, if you don't use flaglocal.c, just rm src/flaglocal.c and
- flaglocal.dst will be copied in its place). Suggested by Sholevi@M*U*S*H
- [SW]
- * Setting and resetting @powers are once again logged by default. [SW]
-Locks:
- * @lock/speech can now be set by unprivileged players. @lock/speech
- now applies to all players (it is no longer automatically overridden
- by admin). SPEECH_LOCK`*FAILURE attributes can be used to override
- the default failure messages when @lock/speech fails.
-Commands:
- * ex/parent examines an object and shows attributes that will be
- inherited from its parents (if you are permitted to examine
- the parent as well). Suggested by BladedThoth@M*U*S*H.
- * examine now shows the complete (examinable-by-enactor) chain of
- parent objects, not just the nearest parent. Suggested by Luke@M*U*S*H.
-Functions:
- * mailsend() is a function form of @mail/send. Suggested by Moe@ChicagoMUSH
- * ncon, nvcon, nexits, nvexits, nplayers, nvplayers, nwho, nvwho
- functions to count the number of each thing. Patch by Walker@M*U*S*H.
- * xcon, xvcon, xexits, xvexits, xplayers, xvplayers, xwho, xvwho functions
- to extract slices of potentially long contents, etc. lists. [Rhost,TM]
- Patch by Walker@M*U*S*H.
-Minor changes (user-visible):
- * Players can no longer be set CHOWN_OK. Suggested by Intrevis@M*U*S*H.
- If you have existing CHOWN_OK players, you probably want to unset
- this from them, or the results will be confusing (they'll continue
- to appear to have the flag, even though it won't be testable or
- settable or clearable; this is desired behavior).
- * If you're See_All and Pemit_All, you may now @cemit on any channel.
- Based on a suggestion by Philip Mak.
- * Attempting to give a player more than max_pennies will give them
- enough to get them to max_pennies, instead of being treated as
- an error. Similarly, taking away more pennies than they have will
- take away exactly all their pennies.
- * Improved errors for unprivileged users doing @boot/port.
- Suggested by Intrevis@M*U*S*H. [TAP]
-Minor changes (internals):
- * pre OS X Macintosh OSes are no longer supported. Hints for
- Darwin are improved. [SW]
- * An extra file descriptor only needed on Sun OS boxes was being
- opened on all unix systems. [SW]
- * If no config file name is given on the netmush program's command line,
- it will assume you mean mush.cnf instead of quitting. You should still
- be using the restart script instead of netmush directly, though, as it
- does important things like using the right database... [SW]
- * 'make local-files' will copy all the src/*local.dst files to their
- respective .c counterparts. Suggested by Nymeria@M*U*S*H. [SW]
-Fixes:
- * Configure handles the case where SO_KEEPALIVE works but TCP_KEEPIDLE isn't
- defined. [SW]
- * Win32 portability fixes and mingw hints. [EEH]
- * Raising max_logins from 0 with @config/set wouldn't take existing
- connections into account. [SW]
- * $commands starting with # (that don't look like an @force by dbref)
- will now be matched. Reported by Intrevis@M*U*S*H.
- * version() is verbose again. Reported by Sholevi@M*U*S*H.
- * The double-add of SQL_OK on minimal.db is now really fixed.
- See p33 changes for information. Report by Mordie@M*U*S*H.
- * Help fixes by Kevin@M*U*S*H and Cerekk@bDv.
- * @boot/desc on one's own descriptor is no longer translated to
- @boot/me. [TAP]
- * Overflow of integer argument in giving pennies fixed. Report by
- Sholevi@M*U*S*H.
- * Typo in fun_vcross() fixed. [SW]
- * Configure does better when ssl shared libraries, but not static
- libraries, are available. You can use -D no_openssl to skip SSL checks.
-
-
-Version 1.7.7 patchlevel 33 June 3, 2004
-
-Minor changes (internals):
- * IsPlayer, etc. macros rewritten for clarity by Luke@M*U*S*H.
- * Use enums in place of some more #defines and magic numbers. [SW]
- * New did_it_with() hc function simplifies passing a dbref as %0
- to did_it actions. [SW]
-Fixes:
- * The SQL_OK power could get double-added. If this happened to you,
- delete one of them and double-check that all sql-using objects
- still have the power set. Report by Mordie@M*U*S*H.
- * Missing include in game.c fixed.
- * Improper include in bufferq.c fixed. Report by Leona and Walker@M*U*S*H.
- * Obsolete bzero() uses removed. [SW]
- * New win32/pennmush.dsp.
- * Help fix by bleeder@M*U*S*H.
- * Mac OS X linting [SW].
-
-
-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 <object>' attempts to get each item in <object> and put
- it alongside <object> (in <object>'s location).
- * 'give <object> to <player>' 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^<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:
- * "+<channel> <text>" complains if <channel> 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 <wildcard-pattern>' 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 <chan>=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,<dbref>).
- 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 '!<restriction>'
- 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 <host> 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.
+++ /dev/null
-This is the old changes file for PennMUSH. Changes are reported in reverse
-chronological order (more recent first.) Starting with 1.7.4, each minor
-version has its own changelog, in CHANGES.174 and so on.
-
-[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 #<number> as
- well as just <number>. 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 <actor> 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 <channel>=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 <W>;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(<option>) returns the value of a config option.
- (e.g. config(money_singular))
- * sort() now accepts an output delimiter, a la iter().
- Suggested by Jason Newquist.
- * channels() now accepts a delimiter. Suggested by Trispis@M*U*S*H.
- * money(<integer>) returns the name of the money, either singular
- or plural, depending on <integer>. Suggested by Trispis@M*U*S*H.
- * timestring() with a pad flag of 2 forces 2 digit numbers.
- Suggested by Trispis@M*U*S*H.
- * fmod() function returns floating point remainder on division.
- Written by Michael Thole.
- * brackets() function returns bracket counts for its unparsed
- argument. Handy for debugging. By Jason Wilcox.
- * edit() can take multiple find-replace pairs. By Chili@M*U*S*H.
- * clock() function by Ari@SpaceMUSH and Chili@M*U*S*H.
- * flags() function can show attribute flags as well.
- Suggested by Kami@SW2
- * mailstats(), mailfstats(), and maildstats() added by Kami@SW2
- * nattr() (aka attrcnt()) returns number of attributes on
- an object. Suggested by Ashen-Shugar.
- * map() and foreach() now provide the element's position
- through %1. [LdW]
- * spellnum() function spells out numbers in words. [LdW]
- * wrap() for server-based line wrapping. Adapted from code by [LdW]
- * lmath() function lets you do math on delimited lists, and makes
- it easy to emulate Tiny's ladd/lsub/etc. [SW]
- * bitwise math functions. [SW]
- * mean(), median(), and stddev() functions. [SW]
- * bound() function for bounding numbers. [SW]
- * regrab(), regraball(), and regrep() regular expression
- versions of grab/graball/grep. [SW]
- * controls() can now be used if you control either the <obj> or
- the <victim>. [RLM] suggested this in July 1998, but we were
- too boneheaded at the time to agree on it.
-
-Commands:
- * teach <command> shows others in your room the (unparsed)
- command that you want to demonstrate, and then causes you
- to execute it. Suggested by Reed Riner.
- * /preserve switch for @clone and @chown to preserve privbits.
- By Kurt Fitzner.
- * rpage and rwho have been removed.
- * @nameformat on a room allows you to specify how the room's
- name should be displayed to those inside it when they look.
- * An optional second token for chat (in addition to +) can
- be set if you'd like + and = (or whatever) to both work.
- Patch by Kami@SW2.
- * @scan returns the matched attribute name as well as object.
- Suggested by many, including Thi@M*U*S*H.
- * ; waves is treated as :waves, instead of as ;waves.
- Suggested by Sandi Fallon, for tiny compatibility.
- * cv command at connect screen forces a !DARK connect.
- Suggested by David@M*U*S*H.
- * with obj=command tries a $command on a specific object. [TN]
- * @mailsignature finally implemented.
- * @chan/join and @chan/leave are aliases for @chan/on and @chan/off,
- respectively. Suggested by [LdW]
- * @chan/decomp/brief decompiles a channel without listing players.
-
-Flags:
- * LISTEN_PARENT flag causes the object to inherit ^listens
- from its parent. By Kurt Fitzner.
- * Internal ACCESSED flag removed.
- * PARANOID player toggle replaces the old paranoid_nospoof
- configuration directive, and allows per-player setting of
- nospoof format. Suggested by Trispis@M*U*S*H
-
-Minor Changes:
- * New lock @lock/command controls who may use $commands on an
- object. @lock/listen controls ^patterns, @lock/use controls both.
- Patch by Kurt Fitzner.
- * The max_obj_val and max_wiz_obj_val configuration options
- have been removed, as they're rarely used. You can change them
- in hdrs/conf.h (search for ENDOWMENT).
- * src/connect.c is no longer distributed. It wasn't ever used
- for anything anyway.
- * @fixdb command removed.
- * @config/functions and commands can show listings in lowercase.
- * match_list changed to try to match player aliases. Allows
- "look <alias>" for a player in the same room. Reported by Corum.
- * See_All players can now see/check AF_WIZARD attributes
- (but AF_MDARK still requires that you be roy/wiz).
- Suggested by Balazs Gasparin.
- * VERBOSE PUPPETs relay to their owners even if the owner's
- in the same room. Dedicated to Julianna@ATS.
- * You may now @dest objects that you control via a zone,
- as you could have done so indirectly before anyway.
- Reported by [LdW]
- * Sending the MUSH process an INT signal now causes graceful
- shutdown (not panic dump). Sending a USR2 signal causes
- a normal dump. As before, HUP causes config reload and
- TERM causes a panic dump. [TAP]
- * @chan/list shows your gag status. Suggested by Matt@M*U*S*H
- * When chatting, we only match partial channel names against
- channels you're actually on. Suggested by Matt@M*U*S*H
- * By default you can no longer speak to a channel you're not
- on. This is configurable per-channel with the new "open"
- priv. Suggested by Akiko@M*U*S*H.
- * If you can't go through an exit because it's linked to
- garbage or its variable destination is invalid, we no longer
- process the SUCC and DROP message set on the exit.
- * The Inherit() macro no longer includes a Wizard test -- we
- don't need it anymore as we protect Wiz objects in controls().
- * getrandom has been replaced by get_random_long, with a better
- algorithm and interface. Suggested by Stephen Dennis. [TAP]
- * Win32 compilers now get the __cdecl hint so they can compile
- using __fastcall which can greatly increase speed. Patch by
- Stephen Dennis.
- * For WIN32, use GetSystemTime instead of timeGetSystemTime.
- Patch by Stephen Dennis.
- * For WIN32, use a combination of wsadata.iMaxSockets and
- options.max_logins to pick a reasonable number of available file
- descriptors. Patch by Stephen Dennis.
- * Default dump messages now call it a 'save', not a 'dump',
- to avoid newbie confusion. Suggested by Vedui.
- * You're notified if you set an attribute/flag on a quiet object
- that you don't own. Patch by Kurt Fitzner.
- * @decomp now comments its "No attributes found" message so as
- not to break scripts. Report by Kurt Fitzner.
- * More Mac tweaking. [DW]
- * \ and % are no longer valid in attribute names. Suggested by Ali Abdin
- * Cleanup to logging code. We now try to do almost all of it through
- log.c functions for better encapsulation. Patch by David@M*U*S*H.
- * New @lock/examine to restrict who may examine visual objects.
- Suggested by [LdW]
- * Examining objects now shows channels they're on, if any.
- Suggested by Big Spoon@M*U*S*H.
- * Channel-hidden players are now marked in @chan/who for those
- who are allowed to see them.
- * @uptime shows more upcoming events, and shows them to mortals.
- Suggested by Kyieren@M*U*S*H.
- * @chzone obj works like @chzone obj=none. Suggested by Mystery8@M*U*S*H
- * Player creation is now announced to MONITOR players. Suggested
- by Paul@M*U*S*H.
- * Poll message kept across @shutdown/reboot. Suggested by [SW].
- * The military_time directive is removed from mush.cnf. It only
- affected the way time was shown in @idle/@haven/@away messages
- anyway. Reported by Angelus@M*U*S*H.
-
-Fixes:
- * help for lnum() and dig() improved. Leo@ATS TrekMUSH
- * help for @charges improved. Suggested by Scott Weber
- * @mvattr a/b=a/b would clear the attribute. No longer.
- Reported by Octavian@M*U*S*H
- * type(obj) would log a "WEIRD OBJECT" message if obj was
- a garbage object. Reported by RLM. [TAP]
- * Bug in deciding when to take a penny for queued commands fixed
- by Stephen Dennis.
- * Portability fixes for gcc 2.95.2 and other compilers who require
- that function pointers in prototypes include the function args.
- Reported by Gepht.
- * @chan/decomp should include the channel description, too.
- Report by David@M*U*S*H.
- * Two other ways to be inside an object inside yourself reported by
- Ashen-Shugar, and one by Rhysem@M*U*S*H.
- * Small memory leak when doing @cpattr of a standard attribute to a
- non-standard attribute is fixed.
- * Help clarification for pemit() suggested by Falor@M*U*S*H.
- * Help parents and @search3 fixed. Suggested by rodregis@M*U*S*H.
- * Tport_anything didn't allow teleporting things to exits.
- Noted by Vexon@M*U*S*H.
- * Z_TEL flag works on ZMO's as promised now. Report by [SW].
- * Potential crash in moveit fixed. Report by Howie@NF TrekMush
- * @cemit now does the checks that @chat does, in regard to being
- of the right type, allowed to speak, on the channel, etc.
- Suggested by Oleo@M*U*S*H.
- * getstring_noalloc was doing an fgetc into a char variable,
- instead of an int, so wasn't 8-bit clean. Report by Slava.
-
-Version 1.7.2 patchlevel 35 January 27, 2001
-
-Fixes:
- * Fixed a bug in filter introduced in p34. Report by Jason Rhodes.
- * Help for sort() now indicates that 'n' sorts integers. Report by
- Dave Milford.
-
-
-Version 1.7.2 patchlevel 34 October 2, 2000
-
-Fixes:
- * filter now looks at the whole result, not just the first
- character, when checking if the filter function returned '1'. [SW]
- * raw_input and raw_input_at are now unsigned char *, so
- they build right on HP/UX and similar. Report by Jeff Hildebrand
-
-
-Version 1.7.2 patchlevel 33 August 17, 2000
-
-Fixes (backported from 1.7.3p4):
- * Bug in con() patched.
- * Bug in deciding when to take a penny for queued commands fixed
- by Stephen Dennis.
- * Configure portability fixes
- * 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.
- * Various fixes to better resist crashing due to attacks involving
- overwhelming connections.
- * @mvattr a/b=a/b would clear the attribute. No longer.
- Reported by Octavian@M*U*S*H
- * type(obj) would log a "WEIRD OBJECT" message if obj was
- a garbage object. Reported by RLM. [TAP]
- * Small memory leak when doing @cpattr of a standard attribute to a
- non-standard attribute is fixed.
- * Tport_anything didn't allow teleporting things to exits.
- Noted by Vexon@M*U*S*H.
- * Z_TEL flag works on ZMO's as promised now. Report by [SW].
- * Potential crash in moveit fixed. Report by Howie@NF TrekMush
- * getstring_noalloc was doing an fgetc into a char variable,
- instead of an int, so wasn't 8-bit clean. Report by Slava.
-
-Version 1.7.2 patchlevel 32 April 17, 2000
-
-Fixes:
- * @cpattr from a non-standard attribute to a standard one
- didn't preserve the AF_STATIC flag, and a subsequent atr_clr
- could cause a crash.
-
-Version 1.7.2 patchlevel 31 April 9, 2000
-
-Minor Changes:
- * The SAY_TOKEN now applies to channels. That is, +public "Hi!
- will not result in a doubled initial quote any more.
- Suggested by Tyler Spivey.
-Fixes:
- * Uninitialized negate_perms in the monitor flag table.
- Report by Concordia@Beyond the Fire.
- * Updates to help changes to match CHANGES.
- * Another way to end up in an object in your inventory has been
- fixed. Report by Lensman.
- * Unused ancient ccflags cruft removed from hints files.
- * Considerable linting and cleanup. [SW]
- * MacOS portability improvements. [DW]
- * You may reset your @alias to itself in different case.
- Suggested by Bolt.
-
-Version 1.7.2 patchlevel 30 March 14, 2000
-
-Major Changes:
- * New US export rules allow us to include shs.c and funcrypt.c
- in the Penn distribution! Yay!
- * Code is included in bsd.c for Windows NT users that uses
- NT's native i/o instead of the bsd socket layer for
- much improved performance. If you want it, edit src/bsd.c
- and uncomment the define at the top. [NJG]
-Minor Changes:
- * New eplayer, eroom, eexit, eobject classes for searches,
- like Tiny. By Rhysem.
- * @sitelock/access.cnf can now use regexp patterns. By Raevnos.
- * The Exits() macro is replaced with Source(), Home(), etc.
- where sensible. By Maverick@M*U*S*H.
- * Example of bzip2 compression defines in mushcnf.dst by David@M*U*S*H.
- * shs.c can now be configured to reverse endianness, so you
- can more easily use win32 dbs on unix (or vice versa) without
- password hassles. This is in mush.cnf. [NJG]
- * JUMP_OK no longer allows anyone to @tel an exit into your room.
- You must control the destination or have the open_anywhere
- power in order to do this now. Report by rodregis.
-Fixes:
- * Calling do_log with LT_TRACE resulted in no logging. Report by David.
- * MacOS (and general) portability improvements, suggested by [DW]
- * help for before(), after() notes case-sensitivity. By Audumla.
- * hasflag() didn't work with MONITOR. Report by Mystery8.
- * A little more linting. [NJG]
- * Fixed help reference to 'global functions'. Report by Falor.
- * Some gmalloc fixes around missing newlines. Report by Raevnos
- * Improvements to help switch(). Report by Omozali.
- * Buffer overflow in @wall fixed. Report by rodregis.
- * Fixed (I think) the FreeBSD/Linux problem of not finding
- sigchld/sigcld and similar ilk. Hints for FreeBSD are back.
- * Crash bug in @link fixed. Report by Howie@New Frontier TrekMUSH
-
-Version 1.7.2 patchlevel 29 January 23, 2000
-
-Fixes:
- * src/sig.c didn't include config.h. As a result, some systems
- with sigaction that didn't keep signal handlers installed
- (some linuxes) would crash very quickly on the second SIGALRM.
-
-Version 1.7.2 patchlevel 28 January 14, 2000
-
-Minor Changes:
- * New 'deny_silent' option for access.cnf sites.
- Turns off logging of denied connection/creation/guest/register
- from a site, to prevent logfile spamming by twinks.
- Reported by Kludge-BC.
- * TFPREFIX attribute, if set, is used in place of FugueEdit>
- in @decomp/tf. [SW]
- * @grep/print no longer requires you to be set ANSI. Suggested
- by Philip Mak.
- * Improved reporting of function invocation limit. [TAP]
- * /noeval switch added to think command.
- * Changes to enhance portability to Mac 68k platform and others
- that need < 32k of local data per function. [DW]
- * Objects are only considered to be listening if they're
- connected players, puppets, have an @listen set, or
- are things/rooms with MONITOR flags. Previously, things/rooms
- with ^patterns in attributes were considered listeners, even if
- they weren't MONITOR. Suggested by Luke.
-Fixes:
- * gmalloc.c updated from 1987 version to 1995 version. By Gepht.
- * help corrections for shl and shr by Vexon@M*U*S*H.
- * help corrections for @clock by Krad@M*U*S*H.
- * RLIMIT_NOFILE bug fixed by Susan Thorne.
- * Eliminated variables named 'new' to promote easier C++
- compiles. Suggested by Gepht.
- * Compiling with CSRI_TRACE works again. [TAP]
- * signal stuff broken out to src/sig.c to allow link w/info_slave.
- * strcasecmp and friends prototyped better in externs.h. [DW]
- * Overzealous test for inherit flag on zoned objects corrected
- by Nveid.
- * Clearing an @attribute'd attribute's value on some object
- and later manipulating the attribute could corrupt the
- @attribute table in some cases. Fix suggested by Kami@SW2.
- * Nested pemits could truncate one another. Reported by Alierak.
- * Channel messages didn't correctly set %#. Reported by Saberwind.
- * info_slave used ident even if use_ident was off in the
- mush.cnf file. Reported by Rhysem.
-
-Version 1.7.2 patchlevel 27 September 22, 1999
-
-Minor Changes:
- * Added Raevnos's sitelock/name patch to allow removing names
- with @sitelock/name !<name> and to fix a display bug.
- * bsd.c, info_slave.c, and player.c now deal in IP addresses as well
- as hostnames (which can be spoofed), providing more reliable logging
- and access control. IP addresses are stored in the LASTIP attrib
- on players, as per LASTSITE. Suggested by David@M*U*S*H.
- * Hidden connections are announced as per DARK ones. Suggested
- by Julianna@ATS.
- * New /noisy switch to @cemit prepends <Channel> to message.
- Suggested by Spork@M*U*S*H.
-Fixes:
- * help vmul() incorrectly defined the dot product (which vdot() does).
- Reported by [SW].
- * Typo fixed in help @set3. Reported by Logain@ATS
- * Typo fixed in help @emit. Reported by Rhysem@M*U*S*H.
- * Various help fixes by mith, Big Spoon, and Krad@M*U*S*H.
- * @function now works for mortals as the help indicates. Report by mith.
- * @log/wipe should be @logwipe in comments in mushcnf.dst.
- Report by Spork@M*U*S*H.
- * Object names are now limited to 256 characters. Fixes some
- buffer overflow issues.
-
-Version 1.7.2 patchlevel 26 July 18, 1999
-
-Minor changes:
- * @verb didn't save stack args before dealing with the WHAT/OWHAT
- msgs, as TinyMUSH does. Changed to emulate TinyMUSH.
- Reported by Angel. [SW]
-Fixes:
- * The noeval-eqsplit fix cause weirdness with attribute setting by
- directly connected players when specifying the obj by function.
- Fixed. Reported by Julienna@ATS.
- * Wizards couldn't modify atrlock'd attribs without breaking the
- lock first. [SW]
- * @find by Wizards showed all garbage objects. Reported by mith.
-
-
-Version 1.7.2 patchlevel 25 July 10, 1999
-
-Minor changes:
- * New 'nofixed' command restriction, by popular demand.
- * CONFIGURATION messages in netmush.log shortened to CONFIG.
- Suggested by mith.
- * Attributes with the Wizard flag can no longer by created/modified
- by any non-wizard, even that attribute's owner. Reported by
- Kurt Fitzner.
- * @pcreate now shows the dbref of created player. Suggested by
- Oderus.
- * When you receive an @mail message, you're now told the number.
- Suggested by Rak@M*U*S*H, among others.
- * The @toad command has been removed. The security issues it
- presents, though not unsolvable, aren't worth solving just to
- provide Wizards with a humiliating alternative to @newpassword.
-Fixes:
- * %q0-%q9 were not preserved during evaluation of player-message
- attributes (DESC, SUCC, DROP, etc.) Reported by Geoff Gerrietts
- * Added some hints from FreeBSD. Suggested by Lord Argon of mux.net.
- * Better Configure handling of library paths.
- * 'nogagged' wasn't working correctly in restrict_command. Fixed.
- * @search on rooms sometimes reported a null room. Reported by mith.
- * Nearly all source files now include conf.h (which includes options.h),
- and do so before any other PennMUSH header file except config.h
- and copyrite.h. Suggested by Joel Ricketts.
- * Fixed a few comparisons of <= db_top. Reported by Kurt Fitzner.
- * @oemit <obj>=<message> was emitting to the enactor's location,
- rather than to <obj>'s location, as it should have been. Fixed that
- and fixed help oemit() which documented this wrong behavior.
- Reported by Kurt Fitzner.
- * An 8-bit-unclean construction in bsd.c fixed by Christoper/Chicago.
- * p/noeval <message> (repaging) eval'd message anyway.
- * Args to $commands that looked like functions were being eval'd
- even if not in brackets. Reported by [SW]. [TAP]
- * @lock/listen could cause weird pose corruption. Reported by
- David@M*U*S*H. [SW]
- * Clarification of wiz_noenter in mush.cnf suggested by
- Interloper@M*U*S*H.
- * Bug in orflags/andflags could cause weird results with toggles.
- Like nospoof players tested positive for 'J'. Reported by Saberwind.
- * Bug in make customize fixed. Reported by Saberwind.
- * References to a PASSWORD attribute removed from help. Reported by
- Saberwind.
- * Fixed db_top bug in search/lsearch reported by Saberwind.
- * @halt code was screwy. Reported by Krad@M*U*S*H
- * Wizards could grant @powers to God. Reported by Saberwind.
- * delete() with negative position arg could crash. Reported by
- Ashen-Shugar.
- * @clone of an exit while inside an object could have unpredictable
- effects. Reported by Andy@RobotechMUSH
- * Typo in help aposs() fixed. Reported by Philip Mak.
- * @hide now defaults to @hide/on. Reported by Saberwind.
- * ldelete() added help list functions. Reported by Rak@M*U*S*H
- * @attribute/rename didn't update the attribute's name quite right.
- Reported by mith.
- * @clone by a room didn't properly set the cloned object's location.
- Reported by Philip Mak.
-
-Version 1.7.2 patchlevel 24 April 5, 1999
-
-Fixes:
- * @search/lsearch didn't behave right when given an upper range
- argument of exactly the highest dbref in the db. Reported by
- [SW].
- * Unlinked and HOME-linked exits were mishandled during dbcks,
- just like variably-linked ones in pl23. Reported by [SW].
- * Help fixes. [TAP]
-
-
-Version 1.7.2 patchlevel 23 April 2, 1999
-
-Fixes:
- * The NoLeave() macro was misdefined, but also not used (whew).
- Now it's defined right and used.
- * Giving a / without a switch to commands caused unpredictable
- behavior. Fixed. Report by Broncalo@Dune III.
- * Variable-linked exits were mishandled during dbcks, resulting in
- them being relinked to their source rooms.
- * @grep/iprint showed the hilighted matches in the same case as
- the pattern was given, rather than the case there were in the
- attribute. Reported by Philip Mak.
- * The LAST attribute was set differently when players created and
- when the later connected. The latter case wasn't appropriately
- prepending single-digit dates with a 0, which fouls up convtime()
- calls on LAST. Noted by [SW].
-
-
-Version 1.7.2 patchlevel 22 March 19, 1999
-
-Minor changes:
- * More extensive macro cleanup, based on a patch by David@M*U*S*H
- * Notable for your own code: Inherit() is now Inheritable(),
- DarkLegal() checks if something's ok to be invisible when it's DARK,
- Destroyed() is now IsGarbage(), and some other new helpful macros
- can be found in hdrs/dbdefs.h
- * Objects now store their creation cost, not their 'value' (which
- used to be cost/5 - 1, and had relevance for sacrificing, a now
- obsolete concept). There is no longer a limit on how much you
- can spend to create an object, and it's all refunded when the
- object is recycled. Reported by David@M*U*S*H.
-
-Fixes:
- * Two memory leaks and one unbalanced mem_check fixed. [SW]
- * @oemit <room>/<object> was broken in many ways.
- Reported by [SW].
- * Help @drop/@odrop/@adrop updated to mention use on exits.
- Suggested by Stewart Evans.
- * God using @logwipe and giving the wrong password crashed the MUSH.
- [SW]
- * search() was behaving as lsearchr() not lsearch(). Noted by
- KMoon.
- * Bad range arguments for @search and lsearch() now give an
- error message and don't charge the player. [SW].
- * Help @search3 had a typo. Fixed by Halatir@M*U*S*H.
- * Restricting the 'goto' command now also restricts movement
- through exits. Suggested by Christopher Poff.
- * Objects and rooms now notify their contents when they start/stop
- listening. Report by [RLM].
- * Error in help for @channel referring to @config. Krad@M*U*S*H
-
-
-Version 1.7.2 patchlevel 21 February 16, 1999
-
-Minor changes:
- * The restart script now tries to determine its own directory,
- so it may not require editing to set GAMEDIR any more.
- Idea by David@M*U*S*H.
- * Various @find/@search/@entrances commands charged you the
- FIND_COST even if you didn't have permission to run the command.
- We don't do that any more. Report by Jonathan Booth.
- * $command and ^listen pattern matching is now case-insensitive
- even when the attrib is set REGEXP, unless the attrib is set
- CASE. In the past, glob matching was case-insensitive and
- regexp matching was case-sensitive, which cause problems if
- you tried to regexp match a disabled standard command.
- Now you've got full flexibility. This may break any current
- regexp-based $command or ^listen matching that relies on
- case sensitivity (set those attributes CASE). We now also
- have a new insensitive regmatch function: regmatchi()
- Report by Jonathan Booth.
-
-Fixes:
- * Anyone could @chan/priv channels, even if they didn't pass
- the modlock. Report by David@M*U*S*H.
- * DARK disconnects are now shown correctly on chat channels.
- Really this time. :) Report by Broncalo@Dune III
- * help for CONNECTED flag updated. Report by matcat@M*U*S*H
- * Using @kick within a user-defined command could crash the MUSH.
- Reported by Kludge-BC. [TAP]
-
-
-Version 1.7.2 patchlevel 20 January 26, 1999
-
-Minor changes:
- * Many expression replaced with macros by David@M*U*S*H.
-Fixes:
- * @mail/silent/urgent didn't set the message urgent.
- Patch by Halatir@M*U*S*H.
- * You could get free coins by repeatedly killing your objects.
- Reported by Max@M*U*S*H. [TAP]
- * You could rename a channel to a name already in use.
- Reported by David@M*U*S*H.
-
-
-Version 1.7.2 patchlevel 19 December 2, 1998
-
-Minor changes:
- * The main select() polling loop now times out every second,
- so we will reliably call local_timer() and handle alarms
- every second. Suggested by [NJG].
- * 'make' now performs a make in game/txt, assuring that help
- indices are rebuilt after a patch. Suggested by Broncalo@Dune III.
-
-Fixes:
- * Crash in using @cpattr with standard attribs fixed.
- Reported by Atuarre@ATS.
-
-
-Version 1.7.2 patchlevel 18 November 25, 1998
-
-Minor changes:
- * Guest players don't receive a paycheck any more. Suggested by
- Kyieren@M*U*S*H
- * look_helper() internal function now uses privtabs. As an
- epiphenomenon, @set obj/attr=locked is now synonymous to
- @atrlock obj/attr=on. Suggested by [SW].
-
-Fixes:
- * Win32 compile fixes. [NJG]
- * DARK disconnects are now shown correctly on chat channels.
- Report by Broncalo@Dune III
- * Quiet players no longer see 'Title set.' messages when
- using @chan/title. Patch by Halatir@M*U*S*H.
- * @cpattr/@mvattr now copy attribute flags. Report by Jon Booth.
- * Some compiler warnings fixed by Atuarre.
- * The 1 and 5 minute dump warning messages weren't being used.
- * When matching regexp's, later parenthesized subexpressions
- weren't correctly assigned to %-vars when earlier ones
- were empty. Report by Geoff Gerrietts. [TAP]
- * Some messages as a result of looking at a room were being
- placed onto the wrong queue, so remote viewers (@listen *,
- @pemit/remit to somewhere) would get things out of order.
- Reported by David@M*U*S*H.
- * Help added for functions() and fixed for timestring().
- Report by Geoff Gerrietts.
- * soundex() misbehavior for very short words fixed.
- Report by kmoon.
- * @attribute/access acted as if it were always /retroactive. [SW]
- * Changes of flags on a standard attribute were lost across
- restarts. Reported by [SW].
- * lcstr, ucstr, capstr, and encrypt and decrypt in the
- "real" funcrypt.c are now ansi-aware. The former 3 preserve
- ansi formatting, while the latter two strip it. You must download
- a new version of funcrypt.c from ftp.pennmush.org (USA/Canada)
- or export.pennmush.org -- it is not patched herein.
- Reported by Ashen-Shugar.
-
-
-Version 1.7.2 patchlevel 17 November 11, 1998
-
-Minor changes:
- * Newly created players now have a default uselock of =me.
- * Number of available file descriptors is printed in startup log.
- Suggested by Doogie@ATS Trekmush.
- * The @chat/@cemit commands can no longer be used by gagged players.
-
-Fixes:
- * Adding functions in funlocal.c shouldn't produce compiler warnings.
- Patch by Halatir@M*U*S*H
- * log(0) or ln(0) could crash non-IEEE compliant math libraries.
- Reported by Drakwil and Talos at SNW.
- * csrimalloc wouldn't compile with glibc. Fix by Mike Selewski.
- * Order of checks for number of file descriptors changed to
- do better on POSIX and hybrid systems like FreeBSD. Suggested by
- Doogie@ATS Trekmush.
-
-
-Version 1.7.2 patchlevel 16 October 17, 1998
-
-Fixes:
- * table() could be used to crash the MUSH. Report by Ashen-Shugar. [TAP]
- * whisper/list didn't work. Report by Kamala@ATS TrekMUSH, via
- Mikey@M*U*S*H
- * andflags(player,C) checked for the (useless) CHOWN_OK flag
- rather than the COLOR flag. Its now been special-cased to
- check COLOR on players. This is a kludge, but probably worth it.
- * Top of admin WHO now lists 'Loc #' not 'Room #', as that's more
- accurate. Suggested by Saberwind.
- * @log/wipe returns as @logwipe. Its absence was reported by
- Nveid@M*U*S*H.
- * Date in hdrs/version.h now y2k compliant.
-
-
-Version 1.7.2 patchlevel 15 September 7, 1998
-
-Fixes:
- * @emits weren't propagated through AUDIBLE exits. Report by Nammyung.
- * Building w/o ROYALTY_FLAG defined works again. Report by Scott Weber.
- * When matching $ or ^ patterns with the REGEXP attribute flag set,
- a failed match would then be improperly checked for normal
- matching as well. Reported by Jason Rhodes.
- * Attribute flags weren't listed in @decomp. Reported by
- Jonathan Booth.
- * Make customize never got updated to match the new mushcnf/restart
- system. Now it has. Reported by Manic@FinalFrontier
- * @edit now works on attribs starting with _. Reported by Jason Rhodes.
- * Help files should work better on Win32. Reported by Miphon. [TAP]
-
-
-Version 1.7.2 patchlevel 14 August 4, 1998
-
-Minor Changes:
- * You may @parent to an object you control via ZMO, even if you
- don't own it. Patch by Halatir@M*U*S*H
- * In lsearch() and @search, you may refer to object types
- in either the singular (ROOM) or plural (ROOMS).
- * Most chat messages now include the name of the channel.
- Suggested by Philip Mak.
-
-Fixes:
- * Long @chat messages crashed the server. Reported first by Rusty
- and Siris@M*U*S*H. [TN]
- * Setting the ZONE flag on a non-zonelocked player should give
- a warning, and wasn't. Reported by Halatir@M*U*S*H
- * @@ was parsing its argument. No longer. [RLM]
- * The @config listing was weird w.r.t. compression. [TN]
- * @shutdown/reboot could cause a crash if a player had an
- OUTPUTPREFIX or OUTPUTSUFFIX set.
- * Hint to linux users about undefining I_MALLOC when using
- gmalloc. Reported by Kyle Forbes.
- * @shutdown/reboot now calls local_shutdown(). Reported by Kyle Forbes.
- * When loading a db in which an object with dbref n has attributes
- owned by players with dbrefs > n, the attribute ownership was
- reset to GOD. This should no longer happen unless the owner
- really is invalid. Most recently noted by [SW].
- * Exits that have contents (corrupt!) are fixed up in dbck.
- * dbck is run whenever the db is loaded.
- * objeval() help fixed. Reported by Yeechi Chen.
- * Compiling without ROYALTY_FLAG defined was broken. Reported by
- Scott Weber.
- * Sufficiently tricky use of locks could cause a crash due to
- massive function invocation or recursion. Reported by Atuarre. [TN]
-
-
-Version 1.7.2 patchlevel 13 July 7, 1998
-
-Minor changes:
- * @mail/file now shows the folder name of the destination folder
- as well as its number. Suggested by Julianna@ATS TrekMUSH
-
-Fixes:
- * Problems with ANSI causing Pueblo to bleed have been identified
- and fixed!
- * Bug with cwho() fixed. Report by Tripsis@M*U*S*H. [TAP]
- * 'make diffs' in Makefile updated to use prcs and to produce
- diffs for patches without Index: lines which may confuse
- non-POSIX versions of patch.
- * Fixed typo in options.h reported by Kyle Forbes.
- * Comments in src/services.c and src/filecopy.c are now C-style,
- not C++ style. Some compilers were puking on these, even though
- WIN32 wasn't defined and the preprocessor should've ignored this
- stuff. Go figure.
- * Side-effect functions like pemit() didn't obey the restrictions
- on the corresponding command (like @pemit), and setting attributes
- with @set could get around restrictions on ATTRIB_SET.
- Reported by Scott Weber. [TAP]
- * Help for t() and elock() clarified by Octavian@M*U*S*H.
- * next() could be used on an object in a room that the player
- didn't control to get the room inventory. Reported by Octavian@M*U*S*H
- * hint/aux.sh has been renamed hints/a-u-x.sh. This means it won't
- be properly recommended by Configure on A/UX systems, but Win32
- programs often puke on files name 'aux.*' because they're braindead,
- and there are lots more Win32 users than A/UX users. Bummer.
- * When A was inside B, and @listen B=*, A would hear everything
- in B's room (good) except B's own speech (bad). Report by
- Nemesis @ Beast Wars 2
- * help exits clarified by Nammyung@M*U*S*H
- * help comp() clarified by Halatir@M*U*S*H
- * @squota without a limit now shows the victim's quota in addition
- to asking what it should be set to. This more closely matches
- the old behavior of @squota without a limit being treated as
- @quota. Reported by Matt@M*U*S*H
- * @chan/what on a nonexistent channel didn't produce any
- feedback. Reported by Octavian@M*U*S*H.
- * Typo in help zone master rooms corrected. Report by Matt@M*U*S*H.
-
-
-Version 1.7.2 patchlevel 12 June 11, 1998
-
-Fixes:
- * GAGGED players could pose/semipose. Reported by Jorhan@M*U*S*H. [TN]
- * convsecs() help clarified.
- * @decomp obj/attr didn't work if you couldn't examine the object
- even if the attribute was visible. Reported by Jonathan Booth.
- * make customize had a problem with the way it handled the
- hlp directory. It now creates a real hlp directory, but makes
- all the standard hlp files symlinks to the distributed ones.
- (It used to make the hlp/ directory a symlink, which did bad
- things with 'txt/Makefile'. Report by Gasparin Balazs.
- * help control rewritten to clarify the real algorithm.
- Suggested by [SW].
- * Configure is more flexible when determining if you're
- building under cygwin. Reported by Miphon.
- * zfun() worked, but gave an error message anyway. Fix by Rob@DuneIII
- * hdrs/regexp.h renamed to hdrs/myregexp.h to avoid conflict
- with standard regexp.h header file in cygwin.
- * Roy/see_all players could, under some circumstances, evaluate
- functions with wiz privileges. Reported by Atuarre. [TAP]
-
-
-Version 1.7.2 patchlevel 11 May 25, 1998
-
-Changes:
- * The PennMUSH copyright notice has been changed, as the
- licensing terms for TinyMUD/TinyMUSH 2.0 have changed,
- and to update the TinyMUSH 2.2 part of the copyright and
- the PennMUSH part as well. 'help copyright' now gives the
- copyright, and it's in COPYRITE and hdrs/copyrite.h.
- The licensing terms are now shorter, but practically very similar.
-
-Fixes:
- * Possible infinite loop (with disk-filling output!) in @dbck
- with certain types of DB corruption fixed. Report by RLM and
- Arathorn@CDI. [TAP]
- * @undest intermittent crash-bug fixed. Report by Arathorn. [TAP]
- * regmatch() crash-bug fixed. Report by Tavoan@ATS. [TAP]
- * Ansi bleeding problem fixed. Report by Atuarre@ATS. [TAP]
- * The embedded version of mkindx used by Win32 builds had a bug -
- some global variables weren't getting properly reset.
- Fix by Stephane Thibault.
- * Help for @oxmove added. Report by Bray Roned@ATS.
- * isnum() was broken if tinymath was defined. Report by Daniel Peters.
- * portmsg needed MUSH_IP_ADDR, which is now runtime configured.
- It no longer does (see comment in portmsg.c if you need this
- functionality). Report by Daniel Peters.
- * Help for dig() and lnum() clarified by Andre Leopold.
-
-
-Version 1.7.2 patchlevel 10 April 24, 1998
-
-Fixes:
- * MANIFEST updated to reflect the deletion of src/nmalloc.c
-
-
-Version 1.7.2 patchlevel 9 April 21, 1998
-
-Fixes:
- * Myopic flag didn't work unless Pueblo support was on. Reported by
- Rhysem@M*U*S*H.
- * help debug referred to can_debug, a now-obsolete power.
- Reported by Rodimus Prime @ TF2005.
- * @chown to a Zone Master didn't work. The @chown code has been
- rewritten to be easier to read. Report by Trispis@M*U*S*H.
- * open_anywhere was mis-listed in help powers2. Report by Trispis.
- * nmalloc.c is removed, and Win32 compiles should be a bit easier.
- * Win32 build no longer limited to 64 sockets; 256 instead. [NJG]
-
-
-Version 1.7.2 patchlevel 8 April 2, 1998
-
-Fixes:
- * round() could crash on very big numbers on some systems.
- Reported by Atuarre@ATS.
- * Problem with exits getting a contents list in certain
- conditions fixed. Reported by Atuarre@ATS. [TAP]
- * Problems with puppets and Pueblo fixed. Report by Mop-Boy.
- * mkindx problem with dos text files fixed. [NJG]
- * Order of include files in htab.c was wrong, caused compilation
- problems on SCO Openserver. Reported by Flame.
- * On Win32, the MUSH could quit without flushing its buffers. [NJG]
- * When inside of an object with @listen *, you didn't see things
- when the object did a 'look'. Reported by Vedui.
- * Warnings in rwho.c eliminated. [NJG]
- * More fooling around with mymalloc.h to help the Win32 compile.
- Suggested by NJG.
- * open_everywhere power get left off help powers list at some point.
- Reported by Steven@Champions.
- * Error message for joining a non-existant channel was different
- from that for joining a channel that exists but you can't
- see. Reported by Octavian@M*U*S*H.
- * get()'ing an attribute that isn't set now returns an error
- message only if the default permissions don't allow you to
- get it. This allows get(player/ALIAS) to always work, returning
- an empty string if the player has no ALIAS. [TAP].
- * base_room mush.cnf option got left out.
- * dbck didn't check for disconnected rooms correctly. Noted by
- Rhysem.
-
-
-Version 1.7.2 patchlevel 7 March 10, 1998
-
-Fixes:
- * Typo fixed in pennflag.hlp. Report by Keith Howell.
- * Bug in mid() that could cause crashes on some OS's when using
- bad arguments fixed. Report by Yanek@DragonStarMUSH. [TAP]
- * @wait obj=command fails when tiny_math is defined. Report by Yanek.
- * With tiny_math defined and tiny_booleans not defined,
- strings in booleans weren't being treated as 1. Report by Yanek.
- * @decompile now shows @powers, too. Report by Jonathan Booth.
-
-
-Version 1.7.2 patchlevel 6 March 8, 1998
-
-Fixes:
- * src/mymalloc.c now includes config.h correctly. [NJG]
- * @zemit would change zones of objects while running.
- Report by Steve Sanderlin and Vedui.
- * Minor cosmetic bug in @config/list. Reported by Mike Wesson
- * @chown'ing an object to a Zone player doesn't reduce the Zone
- player's quota, but @chown'ing an object back from a Zone player
- should reduce yours (and didn't). Report by Vedui.
-
-
-Version 1.7.2 patchlevel 5 March 2, 1998
-
-Fixes:
- * @cloning an object on a channel could crash the MUSH. Report by
- Mordak@ATS.
- * You couldn't add 2 objects with the same name to a channel.
- Report by Mordak@ATS.
- * Help for inc() fixed. Brian@M*U*S*H
- * On Win32, the text file indexes are now properly sorted,
- and things work ok if you don't have a text file defined. [NJG]
- * Wiz objects couldn't add players to channels. Report by Mike@M*U*S*H
- * Compile problem with fork and win32 fixed. [TAP]
- * You shouldn't get nospoof notification from your own emits. [TN]
- * You no longer get nospoof notification from every @chat, only
- from @cemit.
- * @lock obj=here or @lock obj=exit failed. Report by Luke@M*U*S*H
- * The MUSH announces where it's sending stderr when it starts up. [NJG]
- * If there was nothing on the queue, and no user activity,
- the MUSH could wait as long as 999 seconds before checking to
- see if it should do anything (like a dump, a shutdown, idling
- someone out, etc.) This has been changed to 5 seconds.
- Report by NJG.
- * Encryption buffer for SHS encryption was too small, could cause
- password problems. [NJG]
-
-
-Version 1.7.2 patchlevel 4 February 24, 1998
-
-Fixes:
- * Fixed a few more compiler warnings under Win32. [NJG]
- * Output to a non-ANSI, non-COLOR player could cause crashes.
- Reported by Vedui.
-
-
-Version 1.7.2 patchlevel 3 February 22, 1998
-
-Fixes
- * Fixed a slew of compiler warnings under Win32. [NJG]
- * Jonathan Booth Removed a few #ifdef EVENTS that lingered.
- * Room names weren't shown bold to people who had ANSI
- but not COLOR set. Report by Sylvia
- * Added help alias pueblo() for pueblo. Suggested by Vedui.
- * Fixed some problems with ansi() and tf reported by Vedui.
- * @readcache could cause crashes. First report by Mop-Boy.
- * src/tcl.c is now better located by Configure. [TN]
-
-
-Version 1.7.2 patchlevel 2 February 19, 1998
-
-Fixes:
- * Reading of compressed dbs didn't work right. Report by Roger Christie
- * Fix to help to remove reference to @config/globals. Mordak@ATS.
-
-
-Version 1.7.2 patchlevel 1 February 18, 1998
-
-Fixes:
- * max_dbref was limited to 256 by mistake. Report by Rhysem@M*U*S*H
- * restricted_building in mush.cnf didn't work. Does now.
- Report by Rhysem@M*U*S*H
- * memchecks for hash tables didn't work right. Report by [SW]
-
-
-Version 1.7.2 patchlevel 0 February 9, 1998
-
-Major Changes:
- * Support for the Pueblo MUD client (http://www.chaco.com/pueblo)
- which allows the MUSH to send html to the client. This is
- runtime configurable with @enable/@disable and mush.cnf. [TN]
- * Regular expression support: the REGEXP attribute flag causes
- attributes to match $ and ^ patterns using regular expressions.
- regmatch() matches regular expressions. [2.2]
- * PennMUSH tarfile now unpacks itself in a pennmush/ directory,
- by popular request. pennmush/ is now the 'top-level' directory;
- patches should still be applied from within the pennmush/ directory.
- * More compile-time options are now run-time options:
- HASPOWER_RESTRICTED, SAFER_UFUN, DUMP_WARNINGS,
- INDEX_COMMAND, RULES_COMMAND, HATE_DEST (general command rename?),
- NOISY_WHISPER, POSSESSIVE_GET POSSGET_ON_DISCONNECTED,
- REALLY_SAFE, DESTROY_POSSESSIONS, NULL_EQ_ZERO,
- TINY22_BOOLEANS, TINY_TRIM_ORDER,
- ADEST_ATTRIB, AMAIL, PLAYER_LISTEN, PLAYER_NOAHEAR,
- ROOM_CONNECTS, ANSI_NAMES, COMMA_EXIT_LIST, COUNT_ALL,
- EXITS_CONNECT_ROOMS, WIZWALL_PREFIX, RWALL_PREFIX, WALL_PREFIX,
- NO_LINK_TO_OBJECT, QUEUE_PER_OWNER, WIZ_NOAENTER, USE_IDENT,
- MUSH_IP_ADDR, MAILER, ANSI_JUSTIFY, PLAYER_NAME_SPACES,
- NO_FORK, EVENTS, MILITARY_TIME, LOGIN_LIMIT, IDLE_TIMEOUT,
- RESTRICTED_BUILDING, FREE_OBJECTS, QUOTA, BUILDING_LIMIT,
- FLAGS_ON_EXAMINE, EX_PUBLIC_ATTRIBS, TINY_ATTRS, FULL_INVIS,
- SILENT_PEMIT, PLAYER_LOCATE, DO_GLOBALS, GLOBAL_CONNECTS,
- PARANOID_NOSPOOF, ACCESS_FILE, NAMES_FILE, OBJECT_COST,
- EXIT_COST, LINK_COST, ROOM_COST, QUEUE_COST, QUOTA_COST,
- FIND_COST, PAGE_COST, KILL_BASE_COST, KILL_MIN_COST, KILL_BONUS,
- QUEUE_LOSS, DBTOP_MAX, MAX_OBJECT_ENDOWMENT,
- MAX_WIZ_OBJECT_ENDOWMENT, MAX_PENNIES, MAX_DEPTH, MAX_PARENTS,
- PURGE_INTERVAL, DBCK_INTERVAL.
- * All the functions that used to be optional are now
- enabled. The increase in code size is negligible, and
- the decrase in options is a win. We'll probably add
- some way to restrict function use in mush.cnf in the future.
- * The original MUSH chat system is no longer distributed or
- supported. The OBJECT_CHAT option is thus obsolete.
- If you've been using the old system, your db will automatically
- be converted to the new one, but you will need to recreate
- your channels and readd players to them.
- * ADD_NO_COMMAND_FLAG has been removed, as few people need
- to add NO_COMMAND en masse to all their rooms and players
- any more. Those that do can use MUSHcode for this.
- * The definitions of GOD, MAX_ARG, have been moved out of options.h,
- because redefining these isn't really an option you want to exercise.
- * dune.h is no more. Raise a glass to it.
- * Non-standard attributes that are created by objects are set to
- no_command by default. This improves security in many common cases,
- but may require your object code to @set the attribute !no_command
- after it creates it, if the attribute is meant to contain
- a $command. Attributes set by players themselves (typed directly
- from a socket) still work as they used to, as do standard
- attributes (@va-@vz, for example). [TN]
- * Hash table code has been tightened up. [TN]
- * New option: tiny_math. Treat strings as 0 in math functions
- rather than errors. This is handy for Tinymush compatibility,
- even though it may make real errors harder to find.
- Suggested by Ashen Shugar.
-
-Minor Changes:
- * idlesecs() now returns the number of seconds idle for the least
- idle connection of the player.
- * conn() now returns number of seconds connected for the longest
- connected connection of the player.
- * I wrote the COPYRITE file some time ago, but forgot to include
- it in the dist. Oops!
- * UFAIL/OUFAIL/AUFAIL is here. Suggested by Mike Affourtit.
- * controls() is now ok if you are See_All; you don't need to
- actually control the object you're testing. Reported by RLM.
- * If you're allowing empty attributes, ICLOC is set to ""
- on newly created players, instead of " ", to permit testing
- with hasattrval. Suggested by Jonathan Booth. [TN]
- * Improvements to FPE handling on FreeBSD. By Jason Young.
- * New switch /noeval for @mail. Suggested by Mop Boy.
- * The "dbcomp" directive in mush.cnf has been removed.
- "compress_suffix" has been added. Databases are now specified
- without compression suffixes.
- * You are warned if you fail to define an option in the config file.
- Suggested by TN.
- * @config can now list config options in logical groups.
- * mail.c has been removed. extmail.c is used directly instead.
-
-Fixes:
- * hasattr/get/xget/eval now are less likely to tell a player something
- they're not privileged to know about the existence of attributes. [TN]
- * The big_que function has been renamed parse_que. The parse_que
- function (which just called big_que) is gone.
- * FAQ updated, as well as other references to pennmush.tinymush.org.
- * Giving a negative argument to convsecs() would crash Win32.
- As there's no reason to ever do that, you now can't.
- Reported by Javin@DynamixMUSH
- * dist2d and dist3d now return floating point numbers when
- FLOATING_POINTS is defined, as they said they would.
- * help for pi() now refers to it as 3.141593, which is what
- the function actually produces, due to rounding. Report by Vedui.
- * help for beep() notes that royalty can use it to. Report by Vedui.
- * Using a maildb that referred to db#s that didn't exist
- in the object db (e.g., replacing your object db with minimal.db
- without removing the maildb) would crash the server.
- Now the server fixes up invalid messages after loading maildb
- Report by TN.
- * Connect screen and other cached text files should now be
- automatically terminated with CRLF, so windows and other
- telnet programs will see them correctly. Report by many. [TN]
- * The separator in iter() is now parsed. Report by Ashen-Shugar.
- * match(foo,>) always returned 1; similar problems with matchall,
- grab, graball, strmatch, and elements. Report by Ashen-Shugar.
- * Objects listening for channel broadcasts with ^<chan> *: didn't
- work. Now they do.
- * When you disabled a command in order to override it in MUSHcode,
- calling the command with switches didn't work.
- Reported by Ben Kenobi. Patch by Eyal Sagi and TN.
- * Calls to cut in utils/mkcmds.sh relied on "-f 2" working like
- "-f2". On at least Ultrix 4.4, it doesn't. Report by Cwilla.
- * Link strdup.o to info_slave because some systems need
- strdup! Report by Cwilla.
- * Some help file typos cleaned up by Ken Ray.
- * exit() used to work on non-rooms. Not anymore. Report by
- Trispis@MUSH101
- * All header files now idempotent.
- * @tel me=home or @tel home now works in all cases where 'home'
- works. Report by Vedui.
-
-Version 1.7.1 patchlevel 3 January 12, 1998
-
-Minor Changes:
- * A file called MANIFEST is now distributed. Configure uses this.
- Don't mess with it unless you know what you're doing.
- * An additional note for those upgrading from versions before
- 1.7.0p9, describing an anomaly with player parents and how
- to handle it has been added to README. Report by Roger Christie.
-
-Fixes:
- * controls() now requires that the function caller control
- the object named in the first argument. Suggested by TN.
- * Player parents were being cleared at every login.
- Fixed by Jonathan Booth.
- * effect should be affect in game/txt/newuser.txt.
- Reported by Jason Young.
- * hints file for OS/2 now included. Suggestions by Sylvia.
- * FNDELAY changed to O_NDELAY in ident.c. Suggested by Sylvia.
- * Minor change to time_format_1 to make 64bit SGI happier.
- By Thaddeus Parkinson.
- * Help for inc()/dec() improved. Suggested by Jonathan Booth.
-
-
-Version 1.7.1 patchlevel 2 January 5, 1998
-
-Fixes:
- * References to TinyMUSH in the .txt files are now PennMUSH.
- Reported by Corum.
- * It was possible to use @name to create players with the same
- name. Ick. Reported by Sylvia.
- * utils/mkcmds.sh now produces a preindented switchinc.c,
- to match the one that gets diffed in patches. [TAP]
-
-
-Version 1.7.1 patchlevel 1 December 29, 1997
-
-Fixes:
- * table() now behaves with ANSI_JUSTIFY. Reported by Jonathan Booth.
- * ident.c was defining strdup; so was strutil.c. Now only
- strutil.c does. Reported by Matt Philips. [TAP]
- * Bug in restart script fixed. [TAP]
- * shs.h patched to autoconfigure endianness. Reported by TN.
- * shs.h fixed to be idempotent. [TAP]
- * shs.h is now distributed with PennMUSH. You still have to get
- shs.c from export.pennmush.org if you want it.
- * README now refers to lists.pennmush.org. [TN]
- * We no longer recommend setting use_dns to no on win32 systems.
- It seems to work fine as yes.
-
-
-Version 1.7.1 patchlevel 0 December 21, 1997
-
-Major Changes:
- * It is no longer necessary to edit src/Makefile when building.
- RWHO is now integrated, and totally runtime configured in mush.cnf.
- IDENT is now configured from dune.h. The IDENT/ and RWHO/
- directories are no more.
- * The win32 build now requires the gnu-win32 package
- (available at XXX). It can be built either with MSVC++
- or the free win32 version of gcc included with gnu-win32.
- The build is better integrated into the distribution --
- the win32/ directory is no more. [TAP]
- * You can now build with one of 3 password-encryption schemes:
- None, Unix (des) crypt(3), and shs (requires getting shs from
- export.pennmush.org). This will be useful to folks who're using
- shs encryption on Win32 platforms and then move their db to
- a Unix platform -- they can just use shs under Unix and all's well.
- This is set as CRYPT_SYSTEM in options.h
- * @log/wipe used to require entering the game account password,
- but that's non-portable. Instead, a "log_wipe_passwd" is now
- specified in mush.cnf.
- * README rewritten [TAP]
-
-Minor Changes:
- * @lock/drop on a room now controls who can drop things in the room.
- * "configure" (lower-case 'c'), a wrapper for Configure that used
- to be included is no longer. Few used it, and it can screw up
- win32 systems that aren't case-sensitive.
-
-Fixes:
- * blind_page was written as blindpage in game/mushcnf.dst.
- Reported by Raevnos@ShadowMist.
- * udefault() was broken. Reported by John Hutchinson
- * Some lintwork in csrimalloc.c, to get rid of signed/unsigned
- warnings and others.
- * help @list fixed to show the correct @config switches.
- Reported by Leo@ATS TrekMUSH
- * @chan/gag now works correctly. Report by Vedui.
- * Help for remove() updated. Reported by Vedui@Robotech.
- * hasattr() didn't check if the invoker had permission to read
- the attribute. Reported by Vedui@Robotech.
-
-
-Version 1.7.0 patchlevel 11 November 18, 1997
-
-Commands:
- * page/blind produces a separate page to each person paged,
- so they can't tell if the page was a multipage. This is the
- same as the default PennMUSH page behavior (but see Options)
-
-Options:
- * New mush.cnf option 'blind_page'. If 'yes', page defaults to
- page/blind. If 'no', page defaults to page/list. By popular
- request. :)
- * New dune.h option MUSH_IP_ADDR. Define if your host system has
- multiple IP addresses to specify which address to listen on
- for connections. By Bobby Bailey (Chil).
-
-Minor Changes:
- * All calls to isalnum replaced with isalpha || isdigit, because
- some linux systems appear to have a broken isalnum!
- * For some reason, the variable name 'restrict' in fun_lsearch
- broke compilation on James Cook's system. Gwennie@SNW fixed
- this by changing the name. Ok, I've changed the name, too,
- as a preventative measure. *shrug*
- * When a player can't connect because logins are disabled or
- the MUSH is full, we no longer (a) show a disconnect message
- to MONITOR players, (b) purge the player's mail anyway, or
- (c) show the player quit.txt in addition to full.txt/down.txt.
- Suggested by John Hutchinson.
-
-Fixes:
- * When a halted player triggers a $command *:, %0 was including
- an initial space that wasn't being trimmed. Reported by
- Jonathan Booth. [TAP]
- * functions() works right again. Patch by Atuarre@ATS TrekMUSH
- * look/out allowed looking at any db#. Reported by Lews Therin@DDM
-
-Version 1.7.0 patchlevel 10 October 30, 1997
-
-Minor Changes:
- * Players can now have @parents. Inspired by AJ Prowant.
-
-Fixes:
- * @drain was doing @notify instead. Ick. Reported by Amberyl.
- * Royalty can @boot, as the help suggests. Reported by Vedui@Robotech
- * (Hopefully current) copies of hdrs/funs.h and hdrs/cmds.h are
- kept in the win32/ directory for win32 folks who don't have
- a Bourne shell and can't run utils/mkcmds.sh.
-
-
-Version 1.7.0 patchlevel 9 October 16, 1997
-
-Fixes:
- * @clone could corrupt the db on some machines in some cases.
- Report by Jonathan booth. [TAP]
- * @list attribs now works. Report by Corum@StormWorld.
-
-
-Version 1.7.0 patchlevel 8 October 15, 1997
-
-Fixes:
- * Hopefully the final command_parse fix.
-
-
-Version 1.7.0 patchlevel 7 October 15, 1997
-
-Fixes:
- * The ANSI_JUSTIFY patch got left out somewhere. It's back.
- Report by John Hutchinson.
- * +channel and exits are broken in 1.7.0p6 due to our stupidity.
- Fixed again. Report by John Hutchinson.
- * @cemit was restricted to Wizards, and should have been restricted
- to Wiz or Royal. Fixed. Reported by Vedui@Robotech.
-
-
-Version 1.7.0 patchlevel 6 October 9, 1997
-
-New Functions:
- * cand(), cor() are short-circuit boolean functions. Suggested by
- Flame who saw reference to them in a patch to TinyMUX. [TAP]
- * if() and ifelse() do about what you'd expect. Suggested by
- a number of people. [TAP]
-
-Minor Changes:
- * Prototypes for the functions in src/local.c are now in
- hdrs/externs.h
- * round(.15,1) = .1 on many systems due to the floating point
- representation. A tiny kludge around this is now in place.
- Reported by Flame.
- * @command/disable say now disables " as well. The same applies
- to other single-character command forms. If you disable SAY,
- commands of the form "hi! are rewritten as: say hi! before
- being passed to the checker for user-defined commands
- so you need only set up $say *: to catch both. %c will, as always,
- contain the raw command as entered (i.e. "hi!). Aliases
- (like 'p' for page) are treated similarly when the aliased
- command is disabled -- you need only match $page *. [TN]
- * The Huffman compression algorithm is now 8-bit clean, in
- preparation for a future internationalization of PennMUSH
- (Eh? Dite "help" pour aide. :) In addition, none of the compression
- algorithms treat the first character of a compressed string
- specially anymore -- they don't have to. [TAP]
- * The customize.pl script no longer copies over all the distribution
- help files from game/txt/hlp. Instead it makes customdir/txt/hlp
- into a link to game/txt/hlp, which is a good thing when future
- patches update the help files. Dedicated to Oleo.
-
-Fixes:
- * @list/attribs showed many duplicate attribute names.
- Reported by John Hutchinson.
- * Fixed a mislabeling of allocated memory by htab.c, so mem_check
- stats will be correct.
- * @channel/gag now works.
-
-
-Version 1.7.0 patchlevel 5 October 1, 1997
-
-Minor Changes:
- * New os2/ subdirectory with information for those looking to
- build under OS2. Maintained by Sylvia (penn-os2@pennmush.tinymush.org)
-
-Fixes:
- * Examine/brief could sometimes cause crashes. Reported by
- Sean Fike. [TN]
- * cmds.c and command.c didn't do the right #includes for the
- original chat system. Reported by Magus.
- * Added help for @shutdown/paranoid. Reported by Sean Fike
- * @chan/decompile on a nonexistant channel didn't return an
- error. Reported by Mike Wesson
-
-
-Version 1.7.0 patchlevel 4 September 19, 1997
-
-New command:
- * The @shutdown command now takes a /paranoid switch
- to perform a paranoid dump when shutting down
- (or rebooting, if given with /reboot as well). Idea by Flame.
-
-New options:
- * You can define the MAILER option in dune.h to be
- something other than sendmail if you want to put a
- wrapper around the mailing program used to send out
- passwords to players using the 'register' command.
- * If you define LOCAL_DATA in options.h, you can
- use functions in local.c to maintain your own data structures
- associated with each db object. [TN]
- * If you define the TINY_TRIM_ORDER option in dune.h,
- the trim() function takes arguments like TinyMUSH's.
- * If you define ANSI_JUSTIFY in options.h, the rjust, ljust,
- and center functions will ignore ansi codes when computing
- where the string should be placed, so they'll work right for
- strings with ansi. Wadhah Al-Tailji contributed a patch
- for this concept. TN wrote this particular implementation.
-
-Fixes:
- * rnum() didn't find exits properly. Reported by Vedui.
- * Null channels would get added if the chatdb's channel count
- got unsync'd with the actual number of channels in the chatdb.
- Reported by Matt@New England: The Reckoning.
- * @wcheck/all didn't work. Report by Wolverine@Holodeck1
- * HPUX needs _XOPEN_SOURCE_EXTENDED in the hints. Report by Angel.
- * db reading error messages are slightly more verbose.
- Suggested by Flame.
- * Mortals examining DARK rooms don't see contents anymore.
- Report by Jonas Oberg. [TN]
- * Attribute names may no longer contain the caret (^) character.
- It's a security risk. Noted by Rob Wilson.
- * hdrs/funs.h was being appended to, not rebuilt. Noted
- by John Hutchinson.
- * setunion fixed again, so that setunion(a a,) correctly
- returns 'a', not 'a a'. [TN]
- * Various references to mellers1 updated to pennmush.tinymush.org.
- * COPYRITE file added to explain a couple of the unclear
- points in hdrs/copyrite.h and to serve as a pointer.
- * @chan/rename didnt work. Reported by Jonathan Booth.
- * Help for entrances() updated by Naomi Novik
- * Players no longer hear about all the channels they're
- no longer gagged on when they disconnect. Report by
- Naomi Novik.
- * The time noted in the LAST attribute now will always
- have day numbers 01-31 instead of 1-31, just like time()
- does. This makes convtime() work better on LAST for some
- systems. Reported by Valin@PernMUSH.
- * MUSHcoding a command called $attr * would crash the MUSH.
- Fixed. Reported by Sam Knowlton. [TN]
- * Disabling say now disables ", (same for pose, semipose,
- emit, and chat and their corresponding tokens).
- Reported by Flame.
- * The hint for Dec Alpha OSF now indicates that you need to
- use native malloc. Reported by Sean Fike.
- * We now check for the assert() macro in Configure. NetBSD may
- not have it, according to Logan Five.
- * Doing a LOGOUT after a @shutdown/reboot caused crashes
- because mail pointers weren't being reset.
-
-
-Version 1.7.0 patchlevel 3 August 13, 1997
-
-Fixes:
- * setunion(,list) should work now.
- * @wall/wizard and @wall/royalty work right. Report by Alan T. [TN]
-
-
-Version 1.7.0 patchlevel 2 August 12, 1997
-
-Fixes:
- * Linux 2 is now instructed not to use nm to find objects
- in libraries since its nm output doesn't seem to be
- BSD compatible or something.
- * Compile with CSRI malloc in debugging mode didn't work.
- Reported by TwinSuns MUSH.
- * Exits in transparent rooms with COMMA_EXIT_LIST had
- vanished. They're back! [TN]
- * More command parser bugs ironed out. [TN]
- * 'e' is examine, 'b' is brief, 'w' is whisper
- (unless you reserve them). [TN]
- * @config said conflicting things about possessive get.
- Report by Jonas Oberg.
- * When not using @prefix, audible messages were prefixed
- with "From <source>" instead of "From <source>,".
- Fixed. Report by Jonas Oberg.
-
-
-Version 1.7.0 patchlevel 1 August 7, 1997
-
-Minor Changes:
- * New file local.c (from local.dst) makes more local hooks
- available. Some of the hooks in command.c have been moved
- here, so you may have to mess around a bit if you've already
- added things in command.c's local_startup or local_shutdown. [TN]
- * Functions can now be defined and added all within funlocal.c
- so you don't have to muck with the function.c table. [TN]
-
-Fixes:
- * restrict_command didn't restrict commands to God correctly.
- Reported by Jason Newquist.
- * @command indicates if commands are restricted to God.
- * When COMMA_EXIT_LIST was defined, rooms with no exits
- still showed the "Obvious Exits:" message. Report by Michael Rudel.
- * Partial switch-matching for commands is back.
- And CMD_T_NEWSTYLE is gone. [TN]
- * Makefile doesn't clobber existing funlocal.c/cmdlocal.c
- any more. Report by Jason Young.
- * inv wasn't working for inventory, and other command aliasing
- flaws are fixed. Report by Corum. [TN]
- * MUSH wouldn't compile if PLAYER_LOCATE wasn't defined. Fixed.
- Report by Alan T.
- * Some leftover defines removed from game.c and mushcnf.dst
- * @lock didn't parse right. Fixed. Report by Corum.
-
-
-Version 1.7.0 patchlevel 0 July 31, 1997
-
-The major goals of this release are to make what used to be
-compile-time options into run-time options, and improve a number
-of internals.
-
-Major Changes:
-
- * The hashtable functions from TinyMUSH (htab.c/htab.h) are
- now used by PennMUSH (with permission), so instead of
- every subsystem writing its own hashtable code, they now
- all use the standard code.
-
- * The giant switch in game.c has been replaced by hashtabled
- commands. [TN]
- Groovy new features:
- * @command/enable and @command/disable for any command
- * Multiple switches (@pemit/noeval/silent) work
- * The left side of the = is always evaluated before
- the right (previously, this was compiler-dependent).
- * Command table is built during compilation, and there's
- a standardized command interface, so adding commands
- is easier.
- * local.c contains hooks for local routines to run
- on startup and shutdown, and to use to add new commands.
-
- * Configuration options which restricted or disabled commands
- (READ, NO_KILL, ROBBERS, HATE_TOAD, ROY_FIND, HARSH_GUEST,
- SITELOCK_COMMAND) have been replaced the 'restrict_command'
- directive in mush.cnf. Check there and be sure things are
- set the way you want them!
-
- * Commands may be overridden by completely disabling them,
- and providing a MUSHcoded version instead.
-
- * Ident and DNS lookups are handled by a slave process
- if possible. [TAP]
-
- * The help files have been rewritten by Naomi Novik!
-
- * The MUSH now closes and reopens the log files when it
- receives a SIGHUP signal. [TAP]
-
- * @shutdown/reboot will dump the database and restart the
- MUSH without disconnecting the players. So will a USR1 signal.
- Good for patching in new source code on the fly. Based on the
- patch by Cro@Spaceballs which is itself based on ideas from
- TinyMUX. This may be nonportable - if it fails on your OS,
- pennmush-bugs@pennmush.tinymush.org would like to hear about it.
- [TAP]
-
-New commands:
- * @command (see above)
- * @list/commands
- * @attribute, similar to Tinymush (but doesn't save data
- across shutdowns at this point, so you've got to use it
- on an @startup!). Also @list/attribs.
- * @function/delete
- * @channel/gag <channel>=<yes|no>, keeps you on the channel
- (preserving your title, etc.) but silences it so you don't
- hear messages. The channel is automatically ungagged if
- you log out from the MUSH.
- * @conformat and @exitformat allow custom-formatted Contents:
- and exit lists. [2.2,TAP]
-
-Minor Changes:
- * Configure now looks for libbind.a, the BIND 8.1 library
- * @config shows more of the configuration options
- * @mail/unfolder <folder> can be used to remove a mailfolder's name.
- Suggested by Julianna Barrenson.
- * The default malloc is now CSRImalloc, which is now distributed
- in a single-file form with the MUSH.
- * The MALLOC define in src/Makefile has been removed.
- Unlike MALLOC_D and MALLOC_O, it didn't do anything.
- * The "CHANGES" file now contains only the current
- version's changes. Older changes are in the
- "CHANGES.OLD" file.
- * The attribute flag AF_ODARK is now assumed to be default,
- and is thus no longer used or stored. Instead, AF_VISUAL
- is used to indicate a visual attribute (previously, this
- was indicated by the absence of AF_ODARK). To note this
- change in the db, a new DBF constant, DBF_AF_VISUAL,
- has been defined.
- * Code for "privilege tables" (like chat channel privs,
- attribute flags, etc.) has been centralized into privtab.c
-
-Fixes:
- * Locks on zone exits now evaluate with the right enactor.
- Problem noted by Leonid Korogodsky. [TAP]
- * Win32 compatibility improvements. [TAP]
- * Prefer limits.h to values.h. Suggested by Atuarre.
- * SIGCHLD and SIGCLD now both work. Noted by Naomi Novik
- * If you idle out and get hidden, only the idle descriptor
- should get hidden. Noted by Gepht@Hemlock
- * With DBF_LESS_GARBAGE, garbage objects were loaded with
- owner NOTHING instead of owner GOD, which could cause
- crashes in the @mail code. Reported by Harvester@StarWars.
- * Problems with getrandom() on some systems fixed.
- * Help for dist3d() clarified. Reported by
- Kova'khan@Among the Stars TrekMUSH via Leo at the same MUSH.
- * You may now use power() for integral powers of negative
- numbers. Suggested by John Hutchinson.
- * setunion(,test,|) used to return |test, now returns test.
- Reported by Ashford @ V MUSH
- * SAFER_UFUN now blocks non-God eval'ing a u() on God.
- Reported by MRR@ATS
- * Building with SunOS cc and COMPRESSION_TYPE 0 works now.
- Reported by Jonas Oberg.
-
-Personnel Changes:
- * Ralph Melton has retired as a member of the PennMUSH
- devteam. Alex and Javelin send him best wishes and big
- thanks for all his work. Replacing Ralph will be
- Thorvald Natvig. Welcome aboard, TN!
-
-Version 1.6.10 patchlevel 6 May 11, 1997
-
-Fixes:
- * inc() and dec() didn't work right with NULL_EQ_ZERO.
- Fixed. Report by Dennis DeMarco
-
-
-Version 1.6.10 patchlevel 5 April 29, 1997
-
-New Commands:
- * @channel/title sets a player's title for a channel.
- The title appears prepended to their name.
- I forgot this, and Thorvald Natvig noticed.
-
-Minor Changes:
- * The inc() and dec() functions can now increment and
- decrement strings that end in integers. For example:
- inc(LINE_10) => LINE_11
- inc(LINE-10) => LINE-9 (incrementing -10)
- inc(LINE1.9) => LINE1.10 (incrementing the 9)
- * The LOWER_MATH option has been removed. Everybody
- gets shr(), shl(), inc(), and dec().
- * New attributes OIDESCRIBE and AIDESCRIBE do what you'd
- expect for the internal descs of objects. Suggested
- by Stacy Robinson.
- * @chan/on by a Wizard always succeeds, even if there's a
- join lock. Suggested by Mike Wesson.
- * Enhanced protection against malicious ANSI codes.
- * @channel/decomp displays locks in a better format.
- Suggested by Naomi Novik.
- * Numbers are now checked to be sure they're not so
- large as to bring down the system, at least in theory.
- Suggested by Atuarre.
- * Configure rebuilt under dist-3.0 pl70.
- * queue_write has been modified to reduce the number of
- packets sent out on the net; it only sends when needful
- and lets the usual output loop handle most output.
- The many packets issue was noted by Doogie.
- * All references to "parent rooms" have been changed to
- "zone master rooms" for clarification. Noted by Jonas Oberg.
-
-Fixes:
- * Long output should no longer cause NeXT
- systems to disconnect the user. Fix by Mike Kienenberger
- * Long output should no longer cause Win32 systems to
- disconnect, but it will throw out the beginning of
- the output. Fix by Hans Engelen.
- * Bad objects on chat channels are now removed when the
- chatdb is loaded. Suggested by Dennis De Marco.
- * help for last() added. Report by Flame.
- * Objects couldn't be added to object channels. Fixed.
- * If a site matched in access.cnf, but didn't specify
- a certain access rule, a later matching site could. This
- is bad for 'register', and not what was intended (that
- a matching site completely controls that site's access).
- Now fixed. Report by William Browning.
- * If you're on a channel but don't pass the see-lock,
- @chan/who returns a better error. Report by Cro.
- * help for remove() now mentions delimiters. Noted by J. Wilcox.
- * All tabs in helpfiles replaced with spaces. [TAP]
- * Loading a db that didn't have garbage objects stored
- caused a slew of warnings about null names. Should be fixed
- now. Reported by Atuarre.
- * FreeBSD hints improved, thanks to Atuarre and Doogie.
-
-
-Version 1.6.10 patchlevel 4 March 3, 1997
-
-Major Changes:
- * The disk db can now be dumped without including GARBAGE
- objects, which may make it somewhat smaller. [TAP]
-
-Minor Changes:
- * The %? substitution returns the current function invocation
- count and recursion depth as two space-separated numbers. [TAP]
- * dig() can take a single argument instead of 3.
-
-Fixes:
- * set(obj/attr,flag) no longer says "Set" when the object or
- player is QUIET. Reported by Graywolf.
- * Search_All players couldn't use @search. Now they can.
- Reported by Cro.
- * lnum(2,1) didn't work right, and things were broken with
- floating point args to lnum. Fixed.
-
-
-Version 1.6.10 patchlevel 3 February 9, 1997
-
-New function:
- * graball() as per TinyMUSH 2.2. [TAP]
-
-Fixes:
- * On some systems, make clean would go into an infinite loop
- if src/CSRI didn't exist. This should now be fixed.
- Report by Cro@Spaceballs.
- * Restart script now looks for minimal.db.gz if minimal.db.Z
- can't be found. This helps people running under Mklinux
- on Power Macs(!). Report by Jason Newquist.
- * Fix to matchall(). [TAP]
- * move.o doesn't compile if FIXED_FLAG isn't defined.
- Noted by Andy Jalics.
-
-
-
-Version 1.6.10 patchlevel 2 February 2, 1997
-
-Minor Changes:
- * If forking to do dumps, lower the priority of the dumping
- process to keep the parent process more responsive.
- Based on a patch by Doogie@ATS TrekMUSH.
-
-Fixes:
- * Code cleanup and fixes to comp_w.c. Problems reported by
- Mike@TBFF
- * Portability fixes for alpha-linux systems. Thanks to Roger
- Chen for facilities to work on this.
- * Added help for @dump/debug. Report by Flame.
- * Note added to game/txt/Makefile about braindead Irix 6.2 make
- * Ident source files now do better #ifdef'ing of Unix include
- files to help out Win32.
- * Configure changes to enhance portability.
-
-
-Version 1.6.10 patchlevel 1 January 25, 1997
-
-
-Commands:
- * New command: @dump/debug. Like @dump/paranoid, but
- it also tries to fix the memory db, so a shutdown/restart
- may not be necessary. It is never forked. Suggested by Atuarre.
-
-Fixes:
- * externs.h now declares crypt() as char *, not const char *.
- * free_access_list's declaration is now K&R compatible again.
- * repeat() now doesn't work with a null string, which prevents
- a denial of service attack. Report by Atuarre. [TAP]
- * Fencepost error in huffman compression code fixed.
- Report by Mike Wesson. [TAP]
- * idlesecs() is now referenced in pennfunc.hlp. Report by Flame.
- * parse() is now referenced in pennfunc.hlp. Report by Sandi Fallon.
- * lsearch() now gives the correct types in the help.
- Report by Sandi Fallon.
- * Halted messages now indicate the object that was halted,
- even if they are halted as the result of a chown.
- Report by Sandi Fallon.
-
-Version 1.6.10 patchlevel 0 December 16, 1996
-
-Major Changes:
- * The attribute matching order has been cleaned up. Code by [TAP]
- If you do ex obj/attribpattern, and...
- 1. If attribpattern has no wildcards:
- a. Return attribpattern's value if set, else
- b. Return the value of an aliased attribute, if any.
- 2. If attribpatern has wildcards:
- a. Return anything which matches the pattern, and
- don't bother about aliases.
-
- Here's a little example:
- only DESC set only DESCRIBE set both set
- ex foo/desc DESC DESCRIBE DESC
- ex foo/desc* DESC DESCRIBE both
- ex foo/describe (error) DESCRIBE DESCRIBE
-
-
-Minor Changes:
- * parse() is now an alias for iter() [TAP]
- * Attribute set/clears report the name of the attribute in the
- set/cleared message. [TAP]
- * fun_lattr is now in fundb.c. [TAP]
- * Improved setq/setr help. [TAP]
-
-Fixes:
- * Typo in help evaluations corrected. [RLM]
- * The side-effect version of lock() no longer returns a value.
- Reported by Corum.
- * help quota() added. Report by Dennis De Marco.
- * help INHERIT updated to reflect current control structure.
- Suggested by Vedui.
- * vmul() with a separator now returns the vector separated with
- that separator, as promised. Report by Atuarre@TrekMUSH.
- * FIXED now overrides STICKY, so you can't set yourself STICKY,
- get yourself dropped, and go home. Report by Anthony Ivan.
- * lsearch(all,flags,c) worked, but lsearch(all,flags,Pc) didn't!
- This is fixed. Report by Flame.
-
-Version 1.6.9 patchlevel 9 November 18, 1996
-
-Fixes:
- * A Wizard doing @find on a MUSH with garbage crashes the MUSH.
- Fixed. [TAP]
- * Fairly major security problem due to a typo in the player-
- destruction code fixed. Reported by Dennis DeMarco.
-
-
-Version 1.6.9 patchlevel 8 November 10, 1996
-
-Major Changes:
- * The control system has changed slightly: only wizards
- control wizobjects and only royalty control royobjects.
- If a mortal's object gets wizbitted, the mortal will
- cease to control it. Also, protection is now afforded
- to players from non-inherit objects.
-
-Fixes:
- * Setting an @listen on a room caused a crash. Fixed.
- (Note: @listen on rooms still doesn't work - it's not
- supposed to -- use LISTENER and ^patterns -- but at
- least it doesn't crash. :) Report by Flame@B5.
- * dune.h.dist now defaults the index and rules indx files
- to ending in .idx, as they should. Noted by Jason Newquist.
-
-
-
-Version 1.6.9 patchlevel 7 October 30, 1996
-
-Functions:
- * The help for vmul() suggested it did an elementwise product
- of 2 vectors, returning a vector. In fact, it was doing a
- dot product (sum of the elementwise product, which is a scalar).
- vmul() now does what the help suggests, and vdot() does
- a dot product.
-
-Fixes:
- * Bug in comp_w.c (word-based compression) which could cause
- loss of subjects in @mail has been fixed. [NJG]
- * Help for "control" made more explicit, and help for "controls()"
- references "control", not "controls".
- * @wait 0 now queues its subject immediately, rather than waiting
- 1 second. [TAP]
- * The "Patchlevel" file is now more grammatical. For Sam Knowlton. :)
- * Variables named "listen" have been renamed "listener" to
- remove compiler warnings about shadowing the listen() system call.
- Reported by Flame@B5
-
-
-Version 1.6.9 patchlevel 6 October 24, 1996
-
-Fixes:
- * Removed needless calls to tprintf() within do_log() in
- access.c
- * Fixed the variable j in fun_lnum to be the right type
-
-
-Version 1.6.9 patchlevel 5 October 15, 1996
-
-Options:
- * COMMA_EXIT_LIST causes exit lists to be comma-separated,
- and include the word "and" before the last exit. [NJG]
-
-Functions:
- * lnum() with multiple arguments now behaves exactly like
- Tiny 2.2's lnum().
-
-Minor Changes:
-
- * @pcreate failure messages distinguish between bad passwords
- and bad names. Related to a suggestion by Philip Mak.
-
-Fixes:
- * elements() used to put a leading space in output. Fixed. [RLM]
- * index(foo|||,|,2,1) now returns nothing, instead of ||,
- as it should. Fix by Harvester@StarWarsMUSH.
- * @cpattr a/DESC=b (where a has a DESCRIBE attribute and no DESC
- attribute) correctly grabbed DESCRIBE from a, but copied it to
- DESC on b. This is now fixed. [TAP]
- * Various unused variables and missing prototypes fixed. [NJG]
- * More win32 fixes. [NJG]
- * Revised comp_w.c to handle table overflow better. [NJG]
- * splice() wasn't putting spaces back in between words.
- Reported by Philip Mak.
- * Help for aposs() was never added. [MPC]
- * mkindx doesn't compile on systems without strcasecmp. Fixed.
- Reported by Stephen Sanderlin.
- * Configure: -lsocket is used if it's found (also -lcrypt, -lnsl)
- * Various missing includes fixed
- * Linux systems weren't doing daylight savings time right.
- We now always try to use tm_isdst = -1 to get this right.
-
-
-
-Version 1.6.9 patchlevel 4 October 9, 1996
-
-Fixes:
- * Restart script fix in 1.6.9p3 is buggy. Fixed the fix.
-
-
-Version 1.6.9 patchlevel 3 October 7, 1996
-
-Changes:
- * @wipe/wipe() of a single attribute (no wildcards) no longer
- checks the SAFE flag on the object.
- * Wildcards are now accepted for the attribute name when setting
- attribute flags.
-
-Fixes:
- * @succ and &succ could create duplicate success attributes.
- Fixed so that @succ -> SUCCESS and &succ -> SUCC,
- and no more duplicates. [TAP]
- * Help for @purge had disappeared. Back.
- * Forgot to include restart patch mentioned in 1.6.9p2 [PeaK]
-
-
-Version 1.6.9 patchlevel 2 October 5, 1996
-
-New Compile Options:
-
- * The behavior of attributes is now configurable; you can
- emulate attribute setting behavior from 1.6.8 and earlier,
- use the currently recommended settings, or anywhere
- in between. [TAP]
-
-Functions:
-
- * lnum() now takes an optional second argument, which is the
- number to start with, e.g. lnum(3,4) => 4 5 6
- Suggested by [MPC]
-
-Fixes:
- * @mail/debug clear=<player> now clears all the player's
- mail, not just their current folder. Fix by
- Leonid Korogodsky.
- * look/outside at an ambiguous name crashed. Report by Vedui.
- * New hints file: linux_2.sh
- * Help for setq() now included. Report by Flame@Babylon5
- * Added -w to the ps in restart so the output isn't
- truncated. [PeaK]
- * Restart changes to prevent some race conditions under Linux 2.0
- [Peak]
-
-
-Version 1.6.9 patchlevel 1 September 26, 1996
-
-New Function:
-
- * setr() is like setq() but returns the string as well.
- It's identical to [setq(#,string)]%q#. Suggested by Adam Dray.
-
-Fixes:
-
- * Bug with @clone fixed. Report by Vedui.
- * Bug with @mail folder 15 fixed. Report by Vedui.
- * @sitelock/register worked backward. Fixed. Report by [MPC]
- * rnum() now requires that you can examine the room.
- By Jason Rhodes, with minor mods.
- * Better messages when a player or thing is set audible.
- Suggested by Babylon5@kuwait.net
- * Configure now uses your email address instead of your name
- when trying to subscribe to the mailing list; on some systems,
- it's hard to get a valid name -- getting an email address
- is usually possible. Suggested by Cro@Spaceballs
- * Configure no longer adds multiple copies of the same gcc
- warning flags when you run it again. Reported by Cro@Spaceballs
-
-Version 1.6.9 patchlevel 0 September 16, 1996
-
-Attribute Rewrite [TAP]:
-
- * There is now a distinction between an empty attribute and
- a non-existant attribute:
- @va me <--- wipes out my VA attribute
- @va me= <--- sets my VA attribute to be empty
- Empty attributes retain their locks and flags; wiped attributes
- are gone forever.
- * @set and set() can not wipe out attributes. @wipe and wipe()
- will.
- * You can now include ':'s in $-command and ^-command patterns
- by escaping them with '\'.
- * Standard attribute names are kept in a string table and
- memory is not allocated for them. We guesstimate a 3-5%
- savings in memory use from this change.
- * objmem() and playermem() are now more accurate.
- * Internal changes: new attribute flags AF_STATIC, AF_COMMAND,
- AF_LISTEN; atr_comm_match doesn't look directly at compressed
- strings any more; restructured some routines (atr_clr to clear
- attributes, atr_add to set them).
-
-Fixes:
-
- * Add help topic SETTING-ATTRIBUTES to explain the above.
- * Fixed small error with closing a NULL file in access.c [TAP]
- * Improved help for @destroy
- * Dashed lines in @mail are now 2 hyphens longer. [MPC]
- * The Configure hints files weren't properly used when
- compiling with gcc.
- * The color flag is now aliased to colour as well. [MPC]
- * With MAIL_SUBJECTS, the @mail/list could get scrambled
- for messages from players with long names. Reported by
- Leto@DuneII.
- * Small memory leak when access.cnf is reloaded via kill -HUP
- has been fixed.
- * Vestige of old TEMPLE code removed from do_drop. Reported
- by Mike Selewski.
-
-Version 1.6.8 patchlevel 1 September 7, 1996
-
-Fixes:
- * The mail*() functions were broken due to a typo. [MPC]
- * The addr field in the descriptor structure has been expanded
- from 50 characters to 100 characters, because you'd really
- like to store the entire ident response from encrypting
- ident daemons.
- * The MAIL: announcement at login now counts your cleared
- mail in your mail totals, in case something clears mail for
- you while you're offline. Suggested by Mike Wesson.
- * Better string protection for parse_chat which may fix
- a potential crash when speaking on +channels.
-
-Version 1.6.8 patchlevel 0 September 3, 1996
-
-This is intended as a maintenance release because 1.6.7 has had
-many rapid patches to achieve stability.
-
-Fixes:
- * "make install" now implies "make all". Corrects a problem
- with not remaking hdrs/buildinf.h.
- * README file now shows the utils directory in its directory tree.
- Reported by Mike@StarWars.
- * On startup, PennMUSH now logs its version information.
- * @log/wiz was logging to trace log, not wiz log. Reported by
- Dean Moore.
- * @mail system behaved badly if you @shutdown on an empty
- maildb on some systems. Reported by Mike Selewski.
- * Detection of getpagesize() system call is now handled by
- Configure. Fixes problems on Irix, reported by Mike Selewski.
- * Minor typo in Irix hints file fixed.
- * Stupid misspelling of August in CHANGES-10 fixed.
-
-Version 1.6.7 patchlevel 6 August 31, 1996
-
-Fixes:
- * The attribute clear fix in 1.6.7p5 is buggy. Now it's really
- fixed. Report by [MPC].
-
-
-Version 1.6.7 patchlevel 5 August 30, 1996
-
-Fixes:
- * Sites not listed in the access.cnf file should have been
- allowed, not denied access. Fixed. Best report by Cwilla@Victory
- * A little more info in mush.cnf about how player_creation and
- access.cnf interact
- * Trying to clear a never-existant attribute got the right
- error message, but clearing an attribute that had existed,
- but been already cleared got the "Foo - Set." message.
- Fixed - atr_add now skips disposed attributes. Report by [MPC]
-
-
-Version 1.6.7 patchlevel 4 August 28, 1996
-
-Fixes:
- * Bug in mail functions that caused mail(1:0) to crash
- has been fixed. Reported by Corum@StormWorld.
- * Another Win32 fix by Pat Pinatiello.
-
-
-Version 1.6.7 patchlevel 3 August 28, 1996
-
-Fixes:
- * Configure wasn't setting HAS_SENDMAIL correctly because the
- updated config_h.SH wasn't included in the diff!
- * @mail/clear's message about unread mail was screwy.
-
-
-Version 1.6.7 patchlevel 2 August 27, 1996
-
-Fixes:
- * Forbidden_Site wasn't working quite right
- * Win32 compatibility improvements suggested by Pat Pinatiello.
- Hopefully, no further real hacking should be required to
- build under Win32 with Visual C++. Pat's instructions included
- as win32/README.visualc++
-
-
-Version 1.6.7 patchlevel 1 August 27, 1996
-
-Fixes:
- * #ifdef's and the like were missing which prevent compilation
- unless HAS_SENDMAIL and CHAT_SYSTEM (>2) were defined.
- Fixed by [TAP].
-
-
-Version 1.6.7 patchlevel 0 August 22, 1996
-
-Major Changes:
-
- * The lockout.cnf and sites.cnf files are no longer used.
- Instead, the file game/access.cnf controls all aspects of
- site-based (or, with ident, possibly user-based) access.
- Sites can be explicitly allowed or denied the ability to:
- * Connect to guest players
- * Connect to non-guest players
- * Create players
- Sites can be configured to:
- * Use email registration (see below)
- * Set all players from the site SUSPECT
- See the file game/access.README for file format information.
- The LOCKOUT and WCREATE defines have been removed from options.h.
-
- * A new access option, email registration, is available.
- From the connection screen, the command
- register <player> <email address>
- will create the player with a random password, which will be
- emailed to the address. The email address is stored on the player
- in the wiz-only attribute REGISTERED_EMAIL.
- Obviously, this requires that the system have a way to send email.
- Ideas in this code came from Jim Cook.
-
- * @powers are now tabled in flags.c.
-
- * Nick Gammon's word-based compression algorithm is now
- COMPRESSION_TYPE 3. This algorithm may be faster than
- Huffman on the whole, and may provide better compression
- for large (>1.5Mb of text) databases.
-
- * @mail message-lists now understand the format [folder#:]msg[-msg]
- For example, the first 3 messages in folder 1 are 1:1-3.
- @mail commands that are not given any message list are assumed
- to apply to all messages in the current folder. You can also
- do this explicitly by using the word "folder". When you use
- the word "all", you match all messages in all folders.
- For example, try: @mail all
- @mail internals rewritten to increase code reuse.
-
-New Commands:
-
- * @sitelock has got an additional syntax to support the new
- access.cnf system.
-
-New Functions:
-
- * powers() returns the list of powers set on a thing.
- If HASPOWER_RESTRICTED is defined, you must be able to
- examine the thing to do this.
- * mail(), mailtime(), mailstatus(), and mailfrom() now accept
- this syntax:
- mail([<player>,] [<folder #>:]<message #>)
- * cemit() does what you'd expect. Suggested by [MPC].
-
-New Powers:
-
- * Open_Anywhere power allows the player to open an exit between
- to any room, even if the player does not control the source
- or target room.
-
-
-Minor Changes:
-
- * Previously, a player with the Halt power could use
- @halt obj=command to effectively @force any object.
- This form of @halt is now only allowed if you control the
- object. Bug reported by Flame.
-
- * When EXTENDED_ANSI is defined, ansi codes are stripped out
- of strings before checking them against LISTEN and ^patterns.
- Suggested by Mike Wesson.
-
- * HAVEN players are no longer notified when they send back
- an @haven message in response to a page. Page-locked players
- still are. Suggested by Naomi Novik.
-
- * @decompile me results in a decompile with "me" as the object name
- @decompile <player> results in the player's name as the object name
- @decompile of an exit will use the exit's short name instead of
- its full name for setting attributes and flags.
-
- * Utilty scripts (customize.pl, update.pl, update-cnf.pl,
- fixdepend.pl, and make_access_cnf.sh) are now in the utils/
- subdirectory.
-
- * Default rwho server is now littlewood.math.okstate.edu,
- which replaces riemann, which has been turned off.
-
- * time() and convsecs() now indicate the first 9 days of the
- month as 01..09, rather than 1-9, which makes convtime()
- happier when you convert back.
-
- * You may @tel an exit back into its own room. Added for
- compatibility with other MUSH flavors. Suggestion by Philip Mak.
-
- * Dark connections are now broadcast only to MONITOR wizards and
- royalty. This involved replacing the raw_broadcast and
- toggle_broadcast functions with a new flag_broadcast function
- which subsumes them. Suggestion by Philip Mak.
-
-Fixes:
- * Noted the 256-character limit on channel descriptions in the help.
- * abs() now deals correctly with floating points.
- * Win32 compatibility improvements suggested by Pat Pinatiello.
- * Updates to BUGS, README.Deprecated, and FAQ [TAP]
- * An ANSI_NORMAL is sent at the end of the Doing message in WHO.
- * mail() and related functions now accept "me". Bug noted by
- Mike@TBFF
- * Help for @squota no longer says that it works like @quota
- when no limit is given, because it doesn't.
- * Bigram compression was not freeing memory that it used
- for initialization. Fixed, and made faster.
- * Help for @unlink fixed; you can't pick up unlinked exits. [TAP]
- * Potential string overflow in new_connection fixed. Idea by [TAP]
- * Code cleanup: many old sections that were commented out
- with #ifdef NEVER ... #endif have been removed.
- * @set obj=!going gave an error message but still reset the flag.
- Now it should just give the error. Reported by Philip Mak.
-
-Version 1.6.6 patchlevel 0 July 28, 1996
-
-This version involves primarily cleaning up and streamlining code
-in preparation for major internal changes in later releases.
-
-Major Changes:
- * The following options are now standard and no longer turned
- on via dune.h/options.h: RALPH_LOCKS, EXTENDED_MAIL,
- INHERIT_FLAG. [TAP]
-
-New Commands:
- * @firstexit command moves an exit to be first in the list of
- a room's exits. Based on contrib/topexit.165p3 by Marlek@Earth1996
- (but note that it requires control over the *room*, not the
- exit).
-
-New Functions:
- * poll() returns the current poll. By William Knopes.
-
-Flags:
- * TEMPLE flag has been removed. This requires adding a new
- DBF bit. [TAP]
-
-Minor Changes:
- * Admin no longer automatically pass leave-locks and NO_LEAVE.
- Suggested by Naomi Novik. [TAP]
-
-Fixes:
- * Users could cause an infinite loop with @mail/fwd. Fixed.
- * The fix to pmatch() in 165p4 didn't quite do the job.
- Alex's does. [TAP]
- * @mail/stat commands now show correct number of cleared messages.
- Bug reported by [MPC]
- * Typo fixed in help for items() [MPC]
- * help for BUILDER now calls it a power, not a flag.
-
-
-Version 1.6.5 patchlevel 4 July 9, 1996
-
-New Functions:
- * entrances() works like @entrances, including the cost.
- Suggested by Julienna@TrekMUSH.
-
-Commands:
- * whisper/list takes multiple recipients. Suggested by [MPC].
-
-Minor Changes:
- * A DARK-reconnected message has been added. Idea by [MPC]
- * LFAIL/OLFAIL/ALFAIL attributes now control the message
- seen when a player fails to leave an object due to the
- NO_LEAVE flag or a leave-lock. By Naomi Novik.
-
-Fixes:
- * pmatch() on a DARK or hidden player by an unpriv'd player
- now returns #-1 (can't find the player).
- * inc(very_big_n) now works exactly like add(1,very_big_n) instead
- of returning a huge negative number. Same for dec().
- Reported by [MPC].
- * Fixed spelling of Tinyfugue in help @decompile. [MPC]
- * Documented the way hasflag() works a bit better to forestall
- a common confusion: why hasflag(me,r) doesn't check for the
- royalty flag.
- * If a player tries to join a channel she's already on but
- which has since been locked against her, she receives the
- already-on-channel message now instead of the can't-join
- message. Suggested by Cwilla@VictoryMUSH.
- * Compile-time information in @version has been expanded and
- made much more robust for systems whose make program is
- broken. We now create the file hdrs/buildinf.h at the
- beginning of each build, which contains the info.
- * WHO at the connect screen works correctly now even if
- #0 is privileged. Bug reported by Doyce Testerman.
-
-
-Version 1.6.5 patchlevel 3 June 29, 1996
-
-New Command:
-
- * @shutdown/panic causes a panic dump and shutdown. God-only. [RLM]
-
-Minor Changes:
-
- * When you destroy a room you don't own, the "wrecking ball"
- message now includes the name of the owner, like the messages
- when you destroy objects you don't own. Suggested by
- Matt Chatterley.
- * The channels() function, with no arguments, returns the
- list of all channels (which the player can see).
-
-Fixes:
- * When you try to get an object that's not in your location,
- and POSSESSIVE_GET is not defined, you don't receive
- any message at all. Fixed by Thaddeus Parkinson.
- * DARK-disconnect messages now appear.
- * All calls to random changed to getrandom (except the one
- in getrandom!), and the prototype for random removed from
- utils.c, where it causes conflicts for at least OSF/1.
- * portmsg.c extensively hacked to use the autoconfiguration
- info so you can "make portmsg" on supported systems.
- * Help for mortal() and @mortal removed. [RLM]
-
-
-Version 1.6.5 patchlevel 2 June 19, 1996
-
-Fixes:
- * @grep didn't check to be sure you were allowed to see
- the attributes it searched. Reported by Mike Wesson.
-
-
-Version 1.6.5 patchlevel 1 June 12, 1996
-
-New Functions:
- * channels(dbref) returns the list of channel names that
- dbref is on.
-
-Fixes:
- * When paging player(s) with spaces in their names, the
- LASTPAGED attribute stores them with quotes around them,
- so that repaging will work.
- * @mail/fwd shows you how many players it successfully
- forwarded to.
- * @chzone here=none produced a spurious message if here was
- Wiz/roy. Fixed. Reported by Matt Chatterley.
- * udefault failed to evaluate the arguments it passed to the
- attribute to be u'd. Reported by PeaK.
- * Added include of sys/types.h in ident code. Necessary for
- FreeBSD.
- * @chf would not return a Huh? Fix by Hemlock MUSH admin.
-
-Version 1.6.5 patchlevel 0 June 2, 1996
-
-Database:
-
- * The "One" character in minimal.db.Z (#1, aka God) is now
- distributed without a password. This takes care of people
- who don't have crypt(3) or have a modified one (FreeBSD),
- since you now log in without a password, and set one,
- and all is well.
-
-Documentation:
-
- * README has been extensively updated.
-
-Minor Changes:
-
- * When paging, LASTPAGED is set to the list of succesfully
- paged players' names, if any page was successful. This
- is how page/list always worked; now applies to normal page.
- * &foo obj = bar used to set FOO to " bar". Similarly, you
- could use page/noeval (or any speech command with /noeval)
- to page messages with initial spaces. For TinyMUSH compatibility,
- this is no longer possible; leading spaces are trimmed now. [TAP]
- * F_INTERNAL flags (like GOING) are now visible unless they're
- also F_DARK. [RLM]
- * When you @decomp obj/atr and atr doesn't exist, you now get
- a message about it. Suggested by Matt Chatterley.
- * PREFIX semantics now like INPREFIX (see 1.6.4p2) [TAP]
-
-Fixes:
-
- * Bug in parse.c which could causes crashes fixed. Reported
- by Atuarre. [TAP]
- * On at least 2 systems, the system date was screwed up,
- which made updating dune.h and options.h still produce
- files younger than dune.h.dist and options.h.dist.
- This is not our fault, but we'll fix it anyway - now we
- touch dune.h.dist and options.h.dist before we update
- dune.h and options.h.
- * @wiping a STARTUP attribute didn't reset the STARTUP flag. [TAP]
- * Fixed bugs in the freebsd hints.
- * All of a sudden, linux systems have started barfing on
- our declaration of signal() in externs.h. All right, if they
- want to play that way, we now test for this in Configure
- and don't declare it ourselves if it would break things.
- * Changed Amberyl's address in the source to lwl@digex.net
- * Somehow the fix for add(+1,0) got left out of 1.6.4. Back in.
- * The ansi() function now produces underscore with "u", as
- advertised. [TAP]
- * Warning about discarding const in assignment fixed in game.c.
-
-Version 1.6.4 patchlevel 2 May 14, 1996
-
-Minor Changes:
- * At game startup, semaphores on all objects are cleared.
- Prevents objects from having leftover semaphore states after
- a shutdown. [TAP]
- INCOMPATIBILITY WARNING! If you have objects which expect
- to always have sempahore -1 (or something else), be sure
- that they do "@drain me; @notify me" in their STARTUP
- (as recommended in Amberyl's MUSH Manual).
-
-Fixes:
- * @dump/paranoid produced db's with incorrect db flags
- when CHAT_SYSTEM was 3 or 4. Reported by Matt Chatterley.
- * Under certain conditions, one could get inside a ZMO using
- the "go" command. Fixed. [RLM]
- * A strcpy in fun_match is now a safe_str. [PeaK]
- * INPREFIX fixes: (1) no space if INPREFIX evals to a null string,
- (2) message to be prefixed is passed as %0, (3) %1-%9 are
- temporarily cleared. [TAP]
-
-
-Version 1.6.4 patchlevel 1 May 11, 1996
-
-Fixes:
- * Forgot to #ifdef MAIL_SUBJECTS around fun_mailsubject.
- Reported by Mercurial Mink@Protean.
- * Quirk in @dbck fixed. [RLM]
- * Possible denial of service attack using repeat() fixed. [RLM/TAP]
- * Problem with Configure script under certain conditions (esp FreeBSD)
- producing bad compiler flags fixed. Report by Mike Wilson.
-
-Version 1.6.4 patchlevel 0 May 3, 1996
-
-Major Changes:
- * eval_boolexp rewritten again. Important features:
- - If A is locked to @B, evaluating A's lock is identical
- to evaluating B's lock
- - To do an indirect lock or an elock(), you must be able to
- read the lock on the target object (i.e., you must be
- See_All, control the object, or it must be Visual)
- (New macros Can_Run_Lock and Can_Read_Lock for this)
- - As a result, channel locks will work as advertised if
- you indirect-lock them to VISUAL objects
- * Changes to handling of plain strings (with no evaluation)
- resulting in doubling of speed. [TAP]
- * If you fail the page-lock on a DARK player, you receive their
- AWAY message rather than their HAVEN message. That is,
- failing a page-lock on a DARK player is just like paging
- a DARK HAVEN player.
- * INHERIT check moved to controls() function
-
-New functions:
- * mailsubject() returns subject of a given mail message,
- analogous to mail() and mailfrom(). By Atuarre.
-
-Minor Changes:
- * Don't go through some major sections of the parser if we've
- be given PE_NOTHING. Performance boost. [TAP]
- * Players who are allowed to idle past inactivity limit, and
- are unfindable, and can hide, are hidden (as before), but
- only receive the notification once, instead of every
- hour (or whatever your limit is). Players who are all of the
- above but can't hide don't get any notification now.
- Suggested by Gepht@Hemlock
- * When allocating a new boolexp, set its struct members to
- null values for better debugging. [RLM]
- * We no longer save/restore the r-values when evaluating
- the left side of the equal sign in attribute setting.
- So @desc %q0 = %q0 now works as expected. Reported by PeaK.
- * Locks set when players are initially created (lock, elock)
- are now set to "=me" instead of "me". [PeaK]
-
-Fixes:
- * When EX_PUBLIC_ATTRIBS wasn't defined, you never saw the
- DESCRIBE attribute listed when you examined objects. [AKM]
- * Vacation and Connected were being handled incorrectly
- internally; the type of object wasn't being checked. [TAP]
- * Now that Connected is fixed, the call to @doing doesn't have
- to prefilter for players, so don't. [TAP]
- * +nn is now considered a number, so add(+20,1) works.
- Reported by Dennis De Marco.
- * String boundary problems sometimes when you hit the
- function recursion limit could cause crashes. Fixed.
- Reported by Oliver Stoll. [TAP]
- * Making on Linux should hopefully now work with -g. [PeaK]
- * Warning message when @chzoning an inherit player used
- to be announced when @chzoning *any* player. Fixed. [PeaK]
-
-
-Version 1.6.3 patchlevel 7 April 25, 1996
-
-Fixes:
- * beep() works without arguments now, as promised. [TAP]
- * repeat(string,-number) caused an infinite loop. Reported by
- Atuarre.
- * The create() function didn't accept a single argument. [RLM]
- * last(a b c) was returning " c" instead of "c". [TAP]
- * The Configure script did indeed send email to listproc if
- you asked to be subscribed to the pennmush mailing list.
- But it sent it with Precedence: junk, which listproc ignores.
- Fixed.
- * %q9 wasn't preserved due to a typo in function.c. Fixed. [PeaK]
- * SIGHUP now handled synchronously to prevent race conditions.
- Noted by PeaK.
-
-
-
-Version 1.6.3 patchlevel 6 March 30, 1996
-
-Minor Changes:
- * A channel's owner now always passes the channel's modlock.
- * Wizards may now do folderstats(player,folder). Previously
- on God could, but wizards could see the stats for the player's
- current folder, and could reset the current folder, so it
- doesn't make sense to restrict. Report by Cwilla@Victory-MUSH
- * @function is restricted to see_all players. Suggested by
- Oderus (Mike Wesson).
-
-Fixes:
- * @sitelock/ban and @sitelock/register had their effects
- mixed up. Reported by Matt Chatterley.
- * Objects that were undestroyed were having the GOING flag
- removed but not the GOING_TWICE flag. Fixed. [RLM]
- * element() now works as advertised. [RLM]
- * Systems without IEEE math now can't do power(x,y) if
- *either* x or y is greater than 100. Report by InsaneJoseph@WoP
-
-
-
-Version 1.6.3 patchlevel 5 March 12, 1996
-
-New Powers:
- * The immortal power has been split into 3 powers:
- no_pay (has unlimited money), no_quota (has unlimited quota),
- and unkillable (can't be kill'd). For backwards compatibility,
- @set player=[!]immortal sets/unsets all three. Objects which
- were immortal before this patch will have all 3 flags set.
-
-Minor Changes:
- * The DEBUG flag can now be set by any user. The Can_Debug power
- will automatically be removed from all objects.
- * The "directive not found" message in loading mush.cnf has been
- changed to a more comprehensible/less scary "directive in
- cnf file ignored" message.
-
-Fixes:
- * FIXED players can no longer "go home" or "move home"
- * index-files.pl was producing incorrectly titled index entries. [RLM]
- * More fixes to elock() and zone locks. Elock() should now work
- even when RALPH_LOCKS isn't defined. Zone locks are checked
- on the correct object. [TAP]
- * @open exit=variable should work correctly now. [TAP]
-
-
-Version 1.6.3 patchlevel 4 February 27, 1996
-
-Fixes:
- * Complex evaluation locks may be better behaved. [RLM]
- * ex/debug now shows flag bits in hex, not decimal [RLM]
- * % failed to quote the following character in some cases.
- Fixed to work like 1.50. [PeaK]
- * iter() only allowed a single-character output separator instead of
- an arbitrary string. Fixed. [PeaK]
- * Bug in extmail.c which caused crashes on find_exact_starting_point
- with newly created players may be fixed.
- * Repaging with page/list uses the correct format.
- Also, failing to page anyone successfully doesn't clobber
- LASTPAGED when using page/list.
- * Dark-connecting admin now trigger connection messages on
- admin chat channels (unless the channels are quiet)
- * Help for pos() corrected.
- * Things starting with #- (error messages) are now treated as
- false (0) in boolean functions, as under 1.50. [TAP]
- * The recursive_member function was inefficient, and potentially
- buggy, which could allow things to be teleported into things
- they contained. Fixed.
- * @drain wasn't lowering QUEUE attrib. Fixed. [RLM]
- * Zone master help updated to refer to zone locks [RLM]
- * Memory malloc'd by replace string, though freed, didn't
- have its mem_check cleared in a few places, which could make
- it appear that replace_string was leaking. [PeaK]
-
-
-Version 1.6.3 patchlevel 3 February 12, 1996
-
-New option:
- * If NULL_EQ_ZERO is defined in dune.h, a null string will
- be considered a zero in a math function. For example,
- add(,3) will return 3, instead of #-1.
-
-Minor Changes:
- * Guests may not join or leave channels. [Mike Wesson, Oderus]
-
-Fixes:
- * edefault() core dumps fixed.
- * eval() now behaves correctly. [TAP]
- * ALL players (inc. Wizards) now subject to BUILDING_LIMIT.
- * Quota now properly updated on object destruction. [RLM]
- * Misc. fixes to object destruction, especially in the case
- of what happens to SAFE objects of destroyed players. [RLM]
- * Queue was handled strangely for priv'd players. Fixed.
- * New internal macros NoQuota and NoKill, both the same as
- NoPay, established in preparation for future splitting of
- Immortal power into 3 powers.
- * help @clock2 typo fixed.
-
-
-Version 1.6.3 patchlevel 2 February 7, 1996
-
-[L@E] refers to Lukthil@ElendorMUSH, who did many patches to 1.50
-that I'm just now getting to integrate.
-
-Minor Changes:
-
- * Wizards are now effectively pemit_all
- * @dol/notify notifies even if given a null list. [L@E]
- * See_All players can see quotas with @quota. [L@E]
- * If we're logging forces, don't just log forces *by* wizards,
- log forces *of* wizards (and things they own) by anybody.
- Idea by L@E.
- * Removed obsolete code: clear_atr_name
- * mkindx now sorts index entries alphabetically, so it
- doesn't matter what order you have get() and get_eval()
- in your help file - help get will give get().
- Code by Pavel Kankovsky (PeaK).
-
-Fixes:
- * #-1 was being considered "true" instead of "false" when
- TINY22_BOOLEANS was not defined. [RLM]
- * munge() is better behaved when there are duplicates in the
- first list, accurately matching them with the second. [L@E]
- * Emits weren't propagating through audible exits when
- there was nobody in the room. Fix idea by L@E.
- * Charges were broken. Fix idea by L@E.
- * Immortal players could lose coins when their non-immortal
- objects ran code. Fixed. [L@E]
- * @edit is less likely to overflow buffers when using ^ and $. [L@E]
- * @halting objects used to queue them for #0. Fixed. [L@E]
- * Semaphores weren't removed when an object was halted. Fixed. [L@E]
- * Possible permissions problem in running STARTUP when objects
- are chowned fixed. [TAP]
- * make etags now picks up dune.h and options.h [RLM]
- * Code consolidation: chowning when an exit is linked is done
- via a call to chown_object now. [RLM]
-
-
-Version 1.6.3 patchlevel 1 February 4, 1996
-
-
-Minor Changes:
-
- * NO_LEAVE is now settable by anyone
- * The index-files.pl script indexes admin news and help separately.
- * *emit() functions can now have unescaped commas in their last
- argument (the message). [TAP]
-
-Fixes:
- * lit() doesn't screw up on braces. [TAP]
- * @search and lsearch() using eval were broken. [TAP]
- * @unlock foo worked, and also gave a Huh?. Fixed. [RLM]
- * When a player was destroyed, their SAFE exits would be
- destroyed instead of chowned. Fixed. [RLM]
-
-
-Version 1.6.3 patchlevel 0 January 31, 1996
-
-Major Changes:
-
- * Assume that object A is locked to @B, and object B is
- locked to canuse/1. It used to be that when player P tried
- to pass the lock on A, the canuse attribute on *A* was
- checked, instead of B. Fixing that required that we check
- to be sure that B is allowed to evaluate the CANUSE attribute
- on A, which required internal changes to boolexp.c.
-
-Minor Changes:
-
- * Objects can now send mail as themselves, not their players.
- Mail from objects is reported as being from an object
- when read. The format for @mail(/read) has changed somewhat.
- * page[/list] now stores the last player(s) you paged in a LASTPAGED
- attribute, so you can re-multipage. The behavior is a little
- different for page and page/list. Page stores exactly what
- you typed as the last player/list of players to page; page/list
- stores only those names for whom the page succeeded.
-
-Fixes:
-
- * The site of last failed login used to be a visual attribute.
- * Parser misbehaved on: think ( foo ), removing spaces. [TAP]
- * @edit and related wasn't stripping leading spaces from the
- right side of the = sign. Fixed.
- * Problem with count of unread mail on login with EXTENDED_MAIL
- fixed.
- * @channel/rename can now rename a channel to the same name
- with case changes, without an error.
- * +channel now matches partial ambiguous channels in a smarter
- fashion - it looks for a channel you're on.
- * Better help for @clock
- * die(0,x) now returns 0. die(negative #,x) returns an error. [TAP]
- * @chan/decompile can be used by the channel's owner or
- anyone who passes the modlock, as well as Wizards.
- * Channel hide locks work right. [RLM]
- * @chan/decompile now shows the correct commands for locking
- channels. [RLM]
-
-Version 1.6.2 patchlevel 1 January 28, 1996
-
-Fixes:
- * get_eval error about # of args fixed.
-
-
-Version 1.6.2 patchlevel 0 January 26, 1996
-
-New Commands:
-
- * @mortal <command> lets a privileged player run a command
- as if they were unprivileged. [TAP]
- * ahelp/anews shows admin help/news topics to admin players.
- Admin-only topics are in the same files (help.txt/news.txt),
- but topic names begin with '&'. For example:
- & for-all-players
- ...text...
- & &admin-only
- ...text...
- * page/list <players>=<message> will do a multipage with a less
- spammy format for the pager.
-
-New Functions:
-
- * mortal() lets a privileged player evaluate as if there were
- unprivileged. [TAP]
-
-New Flags:
-
- * MORTAL, to support @mortal and mortal(). Used internally, and
- not settable. Can be reset by Wizards, just in case, though. [TAP]
-
-Minor Changes:
-
- * If you have a channel "admin" and a global +admin (no args),
- calling +admin will run the global, not give the
- "What do you want to say to that channel" message, under
- extended chat.
- * If a panic db is corrupt, the restart script will move it to
- save/PANICDB.corrupt instead of removing it.
-
-Fixes:
- * Problems with compile when HAS_SIGACTION is undefined.
- Noted by Brian Favela, affects Linux.
- * Duplicate uselock check in atr_comm_match removed.
- Noted by Brian Favela.
- * Looking at an exit showed the full name and aliases, not just
- the full name. [TAP]
- * Compiling without EXTENDED_MAIL works right.
- * Potential buffer overflow problems in look_exits() fixed.
- * get_eval() really uses a /, not a comma, like the help says.
- * (Hopefully) last remnants of old parser removed from externs.h
- * @dol on an empty list now doesn't give the weird "what do you want
- to do with the list" message. @dol with an empty command does. [RLM]
-
-Version 1.6.1 patchlevel 1 January 23, 1996
-
-Fixes:
- * v(#), v(!),and v(N) now return the same thing as %#, %!, and %N.
- [RLM]
-
-Version 1.6.1 patchlevel 0 January 21, 1996
-
-New compile-time options:
-
- * SAFER_UFUN: when defined, prevents less priv'd objects from
- evaluating ufuns on more priv'd objects, which helps a
- potential security problem with side-effect functions.
- This is more of a stopgap -- control and security will be
- revamped in a future release -- but is recommended.
-
-New .cnf directives:
-
- * player_creation enables/disables "create" at login screen.
- Also @enable/disable creation
- * use_dns enables/disables IP-to-hostname resolution
-
-New Functions:
-
- * tel(thing,destination)
- * oemit([room/]object,messsage)
- * emit(message)
- * lemit(message)
- * remit(object, message)
- * zemit(zone, message)
- * timestring(secs,flag) converts seconds to #d #h #m #s
- format. If flag is 1, the string always includes all time
- periods (e.g. timestring(301,1) = 0d 0h 5m 1s). If flag is
- 0 or omitted, only the necessary periods are included
- (e.g. timestring(301,0) = 5m 1s).
- * left(string, n) returns the first n characters of the string
- * right(string, n) returns the last n characters of the string
- * hasflag() syntax extended to hasflag(obj[/attr],flag) for
- checking attribute flags as well.
- * functions() lists all enabled functions
- * atrlock(obj/attr[,<on|off>])
- * doing(player) returns a player's @doing if they can be see
- on the WHO list
-
-Minor Changes:
-
- * @allquota now has /quiet switch, and works correctly when
- no limit is given. [NJG]
- * The restart script is now a lot smarter, and figures things
- out from mush.cnf. All that needs to be set is the location
- of the game directory, and if you use make customize, not
- even that.
- * @wall/@rwall/@wizwall with a null message fails. (src/speech.c)
- * SIGHUPs sent to the MUSH are now logged in netmush.log
- * Common code called when object ownership is changed has
- been encapsulated into a single function for modularity.
- * crypt() is now a macro on systems which can't define HAS_CRYPT
-
-Fixes:
- * The table() function was incorrectly truncating some
- list elements. Fixed. Report by Alaric@WoP
- * The match() function was returning an empty string instead
- of 0 when it failed to match. Fixed. Report by Alaric@WoP.
- * help math functions now list the transcendental and other
- floating point functions
- * map() and mix() were broken. Fixed. [TAP] (src/funlist.c)
- * @grep/print is now case-sensitive, like help says. (src/predicat.c)
- * Refunding money when objects are chowned
- was refunding 10 coins, instead of the object deposit. [RLM]
- * convtime() hadn't been converted to the new parser,
- and therefore was broken. Fixed. (src/funtime.c)
- * Compilation warning in src/game.c fixed
- * Giving players large negative amounts of money was slightly
- broken and is now fixed. Obscure, eh? [RLM] (src/rob.c)
- * Misleading comment in options.h.dist about QUEUE_LOSS
- fixed. [RLM]
- * Help fixed to indicate that there's no longer a 10 dimension
- limit on vector functions.
- * Various missing prototypes corrected.
- * make customize now correctly sets the restart script
- executable, and installs links to netmud and mkindx.
- * Improved Win32 portability [NJG]
- * Fixes to default() and edefault() [TAP]
-
-Version 1.6.0 patchlevel 5 January 17, 1996
-
-Fixes:
- * Extended chat: @chan/decomp shows privs correctly now
- * Extended chat: When a player is destroyed, channels they own
- are chowned to God.
-
-Version 1.6.0 patchlevel 4 January 17, 1996
-
-Fixes:
- * Extended chat: Formerly, non-players could create channels.
- No longer.
- * Extended chat: Channel creation cost is now refunded when
- channel is removed.
- * Help text for HALT (game/txt/pennflag.hlp) and SUBSTITUTIONS
- (game/txt/penn.hlp) now notes that HALTed objects do not
- evaluate functions or substitutions.
- * Nick Gammon's new email address is in README and win32/README
-
-
-Version 1.6.0 patchlevel 3 January 16, 1996
-
-Fixes:
- * default, edefault, udefault now work like Tiny 2.2, not eval'ing
- their arguments.
- * Many fixes to the extended chat system.
- * Fixed misspelling of Guest in @config.
- * @function on a non-existant object no longer crashes. [TAP]
- * Problems with paranoid dumps not setting the correct dbflags
- corrected. [TAP]
- * Problems with EXTENDED_MAIL crashing when using LOGOUT fixed. [RLM]
- * @warnings for exit-msgs and thing-msgs warned when there was
- no OFAIL on a locked exit/thing, which is silly. [1.6.0p1]
- * Started patching the CHANGES file, like I should.
- * Fixes customize.pl
- * Fixes update-cnf.pl so that 'make update' won't trash player_flags
- (and other repeatable directives) in mush.cnf
- * Fixes game/txt/README
-
-Version 1.6.0 patchlevel 0 January 10, 1996
-
-Major Changes:
-
- * New function parser with improved speed, sanity. [TAP]
- * Complete rewrite of destruction code. Undestroying supported
- for all objects, @adestroy works sanely, SAFE is safer,
- better consistency checking. [RLM]
- * Support for 'plural' gender for TinyMUSH compatibility. [2.2]
- * Most filenames are now 8.3, to support the win32 port
- * Some options have been moved to the runtime config file
- (dbcomp). Others have been removed entirely.
- * 'make update' will update runtime config directives
- * The chat system has been completely rewritten. Number of
- channels is limited only by memory, channels are saved
- across shutdowns (modifying source to add channels never
- required), channels can be locked in various ways,
- non-wizards can create channels, etc.
- * New .cnf directives: chat_database (where to store channels),
- max_player_chans (how many channels can a non-admin create),
- chan_cost (how much does creating a channel cost)
- * The CSRI malloc is now supported and suggested. In addition
- to being extremely memory-efficient, it offers leak detection
- and profiling features.
- * The database format now defaults to quoting text, which is
- less vulnerable to corruption, in particular the loading of
- attribute locks starting with a number. [1.50-15-04,05 TAP]
-
-New Functions:
-
- * matchall() [2.2]
- * default(), edefault(), udefault() [2.2]
- * aposs() and %a return absolute possessive pronouns [2.2]
- * elements() [2.2]
- * mudname(), version(), starttime() [2.2]
- * stats() is now an alias for lstats() [2.2]
- * ulocal() [2.2]
- * search() is now an alias for lsearch() [2.2]
- * folderstats() returns information about numbers of messages
- in a given @mail folder
- * last() is the counterpart to first(), and returns the last
- item in a list
- * mailtime(), mailstatus(). Suggested by Alaric@WorldOfPain.
-
-New Commands:
-
- * @emit can be abbreviated '\\', for TinyMUSH compatibility
- * The speech commands (say, pose, @[po]emit, whisper, page)
- can now take a /noeval switch, which prevents them from
- evaluating the message.
- * 'semipose' is an alias for pose/nospace
- * 'INFO' from the connection screen gives version info for
- the MUSH, for use by automated mudlists and the like.
- * @sitelock/name adds names to the banned names file.
- * @enable/@disable guests (and new cnf file directive guest_allow)
- * @decomp now takes /flags and /attribs switches to only decompile
- the creation/flags information or the attribute information.
- * @list command partially implemented for TinyMUSH compatibility.
-
-New Flags:
-
- * CLOUDY flag on exits provides partial transparency. A CLOUDY
- TRANSPARENT exit shows only the description of the room beyond,
- no contents. A CLOUDY but not TRANSPARENT exit shows only
- the contents, no desc.
- * FORCE_WHITE flag on an ANSI player forces their output to be
- reset to white, necessary for some poor ansi terminals which
- "bleed". [Kalkin]
-
-Minor Changes:
-
- * @chzone'ing an object to 'none' no longer clears its privbits.
- * OXMOVE attribute is shown to the room you're leaving.
- * Setting and resetting the SUSPECT flag is now logged in wizard.log
- * Various outdated defines have been removed from options.h/dune.h
- * Objects can now use @mail commands, as if they were their owners.
-
-Fixes:
-
- * idlesecs() now accepts "me".
- * "pose" (not ":") used to discard everything after an "=".
- * The "entries" entries in help.txt, etc, have been fixed a bit.
- * index(a| |b,|,2,1) now returns a null string instead of "|b"
- * Various memory leaks [1.50-15-01]
- * When fork fails, a non-forking dump is done, and the MUSH
- no longer exits. [1.50-15-02]
- * Soundex() no longer hangs on non-alphabetical. [1.50-15-06]
- * dist2d and dist3d are safer on non-IEEE math systems. [1.50-15-03]
- * mail() now counts messages across all folders
- * Better matching of del_check to add_check [1.50-15-11]
- * PennMUSH now compiles correctly without EXTENDED_MAIL
- [1.50-15-10]
- * Some fixes to unparse.c to stabilize huffman compression
- [1.50-15-09,RLM]
- * Fixes to @boot [1.50-15-08,TAP]
- * Fixes to variable exit handling by quick-unparse [1.50-15-07,AKM]
- * Configure now tries to find a full path for uptime(1) so that
- @uptime will work
- * Fixes to forbidden_site and forbidden_name when there's no
- sites/lockout/names file. [NJG]
- * Backspace handling for really dumb terminals improved [NJG]
- * When changing the text of an attribute, its flags are no longer
- reset. [RLM]
- * When seizing a link, coins weren't refunded if the seize failed.
-
-Version 1.50 patchlevel 14 July 3, 1995
-
-This patchlevel is primarily concerned with bugfixes and patch management.
-
-Maintainer changes:
- * New file 'Patchlevel' tracks mandatory patches to insure that they
- are applied in the proper order
- * Clearer 'restart' script. [TAP]
- * The indexing script for help/news/etc now creates the topic 'Entries'
- instead of 'Index', to prevent a conflict with 'help index()'.
- * The file hdrs/db.h is now hdrs/mushdb.h, to match Tiny 2.2 and
- because FreeBSD complains about db.h.
- * The links hdrs/dune.h and hdrs/options.h were unnecessary and
- are now removed.
- * The noforking dump messages have been moved to mush.conf
-
-Commands:
- * The @set obj1=attrib1:_obj2/attrib2 form no longer works, as
- it conflicts with general attempts to set attributes that start
- with underscores. Use @cpattr for copying attributes.
-
-Options:
- * EXITS_CONNECT_ROOMS, if defined, prevents rooms with at least one
- exit from being announced to players as "disconnected rooms".
- * RALPH_DEBUG option allows for improved DEBUG flag output. [RLM]
- * When MEM_CHECK is defined, it dumps mem_check info to the
- checkpt.log before each dump.
- * SAFER_PLAYER_NAMES options has been removed. Player names can't
- contain those funny characters, period.
-
-Fixes:
- * Added -D_INCLUDE_AES_SOURCE to hpux hints
- * stdlib.h is now included in eval.c to get atof. This was breaking
- linux MUSHes badly.
- * Linux hints now use BSD signal semantics.
- * Various attempts to fix possibly unusual bugs in compression.
- * The internal TRANSPARENT flag bit macro is now TRANSPARENTED,
- because Solaris defines TRANSPARENT
- * A bug causing setq'd registers to be incorrectly munged has been fixed.
- * @chzone warning messages refer to zone-lock, not elock, if RALPH_LOCKS
- are compiled in.
- * Examining a player who was on a null channel was reported to crash
- one MUSH. Some attempts have been made to fix that problem.
- * The compose.csh script in game/txt has been replaced by
- compose.sh, which now deals properly with systems which are missing
- perl (gasp!)
- * Configure script hopefully won't die when checking signals on Linux.
- * Fixes to some strange @mail behavior. [RLM]
- * CType in compress_h.c is now unsigned long, not long. [RLM]
- * Fix to converting old maildbs to mail subjects [RLM]
- * Bigram compression could (rarely) cause $commands or ^patterns
- to stop functioning.
- * GoodObject() used to consider db_top to be a valid dbref. It's not.
- * Recycling of objects was broken in pl13 and is now fixed. [RLM]
- * mush.conf can now deal with the FIXED flag as a default flag [RLM]
- * A lot of mem_checks weren't being deleted, especially exec.buff ones.
- * Defining COMPRESSION_TYPE to be 0 (no compression) now works. [TAP]
- * Paranoid dumps no longer stomp out tabs and newlines unnecessarily.
- * Configure now checks for IEEE math compliance, and defines HAS_IEEE_MATH
- which is used by the code to determine if some math functions need
- to be limited.
- * SOLARIS defines have been removed as extraneous.
-
-Version 1.50 patchlevel 13 June 1, 1995
-
-Patchlevel 13 was very much a collaborative effort with Ralph Melton
-and T. Alexander Popiel, terrific MUSHhacks.
-
-Major user changes:
-
- * Complete rewrite of locks, which allows for many, many new
- locks, including user-defined locks, with reduced memory usage. [RLM]
- * @mail can now have a subject.
-
-Major maintainer changes:
- * The code now contains ANSI prototypes (if Configure ascertains that
- your compiler likes 'em) for easier debugging.
- * The help, news, and events entries are now managed in subdirectories
- of game/txt/, and automatically indexed.
- * The names.conf file now accepts wildcards
- * New Makefile target 'update' will propagate your options.h/dune.h
- settings into an options.h.dist/dune.h.dist template, ask you
- whether you want to define any newly-introduced options, ask
- you if you want to remove any obsoleted options, and write out
- new options.h/dune.h files.
- * Improvements to the autoconfiguration scripts, which now generate
- a config.h and confmagic.h file in the top-level directory. These
- headers tell the code what kinds of features are available.
- Accordingly, the old hdrs/config.h header file has been renamed
- hdrs/conf.h
- * The 'whisper_loudness' config directive in mush.conf sets the
- probability that a noisy whisper will be noticed in the room.
- * If the standard Huffman attribute compression gives you trouble, you
- can use the COMPRESSION_TYPE define to use the older bigram
- compression system, now auto-tuning, or no compression at all.
- * The TINY22_BOOLEANS option causes the MUSH's boolean functions
- (and(), or(), not()) to be compatible with TinyMUSH 2.2. In Tiny 2.2,
- only non-zero integers are "true". In PennMUSH's default, non-zero
- integers, non-negative db#'s, and strings are "true". You pick.
- * NO_NUKE_SAFE_PLAYER prevents @nuke from working (for Wizards) on
- players set SAFE. You have to unSAFE them first.
-
-New functions:
-
- * MWHO() function is like LWHO() but always evaluates as if the
- enactor were an unprivileged player. Useful for globals.
- * ISDAYLIGHT() returns 1 if it's daylight savings time, 0 if not.
- By Dave Sisson
- * CWHO() now returns a list of dbrefs, NOT NAMES. Much more flexible.
- * ITER() now can take a fourth argument, which is the output delimiter.
- You can have any string shoved between the output elements instead
- of a space (for example, a %r).
- * TABLE() for presenting lists in rows.
-
-New commands:
-
- * Players can connect with 'ch name password', which is just like
- 'cd', but connects hidden. Activated by defining DARK_CONNECT
- * @warnings now allows players to exclude warnings by using
- @warnings me=!warning. [RLM]
- * @ps/quick now displays only the summary line of @ps for players.
- * @decomp can take a /tf switch, which makes its output emulate
- the 'FugueEdit' object (originally by van@TinyTIM) which
- lets you use tf to edit attributes. Idea by Lord Argon.
-
-Minor changes:
-
- * The 'news code' and 'news changes' entries are now in help.txt,
- so you don't need to update your MUSH's news.txt files when you upgrade.
- * In an ambiguous situation (i.e., @dest foo when you carry
- foobar and foofoo), @dest will no longer pick one at random. It'll fail.
- * #0 is now evaluated as TRUE in the context of boolean functions,
- because it's a valid dbref (applies only #ifndef TINY22_BOOLEANS)
- * haspower() allows players to see powers on things they control,
- even with HASPOWER_RESTRICTED defined. [RLM]
- * O-attributes which evaluate to nothing are no longer displayed. [AKM]
- * Paranoid dumps no longer smash \r and \n.
- * @mvattr no longer deletes the original attribute if the copies fail.
- * Secure now stomps out ^'s
- * The getrandom() function has been rewritten. [RLM]
- * It's now a lot harder to have Guest and Wiz/Roy set on the same
- player. Players shouldn't be able to connect to Wiz/Roy Guests anymore.
- * HARSH_GUEST is now a lot harsher. Guests pretty much can't modify
- the database except to lock/unlock things they control.
- * players who are on a priv'd channel may speak/leave
- even after they lose their privs. [RLM]
- * Xenix options removed from options.h.dist, since the Xenix code
- isn't supported anymore anyway.
- * The size of MAX_COMMAND_LEN (and therefore all derived buffers)
- has been doubled.
- * Doing a 'make' from the src/ directory will now call the top-level
- makefile. This helps those who use emacs (like Ralph, who came up
- with this) and M-x compile from the srcdir.
- * @version shows compilation flags.
- * Admin WHO no longer wraps lines. Sitenames are truncated as needed. [TAP]
-
-Fixes
-
- * Repaging a player with a multi-word name works correctly now.
- * Players with the tport_anything power can teleport FIXED things.
- * @map works as documented again.
- * Paranoid @dumps don't give so many spurious bad attribute warnings.
- * ZMO elock checking now uses PLAYER_START and MASTER_ROOM instead
- of #0 and #2. [RLM]
- * @pemit/list now replaces ## with the target's db#, as the help says.
- * Subtle bug in exit matching fixed. [RLM]
- * escape() and secure() no longer parse their arguments.
- * The asterisk-line separators on the nologin messages have been
- prettified slightly, at Tigger's suggestion
- * Some systems didn't deal well with overflowing @doing and @poll's.
- Dave Sisson patched it.
- * Error in bsd.c when compiling with DARK_CONNECT but without ROYALTY
- fixed. (Reported by Suud@Gohs)
- * hasflag, andflags, and orflags patched to prevent mortals from
- using them to see mdark flags [RLM]
- * Type mismatch in warnings.c fixed [RLM]
- * fun_lcstr() and fun_ucstr() have been changed slightly in order to
- support unices like MachTen which appear to define tolower() as
- a macro meaning (isupper(x) ? _tolower(x) : (x)), and were getting
- hosed by the tolower(*ap++) call. Bug reported by Adrick.
- * It was possible to overflow the buffers in do_log by having a
- Wizard do @fo me=think lnum(5000), for example. No longer, I hope.
- Bug report and suggested fix by Adrick.
- * Removed an old bit of code that broke compiles using original mailer
- * The restart script is a little smarter about preserving databases.
- * Fixed a bug that caused ALWAYS_PARANOID to dump core.
-
-Version 1.50 patchlevel 12 March 23, 1995
-
-Major changes:
-
- * The matching routines in match.c have been rewritten to be
- reentrant, which fixes some subtle but important bugs
- * New Makefile target 'customize' for setting up customized
- per-mush subdirectories for those who run multiple mushes.
- * An untested DELETE_POWERS define in options.h, which will remove
- powers from a database, to make it easier to switch to TinyMUSH
-
-New flags/powers:
-
- * Things with the Pemit_All power can @pemit to HAVEN/ulocked players.
- Useful for globals.
-
---- Fixes ---
-
- * Previously, passing the elock of a ZoneMaster player allowed
- control over *all* the ZM's objects, including the ZM player itself.
- Players are no longer controllable this way.
- * Incorporated patch for compiling without CREATION_TIMES defined
- * Incorporated Ralph Melton's patch to warnings.c to fix core dump
- with multiple exits warning.
- * Nobody can @tel rooms any more. New code for @tel'ing exits has
- been written, however, and players may now @tel exits they control
- from rooms they control to rooms they control.
- * Z_TEL bug: players could defeat Z_TEL by entering an object and
- @tel'ing from there. Reported by Ralph Melton.
- * Bug in puppet checks in @teleport fixed.
- * Players in exactly 15 levels of container could defeat NO_TEL. Fixed.
-
-
-Version 1.50 patchlevel 11 March 5, 1995
-
-At Amberyl's suggestion, the "dune" numbering scheme has been
-abandoned. This is 1.50 pl11, and future versions will be numbered
-accordingly.
-
-Major changes:
-
- * All objects can now have creation dates. Non-player objects have
- attribute modification dates as well. Players have number of login
- failures since last logins tracked instead. Supported by
- ctime() and mtime() functions to return creation/modification time.
- (CREATION_TIMES define in dune.h)
- * The extended @mail system now maintains the maildb sorted by
- recipient, and each player descriptor has a pointer to where that
- player's mail begins in the maildb. This is much faster for reading
- and listing and clearing mail, only slightly slower when sending.
-
-New Commands:
-
- * @boot/me: boots a player's idle descriptor (to selfboot hung
- connections).
- * whisper has two switches: silent and noisy. Standard PennMUSH whisper
- is silent, and is the default unless NOISY_WHISPER is defined.
- * @grep can take two new switches, /ilist and /iprint, which are just
- like /list and /print, but case-insensitive.
-
-New Flags:
-
- * LIGHT (as in TinyMUSH): LIGHT objects/players appear in DARK rooms.
- In addition, LIGHT exits also show up.
- * Z_TEL: When set on a Zone Master Room or a room in a zone, prevents
- players from using @tel from that room to any room that's not in the
- same zone. Useful for puzzle areas or enforcing some IC constraints.
-
-New Functions:
-
- * The lsearch() command can take a range of db#'s
- * ctime() and mtime() functions (if CREATION_TIMES is defined)
- * grepi() is a case-insensitive grep
- * hasattr() returns 1 if an object has a given attribute
- * hasattrp() returns 1 if an object or its parent has a given attribute
-
-Minor Changes:
-
- * @away/@haven/@idle messages are not sent if they're null
- * Players always receive feedback when they use @hide
- * Players who are FIXED are now permitted to @tel objects into their
- inventory. This makes coding puppets which follow you much easier.
-
---- Fixes ---
-
- * examine/mortal now functions more like it should.
- * If a ZMO was elocked to an object in #2, players couldn't @chzone
- things to it. Reported by Melkor@Beleriand. Fixed.
- * WHO is grammatical when reporting # of connected players. Idea
- from Kalkin.
- * The Connected ('c') flag is no longer visible to mortals.
-
-
-Version 1.50 patchlevel dune2 March 5, 1995
-
-DuneSource pl2 changes
-
-Major changes:
-
- * Extensive warning system for things missing on objects, rooms, etc.
- @warnings command for players to set the level of warnings they want,
- @wcheck[/all] command for players to check an object (checks can also run
- at a God-configurable interval on the whole db), NOWARN flag for objects
- and players. Idea from Kalkin's adaptation of MUSE code, totally
- rewritten.
-
-
-New options (dune.h):
-
- * GUEST_TEXTFILE option enables a textfile (guest.txt by default)
- to be shown to Guests who log in. Idea and source code from Kalkin.
- * PAGELOCK_NOT_USELOCK option causes @lock/use to fail for players,
- requiring them to type @lock/page. The lock itself has not changed,
- just the interface, to remind players of its function. By Ralph Melton.
- * More control over possessive gets with the POSSESSIVE_GET define
- and the POSSGET_ON_DISCONNECTED define. Possessive get can be
- disabled, enabled for all but disconnected players, or enabled
- at all times (the default PennMUSH behavior)
-
-New functions:
-
- * lit() returns its input totally unparsed, and without spaces compressed.
- * t() returns the truthvalue of its input, guarranteed to be either
- 1 or 0.
- * objmem() and playermem() functions, return the memory usage of
- an object or all of a player's objects. Requires search_all power.
- * grab(list,pattern[,delimiter]), returns the first element of list
- which patches the pattern. Patterns are of the match() type.
- From the TinyMUSH 2.2 code.
-
-Minor Changes:
-
- * You must actually own an object (not just control it) or be a
- Wizard in order to set it chown_ok or dest_ok. By Ralph Melton.
- * You can use #$ in the actions in a switch() function
- or @switch/@select statement, and it will be replaced by the switch
- expression before executing or evaluating. This can improve
- efficiency and save space. For example:
- switch(complexfunc(%0),Bob,BobResult,#$)
- is equivalent to:
- switch(complexfunc(%0),Bob,BobResult,complexfunc(%0))
- but only requires a single evaluation of complexfunc(%0).
- Suggested by Kenric@DuneII.
- * "things" is a synonym for "objects" in @search now. By Ralph Melton
-
---- Fixes ---
-
- * #-2 is treated as a "0" (false, like #-1) in functions which need a
- logical value for it. Previously, it was treated as -2 (true).
- * @select is now considerably more efficient - it no longer will
- evaluate anything after the matched action. The old behavior
- could well be a bug in the right conditions as well.
- * atr_add now rejects null attribute names, so you probably can't set them
- any more. Suggested by Kalkin, the code's by Mike@StarWars.
- * Players can reset a DARK flag on themselves, but still can not
- set themselves DARK.
- * andflags(me,!Dc) used to return 1 if I am !dark and !connected,
- instead of !D and connected, as the help states. Fix by Ralph
- Melton.
- * Halting an object which is @wait'ing used to fail to decrement
- the owner's queue attrib. Fixed now. Patch by Ralph Melton.
- * set_flag uses strupper instead of upcasestr now, which should fix
- a bug on some systems wherein "cd" command would crash the MUSH and
- a similar bug wherein players connecting would crash the MUSH if
- the ON-VACATION flag was in use.
- * The old channel syntax (@channel foo=command) works again.
- * The RULES option now works.
- * The convtime() has been rewritten to work on NeXT's correctly.
- Previously, its malloc failed and it returned -1.
- * Systems which have getrlimit, but *don't* have RLIMIT_NOFILE,
- are now supported. Notably, Aix 2.x and 3.x.
- * The installation hints for Solaris 2 have been improved.
- WAIT_TYPE is defined as int, and if NBPC can't be found for
- getpagesize(), it'll try PAGESIZE instead. Thanks to Kalkin for these.
- * Installation for AIX has been improved. AIX required inclusion of
- sys/select.h in the IDENT stuff.
- * Various rewrites of tests against NOTHING to use the GoodObject()
- macro instead. Thanks to Ralph Melton for some of these.
- * Got rid of some warnings when compiling mkindx
-
-
-Version 1.50 patchlevel dune1 March 5, 1995
-
-DuneSource pl1 changes
-
-Major changes:
-
- * Whem players attempt to log in to a Guest character that is already
- in use, the server tries to find one that isn't, and connects the
- player to that. If it can't, you get the old behavior (two connections
- to the single Guest).
- * Extended @mail system is available with many new mail commands.
- * Dump warnings 5 minutes and 1 minute before non-forking
- dump, and optional announcement at completion of dump.
- * Guest players may not set attributes.
- * Kill command can be disabled.
- * @aconnect/@adisconnect messages on individual rooms.
-
-Changes to commands:
-
- * CD command at connection screen allows Wizards to connect to the game
- DARKly.
- * @sitelock command for on-the-fly sitelocking by Wizards.
- * @dump/paranoid can try to fix the db in memory, too.
- * @decomp/db, produces decomp output using dbref of object instead
- of its name.
- * ex/mortal, shows examine output as if player were mortal.
- * Option to rename @destroy to @recycle, since @dest and @desc are
- easy to confuse.
- * @restart command. Combines an @halt with triggering @startup.
- * @hide now provides feedback when used.
- * @find may be restricted to royalty, the only ones for whom it might
- possibly be useful.
- * @function now lets you know when it updates an @function.
- * The old (pl8?) @channel <channel>=<function> syntax is back, along
- with @channel/<function> <channel>, for those who liked it.
- * @grep can be either case-sensitive or not (the default).
- * If you don't specify the destination attribute in @cpattr, it
- assumes you want the same attrib name as the source attrib.
- * @mvattr, like @cpattr, but removes old attribute.
- * ANSI players now see their @edit additions in bold.
- * Rooms and exits can @emit. Rooms @emit into themselves (like @remit),
- and exits @emit to their source room.
- * @squota can now be given quota levels as +<quota> or -<quota>, to
- increase or decrease a player's quota from its current level.
-
-Changes to functions:
-
- * encrypt() and decrypt() functions.
- * hidden() function for checking if a player is hidden.
- * hastype() function for checking if a thing is a given type.
- * pemit() function sends pemits to a list of objects.
- * lparent() function, returns object's parent, grandparent, etc.
- * quota() function, returns a player's quota.
- * N-dimensional vector arithmetic functions: vadd(), vmul(), vsub(),
- vmag(), vdim(), vunit()
- * haspower() can be restricted to admin.
- * "Lower math" functions: shr(), shl(), inc(), dec()
- * beep() with no arguments produces a single beep.
- * pmatch() will now accept *player or #dbref arguments.
- * lsearchr() function does an lsearch *backwards* through the db.
-
-Changes to flags/powers:
-
- * Flags can be defined as dark (invisible to all but God),
- mdark (invisible to mortals), and odark (invisible to mortals who don't
- own the object) in flags.c.
- * @cemit can be granted as a power
- * The ability to set/unset the DEBUG flag on objects the player controls
- can be granted as the Can_Debug power. (Idea by Kenric@DuneII)
- * Optional COLOR flag to control reception of ANSI color apart from
- ANSI hiliting.
- * OPAQUE flag on exits. OPAQUE exits in translucent rooms look
- like normal exits in non-translucent rooms.
- * FIXED flag prevents @tel and home.
- * DARK Wizards need not trigger @aenter.
- * The SUSPECT flag is now abbreviated 's'.
- * NO_LEAVE flag on objects prevents 'leave' command from working in them.
- Useful for flying vehicles and the like.
-
-Minor changes:
-
- * &adestroy attribute triggered when object is dest'd.
- * Player/room/object names can appear automatically in bold.
- * Dark and Hidden players are distinguished on the admin WHO list
- * Dark and Hidden players are indicated on the admin DOING list
- * Wizards who idle are set hidden, not DARK. Same for royalty.
- * DARK wizards enter and leave @chat channels silently.
- * Royalty can now see the Wizard @channel/list
- * The mortal @channel/list lists only public channels.
- * @idle/@haven/@away attribs which evaluate to nothing are not
- sent to the paging player.
-
---- Fixes ---
-
- * TRANSPARENT variable exits don't crash the MUSH when looked at.
- * @channel/delete and @channel/privs take the right number of arguments
- * @decomp now decompiles flags properly.
- * When logins are disabled, players may not create characters.
- * The controls() function is made safer. Defining SAFER_CONTROL prevents
- anyone but God from controlling God, any non-wizard from controlling
- anything with a wizbit, and any non-admin from controlling anything with
- a roybit.
- * Player names are made safer. Defining SAFER_PLAYER_NAMES prevents the
- use of [, ], %, and \ in player names.
- * The strupper() function is made safer.
- * Mortals can remove the DEBUG flag on objects they own.
- * The set functions now take delimiters like they should.
- * Revwords() takes a delimeter, like it should.
- * @config displays whether function side effects are available correctly.
- It used to get it backwards.
- * Some checks against NOTHING have been changed to use the GoodObject()
- macro in look.c and possibly other places.
- * It's more difficult for players to enter themselves.
- * PLAYER_NAME_SPACES works right now, use double-quotes around
- multi-word names.
- * haspower() on unknown powers now returns #-1 NO SUCH POWER instead
- of a null string.
-
-Version 1.50 patchlevel 10 March 5, 1995
-
-Patchlevel 10 Changes
-
-New additions:
- - Guest is now a power. Set it on a player to restrict its command set.
- - New power Announce, which controls the ability to @wall.
- - Global r-registers are now preserved across the queue.
- - '#@' now replaces to the list-place for iter() and @dolist.
- - Timers now operate on absolute time, rather than game ticks.
- - Checks of $commands now obey parent uselocks.
- - Variable exit destinations. When you attempt to go through one of these
- exits, it evaluates the exit's DESTINATION attribute as a
- U-function, and uses the result accordingly.
- - Rooms can now be set LISTENER. The flag name has been changed to MONITOR
- (which is what it's called in 2.0), with LISTENER as an alias.
- (Thus the MONITOR flag on things/rooms and on players mean
- different things.)
- - If the EXTENDED_ANSI option is turned on, it enables the ansi() function,
- allowing ANSI control codes to be used.
- - New wizard command @log can write information to a log file.
- - @oemit now takes its target location from the person to exclude, not
- the person who is doing the @oemit (consistent with 2.0 behavior,
- and more flexible).
- - @ps now follows the 2.0 syntax. Items deleted from the queue are now
- counted, and the entire thing calls a single generic routine.
-
-Function changes:
- - More functions take delimiters. The newly-modified ones are:
- extract(), filter(), first() fold(), iter(), match(), member(), munge(),
- rest(), revwords(), setdiff(), setinter(), setunion(), shuffle(),
- sort(), splice(), wordpos(), words()
- - If function side effects are configured as enabled, the functions link(),
- set(), parent(), lock(), clone() and name() can make db changes.
- - controls() has been tweaked so it returns '#-1 <error message>' on invalid
- objects, for consistency with other functions and with 2.0.
- - delete() is now ldelete(). The new delete() function deletes characters
- from a string. This is a change to be consistent with 2.0.
- - lcon() is now consistent with the 2.0 convention -- no more partial lists;
- either you can get the entire list, or you can't get it at all.
- - locate() has some new parameters: 'c' matches 'carried exits', supported
- by match_carried_exit(). Exit matching now calls match_exit_internal().
- 'X' allows random choice if the result is ambiguous (#-2).
- - lsearch() now takes an EVAL class.
- - objeval() evaluates its first argument.
- - owner() now can take an object/attribute pair.
- - sort() autodetects for floating point, and uses qsort.
- - User-defined functions, such as U(), now return an empty string, rather
- than #-1 SOME ERROR MESSAGE, because 2.0 behavior is to return an empty
- string, and, generally, the empty string is easier to handle.
-
-New functions:
- - New substitution: %qN is equivalent to r(N) (also twiddled v() slightly)
- - Findable(). Can <a> locate <b>? Useful for those WHO-list-type globals.
- - Foreach(). Works basically like MAP(), but on strings.
- - Haspower(). Like hasflag(), but for powers.
- - Ports(). Returns the network descriptors a player is connected to.
- - Rloc(). Returns an object's location at a variable level.
- - Sortby(). Sorts a list by an arbitrary u-function.
- - Stripansi(). Strips the ANSI codes from a string.
-
-Important other changes:
- - Fixed a bug in the checking of ZMO locks in the game's internal controls().
- The privs parameter to eval_eboolexp() needs to be the ZMO in question,
- rather than the object itself, in order for attribute locks to work as
- would seem logical (the object being checked shouldn't even factor into
- the equation, since by definition zone control is based solely upon
- the ZMO's enter lock).
- - Because people seem to want it back, the "pose" command is back, together
- with a /nospace switch.
- - TRACE is now an alias for the DEBUG flag.
- - Player lookups on dbrefs work (i.e, '*#1' is now valid).
-
-Version 1.50 patchlevel 9
-
-Patchlevel 9 Changes
-
-New additions:
- - @cemit command emits to a channel.
- - "Quiet" channels added. They don't show connect/disconnect or joined/left.
- - '%c' returns the current command.
- - @dolist/notify queues a '@notify me' after queueing the list commands.
- - @pemit/list pemits to a list of dbrefs. No more @dolist/@pemits needed!
-
-New functions:
- - Center(): centers text on a field.
- - Cwho(): returns the names of players on a channel.
- - Isdbref(): checks if something's a valid dbref.
- - Map(): like iter() over a user-defined function.
- - Mix(): like map(), but takes two lists.
- - Munge(): combines lists, allowing you to do things like conversion sorts.
- - Objeval(): evaluates an expression from another object's viewpoint.
- - Trim(): trims characters at the beginning and/or end of strings.
-
-Other changes:
- - Add(), And(), Mul(), and Or() can take up to 100 arguments.
- - Channel commands are now switch-form.
- - Debug-flag output is neater and more useful.
- - Default input line length is 2K.
- - @grep output format is neater and shorters.
- - @link can link already-linked exits.
- - Locate() can take an 'l' parameter to check object location.
- - Output line termination is now carriage-return-newline.
- - Starting quota is now a conf option.
- - @wipe can take an object-attribute pattern.
-
-Important bugfixes and modifications:
- - Controls() now obeys the inherit flag.
- - Enactor (%#) in idesc evaluates to the player, not to the object.
- - The escape character is stripped by the parser.
- - Listening objects trigger enter/leave messages in DARK rooms.
- - Matching is only done on exits if there is no exact match after trying
- all other possibilities.
- - Non-INHERIT things can no longer @parent things which are INHERIT.
- - Delete(foo%b,1) and Delete(foo,1) now return the same result.
- - Replace(foo%b,1,Test) and Replace(foo,1,Test) now return the same result.
- - Taking from an object is now governed by control, as well as ENTER_OK.
-
-Version 1.50 patchlevel 8
-
-Patchlevel 8 Changes
-
-Major new features:
- - Players can now set an @alias.
-
-New additions:
- - Player ZONE flag and ZoneMaster control provide "safer" zones.
- - @hide command hides player from WHO list.
- - @oemit can take a room dbref, behaving like @remit with an exception.
- - mortal_dark and wizard attribute flags are settable. 'm' and 'w'.
- - @pcreate power added.
- - Channels can be wiped.
-
-New functions:
- - Visible(): can one object examine another object or attribute?
- - Items(), Element(): like Words() and Match(), but for arbitrary separators.
- - Delete(), Replace(), Insert(): list-manipulation, arbitrary separators.
- - Orflags(), Andflags(): check multiple flags.
- - Fullname(): full name of an object.
- - Many floating point functions.
-
-Other changes:
- - Lattr() can take an <obj>/<wildcard> pattern.
- - @prefix and @inprefix do pronoun substitution.
- - @search can take an 'eval' parameter.
- - No second arg to @lock or @link unlocks/unlinks.
- - Mail() can now, for wizards, give info about other players' mail.
- - Sort() now 'autodetects' sort type. Nsort() has been removed.
- - Get_eval() is an alias for U() rather than Eval().
- - Non-listening objects trigger @aenter and @aleave.
- - @search, @find, and examine always ignore the MYOPIC flag.
- - Queue deposits get refunded at startup.
- - Words() uses ' ' as the delimiter, _not_ any whitespace.
-
-Major bugfixes:
- - Many problems with flags have been fixed.
- - "#123's foo" is no longer matched the same as "#123".
- - Switch() nesting behaves properly.
- - Parser bug with '/' in pre-parsed attribute names fixed.
- - Remove() no longer screws up on things like 'remove(#434 #43 #22,#43)'
- - Index() and friends no longer screw up on null separators.
- - Squish() trims leading spaces properly.
- - Various bugs with setfunctions fixed.
- - Function recursion bug fixed.
- - @scan no longer chokes on '='.
- - no_inherit attribute flag works for real.
-
-Version 1.50 patchlevel 7
-
-Patchlevel 7 Changes
-
-Major new features:
- - Powers system. Individual objects and players can be given the ability
- to do special things, such as "examine anything", "teleport anywhere",
- "boot players", etc. The BUILDER and IMMORTAL flags are now powers.
- - Expanded flag system. Some flags are valid for more types of objects,
- and flag lookups are quicker. The flag order is now alphabetized,
- first by "generic" object type, then by specific object type.
- - User-defined global functions, which behave just like built-in MUSH
- functions, but are programmed in MUSH in a UFUN() format (i.e. you
- can call them like any other function, i.e. '@emit [my_function(foo)]')
- The "@function" command is used to define and list these functions.
- - Local variables (registers, numbered 0-9) which are retained for
- the duration of a single command. Extremely useful for storing long
- function evaluations, especially if you are programming "switchless".
- The setq() and r() functions are used to set and retrieve the registers.
-
-New additions:
- - "no_clone" attribute flag (do not copy attribute when object is @clone'd)
- - "@config/functions" lists all functions.
-
-New functions:
- - squish() removes leading and trailing spaces from a string, and crunches
- inter-word spaces down to a single space.
- - filter() returns members of a list for which a user-def'ed function
- evalutes to true ("1").
- - fold() recursively evaluates a user-def'ed function and list.
- - rjust() and ljust() pad strings with spaces (or another fill character)
- - nsort() sorts a list of numbers.
- - shuffle() randomizes order of elements in a list.
- - scramble() randomizes order of characters in a string.
-
-Other changes:
- - cat() can take an arbitrary number of arguments.
- - conn() and idlesecs() now recognize #dbref and *player. idle() is now
- an alias for idlesecs().
- - "Exits:" line in examine is back.
- - examine on non-existent attribute(s) returns "No matching attributes."
- - NO_COMMAND doesn't block ^, since you have to set the LISTENER flag anyway.
- - @config shows a couple more options.
- - The QUIET flag suppresses "Drained.", "Notified.", and "Halted."
- - Debug and Verbose output no longer clobber the stack.
- - switch() and iter() nested within other functions works properly.
- - Players cannot enter objects remotely via dbref.
-
-Version 1.50 patchlevel 6
-
-Patchlevel 6 Changes
-
-Major bugfixes:
- - Eval locks work with get(), ufun(), etc.
- - Rooms can use @trigger again.
-
-Changes to the parser:
- - Spaces are no longer added around equals signs in 'say', 'pose', etc.
- - The construction '<name of object> <command>' can no longer be used to
- force a nearby object. '<dbref of object> <command>' still works.
- - ITER() is much better-behaved; escapes and braces in the second
- argument are no longer needed. It also now works properly with ufun().
- - switch() can now take up to 100 arguments. Arguments to it are not
- evaluated until needed.
-
-Miscellaneous changes:
- - Royalty can now set themselves DARK, but this affects _only_ their
- visibility on the WHO list and related functions; they still appear
- in the visible contents list of a room, on channel who, etc.
- - Royalty can set themselves MONITOR.
- - The TERSE flag suppresses _only_ auto-look messages (so if you type
- 'look here' while TERSE, you will get the description of the room).
- - VAL() function returns the leading numeric prefix of a string.
- - INDEX() is an extract()-like function which works for an arbitrary
- character separator.
- - WHERE() returns the "true" location of an object.
- - HOME(), etc. now works on objects you do not control but are VISUAL.
- - REPEAT() of something zero times returns a blank string, not an error.
- - Commands done in GOING rooms are no longer considered invalid.
- - "@parent <object>" by itself unparents an object.
- - Exits in the same room as you are considered "nearby".
- - All attribute fetches use the same permission checks. LINK_OK on a
- zone object no longer allows zfun() to be done on the object if
- the attribute cannot normally be read.
- - Attribute flag sets added (@set obj/atr = flag). There are three
- settable flags, 'visual', 'no_command', and 'no_inherit'. 'Examine'
- displays these as 'v', '$', and 'i'.
- - The lcon(), lexits(), con(), exit(), and next() functions now check
- permissions differently. You can use these functions on a location
- that you own, or in a location that you are in and is not DARK.
- If you cannot check the room, these functions will return #-1 even
- if you have objects/exits in the room. This behavior is identical
- to TinyMUSH 2.0's, and provides more privacy.
- - 'examine' output for objects you don't control is now similar to
- TinyMUSH 2.0's. The option to examine public attributes by default
- is configurable.
-