This is patch10 to PennMUSH 1.7.5. After applying this patch, you will have version 1.7.5p10 To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.7.5-patch10 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: Major Changes: * Commands can now be restricted by generic flags or powers. Several mush.cnf options (restricted_building, free_objects, hate_dest, player_locate, cemit_power) are now restrict.cnf restrictions instead. By Vadiv@M*U*S*H. Functions: * When a set function (setdiff, etc.) is called with 4 arguments, if the last one isn't a valid sorting category, it's treated as the output separator. Inspired by Mux [SW] * checkpass(), a wizard function that checks a string against a player's password. Requested by Writh@M*U*S*H. * regedit() and variants can now accept multiple regexps and replacements, in order, like edit(). By Walker@M*U*S*H. * comp() can take a third argument to specify the type of comparison to make. Suggested by Philip Mak. * The trigonometric functions now take an optional argument to control how the angles they work with are measured to allow them to accept angles in degrees as well as the default radians. [SW,MUX2,Rhost] * Added ctu() for converting between angle measurements. [SW,MUX2,Rhost] * Added atan2(). [SW] * dist2d() and dist3d() can take floating-point numbers. [SW] * Other small cleanups in the math functions. [SW] @Mail: * The MAIL_SUBJECTS option has been removed. @mail now includes subjects mandatorily. Suggested by Vadiv@M*U*S*H. Minor Changes: * When a player @clones an object owned by another player, the clone is now owned by the @cloning player, instead of the original owner. Fixes a quota transfer issue reported by Sparta and Philip Mak. * The flag table is no longer walked with a linear search. Instead, ptab_firstentry and ptab_nextentry are used. Flags no longer need to be added in a particular order or groups in flags.c, and flags added through hardcode should work better. Patch by Vadiv@M*U*S*H * Error message for wrong number of arguments to a function now tells you how many arguments it thinks you gave. Suggested by Philip Mak. * GAGGED players may now perform mail reading and maintenance. * Internal reorganization of signal code. [SW] * Attempts to speak on a channel that you can't speak on or see now fail and command parsing continues. Suggested by Vadiv@M*U*S*H. * The amount of CPU time spent running a queue entry can be limited. This helps reduce the impact of some types of denial-of-service attacks. New mush.cnf directive queue_entry_cpu_time. This currently works only on Unix systems with setitimer. [SW] * Internal rewrite of page/whisper code by Vadiv@M*U*S*H. * Flag set/reset messages now include the name of the target object. Suggested by Kyieren@M*U*S*H. * game/txt/Makefile now includes options to limit the number of news/etc topic aliases that are included in the 'entries' indices generated by index-files.pl. Suggested by Nymeria@M*U*S*H. * Minor inconsistencies in @sweep output punctuation reported by Cmintrnt@M*U*S*H have been fixed. * Added hints/cygwin.sh, tested with cygwin 1.3.12. Added additional cygwin build information to README. * The whisper-pose message is now Player senses: , with no quotation marks added. This matches all other pose-type messages in the server. Suggested by Philip Mak. Fixes: * Archaic help reference to FORCE_WHITE removed. Noted by Oriens@Alexandria. * Help fixes by Cerekk@bDv TrekMUSH, Julian@M*U*S*H, Letters@M*U*S*H, and Philip Mak. * The wildcard matcher could lag the MUSH under unusual conditions. It's now smarter. Discovered by Sketch@M*U*S*H. * Fixes from 1.7.4p20 * Fix a bug with setdiff() not using the output separator correctly. [SW] * convsecs() could attempt to use values larger than 2^31, which could crash Windows. Reported by Bellemore@M*U*S*H. * @config didn't correctly show default flags for objects. Reported by Vadiv@M*U*S*H. * The strcasecoll function was poorly coded, and is now fixed. * Created players who hadn't yet logged in didn't have LASTIP set properly. Reported by Philip Mak. Prereq: 1.7.5p9 *** 1_7_5.225/Patchlevel Sat, 20 Jul 2002 12:00:21 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.10 600) --- 1_7_5.312(w)/Patchlevel Thu, 19 Sep 2002 12:33:56 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.10 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.5p9 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.5p10 *** 1_7_5.225/README Tue, 14 May 2002 23:18:56 -0500 dunemush (pennmush/4_README 1.9 600) --- 1_7_5.312(w)/README Fri, 13 Sep 2002 12:03:04 -0500 dunemush (pennmush/4_README 1.11 600) *************** *** 27,48 **** numbers (like 1.7.2) and patchlevels (like p32), usually written together (1.7.2p32). ! Starting with 1.7.2, version numbers that are even (like 1.7.2) ! are stable releases - patchlevels on the latest stable release ! will only be issued to fix serious bugs. Version numbers that are ! odd (like 1.7.3) are development releases - patchlevels on the ! latest development release may include new features as well ! as bugfixes, and development releases may not be as stable ! as stable releases. ! ! PennMUSH is a TinyMUD derivative, and one of the branches along the ! MUSH line. "Vanilla" TinyMUSH, which added the "v" registers and ! functions to the basic TinyMUD building commands, was written by Larry ! Foard. The code was later expanded by Jin, of MicroMUSH. In January of ! 1991, MicroMUSH changed its name to MicroMUSE, and the code there ! continued to develop under the MUSE name. At that same point in time, ! Moonchilde took the last public release of that code and began a series ! of improvements and extensions. That code was released as PernMUSH, named for the MUSH that Moonchilde was running. The last released version of that code was version 1.15, --- 27,50 ---- numbers (like 1.7.2) and patchlevels (like p32), usually written together (1.7.2p32). ! Starting with 1.7.2, version numbers that are even (like 1.7.2) are ! stable releases - patchlevels on the latest stable release will only be ! issued to fix serious bugs. Version numbers that are odd (like 1.7.3) ! are development releases - patchlevels on the latest development release ! may include new features as well as bugfixes, and development releases ! may not be as stable as stable releases. On the other hand, some new ! features may *increase* stability without fixing bugs per se, and it's ! quite likely that later patchlevels on the development version will be ! more stable than those on the "stable" version. ! ! PennMUSH is a TinyMUD derivative, and one of the branches along the MUSH ! line. "Vanilla" TinyMUSH, which added the "v" registers and functions to ! the basic TinyMUD building commands, was written by Larry Foard. The code ! was later expanded by Jin, of MicroMUSH. In January of 1991, MicroMUSH ! changed its name to MicroMUSE, and the code there continued to develop ! under the MUSE name. At that same point in time, Moonchilde took the ! last public release of that code and began a series of improvements ! and extensions. That code was released as PernMUSH, named for the MUSH that Moonchilde was running. The last released version of that code was version 1.15, *************** *** 112,118 **** directory contains files of using in building for OS/2. ! top-level-+-> src +-> hdrs +-> game ------+-> data | | --- 114,120 ---- directory contains files of using in building for OS/2. ! pennmush--+-> src +-> hdrs +-> game ------+-> data | | *************** *** 140,232 **** Here's the process in detail: ! 1. If you're running on win32 (either 95 or NT, that is), ! you have two options: compile with MS VC++ or compile with ! the cygwin32 unix emulation tools. ! ! If you want to compile with MS VC++, follow the instructions ! in win32/README.txt and then skip down to step #6 below. ! ! If you want to compile with cygwin, install the cygwin32 ! unix emulation tools (available free from Cygnus at ! http://www.cygnus.com/misc/gnu-win32/). You'll want the entire Cygnus ! Developer's Kit (cdk), notably including 'make' and 'patch'. These are ! required for compiling PennMUSH. Make sure you set up your environment ! variables properly as discussed in the Kit's installation instructions. ! ! VERY IMPORTANT: The rest of the instructions assume that you have ! started up a bash shell and are running commands under that shell -- ! they won't work right if run directly from a DOS shell. ! ! VERY IMPORTANT: cygwin32's bin directory (usually something horrible like ! /gnuwin32/b18/h-i386-cygwin32/bin) must appear in your path ! *before* c:\windows\command does, so that 'sort' calls the good ! GNU sort, and not the bad Windows sort. ! ! Optionally, install Microsoft's Visual C++ compiler. If you want ! to use it, make sure 'cl' (the command line compiler) is in your ! PATH. ! ! If you're running under Windows NT, you may wish to edit src/bsd.c ! and uncomment the #define NT_TCP option at the top. If you can ! build with this, you'll get greatly enhanced network i/o performance. ! This does not work on Windows 95/98. ! ! 2. Type 'sh Configure' in the top directory. This script will ! ask you some questions and attempt to identify the proper Makefile ! settings for your system. The default answers are very likely to be ! correct, except that if you have gcc 2.0 or later, you should generally ! prefer to compile with that than with your system's cc compiler. If ! you don't want to answer the questions you can try "sh Configure -d" ! which simply accepts all the defaults. This works right on most ! systems, though you may prefer "sh Configure -d -D cc=gcc" to use gcc. ! ! Win32 has two different configuration sets: 'win32' and 'win32-gcc'. ! The former (which is default) uses Microsoft's compiler to produce ! a native executable. The latter (which uses gcc from the Cygnus ! tools) doesn't require Microsoft's compiler (and thus you don't have ! to pay for it), but the resulting executable will not run without ! Cygnus' tools on the system. You may select between these configuration ! sets when Configure asks which hints file to use. When switching ! between these configurations, make sure to delete 'config.sh' before ! running Configure. ! 3. EITHER: ! Then, copy options.h.dist to options.h. Note that these files stay in ! the top directory. Edit the file. It's liberally commented. ! Also, cp game/mushcnf.dst to game/mush.cnf. OR: Type 'make update', and answer all the questions about which MUSH options you want. ! You do not need to change any of the other header files. 4. Do a "make install". This will build all the necessary files, and set up some symbolic links for the restart script. You will probably receive a few compilation warnings, which can generally be ignored. - Under win32 using the Microsoft compiler, the make will abort when - trying to build info_slave. This is all right; you don't need the - info_slave. - - Under win32 using gcc, copy src/netmud.exe to game/netmush.exe, - and src/info_slave.exe to game/info_slave.exe. Note the name change - for netmud -> netmush. - 5. If you plan to run multiple MUSHes, you may want to do a "make customize" which will run a script to help set up a separate customized game subdirectory for each MUSH (run it once per MUSH you plan to run). 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 --- 142,213 ---- Here's the process in detail: ! 1. If you're running on win32, there are two options known to work: ! a. Compile with MS VC++. If you want to do this, read win32/README.txt ! and then skip down to step #6 below ! b. Compile with the Cygwin unix emulation tools (http://www.cygwin.com) ! In addition to the base cygwin stuff, you'll want the following packages: ! binutils, gcc, make, patch, perl ! These are also recommended: ! gettext, gettext-devel, indent, vim or emacs ! It is recommended that you install the tools under C:\CYGWIN and ! that you read the Cygwin FAQ if you get messages about HOME not set. ! ! Put the pennmush .tar.gz file in C:\CYGWIN\USR\SRC. Don't uncompress ! it with Winzip or other windows tools! ! ! VERY IMPORTANT: The rest of the instructions assume that you have ! started up a bash shell and are running commands under that shell -- ! they won't work right if run directly from a DOS shell. ! ! cd /usr/src, and unpack the .tar.gz file with: ! tar xfz pennmush-whatever.tar.gz ! ! 2. cd pennmush. On Unix systems: ! ./Configure -d ! ! On cygwin systems: ! . Configure ! (That's a single period, a space, and Configure) ! When you get to the question about hints files, choose 'cygwin'. ! For all other questions, the defaults should work. 3. EITHER: ! Copy options.h.dist to options.h. Note that these files stay in the ! pennmush directory. Edit the file. It's liberally commented. ! On Cygwin systems, you should *not* define NT_TCP with cygwin, and you ! should use MALLOC_PACKAGE 0. You may use an COMPRESSION_TYPE you prefer. ! ! Also, cp game/mushcnf.dst to game/mush.cnf and edit. ! ! On cygwin systems, you probably should not use compressed database, ! so modify that bit. OR: Type 'make update', and answer all the questions about which MUSH options you want. ! You should not need to change any of the other header files. 4. Do a "make install". This will build all the necessary files, and set up some symbolic links for the restart script. You will probably receive a few compilation warnings, which can generally be ignored. 5. If you plan to run multiple MUSHes, you may want to do a "make customize" which will run a script to help set up a separate customized game subdirectory for each MUSH (run it once per MUSH you plan to run). 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. ! ! On cygwin systems, you will likely have to edit the game/restart ! script and explicitly set GAMEDIR (to /usr/src/pennmush/game) PennMUSH has been tested on a fairly wide variety of machines and *************** *** 345,351 **** want to customize their MUSH server, and don't feel like compiling it themselves. This binary distribution does not contain the src, hdrs, hints, or os2 directories and is missing several key files ! (like Configure) from the top-level directory. It does include the dune.h and options.h that it was built with, as an aid to those who decide late that they want to customize the server; they are useful as a baseline to work from. --- 326,332 ---- want to customize their MUSH server, and don't feel like compiling it themselves. This binary distribution does not contain the src, hdrs, hints, or os2 directories and is missing several key files ! (like Configure) from the pennmush directory. It does include the dune.h and options.h that it was built with, as an aid to those who decide late that they want to customize the server; they are useful as a baseline to work from. *** 1_7_5.225/CHANGES.174 Sat, 20 Jul 2002 12:05:06 -0500 dunemush (pennmush/8_CHANGES 1.219.1.72.1.70 600) --- 1_7_5.312(w)/CHANGES.174 Thu, 19 Sep 2002 12:33:19 -0500 dunemush (pennmush/8_CHANGES 1.219.1.72.1.78 600) *************** *** 18,33 **** ========================================================================== ! Version 1.7.4 patchlevel 20 June 14, 2002 Fixes: * Help semaphores4 typo fixed by Mike Griffiths. * See_All players now see hidden connected mail senders. Suggested by Philip Mak. * spellnum could introduce spurious spaces. Reported by Intrevis@M*U*S*H. * table() sometimes produced spurious blank rows. Reported by Nymeria@M*U*S*H. This is the first attempt at a fix. * switch() help improved. [SW] Version 1.7.4 patchlevel 19 June 14, 2002 --- 18,50 ---- ========================================================================== ! Version 1.7.4 patchlevel 20 September 19, 2002 Fixes: * Help semaphores4 typo fixed by Mike Griffiths. + * Help cleanup. [TAP] * See_All players now see hidden connected mail senders. Suggested by Philip Mak. * spellnum could introduce spurious spaces. Reported by Intrevis@M*U*S*H. * table() sometimes produced spurious blank rows. Reported by Nymeria@M*U*S*H. This is the first attempt at a fix. * switch() help improved. [SW] + * enter no longer returns Permission denied, but + "I can't see that here", as you can only enter things. + Suggested by Philip Mak. + * A one-time, one-pointer memory leak in plyrlist.c fixed + by Vadiv@M*U*S*H. + * Unbalanced or empty double-quotes gave weird results in page + and whisper. Reported by Vadiv@M*U*S*H. [SW] + * @chan/decomp no longer shows names of channels that the enactor + can't see. Reported by Nat@SW:ANT. + * The lock() and elock() functions now operate properly with + user:whatever locks. Reported by Mike Griffiths. + * pmatch() will locate hidden players if they're visible to you + because they're nearby. Suggested by Julian@M*U*S*H. + * regedit and other functions that used $-substitutions for subpatterns + could produce weird results in some cases. Reported by Bellemore@M*U*S*H + Version 1.7.4 patchlevel 19 June 14, 2002 *** 1_7_5.225/CHANGES Sat, 20 Jul 2002 12:00:21 -0500 dunemush (pennmush/g/7_CHANGES 1.27.1.49 600) --- 1_7_5.312(w)/CHANGES Thu, 19 Sep 2002 21:48:53 -0500 dunemush (pennmush/g/7_CHANGES 1.27.1.85 600) *************** *** 18,30 **** ========================================================================== Version 1.7.5 patchlevel 9 July 16, 2002 Minor Changes: * /noeval switch added to @wall/@rwall/@wizwall and variants. Suggested by Philip Mak. Fixes: ! * Added a missing space in the @function report for softcoded @functions. [SW] * MUX-style @function foo=obj/attr works right. [SW] * Cleaned up some multiple includes of the same header files. [SW] --- 18,106 ---- ========================================================================== + Version 1.7.5 patchlevel 10 September 19, 2002 + + Major Changes: + * Commands can now be restricted by generic flags or powers. + Several mush.cnf options (restricted_building, free_objects, + hate_dest, player_locate, cemit_power) are now restrict.cnf + restrictions instead. By Vadiv@M*U*S*H. + Functions: + * When a set function (setdiff, etc.) is called with 4 arguments, + if the last one isn't a valid sorting category, it's treated as + the output separator. Inspired by Mux [SW] + * checkpass(), a wizard function that checks a string against a player's + password. Requested by Writh@M*U*S*H. + * regedit() and variants can now accept multiple regexps and + replacements, in order, like edit(). By Walker@M*U*S*H. + * comp() can take a third argument to specify the type of + comparison to make. Suggested by Philip Mak. + * The trigonometric functions now take an optional argument to + control how the angles they work with are measured to allow them + to accept angles in degrees as well as the default radians. [SW,MUX2,Rhost] + * Added ctu() for converting between angle measurements. [SW,MUX2,Rhost] + * Added atan2(). [SW] + * dist2d() and dist3d() can take floating-point numbers. [SW] + * Other small cleanups in the math functions. [SW] + @Mail: + * The MAIL_SUBJECTS option has been removed. @mail now includes + subjects mandatorily. Suggested by Vadiv@M*U*S*H. + Minor Changes: + * When a player @clones an object owned by another player, the + clone is now owned by the @cloning player, instead of the original + owner. Fixes a quota transfer issue reported by Sparta and + Philip Mak. + * The flag table is no longer walked with a linear search. Instead, + ptab_firstentry and ptab_nextentry are used. Flags no longer need + to be added in a particular order or groups in flags.c, and flags + added through hardcode should work better. Patch by Vadiv@M*U*S*H + * Error message for wrong number of arguments to a function + now tells you how many arguments it thinks you gave. + Suggested by Philip Mak. + * GAGGED players may now perform mail reading and maintenance. + * Internal reorganization of signal code. [SW] + * Attempts to speak on a channel that you can't speak on or see + now fail and command parsing continues. Suggested by Vadiv@M*U*S*H. + * The amount of CPU time spent running a queue entry can be limited. + This helps reduce the impact of some types of denial-of-service attacks. + New mush.cnf directive queue_entry_cpu_time. This currently + works only on Unix systems with setitimer. [SW] + * Internal rewrite of page/whisper code by Vadiv@M*U*S*H. + * Flag set/reset messages now include the name of the target object. + Suggested by Kyieren@M*U*S*H. + * game/txt/Makefile now includes options to limit the number of + news/etc topic aliases that are included in the 'entries' indices + generated by index-files.pl. Suggested by Nymeria@M*U*S*H. + * Minor inconsistencies in @sweep output punctuation reported by + Cmintrnt@M*U*S*H have been fixed. + * Added hints/cygwin.sh, tested with cygwin 1.3.12. Added additional + cygwin build information to README. + * The whisper-pose message is now Player senses: , with no + quotation marks added. This matches all other pose-type messages + in the server. Suggested by Philip Mak. + Fixes: + * Archaic help reference to FORCE_WHITE removed. Noted by Oriens@Alexandria. + * Help fixes by Cerekk@bDv TrekMUSH, Julian@M*U*S*H, Letters@M*U*S*H, + and Philip Mak. + * The wildcard matcher could lag the MUSH under unusual conditions. + It's now smarter. Discovered by Sketch@M*U*S*H. + * Fixes from 1.7.4p20 + * Fix a bug with setdiff() not using the output separator correctly. [SW] + * convsecs() could attempt to use values larger than 2^31, which could + crash Windows. Reported by Bellemore@M*U*S*H. + * @config didn't correctly show default flags for objects. + Reported by Vadiv@M*U*S*H. + * The strcasecoll function was poorly coded, and is now fixed. + * Created players who hadn't yet logged in didn't have LASTIP set + properly. Reported by Philip Mak. + Version 1.7.5 patchlevel 9 July 16, 2002 Minor Changes: * /noeval switch added to @wall/@rwall/@wizwall and variants. Suggested by Philip Mak. Fixes: ! * Added a missing space in the @function report for softcoded @functions. [SW] * MUX-style @function foo=obj/attr works right. [SW] * Cleaned up some multiple includes of the same header files. [SW] *************** *** 99,105 **** 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 --- 175,181 ---- 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 *************** *** 150,156 **** * @sitelock/remove could remove entries it shouldn't if you remove the first one after the '@sitelock will add sites...' line. Reported by Ambrosia@M*U*S*H. [SW] ! * The last line of the access.cnf file sometimes wouldn't get read properly. [SW] --- 226,232 ---- * @sitelock/remove could remove entries it shouldn't if you remove the first one after the '@sitelock will add sites...' line. Reported by Ambrosia@M*U*S*H. [SW] ! * The last line of the access.cnf file sometimes wouldn't get read properly. [SW] *************** *** 173,181 **** when deciding if a $command inherited from the parent should be run via a child. * New 'call_limit' config option can limit the number of recursive ! parser calls to control process stack size and avoid crashes on systems with limited stack. Defaults to unlimited, however, because ! setting this value too small breaks mushcode. Report by Bellemore and BladedThoth @ M*U*S*H. Fixes: * Code cleanup - some stuff from 1.7.4 got left in that isn't --- 249,257 ---- when deciding if a $command inherited from the parent should be run via a child. * New 'call_limit' config option can limit the number of recursive ! parser calls to control process stack size and avoid crashes on systems with limited stack. Defaults to unlimited, however, because ! setting this value too small breaks mushcode. Report by Bellemore and BladedThoth @ M*U*S*H. Fixes: * Code cleanup - some stuff from 1.7.4 got left in that isn't *** 1_7_5.225/BUGS Sat, 15 Apr 2000 10:56:00 -0500 dunemush (pennmush/9_BUGS 1.1 600) --- 1_7_5.312(w)/BUGS Wed, 24 Jul 2002 20:59:56 -0500 dunemush (pennmush/9_BUGS 1.2 600) *************** *** 1,4 **** --- 1,9 ---- + Bugs that aren't our fault, but might bite people with old compilers: + * Ralph Melton reports that compiling with gcc 2.5.8 under SunOS 4.1.1 using -O optimization and forking dumps causes the dump process to crash. Removing -O fixes the problem; so might using a more recent gcc. + * Javelin has confirmed that compiling with gcc 2.7.2.3 under Linux 2.2.16 + using -O optimization causes ansi(rh,a) to crash. Removing -O fixes + the problem; so might using a more recent gcc *** 1_7_5.225/game/txt/hlp/pennvers.hlp Sat, 20 Jul 2002 12:00:21 -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.1.1.5.1.1.1.5 600) --- 1_7_5.312(w)/game/txt/hlp/pennvers.hlp Thu, 19 Sep 2002 21:48:54 -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.1.1.5.1.1.1.3.1.1.1.3.1.1.1.13 600) *************** *** 1,5 **** & changes ! & 1.7.5p9 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 '. 'help credits' --- 1,5 ---- & changes ! & 1.7.5p10 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 '. 'help credits' *************** *** 11,23 **** A list of the patchlevels associated with each release can be read in 'help patchlevels'. Version 1.7.5 patchlevel 9 July 16, 2002 Minor Changes: * /noeval switch added to @wall/@rwall/@wizwall and variants. Suggested by Philip Mak. Fixes: ! * Added a missing space in the @function report for softcoded @functions. [SW] * MUX-style @function foo=obj/attr works right. [SW] * Cleaned up some multiple includes of the same header files. [SW] --- 11,100 ---- A list of the patchlevels associated with each release can be read in 'help patchlevels'. + Version 1.7.5 patchlevel 10 September 19, 2002 + + Major Changes: + * Commands can now be restricted by generic flags or powers. + Several mush.cnf options (restricted_building, free_objects, + hate_dest, player_locate, cemit_power) are now restrict.cnf + restrictions instead. By Vadiv@M*U*S*H. + Functions: + * When a set function (setdiff, etc.) is called with 4 arguments, + if the last one isn't a valid sorting category, it's treated as + the output separator. Inspired by Mux [SW] + * checkpass(), a wizard function that checks a string against a player's + password. Requested by Writh@M*U*S*H. + * regedit() and variants can now accept multiple regexps and + replacements, in order, like edit(). By Walker@M*U*S*H. + * comp() can take a third argument to specify the type of + comparison to make. Suggested by Philip Mak. + * The trigonometric functions now take an optional argument to + control how the angles they work with are measured to allow them + to accept angles in degrees as well as the default radians. [SW,MUX2,Rhost] + * Added ctu() for converting between angle measurements. [SW,MUX2,Rhost] + * Added atan2(). [SW] + * dist2d() and dist3d() can take floating-point numbers. [SW] + * Other small cleanups in the math functions. [SW] + @Mail: + * The MAIL_SUBJECTS option has been removed. @mail now includes + subjects mandatorily. Suggested by Vadiv@M*U*S*H. + Minor Changes: + * When a player @clones an object owned by another player, the + clone is now owned by the @cloning player, instead of the original + owner. Fixes a quota transfer issue reported by Sparta and + Philip Mak. + * The flag table is no longer walked with a linear search. Instead, + ptab_firstentry and ptab_nextentry are used. Flags no longer need + to be added in a particular order or groups in flags.c, and flags + added through hardcode should work better. Patch by Vadiv@M*U*S*H + * Error message for wrong number of arguments to a function + now tells you how many arguments it thinks you gave. + Suggested by Philip Mak. + * GAGGED players may now perform mail reading and maintenance. + * Internal reorganization of signal code. [SW] + * Attempts to speak on a channel that you can't speak on or see + now fail and command parsing continues. Suggested by Vadiv@M*U*S*H. + * The amount of CPU time spent running a queue entry can be limited. + This helps reduce the impact of some types of denial-of-service attacks. + New mush.cnf directive queue_entry_cpu_time. This currently + works only on Unix systems with setitimer. [SW] + * Internal rewrite of page/whisper code by Vadiv@M*U*S*H. + * Flag set/reset messages now include the name of the target object. + Suggested by Kyieren@M*U*S*H. + * game/txt/Makefile now includes options to limit the number of + news/etc topic aliases that are included in the 'entries' indices + generated by index-files.pl. Suggested by Nymeria@M*U*S*H. + * Minor inconsistencies in @sweep output punctuation reported by + Cmintrnt@M*U*S*H have been fixed. + * Added hints/cygwin.sh, tested with cygwin 1.3.12. Added additional + cygwin build information to README. + * The whisper-pose message is now Player senses: , with no + quotation marks added. This matches all other pose-type messages + in the server. Suggested by Philip Mak. + Fixes: + * Archaic help reference to FORCE_WHITE removed. Noted by Oriens@Alexandria. + * Help fixes by Cerekk@bDv TrekMUSH, Julian@M*U*S*H, Letters@M*U*S*H, + and Philip Mak. + * The wildcard matcher could lag the MUSH under unusual conditions. + It's now smarter. Discovered by Sketch@M*U*S*H. + * Fixes from 1.7.4p20 + * Fix a bug with setdiff() not using the output separator correctly. [SW] + * convsecs() could attempt to use values larger than 2^31, which could + crash Windows. Reported by Bellemore@M*U*S*H. + * @config didn't correctly show default flags for objects. + Reported by Vadiv@M*U*S*H. + * The strcasecoll function was poorly coded, and is now fixed. + * Created players who hadn't yet logged in didn't have LASTIP set + properly. Reported by Philip Mak. + + & 1.7.5p9 Version 1.7.5 patchlevel 9 July 16, 2002 Minor Changes: * /noeval switch added to @wall/@rwall/@wizwall and variants. Suggested by Philip Mak. Fixes: ! * Added a missing space in the @function report for softcoded @functions. [SW] * MUX-style @function foo=obj/attr works right. [SW] * Cleaned up some multiple includes of the same header files. [SW] *************** *** 94,100 **** 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 --- 171,177 ---- 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 *************** *** 146,152 **** * @sitelock/remove could remove entries it shouldn't if you remove the first one after the '@sitelock will add sites...' line. Reported by Ambrosia@M*U*S*H. [SW] ! * The last line of the access.cnf file sometimes wouldn't get read properly. [SW] --- 223,229 ---- * @sitelock/remove could remove entries it shouldn't if you remove the first one after the '@sitelock will add sites...' line. Reported by Ambrosia@M*U*S*H. [SW] ! * The last line of the access.cnf file sometimes wouldn't get read properly. [SW] *************** *** 170,178 **** when deciding if a $command inherited from the parent should be run via a child. * New 'call_limit' config option can limit the number of recursive ! parser calls to control process stack size and avoid crashes on systems with limited stack. Defaults to unlimited, however, because ! setting this value too small breaks mushcode. Report by Bellemore and BladedThoth @ M*U*S*H. Fixes: * Code cleanup - some stuff from 1.7.4 got left in that isn't --- 247,255 ---- when deciding if a $command inherited from the parent should be run via a child. * New 'call_limit' config option can limit the number of recursive ! parser calls to control process stack size and avoid crashes on systems with limited stack. Defaults to unlimited, however, because ! setting this value too small breaks mushcode. Report by Bellemore and BladedThoth @ M*U*S*H. Fixes: * Code cleanup - some stuff from 1.7.4 got left in that isn't *************** *** 330,344 **** * Fixes up to 1.7.4p12 merged in. & 1.7.4p20 ! Version 1.7.4 patchlevel 20 June 14, 2002 Fixes: * Help semaphores4 typo fixed by Mike Griffiths. * See_All players now see hidden connected mail senders. Suggested by Philip Mak. * spellnum could introduce spurious spaces. Reported by Intrevis@M*U*S*H. * table() sometimes produced spurious blank rows. Reported by Nymeria@M*U*S*H. This is the first attempt at a fix. & 1.7.4p19 --- 407,438 ---- * Fixes up to 1.7.4p12 merged in. & 1.7.4p20 ! Version 1.7.4 patchlevel 20 September 19, 2002 Fixes: * Help semaphores4 typo fixed by Mike Griffiths. + * Help cleanup. [TAP] * See_All players now see hidden connected mail senders. Suggested by Philip Mak. * spellnum could introduce spurious spaces. Reported by Intrevis@M*U*S*H. * table() sometimes produced spurious blank rows. Reported by Nymeria@M*U*S*H. This is the first attempt at a fix. + * switch() help improved. [SW] + * enter no longer returns Permission denied, but + "I can't see that here", as you can only enter things. + Suggested by Philip Mak. + * A one-time, one-pointer memory leak in plyrlist.c fixed + by Vadiv@M*U*S*H. + * Unbalanced or empty double-quotes gave weird results in page + and whisper. Reported by Vadiv@M*U*S*H. [SW] + * @chan/decomp no longer shows names of channels that the enactor + can't see. Reported by Nat@SW:ANT. + * The lock() and elock() functions now operate properly with + user:whatever locks. Reported by Mike Griffiths. + * pmatch() will locate hidden players if they're visible to you + because they're nearby. Suggested by Julian@M*U*S*H. + * regedit and other functions that used $-substitutions for subpatterns + could produce weird results in some cases. Reported by Bellemore@M*U*S*H & 1.7.4p19 *************** *** 5457,5467 **** TinyMUSH 2.0's. The option to examine public attributes by default is configurable. & patchlevels For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 --- 5551,5891 ---- TinyMUSH 2.0's. The option to examine public attributes by default is configurable. + & 1.7.5p10 + Version 1.7.5 patchlevel 10 July 16, 2002 + + Fixes: + * enter no longer returns Permission denied, but + "I can't see that here", as you can only enter things. + Suggested by Philip Mak. + * A one-time, one-pointer memory leak in plyrlist.c fixed + by Vadiv@M*U*S*H. + + + & 1.7.5p9 + Version 1.7.5 patchlevel 9 July 16, 2002 + + Minor Changes: + * /noeval switch added to @wall/@rwall/@wizwall and variants. + Suggested by Philip Mak. + Fixes: + * Added a missing space in the @function report for softcoded + @functions. [SW] + * MUX-style @function foo=obj/attr works right. [SW] + * Cleaned up some multiple includes of the same header files. [SW] + * Lots of cleanup of old _() macros and similar by Vadiv@M*U*S*H. + * Added help for @stats/table. Suggested by Intrevis@M*U*S*H. + * Fixes to csrimalloc #ifdefs that broke in last patchlevel. [SW] + * A typo that could crash @function on certain operating systems + has been fixed. Report by Jeff Heinen. + * Improved switch() help. [SW] + * Changes in the way switchinc.c is generated, to reduce the number + of patches that attempt to patch it due to indentation changes. [SW] + + & 1.7.5p8 + Version 1.7.5 patchlevel 8 June 26, 2002 + + Minor Changes: + * Added @nspemit and nspemit(). Wizard-only versions of @pemit and + pemit() that don't print nospoof information. Suggested by many people, + most recently Mike Griffiths and Nymeria@M*U*S*H. [SW] + * Help updates. [SW] + * Force the pipes to compression program for database reads and saves to be + block-buffered. [SW] + * @function name=obj/attrib now works, as well as + @function name=obj,attrib [TAP] + * The AF_PREFIXMATCH flag is no longer shown on attributes it's set + on when you examine them. + Fixes: + * A bunch of internal code cleanup, especially around casts. [SW] + * The disconnected room check is skipped on GOING rooms. Suggested + by Philip Mak. + * The dbck check for nameless rooms was only checking disconnected + rooms; now it checks all rooms. + * hasflag() did not work with single-character flag abbreviations. + Report by Mystery8. + * The variable named 'template' in src/strutil.c has been renamed + to avoid clashes with the C++ reserved word. Suggested by Mac@M*U*S*H. + * Improvement to help @filter. Suggested by Philip Mak. [SW] + * Files in the patches directory ending in ~ are ignored + when patches.h is rebuilt. [SW] + * Removed a // comment from strutil.c, as we're still + just following the c89 standard, not c99. Report by + Vadiv@M*U*S*H. [SW] + * make indent now indents the .dst files before the .c ones. + Fixes some spurious warnings from later makes. Suggested by + Vadiv@M*U*S*H. [SW] + * Code cleanup, mostly tprintf() and unneeded header file + checking elimination. [SW] + * Since a Windows header #defines OPAQUE, which conflicts with a + #define for the mush flag of the same name, rename + our #define rather than #undefining the Windows one. [SW] + * Fixes from 1.7.4p19 + + + & 1.7.5p7 + 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: + * New attribute_alias config directive, and some default attribute + aliases added to alias.cnf. Based on a report from Hilikiradi. + Functions: + * textfile() returns help/news/etc. entries. Suggested by Trispis@M*U*S*H. + Minor changes: + * New @warnings type lock-checks that reports problems with @locks. [SW] + * exit-unlinked checks do some sanity checks on variable exits. [SW] + * Improved error-checking in evaluation of @locks. [SW] + * No more hdrs/warnings.h file. [SW] + * New @nameaccent attribute to add accent marks to object + names in speech and things like look. Idea from Elendor. [SW] + * accent() understands a few more things. [SW] + * The accented characters->html entities table and other + lookup tables are now in a seperate file, src/tables.c, + which can be regenerated if needed by utils/gentables.c [SW] + * Improvements in caching of cached text files. [SW] + Fixes: + * Buglet in ansi display of high-bit characters fixed. Report by + Trispis@M*U*S*H. [SW] + * Improved @clock2 help by Linda Antonsson. + * Fixes from 1.7.4p17 + * A truly perverse database could cause an infinite loop on load. [TAP] + * Win32 portability fixes. [NJG, EEH] + * The notify code assumed that integers could be directly stored in + pointers. This isn't always true. [SW] + * Removed some un-used code. [SW] + * Fixed some compiler warnings and general code cleanup. [SW] + * Changed signal handlers to always use the ANSI/ISO C form (Returning + void, basically) [SW] + * A null string no longer prefix-matches anything. Report by Prot Diryn + and Cheetah@M*U*S*H. + * @sitelock/remove could remove entries it shouldn't if you remove the first + one after the '@sitelock will add sites...' line. Reported by + Ambrosia@M*U*S*H. [SW] + * The last line of the access.cnf file sometimes wouldn't get read + properly. [SW] + + + & 1.7.5p5 + Version 1.7.5 patchlevel 5 March 11, 2002 + + Commands: + * @notify and @drain now accept a new switch /any. [TAP] + * Added @remit/list. Suggested by Tareldin@M*U*S*H [SW] + Minor changes: + * We now use the Mersenne Twister pseudo-random number generator, + which is better that that available in most C libraries. + Moreover, we seed with /dev/urandom, if it's available. [SW] + * The 'T' type character (for THING) is now shown when one-character + flag lists are displayed. This is more consistent with other types, + and makes it harder to confuse #23O (#23, opaque) with #230 + (#230, no flags). Suggested by Eratl@M*U*S*H. + * @lock/use on a parent used to apply to attempts to use $commands on + a child. This is no longer necessary, given inheritable locks, + so the behavior has been changed. Parents' locks are no longer checked + when deciding if a $command inherited from the parent should be run + via a child. + * New 'call_limit' config option can limit the number of recursive + parser calls to control process stack size and avoid crashes + on systems with limited stack. Defaults to unlimited, however, because + setting this value too small breaks mushcode. Report by Bellemore + and BladedThoth @ M*U*S*H. + Fixes: + * Code cleanup - some stuff from 1.7.4 got left in that isn't + used in 1.7.5 any more. [SW] + * Fixes from 1.7.4p16, notably an important fix for timed semaphores. + * Cygwin portability fixes. [NJG] + * Updated MSVC++ project files. [EEH] + + + & 1.7.5p4 + Version 1.7.5 patchlevel 4 February 15, 2002 + + Major changes: + * The mush recognizes telnet-aware connections. This is + neccessary for properly sending them some 8-bit characters. [SW] + * Much more support for handling accented characters in the ISO 8859-1 + character set. See help for accent(), stripaccents(), and NOACCENTS. + Inspired by Elendor. [SW] + * Things that do first-unique-prefix matching (command, attribute and flag + names) now use a more space-efficient data structure than before. + This adds two new files, src/ptab.c and hdrs/ptab.h [SW] + Commands: + * @sitelock/remove removes a sitelock entry. [SW] + Functions: + * ord() and chr() functions for converting characters to/from numerical + values that represent them. [SW] + Minor changes: + * The useless FORCE_WHITE flag is really, truely, gone. [SW] + * Use the new arglens argument to functions in more places. [SW] + * capstr() and before() fixes reimplemented using arglens. [SW] + * We now use the Mersenne Twister PRNG algorithm. [SW] + Fixes: + * setunion() no longer eats empty list elements. [SW] + * Setting an inherited lock on a child could change the parent's lock. + Reported by Riverwolf. [SW] + * Help fixes. [SW, Nymeria] + * Players waiting at the connect screen weren't being disconnected + by the idle_timeout. + * Detection of cygwin in Configure may be improved. + * Fixes from 1.7.4p15. + + & 1.7.5p3 + Version 1.7.5 patchlevel 3 January 24, 2002 + + Fixes: + * before() was broken in 1.7.5p2. Reported by Sam Knowlton. + * capstr() was broken in 1.7.5p2. + * Win32 portability fixes by Noltar@Korongil. + + & 1.7.5p2 + Version 1.7.5 patchlevel 2 January 23, 2002 + + Major changes: + * Implementations for softcode functions get the lengths of their arguments + passed to them, and this is taken advantage of in a number of places. [SW] + Minor changes: + * It's harder to get a partial dbref because of end-of-buffer truncation. [SW] + * Code cleanup. In particular, safe_str() and friends are no longer + macros for a safe_copy_str() or the like, because hardly anything + used a different buffer length than BUFFER_LEN, and those places + can be handled other ways. [SW] + Fixes: + * Win32 portability fixes by Noltar@Korongil and Eric Koske. + * When you have two hidden connections, one idle over the inactivity limit, + and the other not, @hide/off on the active connection unhides both, + but you also see the Inactivity re-hide message from the other + connection. Reported by Trispis. + * iname() function actually added to function table so it works. + Reported by K. Shirow. + * @lock obj=attrib:value locks didn't work properly. Reported by + Linda Antonsson. + * Fixes from 1.7.4p14. + + & 1.7.5p1 + Version 1.7.5 patchlevel 1 December 3, 2001 + + Minor Changes: + * PCRE updated to 3.7. [SW] + * player_name_len is now runtime configurable. Suggested by + Linda Antonsson. [SW] + * Any object of any type may be a ZMO, and any object of any type + may be zoned to a ZMO of any type. However, searching for + $commands has not changed, so $commands on a ZMO are only + searched when the ZMO is not a room, and $commands on objects + within the ZMO are only searched when the ZMO is a room. [TAP] + * @chzoneall nows directly calls @chzone, and @chzone now tells + you when it's not changing a zone. [TAP] + * The term "Zone Master" (player) has been replaced by "Shared + Player" in the help. [TAP] + * Many obsolete db formats are no longer readable. hdrs/oldattrib.h + and src/convdb.c are no more. [SW] + * Code cleanup. [SW] + Fixes: + * Help file for mix updated. Report by Cmintrnt@M*U*S*H + * Updated win32 config.h file and other fixes by Noltar@Korongil + * WHO wasn't showing unconnected players. Report by Noltar@Korongil. [SW] + * Help fixes. [SW] + + & 1.7.5p0 + Version 1.7.5 patchlevel 0 November 14, 2001 + + Major Changes: + * This is now the development minor version. This first release includes + relatively few changes, to make converting to it easier. + * Internal changes to the lock system. This requires a new minimal.db, + which is now distributed. [SW] + * Locale-based string collation throughout. + * Only ANSI C compilers are still supported; no more K&R. Files are + gradually going to be converted to ANSI C only. + * There is now an option to make ZMOs and ZMRs not count for + control of objects, only ZMPs. [SW] + Flags: + * The ZONE player flag has been renamed SHARED, to help seperate the + ZMP control-only meaning from the command-matching of ZMOs and ZMRs. [SW] + Commands: + * /preserve switch for @link prevents @chowning. Suggested by Vexon@M*U*S*H + * Admin WHO and SESSION now includes unconnected descriptors. [SW] + * Unconnected descriptors can now be booted. Patch by Bellemore@M*U*S*H. + * Unconnected descriptors can now be paged by admin with page/port. [SW] + Functions: + * mix() can take more than 10 lists and of unequal length. [3,SW] + * iname() returns the name of an object from inside (honoring nameformat) + Idea by Jeffrey@TheHotel. + * lplayers() returns a list of players in the location. Handy for + room parents. By Vexon@M*U*S*H. + * lvplayers(), lvcon(), lvexits() are like lplayers/lcon/lexits, but + leave out dark things (and disconnected players). Handy for room + parents. By Vexon@M*U*S*H. + Minor Changes: + * munge() now passes its delimiter as %1 to make generic sorting easier. [SW] + * Word-based attribute compression is faster than before, for both + compression and decompression. [SW] + * Windows memory-usage information for wizards is now in @uptime, not + @stats [SW] + * Word-based attribute compression stats can be viewed on non-Windows + mushes as well, by defining COMP_STATS. See externs.h for details. [SW] + * Setting of the internal QUEUE and semaphore attributes does not modify + an object's last-modified timestamp. [SW] + * Speaking on a channel that you're gagging is now treated like + speaking on a channel that you're not on. Suggested by rodregis@M*U*S*H + * You can use @exitto in place of &DESTINATION to set the destinatino + for variable exits, though DESTINATION is checked first. [3] + * WATCHER is another name for the MONITOR flag. [3] + * max_guest_pennies and guest_paycheck config options. Inspired by [SW] + * Lock and unlock messages now show object name and dbref, and tell + you if you unlock an already unlocked object. Suggested by Jamie Warren. + * A version of portmsg for Win32 is in the win32 directory. + Donated by CU5@WCX + * Tweaks to info_slave, which now uses readv/writev. [SW] + * Lots of code cleanup. [SW] + * CHAT_SYSTEM, INFO_SLAVE, and FUNCTION_SIDE_EFFECTS are now #define'd + by default. [TAP] + Fixes: + * Indentation fixes [SW] + * Fixes up to 1.7.4p12 merged in. + & patchlevels For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.7.5: 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 *** 1_7_5.225/game/txt/hlp/penntop.hlp Mon, 08 Jul 2002 21:42:23 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.2 600) --- 1_7_5.312(w)/game/txt/hlp/penntop.hlp Tue, 17 Sep 2002 13:26:23 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.5 600) *************** *** 171,177 **** OFAILURE OLEAVE OLFAIL OMOVE OPAYMENT OSUCCESS OXENTER OXLEAVE OXMOVE PAYMENT QUEUE (*) RQUOTA (*) RUNOUT SEX STARTUP ! SUCCESS (continued in help attributes2) & ATTRIBUTES2 --- 171,177 ---- OFAILURE OLEAVE OLFAIL OMOVE OPAYMENT OSUCCESS OXENTER OXLEAVE OXMOVE PAYMENT QUEUE (*) RQUOTA (*) RUNOUT SEX STARTUP ! SUCCESS TFPREFIX (continued in help attributes2) & ATTRIBUTES2 *************** *** 426,431 **** --- 426,433 ---- This is very useful for keeping rooms uncluttered. See also: @link, STICKY, LINK_OK + & %# + & %N & ENACTOR The enactor is the object that does something (enacts something :). This is an important concept in MUSH, because the way many commands *************** *** 481,486 **** --- 483,489 ---- the global command in that room. Alternatively, if a global command is oddly not working in a room, you should check for copies of the command word in the room (using @scan). + & %! & EXECUTOR The executor of a command is the object actually carrying out the command. This differs from the enactor, because the enactor is the object that sets *************** *** 1442,1447 **** --- 1445,1451 ---- Foozle 09blert bar baz foo. See also: string functions + & % & SUBSTITUTIONS The % symbol is used in MUSH commands to indicate a substitution -- some other character(s) or words are substituted for whatever follows the % *************** *** 1672,1677 **** --- 1676,1683 ---- supercalifoobert > whee + A backslash (\) can be used to escape * and ? if you want to match + a literal asterisk or question mark. See also: USER-DEFINED COMMANDS, REGEXP & ZONE MASTER ROOMS & ZMR *************** *** 1802,1808 **** to @command or @function. Commands can also use the 'noplayer' restriction, which stops ! player objects from using the command. (Continued in restrict3) & RESTRICT3 --- 1808,1815 ---- to @command or @function. Commands can also use the 'noplayer' restriction, which stops ! player objects from using the command, as well as any generic ! or any . (Continued in restrict3) & RESTRICT3 *** 1_7_5.225/game/txt/hlp/pennmail.hlp Tue, 04 Sep 2001 08:19:24 -0500 dunemush (pennmush/15_pennmail.h 1.9 600) --- 1_7_5.312(w)/game/txt/hlp/pennmail.hlp Sun, 15 Sep 2002 15:51:04 -0500 dunemush (pennmush/15_pennmail.h 1.10 600) *************** *** 1,3 **** --- 1,4 ---- + & mail & @mail @mail[/] [ [= ]] @mail[/] = [/] *** 1_7_5.225/game/txt/hlp/pennfunc.hlp Sat, 20 Jul 2002 12:05:38 -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.1.1.1.1.1.1.2 600) --- 1_7_5.312(w)/game/txt/hlp/pennfunc.hlp Thu, 19 Sep 2002 12:35:44 -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.1.1.1.1.1.1.1.1.1.1.1 600) *************** *** 32,38 **** the built-in game functions. For details on global user functions, see "help @function". ! See also: MUSHCODE & FUNCTION LIST Several major variants of functions are available. The help topics --- 32,38 ---- the built-in game functions. For details on global user functions, see "help @function". ! See also: MUSHCODE & FUNCTION LIST Several major variants of functions are available. The help topics *************** *** 68,74 **** regrepi() subj() udefault() ufun() uldefault() ulocal() v-function xget() zfun() ! See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES & Bitwise functions These functions treat integers as a sequence of binary bits (Either 0 or 1) and manipulate them. --- 68,74 ---- regrepi() subj() udefault() ufun() uldefault() ulocal() v-function xget() zfun() ! See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES & Bitwise functions These functions treat integers as a sequence of binary bits (Either 0 or 1) and manipulate them. *************** *** 93,99 **** gte() lt() lte() nand() neq() nor() not() or() t() xor() ! See also: BOOLEAN VALUES, @config & Channel functions Channel functions work with the channel system. --- 93,99 ---- gte() lt() lte() nand() neq() nor() not() or() t() xor() ! See also: BOOLEAN VALUES, @config & Channel functions Channel functions work with the channel system. *************** *** 114,120 **** pmatch() rloc() rnum() room() where() zone() ! See also: DBREF & Information functions Information functions return values related to objects. --- 114,120 ---- pmatch() rloc() rnum() room() where() zone() ! See also: DBREF & Information functions Information functions return values related to objects. *************** *** 160,184 **** setunion() shuffle() sort() sortby() splice() wordpos() words() ! See also: LISTS & Math functions Math functions take one or more numbers and return a numeric value. What is allowed as a 'number' depends on @config settings (see help). These functions can taken both integers and floating point numbers: ! add() bound() lmath() max() mean() median() min() mul() sign() stddev() sub() trunc() val() These functions operate only on integers (if passed floating point ! numbers, an error will be reported): ! abs() dec() dist2d() dist3d() div() ! mod() inc() These functions operate only with floating point numbers: ! acos() asin() atan() ceil() cos() ! e() exp() fdiv() floor() fmod() ! ln() log() pi() power() round() ! sin() sqrt() tan() These functions operate on n-dimensional vectors. A vector is a delimiter-separated list of numbers (space-separated, by default): --- 160,184 ---- setunion() shuffle() sort() sortby() splice() wordpos() words() ! See also: LISTS & Math functions Math functions take one or more numbers and return a numeric value. What is allowed as a 'number' depends on @config settings (see help). These functions can taken both integers and floating point numbers: ! abs() add() bound() lmath() max() mean() median() min() mul() sign() stddev() sub() trunc() val() These functions operate only on integers (if passed floating point ! numbers, they will return an error or misbehave): ! dec() dist2d() dist3d() div() mod() ! inc() These functions operate only with floating point numbers: ! acos() asin() atan() atan2() ceil() ! cos() e() exp() fdiv() floor() ! fmod() ln() log() pi() power() ! round() sin() sqrt() tan() These functions operate on n-dimensional vectors. A vector is a delimiter-separated list of numbers (space-separated, by default): *************** *** 208,214 **** strcat() strinsert() stripaccent() stripansi() strlen() switch() trim() ucstr() wrap() ! See also: STRINGS & Time functions These functions return times or format times. --- 208,214 ---- strcat() strinsert() stripaccent() stripansi() strlen() switch() trim() ucstr() wrap() ! See also: STRINGS & Time functions These functions return times or format times. *************** *** 219,232 **** & Utility functions These functions don't quite fit into any other category. ! ansi() atrlock() beep() clone() create() ! die() dig() functions() isdbref() isint() ! isnum() isword() localize() link() list() ! lnum() mudname() null() objeval() open() ! pcreate() r-function rand() restarts() s-function ! set() setq() setr() soundex() soundslike() ! tel() textfile() valid() version() wipe() ! @@() & @@() & NULL() --- 219,232 ---- & Utility functions These functions don't quite fit into any other category. ! ansi() atrlock() beep() checkpass() clone() ! create() die() dig() functions() isdbref() ! isint() isnum() isword() localize() link() ! list() lnum() mudname() null() objeval() ! open() pcreate() r-function rand() restarts() ! s-function set() setq() setr() soundex() ! soundslike() tel() textfile() valid() version() ! wipe() @@() & @@() & NULL() *************** *** 314,325 **** > think accent(Khazad ai-menu!, Khaz^d ai-m^nu!) Khaz(a-with-^)d ai-m(e-with-^)nu! & ACOS() ! acos() Returns the angle that has the given (arc-cosine), with the ! angle expressed in radians. ! See HELP COS() for how to convert between radians and degrees. & ADD() add(,,...) --- 314,325 ---- > think accent(Khazad ai-menu!, Khaz^d ai-m^nu!) Khaz(a-with-^)d ai-m(e-with-^)nu! & ACOS() ! acos([, ]) Returns the angle that has the given (arc-cosine), with the ! angle expressed in the given angle type, or radians by default. ! See HELP CTU() for more on the angle type. & ADD() add(,,...) *************** *** 361,367 **** effects), while cand() stops evaluation after the first argument that evaluates to false. ! See also: BOOLEAN VALUES, or(), xor(), not() & ANDFLAGS() andflags(,) --- 361,367 ---- effects), while cand() stops evaluation after the first argument that evaluates to false. ! See also: BOOLEAN VALUES, or(), xor(), not() & ANDFLAGS() andflags(,) *************** *** 400,406 **** For example, "ansi(fc, Test)" would hilight "Test" in flashing cyan. ! See also: ANSI, COLOR, FORCE_WHITE & APOSS() aposs() --- 400,406 ---- For example, "ansi(fc, Test)" would hilight "Test" in flashing cyan. ! See also: ANSI, COLOR & APOSS() aposs() *************** *** 412,430 **** This function returns the proper article, "a" or "an", based on whether or not begins with a vowel. & ASIN() ! asin() Returns the angle with the given (arc-sine), with the angle ! expressed in radians. ! See HELP COS() for how to convert between radians and degrees. & ATAN() ! atan() ! Returns the angle with the given (arc-tangent), with the ! angle expressed in radians. ! See HELP COS() for how to convert between radians and degrees. & ATRLOCK() atrlock(/[, ]) --- 412,437 ---- This function returns the proper article, "a" or "an", based on whether or not begins with a vowel. & ASIN() ! asin([, ]) Returns the angle with the given (arc-sine), with the angle ! expressed in the given angle type, or radians by default. ! See HELP CTU() for more on the angle type. & ATAN() ! & ATAN2() ! atan([, ]) ! atan2(, [<, ]) ! Returns the angle with the given (arc-tangent), with the ! angle expressed in the given angle type, or radians by default. ! ! atan2(y, x) is like atan(fdiv(y, x)), except x can be 0, and the ! signs of both arguments are used in determining the sign of the ! result. It is useful in converting between cartesian and polar ! coordinates. ! See HELP CTU() for more on the angle type. & ATRLOCK() atrlock(/[, ]) *************** *** 567,572 **** --- 574,588 ---- If you don't have permission to examine the object, you only see those channels to which the object belong for which you have permission to join (or are joined to). + & CHECKPASS() + checkpass(,) + + Returns 1 if matches the player's password otherwise 0. + If has no password, this function will always return 1. + should be specified as a dbref or *. + + This function is restricted to wizards. + & CHR() & ORD() chr() *************** *** 587,593 **** If no locktype is given, "JOIN" is assumed. With two arguments, sets the lock. ! See also @clock & CLONE() clone() --- 603,609 ---- If no locktype is given, "JOIN" is assumed. With two arguments, sets the lock. ! See also: @clock & CLONE() clone() *************** *** 595,605 **** This is a side-effect function and may not be enabled on some MUSHes. & COMP() ! comp(, ) ! Comp compares two strings. It returns 0 if they are the same, -1 if ! string1 is less than/precedes alphabetically string2, and 1 otherwise. & CON() con() --- 611,631 ---- This is a side-effect function and may not be enabled on some MUSHes. & COMP() ! comp(, [, ]) ! Comp compares two values. It returns 0 if they are the same, -1 if ! value1 is less than/precedes alphabetically value2, and 1 otherwise. + + By default the comparison is a case-sensitive lexicographic (string) + comparison. By giving the optional , the comparison can + be specified: + Comparison + A Case-sensitive lexicographic (default) + I Case-insensitive lexicographic + D Dbrefs of valid objects + N Integers + F Floating point numbers & CON() con() *************** *** 611,617 **** or the enactor (%#). You CANNOT get the contents of anything else, regardless of whether or not you have objects in it. ! See also: lcon(), next() & CONFIG() config() config(