From The Fairy Garden MUSH
Jump to navigation Jump to search

Version 1.8.4 patchlevel 7 -- Sep 25, 2011


  • @elock, @eunlock, @ulock and @uunlock are deprecated.
  • @doing is now deprecated (see below).
  • The "newline_one_char" mush.cnf option is now deprecated, and will soon always be "Yes". If you have it set to No and have any code that assumes strlen(%r) == 2, you should change it now.

Major changes:

  • DOING is now a standard attribute. Your @doing can be any length, and doing() returns the whole string (though it will still be truncated when displayed on WHO), can contain ANSI and will be evaluated each time it's displayed, allowing for random/rotating doings. The @doing command will escape its input before setting into an attribute, for backwards compatability, but is now deprecated; use &doing to store code.
  • All objects with the same flags or powers set share the same storage for those flags. Large games should see slightly reduced memory use.

Minor changes:

  • Rewrite memcheck allocation tracking to use a more efficient data structure.
  • Help file improvements, by Ender and others.
  • Added a new 'getting started' helpfile, that gives a brief overview of how to move, talk, use channels and @mail.
  • @decompile now uses '&attr obj=value', even for standard attributes, to avoid possible clashes with command names.
  • Extended convtime understands timestamps of the form 'YYYY-MM-DD hh:mm:ss'.
  • pemit() now accepts a list of port numbers, to pemit to multiple ports at once.
  • Built in functions and commands can now be marked as being deprecated. Using one of these functions or commands results in a warning to the owner of the object executing them. Deprecated functions and commands might be removed in future patch levels; code using them needs to be rewritten.
  • Rewrite function restriction parsing and reporting to make it easier to add new restrictions.
  • Code cleanup.
  • Channels are now ungagged on disconnect, instead of connect, so you'll see your "<Foo> Bar has connected." message next time you log in.
  • WARN_ON_MISSING can now be @hooked. Also, help has been added for that and UNIMPLEMENTED_COMMAND.
  • fn() didn't always work correctly on a UserFn function, especially when nested in another function.
  • Accents are no longer stripped from output sent to players who haven't logged in (those at the connect screen).
  • Softcode functions are now passed an additional argument, eflags, by the hardcode, which should be used when the function calls process_expression(). See HACKING.184 for more info.


  • Mortals can now use lwho(me). Allows for lwho(%#) on ancestors to be used by all.
  • xwho() now takes an optional <looker> arg, like lwho().
  • rand() without an argument returns a floating point number greater than or equal to 0 and less than 1.
  • itemize() is now more ANSI-aware.
  • fullalias() didn't include old-style exit aliases (which were a part of the exit name).


  • New locks, @lock/filter and @lock/infilter, which must be passed (along with any @filter/@infilter set) for an object to forward sound.


  • Verified that Penn compiles using the clang compiler, and fix a few warnings it generated.
  • Better fix for the DBREFLIST issue fixed in p6.
  • @pemit/list stopped reporting when it failed to match an object in p5.
  • 'page' evaluated its args incorrectly when used in an $-command.
  • Win32 compile fixes.
  • Fix an off-by-one error in wrap(). Report by Padraic, patch by Minion [MG]
  • Sorting code didn't do proper objid checks, so setinter(#1:123, #1:456) would return #1:123 instead of nothing.
  • The Can_spoof power was only aliased to Can_nspemit (its original name) in upgraded dbs, not in new games created from minimal db.
  • Fix a crash bug in @function/restrict on malformed input.
  • Some fixes to the test suite.
  • @pageformat included nospoof information.
  • case() clobbered $0-$9 subs.
  • Named regexp captures -- (?P<NAME>pattern) -- were broken in a recent patchlevel.
  • Markup wasn't stripped from queued commands, making it possible for ANSI to bleed.
  • Pueblo players couldn't see ANSI in connect screens.
  • money() behaved incorrectly when the tiny_math config option was on.
  • Databases with 8-bit characters couldn't be saved using the internal libz compression routines.
  • It was possible to create a player with a forbidden name from the login screen.