[PENNMUSH-ANNOUNCE] 1.7.5-patch07

dunemush@pennmush.org dunemush at pennmush.org
Fri, 17 May 2002 10:55:19 -0500


This is patch07 to PennMUSH 1.7.5. After applying this patch, you will
have version 1.7.5p7

To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
	patch -p1 < 1.7.5-patch07
	./Configure -d
	make update
	make install

If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1',
not just 'patch -p1'.

Unix (or cygwin) users need not worry about failed hunks in src/switchinc.c,
hdrs/switches.h, hdrs/cmds.h, or hdrs/funs.h. These files are automatically
rebuilt on compile.

Then @shutdown and restart your MUSH.
    - Alan/Javelin

In this patch:

Utilities:
  * 'make globalinstall' will install executables, scripts, and
    a game/ directory structure in a global location (/usr/libexec/pennmush
    by default). Facilitates rpm builds. By Vadiv@M*U*S*H.
  * The utils/ln-dir.sh script can be used to clone a globalinstall'd
    pennmush for an individual MUSH/user. In combination, these two
    are a replacement for 'make customize', especially for mud hosters.
    By Vadiv@M*U*S*H.
  * You can now configure options.h settings from the command line
    using: make DEFINE="OPTION OPTION=value" UNDEFINE="OPTION" update
    This will mostly be useful for autoinstallers and packaging scripts.
    Suggested by Vadiv@M*U*S*H.
Minor Changes:
  * The default gcc compile flags now include some extra warnings.
  * The prefix-table code now only aliases down to unique prefixes.
    This prevents @w from calling @wipe (reported by Philip Mak),
    and means that you'll need to use alias.cnf to get some of those
    short aliases. [SW]
  * Attribute lookups only do prefix-matching on attributes with the
    AF_PREFIXMATCH flag. Most standard atr_tab.h attributes have this
    flag, but newly added @attributes won't. Solves a problem with 
    inadvertant prefix-matching of @attribs reported by Sam Knowlton.
Fixes:
  * Fixes from 1.7.4p18
  * @decomp/skipdefaults skips @lsets of default lock flags.
    Suggested by Oriens@Alexandria. [SW]
  * Typo in src/bsd.c corrected. Reported by Nymeria@M*U*S*H.
  * Missing prototype in src/help.c. Reported by Nymeria@M*U*S*H.
  * A bunch of linting.
  * Win32 portability fixes. [EEH]
  * Updated MSVC++ project files for win32. [EEH]
  * @newpassword = foo would change the password of an arbitrary player.
    This is now corrected. Report by Oriens@Alexandria.

Prereq: 1.7.5p6
*** 1_7_5.159/Patchlevel Mon, 22 Apr 2002 11:34:33 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.7 600)
--- 1_7_5.187(w)/Patchlevel Tue, 14 May 2002 23:23:37 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.8 600)
***************
*** 1,2 ****
  Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.5p6
--- 1,2 ----
  Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.5p7
*** 1_7_5.159/README Mon, 18 Jun 2001 10:36:58 -0500 dunemush (pennmush/4_README 1.8 600)
--- 1_7_5.187(w)/README Tue, 14 May 2002 23:09:54 -0500 dunemush (pennmush/4_README 1.9 600)
***************
*** 136,142 ****
  3. create options.h, or make update
  4. make install
  5. possibly make customize
! 6. edit game/mush.cnf and game/restart
  
       Here's the process in detail:
  
--- 136,142 ----
  3. create options.h, or make update
  4. make install
  5. possibly make customize
! 6. Read game/README and follow those instructions
  
       Here's the process in detail:
  
***************
*** 226,274 ****
  Files in these subdirectories will already be customized in many ways,
  so what follows may be slightly different. :)
  
! 6. The next step is to create your configuration file. In the game
! directory is a file called "mush.cnf". You may want to rename it <your
! MUSH name>.cnf.  This is a list of all runtime configuration options
! with their default settting. Change them as you see fit.  IMPORTANT: do
! not _delete_ any parameters. They all need to be there.
! 
! Under win32 using the Microsoft compiler, DO NOT rename mush.cnf.
! Also, ignore the restart script.  In the configuration file, turn
! off disk database compression; it is not supported.  Remove the
! .Z endings from all the database names.  If this is you first
! time starting a MUSH (or you want to start a new MUSH), copy
! game/data/minimal.db to game/data/outdb.  Then go to the game
! directory and run PennMUSH.exe.  Poof, you're done.
! 
! For anyone using something other than win32 with the Microsoft
! compiler, you must edit the restart script. You must change GAMEDIR
! to whatever directory the restart script is in, and should change
! CONF_FILE to the name of the configuration file if it's not mush.cnf.
! The restart script is written for sh, and assumes a fairly standard
! Berkeley UNIX setup. If you're on a HP-UX or SysV machine, for example,
! you may need to change the restart script a bit (the ps options, for
! example).
! 
! 
! You should now be ready to start the game.  This distribution comes
! packaged with a basic database - a God character, starting room, and
! master room. This file is called game/data/minimal.db.  The restart
! script will load this database if it doesn't find another database to
! load.  The god character "One" has no password, so you can log in
! without one. Of course, you should immediately set one (via @newpasswd).
! options.h has the Master Room as #2 by default; in the provided
! database, this room is created for you.
! 
! Now you should be set -- all you have to do now is customize the
! .txt files in the game directory.
! 
! The logfiles in the "log" directory generally contain useful
! information. You will probably want to read your main logfile (defined
! in the restart script) every time, since errors and other important
! messages get printed to that logfile.
  
! If you have any problems, see the section on Getting Help below - it
! has important information about how and where to get help!
  
  ============================================================================
  
--- 226,262 ----
  Files in these subdirectories will already be customized in many ways,
  so what follows may be slightly different. :)
  
! 6. Read game/README and follow those instructions.
  
! 
! PennMUSH has been tested on a fairly wide variety of machines and
! operating systems including at least:
! 
! 	NeXT Mach 2.1
! 	Sun Sparc SunOS 4.1.x
! 	Sun Sparc and i386 Solaris 2.x 
! 	DEC Decstation Ultrix 4.x and OSF/1
! 	DEC Alpha OSF/1 and Linux
! 	SGI Indy Irix 5.x and 6.x
! 	HP 9000 series HP-UX 8.x
! 	IBM RS/6000 AIX 3.2
! 	IBM S/390 Linux
! 	Novell Unixware SVR4
! 	Linux
! 	FreeBSD
! 	AT&T SVR4
! 	Windows 95/NT
! 	OS/2
! 
! There's no real reason why PennMUSH shouldn't compile on any 32-bit or
! better BSD, System V, or POSIX operating system.  Javelin does his
! development on a Linux PC or a Sun SPARC-series workstation, but has a
! variety of test platforms.
! 
! If you have serious problems, contact Javelin and he will try to help
! you. Email is the best way to get a fast response; in an emergency, you
! can bother him on a MUD, but for code problems, email will probably get
! you a better response.
  
  ============================================================================
  
***************
*** 373,388 ****
   
  V.    Additional Options, including Internationalization
  
! PennMUSH 1.7.3 has extensive support for running in non-English
! environments. There are two parts to this. First, what the mush
! considers to be valid characters, what's upper-case, what's
! lower-case, how they are sorted, and so on. The second is translating
! the messages produced by the game into another language. Helpfiles
! aren't translated.
! 
! There's only a few languages currently supported, as it takes someone
! fluent in one to add support for it. If you'd like to help out with
! this, see http://www.pennmush.org/translation.html.
  
  Both of these parts is controlled by the LANG or LC_ALL environment
  variables, which have the form "la_DI", where la is a language code
--- 361,375 ----
   
  V.    Additional Options, including Internationalization
  
! PennMUSH 1.7.3 and later have extensive support for running in non-English
! environments. There are two parts to this. First, what the mush considers
! to be valid characters, what's upper-case, what's lower-case, how they
! are sorted, and so on. The second is translating the messages produced
! by the game into another language. Helpfiles aren't translated.
! 
! There's a few languages currently supported, as it takes someone fluent
! in one to add support for it. If you'd like to help out with this,
! see http://www.pennmush.org/translation.html.
  
  Both of these parts is controlled by the LANG or LC_ALL environment
  variables, which have the form "la_DI", where la is a language code
***************
*** 431,549 ****
  
  ============================================================================
  
! VI.   Trouble-shooting
! 
! If you ever run into trouble, the your first reaction should ALWAYS be
! to back up your database. indb.Z.old is the file that the MUSH saves
! indb.Z to when the game, restarted, indb.Z is the file that the MUSH
! loaded at startup, and outdb.Z is the file to which the MUSH is
! currently dumping the database.
! 
! You can tell if a dump is (theoretically) complete by doing a
! "zcat <database file name> | tail -10".  The last line should read
! "***END OF DUMP***". If it doesn't, your database has been truncated
! for some reason. Check the logfile. Possible causes include a full
! process table, a full disk partition, or running out of disk quota.
! 
! Occasionally the dump process may dump core. This is caused by some
! sort of corruption in an attribute, normally. You can tell if the dump
! process has died by looking in your data directory; you will see
! something like "outdb.Z.#5#". Wait a few moments and check on the file
! again. If it has grown, then the game is in the process of a normal
! dump. If it hasn't, and there's a core file, then something has gone
! wrong. You should definitely shout a warning that building is not being
! saved.
! 
! To attempt to fix the problem, do a @dbck to take care of any possible
! minor weirdness in the database, then try doing a "@dump/paranoid", and
! reading the checkpoint logfile (default is log/checkpt.log). This is
! slow, but it will write out an uncorrupted database, and tell you what
! it fixed. Back up that database and indb.Z, then figure out what you're
! going to do next: you can take the game down with a kill -9, or attempt
! to manually fix the problem by either @destroying the offending object,
! or attempting to reset the attributes on the object that are causing a
! problem.  If "@dump/paranoid" dies, you are more or less out of luck.
! 
! The game may crash from time to time. It will generate a core file,
! usually; if you don't limit the coredumpsize or strip the executable,
! you should be able to get some useful information out of it, using a
! debugger. Javelin is interested in stack traces. You can do a stack
! trace in the following manner: Go into the directory where you keep
! your source code, and type
! 	<name of debugger> netmud ../game/core
! If you don't call your executable "netmud", substitute in whatever 
! you do call it.
! 
! You are looking for variables set to bizarre values - attempts to
! access objects that aren't there, attempts to use pointers which point
! to nothing, and the like.
! 
! If you are using the "adb" debugger (don't do this unless you really
! have absolutely nothing else available), you will see nothing. It's
! loaded and ready, though. Type "$c". This will print out a list of the
! functions it called. Type "$q" to quit. You can't really get much more
! useful information out of adb.
! 
! If you are using the "dbx" debugger, type "where" to see the stack
! trace. You can move through it using "up" and "down", and see exactly
! what the sequence of calls was. You can also use "print <variable
! name>" to see the value of a variable at the time the game crashed.
! The "gdb" debugger is similar to "dbx"; with that, you can abbreviate
! "print" as "p".
! 
! Javelin appreciates news of any bugs found, and any patches that have
! been written to deal with them. He is also interested in any extensions
! that people make to the code, and requests that ones that are of more
! than just local interest be sent to him for inclusion in the next
! release of this code.
! 
! One important thing to remember is, if the MUSH refuses to start, there
! is probably a good reason. Check the MUSH log, and the core file, if
! there is one. Make sure to back up your database before attempting to
! restart -- remember that every time it restarts, it overwrites
! indb.Z.old. If you restart three times and somehow manage to trash your
! database each time (for example, a full process table zero'ing out your
! files), you won't have a backup to restart from, unless you've backed
! up your database before trying!
! 
! You can also find helpful tips in Javelin's Guide for Gods,
! which is available on the WWW as
! 	http://pennmush.org/~alansz/guide.html
! and by ftp from pennmush.org as 
! 	/pub/DuneMUSH/Guide/guide-single.txt
! 
! PennMUSH has been tested on a fairly wide variety of machines and
! operating systems including at least:
! 
! 	NeXT Mach 2.1
! 	Sun Sparc SunOS 4.1.x
! 	Sun Sparc and i386 Solaris 2.x 
! 	DEC Decstation Ultrix 4.x and OSF/1
! 	DEC Alpha OSF/1 and Linux
! 	SGI Indy Irix 5.x and 6.x
! 	HP 9000 series HP-UX 8.x
! 	IBM RS/6000 AIX 3.2
! 	IBM S/390 Linux
! 	Novell Unixware SVR4
! 	Linux
! 	FreeBSD
! 	AT&T SVR4
! 	Windows 95/NT
! 	OS/2
! 
! There's no real reason why PennMUSH shouldn't compile on any 32-bit or
! better BSD, System V, or POSIX operating system.  Javelin does his
! development on a Linux PC or a Sun SPARC-series workstation, but has a
! variety of test platforms.
! 
! If you have serious problems, contact Javelin and he will try to help
! you. Email is the best way to get a fast response; in an emergency, you
! can bother him on a MUD, but for code problems, email will probably get
! you a better response.
! 
! ============================================================================
! 
! VII.  Getting Help, Reporting Bugs
  
  Here are some guidelines about where and how to report bugs or problems
  or generally look for help.
--- 418,424 ----
  
  ============================================================================
  
! VI.  Getting Help, Reporting Bugs
  
  Here are some guidelines about where and how to report bugs or problems
  or generally look for help.
***************
*** 599,605 ****
  
  ============================================================================
  
