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 .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 | 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 ! 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 " 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 '. '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 '. '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 p'. 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 p'. 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 = @listen2 ! @listmotd @lock @lock2 ! @lock3 @lock4 @lock5 ! @lock6 @lock7 @lock8 ! @logwipe/ ! @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 /* For GetCurrentProcessId() */ #undef OPAQUE /* Clashes with flags.h */ #endif + #include + #include + #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, dbref thing, lock_list *lock); --- 110,116 ---- StrTree lock_names; static void free_one_lock_list _((lock_list *ll)); ! static lock_type check_lock_type _((dbref player, dbref thing, lock_type name)); static int delete_lock(dbref player, dbref thing, lock_type type); static int can_write_lock(dbref player, dbref thing, lock_list *lock); *************** *** 295,300 **** --- 295,314 ---- return NULL; } + /* Return the proper entry from lock_types, or NULL */ + const lock_list * + get_lockproto(lock_type type) + { + const lock_list *ll; + + for (ll = lock_types; ll->type; ll++) + if (strcmp(type, ll->type) == 0) + return ll; + + return NULL; + + } + /* Set the lock type on thing to boolexp. * This is a primitive routine, to be called by other routines. * It will go somewhat wonky if given a NULL boolexp. *************** *** 336,351 **** ll->key = key; ll->creator = player; if (flags == -1) { ! lock_list *l2; ! int found = 0; ! for (l2 = (lock_list *) lock_types; l2->type; l2++) { ! if (strcmp(real_type, l2->type) == 0) { ! ll->flags = l2->flags; ! found = 1; ! break; ! } ! } ! if (found == 0) ll->flags = 0; } else { ll->flags = flags; --- 350,359 ---- ll->key = key; ll->creator = player; if (flags == -1) { ! const lock_list *l2 = get_lockproto(real_type); ! if (l2) ! ll->flags = l2->flags; ! else ll->flags = 0; } else { ll->flags = flags; *************** *** 423,432 **** * Might destructively modify name. */ static lock_type ! check_lock_type(player, thing, name) ! dbref player; ! dbref thing; ! char *name; { lock_type ll; char *sp; --- 431,437 ---- * Might destructively modify name. */ static lock_type ! check_lock_type(dbref player, dbref thing, lock_type name) { lock_type ll; char *sp; *************** *** 480,486 **** return; } if ((thing = match_controlled(player, name)) != NOTHING) { ! if ((real_type = check_lock_type(player, thing, (char *) type)) != NULL) { if (getlock(thing, real_type) == TRUE_BOOLEXP) notify_format(player, T("%s(%s) - (already) unlocked."), Name(thing), unparse_dbref(thing)); --- 485,491 ---- return; } if ((thing = match_controlled(player, name)) != NOTHING) { ! if ((real_type = check_lock_type(player, thing, type)) != NULL) { if (getlock(thing, real_type) == TRUE_BOOLEXP) notify_format(player, T("%s(%s) - (already) unlocked."), Name(thing), unparse_dbref(thing)); *************** *** 540,546 **** if (key == TRUE_BOOLEXP) { notify(player, T("I don't understand that key.")); } else { ! if ((real_type = check_lock_type(player, thing, (char *) type)) != NULL) { /* everything ok, do it */ if (add_lock(player, thing, real_type, key, -1)) notify_format(player, T("%s(%s) - locked."), Name(thing), --- 545,551 ---- if (key == TRUE_BOOLEXP) { notify(player, T("I don't understand that key.")); } else { ! if ((real_type = check_lock_type(player, thing, type)) != NULL) { /* everything ok, do it */ if (add_lock(player, thing, real_type, key, -1)) notify_format(player, T("%s(%s) - locked."), Name(thing), *** 1_7_5.159/src/game.c Tue, 02 Apr 2002 08:20:43 -0600 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.2 660) --- 1_7_5.187(w)/src/game.c Fri, 17 May 2002 10:43:21 -0500 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.3 660) *************** *** 76,82 **** #endif /* fix to HP-UX getrusage() braindamage */ #include "confmagic.h" - #ifdef HAS_WAITPID #define WAIT_TYPE int #else --- 76,81 ---- *************** *** 170,177 **** --- 169,178 ---- mem = memstat.dwTotalPageFile / 1024.0 / 1024.0; notify(player, tprintf("%10.3f Mb total paging file size", mem)); } /* end of calc_memory_used */ + #endif + static Pid_t forked_dump_pid = -1; /* * used to allocate storage for temporary stuff, cleared before command *************** *** 502,524 **** Pid_t pid; #ifdef HAS_WAITPID ! while ((pid = waitpid(-1, &my_stat, WNOHANG)) > 0) ; #else ! while ((pid = wait3(&my_stat, WNOHANG, 0)) > 0) ; #endif ! #ifdef INFO_SLAVE ! if (pid == info_slave_pid) { ! do_rawlog(LT_ERR, "info_slave on pid %d exited!", pid); ! info_slave_state = 0; ! info_slave_pid = -1; ! } #endif ! #ifndef HAS_SIGACTION /* If we have sigaction, the signals are reliable */ #ifndef SIGNALS_KEPT ! signal(SIGCLD, (Sigfunc) reaper); /* do this last or it'll loop */ #endif #endif #ifndef VOIDSIG --- 503,535 ---- Pid_t pid; #ifdef HAS_WAITPID ! while ((pid = waitpid(-1, &my_stat, WNOHANG)) > 0) #else ! while ((pid = wait3(&my_stat, WNOHANG, 0)) > 0) #endif ! { #ifdef INFO_SLAVE ! if (info_slave_pid > -1 && pid == info_slave_pid) { ! do_rawlog(LT_ERR, T("info_slave on pid %d exited!"), pid); ! info_slave_state = 0; ! info_slave_pid = -1; ! } else #endif ! if (forked_dump_pid > -1 && pid == forked_dump_pid) { ! /* Most failures are handled by the forked mush already */ ! if (WIFSIGNALED(my_stat)) { ! do_rawlog(LT_ERR, T("ERROR! forking dump exited with signal %d"), ! WTERMSIG(my_stat)); ! flag_broadcast(WIZARD | ROYALTY, 0, ! T("GAME: ERROR! Forking database save failed!")); ! } ! forked_dump_pid = -1; ! } ! } #ifndef HAS_SIGACTION /* If we have sigaction, the signals are reliable */ #ifndef SIGNALS_KEPT ! signal(SIGCHLD, (Sigfunc) reaper); /* do this last or it'll loop */ #endif #endif #ifndef VOIDSIG *************** *** 558,564 **** flag_broadcast(0, 0, "%s", DUMP_NOFORK_MESSAGE); child = 0; nofork = 1; ! } #ifdef HAS_SETPRIORITY else { /* Lower the priority of the child to make parent more responsive */ --- 569,577 ---- flag_broadcast(0, 0, "%s", DUMP_NOFORK_MESSAGE); child = 0; nofork = 1; ! } else if (child > 0) ! forked_dump_pid = child; ! #ifdef HAS_SETPRIORITY else { /* Lower the priority of the child to make parent more responsive */ *************** *** 826,832 **** init_timer(); #ifndef macintosh #ifndef WIN32 ! signal(SIGCLD, (void *) reaper); #endif #endif --- 839,845 ---- init_timer(); #ifndef macintosh #ifndef WIN32 ! signal(SIGCHLD, (void *) reaper); #endif #endif *** 1_7_5.159/src/funstr.c Tue, 02 Apr 2002 07:49:20 -0600 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6.1.1.1.1.1.2.1.1.1.1.1.1.1.3 6