
This is the most current changes file for PennMUSH. Please look it over;
each version contains new things which might significantly affect the
function of your server.

==========================================================================
 
Version 1.50 patchlevel 8  #1,  April 21, 1993

--- Features ---

- New additions -
    * TINY_ATTRS option imitates 2.0 examine attribute format.
    * Player ZONE flag and ZoneMaster control for "safe" zones.
    * @hide command hides player from WHO list.
    * Compression program can be set in conf file (recommended: gzip)
    * @oemit can now take the format "room/player".
    * AF_MDARK and AF_WIZARD are now settable attribute flags by priv'd
        players. They're 'm' and 'w' in the attribute flags list.
    * @pcreate power added.
    * @motd/full and full.txt displayed when game is full.
    * Added channel-wipe.
    * Added @alias.
 
- New functions -
    * VISIBLE() - can one object examine another object or attribute?
    * ITEMS(), ELEMENT(), DELETE(), REPLACE, INSERT() - arbitrary-separator
        functions which operate on lists.
    * ORFLAGS(), ANDFLAGS() - check existence of muliple flags.
    * FULLNAME() - returns the full name of something.
    * Big pile of floating-point functions added.

- Improvements -
    * LATTR() takes an <obj>/<wildcard attr> pattern.
    * @prefix and @inprefix do pronoun substitution.
    * @search takes an 'eval' parameter.
    * Failing to give a second arg to @lock or @link unlocks/unlinks.
    * MAIL() can now retrieve messages owned by other players, and count
        the number of messages a player has.
    * Log formats should be a bit more consistent. For the connect log,
        all messages should show hostname and descriptor. 
    * The new config option SINGLE_LOGFILE dumps all error messages to
        stderr, freeing up some file descriptors.
    * New conf option enables/disables logging of @wizwalls.
    * AIX port done, some other config defs fixed.
    * SORT() now 'autodetects' the sort type. NSORT() is no longer
        necessary and has been removed.

--- Other changes / bug fixes ---

- Minor changes -
    * decompile_atrs() and attribute text lock checking use local instead
        of regular wild_match.
    * strdup() uses bcopy() for speed.
    * Examining an Opaque object doesn't show you the contents unless
        you control the object.
    * Rewrote atr_complete_match(). Also fixed the case-sensitivity
        problem with attribute locks.
    * Main command loop no longer checks to make sure that everything God
        does is caused by God (so @adesc, etc. works).
    * GET_EVAL() is now an alias for U() rather than EVAL().
    * Parameter order of exec() changed to match 2.0's.
    * All conf parameters now have default values.
    * (Dis)connects of hidden players do show up on priv'd channels. 
    * Non-listening objects trigger @aenter and @aleave (but not the 
        messages, since that's annoying.)
    * @search, @find, and examine always ignore the MYOPIC flag.
    * Queue stuff is now refunded at startup.
    * PID printed to log at startup.

- Bug fixes -
    * Lots of screw-ups with flag sets fixed.
    * Conf file sets of flags now work properly.
    * #def's of FUNCTION and XFUNCTION changed so Ultrix compiler
        doesn't complain.
    * LSEARCH() uses safe_str and safe_chr. Also fixed a problem with
        a variable being used before being initialized, and a problem
        with searching on powers.
    * parse_dbref no longer ignores trailing garbage. "#123's foo" no
        longer equates "#123".
    * extra_arglist() obeys nesting (and fixes SWITCH() problem).
    * convert_flags() handles 'E' flag properly.
    * Fixed a parser bug in attribute sets which truncated at a '/'.
    * Fixed some coredump bugs caused by not checking for HOME.
    * dup_bool() error fixed (added BOOLEXP_OWNER case).
    * db_free() frees enter and use keys (fixes potential memory leak).
    * Prevented overwrites of built-in functions via @function.
    * Fixed null-message-repeat chat bug.
    * Fixed negative semaphore timeout problem.
    * WORDS() uses ' ' instead of isspace().
    * REMOVE() no longer screws up on things like 'remove(#434 #43 #22,#43)'
    * Rewrote the setfuns 2.0-style. No more buffer overflows.
    * Fixed problem with INDEX() and friends choking on null separators.
    * Fixed function recursion bug caused by erroneous decrementation of
        the function invocation counter. Took out redundant recursion 
        checks in the ufuns.
    * Fixed coredump bug with closing null pointer to mail db.
    * Login limit works properly.
    * @scan takes the correct args and should no longer choke on '='.
    * Bits of code cleanup in do_set(). @listen and @startup get handled
        properly when lowercased.
    * SQUISH() trims leading spaces properly.
    * NO_TEL works correctly again.
    * upcasestr() doesn't gag on NULL.
    * 'visual' attribute flag saves/loads properly.
    * Null names no longer kill @find.
    * Null names get checked at startup and fixed if necessary.
    * 'no_inherit' attribute flag works properly.