! VIII. Getting a .pennmush.org hostname and mailing lists
  
  Thanks to donations from the PennMUSH community, Javelin was able to
  register the pennmush.org domain name, and, if you're running a PennMUSH,
--- 474,480 ----
  
  ============================================================================
  
! VII. Getting a .pennmush.org hostname and mailing lists
  
  Thanks to donations from the PennMUSH community, Javelin was able to
  register the pennmush.org domain name, and, if you're running a PennMUSH,
***************
*** 620,626 ****
  
  ============================================================================
   
! IX. Amberyl's Comments
  
  These are in the first person.  :)
   
--- 495,501 ----
  
  ============================================================================
   
! VIII. Amberyl's Comments
  
  These are in the first person.  :)
   
***************
*** 655,664 ****
  
  ============================================================================
  
! IX, cont'd. Paul/Javelin's Comments
  
! And let me recognize T. Alexander Popiel, Ralph Melton, and Thorvald
! Natvig, other past and present members of the PennMUSH development team. 
  Working with them is a real pleasure.
  
  I am trying to keep extending the functionality of the server, while
--- 530,540 ----
  
  ============================================================================
  
! VIII, cont'd. Paul/Javelin's Comments
  
! And let me recognize T. Alexander Popiel, Shawn Wagner, Nick Gammon,
! Dan Williams, Ervin Hearn III, Ralph Melton, and Thorvald Natvig, other
! past and present members of the PennMUSH development or porting team.
  Working with them is a real pleasure.
  
  I am trying to keep extending the functionality of the server, while
***************
*** 672,678 ****
  
  ============================================================================
  
! IX, cont'd again. Alex/Talek's Comments
  
  Since Javelin last worked on this document, there has been a changing
  of the guard on the PennMUSH development team.  Ralph Melton has stepped
--- 548,554 ----
  
  ============================================================================
  
! VIII, cont'd again. Alex/Talek's Comments
  
  Since Javelin last worked on this document, there has been a changing
  of the guard on the PennMUSH development team.  Ralph Melton has stepped
*** 1_7_5.159/CHANGES.174 Mon, 22 Apr 2002 11:31:46 -0500 dunemush (pennmush/8_CHANGES 1.219.1.72.1.36 600)
--- 1_7_5.187(w)/CHANGES.174 Tue, 14 May 2002 22:02:36 -0500 dunemush (pennmush/8_CHANGES 1.219.1.72.1.52 600)
***************
*** 18,27 ****
  
  ==========================================================================
  
! Version 1.7.4 patchlevel 18		       April 14, 2002
  
  Fixes:
    * Help for following() function added. Report by Ashen-Shugar@Rhost.
  
  Version 1.7.4 patchlevel 17		       April 14, 2002
  
--- 18,62 ----
  
  ==========================================================================
  
! Version 1.7.4 patchlevel 19		       May 6, 2002
  
  Fixes:
+   * Win32 portability fixes. [EEH]
+ 
+ 
+ Version 1.7.4 patchlevel 18		       May 6, 2002
+ 
+ Minor Changes:
+   * The Mersenne Twister RNG has been backported from 1.7.5 into
+     this patchlevel, as it is not susceptible to some bugs that could
+     cause the RNG to hang the server. Report by Bellemore@M*U*S*H.
+   * Improved detection of info_slave errors. Based on patch by CU5.
+   * Rooms and exits can now be @forced. Suggested by Philip Mak.
+   * Deleting files from the hlp/nws/etc. directories is now sufficient
+     to cause game/txt/Makefile to rebuild the txt files. Patch by
+     Philip Mak.
+   * A see_all player may now use @chan/decompile on any channel.
+     Previously, the ROYALTY flag was required. Suggested by Oriens@Alexandria.
+ Fixes:
+   * The QUEUE and semaphore attributes aren't listed in @decompile
+     anymore. Suggested by Oriens@Alexandria. [SW]
+   * Several compiler warnings fixed. [SW]
+   * The LASTSITE and LASTIP attributes are now set locked and wizard by default,
+     to go along with the other connection-tracking attributes. [SW]
+   * Help on-vacation updated. Report by Nymeria@M*U*S*H.
    * Help for following() function added. Report by Ashen-Shugar@Rhost.
+   * The last line of the access.cnf file sometimes wouldn't get read 
+     properly. [SW]
+   * lnum improperly cached its return values without consideration for
+     changes in separator, so subsequent lnums with different separators
+     broke. Reported by Rhysem and Ambrosia@M*U*S*H. [TAP]
+   * Failing to speak on a channel you can't see no longer reveals the
+     full channel name. Reported by Vadiv@M*U*S*H.
+   * Passing a negative argument to the space() function now returns
+     an error string instead of 8192 blanks. Patch by Myrddin.
+   * Improved messages for following/unfollowing an ambiguous object.
+     Reported by Philip Mak.
+ 
  
  Version 1.7.4 patchlevel 17		       April 14, 2002
  
*** 1_7_5.159/CHANGES Thu, 25 Apr 2002 20:31:44 -0500 dunemush (pennmush/g/7_CHANGES 1.27.1.24 600)
--- 1_7_5.187(w)/CHANGES Wed, 15 May 2002 22:09:31 -0500 dunemush (pennmush/g/7_CHANGES 1.27.1.36 600)
***************
*** 18,23 ****
--- 18,59 ----
  
  ==========================================================================
  
+ Version 1.7.5 patchlevel 7                     May 14, 2002
+ 
+ Utilities:
+   * 'make globalinstall' will install executables, scripts, and
+     a game/ directory structure in a global location (/usr/libexec/pennmush
+     by default). Facilitates rpm builds. By Vadiv@M*U*S*H.
+   * The utils/ln-dir.sh script can be used to clone a globalinstall'd
+     pennmush for an individual MUSH/user. In combination, these two
+     are a replacement for 'make customize', especially for mud hosters.
+     By Vadiv@M*U*S*H.
+   * You can now configure options.h settings from the command line
+     using: make DEFINE="OPTION OPTION=value" UNDEFINE="OPTION" update
+     This will mostly be useful for autoinstallers and packaging scripts.
+     Suggested by Vadiv@M*U*S*H.
+ Minor Changes:
+   * The default gcc compile flags now include some extra warnings.
+   * The prefix-table code now only aliases down to unique prefixes.
+     This prevents @w from calling @wipe (reported by Philip Mak),
+     and means that you'll need to use alias.cnf to get some of those
+     short aliases. [SW]
+   * Attribute lookups only do prefix-matching on attributes with the
+     AF_PREFIXMATCH flag. Most standard atr_tab.h attributes have this
+     flag, but newly added @attributes won't. Solves a problem with 
+     inadvertant prefix-matching of @attribs reported by Sam Knowlton.
+ Fixes:
+   * Fixes from 1.7.4p18
+   * @decomp/skipdefaults skips @lsets of default lock flags.
+     Suggested by Oriens@Alexandria. [SW]
+   * Typo in src/bsd.c corrected. Reported by Nymeria@M*U*S*H.
+   * Missing prototype in src/help.c. Reported by Nymeria@M*U*S*H.
+   * A bunch of linting.
+   * Win32 portability fixes. [EEH]
+   * Updated MSVC++ project files for win32. [EEH]
+   * @newpassword = foo would change the password of an arbitrary player.
+     This is now corrected. Report by Oriens@Alexandria.
+ 
  Version 1.7.5 patchlevel 6                     April 22, 2002
  
  Config:
*** 1_7_5.159/game/txt/nws/index.nws Wed, 13 Dec 2000 15:49:16 -0600 dunemush (pennmush/11_index.nws 1.1.1.1.1.1.1.1 660)
--- 1_7_5.187(w)/game/txt/nws/index.nws Tue, 14 May 2002 23:52:14 -0500 dunemush (pennmush/11_index.nws 1.1.1.1.1.1.1.1.2.1 660)
***************
*** 1,6 ****
  
  & Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  changes                   code
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
--- 1,8 ----
  
  & Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  changes                   code                                               
! 
! & &Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*** 1_7_5.159/game/txt/hlp/pennvers.hlp Thu, 25 Apr 2002 20:31:44 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.9 600)
--- 1_7_5.187(w)/game/txt/hlp/pennvers.hlp Fri, 17 May 2002 10:43:04 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.1.1.5.1.4.1.1.1.1.1.1.1.7 600)
***************
*** 1,5 ****
  & changes
! & 1.7.5p6
  This is a list of changes in this patchlevel which are probably of
  interest to players. More information about new commands and functions
  can probably be gotten via 'help <name of whatever>'. 'help credits'
--- 1,5 ----
  & changes
! & 1.7.5p7
  This is a list of changes in this patchlevel which are probably of
  interest to players. More information about new commands and functions
  can probably be gotten via 'help <name of whatever>'. 'help credits'
***************
*** 11,16 ****
--- 11,53 ----
  A list of the patchlevels associated with each release can
  be read in 'help patchlevels'.
  
+ Version 1.7.5 patchlevel 7                     May 14, 2002
+ 
+ Utilities:
+   * 'make globalinstall' will install executables, scripts, and
+     a game/ directory structure in a global location (/usr/libexec/pennmush
+     by default). Facilitates rpm builds. By Vadiv@M*U*S*H.
+   * The utils/ln-dir.sh script can be used to clone a globalinstall'd
+     pennmush for an individual MUSH/user. In combination, these two
+     are a replacement for 'make customize', especially for mud hosters.
+     By Vadiv@M*U*S*H.
+   * You can now configure options.h settings from the command line
+     using: make DEFINE="OPTION OPTION=value" UNDEFINE="OPTION" update
+     This will mostly be useful for autoinstallers and packaging scripts.
+     Suggested by Vadiv@M*U*S*H.
+ Minor Changes:
+   * The default gcc compile flags now include some extra warnings.
+   * The prefix-table code now only aliases down to unique prefixes.
+     This prevents @w from calling @wipe (reported by Philip Mak),
+     and means that you'll need to use alias.cnf to get some of those
+     short aliases. [SW]
+   * Attribute lookups only do prefix-matching on attributes with the
+     AF_PREFIXMATCH flag. Most standard atr_tab.h attributes have this
+     flag, but newly added @attributes won't. Solves a problem with 
+     inadvertant prefix-matching of @attribs reported by Sam Knowlton.
+ Fixes:
+   * Fixes from 1.7.4p18
+   * @decomp/skipdefaults skips @lsets of default lock flags.
+     Suggested by Oriens@Alexandria. [SW]
+   * Typo in src/bsd.c corrected. Reported by Nymeria@M*U*S*H.
+   * Missing prototype in src/help.c. Reported by Nymeria@M*U*S*H.
+   * A bunch of linting.
+   * Win32 portability fixes. [EEH]
+   * Updated MSVC++ project files for win32. [EEH]
+   * @newpassword = foo would change the password of an arbitrary player.
+     This is now corrected. Report by Oriens@Alexandria.
+ 
+ & 1.7.5p6
  Version 1.7.5 patchlevel 6                     April 22, 2002
  
  Config:
***************
*** 231,241 ****
    * Indentation fixes [SW]
    * Fixes up to 1.7.4p12 merged in.
  
! & 1.7.4p18
! Version 1.7.4 patchlevel 18		       April 14, 2002
  
  Fixes:
    * Help for following() function added. Report by Ashen-Shugar@Rhost.
  
  & 1.7.4p17
  Version 1.7.4 patchlevel 17		       April 14, 2002
--- 268,314 ----
    * Indentation fixes [SW]
    * Fixes up to 1.7.4p12 merged in.
  
! & 1.7.4p19
! Version 1.7.4 patchlevel 19		       May 6, 2002
  
  Fixes:
+   * Win32 portability fixes. [EEH]
+ 
+ 
+ & 1.7.4p18
+ Version 1.7.4 patchlevel 18		       May 6, 2002
+ 
+ Minor Changes:
+   * The Mersenne Twister RNG has been backported from 1.7.5 into
+     this patchlevel, as it is not susceptible to some bugs that could
+     cause the RNG to hang the server. Report by Bellemore@M*U*S*H.
+   * Improved detection of info_slave errors. Based on patch by CU5.
+   * Rooms and exits can now be @forced. Suggested by Philip Mak.
+   * Deleting files from the hlp/nws/etc. directories is now sufficient
+     to cause game/txt/Makefile to rebuild the txt files. Patch by
+     Philip Mak.
+   * A see_all player may now use @chan/decompile on any channel.
+     Previously, the ROYALTY flag was required. Suggested by Oriens@Alexandria.
+ Fixes:
+   * The QUEUE and semaphore attributes aren't listed in @decompile
+     anymore. Suggested by Oriens@Alexandria. [SW]
+   * Several compiler warnings fixed. [SW]
+   * The LASTSITE and LASTIP attributes are now set locked and wizard by default,
+     to go along with the other connection-tracking attributes. [SW]
+   * Help on-vacation updated. Report by Nymeria@M*U*S*H.
    * Help for following() function added. Report by Ashen-Shugar@Rhost.
+   * The last line of the access.cnf file sometimes wouldn't get read 
+     properly. [SW]
+   * lnum improperly cached its return values without consideration for
+     changes in separator, so subsequent lnums with different separators
+     broke. Reported by Rhysem and Ambrosia@M*U*S*H. [TAP]
+   * Failing to speak on a channel you can't see no longer reveals the
+     full channel name. Reported by Vadiv@M*U*S*H.
+   * Passing a negative argument to the space() function now returns
+     an error string instead of 8192 blanks. Patch by Myrddin.
+   * Improved messages for following/unfollowing an ambiguous object.
+     Reported by Philip Mak.
+ 
  
  & 1.7.4p17
  Version 1.7.4 patchlevel 17		       April 14, 2002
