These are the changes to TinyMUSH version 2.0 since Patchlevel 0 (which is
documented in the file NOTES).  Refer to the online help for more infomation
about new features or commands.

TinyMUSH 2.0 patchlevel 1:

- Replaced the dynahash database layer with Marcus Ranum's untermud
  database layer.  This fixes the 'attribute-eating' bug (aka the 'nothing'
  bug.)
- New switches to commands:
    @clone: /inherit /preserve.
- New commands: SESSION @last.
- New functuins: AFTER BEFORE ROOM REVERSE REVWORDS.
- Last successful connect displayed when you log in.
- Notice of any failed connects when you log in.
- Players with the BUILDER flag set are no longer sent home when their
  container teleports.
- Corrected a problem with wizards @destroying exits in another room.
- @dolist now runs the commands in the intuitive order.
- examine and @edit now support wildcard attribute names.
- @lock/unlock <obj>/<attr> only affects the locked flag of the attribute.
- @set <obj>/<attr> = [!]no_command now sets/clears the no_command flag on an
  attribute.
- You may overwrite/clear unlocked attributes owned by others on your objects.
- Locked attributes may not be changed at all.
- TinyMUD database files up to version 1.5.5 may be read in.

TinyMUSH 2.0 patchlevel 2a:

- Players and things may now have exits from them.
- @clone can now clone rooms and things.
- @decompile can decompile any object type.
- New locks (set by switches to @lock and @unlock commands):
    drop enter give leave page receive tport use
- Owned-by lock qualifier (matches anything owned by the owner of the object)
- Enter/leave aliases.
- You can get and drop exits.
- If the home or dropto of an object/room is destroyed, the home or dropto 
  is reset before the object is re-allocated.
- New functions: MAX MIN
- New switches to commands:
    @open: /inventory /location
    @clone: /inventory /location
- New attributes:
    @away @idle @reject: Page-return messages.
    @ealias @lalias: Enter aliases and leave aliases.
    @alias: An alternate name for a player (for paging, *-lookup, etc)
    @efail/@oefail/@aefail: for when you fail to ENTER somewhere.
    @lfail/@olfail/@alfail: for when you fail to LEAVE somewhere.
    @tport/@otport/@oxtport/@atport: for when you @teleport.
    Lastsite: the host from which you last logged in.
- You no longer get 'has left' and 'has arrived' when you drop or pick up
  hearing objects.  Others in the room (or in your inventory) still see them.
- You now always get the 'You get your xx penny deposit...' message when one
  of your objects is destroyed - even if it was automatically destroyed
  (say because it was an exit that was in a destroyed room).
- All objects that enter or look around in a location trigger the adesc and
  (if a room) asucc attributes.
- Whispering to faraway players (ala @pemitting to faraway players) is no
  longer allowed for nonnwizards.
- The HAVEN flag no longer blocks pages.  Use the new page lock for that.
- Fixed a couple of memory leaks.
- @decompile now takes a 'target name' and produces code to set attributes on
  the named target (if specified).

TinyMUSH 2.0 patchlevel 2b:

- New functions: SEARCH STATS.
- New flags: SAFE MONITOR.
- New switches to commands:
    @destroy: /override
- If you put a space after the colon in a colon-pose command (ie ': test'),
  then the space between your name and the message will be omitted.
  This makes ': test' equivalent to ';test'.
- Fixed a money leak in the @halt command.

TinyMUSH 2.0 patchlevel 2c:

- New functions: GET_EVAL ITER.
- Multiple @listens: Attributes of the form ^<pattern>:<commands> are checked
  when the object hears something if the MONITOR flag is set.  If the pattern
  matches, the commands are executed.

TinyMUSH 2.0 patchlevel 3:

- New functions: EDIT LOCATE SPACE SWITCH U.
- New command: @verb.
- New flag: AUDIBLE.
- New switches for commands:
  @boot: /port /quiet
  @sweep: /exits
  @toad: /no_chown
- New option for @list: db_stats.
- New attributes: @filter @infilter @inprefix @prefix.
- New locks: linklock teloutlock.
- Non-hearing objects no longer trigger adesc/asucc when they enter or look
  around in a location.  (Non-hearing objects looking is pointless).
