From The Fairy Garden MUSH
Jump to navigation Jump to search

Version 1.8.3 patchlevel 12 -- Feb 07, 2010

Major Changes:

  • 'mud_url' @config. If this is enabled, accessing the mush with an HTTP browser will redirect the user to the selected mud_url. (This may need some work and testing by a public place with many clients.)
  • The internal code for object matching has been rewritten, hopefully fixing a few bugs and improving match results in some cases.

Minor Changes:

  • align() can now do full justification.
  • Wrapping fixes in align().
  • Guests will no longer see "Guests can't do that" if @mail is restricted to noguest.
  • Helpfile cleanup.
  • Expand the @lock key optimizer. Try '@lock me=!!=me'.
  • When objects are destroyed, references to them in locks are replaced by #FALSE, so that a newly created object reusing some dbref won't pass locks it shouldn't.
  • /'s can now be included in the subject of a @mail message via doubling it up -- @mail foo=a//s//l/What's up?
  • locate() now ignores spaces in its 3rd argument.
  • Change the default mud_name in mush.cnf from TinyMUSH to PennMUSH. Suggested by many people over the years.
  • @firstexit can now take multiple exits, and can affect exits in other rooms.
  • Changed some default mush.cnf options.
  • Remove the old patches.h way of showing installed patches. It was broken and rarely used anyways.
  • Removed the little-used "page_cost" @config option.
  • Removed costs for @find, @zemit, @entrances and @mail/stats.
  • @hide can now affect a single descriptor, rather than all of a player's connections. A player is only considered hidden if all his connections are hidden. Wizards can also @hide other players.
  • Wizards no longer automatically @hide when set DARK (but are hidden when connecting dark with "cd").
  • sql() now takes a fourth argument, to return the number of affected rows.
  • baseconv() fixes for malformed input, "-" ambiguity in base 63/64, and missing "-" sign for single-digit output.
  • Flag names now have similar restrictions to attribute names.
  • The @ns*emit commands and ns*emit() functions are no longer restricted; when used by mortals, they work exactly the same as the non-ns versions.
  • Update autoconf to 2.65.
  • @grep/print now shows a : before the attribute contents, the same as examine.


  • Removed the /functions, /attribs, /commands and /flags switches from @config. Use @list/<switch> instead.
  • @decompile changes: added /name, the opposite of /db. You can now give a '=<prefix>' without needing the /prefix switch, and can use other switches with /tf, like @decomp/tf/flags <obj>.
  • @entrances can now take multiple switches, to show multiple types.
  • Removed the obsolete @map command.
  • @boot <player> now boots all of <player>'s connections, not just the first. Similarly, @boot/me boots all your idle connections.
  • @dump/debug was broken and undocumented.
  • Removed page/blind (and the blind_page config option).


  • llocks() without any arguments returns a list of the standard locks.
  • unsetq(), to erase queue registers.
  • and[l]flags(), or[l]flags(), andlpowers() and orlpowers() now all return #-1 if an invalid flag/power is given.
  • benchmark(), to benchmark softcode.
  • Added "flag" as a category to valid(), to check for valid names for @flag/add and @power/add.
  • New pfun() function, which evaluates attributes from your parent as if you were inheriting them, even if you have your own copy of the attr.
  • locate() can take a new parameter, 'x', which causes it to only match exact object names, ignoring partial matches.
  • ncand()/ncor(), short-circuit versions of nand()/nor().


  • Bug in ansi() when no colors are given and buffer_len is reached has been fixed.
  • Bug caused by silly assumptions in list2arr() regarding remove_markup fixed.
  • Using some substitutions on the connect/motd/etc attributes introduced in p11 could cause a crash.
  • Substitions on the connect/motd/etc attributes now work as expected when a player is connected.
  • English matching works better with possessive get (get box's 2nd thing). Also updated the I18N file, and added /po/pennmush.pot.
  • 'No such file' messages were logged by mistake when connect_file and similar options were set to a dbref/attr.
  • Some cygwin C library versions define the imaxdiv_t type but not the associated imaxdiv() function. Split them up into 2 configure checks.
  • Several math functions didn't complain if their first argument wasn't a valid number.
  • @wipe would incorrectly set the attribute list for an object in some cases, making some attributes appear to be deleted.
  • The Pueblo_Send @power did not allow objects to send restricted HTML tags, just attributes.
  • Fixed a crashbug in @uptime.
  • Various Pueblo fixes.