***************
*** 5290,5297 ****
  For information on a specific patchlevel of one of the versions listed,
  type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3'
  
! 1.7.5: 0, 1, 2, 3, 4, 5, 6
! 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
  1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
  1.7.2: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
         19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35
--- 5363,5370 ----
  For information on a specific patchlevel of one of the versions listed,
  type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3'
  
! 1.7.5: 0, 1, 2, 3, 4, 5, 6, 7
! 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
  1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
  1.7.2: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
         19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35
*** 1_7_5.159/game/txt/hlp/pennfunc.hlp Mon, 22 Apr 2002 11:34:33 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.2 600)
--- 1_7_5.187(w)/game/txt/hlp/pennfunc.hlp Fri, 10 May 2002 22:07:00 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.2 600)
***************
*** 880,885 ****
--- 880,887 ----
    Example:
    > say [edit(this is a test,^,I think%b,$,.,a test,an exam)]
    You say "I think this is an exam." 
+ 
+   edit() can not replace a literal single ^ or $. Use regedit() for that.
    
    See also @edit, regedit().
  & ELEMENT()
*** 1_7_5.159/game/txt/hlp/pennflag.hlp Mon, 11 Mar 2002 18:22:55 -0600 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.2 600)
--- 1_7_5.187(w)/game/txt/hlp/pennflag.hlp Mon, 29 Apr 2002 11:55:40 -0500 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.1.1.2 600)
***************
*** 479,486 ****
  
    This flag may be used by the MUSH to allow players to indicate when 
    they have left for vacation, to prevent themselves from being purged
!   for inactivity. It is automatically cleared whenever a player logs in,
!   so players should @set it just prior to leaving the net.
  & OPAQUE
    Flag:  OPAQUE  (all types)
  
--- 479,488 ----
  
    This flag may be used by the MUSH to allow players to indicate when 
    they have left for vacation, to prevent themselves from being purged
!   for inactivity. Its usefulness depends on game policy.
! 
!   You will be notified (periodically and on connect) if you leave this flag 
!   set, to remind you to unset it when you return from vacation.
  & OPAQUE
    Flag:  OPAQUE  (all types)
  
*** 1_7_5.159/game/txt/hlp/penncmd.hlp Mon, 22 Apr 2002 11:34:33 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3 600)
--- 1_7_5.187(w)/game/txt/hlp/penncmd.hlp Mon, 06 May 2002 20:42:38 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.4 600)
***************
*** 3608,3615 ****
    The /list switch lets you whisper to many people at once. Multiple
    persons should be space-separated, and names with spaces should be
    enclosed in double-quotes.
- 
-   'whisper' can be abbreviated by just 'w'.  
  & WHO
    WHO   
  
--- 3608,3613 ----
*** 1_7_5.159/game/txt/hlp/index.hlp Tue, 09 Jan 2001 17:56:37 -0600 dunemush (pennmush/20_index.hlp 1.1.1.1.1.1.1.1.1.2.1.1.2.2 660)
--- 1_7_5.187(w)/game/txt/hlp/index.hlp Tue, 14 May 2002 23:52:14 -0500 dunemush (pennmush/20_index.hlp 1.1.1.1.1.1.1.1.1.2.1.1.2.2.2.2 660)
***************
*** 1,479 ****
  
  & Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  "                         $-commands                $-commands2
!  +                         1.50p6                    1.50p7
!  1.50p8                    1.50p9                    1.50p10
!  1.50p11                   1.50p12                   1.50p13
!  1.50p14                   1.50pdune1                1.50pdune2
!  1.6.0p0                   1.6.0p3                   1.6.0p4
!  1.6.0p5                   1.6.1p0                   1.6.1p1
!  1.6.10p0                  1.6.10p1                  1.6.10p2
!  1.6.10p3                  1.6.10p4                  1.6.10p5
!  1.6.10p6                  1.6.10p6                  1.6.2p0
!  1.6.2p1                   1.6.3p0                   1.6.3p1
!  1.6.3p2                   1.6.3p3                   1.6.3p4
!  1.6.3p5                   1.6.3p6                   1.6.3p7
!  1.6.4p0                   1.6.4p1                   1.6.4p2
!  1.6.5p0                   1.6.5p1                   1.6.5p2
!  1.6.5p3                   1.6.5p4                   1.6.6p0
  
  For more, see Entries-2
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-2
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  1.6.7p0                   1.6.7p1                   1.6.7p2
!  1.6.7p3                   1.6.7p4                   1.6.7p5
!  1.6.7p6                   1.6.8p0                   1.6.8p1
!  1.6.9p0                   1.6.9p1                   1.6.9p2
!  1.6.9p3                   1.6.9p4                   1.6.9p5
!  1.6.9p6                   1.6.9p7                   1.6.9p8
!  1.6.9p9                   1.7.0p0                   1.7.0p1
!  1.7.0p2                   1.7.0p3                   1.7.0p4
!  1.7.0p5                   1.7.0p6                   1.7.0p7
!  1.7.0p8                   1.7.0p9                   1.7.0p10
!  1.7.0p11                  1.7.0p11                  1.7.1p0
!  1.7.1p1                   1.7.1p2                   1.7.1p3
!  1.7.2p0                   1.7.2p1                   1.7.2p2
!  1.7.2p3                   1.7.2p4                   1.7.2p5
!  1.7.2p6                   1.7.2p7                   1.7.2p8
!  1.7.2p9                   1.7.2p10                  1.7.2p11
  
  For more, see Entries-3
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-3
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  1.7.2p12                  1.7.2p13                  1.7.2p14
!  1.7.2p15                  1.7.2p16                  1.7.2p17
!  1.7.2p18                  1.7.2p19                  1.7.2p20
!  1.7.2p21                  1.7.2p22                  1.7.2p23
!  1.7.2p24                  1.7.2p25                  1.7.2p26
!  1.7.2p27                  1.7.2p28                  1.7.2p29
!  1.7.2p30                  1.7.2p31                  1.7.2p32
!  1.7.3p0                   1.7.3p1                   1.7.3p2
!  1.7.3p3                   1.7.3p4                   1.7.3p5
!  1.7.3p6                   1.7.3p7                   1.7.3p8
!  1.7.3p9                   1.7.3p10                  1.7.3p11
!  1.7.3p12                  1.7.3p13                  :
!  ;                         @-attributes              @-building
!  @-general                 @-wizard                  @@
!  @@()                      @aahear                   @aclone
!  @aconnect                 @adeath                   @adescribe
  
  For more, see Entries-4
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-4
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @adestroy                 @adisconnect              @adrop
!  @aefail                   @aenter                   @afailure
!  @afollow                  @agive                    @ahear
!  @aidescribe               @aleave                   @alfail
!  @alias                    @allhalt                  @allquota
!  @amhear                   @amove                    @apayment
!  @areceive                 @asuccess                 @atport
!  @atrchown                 @atrlock                  @attribute
!  @aufail                   @aunfollow                @ause
!  @away                     @azenter                  @azleave
!  @boot                     @break                    @cemit
!  @channel                  @channel2                 @channel3
!  @channel4                 @channel5                 @charges
!  @chat                     @chown                    @chownall
!  @chzone                   @chzone2                  @chzoneall
!  @clock                    @clock2                   @clone
  
  For more, see Entries-5
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-5
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @command                  @comment                  @config
!  @conformat                @cost                     @cpattr
!  @create                   @dbck                     @death
!  @decompile                @decompile2               @decompile3
!  @describe                 @destroy                  @destroy2
!  @dig                      @dig2                     @disable
!  @doing                    @dolist                   @drain
!  @drop                     @dump                     @ealias
!  @edit                     @efail                    @elock
!  @emit                     @enable                   @enter
!  @entrances                @eunlock                  @exitformat
!  @failure                  @filter                   @filter2
!  @find                     @firstexit                @follow
!  @force                    @force2                   @function
!  @function2                @function3                @function4
!  @gedit                    @give                     @grep2
  
  For more, see Entries-6
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-6
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @grep                     @halt                     @haven
!  @hide                     @idescribe                @idle
!  @infilter                 @inprefix                 @kick
!  @lalias                   @leave                    @lemit
!  @lfail                    @link                     @list
! @listen <object> = <string>                         @listen2
!  @listmotd                 @lock                     @lock2
!  @lock3                    @lock4                    @lock5
!  @lock6                    @lock7                    @lock8
! @logwipe/<switch> <password>
!  @map2                     @mail                     @malias
!  @malias2                  @malias3                  @malias4
!  @malias5                  @map                      @motd
!  @move                     @mvattr                   @name
!  @nameformat               @newpassword              @notify
!  @nuke                     @odeath                   @odescribe
  
  For more, see Entries-7
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-7
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @odrop                    @oefail                   @oemit
!  @oenter                   @ofailure                 @ofollow
!  @ogive                    @oidescribe               @oleave
!  @olfail                   @omove                    @opayment
!  @open                     @oreceive                 @osuccess
!  @otport                   @oufail                   @ounfollow
!  @ouse                     @oxenter                  @oxleave
!  @oxmove                   @oxtport                  @ozenter
!  @ozleave                  @parent                   @password
!  @payment                  @pcreate                  @pemit
!  @pemit2                   @poll                     @poor
!  @power                    @prefix                   @ps
!  @purge                    @quota                    @readcache
!  @receive                  @recycle                  @rejectmotd
!  @remit                    @restart                  @runout
!  @rwall                    @rwallemit                @rwallpose
  
  For more, see Entries-8
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-8
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @scan                     @search                   @search2
!  @search3                  @select                   @set
!  @set2                     @set3                     @sex
!  @shutdown                 @sitelock                 @sitelock2
!  @sitelock3                @squota                   @startup
!  @stats                    @success                  @sweep
!  @switch                   @switch2                  @teleport
!  @tport                    @trigger                  @trigger2
!  @ufail                    @ulock                    @undestroy
!  @unfollow                 @unlink                   @unlock
!  @unrecycle                @uptime                   @uptime2
!  @use                      @uunlock                  @verb
!  @verb2                    @verb3                    @verb4
!  @version                  @vrml_url                 @wait
!  @wait2                    @wall                     @wallemit
!  @wallpose                 @warnings                 @warnings2
  
  For more, see Entries-9
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-9
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @warnings3                @wcheck                   @whereis
!  @wipe                     @wizemit                  @wizmotd
!  @wizpose                  @wizwall                  @zemit
!  @zenter                   @zleave                   \
!  abode                     abs()                     acos()
!  action lists              action2                   add()
!  after()                   ahelp                     alphamax()
!  alphamin()                and()                     andflags()
!  anews                     ansi                      ansi()
!  aposs()                   art()                     asin()
!  atan()                    atrlock()                 attrcnt()
!  attrib-ownership          attribute functions       attribute list
!  attributes                attributes list           attributes2
!  attributes3               attributes4               audible
!  audible2                  band()                    beep()
!  before()                  being killed              bitwise functions
  
  For more, see Entries-10
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-10
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  bnand()                   bnot()                    boolean functions
!  boolean values            boolean2                  bor()
!  bound()                   brackets()                brief
!  builder                   bxor()                    cand()
!  capstr()                  case()                    caseall()
!  cat()                     cd                        ceil()
!  cemit()                   center()                  cflags()
!  ch                        changes                   channel-list
!  channels()                chat                      chown_ok
!  clients                   clock()                   clone()
!  cloudy                    code                      color
!  commands                  comp()                    comsys
!  con()                     config()                  conn()
!  connected                 control                   controls()
!  convsecs()                convtime()                convutcsecs()
!  copyright                 copyrite                  cor()
  
  For more, see Entries-11
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-11
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  cos()                     costs                     create()
!  credits                   ctime()                   ctitle()
!  cv                        cwho()                    dark
!  dark2                     database                  dbref #
!  dbref functions           dbref number              dbref2
!  dbrefs                    debug                     debug2
!  dec()                     decrypt()                 default()
!  delete()                  destroy_ok                die()
!  dig()                     dist2d()                  dist3d()
!  div()                     doing                     doing()
!  drop                      drop-tos                  e()
!  edefault()                edit()                    element()
!  elements()                elock()                   emit()
!  enactor                   encrypt()                 endtag()
!  enter                     enter_ok                  entrances()
!  eq()                      escape()                  etimefmt()
  
  For more, see Entries-12
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-12
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  etimefmt2                 eval()                    evaluation order
!  evaluation2               events                    examine
!  executor                  exit()                    exits
!  exits2                    exp()                     extract()
!  failure                   fdiv()                    filter()
!  filterbool()              findable()                first()
!  fixed                     flag list                 flags
!  flags list                flags()                   flags2
!  flip()                    floating                  floating point functions
!  floor()                   floordiv()                fmod()
!  fold()                    fold2                     folderstats()
!  follow                    followers()               force_white
!  foreach()                 foreach2                  fullname()
!  function list             functions                 functions()
!  functions2                gagged                    gender
!  get                       get()                     get_eval()
  
  For more, see Entries-13
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-13
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  give                      global commands           globals
!  go                        going                     goto
!  grab()                    graball()                 grep()
!  grepi()                   gt()                      gte()
!  halt                      hasattr()                 hasattrp()
!  hasattrpval()             hasattrval()              hasflag()
!  haspower()                hastype()                 haven
!  help                      here                      hidden()
!  home()                    homes                     html
!  html functions            html()                    idle()
!  idlesecs()                if()                      ifelse()
!  inc()                     index                     index()
!  info                      information functions     inherit
!  inherit2                  insert()                  interiors
!  interiors2                inum()                    inventory
!  isdaylight()              isdbref()                 isint()
  
  For more, see Entries-14
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-14
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  isnum()                   isword()                  items()
!  iter()                    iter2                     itext()
!  judge                     jump_ok                   jury_ok
!  kill                      last                      last()
!  lastsite                  lattr()                   lcon()
!  lcstr()                   ldelete()                 leave
!  left()                    lemit()                   lexits()
!  license                   light                     link()
!  link_ok                   linking                   list functions
!  listen_parent             listening                 listening2
!  listening3                lists                     lit()
!  ljust()                   lmath()                   ln()
!  lnum()                    loc()                     localize()
!  locate()                  locate2                   lock list
!  lock types                lock()                    locking
!  locklist                  locks                     locktypes
  
  For more, see Entries-15
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-15
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  locktypes2                log()                     logout
!  look                      look2                     looping
!  lparent()                 lsearch()                 lsearch2
!  lstats()                  lt()                      lte()
!  lwho()                    macros                    macros2
!  mail()                    mail-admin                mail-folders
!  mail-other                mail-reading              mail-sending
!  maildstats()              mailfrom()                mailfstats()
!  mailstats()               mailstatus()              mailsubject()
!  mailtime()                map()                     master room
!  match()                   matchall()                matching
!  math functions            max()                     me
!  mean()                    median()                  member()
!  merge()                   mid()                     min()
!  mix()                     mod()                     modulo()
!  modulus()                 money                     money()
  
  For more, see Entries-16
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-16
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  monitor                   mortal                    move
!  mtime()                   mudname()                 mul()
!  munge()                   munge2                    munge3
!  mushcode                  mushcode2                 mwho()
!  myopic                    name()                    nand()
!  nattr()                   nearby()                  neq()
!  newbie                    newbie2                   newbie3
!  news                      next()                    no_command
!  no_leave                  no_tel                    no_warn
!  noleave                   non-standard attributes   nor()
!  nospoof                   not()                     nowarn
!  null()                    num()                     obj()
!  object parents            objeval()                 objmem()
!  oemit()                   on-vacation               opaque
!  open()                    or()                      orflags()
!  owner()                   page                      page2
  
  For more, see Entries-17
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-17
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  paranoid                  parent                    parent()
!  parents                   parents2                  parents3
!  parents4                  parents5                  parse()
!  patchlevels               pemit()                   pi()
!  player                    playermem()               pmatch()
!  poll()                    ports()                   pos()
!  pose                      pose2                     poss()
!  power()                   powers list               powers list2
!  powers()                  powers2                   pueblo
!  pueblo features           pueblo()                  puppet
!  puppets                   puppets2                  queue
!  quiet                     quit                      quota()
!  r()                       r-function                rand()
!  read                      regedit()                 regeditall()
!  regeditalli()             regediti()                regexp
!  regexp classes            regexp classes2           regexp examples
  
  For more, see Entries-18
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-18
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  regexp syntax             regexp syntax2            regexp syntax3
!  regexp syntax4            regexp syntax5            regexp syntax6
!  regexp syntax7            regexp syntax8            regexps
!  regexps2                  registers                 registers2
!  regmatch()                regrab()                  regraball()
! regular expression functions
!  remainder()               remit()                   remove()
!  repeat()                  replace()                 rest()
!  restarts()                restarttime()             restrict
!  restrict2                 restrict3                 reverse()
!  revwords()                right()                   rjust()
!  rloc()                    rnum()                    robbery
!  room                      room()                    round()
!  royalty                   rquota                    rules
!  s()                       s-function                safe
!  say                       score                     scramble()
  
  For more, see Entries-19
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-19
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  search()                  search2                   secs()
!  secure()                  semaphores                semaphores2
!  semaphores3               semaphores4               semaphores5
!  semaphores6               semipose                  session
!  set()                     setdiff()                 setinter()
!  setq()                    setq2                     setq3
!  setr()                    setting-attributes        setunion()
!  sex                       shl()                     shr()
!  shuffle()                 sign()                    sin()
!  slay                      softcode                  sort()
!  sortby()                  soundex()                 soundex2
!  soundlike()               soundslike()              space()
!  spellnum()                splice()                  spoofing
!  sqrt()                    squish()                  stack
!  starttime()               stats()                   stddev()
!  step2                     step()                    sticky
  
  For more, see Entries-20
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-20
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  strcat()                  string functions          strings
!  strinsert()               stripansi()               strlen()
!  strmatch()                sub()                     subj()
!  substitutions             substitutions2            substitutions3
!  substitutions4            success                   suspect
!  switch()                  switch2                   switchall()
!  switches                  t()                       table()
!  tag()                     tagwrap()                 take
!  tan()                     teach                     tel()
!  temple                    terse                     think
!  time functions            time()                    timefmt()
!  timefmt2                  timestring()              topics
!  topics2                   transparent               transparent2
!  trim()                    trunc()                   trust
!  trust2                    type()                    types of objects
!  types2                    u()                       u2
  
  For more, see Entries-21
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-21
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  u3                        ucstr()                   udefault()
!  ufun()                    ufun2                     ufun3
!  uldefault()               ulocal()                  ulocal2
!  unfindable                unfollow                  uninspected
!  unregistered              use                       user-defined commands
!  user-defined2             utctime()                 utility functions
!  v()                       v-function                vadd()
!  val()                     valid()                   vdim()
!  vdot()                    verbose                   verbs
!  version()                 visible()                 visual
!  vmag()                    vmax()                    vmin()
!  vmul()                    vrml                      vsub()
!  vunit()                   warnings                  warnings list
!  warnings list2            weirdansi                 where()
!  whisper                   whisper2                  white
!  who                       wildcards                 wipe()
  
  For more, see Entries-22
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- 
  & Entries-22
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  with                      wizard                    wordpos()
!  words()                   wrap()                    xget()
!  xor()                     z_tel                     zemit()
!  zfun()                    zmo                       zmp
!  zmr                       zone                      zone master rooms
!  zone masters              zone objects              zone()
!  zones                     zones2                    zones3
!  zones4
! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  
  & &Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  &help
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
--- 1,495 ----
  
  & Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  "                         $-commands                $-commands2              