- SESSION now displays user port number (really the internal file_id number)
- When invoked by wizards, WHO displays the player flags DARK, UNFINDABLE,
  and SUSPECT, and the site flags REGISTRATION, FORBIDDEN, and SUSPECT.
- When invoked by wizards, DOING displays the player flags DARK, UNFINDABLE,
  and SUSPECT.
- PernMUSH databases up to version 1.18.03 and TinyMUSE databases up to
  database version 7 may now be read.
- If a robot is @chowned as part of chowning all of a user's objects
  (via @destroy, @toad, or @chownall), the robot then owns itself and is
  not owned by the target player.

TinyMUSH 2.0 patchlevel 4:

- Dark wizards no longer generate '...has connected.' and
  '...has disconnected.' to those in the same room as them when they connect
  and disconnect.  Messages to their inventory are unaffected.
- Dark wizards no longer trigger OSUCC/ODROP/ASUCC/ADROP when traversing exits.
- If you connect to an already-connected character, others in the same room
  (and in your inventory) see the message '...has reconnected.'.
- If you QUIT from one session of a multiply-connected character, others in the
  room see '...has partially disconnected.'.
- @clone now lets you specify a different name for the new object
  (@clone <what>=<newname>)
- New switches for commands:
  @clone: /cost
- New option for @list: process
- Bug fixes:
  o Players may no longer name themselves to illegal names.
  o Infinite recursion with u() is no longer possible.
  o The inherit bit on players now works correctly.
  o Getting an unknown attribute (via get(obj/attr)) returns an empty string
    instead of "#-1 UNKNOWN ATTRIBUTE"
  o @search now correctly handles object-type-specific flags.
- The value of %# (and %n, etc) is now the object producing the message, rather
  than the object that ran the command that produced the message.  (Best
  example: A does '@tel B=#C', %# was A but is now B)

TinyMUSH 2.0 patchlevel 5:

- New commands: @parent @@.
- New functions: PARENT SIGN.
- New config directives: full_file full_motd_message function_invocation_limit
    function_recursion_limit idle_wiz_dark lock_recursion_limit max_players
    notify_recursion_limit status_file 
- New switches for commands:
  @clone: /parent
  @motd: /full
  drop enter get leave move: /quiet
  examine: /parent
- New attributes: @forwardlist
- New option for the @list command: bad_names
- New option for the @list_file command: full
- @pcreate now only requires wizard privs to run.
- @shutdown now takes an argument, which is written to the file named by the
  status_file config directive.
- IMMORTAL players and objects no longer consume money.
- There is now a runtime-configurable maximum number of users.
- DESTROY_OK things now show off their db-number and flags.
- examine/brief now always reports just the owner (or owner+name if so 
  configured)
- Teleporting through exits no longer generates the '...attempts to push you
  from the room.' messages.
- There are now function recursion and invoction limits enforced on each
  command (to stop runaway recursion)
- Setting something audible now generates the '...grows ears...' message.
- The HALTED flag no longer gets cleared on each startup.
- Dark wizards no longer trigger OFAIL/AFAIL on exits.
- @drain now refunds money for canceled commands.
- Message forwarding filters are now evaluated before performing the compare.
- The argument to @doing is no longer evaluated.
- Parent objects: provide defaults for attributes, exits, and $-commands.
- Wizards idle for longer than the default timeout are automatically set DARK.
  This is undone when they type a command.
- Formatting for '@list costs' and '@list options' improved.
- Disallowed playernames may now include wildcard characters.

TinyMUSH 2.0 patchlevel 6:

- The u() function can now look up attributes on other objects.
- The CONNECTED flag of dark wizards is no longer visible to nonwizards.
- Bug fixes:
    You must now pass the default lock of an object in order to take it from
       someone else, not the give lock.
    Wizards no longer accumulate money.
    examine/parent now works.
    Players may now clear their alias.
    Aleave/Oleave are now handled properly again.
    The parent field of each object is now properly initialized if the source
       database does not have parent information.
    You can no longer inadvertantly create a character with a null name.
    @search keywords 'eplayer', 'eroom', 'eobject', and 'eexit' now match
       the help file.
- Robots may only be created by players and INHERIT objects.
- %p/%o/%s now return 'its' or 'it' as appropriate for neuter objects.
- @clone now copies the parent of the original object unless you
  specify /parent