PennMUSH 1.7.7p32

Submitted by javelin on Mon, 2004-05-31 09:57

The new patchlevel's released in the usual place. Several new features, including SQL support (currently MySQL). Please read the patch header carefully if applying the patch. Here's the change-list:

Major Changes:
* SQL support. PennMUSH can now operate as an SQL client and perform
queries against an SQL server. Currently only the MySQL server is
supported. This adds the @sql command, the sql() and sqlescape()
functions, and the Sql_Ok power. See README.SQL for some
additional information. Mostly based on patches by Hans Engelen.
* Creating a leaf attribute automatically creates associated branch
attributes if they are not already present. [TAP]
* When a $command matches on an object, but the object's use-lock or
command-lock prevents the command from being run, the object's
COMMAND_LOCK`FAILURE, COMMAND_LOCK`OFAILURE, and COMMAND_LOCK`AFAILURE
attributes will be triggered if the $command never successfully
matched, rather than returning a Huh? to the player.
* Exits and rooms may now run $commands. Rooms are treated as being
located in themselves for purposes of location checks. Exits are
treated as being located in their source room. Suggested by [TAP].
Commands:
* 'empty ' attempts to get each item in and put
it alongside (in 's location).
* 'give to ' syntax added.
Minor Changes (user-visible):
* @COST attribute is now evaluated, so you can make costs depend
on who's paying, a selected item, etc. Suggested by Walker@M*U*S*H.
Also, the amount given is passed in as %0, so you can code
vendors that accept any amount.
* New OBJID^ lock atom.
* The server now maintains a rolling log of activity (commands issued,
evaluations parsed, and locks evaluated), that is dumped to the log
file on panic, or can be seen by God with @uptime. This aids
debugging code that causes a "clean" panic rather than a crash.
Suggested by Intrevis@M*U*S*H.
* When checking a use/command/listen-lock on an object with patterns
that get matched, we only check the lock once and cache the result,
to prevent multiple lock evaluations if multiple patterns match. [TAP]
* @chan/recall now shows nospoof tags for @cemit'd lines.
Suggested by Sholevi@M*U*S*H.
* SUSPECT flag can now be applied to any type of object.
Suggested by Oriens@Alexandria.
Minor Changes (internals):
* fun_escape() and fun_secure() use the same list of special characters,
rather than each having their own copy. [SW]
* Buffer queue code used by @chan/buffer and the activity log refactored
into src/bufferq.c and hdrs/bufferq.h.
* Added mush_panicf(), with printf()-style format and arguments. [SW]
Fixes:
* @scan correctly shows attributes on parents again. Report by Wayne@PDX
* @shutdown/panic and @shutdown/paranoid work again. [SW]
* A panic DB could be created before the database files were actually read,
causing problems on the next restart. [SW]
* Win32 and Debian installer portability fixes. [EEH]
* Code cleanup around errno. [SW]
* The locate() function now respects visibility and interactions.
Report by Jules@M*U*S*H.