!  +                         1.50p6                    1.50p7                   
!  1.50p8                    1.50p9                    1.50p10                  
!  1.50p11                   1.50p12                   1.50p13                  
!  1.50p14                   1.50pdune1                1.50pdune2               
!  1.6.0p0                   1.6.0p3                   1.6.0p4                  
!  1.6.0p5                   1.6.1p0                   1.6.1p1                  
!  1.6.10p0                  1.6.10p1                  1.6.10p2                 
!  1.6.10p3                  1.6.10p4                  1.6.10p5                 
!  1.6.10p6                  1.6.10p6                  1.6.2p0                  
!  1.6.2p1                   1.6.3p0                   1.6.3p1                  
!  1.6.3p2                   1.6.3p3                   1.6.3p4                  
!  1.6.3p5                   1.6.3p6                   1.6.3p7                  
!  1.6.4p0                   1.6.4p1                   1.6.4p2                  
!  1.6.5p0                   1.6.5p1                   1.6.5p2                  
!  1.6.5p3                   1.6.5p4                   1.6.6p0                  
  
  For more, see Entries-2
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-2
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  1.6.7p0                   1.6.7p1                   1.6.7p2                  
!  1.6.7p3                   1.6.7p4                   1.6.7p5                  
!  1.6.7p6                   1.6.8p0                   1.6.8p1                  
!  1.6.9p0                   1.6.9p1                   1.6.9p2                  
!  1.6.9p3                   1.6.9p4                   1.6.9p5                  
!  1.6.9p6                   1.6.9p7                   1.6.9p8                  
!  1.6.9p9                   1.7.0p0                   1.7.0p1                  
!  1.7.0p2                   1.7.0p3                   1.7.0p4                  
!  1.7.0p5                   1.7.0p6                   1.7.0p7                  
!  1.7.0p8                   1.7.0p9                   1.7.0p10                 
!  1.7.0p11                  1.7.0p11                  1.7.1p0                  
!  1.7.1p1                   1.7.1p2                   1.7.1p3                  
!  1.7.2p0                   1.7.2p1                   1.7.2p2                  
!  1.7.2p3                   1.7.2p4                   1.7.2p5                  
!  1.7.2p6                   1.7.2p7                   1.7.2p8                  
!  1.7.2p9                   1.7.2p10                  1.7.2p11                 
  
  For more, see Entries-3
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-3
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  1.7.2p12                  1.7.2p13                  1.7.2p14                 
!  1.7.2p15                  1.7.2p16                  1.7.2p17                 
!  1.7.2p18                  1.7.2p19                  1.7.2p20                 
!  1.7.2p21                  1.7.2p22                  1.7.2p23                 
!  1.7.2p24                  1.7.2p25                  1.7.2p26                 
!  1.7.2p27                  1.7.2p28                  1.7.2p29                 
!  1.7.2p30                  1.7.2p31                  1.7.2p32                 
!  1.7.2p33                  1.7.2p34                  1.7.2p35                 
!  1.7.3p0                   1.7.3p1                   1.7.3p2                  
!  1.7.3p3                   1.7.3p4                   1.7.3p5                  
!  1.7.3p6                   1.7.3p7                   1.7.3p8                  
!  1.7.3p9                   1.7.3p10                  1.7.3p11                 
!  1.7.3p12                  1.7.3p13                  1.7.3p14                 
!  1.7.4p0                   1.7.4p1                   1.7.4p2                  
!  1.7.4p3                   1.7.4p4                   1.7.4p5                  
!  1.7.4p6                   1.7.4p7                   1.7.4p8                  
  
  For more, see Entries-4
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-4
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  1.7.4p9                   1.7.4p10                  1.7.4p11                 
!  1.7.4p12                  1.7.4p13                  1.7.4p14                 
!  1.7.4p15                  1.7.4p16                  1.7.4p17                 
!  1.7.4p18                  1.7.4p19                  1.7.5p0                  
!  1.7.5p1                   1.7.5p2                   1.7.5p3                  
!  1.7.5p4                   1.7.5p5                   1.7.5p6                  
!  1.7.5p7                   :                         ;                        
!  @-attributes              @-building                @-general                
!  @-wizard                  @@                        @@()                     
!  @aahear                   @aclone                   @aconnect                
!  @adeath                   @adescribe                @adestroy                
!  @adisconnect              @adrop                    @aefail                  
!  @aenter                   @afailure                 @afollow                 
!  @agive                    @ahear                    @aidescribe              
!  @aleave                   @alfail                   @alias                   
!  @allhalt                  @allquota                 @amhear                  
  
  For more, see Entries-5
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-5
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @amove                    @apayment                 @areceive                
!  @asuccess                 @atport                   @atrchown                
!  @atrlock                  @attribute                @aufail                  
!  @aunfollow                @ause                     @away                    
!  @azenter                  @azleave                  @boot                    
!  @break                    @cemit                    @channel                 
!  @channel2                 @channel3                 @channel4                
!  @channel5                 @charges                  @chat                    
!  @chown                    @chownall                 @chzone                  
!  @chzone2                  @chzoneall                @clock                   
!  @clock2                   @clone                    @command                 
!  @comment                  @config                   @config attribs          
!  @config chat              @config cmds              @config cosmetic         
!  @config cosmetic2         @config costs             @config db               
!  @config dump              @config funcs             @config limits           
!  @config limits2           @config log               @config net              
  
  For more, see Entries-6
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-6
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @config parameters        @config tiny              @conformat               
!  @cost                     @cpattr                   @create                  
!  @dbck                     @death                    @decompile               
!  @decompile2               @decompile3               @describe                
!  @destroy                  @destroy2                 @dig                     
!  @dig2                     @disable                  @doing                   
!  @dolist                   @drain                    @drop                    
!  @dump                     @ealias                   @edit                    
!  @efail                    @elock                    @emit                    
!  @enable                   @enter                    @entrances               
!  @eunlock                  @exitformat               @failure                 
!  @filter                   @filter2                  @find                    
!  @firstexit                @follow                   @force                   
!  @force2                   @forwardlist              @function                
!  @function2                @function3                @function4               
!  @gedit                    @give                     @grep2                   
  
  For more, see Entries-7
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-7
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @grep                     @halt                     @haven                   
!  @hide                     @idescribe                @idle                    
!  @infilter                 @inprefix                 @kick                    
!  @lalias                   @leave                    @lemit                   
!  @lfail                    @link                     @list                    
!  @listen                   @listen2                  @listmotd                
!  @lock                     @lock2                    @lock3                   
!  @lock4                    @lock5                    @lock6                   
!  @lock7                    @lock8                    @lock9                   
!  @log                      @logwipe                  @lset                    
!  @map2                     @mail                     @malias                  
!  @malias2                  @malias3                  @malias4                 
!  @malias5                  @map                      @motd                    
!  @move                     @mvattr                   @name                    
!  @nameaccent               @nameformat               @newpassword             
!  @notify                   @nuke                     @odeath                  
  
  For more, see Entries-8
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-8
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @odescribe                @odrop                    @oefail                  
!  @oemit                    @oenter                   @ofailure                
!  @ofollow                  @ogive                    @oidescribe              
!  @oleave                   @olfail                   @omove                   
!  @opayment                 @open                     @oreceive                
!  @osuccess                 @otport                   @oufail                  
!  @ounfollow                @ouse                     @oxenter                 
!  @oxleave                  @oxmove                   @oxtport                 
!  @ozenter                  @ozleave                  @parent                  
!  @password                 @payment                  @pcreate                 
!  @pemit                    @pemit2                   @poll                    
!  @poor                     @power                    @prefix                  
!  @ps                       @purge                    @quota                   
!  @readcache                @receive                  @recycle                 
!  @rejectmotd               @remit                    @restart                 
!  @runout                   @rwall                    @rwallemit               
  
  For more, see Entries-9
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-9
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @rwallpose                @scan                     @search                  
!  @search2                  @search3                  @select                  
!  @set                      @set2                     @set3                    
!  @sex                      @shutdown                 @sitelock                
!  @sitelock2                @sitelock3                @squota                  
!  @startup                  @stats                    @success                 
!  @sweep                    @switch                   @switch2                 
!  @teleport                 @tport                    @trigger                 
!  @trigger2                 @ufail                    @ulock                   
!  @undestroy                @unfollow                 @unlink                  
!  @unlock                   @unrecycle                @uptime                  
!  @uptime2                  @use                      @uunlock                 
!  @verb                     @verb2                    @verb3                   
!  @verb4                    @version                  @vrml_url                
!  @wait                     @wait2                    @wall                    
!  @wallemit                 @wallpose                 @warnings                
  
  For more, see Entries-10
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-10
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  @warnings2                @warnings3                @wcheck                  
!  @whereis                  @wipe                     @wizemit                 
!  @wizmotd                  @wizpose                  @wizwall                 
!  @zemit                    @zenter                   @zleave                  
!  \                         ^                         abode                    
!  abs()                     accent()                  accent2                  
!  accent3                   accent4                   acos()                   
!  action lists              action2                   add()                    
!  after()                   ahelp                     alphamax()               
!  alphamin()                and()                     andflags()               
!  anews                     ansi                      ansi()                   
!  aposs()                   art()                     asin()                   
!  atan()                    atrlock()                 attrcnt()                
!  attrib-ownership          attribute functions       attribute list           
!  attributes                attributes list           attributes2              
!  attributes3               attributes4               audible                  
  
  For more, see Entries-11
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-11
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  audible2                  band()                    beep()                   
!  before()                  being killed              bitwise functions        
!  bnand()                   bnot()                    boolean functions        
!  boolean values            boolean2                  boolean3                 
!  bor()                     bound()                   brackets()               
!  brief                     builder                   bxor()                   
!  cand()                    capstr()                  case()                   
!  caseall()                 cat()                     cd                       
!  ceil()                    cemit()                   center()                 
!  cflags()                  ch                        changes                  
!  channel-list              channels()                chat                     
!  chown_ok                  chr()                     clients                  
!  clock()                   clone()                   cloudy                   
!  code                      color                     commands                 
!  comp()                    comsys                    con()                    
!  config()                  conn()                    connected                
  
  For more, see Entries-12
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-12
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  control                   controls()                convsecs()               
!  convtime()                convutcsecs()             copyright                
!  copyrite                  cor()                     cos()                    
!  costs                     create()                  credits                  
!  ctime()                   ctitle()                  cv                       
!  cwho()                    dark                      dark2                    
!  database                  dbref #                   dbref functions          
!  dbref number              dbref2                    dbrefs                   
!  debug                     debug2                    dec()                    
!  decrypt()                 default()                 delete()                 
!  desert                    destroy_ok                die()                    
!  dig()                     dismiss                   dist2d()                 
!  dist3d()                  div()                     doing                    
!  doing()                   drop                      drop-tos                 
!  e()                       edefault()                edit()                   
!  element()                 elements()                elist()                  
  
  For more, see Entries-13
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-13
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  elock()                   emit()                    enactor                  
!  encrypt()                 endtag()                  enter                    
!  enter_ok                  entrances()               eq()                     
!  escape()                  etimefmt()                etimefmt2                
!  eval()                    evaluation order          evaluation2              
!  events                    examine                   executor                 
!  exit()                    exits                     exits2                   
!  exp()                     extract()                 failure                  
!  fdiv()                    filter()                  filterbool()             
!  findable()                first()                   fixed                    
!  flag list                 flags                     flags list               
!  flags()                   flags2                    flip()                   
!  floating                  floating point functions  floor()                  
!  floordiv()                fmod()                    fold()                   
!  fold2                     folderstats()             follow                   
!  followers()               following()               foreach()                
  
  For more, see Entries-14
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-14
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  foreach2                  fullname()                function list            
!  functions                 functions()               functions2               
!  gagged                    gender                    get                      
!  get()                     get_eval()                give                     
!  global commands           globals                   go                       
!  going                     goto                      grab()                   
!  graball()                 grep()                    grepi()                  
!  gt()                      gte()                     halt                     
!  hasattr()                 hasattrp()                hasattrpval()            
!  hasattrval()              hasflag()                 haspower()               
!  hastype()                 haven                     help                     
!  here                      hidden()                  home                     
!  home()                    homes                     html                     
!  html functions            html()                    i18n                     
!  idle()                    idlesecs()                if()                     
!  ifelse()                  ilev()                    iname()                  
  
  For more, see Entries-15
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-15
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  inc()                     index                     index()                  
!  info                      information functions     inherit                  
!  inherit2                  insert()                  interiors                
!  interiors2                internationalization      inum()                   
!  inventory                 isdaylight()              isdbref()                
!  isint()                   isnum()                   isword()                 
!  itemize()                 items()                   iter()                   
!  iter2                     itext()                   judge                    
!  jump_ok                   jury_ok                   kill                     
!  last                      last()                    lastip                   
!  lastlogout                lastsite                  lattr()                  
!  lcon()                    lcstr()                   ldelete()                
!  leave                     left()                    lemit()                  
!  lexits()                  license                   light                    
!  link()                    link_ok                   linking                  
!  list functions            list()                    listen_parent            
  
  For more, see Entries-16
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-16
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  listening                 listening2                listening3               
!  lists                     lit()                     ljust()                  
!  lmath()                   ln()                      lnum()                   
!  loc()                     locale                    localize()               
!  locate()                  locate2                   lock list                
!  lock types                lock types2               lock()                   
!  locking                   locklist                  locks                    
!  locktypes                 locktypes2                log()                    
!  logout                    look                      look2                    
!  looping                   lparent()                 lplayers()               
!  lsearch()                 lsearch2                  lsearchr()               
!  lstats()                  lt()                      lte()                    
!  lvcon()                   lvexits()                 lvplayers()              
!  lwho()                    macros                    macros2                  
!  mail functions            mail()                    mail-admin               
!  mail-folders              mail-other                mail-reading             
  
  For more, see Entries-17
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-17
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  mail-sending              maildstats()              mailfrom()               
!  mailfstats()              mailstats()               mailstatus()             
!  mailsubject()             mailtime()                map()                    
!  master room               match()                   matchall()               
!  matching                  math functions            max()                    
!  me                        mean()                    median()                 
!  member()                  merge()                   mid()                    
!  min()                     mix()                     mix2                     
!  mod()                     modulo()                  modulus()                
!  money                     money()                   monitor                  
!  mortal                    move                      mtime()                  
!  mudname()                 mul()                     munge()                  
!  munge2                    munge3                    mushcode                 
!  mushcode2                 mwho()                    myopic                   
!  name()                    nand()                    nattr()                  
!  nearby()                  neq()                     new locks                
  
  For more, see Entries-18
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-18
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  newbie                    newbie2                   newbie3                  
!  news                      next()                    no_command               
!  no_leave                  no_tel                    no_warn                  
!  noaccents                 noleave                   non-standard attributes  
!  nor()                     nospoof                   not()                    
!  nowarn                    null()                    num()                    
!  obj()                     object parents            objeval()                
!  objmem()                  oemit()                   on-vacation              
!  opaque                    open()                    or()                     
!  ord()                     orflags()                 owner()                  
!  page                      page2                     paranoid                 
!  parent                    parent()                  parents                  
!  parents2                  parents3                  parents4                 
!  parents5                  parse()                   patchlevels              
!  pcreate()                 pemit()                   pi()                     
!  player                    playermem()               pmatch()                 
  
  For more, see Entries-19
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-19
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  poll()                    ports()                   pos()                    
!  pose                      pose2                     poss()                   
!  power()                   powers list               powers list2             
!  powers()                  powers2                   pueblo                   
!  pueblo features           pueblo()                  puppet                   
!  puppets                   puppets2                  queue                    
!  quiet                     quit                      quota()                  
!  r()                       r-function                rand()                   
!  read                      regedit()                 regeditall()             
!  regeditalli()             regediti()                regexp                   
!  regexp classes            regexp classes2           regexp examples          
!  regexp syntax             regexp syntax2            regexp syntax3           
!  regexp syntax4            regexp syntax5            regexp syntax6           
!  regexp syntax7            regexp syntax8            regexps                  
!  regexps2                  registers                 registers2               
!  regmatch()                regrab()                  regraball()              
  
  For more, see Entries-20
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-20
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  regraballi()              regrabi()                 regrep()                 
!  regular expression functions                        remainder()              
!  remit()                   remove()                  repeat()                 
!  replace()                 rest()                    restarts()               
!  restarttime()             restrict                  restrict2                
!  restrict3                 reverse()                 revwords()               
!  right()                   rjust()                   rloc()                   
!  rnum()                    room                      room()                   
!  round()                   royalty                   rquota                   
!  rules                     s()                       s-function               
!  safe                      say                       score                    
!  scramble()                search()                  search2                  
!  secs()                    secure()                  semaphores               
!  semaphores2               semaphores3               semaphores4              
!  semaphores5               semaphores6               semipose                 
!  session                   set()                     setdiff()                
  
  For more, see Entries-21
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-21
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  setinter()                setq()                    setq2                    
!  setq3                     setr()                    setting-attributes       
!  setunion()                sex                       shared                   
!  shared players            shared players2           shl()                    
!  shr()                     shuffle()                 sign()                   
!  sin()                     slay                      softcode                 
!  sort()                    sortby()                  soundex()                
!  soundex2                  soundlike()               soundslike()             
!  space()                   spellnum()                splice()                 
!  spoofing                  sqrt()                    squish()                 
!  stack                     starttime()               stats()                  
!  stddev()                  step2                     step()                   
!  sticky                    strcat()                  string functions         
!  strings                   strinsert()               stripaccents()           
!  stripansi()               strlen()                  strmatch()               
!  sub()                     subj()                    substitutions            
  
  For more, see Entries-22
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  & Entries-22
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  substitutions2            substitutions3            substitutions4           
!  success                   suspect                   switch()                 
!  switch2                   switchall()               switches                 
!  t()                       table()                   tag()                    
!  tagwrap()                 take                      tan()                    
!  teach                     tel()                     tel_ok                   
!  temple                    terse                     textfile()               
!  think                     time functions            time()                   
!  timefmt()                 timefmt2                  timestring()             
!  topics                    topics2                   translation              
!  transparent               transparent2              trim()                   
!  trunc()                   trust                     trust2                   
!  type()                    types of objects          types2                   
!  u()                       u2                        u3                       
!  ucstr()                   udefault()                ufun()                   
!  ufun2                     ufun3                     uldefault()              
! 
! For more, see Entries-23
! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
! & Entries-23
! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  ulocal()                  ulocal2                   unfindable               
!  unfollow                  uninspected               unregistered             
!  use                       user-defined commands     user-defined2            
!  utctime()                 utility functions         v()                      
!  v-function                vadd()                    val()                    
!  valid()                   vdim()                    vdot()                   
!  verbose                   verbs                     version()                
!  visible()                 visual                    vmag()                   
!  vmax()                    vmin()                    vmul()                   
!  vrml                      vsub()                    vunit()                  
!  warnings                  warnings list             warnings list2           
!  where()                   whisper                   whisper2                 
!  who                       wildcards                 wipe()                   
!  with                      wizard                    wordpos()                
!  words()                   wrap()                    xget()                   
!  xor()                     z_tel                     zemit()                  
! 
! For more, see Entries-24
! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
! & Entries-24
! -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  zfun()                    zmo                       zmp                      
!  zmr                       zone                      zone master objects      
!  zone master rooms         zone masters              zone objects             
!  zone()                    zones                     zones2                   
  
  & &Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  &help                                                                        
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*** 1_7_5.159/game/txt/evt/index.evt Mon, 17 Apr 2000 11:58:36 -0500 dunemush (pennmush/22_index.evt 1.1.1.1 660)
--- 1_7_5.187(w)/game/txt/evt/index.evt Tue, 14 May 2002 23:52:14 -0500 dunemush (pennmush/22_index.evt 1.1.1.1.2.1 660)
***************
*** 1,6 ****
  
  & Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
!  help
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
--- 1,7 ----
  
  & Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
! 
! & &Entries
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
*** 1_7_5.159/game/txt/Makefile Fri, 17 Nov 2000 09:24:35 -0600 dunemush (pennmush/35_Makefile 1.2 600)
--- 1_7_5.187(w)/game/txt/Makefile Fri, 03 May 2002 22:48:14 -0500 dunemush (pennmush/35_Makefile 1.2.1.1 600)
***************
*** 10,31 ****
  
  all: $(TXT)
  
! help.txt: hlp/*.hlp compose.sh
  	./compose.sh hlp
  	mv hlp.txt help.txt
  
! news.txt: nws/*.nws compose.sh
  	./compose.sh nws
  	mv nws.txt news.txt
  
! events.txt: evt/*.evt compose.sh
  	./compose.sh evt
  	mv evt.txt events.txt
  
! rules.txt: rules/*.rules compose.sh
  	./compose.sh rules
  
! index.txt: index/*.index compose.sh
  	./compose.sh index
  
  clean:
--- 10,31 ----
  
  all: $(TXT)
  
! help.txt: hlp/*.hlp hlp compose.sh
  	./compose.sh hlp
  	mv hlp.txt help.txt
  
! news.txt: nws/*.nws nws compose.sh
  	./compose.sh nws
  	mv nws.txt news.txt
  
! events.txt: evt/*.evt evt compose.sh
  	./compose.sh evt
  	mv evt.txt events.txt
  
! rules.txt: rules/*.rules rules compose.sh
  	./compose.sh rules
  
! index.txt: index/*.index index compose.sh
  	./compose.sh index
  
  clean:
*** 1_7_5.159/utils/update.pl Tue, 25 Sep 2001 15:42:13 -0500 dunemush (pennmush/43_update.pl 1.6 700)
--- 1_7_5.187(w)/utils/update.pl Wed, 08 May 2002 10:08:08 -0500 dunemush (pennmush/43_update.pl 1.7 700)
***************
*** 12,28 ****
  # 'make update' calls this.
  #
  # Here's how it works.
! # First, we make a backup of your old-file to old-file.bak
! # Then we read all the #def's in the old-file, and their
  #  associated comments. Associated comments means comments
  #  on the same line, after the define, or comments on lines
  #  preceding the define. We store the names of all the defines,
  #  their comments, and whether they're defined or not.
! # Then we do the same for the new-file. If we find a define
  #  that wasn't in the old-file, we show the user the comment
  #  and ask them how they want it set. Every time we write out
  #  a define, we delete it from the list of defines from old-file
! # Finally, if there's anything left from old-file that's not in
  #  new-file, we ask if the user would like to retain each one.
  #  Presumably users want to retain their custom defines, but don't
  #  want to retain obsoleted defines. Retained defines appear at
--- 12,33 ----
  # 'make update' calls this.
  #
  # Here's how it works.
! # 1. We make a backup of your old-file to old-file.bak
! # 2. We read all the #def's in the old-file, and their
  #  associated comments. Associated comments means comments
  #  on the same line, after the define, or comments on lines
  #  preceding the define. We store the names of all the defines,
  #  their comments, and whether they're defined or not.
! # 3. We check to see if there's are enviroment variables named DEFINE
! #  or UNDEFINE. If so we parse them. DEFINE may contain NAMEs or
! #  NAME=value pairs. UNDEFINE should contain only NAMEs.
! #  We consider these as if they were present in old-file. 
! #  These override old-file.
! # 4. We read in the new-file. If we find a define
  #  that wasn't in the old-file, we show the user the comment
  #  and ask them how they want it set. Every time we write out
  #  a define, we delete it from the list of defines from old-file
! # 5. Finally, if there's anything left from old-file that's not in
  #  new-file, we ask if the user would like to retain each one.
  #  Presumably users want to retain their custom defines, but don't
  #  want to retain obsoleted defines. Retained defines appear at
***************
*** 111,117 ****
  undef $comment; $incomment = 0;
  
  
! # Part 3 - read in the new file, modifying its definition lines to
  #          match the old file. If we come across a definition that
  #          isn't in the old file, ask the user about it. 
  print "*** Updating $old from $new...\n";
--- 116,143 ----
  undef $comment; $incomment = 0;
  
  
! # Part 3 - Check to see if we have environment variable SETTINGS and
! #          use those settings as if they were in the old file.
! if ($settings = $ENV{'DEFINE'}) {
!   print "\n*** Found a DEFINE environment variable - applying settings...\n";
!   @pairs = split ' ', $settings;
!   foreach (@pairs) {
!     if (($d,$v) = /(.+)=(.+)/) {
!       $defs{$d} = $v;
!     } else {
!       $defs{$_} = 'define';
!     }
!   }
! }
! if ($settings = $ENV{'UNDEFINE'}) {
!   print "\n*** Found an UNDEFINE environment variable - applying settings...\n";
!   @pairs = split ' ', $settings;
!   foreach (@pairs) {
!       $defs{$_} = 'undef';
!   }
! }
! 
! # Part 4 - read in the new file, modifying its definition lines to
  #          match the old file. If we come across a definition that
  #          isn't in the old file, ask the user about it. 
  print "*** Updating $old from $new...\n";
***************
*** 178,184 ****
  $final = $_;
  close(NEW);
  
! # Part 4 - if there are any definitions left from the old file,
  #          offer to delete them (or not)
  print "\n*** Checking for leftover defines from $old...\n";
  foreach $d (keys %defs) {
--- 204,210 ----
  $final = $_;
  close(NEW);
  
! # Part 5 - if there are any definitions left from the old file,
  #          offer to delete them (or not)
  print "\n*** Checking for leftover defines from $old...\n";
  foreach $d (keys %defs) {
*** 1_7_5.159/src/wiz.c Tue, 09 Apr 2002 11:29:01 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.5.1.1.1.1 660)
--- 1_7_5.187(w)/src/wiz.c Fri, 17 May 2002 10:43:23 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.2 660)
***************
*** 549,558 ****
      notify(player, "Sorry.");
      return;
    }
-   if (!Mobile(victim)) {
-     notify(player, T("You can only force players and things."));
-     return;
-   }
    if (options.log_forces) {
      if (Wizard(player)) {
        /* Log forces by wizards */
--- 549,554 ----
*** 1_7_5.159/src/utils.c Tue, 09 Apr 2002 11:29:01 -0500 dunemush (pennmush/b/27_utils.c 1.37 660)
--- 1_7_5.187(w)/src/utils.c Fri, 17 May 2002 10:43:23 -0500 dunemush (pennmush/b/27_utils.c 1.30.1.1.1.2 660)
***************
*** 31,36 ****
--- 31,39 ----
  #include <winbase.h>		/* For GetCurrentProcessId() */
  #undef OPAQUE			/* Clashes with flags.h */
  #endif
+ #include <ctype.h>
+ #include <fcntl.h>
+ #include "conf.h"
  
  #ifdef MEM_CHECK
  #include "memcheck.h"
***************
*** 46,54 ****
  #include "confmagic.h"
  
  dbref find_entrance(dbref door);
  
  Malloc_t
! mush_malloc(int size, const char *check)
  {
    Malloc_t ptr;
  #ifdef MEM_CHECK
--- 49,62 ----
  #include "confmagic.h"
  
  dbref find_entrance(dbref door);
+ void initialize_mt(void);
+ unsigned long genrand_int32(void);
+ long genrand_int31(void);
+ void init_genrand(unsigned long);
+ void init_by_array(unsigned long *, int);
  
  Malloc_t
! mush_malloc(Size_t size, const char *check)
  {
    Malloc_t ptr;
  #ifdef MEM_CHECK
***************
*** 203,210 ****
  }
  
  
- void init_genrand(unsigned long);
- void init_by_array(unsigned long *, int);
  #define N 624
  
  /* We use the Mersenne Twister PRNG. It's quite good as PRNGS go,
--- 211,216 ----
*** 1_7_5.159/src/help.c Mon, 15 Apr 2002 23:07:08 -0500 dunemush (pennmush/f/32_help.c 1.4.1.2.1.1.1.3.2.2.1.1.2.1.1.2.1.2.1.2.1.3 660)
--- 1_7_5.187(w)/src/help.c Fri, 17 May 2002 10:43:21 -0500 dunemush (pennmush/f/32_help.c 1.4.1.2.1.1.1.3.2.2.1.1.2.1.1.2.1.2.1.2.1.3.1.2 660)
***************
*** 33,38 ****
--- 33,39 ----
  
  static void do_new_spitfile _((dbref player, char *arg1,
  			       help_file *help_dat, int restricted));
+ static char *string_spitfile(help_file *help_dat, char *arg1);
  
  static void help_build_index _((help_file *h, int restricted));
  
***************
*** 307,313 ****
  
  }
  
- char line[LINE_SIZE + 1];
  static void
  help_build_index(h, restricted)
      help_file *h;
--- 308,313 ----
***************
*** 318,323 ****
--- 318,324 ----
    int i, n, lineno, ntopics;
    char *s, *topic;
    char the_topic[TOPIC_NAME_LEN + 1];
+   char line[LINE_SIZE + 1];
    FILE *rfp;
    tlist *cur;
  
***************
*** 441,447 ****
  {
    help_indx *entry = NULL;
    FILE *fp;
!   char *p, line[LINE_SIZE + 1];
    char the_topic[LINE_SIZE + 2];
    Size_t n;
    static char buff[BUFFER_LEN];
--- 442,448 ----
  {
    help_indx *entry = NULL;
    FILE *fp;
!   char line[LINE_SIZE + 1];
    char the_topic[LINE_SIZE + 2];
    Size_t n;
    static char buff[BUFFER_LEN];
*** 1_7_5.159/src/switchinc.c Sun, 28 Apr 2002 15:14:26 -0500 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1.1.2.1.5.1.2.1.5.2.3 660)
--- 1_7_5.187(w)/src/switchinc.c Fri, 17 May 2002 10:43:23 -0500 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1.1.2.1.5.1.2.1.5.2.1.1.5 660)
***************
*** 1,520 ****
  {
!   "ACCESS", SWITCH_ACCESS
! }
! ,
! {
!   "ADD", SWITCH_ADD
! }
! ,
! {
!   "ALL", SWITCH_ALL
! }
! ,
! {
!   "ANY", SWITCH_ANY
! }
! ,
! {
!   "ATTRIBS", SWITCH_ATTRIBS
! }
! ,
! {
!   "BAN", SWITCH_BAN
! }
! ,
! {
!   "BLIND", SWITCH_BLIND
! }
! ,
! {
!   "BRIEF", SWITCH_BRIEF
! }
! ,
! {
!   "CHECK", SWITCH_CHECK
! }
! ,
! {
!   "CHOWN", SWITCH_CHOWN
! }
! ,
! {
!   "CLEAR", SWITCH_CLEAR
! }
! ,
! {
!   "CMD", SWITCH_CMD
! }
! ,
! {
!   "COMMANDS", SWITCH_COMMANDS
! }
! ,
! {
!   "CONN", SWITCH_CONN
! }
! ,
! {
!   "CONNECT", SWITCH_CONNECT
! }
! ,
! {
!   "CONNECTED", SWITCH_CONNECTED
! }
! ,
! {
!   "CONTENTS", SWITCH_CONTENTS
! }
! ,
! {
!   "COSTS", SWITCH_COSTS
! }
! ,
! {
!   "COUNT", SWITCH_COUNT
! }
! ,
! {
!   "CREATE", SWITCH_CREATE
! }
! ,
! {
!   "DATABASE", SWITCH_DATABASE
! }
! ,
! {
!   "DB", SWITCH_DB
! }
! ,
! {
!   "DEBUG", SWITCH_DEBUG
! }
! ,
! {
!   "DECOMPILE", SWITCH_DECOMPILE
! }
! ,
! {
!   "DEFAULTS", SWITCH_DEFAULTS
! }
! ,
! {
!   "DELETE", SWITCH_DELETE
! }
! ,
! {
!   "DELIMIT", SWITCH_DELIMIT
! }
! ,
! {
!   "DESCRIBE", SWITCH_DESCRIBE
! }
! ,
! {
!   "DESTROY", SWITCH_DESTROY
! }
! ,
! {
!   "DISABLE", SWITCH_DISABLE
! }
! ,
! {
!   "DOWN", SWITCH_DOWN
! }
! ,
! {
!   "DSTATS", SWITCH_DSTATS
! }
! ,
! {
!   "EMIT", SWITCH_EMIT
! }
! ,
! {
!   "ENABLE", SWITCH_ENABLE
! }
! ,
! {
!   "ERR", SWITCH_ERR
! }
! ,
! {
!   "EXITS", SWITCH_EXITS
! }
! ,
! {
!   "FILE", SWITCH_FILE
! }
! ,
! {
!   "FIRST", SWITCH_FIRST
! }
! ,
! {
!   "FLAGS", SWITCH_FLAGS
! }
! ,
! {
!   "FOLDERS", SWITCH_FOLDERS
! }
! ,
! {
!   "FORWARD", SWITCH_FORWARD
! }
! ,
! {
!   "FSTATS", SWITCH_FSTATS
! }
! ,
! {
!   "FULL", SWITCH_FULL
! }
! ,
! {
!   "FUNCTIONS", SWITCH_FUNCTIONS
! }
! ,
! {
!   "FWD", SWITCH_FWD
! }
! ,
! {
!   "GAG", SWITCH_GAG
! }
! ,
! {
!   "GLOBALS", SWITCH_GLOBALS
! }
! ,
! {
!   "HEADER", SWITCH_HEADER
! }
! ,
! {
!   "HERE", SWITCH_HERE
! }
! ,
! {
!   "HIDE", SWITCH_HIDE
! }
! ,
! {
!   "ILIST", SWITCH_ILIST
! }
! ,
! {
!   "INVENTORY", SWITCH_INVENTORY
! }
! ,
! {
!   "IPRINT", SWITCH_IPRINT
! }
! ,
! {
!   "JOIN", SWITCH_JOIN
! }
! ,
! {
!   "LIST", SWITCH_LIST
! }
! ,
! {
!   "LOWERCASE", SWITCH_LOWERCASE
! }
! ,
! {
!   "ME", SWITCH_ME
! }
! ,
! {
!   "MEMBERS", SWITCH_MEMBERS
! }
! ,
! {
!   "MOD", SWITCH_MOD
! }
! ,
! {
!   "MORTAL", SWITCH_MORTAL
! }
! ,
! {
!   "MOTD", SWITCH_MOTD
! }
! ,
! {
!   "MUTE", SWITCH_MUTE
! }
! ,
! {
!   "NAME", SWITCH_NAME
! }
! ,
! {
!   "NO", SWITCH_NO
! }
! ,
! {
!   "NOEVAL", SWITCH_NOEVAL
! }
! ,
! {
!   "NOFLAGCOPY", SWITCH_NOFLAGCOPY
! }
! ,
! {
!   "NOISY", SWITCH_NOISY
! }
! ,
! {
!   "NOSIG", SWITCH_NOSIG
! }
! ,
! {
!   "NOSPACE", SWITCH_NOSPACE
! }
! ,
! {
!   "NOTIFY", SWITCH_NOTIFY
! }
! ,
! {
!   "NUKE", SWITCH_NUKE
! }
! ,
! {
!   "OFF", SWITCH_OFF
! }
! ,
! {
!   "ON", SWITCH_ON
! }
! ,
! {
!   "OUTSIDE", SWITCH_OUTSIDE
! }
! ,
! {
!   "OVERRIDE", SWITCH_OVERRIDE
! }
! ,
! {
!   "PANIC", SWITCH_PANIC
! }
! ,
! {
!   "PARANOID", SWITCH_PARANOID
! }
! ,
! {
!   "PLAYERS", SWITCH_PLAYERS
! }
! ,
! {
!   "PORT", SWITCH_PORT
! }
! ,
! {
!   "POSE", SWITCH_POSE
! }
! ,
! {
!   "PRESERVE", SWITCH_PRESERVE
! }
! ,
! {
!   "PRINT", SWITCH_PRINT
! }
! ,
! {
!   "PRIVS", SWITCH_PRIVS
! }
! ,
! {
!   "PURGE", SWITCH_PURGE
! }
! ,
! {
!   "QUICK", SWITCH_QUICK
! }
! ,
! {
!   "QUIET", SWITCH_QUIET
! }
! ,
! {
!   "READ", SWITCH_READ
! }
! ,
! {
!   "REBOOT", SWITCH_REBOOT
! }
! ,
! {
!   "REGISTER", SWITCH_REGISTER
! }
! ,
! {
!   "REMOVE", SWITCH_REMOVE
! }
! ,
! {
!   "RENAME", SWITCH_RENAME
! }
! ,
! {
!   "RESTORE", SWITCH_RESTORE
! }
! ,
! {
!   "RESTRICT", SWITCH_RESTRICT
! }
! ,
! {
!   "RETROACTIVE", SWITCH_RETROACTIVE
! }
! ,
! {
!   "ROOM", SWITCH_ROOM
! }
! ,
! {
!   "ROOMS", SWITCH_ROOMS
! }
! ,
! {
!   "ROYALTY", SWITCH_ROYALTY
! }
! ,
! {
!   "SEE", SWITCH_SEE
! }
! ,
! {
!   "SEEFLAG", SWITCH_SEEFLAG
! }
! ,
! {
!   "SELF", SWITCH_SELF
! }
! ,
! {
!   "SEND", SWITCH_SEND
! }
! ,
! {
!   "SET", SWITCH_SET
! }
! ,
! {
!   "SILENT", SWITCH_SILENT
! }
! ,
! {
!   "SKIPDEFAULTS", SWITCH_SKIPDEFAULTS
! }
! ,
! {
!   "SPEAK", SWITCH_SPEAK
! }
! ,
! {
!   "STATS", SWITCH_STATS
! }
! ,
! {
!   "SUMMARY", SWITCH_SUMMARY
! }
! ,
! {
!   "TABLES", SWITCH_TABLES
! }
! ,
! {
!   "TAG", SWITCH_TAG
! }
! ,
! {
!   "TELEPORT", SWITCH_TELEPORT
! }
! ,
! {
!   "TF", SWITCH_TF
! }
! ,
! {
!   "THINGS", SWITCH_THINGS
! }
! ,
! {
!   "TITLE", SWITCH_TITLE
! }
! ,
! {
!   "TRACE", SWITCH_TRACE
! }
! ,
! {
!   "UNCLEAR", SWITCH_UNCLEAR
! }
! ,
! {
!   "UNFOLDER", SWITCH_UNFOLDER
! }
! ,
! {
!   "UNGAG", SWITCH_UNGAG
! }
! ,
! {
!   "UNHIDE", SWITCH_UNHIDE
! }
! ,
! {
!   "UNMUTE", SWITCH_UNMUTE
! }
! ,
! {
!   "UNTAG", SWITCH_UNTAG
! }
! ,
! {
!   "UNTIL", SWITCH_UNTIL
! }
! ,
! {
!   "URGENT", SWITCH_URGENT
! }
! ,
! {
!   "USEFLAG", SWITCH_USEFLAG
! }
! ,
! {
!   "WHAT", SWITCH_WHAT
! }
! ,
! {
!   "WHO", SWITCH_WHO
! }
! ,
! {
!   "WIPE", SWITCH_WIPE
! }
! ,
! {
!   "WIZ", SWITCH_WIZ
! }
! ,
! {
!   "WIZARD", SWITCH_WIZARD
! }
! ,
! {
!   "YES", SWITCH_YES
! }
! ,
! {
!   "ZONE", SWITCH_ZONE
! }
  ,
--- 1,391 ----
  {
! "ACCESS", SWITCH_ACCESS}
! 
! , {
! "ADD", SWITCH_ADD}
! 
! , {
! "ALL", SWITCH_ALL}
! 
! , {
! "ANY", SWITCH_ANY}
! 
! , {
! "ATTRIBS", SWITCH_ATTRIBS}
! 
! , {
! "BAN", SWITCH_BAN}
! 
! , {
! "BLIND", SWITCH_BLIND}
! 
! , {
! "BRIEF", SWITCH_BRIEF}
! 
! , {
! "CHECK", SWITCH_CHECK}
! 
! , {
! "CHOWN", SWITCH_CHOWN}
! 
! , {
! "CLEAR", SWITCH_CLEAR}
! 
! , {
! "CMD", SWITCH_CMD}
! 
! , {
! "COMMANDS", SWITCH_COMMANDS}
! 
! , {
! "CONN", SWITCH_CONN}
! 
! , {
! "CONNECT", SWITCH_CONNECT}
! 
! , {
! "CONNECTED", SWITCH_CONNECTED}
! 
! , {
! "CONTENTS", SWITCH_CONTENTS}
! 
! , {
! "COSTS", SWITCH_COSTS}
! 
! , {
! "COUNT", SWITCH_COUNT}
! 
! , {
! "CREATE", SWITCH_CREATE}
! 
! , {
! "DATABASE", SWITCH_DATABASE}
! 
! , {
! "DB", SWITCH_DB}
! 
! , {
! "DEBUG", SWITCH_DEBUG}
! 
! , {
! "DECOMPILE", SWITCH_DECOMPILE}
! 
! , {
! "DEFAULTS", SWITCH_DEFAULTS}
! 
! , {
! "DELETE", SWITCH_DELETE}
! 
! , {
! "DELIMIT", SWITCH_DELIMIT}
! 
! , {
! "DESCRIBE", SWITCH_DESCRIBE}
! 
! , {
! "DESTROY", SWITCH_DESTROY}
! 
! , {
! "DISABLE", SWITCH_DISABLE}
! 
! , {
! "DOWN", SWITCH_DOWN}
! 
! , {
! "DSTATS", SWITCH_DSTATS}
! 
! , {
! "EMIT", SWITCH_EMIT}
! 
! , {
! "ENABLE", SWITCH_ENABLE}
! 
! , {
! "ERR", SWITCH_ERR}
! 
! , {
! "EXITS", SWITCH_EXITS}
! 
! , {
! "FILE", SWITCH_FILE}
! 
! , {
! "FIRST", SWITCH_FIRST}
! 
! , {
! "FLAGS", SWITCH_FLAGS}
! 
! , {
! "FOLDERS", SWITCH_FOLDERS}
! 
! , {
! "FORWARD", SWITCH_FORWARD}
! 
! , {
! "FSTATS", SWITCH_FSTATS}
! 
! , {
! "FULL", SWITCH_FULL}
! 
! , {
! "FUNCTIONS", SWITCH_FUNCTIONS}
! 
! , {
! "FWD", SWITCH_FWD}
! 
! , {
! "GAG", SWITCH_GAG}
! 
! , {
! "GLOBALS", SWITCH_GLOBALS}
! 
! , {
! "HEADER", SWITCH_HEADER}
! 
! , {
! "HERE", SWITCH_HERE}
! 
! , {
! "HIDE", SWITCH_HIDE}
! 
! , {
! "ILIST", SWITCH_ILIST}
! 
! , {
! "INVENTORY", SWITCH_INVENTORY}
! 
! , {
! "IPRINT", SWITCH_IPRINT}
! 
! , {
! "JOIN", SWITCH_JOIN}
! 
! , {
! "LIST", SWITCH_LIST}
! 
! , {
! "LOWERCASE", SWITCH_LOWERCASE}
! 
! , {
! "ME", SWITCH_ME}
! 
! , {
! "MEMBERS", SWITCH_MEMBERS}
! 
! , {
! "MOD", SWITCH_MOD}
! 
! , {
! "MORTAL", SWITCH_MORTAL}
! 
! , {
! "MOTD", SWITCH_MOTD}
! 
! , {
! "MUTE", SWITCH_MUTE}
! 
! , {
! "NAME", SWITCH_NAME}
! 
! , {
! "NO", SWITCH_NO}
! 
! , {
! "NOEVAL", SWITCH_NOEVAL}
! 
! , {
! "NOFLAGCOPY", SWITCH_NOFLAGCOPY}
! 
! , {
! "NOISY", SWITCH_NOISY}
! 
! , {
! "NOSIG", SWITCH_NOSIG}
! 
! , {
! "NOSPACE", SWITCH_NOSPACE}
! 
! , {
! "NOTIFY", SWITCH_NOTIFY}
! 
! , {
! "NUKE", SWITCH_NUKE}
! 
! , {
! "OFF", SWITCH_OFF}
! 
! , {
! "ON", SWITCH_ON}
! 
! , {
! "OUTSIDE", SWITCH_OUTSIDE}
! 
! , {
! "OVERRIDE", SWITCH_OVERRIDE}
! 
! , {
! "PANIC", SWITCH_PANIC}
! 
! , {
! "PARANOID", SWITCH_PARANOID}
! 
! , {
! "PLAYERS", SWITCH_PLAYERS}
! 
! , {
! "PORT", SWITCH_PORT}
! 
! , {
! "POSE", SWITCH_POSE}
! 
! , {
! "PRESERVE", SWITCH_PRESERVE}
! 
! , {
! "PRINT", SWITCH_PRINT}
! 
! , {
! "PRIVS", SWITCH_PRIVS}
! 
! , {
! "PURGE", SWITCH_PURGE}
! 
! , {
! "QUICK", SWITCH_QUICK}
! 
! , {
! "QUIET", SWITCH_QUIET}
! 
! , {
! "READ", SWITCH_READ}
! 
! , {
! "REBOOT", SWITCH_REBOOT}
! 
! , {
! "REGISTER", SWITCH_REGISTER}
! 
! , {
! "REMOVE", SWITCH_REMOVE}
! 
! , {
! "RENAME", SWITCH_RENAME}
! 
! , {
! "RESTORE", SWITCH_RESTORE}
! 
! , {
! "RESTRICT", SWITCH_RESTRICT}
! 
! , {
! "RETROACTIVE", SWITCH_RETROACTIVE}
! 
! , {
! "ROOM", SWITCH_ROOM}
! 
! , {
! "ROOMS", SWITCH_ROOMS}
! 
! , {
! "ROYALTY", SWITCH_ROYALTY}
! 
! , {
! "SEE", SWITCH_SEE}
! 
! , {
! "SEEFLAG", SWITCH_SEEFLAG}
! 
! , {
! "SELF", SWITCH_SELF}
! 
! , {
! "SEND", SWITCH_SEND}
! 
! , {
! "SET", SWITCH_SET}
! 
! , {
! "SILENT", SWITCH_SILENT}
! 
! , {
! "SKIPDEFAULTS", SWITCH_SKIPDEFAULTS}
! 
! , {
! "SPEAK", SWITCH_SPEAK}
! 
! , {
! "STATS", SWITCH_STATS}
! 
! , {
! "SUMMARY", SWITCH_SUMMARY}
! 
! , {
! "TABLES", SWITCH_TABLES}
! 
! , {
! "TAG", SWITCH_TAG}
! 
! , {
! "TELEPORT", SWITCH_TELEPORT}
! 
! , {
! "TF", SWITCH_TF}
! 
! , {
! "THINGS", SWITCH_THINGS}
! 
! , {
! "TITLE", SWITCH_TITLE}
! 
! , {
! "TRACE", SWITCH_TRACE}
! 
! , {
! "UNCLEAR", SWITCH_UNCLEAR}
! 
! , {
! "UNFOLDER", SWITCH_UNFOLDER}
! 
! , {
! "UNGAG", SWITCH_UNGAG}
! 
! , {
! "UNHIDE", SWITCH_UNHIDE}
! 
! , {
! "UNMUTE", SWITCH_UNMUTE}
! 
! , {
! "UNTAG", SWITCH_UNTAG}
! 
! , {
! "UNTIL", SWITCH_UNTIL}
! 
! , {
! "URGENT", SWITCH_URGENT}
! 
! , {
! "USEFLAG", SWITCH_USEFLAG}
! 
! , {
! "WHAT", SWITCH_WHAT}
! 
! , {
! "WHO", SWITCH_WHO}
! 
! , {
! "WIPE", SWITCH_WIPE}
! 
! , {
! "WIZ", SWITCH_WIZ}
! 
! , {
! "WIZARD", SWITCH_WIZARD}
! 
! , {
! "YES", SWITCH_YES}
! 
! , {
! "ZONE", SWITCH_ZONE}
! 
  ,
*** 1_7_5.159/src/strutil.c Mon, 22 Apr 2002 11:34:33 -0500 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.2 660)
--- 1_7_5.187(w)/src/strutil.c Fri, 17 May 2002 10:43:23 -0500 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.3 660)
***************
*** 26,31 ****
--- 26,32 ----
  
  char *next_token(char *str, char sep);
  static int format_long(long val, char *buff, char **bp, int maxlen);
+ char *mush_strndup(const char *src, size_t len, const char *check);
  
  /* Duplicate the first len characters of s */
  char *
*** 1_7_5.159/src/speech.c Tue, 09 Apr 2002 11:29:01 -0500 dunemush (pennmush/b/35_speech.c 1.21.1.2.1.3.1.5.1.1.1.7.1.3.1.1.1.8.1.1.1.1 660)
--- 1_7_5.187(w)/src/speech.c Fri, 17 May 2002 10:43:23 -0500 dunemush (pennmush/b/35_speech.c 1.21.1.2.1.3.1.5.1.1.1.7.1.3.1.1.1.8.1.1.1.1.1.1 660)
***************
*** 32,37 ****
--- 32,38 ----
  void propagate_sound(dbref thing, const char *msg);
  static void do_audible_stuff(dbref loc, dbref *excs, int numexcs,
  			     const char *msg);
+ void do_one_remit(dbref player, const char *target, const char *msg, int noisy);
  dbref na_zemit(dbref current, void *data);
  extern int WIN32_CDECL i_comp(const void *s1, const void *s2);
  static const char *spname(dbref thing);
*** 1_7_5.159/src/plyrlist.c Sat, 23 Jun 2001 12:54:11 -0500 dunemush (pennmush/b/46_plyrlist.c 1.5.1.1 660)
--- 1_7_5.187(w)/src/plyrlist.c Fri, 17 May 2002 10:43:22 -0500 dunemush (pennmush/b/46_plyrlist.c 1.5.1.2 660)
***************
*** 61,66 ****
--- 61,68 ----
    int p;
    void *hval;
  
+   if (!name || !*name)
+     return NOTHING;
    if (*name == NUMBER_TOKEN) {
      name++;
      if (!is_strict_number(name))
*** 1_7_5.159/src/move.c Mon, 11 Mar 2002 18:22:55 -0600 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1.1.1.1.3 660)
--- 1_7_5.187(w)/src/move.c Fri, 17 May 2002 10:43:22 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1.1.1.1.2.1.2 660)
***************
*** 787,792 ****
--- 787,796 ----
    if (arg && *arg) {
      /* Who do we want to follow? */
      leader = match_result(player, arg, NOTYPE, MAT_NEARBY);
+     if (leader == AMBIGUOUS) {
+       notify(player, T("I can't tell which one to follow."));
+       return;
+     }
      if (!GoodObject(leader) || !GoodObject(Location(player)) ||
  	(IsPlayer(leader) && !Connected(leader)) ||
  	((DarkLegal(leader) || (Dark(Location(player)) && !Light(leader))) &&
***************
*** 835,847 ****
    if (arg && *arg) {
      /* Who do we want to stop following? */
      leader = match_result(player, arg, NOTYPE, MAT_OBJECTS);
      if (!GoodObject(leader)) {
!       notify(player, T("I don't recognize who you want to stop following."));
        return;
      }
      /* Are we following them? */
      if (!is_following(player, leader)) {
!       notify_format(player, T("You're not following %s"), Name(leader));
        return;
      }
      /* Ok, looks good */
--- 839,855 ----
    if (arg && *arg) {
      /* Who do we want to stop following? */
      leader = match_result(player, arg, NOTYPE, MAT_OBJECTS);
+     if (leader == AMBIGUOUS) {
+       notify(player, T("I can't tell which one to stop following."));
+       return;
+     }
      if (!GoodObject(leader)) {
!       notify(player, T("I don't see that here."));
        return;
      }
      /* Are we following them? */
      if (!is_following(player, leader)) {
!       notify_format(player, T("You're not following %s."), Name(leader));
        return;
      }
      /* Ok, looks good */
*** 1_7_5.159/src/look.c Tue, 04 Sep 2001 09:08:48 -0500 dunemush (pennmush/c/4_look.c 1.21.1.3 660)
--- 1_7_5.187(w)/src/look.c Fri, 17 May 2002 10:43:22 -0500 dunemush (pennmush/c/4_look.c 1.21.1.2.1.3 660)
***************
*** 29,53 ****
  #include "confmagic.h"
  #include "log.h"
  
! extern void decompile_flags _((dbref player, dbref thing, const char *name));	/* from flags.c */
! extern void decompile_powers _((dbref player, dbref thing, const char *name));	/* from flags.c */
  extern PRIV attr_privs[];
  
! static void look_exits _((dbref player, dbref loc, const char *exit_name));
! static void look_contents
! _((dbref player, dbref loc, const char *contents_name));
! static void look_atrs _((dbref player, dbref thing, const char *mstr));
! static void look_simple _((dbref player, dbref thing));
  static int decompile_helper
! _((dbref player, dbref thing, char const *pattern, ATTR *atr, void *args));
  static int look_helper
! _((dbref player, dbref thing, char const *pattern, ATTR *atr, void *args));
  #ifdef CHAT_SYSTEM
! static const char *channel_description _((dbref player));
  #endif
! void decompile_atrs _((dbref player, dbref thing, const char *name,
! 		       const char *pattern, const char *prefix, int skipdef));
! void decompile_locks _((dbref player, dbref thing, const char *name));
  
  static void
  look_exits(player, loc, exit_name)
--- 29,52 ----
  #include "confmagic.h"
  #include "log.h"
  
! extern void decompile_flags(dbref player, dbref thing, const char *name);	/* from flags.c */
! extern void decompile_powers(dbref player, dbref thing, const char *name);	/* from flags.c */
  extern PRIV attr_privs[];
  
! static void look_exits(dbref player, dbref loc, const char *exit_name);
! static void look_contents(dbref player, dbref loc, const char *contents_name);
! static void look_atrs(dbref player, dbref thing, const char *mstr);
! static void look_simple(dbref player, dbref thing);
  static int decompile_helper
!   (dbref player, dbref thing, char const *pattern, ATTR *atr, void *args);
  static int look_helper
!   (dbref player, dbref thing, char const *pattern, ATTR *atr, void *args);
  #ifdef CHAT_SYSTEM
! static const char *channel_description(dbref player);
  #endif
! void decompile_atrs(dbref player, dbref thing, const char *name,
! 		    const char *pattern, const char *prefix, int skipdef);
! void decompile_locks(dbref player, dbref thing, const char *name, int skipdef);
  
  static void
  look_exits(player, loc, exit_name)
***************
*** 1200,1205 ****
--- 1199,1208 ----
    ATTR *ptr;
    char msg[BUFFER_LEN];
    char *bp;
+ 
+   if (AL_FLAGS(atr) & AF_NODUMP)
+     return 0;
+ 
    ptr = atr_match(AL_NAME(atr));
    bp = msg;
    safe_str(dh->prefix, msg, &bp);
***************
*** 1253,1272 ****
  }
  
  void
! decompile_locks(player, thing, name)
!     dbref player;
!     dbref thing;
!     const char *name;
  {
!   struct lock_list *ll;
    for (ll = Locks(thing); ll; ll = ll->next) {
      if (match_lock(ll->type) != NULL) {
        notify_format(player, "@lock/%s %s=%s",
  		    L_TYPE(ll), name, unparse_boolexp(player, L_KEY(ll),
  						      UB_DBREF));
!       if (L_FLAGS(ll))
  	notify_format(player,
  		      "@lset %s/%s=%s", name, L_TYPE(ll), lock_flags_long(ll));
      } else {
        notify_format(player, "@lock/user:%s %s=%s",
  		    ll->type, name, unparse_boolexp(player, ll->key, UB_DBREF));
--- 1256,1278 ----
  }
  
  void
! decompile_locks(dbref player, dbref thing, const char *name, int skipdef)
  {
!   lock_list *ll;
    for (ll = Locks(thing); ll; ll = ll->next) {
      if (match_lock(ll->type) != NULL) {
        notify_format(player, "@lock/%s %s=%s",
  		    L_TYPE(ll), name, unparse_boolexp(player, L_KEY(ll),
  						      UB_DBREF));
!       if (L_FLAGS(ll)) {
! 	if (skipdef) {
! 	  const lock_list *p = get_lockproto(L_TYPE(ll));
! 	  if (p && L_FLAGS(ll) == L_FLAGS(p))
! 	    continue;
! 	}
  	notify_format(player,
  		      "@lset %s/%s=%s", name, L_TYPE(ll), lock_flags_long(ll));
+       }
      } else {
        notify_format(player, "@lock/user:%s %s=%s",
  		    ll->type, name, unparse_boolexp(player, ll->key, UB_DBREF));
***************
*** 1395,1401 ****
      if (GoodObject(Parent(thing)))
        notify_format(player, "@parent %s=#%d", object, Parent(thing));
  
!     decompile_locks(player, thing, object);
      decompile_flags(player, thing, object);
      decompile_powers(player, thing, object);
    }
--- 1401,1407 ----
      if (GoodObject(Parent(thing)))
        notify_format(player, "@parent %s=#%d", object, Parent(thing));
  
!     decompile_locks(player, thing, object, skipdef);
      decompile_flags(player, thing, object);
      decompile_powers(player, thing, object);
    }
*** 1_7_5.159/src/lock.c Thu, 04 Apr 2002 16:26:39 -0600 dunemush (pennmush/c/6_lock.c 1.17.1.7 660)
--- 1_7_5.187(w)/src/lock.c Fri, 17 May 2002 10:43:21 -0500 dunemush (pennmush/c/6_lock.c 1.17.1.8 660)
***************
*** 73,98 ****
  /* Define new lock types here. */
  
  const lock_list lock_types[] = {
!   {(char *) "Basic", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Enter", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Use", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Zone", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Page", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Teleport", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Speech", NULL, GOD, LF_PRIVATE | LF_WIZARD, NULL},
!   {(char *) "Listen", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Command", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Parent", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Link", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Leave", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Drop", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Give", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Mail", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Follow", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Examine", NULL, GOD, LF_PRIVATE | LF_OWNER, NULL},
!   {(char *) "Chzone", NULL, GOD, LF_PRIVATE, NULL},
!   {(char *) "Forward", NULL, GOD, LF_PRIVATE | LF_OWNER, NULL},
!   {(char *) "Control", NULL, GOD, LF_PRIVATE | LF_OWNER, NULL},
    /* Add new lock types just before this line. */
    {NULL, NULL, GOD, 0, NULL}
  };
--- 73,98 ----
  /* Define new lock types here. */
  
  const lock_list lock_types[] = {
!   {"Basic", NULL, GOD, LF_PRIVATE, NULL},
!   {"Enter", NULL, GOD, LF_PRIVATE, NULL},
!   {"Use", NULL, GOD, LF_PRIVATE, NULL},
!   {"Zone", NULL, GOD, LF_PRIVATE, NULL},
!   {"Page", NULL, GOD, LF_PRIVATE, NULL},
!   {"Teleport", NULL, GOD, LF_PRIVATE, NULL},
!   {"Speech", NULL, GOD, LF_PRIVATE | LF_WIZARD, NULL},
!   {"Listen", NULL, GOD, LF_PRIVATE, NULL},
!   {"Command", NULL, GOD, LF_PRIVATE, NULL},
!   {"Parent", NULL, GOD, LF_PRIVATE, NULL},
!   {"Link", NULL, GOD, LF_PRIVATE, NULL},
!   {"Leave", NULL, GOD, LF_PRIVATE, NULL},
!   {"Drop", NULL, GOD, LF_PRIVATE, NULL},
!   {"Give", NULL, GOD, LF_PRIVATE, NULL},
!   {"Mail", NULL, GOD, LF_PRIVATE, NULL},
!   {"Follow", NULL, GOD, LF_PRIVATE, NULL},
!   {"Examine", NULL, GOD, LF_PRIVATE | LF_OWNER, NULL},
!   {"Chzone", NULL, GOD, LF_PRIVATE, NULL},
!   {"Forward", NULL, GOD, LF_PRIVATE | LF_OWNER, NULL},
!   {"Control", NULL, GOD, LF_PRIVATE | LF_OWNER, NULL},
    /* Add new lock types just before this line. */
    {NULL, NULL, GOD, 0, NULL}
  };
***************
*** 110,116 ****
  StrTree lock_names;
  
  static void free_one_lock_list _((lock_list *ll));
! static lock_type check_lock_type _((dbref player, dbref thing, char *name));
  static int delete_lock(dbref player, dbref thing, lock_type type);
  static int can_write_lock(dbref player, db