[PENNMUSH-ANNOUNCE] 1.7.4-patch11
dunemush@pennmush.org
dunemush at pennmush.org
Thu, 25 Oct 2001 14:54:45 -0500
This is patch11 to PennMUSH 1.7.4. After applying this patch, you will
have version 1.7.4p11
To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
patch -p1 < 1.7.4-patch11
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:
Minor Changes:
* In places like switch() that can match <number, the numbers
are now treated as floating point, so they need not be only integers.
However, they must be pure numbers; "<3km" will not work.
* Tests for channel name matches now disregard ansi. Suggested by Wayne@PDX.
Fixes:
* MacOS linting. [DW]
* next() could reveal unfindable players. Reported by Jeffrey@TheHotel. [TAP]
* making diffs or a dist now insures that switches.h, etc. are rebuilt
for the Mac/Win32 crowd. Reported by many people.
* Some warnings discovered with compiling with gcc 3.0.1 fixed. [SW]
* Potential crash-or-worse bugs that could be caused by malformed
save messages fixed. [SW]
* @mail to players with names starting with numbers works correctly now.
Report from Mike Wesson. [SW]
* Fewer logged warnings from failed convtime()s. [SW]
* Help for page now mentions /blind. Reported by Oriens@Alexandria.
* Attempting to set an invalid priv on a channel now produces a
better message. Reported by Oriens@Alexandria.
* Improved message when a Wizard overrides a chan join lock by Wayne@PDX.
* Another way to end up inside yourself fixed. Report by Ashen-Shugar. [TAP]
* Help default/edefault syntax clarified by Delina@ST:VAAE
* Help math functions clarifies 'number'. Suggested by Delina@ST:VAAE
* Information on the patches.h header added to the FAQ file. Suggested
by Kahmy. [SW]
* Potential crash in @set fixed. Report by Michael Loftis [SW]
* The Unfindable flag is checked on all levels of containers, not just
the immediate location. Suggested by Oriens. [SW]
* NT_TCP fix by Bellemore.
* secure() now escapes ^, as the help says it does. Report by Gabriel Matlin.
* link_anywhere now lets you actually @link anywhere, instead of just
letting variable exits link anywhere. Report by Viila@M*U*S*H.
* help home now returns help homes, not help home(). Suggested by
Gary Williams
Prereq: 1.7.4p10
(cd utils; sh mkcmds.sh)
Rebuilding command switch file
Rebuilding command prototype file
Rebuilding function prototype file
*** 1_7_4.159/Patchlevel Fri, 07 Sep 2001 08:13:44 -0500 dunemush (pennmush/5_Patchlevel 1.28 600)
--- 1_7_4.177(w)/Patchlevel Mon, 15 Oct 2001 14:53:22 -0500 dunemush (pennmush/5_Patchlevel 1.29 600)
***************
*** 1,2 ****
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.4p10
--- 1,2 ----
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.4p11
*** 1_7_4.159/FAQ Sun, 25 Feb 2001 13:37:15 -0600 dunemush (pennmush/6_FAQ 1.2 600)
--- 1_7_4.177(w)/FAQ Mon, 15 Oct 2001 14:48:04 -0500 dunemush (pennmush/6_FAQ 1.3 600)
***************
*** 1,11 ****
Frequently asked questions about the PennMUSH Server, post-pl10
! Updated: Febuary 23, 2001
*** There are other FAQs on the web at:
*** http://services.pennmush.org/faq.html
- *** http://raevnos.pennmush.org/pennmush/faq.html
! 0. What's the release history since pl10?
1. How do I ask for help with a problem?
2. How do I report a bug?
3. How do I request a new feature?
--- 1,11 ----
Frequently asked questions about the PennMUSH Server, post-pl10
! Updated: October 10, 2001
*** There are other FAQs on the web at:
+ *** http://www.pennmush.org/cgi-penn/fom/
*** http://services.pennmush.org/faq.html
! 0. What's the release history since 1.50pl10?
1. How do I ask for help with a problem?
2. How do I report a bug?
3. How do I request a new feature?
***************
*** 13,26 ****
5. Where can I hear about new releases?
6. Why doesn't %t or space() work right for Pueblo clients?
7. Compiling with the lcc compiler.
-----------------------------
! 0. What's the release history since pl10?
! PennMUSH pl10 is the last patchlevel of PennMUSH developed by Amberyl.
Amberyl handed over the maintenance, development, and support of
! PennMUSH to Javelin/Paul (Alan Schwartz) after pl10.
The first two post-pl10 releases were termed the "dune-1" and "dune-2"
releases (in honor of DuneMUSH, where Alan did most of his development
--- 13,27 ----
5. Where can I hear about new releases?
6. Why doesn't %t or space() work right for Pueblo clients?
7. Compiling with the lcc compiler.
+ 8. Patch information in @version and INFO
-----------------------------
! 0. What's the release history since 1.50pl10?
! PennMUSH 1.50pl10 is the last patchlevel of PennMUSH developed by Amberyl.
Amberyl handed over the maintenance, development, and support of
! PennMUSH to Javelin/Paul (Alan Schwartz) after 1.50pl10.
The first two post-pl10 releases were termed the "dune-1" and "dune-2"
releases (in honor of DuneMUSH, where Alan did most of his development
***************
*** 33,40 ****
Ralph Melton has since retired, and Thorvald Natvig took his place
on the devteam. He rewrote the command parser, and PennMUSH was
! advanced to 1.7.x.
1. How do I ask for help with a problem?
--- 34,43 ----
Ralph Melton has since retired, and Thorvald Natvig took his place
on the devteam. He rewrote the command parser, and PennMUSH was
! advanced to 1.7.0.
+ Currently, the development team is Javelin, Talek, Raevnos, and
+ Trivian. The stable version is 1.7.4.
1. How do I ask for help with a problem?
***************
*** 127,131 ****
--- 130,147 ----
recognized by lcc. We'll just use our own implementation, as it makes
things easier.
+ 8. Patch information in @version and INFO
+
+ Files in the pennmush/patches directory are checked to see if they look
+ like a patch file, and if so, information from this is included in
+ @version and INFO.
+
+ So, what makes it look like a patch file? Two lines.
+ # Patch name: Whatever
+ # Patch version: Whichever
+
+ Whatever and Whichever are used in the @version report.
+ The file with this patch information is rebuilt when needed by running
+ make.
*** 1_7_4.159/CHANGES Fri, 07 Sep 2001 08:13:44 -0500 dunemush (pennmush/8_CHANGES 1.219.1.36 600)
--- 1_7_4.177(w)/CHANGES Thu, 25 Oct 2001 11:34:31 -0500 dunemush (pennmush/8_CHANGES 1.219.1.47 600)
***************
*** 17,22 ****
--- 17,59 ----
==========================================================================
+ Version 1.7.4 patchlevel 11 October 15, 2001
+
+ Minor Changes:
+ * In places like switch() that can match <number, the numbers
+ are now treated as floating point, so they need not be only integers.
+ However, they must be pure numbers; "<3km" will not work.
+ * Tests for channel name matches now disregard ansi. Suggested by Wayne@PDX.
+ Fixes:
+ * MacOS linting. [DW]
+ * next() could reveal unfindable players. Reported by Jeffrey@TheHotel. [TAP]
+ * making diffs or a dist now insures that switches.h, etc. are rebuilt
+ for the Mac/Win32 crowd. Reported by many people.
+ * Some warnings discovered with compiling with gcc 3.0.1 fixed. [SW]
+ * Potential crash-or-worse bugs that could be caused by malformed
+ save messages fixed. [SW]
+ * @mail to players with names starting with numbers works correctly now.
+ Report from Mike Wesson. [SW]
+ * Fewer logged warnings from failed convtime()s. [SW]
+ * Help for page now mentions /blind. Reported by Oriens@Alexandria.
+ * Attempting to set an invalid priv on a channel now produces a
+ better message. Reported by Oriens@Alexandria.
+ * Improved message when a Wizard overrides a chan join lock by Wayne@PDX.
+ * Another way to end up inside yourself fixed. Report by Ashen-Shugar. [TAP]
+ * Help default/edefault syntax clarified by Delina@ST:VAAE
+ * Help math functions clarifies 'number'. Suggested by Delina@ST:VAAE
+ * Information on the patches.h header added to the FAQ file. Suggested
+ by Kahmy. [SW]
+ * Potential crash in @set fixed. Report by Michael Loftis [SW]
+ * The Unfindable flag is checked on all levels of containers, not just
+ the immediate location. Suggested by Oriens. [SW]
+ * NT_TCP fix by Bellemore.
+ * secure() now escapes ^, as the help says it does. Report by Gabriel Matlin.
+ * link_anywhere now lets you actually @link anywhere, instead of just
+ letting variable exits link anywhere. Report by Viila@M*U*S*H.
+ * help home now returns help homes, not help home(). Suggested by
+ Gary Williams
+
Version 1.7.4 patchlevel 10 September 7, 2001
Fixes:
*** 1_7_4.159/game/txt/hlp/pennvers.hlp Fri, 07 Sep 2001 08:13:44 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.31 600)
--- 1_7_4.177(w)/game/txt/hlp/pennvers.hlp Thu, 25 Oct 2001 11:34:33 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.38 600)
***************
*** 1,5 ****
& changes
! & 1.7.4p10
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
can probably be gotten via 'help <name of whatever>'. 'help credits'
--- 1,5 ----
& changes
! & 1.7.4p11
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
can probably be gotten via 'help <name of whatever>'. 'help credits'
***************
*** 11,16 ****
--- 11,54 ----
A list of the patchlevels associated with each release can
be read in 'help patchlevels'.
+ Version 1.7.4 patchlevel 11 October 15, 2001
+
+ Minor Changes:
+ * In places like switch() that can match <number, the numbers
+ are now treated as floating point, so they need not be only integers.
+ However, they must be pure numbers; "<3km" will not work.
+ * Tests for channel name matches now disregard ansi. Suggested by Wayne@PDX.
+ Fixes:
+ * MacOS linting. [DW]
+ * next() could reveal unfindable players. Reported by Jeffrey@TheHotel. [TAP]
+ * making diffs or a dist now insures that switches.h, etc. are rebuilt
+ for the Mac/Win32 crowd. Reported by many people.
+ * Some warnings discovered with compiling with gcc 3.0.1 fixed. [SW]
+ * Potential crash-or-worse bugs that could be caused by malformed
+ save messages fixed. [SW]
+ * @mail to players with names starting with numbers works correctly now.
+ Report from Mike Wesson. [SW]
+ * Fewer logged warnings from failed convtime()s. [SW]
+ * Help for page now mentions /blind. Reported by Oriens@Alexandria.
+ * Attempting to set an invalid priv on a channel now produces a
+ better message. Reported by Oriens@Alexandria.
+ * Improved message when a Wizard overrides a chan join lock by Wayne@PDX.
+ * Another way to end up inside yourself fixed. Report by Ashen-Shugar. [TAP]
+ * Help default/edefault syntax clarified by Delina@ST:VAAE
+ * Help math functions clarifies 'number'. Suggested by Delina@ST:VAAE
+ * Information on the patches.h header added to the FAQ file. Suggested
+ by Kahmy. [SW]
+ * Potential crash in @set fixed. Report by Michael Loftis [SW]
+ * The Unfindable flag is checked on all levels of containers, not just
+ the immediate location. Suggested by Oriens. [SW]
+ * NT_TCP fix by Bellemore.
+ * secure() now escapes ^, as the help says it does. Report by Gabriel Matlin.
+ * link_anywhere now lets you actually @link anywhere, instead of just
+ letting variable exits link anywhere. Report by Viila@M*U*S*H.
+ * help home now returns help homes, not help home(). Suggested by
+ Gary Williams
+
+ & 1.7.4p10
Version 1.7.4 patchlevel 10 September 7, 2001
Fixes:
***************
*** 4853,4859 ****
For information on a specific patchlevel of one of the versions listed,
type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3'
! 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
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
--- 4891,4897 ----
For information on a specific patchlevel of one of the versions listed,
type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3'
! 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
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_4.159/game/txt/hlp/penntop.hlp Wed, 05 Sep 2001 15:50:21 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2 600)
--- 1_7_4.177(w)/game/txt/hlp/penntop.hlp Wed, 24 Oct 2001 16:15:37 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2 600)
***************
*** 584,589 ****
--- 584,590 ----
to rename the room you're in (if you control it), you could enter
"@name here= <new name>".
& HOMES
+ & HOME
Every thing or player has a home, which is usually the room where
it was created. You can reset your home or the home of any object
you own with the @link command: @link <me|object>=<location>. You
***************
*** 1050,1056 ****
also match. Regexps are case-sensitive; wildcard globbing is not.
Regular expression syntax is explained in 'help regexp syntax'.
-
& REGEXP SYNTAX
PennMUSH uses PCRE for its regular expression engine. PCRE is an
open source library of functions to support regular expressions whose
--- 1051,1056 ----
***************
*** 1062,1068 ****
(Note that in PennMUSH, if the regular expression is in an eval'd
context (like an argument to regmatch), you'll have to do a lot
! of escaping to make things work right).
A regular expression is a pattern that is matched against a subject
string from left to right. Most characters stand for themselves in a
--- 1062,1069 ----
(Note that in PennMUSH, if the regular expression is in an eval'd
context (like an argument to regmatch), you'll have to do a lot
! of escaping to make things work right. One way to escape an argument
! like %0 is: regeditall(%0,\\W,\\$0) or similar).
A regular expression is a pattern that is matched against a subject
string from left to right. Most characters stand for themselves in a
*** 1_7_4.159/game/txt/hlp/pennfunc.hlp Tue, 04 Sep 2001 08:10:44 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8 600)
--- 1_7_4.177(w)/game/txt/hlp/pennfunc.hlp Mon, 08 Oct 2001 11:08:07 -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 600)
***************
*** 146,151 ****
--- 146,152 ----
See also: LISTS
& Math functions
Math functions take one or more numbers and return a numeric value.
+ What is allowed as a 'number' depends on @config settings (see help).
These functions can taken both integers and floating point numbers:
add() lmath() max() mean() median()
min() mul() sign() stddev() sub()
***************
*** 503,512 ****
& CON()
con(<object>)
! Con returns the first object in the list of objects carried by
! thing. Just the first, and only the first.
! See also: next()
& CONFIG()
config()
config(<option>)
--- 504,518 ----
& CON()
con(<object>)
! Returns the dbref of the first object in a container.
! You can get the complete contents of any container you may examine,
! regardless of whether or not objects are dark. You can get the
! partial contents (obeying DARK/LIGHT/etc.) of your current location
! or the enactor (%#). You CANNOT get the contents of anything else,
! regardless of whether or not you have objects in it.
!
! See also: lcon(), next()
& CONFIG()
config()
config(<option>)
***************
*** 646,652 ****
the string and the same password.
& DEFAULT()
! Function: default(<obj>/<attr>,<default case>)
This function returns the value of <obj>/<attr>, as if retrieved via
the get() function, if the attribute exists and is readable by you.
--- 652,658 ----
the string and the same password.
& DEFAULT()
! Function: default([<obj>/]<attr>,<default case>)
This function returns the value of <obj>/<attr>, as if retrieved via
the get() function, if the attribute exists and is readable by you.
***************
*** 749,755 ****
Returns the value of "e" (2.718281).
& EDEFAULT()
! Function: edefault(<obj>/<attr>,<default case>)
This function returns the evaluated value of <obj>/<attr>, as if
retrieved via the get_eval() function, if the attribute exists and
--- 755,761 ----
Returns the value of "e" (2.718281).
& EDEFAULT()
! Function: edefault([<obj>/]<attr>,<default case>)
This function returns the evaluated value of <obj>/<attr>, as if
retrieved via the get_eval() function, if the attribute exists and
***************
*** 903,913 ****
& EXIT()
exit(<object>)
! Exit returns the first exit on the list of exits in the object.
! Dark exits are not listed. You can see the remaining exits in
! the room by using the function next().
! See also: next()
& EXP()
exp(<number>)
--- 909,923 ----
& EXIT()
exit(<object>)
! Returns the dbref of the first exit in a room.
!
! You can get the complete exit list of any room you may examine,
! regardless of whether or not exits are dark. You can get the partial
! exit list (obeying DARK/LIGHT/etc.) of your current location or the
! enactor (%#). You CANNOT get the exit list of anything else,
! regardless of whether or not you have objects in it.
! See also: lexits(), next()
& EXP()
exp(<number>)
***************
*** 1477,1485 ****
& LCON()
lcon(<object>)
! Returns a list of the dbrefs of all contents in a room that you can
! see. If you are not in the room, you must control it in order to get
! its contents.
& LCSTR()
lcstr(<string>)
--- 1487,1501 ----
& LCON()
lcon(<object>)
! Returns a list of the dbrefs of contents in a container.
!
! You can get the complete contents of any container you may examine,
! regardless of whether or not objects are dark. You can get the
! partial contents (obeying DARK/LIGHT/etc.) of your current location
! or the enactor (%#). You CANNOT get the contents of anything else,
! regardless of whether or not you have objects in it.
!
! See also: lexits(), con(), next()
& LCSTR()
lcstr(<string>)
***************
*** 1509,1517 ****
& LEXITS()
lexits(<object>)
! Returns a list of the dbrefs of all the exits in the room visible to
! the executor. If you are not in the room, you must control it in order
! to get the list of exits.
& LJUST()
ljust(<string>,<length>[,<fill>])
--- 1525,1539 ----
& LEXITS()
lexits(<object>)
! Returns a list of the dbrefs of exits in a room.
!
! You can get the complete exit list of any room you may examine,
! regardless of whether or not exits are dark. You can get the partial
! exit list (obeying DARK/LIGHT/etc.) of your current location or the
! enactor (%#). You CANNOT get the exit list of anything else,
! regardless of whether or not you have objects in it.
!
! See also: lcon(), exit(), next()
& LJUST()
ljust(<string>,<length>[,<fill>])
***************
*** 2075,2086 ****
Basically the same as [not(eq(<integer1>,<integer2>))].
(see eq(), not())
& NEXT()
! next(<thing>)
! If thing is an exit in a room, then next will return the next
! non dark exit in the list of exits for that room. If thing is an
! object, then next will return the next object in the inventory list
! that the object is in. Otherwise, it returns a '#-1' string.
& NOR()
nor(<boolean>, <boolean>,...)
--- 2097,2119 ----
Basically the same as [not(eq(<integer1>,<integer2>))].
(see eq(), not())
& NEXT()
! next(<object>)
!
! If object is an exit in a room, then next() will return the next
! non exit in the list of exits for that room. If object is a
! thing or a player, then next will return the next object in the
! contents list that the object is in. Otherwise, it returns a
! '#-1' string. '#-1' is also used to denote that there are no
! more exits/things/players in the container.
!
! You can get the complete contents of any container you may examine,
! regardless of whether or not objects are dark. You can get the
! partial contents (obeying DARK/LIGHT/etc.) of your current location
! or the enactor (%#). You CANNOT get the contents of anything else,
! regardless of whether or not you have objects in it. These rules
! apply to exits, as well.
! See also: lcon(), lexits(), con(), exit()
& NOR()
nor(<boolean>, <boolean>,...)
*** 1_7_4.159/game/txt/hlp/penncmd.hlp Sat, 07 Jul 2001 08:54:43 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4 600)
--- 1_7_4.177(w)/game/txt/hlp/penncmd.hlp Tue, 25 Sep 2001 15:50:13 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1 600)
***************
*** 3359,3369 ****
square brackets, in front of the message, in a fashion similar to
the way NOSPOOF flags emits.
! Page takes two switches: /list and /noeval.
! The /list switch is not needed to page a list of players, but it
! informs all the players paged who else was paged and also notifies
! the pager just once, which makes for less spam.
!
The /noeval switch prevents the MUSH from evaluating the message.
See also: @lock, @alias, pose, :, ;, HAVEN, NOSPOOF, FLAGS
--- 3359,3370 ----
square brackets, in front of the message, in a fashion similar to
the way NOSPOOF flags emits.
! Page takes 3 switches: /list, /blind, and /noeval.
! The /list and /blind switches provide two different ways of handling
! pages to lists of players. With /list, each paged player sees the
! list of who was paged, and the paging player is notified only once.
! With /blind, it's as if each player was individually paged.
! The default list behavior is set by the blind_page @config option.
The /noeval switch prevents the MUSH from evaluating the message.
See also: @lock, @alias, pose, :, ;, HAVEN, NOSPOOF, FLAGS
*** 1_7_4.159/utils/update.pl Tue, 20 Mar 2001 14:58:17 -0600 dunemush (pennmush/43_update.pl 1.5 700)
--- 1_7_4.177(w)/utils/update.pl Fri, 14 Sep 2001 14:33:55 -0500 dunemush (pennmush/43_update.pl 1.6 700)
***************
*** 78,84 ****
# an undef
$defs{$1} = 'undef';
$comment{$1} = $comment;
! } elsif ( m!^/\*\s*#define\s+([A-Z0-9_-]+)\s+(.+)!
) {
# A commented define with a value and a comment
$name = $1;
--- 78,84 ----
# an undef
$defs{$1} = 'undef';
$comment{$1} = $comment;
! } elsif ( m!^/\*\s*#define\s+([A-Z0-9_-]+)\s+(.+)\s+(/\*.*\*/)!
) {
# A commented define with a value and a comment
$name = $1;
*** 1_7_4.159/utils/mkcmds.sh Mon, 20 Nov 2000 09:33:02 -0600 dunemush (pennmush/45_mkcmds.sh 1.5 700)
--- 1_7_4.177(w)/utils/mkcmds.sh Tue, 25 Sep 2001 15:41:10 -0500 dunemush (pennmush/45_mkcmds.sh 1.6 700)
***************
*** 42,48 ****
else
echo "#define PATCHES \"$pat\"" >> ../hdrs/temp.h
fi
! echo "#endif _PATCH_H" >> ../hdrs/temp.h
cmp -s ../hdrs/patches.h ../hdrs/temp.h
cmpstat=$?
if [ $cmpstat -eq 0 ]; then
--- 42,48 ----
else
echo "#define PATCHES \"$pat\"" >> ../hdrs/temp.h
fi
! echo "#endif /* _PATCH_H */" >> ../hdrs/temp.h
cmp -s ../hdrs/patches.h ../hdrs/temp.h
cmpstat=$?
if [ $cmpstat -eq 0 ]; then
*** 1_7_4.159/src/local.dst Sat, 23 Jun 2001 12:54:11 -0500 dunemush (pennmush/b/19_local.dst 1.6 660)
--- 1_7_4.177(w)/src/local.dst Wed, 24 Oct 2001 10:38:44 -0500 dunemush (pennmush/b/19_local.dst 1.8 660)
***************
*** 92,98 ****
* that player (so if num > 1, this is a multiple connect).
*/
void
! local_connect(dbref player, int isnew, int num)
{
}
--- 92,100 ----
* that player (so if num > 1, this is a multiple connect).
*/
void
! local_connect(dbref player __attribute__ ((__unused__)),
! int isnew __attribute__ ((__unused__)),
! int num __attribute__ ((__unused__)))
{
}
***************
*** 100,106 ****
* a partial disconnect.
*/
void
! local_disconnect(dbref player, int num)
{
}
--- 102,109 ----
* a partial disconnect.
*/
void
! local_disconnect(dbref player __attribute__ ((__unused__)),
! int num __attribute__ ((__unused__)))
{
}
*** 1_7_4.159/src/wild.c Mon, 30 Oct 2000 13:34:40 -0600 dunemush (pennmush/b/24_wild.c 1.11 660)
--- 1_7_4.177(w)/src/wild.c Wed, 24 Oct 2001 10:38:44 -0500 dunemush (pennmush/b/24_wild.c 1.11.1.1.1.1 660)
***************
*** 34,39 ****
--- 34,40 ----
#include "externs.h"
#include "memcheck.h"
#include "mymalloc.h"
+ #include "parse.h"
#include "pcre.h"
#include "confmagic.h"
***************
*** 469,482 ****
switch (*s) {
case '>':
s++;
! if (isdigit(*s) || (*s == '-'))
! return (atoi(s) < atoi(d));
else
return (strcmp(s, d) < 0);
case '<':
s++;
! if (isdigit(*s) || (*s == '-'))
! return (atoi(s) > atoi(d));
else
return (strcmp(s, d) > 0);
}
--- 470,483 ----
switch (*s) {
case '>':
s++;
! if (is_number(s) && is_number(d))
! return (parse_number(s) < parse_number(d));
else
return (strcmp(s, d) < 0);
case '<':
s++;
! if (is_number(s) && is_number(d))
! return (parse_number(s) > parse_number(d));
else
return (strcmp(s, d) > 0);
}
*** 1_7_4.159/src/utils.c Mon, 20 Nov 2000 09:55:52 -0600 dunemush (pennmush/b/27_utils.c 1.26 660)
--- 1_7_4.177(w)/src/utils.c Wed, 24 Oct 2001 10:38:44 -0500 dunemush (pennmush/b/27_utils.c 1.30 660)
***************
*** 190,195 ****
--- 190,215 ----
return 1;
}
+ /* Return one if the dbref, or its location, etc. is set unfindable */
+ int
+ unfindable(thing)
+ dbref thing;
+ {
+ int count = 0;
+ do {
+ if (!GoodObject(thing))
+ return 0;
+ if (Unfind(thing))
+ return 1;
+ if (IsRoom(thing))
+ return 0;
+ thing = Location(thing);
+ count++;
+ } while (count <= 50);
+ return 0;
+ }
+
+
dbref
reverse(list)
dbref list;
*** 1_7_4.159/src/timer.c Mon, 12 Feb 2001 16:29:36 -0600 dunemush (pennmush/b/29_timer.c 1.26 660)
--- 1_7_4.177(w)/src/timer.c Wed, 24 Oct 2001 10:38:44 -0500 dunemush (pennmush/b/29_timer.c 1.27 660)
***************
*** 154,164 ****
} else if (NO_FORK &&
(options.dump_counter - 60 == mudtime) &&
*options.dump_warning_1min) {
! flag_broadcast(0, 0, options.dump_warning_1min);
} else if (NO_FORK &&
(options.dump_counter - 300 == mudtime) &&
*options.dump_warning_5min) {
! flag_broadcast(0, 0, options.dump_warning_5min);
}
#ifdef USE_WARNINGS
if (options.warn_interval && (options.warn_counter <= mudtime)) {
--- 154,164 ----
} else if (NO_FORK &&
(options.dump_counter - 60 == mudtime) &&
*options.dump_warning_1min) {
! flag_broadcast(0, 0, "%s", options.dump_warning_1min);
} else if (NO_FORK &&
(options.dump_counter - 300 == mudtime) &&
*options.dump_warning_5min) {
! flag_broadcast(0, 0, "%s", options.dump_warning_5min);
}
#ifdef USE_WARNINGS
if (options.warn_interval && (options.warn_counter <= mudtime)) {
*** 1_7_4.159/src/switchinc.c Sat, 28 Jul 2001 09:05:37 -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.2 660)
--- 1_7_4.177(w)/src/switchinc.c Thu, 25 Oct 2001 14:13:58 -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.4 660)
***************
*** 1,385 ****
{
! "ACCESS", SWITCH_ACCESS}
!
! , {
! "ADD", SWITCH_ADD}
!
! , {
! "ALL", SWITCH_ALL}
!
! , {
! "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}
!
! , {
! "DELIM", SWITCH_DELIM}
!
! , {
! "DESC", SWITCH_DESC}
!
! , {
! "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}
!
! , {
! "WIPE", SWITCH_WIPE}
!
! , {
! "WIZ", SWITCH_WIZ}
!
! , {
! "WIZARD", SWITCH_WIZARD}
!
! , {
! "YES", SWITCH_YES}
!
! , {
! "ZONE", SWITCH_ZONE}
!
,
--- 1,516 ----
{
! "ACCESS", SWITCH_ACCESS
! }
! ,
! {
! "ADD", SWITCH_ADD
! }
! ,
! {
! "ALL", SWITCH_ALL
! }
! ,
! {
! "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
! }
! ,
! {
! "DELIM", SWITCH_DELIM
! }
! ,
! {
! "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_4.159/src/move.c Wed, 05 Sep 2001 13:48:45 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1 660)
--- 1_7_4.177(w)/src/move.c Wed, 24 Oct 2001 10:38:43 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1.1.1 660)
***************
*** 649,661 ****
void
! do_enter(player, what, is_alias)
dbref player;
const char *what;
- int is_alias;
-
-
- /* 1 if we got here via enter alias */
{
dbref thing;
dbref loc;
--- 649,657 ----
void
! do_enter(player, what)
dbref player;
const char *what;
{
dbref thing;
dbref loc;
*** 1_7_4.159/src/ident.c Mon, 30 Jul 2001 13:14:13 -0500 dunemush (pennmush/c/8_ident.c 1.19.1.4 660)
--- 1_7_4.177(w)/src/ident.c Wed, 24 Oct 2001 10:38:42 -0500 dunemush (pennmush/c/8_ident.c 1.19.1.4.1.1 660)
***************
*** 251,259 ****
#endif
{
ident_t *id;
- #ifndef WIN32
- int tmperrno;
- #endif
char host[NI_MAXHOST];
union sockaddr_u myinterface;
--- 251,256 ----
*** 1_7_4.159/src/game.c Fri, 17 Aug 2001 09:00:39 -0500 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4 660)
--- 1_7_4.177(w)/src/game.c Wed, 24 Oct 2001 10:38:42 -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 660)
***************
*** 527,533 ****
do_log(LT_ERR, 0, 0,
"fork_and_dump: fork() failed! Dumping nofork instead.");
if (DUMP_NOFORK_MESSAGE && *DUMP_NOFORK_MESSAGE)
! flag_broadcast(0, 0, DUMP_NOFORK_MESSAGE);
child = 0;
nofork = 1;
}
--- 527,533 ----
do_log(LT_ERR, 0, 0,
"fork_and_dump: fork() failed! Dumping nofork instead.");
if (DUMP_NOFORK_MESSAGE && *DUMP_NOFORK_MESSAGE)
! flag_broadcast(0, 0, "%s", DUMP_NOFORK_MESSAGE);
child = 0;
nofork = 1;
}
***************
*** 545,551 ****
#endif /* macintosh */
} else {
if (DUMP_NOFORK_MESSAGE && *DUMP_NOFORK_MESSAGE)
! flag_broadcast(0, 0, DUMP_NOFORK_MESSAGE);
child = 0;
}
if (nofork || (!nofork && child == 0)) {
--- 545,551 ----
#endif /* macintosh */
} else {
if (DUMP_NOFORK_MESSAGE && *DUMP_NOFORK_MESSAGE)
! flag_broadcast(0, 0, "%s", DUMP_NOFORK_MESSAGE);
child = 0;
}
if (nofork || (!nofork && child == 0)) {
***************
*** 561,567 ****
reserved = open("/dev/null", O_RDWR);
#endif
if (DUMP_NOFORK_COMPLETE && *DUMP_NOFORK_COMPLETE)
! flag_broadcast(0, 0, DUMP_NOFORK_COMPLETE);
}
}
}
--- 561,567 ----
reserved = open("/dev/null", O_RDWR);
#endif
if (DUMP_NOFORK_COMPLETE && *DUMP_NOFORK_COMPLETE)
! flag_broadcast(0, 0, "%s", DUMP_NOFORK_COMPLETE);
}
}
}
***************
*** 963,969 ****
cptr, "EALIAS")) != -1) {
sprintf(temp, "#%d", i);
! do_enter(player, temp, 1);
goto done;
}
/* if that didn't work, try matching leave aliases */
--- 963,969 ----
cptr, "EALIAS")) != -1) {
sprintf(temp, "#%d", i);
! do_enter(player, temp);
goto done;
}
/* if that didn't work, try matching leave aliases */
***************
*** 977,983 ****
/* try objects in the player's location, the location itself,
* and objects in the player's inventory.
*/
! if (Location(player) != NOTHING) {
a += list_match(Contents(Location(player)));
if (Location(player) != player)
a += cmd_match(Location(player));
--- 977,983 ----
/* try objects in the player's location, the location itself,
* and objects in the player's inventory.
*/
! if (GoodObject(Location(player))) {
a += list_match(Contents(Location(player)));
if (Location(player) != player)
a += cmd_match(Location(player));
*** 1_7_4.159/src/funtime.c Sat, 07 Jul 2001 21:06:09 -0500 dunemush (pennmush/c/12_funtime.c 1.11.1.4 660)
--- 1_7_4.177(w)/src/funtime.c Wed, 24 Oct 2001 10:38:42 -0500 dunemush (pennmush/c/12_funtime.c 1.11.1.6 660)
***************
*** 49,55 ****
args[0][n] = 0x5;
else if (args[0][n] == '$')
args[0][n] = '%';
! len = strftime(s, BUFFER_LEN - 1, args[0], ttm);
for (n = 0; n < len; n++)
if (s[n] == '%')
s[n] = '$';
--- 49,64 ----
args[0][n] = 0x5;
else if (args[0][n] == '$')
args[0][n] = '%';
! len = strftime(s, BUFFER_LEN, args[0], ttm);
! if (len == 0) {
! /* Problem. Either the output from strftime would be over
! * BUFFER_LEN characters, or there wasn't any output at all.
! * In the former case, what's in s is indeterminate. Instead of
! * trying to figure out which of the two cases happened, just
! * return an empty string.
! */
! return;
! }
for (n = 0; n < len; n++)
if (s[n] == '%')
s[n] = '$';
***************
*** 191,198 ****
tc = getdate(str);
if (tc == NULL) {
! do_rawlog(LT_ERR, "getdate returned error code %d for %s", getdate_err,
! str);
return 0;
}
--- 200,208 ----
tc = getdate(str);
if (tc == NULL) {
! if (getdate_err <= 7)
! do_rawlog(LT_ERR, "getdate returned error code %d for %s", getdate_err,
! str);
return 0;
}
*** 1_7_4.159/src/funstr.c Mon, 13 Aug 2001 19:51:56 -0500 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6 660)
--- 1_7_4.177(w)/src/funstr.c Wed, 24 Oct 2001 10:38:42 -0500 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6.1.1.1.1.1.2 660)
***************
*** 25,31 ****
#pragma warning( disable : 4761) /* NJG: disable warning re conversion */
#endif
! static unsigned int wraplen _((char *str, unsigned int maxlen));
int
get_gender(player)
--- 25,31 ----
#pragma warning( disable : 4761) /* NJG: disable warning re conversion */
#endif
! static int wraplen _((char *str, int maxlen));
int
get_gender(player)
***************
*** 362,368 ****
{
int x;
char left[BUFFER_LEN], *t;
! int len;
t = remove_markup(args[0], &len);
memcpy(left, t, len);
--- 362,368 ----
{
int x;
char left[BUFFER_LEN], *t;
! Size_t len;
t = remove_markup(args[0], &len);
memcpy(left, t, len);
***************
*** 552,557 ****
--- 552,558 ----
{
int n, i, j;
ansi_string *as;
+ int ansi_present = 0;
if (!*args[0])
return;
***************
*** 751,757 ****
FUNCTION(fun_secure)
{
/* this function smashes all occurences of "unsafe" characters in a string.
! * "unsafe" characters are ( ) [ ] { } $ % , ; \
* these characters get replaced by spaces
*/
char *p;
--- 752,758 ----
FUNCTION(fun_secure)
{
/* this function smashes all occurences of "unsafe" characters in a string.
! * "unsafe" characters are ( ) [ ] { } $ ^ % , ; \
* these characters get replaced by spaces
*/
char *p;
***************
*** 766,771 ****
--- 767,773 ----
case '{':
case '}':
case '$':
+ case '^':
case '%':
case ',':
case ';':
***************
*** 1311,1323 ****
/* Returns the length of str up to the first return character,
* or else the last space, or else 0.
*/
! static unsigned int
wraplen(str, maxlen)
char *str;
! unsigned int maxlen;
{
! const unsigned int length = strlen(str);
! unsigned int i = 0;
if (length <= maxlen)
return length;
--- 1313,1325 ----
/* Returns the length of str up to the first return character,
* or else the last space, or else 0.
*/
! static int
wraplen(str, maxlen)
char *str;
! int maxlen;
{
! const int length = strlen(str);
! int i = 0;
if (length <= maxlen)
return length;
*** 1_7_4.159/src/funlist.c Mon, 13 Aug 2001 19:51:56 -0500 dunemush (pennmush/c/16_funlist.c 1.3.1.1.1.5.1.2.1.1.1.1.1.4.1.2.1.2.1.19.1.2.1.1.1.2.1.5 660)
--- 1_7_4.177(w)/src/funlist.c Wed, 24 Oct 2001 10:38:42 -0500 dunemush (pennmush/c/16_funlist.c 1.3.1.1.1.5.1.2.1.1.1.1.1.4.1.2.1.2.1.19.1.2.1.1.1.2.1.5.1.1 660)
***************
*** 428,434 ****
*/
const char *outsep = " ";
char sep = ' ';
! const char *conj = "and";
const char *punc = ",";
char *cp;
char *word, *nextword;
--- 428,434 ----
*/
const char *outsep = " ";
char sep = ' ';
! const char *lconj = "and";
const char *punc = ",";
char *cp;
char *word, *nextword;
***************
*** 439,445 ****
if (!delim_check(buff, bp, nargs, args, 3, &sep))
return;
if (nargs > 1)
! conj = args[1];
if (nargs > 3)
outsep = args[3];
if (nargs > 4)
--- 439,445 ----
if (!delim_check(buff, bp, nargs, args, 3, &sep))
return;
if (nargs > 1)
! lconj = args[1];
if (nargs > 3)
outsep = args[3];
if (nargs > 4)
***************
*** 449,455 ****
if (!delim_check(buff, bp, nargs, args, 2, &sep))
return;
if (nargs > 2)
! conj = args[2];
if (nargs > 3)
punc = args[3];
}
--- 449,455 ----
if (!delim_check(buff, bp, nargs, args, 2, &sep))
return;
if (nargs > 2)
! lconj = args[2];
if (nargs > 3)
punc = args[3];
}
***************
*** 465,471 ****
if (pos >= 3)
safe_str(punc, buff, bp);
safe_str(outsep, buff, bp);
! safe_str(conj, buff, bp);
safe_str(outsep, buff, bp);
} else {
safe_str(punc, buff, bp);
--- 465,471 ----
if (pos >= 3)
safe_str(punc, buff, bp);
safe_str(outsep, buff, bp);
! safe_str(lconj, buff, bp);
safe_str(outsep, buff, bp);
} else {
safe_str(punc, buff, bp);
*** 1_7_4.159/src/fundb.c Sat, 28 Jul 2001 09:48:33 -0500 dunemush (pennmush/c/17_fundb.c 1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.7.1.3.1.3.1.3.1.2.1.2.1.3.2.1.2.1.2.1.1.1.1.4 660)
--- 1_7_4.177(w)/src/fundb.c Wed, 24 Oct 2001 10:38:42 -0500 dunemush (pennmush/c/17_fundb.c 1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.7.1.3.1.3.1.3.1.2.1.2.1.3.2.1.2.1.2.1.1.1.1.4.1.1.1.1 660)
***************
*** 481,607 ****
* they didn't control, thus (if they were willing to go through the trouble)
* they could build a scanner to locate anything they wanted.
*
! * You can get the contents of any room you control, regardless of whether
! * or not the object is dark. You can get the contents of your current
! * location, _except_ for dark objects (and DARK/OPAQUE rooms). You CANNOT
! * get the contents of anything else, regardless of whether or not you have
! * objects in it. This latter behavior is exhibited by 2.0.
*
! * The same behavior is true for exits, except OPAQUE doesn't apply.
*/
! /* ARGSUSED */
! FUNCTION(fun_lcon)
{
! dbref thing;
int first;
! dbref it = match_thing(executor, args[0]);
! if ((it != NOTHING) &&
! (Can_Examine(executor, it) || (Location(executor) == it) ||
! (enactor == it))) {
first = 1;
! DOLIST_VISIBLE(thing, Contents(it), executor) {
! if (first)
! first = 0;
! else
! safe_chr(' ', buff, bp);
! safe_dbref(thing, buff, bp);
}
! } else
safe_str("#-1", buff, bp);
}
-
/* ARGSUSED */
! FUNCTION(fun_con)
! {
! dbref it = match_thing(executor, args[0]);
!
! if (GoodObject(it) && !IsExit(it))
! safe_dbref(next_con(executor, Contents(it)), buff, bp);
! else
! safe_str("#-1", buff, bp);
! return;
! }
!
! /* return next contents that is ok to see */
! dbref
! next_con(player, this)
! dbref player;
! dbref this;
{
! dbref loc;
! int sees_loc;
!
! if ((this == NOTHING) || ((loc = Location(this)) == NOTHING))
! return NOTHING;
! sees_loc = Can_Examine(player, loc);
!
! if (sees_loc || ((Location(player) == loc) && !Dark(loc) && !Opaque(loc))) {
! this = first_visible(player, this);
! }
! return (this);
}
! /* return next exit that is ok to see */
! dbref
! next_exit(player, this)
! dbref player;
! dbref this;
{
! dbref loc;
! int sees_loc;
!
! if ((this == NOTHING) || ((loc = Home(this)) == NOTHING))
! return NOTHING;
! sees_loc = Can_Examine(player, loc);
!
! if (sees_loc || ((Location(player) == loc) && !Dark(loc))) {
! this = first_visible(player, this);
! }
! return (this);
}
/* ARGSUSED */
FUNCTION(fun_lexits)
{
! dbref it = match_thing(executor, args[0]);
! dbref thing;
! int first;
! int sees_loc;
!
! if (!GoodObject(it)) {
! safe_str("#-1", buff, bp);
! return;
! }
! sees_loc = Can_Examine(executor, it);
!
! first = 1;
! if (GoodObject(it) && IsRoom(it)) {
! if (sees_loc || (Location(executor) == it)) {
! DOLIST_VISIBLE(thing, Exits(it), executor) {
! if (first)
! first = 0;
! else
! safe_chr(' ', buff, bp);
! safe_dbref(thing, buff, bp);
! }
! }
! } else
! safe_str("#-1", buff, bp);
}
- /* fun_exit is really just a wrapper for next_exit now... */
/* ARGSUSED */
FUNCTION(fun_exit)
{
! dbref it = match_thing(executor, args[0]);
! if (GoodObject(it) && IsRoom(it))
! safe_dbref(next_exit(executor, Exits(it)), buff, bp);
! else
! safe_str("#-1", buff, bp);
! return;
}
/* ARGSUSED */
--- 481,559 ----
* they didn't control, thus (if they were willing to go through the trouble)
* they could build a scanner to locate anything they wanted.
*
! * The functions were completely reorganized and largely unified by Talek,
! * in September 2001, to finally cure persistent problems with next() and
! * con() and exit() returning different results/having different permissions
! * than lcon() and lexits().
*
! * You can get the complete contents of any room you may examine, regardless
! * of whether or not objects are dark. You can get the partial contents
! * (obeying DARK/LIGHT/etc.) of your current location or the enactor.
! * You CANNOT get the contents of anything else, regardless of whether
! * or not you have objects in it.
! *
! * The same behavior is true for exits.
*/
! static dbref
! dbwalk(char *buff, char **bp, dbref executor, dbref enactor,
! int type, dbref loc, dbref after)
{
! dbref result;
int first;
! dbref thing;
! result = NOTHING;
! if (GoodObject(loc) && (type ? IsRoom(loc) : !IsExit(loc)) &&
! (Can_Examine(executor, loc) || (Location(executor) == loc) ||
! (enactor == loc))) {
first = 1;
! DOLIST_VISIBLE(thing, type ? Exits(loc) : Contents(loc), executor) {
! if (buff) {
! if (first)
! first = 0;
! else
! safe_chr(' ', buff, bp);
! safe_dbref(thing, buff, bp);
! }
! if (result == NOTHING) {
! if (after == NOTHING)
! result = thing;
! if (after == thing)
! after = NOTHING;
! }
}
! } else if (buff)
safe_str("#-1", buff, bp);
+ return result;
}
/* ARGSUSED */
! FUNCTION(fun_lcon)
{
! dbref loc = match_thing(executor, args[0]);
! dbwalk(buff, bp, executor, enactor, 0, loc, NOTHING);
}
! /* ARGSUSED */
! FUNCTION(fun_con)
{
! dbref loc = match_thing(executor, args[0]);
! safe_dbref(dbwalk(NULL, NULL, executor, enactor, 0, loc, NOTHING), buff, bp);
}
/* ARGSUSED */
FUNCTION(fun_lexits)
{
! dbref loc = match_thing(executor, args[0]);
! dbwalk(buff, bp, executor, enactor, 1, loc, NOTHING);
}
/* ARGSUSED */
FUNCTION(fun_exit)
{
! dbref loc = match_thing(executor, args[0]);
! safe_dbref(dbwalk(NULL, NULL, executor, enactor, 1, loc, NOTHING), buff, bp);
}
/* ARGSUSED */
***************
*** 612,622 ****
if (GoodObject(it)) {
switch (Typeof(it)) {
case TYPE_EXIT:
! safe_dbref(next_exit(executor, Next(it)), buff, bp);
break;
case TYPE_THING:
case TYPE_PLAYER:
! safe_dbref(next_con(executor, Next(it)), buff, bp);
break;
default:
safe_str("#-1", buff, bp);
--- 564,576 ----
if (GoodObject(it)) {
switch (Typeof(it)) {
case TYPE_EXIT:
! safe_dbref(dbwalk(NULL, NULL, executor, enactor, 1, Source(it), it),
! buff, bp);
break;
case TYPE_THING:
case TYPE_PLAYER:
! safe_dbref(dbwalk(NULL, NULL, executor, enactor, 0, Location(it), it),
! buff, bp);
break;
default:
safe_str("#-1", buff, bp);
***************
*** 625,630 ****
--- 579,585 ----
} else
safe_str("#-1", buff, bp);
}
+
/* ARGSUSED */
FUNCTION(fun_entrances)
*** 1_7_4.159/src/flags.c Fri, 17 Aug 2001 09:00:39 -0500 dunemush (pennmush/c/20_flags.c 1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.2.1.1.1.1.1.2.2.2.2.1.2.1.1.3 660)
--- 1_7_4.177(w)/src/flags.c Wed, 24 Oct 2001 10:38:42 -0500 dunemush (pennmush/c/20_flags.c 1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.2.1.1.1.1.1.2.2.2.2.1.2.1.1.3.1.2 660)
***************
*** 1063,1068 ****
--- 1063,1069 ----
hide_player(thing, 0);
/* notify the area if something stops listening */
if (IsThing(thing) && (f->type == TYPE_THING) &&
+ GoodObject(Location(thing)) &&
(((f->flag == THING_PUPPET) && !listener && !Hearer(thing)) ||
((f->flag == THING_LISTEN) && !hear && !Listener(thing)))) {
sprintf(tbuf1, T("%s is no longer listening."), Name(thing));
***************
*** 1121,1126 ****
--- 1122,1128 ----
hide_player(thing, 1);
/* notify area if something starts listening */
if (IsThing(thing) && (f->type == TYPE_THING) &&
+ GoodObject(Location(thing)) &&
((f->flag == THING_PUPPET) || (f->flag == THING_LISTEN)) &&
!hear && !listener) {
sprintf(tbuf1, T("%s is now listening."), Name(thing));
*** 1_7_4.159/src/extmail.c Mon, 25 Jun 2001 12:31:59 -0500 dunemush (pennmush/c/22_extmail.c 1.44.1.4 660)
--- 1_7_4.177(w)/src/extmail.c Wed, 24 Oct 2001 10:38:42 -0500 dunemush (pennmush/c/22_extmail.c 1.44.1.6 660)
***************
*** 808,817 ****
mail_flags = flags;
current = (char *) next_in_list(start);
/* Now locate a target */
! num = atoi(current);
! if (num) {
/* reply to a mail message */
struct mail *temp;
temp = mail_fetch(player, num);
if (!temp) {
--- 808,818 ----
mail_flags = flags;
current = (char *) next_in_list(start);
/* Now locate a target */
! if (is_strict_integer(current)) {
/* reply to a mail message */
struct mail *temp;
+
+ num = parse_integer(current);
temp = mail_fetch(player, num);
if (!temp) {
*** 1_7_4.159/src/extchat.c Thu, 06 Sep 2001 10:41:03 -0500 dunemush (pennmush/c/23_extchat.c 1.1.1.1.1.1.1.1.1.2.1.1.1.3.1.1.1.5.1.1.1.1.1.5.1.2.1.3.1.3.1.1.1.4.1.2.1.6.1.2.1.1.2.4.2.9.1.2 660)
--- 1_7_4.177(w)/src/extchat.c Wed, 24 Oct 2001 10:55:51 -0500 dunemush (pennmush/c/23_extchat.c 1.1.1.1.1.1.1.1.1.2.1.1.1.3.1.1.1.5.1.1.1.1.1.5.1.2.1.3.1.3.1.1.1.4.1.2.1.6.1.2.1.1.2.4.2.9.1.2.1.2.1.3 660)
***************
*** 634,649 ****
{
CHAN *p;
int count = 0;
*chan = NULL;
if (!name || !*name)
return CMATCH_NONE;
for (p = channels; p; p = p->next) {
! if (!strcasecmp(name, ChanName(p))) {
*chan = p;
return CMATCH_EXACT;
}
! if (string_prefix(ChanName(p), name)) {
/* Keep the alphabetically first channel if we've got one */
if (!*chan)
*chan = p;
--- 634,653 ----
{
CHAN *p;
int count = 0;
+ char cleanname[BUFFER_LEN];
+ char cleanp[CHAN_NAME_LEN];
*chan = NULL;
if (!name || !*name)
return CMATCH_NONE;
+ strcpy(cleanname, remove_markup(name, NULL));
for (p = channels; p; p = p->next) {
! strcpy(cleanp, remove_markup(ChanName(p), NULL));
! if (!strcasecmp(cleanname, cleanp)) {
*chan = p;
return CMATCH_EXACT;
}
! if (string_prefix(cleanp, name)) {
/* Keep the alphabetically first channel if we've got one */
if (!*chan)
*chan = p;
***************
*** 672,687 ****
{
CHAN *p;
int count = 0;
*chan = NULL;
if (!name || !*name)
return CMATCH_NONE;
for (p = channels; p; p = p->next) {
! if (!strcasecmp(name, ChanName(p))) {
*chan = p;
return CMATCH_EXACT;
}
! if (string_prefix(ChanName(p), name)) {
/* If we've already found an ambiguous match that the
* player is on, keep using that one. Otherwise, this is
* our best candidate so far.
--- 676,695 ----
{
CHAN *p;
int count = 0;
+ char cleanname[BUFFER_LEN];
+ char cleanp[CHAN_NAME_LEN];
*chan = NULL;
if (!name || !*name)
return CMATCH_NONE;
+ strcpy(cleanname, remove_markup(name, NULL));
for (p = channels; p; p = p->next) {
! strcpy(cleanp, remove_markup(ChanName(p), NULL));
! if (!strcasecmp(cleanname, cleanp)) {
*chan = p;
return CMATCH_EXACT;
}
! if (string_prefix(cleanp, cleanname)) {
/* If we've already found an ambiguous match that the
* player is on, keep using that one. Otherwise, this is
* our best candidate so far.
***************
*** 713,729 ****
{
CHAN *p;
int count = 0;
*chan = NULL;
if (!name || !*name)
return CMATCH_NONE;
for (p = channels; p; p = p->next) {
if (onchannel(player, p)) {
! if (!strcasecmp(name, ChanName(p))) {
*chan = p;
return CMATCH_EXACT;
}
! if (string_prefix(ChanName(p), name) && onchannel(player, p)) {
if (!*chan)
*chan = p;
count++;
--- 721,741 ----
{
CHAN *p;
int count = 0;
+ char cleanname[BUFFER_LEN];
+ char cleanp[CHAN_NAME_LEN];
*chan = NULL;
if (!name || !*name)
return CMATCH_NONE;
+ strcpy(cleanname, remove_markup(name, NULL));
for (p = channels; p; p = p->next) {
if (onchannel(player, p)) {
! strcpy(cleanp, remove_markup(ChanName(p), NULL));
! if (!strcasecmp(cleanname, cleanp)) {
*chan = p;
return CMATCH_EXACT;
}
! if (string_prefix(cleanp, cleanname) && onchannel(player, p)) {
if (!*chan)
*chan = p;
count++;
***************
*** 751,767 ****
{
CHAN *p;
int count = 0;
*chan = NULL;
if (!name || !*name)
return CMATCH_NONE;
for (p = channels; p; p = p->next) {
if (!onchannel(player, p)) {
! if (!strcasecmp(name, ChanName(p))) {
*chan = p;
return CMATCH_EXACT;
}
! if (string_prefix(ChanName(p), name)) {
if (!*chan)
*chan = p;
count++;
--- 763,783 ----
{
CHAN *p;
int count = 0;
+ char cleanname[BUFFER_LEN];
+ char cleanp[CHAN_NAME_LEN];
*chan = NULL;
if (!name || !*name)
return CMATCH_NONE;
+ strcpy(cleanname, remove_markup(name, NULL));
for (p = channels; p; p = p->next) {
if (!onchannel(player, p)) {
! strcpy(cleanp, remove_markup(ChanName(p), NULL));
! if (!strcasecmp(cleanname, cleanp)) {
*chan = p;
return CMATCH_EXACT;
}
! if (string_prefix(cleanp, cleanname)) {
if (!*chan)
*chan = p;
count++;
***************
*** 882,888 ****
/* Wizards can override join locks */
notify(player,
T
! ("CHAT: Warning: Player does not meet channel join permissions (joining anyway)"));
} else {
notify(player, T("Permission to join denied."));
return;
--- 898,904 ----
/* Wizards can override join locks */
notify(player,
T
! ("CHAT: Warning: Target does not meet channel join permissions (joining anyway)"));
} else {
notify(player, T("Permission to join denied."));
return;
***************
*** 1353,1361 ****
}
if (type & CHANNEL_DISABLED)
notify(player, T("Warning: channel will be disabled."));
! ChanType(chan) = type;
! notify_format(player,
! T("Permissions on channel <%s> changed."), ChanName(chan));
break;
case 4:
/* Quiet a channel */
--- 1369,1384 ----
}
if (type & CHANNEL_DISABLED)
notify(player, T("Warning: channel will be disabled."));
! if (type == ChanType(chan)) {
! notify_format(player,
! T
! ("Invalid or same permissions on channel <%s>. No changes made."),
! ChanName(chan));
! } else {
! ChanType(chan) = type;
! notify_format(player,
! T("Permissions on channel <%s> changed."), ChanName(chan));
! }
break;
case 4:
/* Quiet a channel */
*** 1_7_4.159/src/destroy.c Mon, 25 Jun 2001 08:53:11 -0500 dunemush (pennmush/c/24_destroy.c 1.24.2.2 660)
--- 1_7_4.177(w)/src/destroy.c Wed, 24 Oct 2001 10:38:42 -0500 dunemush (pennmush/c/24_destroy.c 1.24.2.2.1.3 660)
***************
*** 721,726 ****
--- 721,727 ----
/* Destroy any exits they may be carrying, send everything else home. */
dbref first;
dbref rest;
+ dbref target;
notify_except(Contents(thing), NOTHING,
T
("The floor disappears under your feet, you fall through NOTHINGness and then:"));
***************
*** 740,754 ****
break;
case TYPE_THING: /* move to home */
case TYPE_PLAYER:
! if (Home(first) == thing || IsExit(Home(first)))
Home(first) = PLAYER_START;
! if (Home(first) != NOTHING) {
! PUSH(first, Contents(Home(first)));
! Location(first) = Home(first);
! /* notify players they have been moved */
! if (Hearer(first)) {
! enter_room(first, HOME, 0);
! }
}
break;
}
--- 741,758 ----
break;
case TYPE_THING: /* move to home */
case TYPE_PLAYER:
! /* Make sure the home is a reasonable object. */
! if (!GoodObject(Home(first)) || IsExit(Home(first)) ||
! Home(first) == thing)
Home(first) = PLAYER_START;
! target = Home(first);
! /* If home isn't a good place to send it, send it to PLAYER_START. */
! if (!GoodObject(target) || recursive_member(target, first, 0))
! target = PLAYER_START;
! if (target != NOTHING) {
! /* Use enter_room() on everything so that AENTER and such
! * are all triggered properly. */
! enter_room(first, target, 0);
}
break;
}
*** 1_7_4.159/src/create.c Fri, 07 Sep 2001 08:13:44 -0500 dunemush (pennmush/c/27_create.c 1.27.1.3.1.1 660)
--- 1_7_4.177(w)/src/create.c Wed, 24 Oct 2001 16:07:58 -0500 dunemush (pennmush/c/27_create.c 1.27.1.3.1.1.1.1.1.1 660)
***************
*** 248,254 ****
room = parse_linkable_room(player, room_name);
if (room == NOTHING)
return;
! if (GoodObject(room) && !controls(player, room) && !LinkOk(room)) {
notify(player, T("Permission denied."));
break;
}
--- 248,254 ----
room = parse_linkable_room(player, room_name);
if (room == NOTHING)
return;
! if (GoodObject(room) && !can_link_to(player, room)) {
notify(player, T("Permission denied."));
break;
}
***************
*** 276,284 ****
notify(player, T("Guests are not allowed to build."));
return;
} else if (!payfor(player, LINK_COST + EXIT_COST)) {
! int a = 0;
! notify_format(player, T("It costs %d %s to link this exit."),
! (a = LINK_COST + EXIT_COST),
((a == 1) ? MONEY : MONIES));
return;
} else {
--- 276,283 ----
notify(player, T("Guests are not allowed to build."));
return;
} else if (!payfor(player, LINK_COST + EXIT_COST)) {
! int a = LINK_COST + EXIT_COST;
! notify_format(player, T("It costs %d %s to link this exit."), a,
((a == 1) ? MONEY : MONIES));
return;
} else {
*** 1_7_4.159/src/cmds.c Tue, 04 Sep 2001 08:19:24 -0500 dunemush (pennmush/c/37_cmds.c 1.33.1.1.1.2.1.2.2.3 660)
--- 1_7_4.177(w)/src/cmds.c Wed, 24 Oct 2001 10:38:41 -0500 dunemush (pennmush/c/37_cmds.c 1.33.1.1.1.2.1.2.2.3.1.1 660)
***************
*** 925,931 ****
}
COMMAND (cmd_enter) {
! do_enter(player, arg_left, 0);
}
COMMAND (cmd_dismiss) {
--- 925,931 ----
}
COMMAND (cmd_enter) {
! do_enter(player, arg_left);
}
COMMAND (cmd_dismiss) {
*** 1_7_4.159/src/bsd.c Tue, 04 Sep 2001 07:49:59 -0500 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13 660)
--- 1_7_4.177(w)/src/bsd.c Wed, 24 Oct 2001 10:38:41 -0500 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13.1.1.1.1.1.1 660)
***************
*** 372,378 ****
void parse_connect _((const char *msg, char *command, char *user, char *pass));
void close_sockets _((void));
dbref find_player_by_desc _((int port));
! Signal_t bailout _((int sig));
Signal_t signal_shutdown _((int sig));
Signal_t signal_dump _((int sig));
void dump_users _((DESC *call_by, char *match, int doing));
--- 372,378 ----
void parse_connect _((const char *msg, char *command, char *user, char *pass));
void close_sockets _((void));
dbref find_player_by_desc _((int port));
! Signal_t bailout _((int sig)) __attribute__ ((__noreturn__));
Signal_t signal_shutdown _((int sig));
Signal_t signal_dump _((int sig));
void dump_users _((DESC *call_by, char *match, int doing));
***************
*** 5369,5375 ****
SOCKET socketClient;
union sockaddr_u addr;
! int nLen, addr_len;
struct hostname_info *hi;
char *socket_ident;
char *chp;
--- 5369,5376 ----
SOCKET socketClient;
union sockaddr_u addr;
! int nLen;
! socklen_t addr_len;
struct hostname_info *hi;
char *socket_ident;
char *chp;
***************
*** 5399,5404 ****
--- 5400,5406 ----
/* */
bp = tbuf2;
+ addr_len = sizeof(addr);
hi = ip_convert(&addr.addr, addr_len);
safe_str(hi ? hi->hostname : "", tbuf2, &bp);
*bp = '\0';
***************
*** 5416,5422 ****
}
}
- addr_len = sizeof(addr);
hi = hostname_convert(&addr.addr, addr_len);
safe_str(hi ? hi->hostname : "", tbuf1, &bp);
*bp = '\0';
--- 5418,5423 ----
*** 1_7_4.159/src/attrib.c Sun, 22 Jul 2001 08:59:28 -0500 dunemush (pennmush/c/40_attrib.c 1.15.1.2.1.5.1.1.1.3.1.3.1.2.1.2.1.2.2.1.1.2 660)
--- 1_7_4.177(w)/src/attrib.c Wed, 24 Oct 2001 10:38:41 -0500 dunemush (pennmush/c/40_attrib.c 1.15.1.2.1.5.1.1.1.3.1.3.1.2.1.2.1.2.2.1.1.2.1.2.1.2 660)
***************
*** 55,61 ****
}
/* Lookup table for good_atr_name */
! static int atr_name_table[UCHAR_MAX + 1];
static void
init_good_names()
--- 55,61 ----
}
/* Lookup table for good_atr_name */
! static char atr_name_table[UCHAR_MAX + 1];
static void
init_good_names()
***************
*** 597,603 ****
/*======================================================================*/
! char const *const
convert_atr(oldatr)
int oldatr;
{
--- 597,603 ----
/*======================================================================*/
! char const *
convert_atr(oldatr)
int oldatr;
{
***************
*** 971,985 ****
} else if (!strcmp(name, "LISTEN")) {
if (IsRoom(thing))
contents = Contents(thing);
! else
! contents = Contents(Location(thing));
! if (!s && !was_listener && !Hearer(thing)) {
! notify_except(contents, thing,
! tprintf(T("%s loses its ears and becomes deaf."),
! Name(thing)));
! } else if (s && !was_hearer && !was_listener) {
! notify_except(contents, thing,
! tprintf(T("%s grows ears and can now hear."), Name(thing)));
}
}
if ((flags & 0x01) && !AreQuiet(player, thing))
--- 971,991 ----
} else if (!strcmp(name, "LISTEN")) {
if (IsRoom(thing))
contents = Contents(thing);
! else {
! contents = Location(thing);
! if (GoodObject(contents))
! contents = Contents(contents);
! }
! if (GoodObject(contents)) {
! if (!s && !was_listener && !Hearer(thing)) {
! notify_except(contents, thing,
! tprintf(T("%s loses its ears and becomes deaf."),
! Name(thing)));
! } else if (s && !was_hearer && !was_listener) {
! notify_except(contents, thing,
! tprintf(T("%s grows ears and can now hear."),
! Name(thing)));
! }
}
}
if ((flags & 0x01) && !AreQuiet(player, thing))
*** 1_7_4.159/hdrs/version.h Fri, 07 Sep 2001 08:13:44 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1 660)
--- 1_7_4.177(w)/hdrs/version.h Wed, 24 Oct 2001 10:38:45 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.1 660)
***************
*** 1,2 ****
! #define VERSION "PennMUSH version 1.7.4 patchlevel 10 [09/06/2001]"
! #define SHORTVN "PennMUSH 1.7.4p10"
--- 1,2 ----
! #define VERSION "PennMUSH version 1.7.4 patchlevel 11 [10/15/2001]"
! #define SHORTVN "PennMUSH 1.7.4p11"
*** 1_7_4.159/hdrs/mushdb.h Fri, 23 Feb 2001 12:19:03 -0600 dunemush (pennmush/d/2_mushdb.h 1.1.1.9.1.1 660)
--- 1_7_4.177(w)/hdrs/mushdb.h Wed, 24 Oct 2001 10:38:45 -0500 dunemush (pennmush/d/2_mushdb.h 1.1.1.9.1.1.1.1 660)
***************
*** 64,73 ****
God(p))
/* Can p locate x? */
#define Can_Locate(p,x) \
(controls(p,x) || nearby(p,x) || See_All(p) \
|| (PLAYER_LOCATE && (IsPlayer(x) && !Unfind(x) \
! && !Unfind(Location(x)))))
#define Can_Examine(p,x) (controls(p,x) || See_All(p) || \
--- 64,74 ----
God(p))
/* Can p locate x? */
+ int unfindable _((dbref));
#define Can_Locate(p,x) \
(controls(p,x) || nearby(p,x) || See_All(p) \
|| (PLAYER_LOCATE && (IsPlayer(x) && !Unfind(x) \
! && !unfindable(Location(x)))))
#define Can_Examine(p,x) (controls(p,x) || See_All(p) || \
*** 1_7_4.159/hdrs/game.h Tue, 15 May 2001 15:59:50 -0500 dunemush (pennmush/d/12_game.h 1.28.1.1 660)
--- 1_7_4.177(w)/hdrs/game.h Wed, 24 Oct 2001 10:38:44 -0500 dunemush (pennmush/d/12_game.h 1.28.1.2 660)
***************
*** 65,71 ****
/* From move.c */
extern void do_get _((dbref player, const char *what));
extern void do_drop _((dbref player, const char *name));
! extern void do_enter _((dbref player, const char *what, int is_alias));
extern void do_leave _((dbref player));
extern void do_firstexit _((dbref player, const char *what));
--- 65,71 ----
/* From move.c */
extern void do_get _((dbref player, const char *what));
extern void do_drop _((dbref player, const char *name));
! extern void do_enter _((dbref player, const char *what));
extern void do_leave _((dbref player));
extern void do_firstexit _((dbref player, const char *what));
*** 1_7_4.159/hdrs/switches.h Fri, 25 May 2001 11:53:48 -0500 dunemush (pennmush/d/21_switches.h 1.2.1.6.2.1 660)
--- 1_7_4.177(w)/hdrs/switches.h Wed, 24 Oct 2001 10:38:45 -0500 dunemush (pennmush/d/21_switches.h 1.2.1.6.2.2 660)
***************
*** 24,30 ****
#define SWITCH_DEFAULTS 24
#define SWITCH_DELETE 25
#define SWITCH_DELIM 26
! #define SWITCH_DESC 27
#define SWITCH_DESTROY 28
#define SWITCH_DISABLE 29
#define SWITCH_DOWN 30
--- 24,30 ----
#define SWITCH_DEFAULTS 24
#define SWITCH_DELETE 25
#define SWITCH_DELIM 26
! #define SWITCH_DESCRIBE 27
#define SWITCH_DESTROY 28
#define SWITCH_DISABLE 29
#define SWITCH_DOWN 30
***************
*** 121,128 ****
#define SWITCH_URGENT 121
#define SWITCH_USEFLAG 122
#define SWITCH_WHAT 123
! #define SWITCH_WIPE 124
! #define SWITCH_WIZ 125
! #define SWITCH_WIZARD 126
! #define SWITCH_YES 127
! #define SWITCH_ZONE 128
--- 121,129 ----
#define SWITCH_URGENT 121
#define SWITCH_USEFLAG 122
#define SWITCH_WHAT 123
! #define SWITCH_WHO 124
! #define SWITCH_WIPE 125
! #define SWITCH_WIZ 126
! #define SWITCH_WIZARD 127
! #define SWITCH_YES 128
! #define SWITCH_ZONE 129
*** 1_7_4.159/hdrs/attrib.h Sat, 17 Feb 2001 10:57:35 -0600 dunemush (pennmush/d/25_attrib.h 1.4.1.1.1.1.1.2.1.1.1.1.1.2 660)
--- 1_7_4.177(w)/hdrs/attrib.h Wed, 24 Oct 2001 10:38:44 -0500 dunemush (pennmush/d/25_attrib.h 1.4.1.1.1.1.1.2.1.1.1.1.1.2.1.1 660)
***************
*** 44,50 ****
extern ATTR *atr_complete_match _((dbref player, char const *atr, dbref privs));
extern void atr_free _((dbref thing));
extern void atr_cpy _((dbref dest, dbref source));
! extern char const *const convert_atr _((int oldatr));
extern int atr_comm_match _((dbref thing, dbref player, int type, int end,
char const *str, int just_match, char *atrname,
char **abp));
--- 44,50 ----
extern ATTR *atr_complete_match _((dbref player, char const *atr, dbref privs));
extern void atr_free _((dbref thing));
extern void atr_cpy _((dbref dest, dbref source));
! extern char const *convert_atr _((int oldatr));
extern int atr_comm_match _((dbref thing, dbref player, int type, int end,
char const *str, int just_match, char *atrname,
char **abp));
*** 1_7_4.159/win32/options.h Fri, 19 Jan 2001 09:27:13 -0600 dunemush (pennmush/f/11_options.h 1.2 660)
--- 1_7_4.177(w)/win32/options.h Mon, 10 Sep 2001 14:30:21 -0500 dunemush (pennmush/f/11_options.h 1.3 660)
***************
*** 4,17 ****
#define __OPTIONS_H
/* *********** READ THIS BEFORE YOU MODIFY ANYTHING IN THIS FILE *********** */
! /* WARNING: All options in this file have the ability to signifigantly change
* the look and feel and sometimes even internal behavior of the program.
* The ones shipped as the default have been extensively tested. Others have
* been tested to a (usually) lesser degree, and therefore might still have
* latent bugs. If you change any of them from the default, PLEASE check
* to make sure that you know the full effects of what you are changing. And
* if you encounter any errors or compile time problems with any options
! * other than the default settings, PLEASE inform
* pennmush-bugs@pennmush.org
* immediately, so that they can be fixed. The same goes for any other bug
* you might find in using this software. All efforts will be made to fix
--- 4,17 ----
#define __OPTIONS_H
/* *********** READ THIS BEFORE YOU MODIFY ANYTHING IN THIS FILE *********** */
! /* WARNING: All options in this file have the ability to significantly change
* the look and feel and sometimes even internal behavior of the program.
* The ones shipped as the default have been extensively tested. Others have
* been tested to a (usually) lesser degree, and therefore might still have
* latent bugs. If you change any of them from the default, PLEASE check
* to make sure that you know the full effects of what you are changing. And
* if you encounter any errors or compile time problems with any options
! * other than the default settings, PLEASE inform
* pennmush-bugs@pennmush.org
* immediately, so that they can be fixed. The same goes for any other bug
* you might find in using this software. All efforts will be made to fix
***************
*** 29,36 ****
* and so desire. This value determines how encryption should be done:
* 0 -- Don't encrypt passwords, store them as plaintext.
* Highly portable, and highly insecure. Not recommended.
! * 1 -- Encrypt passwords using the system crypt(3) function.
! * Recommended for loading dbs from Unix systems that were
* compiled this way, but not for starting new MUSHes.
* 2 -- Encrypt passwords using SHS. SHS works under both Windows and
* Unix and if your passwords are encrypted with SHS, you can move
--- 29,36 ----
* and so desire. This value determines how encryption should be done:
* 0 -- Don't encrypt passwords, store them as plaintext.
* Highly portable, and highly insecure. Not recommended.
! * 1 -- Encrypt passwords using the system crypt(3) function.
! * Recommended for loading dbs from Unix systems that were
* compiled this way, but not for starting new MUSHes.
* 2 -- Encrypt passwords using SHS. SHS works under both Windows and
* Unix and if your passwords are encrypted with SHS, you can move
***************
*** 38,79 ****
* new databases.
* 3 -- Encrypt passwords using SHS. When checking passwords, if
* SHS doesn't match, try crypt(3). Replaces matched crypt-ed
! * passwords with SHS encrypted versions. Recommended if you used
* to use just crypt(3), to make changing to a system we have better
* control over painless.
* 4 -- Like #3, but uses plaintext instead of crypt(3). Use with a database
* that used CRYPT_SYSTEM 0. (For security reasons, passwords starting
* with XX will not be compared for plaintext matches).
*/
! #define CRYPT_SYSTEM 2
/* Malloc package options */
/* malloc() is the routine that allocates memory while the MUSH is
* running. Because mallocs vary a lot from operating system to operating
* system, you can choose to use one of the mallocs we provide instead of
! * your operating system's malloc.
* Set the value of MALLOC_PACKAGE to one of these values:
* 0 -- Use my system's malloc. Required for Win32 systems.
! * Recommended for FreeBSD, Linux, Mac OS X, and other operating systems
* where you think the malloc routines are efficient and debugged.
* Otherwise, use only as a last resort.
! * 1 -- Use the CSRI malloc package in normal mode.
* Recommended for most operating systems where system malloc is
* suspect. Known to work well on SunOS 4.1.x.
! * 2 -- Use the CSRI malloc package in debug mode.
* Only use this if you're tracking down memory leaks. Don't use
* for a production MUSH - it's slow.
! * 3 -- Use the Satoria malloc (smalloc) package.
! * Won't work with Linux or FreeBSD, and not generally recommended.
! * 4 -- Use the Satoria malloc package in debug mode.
! * Doubly not recommended. :)
! * 5 -- Use the GNU malloc (gmalloc) package.
* Doesn't work on Alpha processors or FreeBSD systems, and
* reportedly flaky on Linux. Requires an ANSI compiler.
* Otherwise, similar to CSRI malloc.
! * 6 -- Same as 0, kept for compatibility.
*/
! #define MALLOC_PACKAGE 0
/* What type of attribute compression should the MUSH use?
* Your options are:
--- 38,75 ----
* new databases.
* 3 -- Encrypt passwords using SHS. When checking passwords, if
* SHS doesn't match, try crypt(3). Replaces matched crypt-ed
! * passwords with SHS encrypted versions. Recommended if you used
* to use just crypt(3), to make changing to a system we have better
* control over painless.
* 4 -- Like #3, but uses plaintext instead of crypt(3). Use with a database
* that used CRYPT_SYSTEM 0. (For security reasons, passwords starting
* with XX will not be compared for plaintext matches).
*/
! #define CRYPT_SYSTEM 2
/* Malloc package options */
/* malloc() is the routine that allocates memory while the MUSH is
* running. Because mallocs vary a lot from operating system to operating
* system, you can choose to use one of the mallocs we provide instead of
! * your operating system's malloc.
* Set the value of MALLOC_PACKAGE to one of these values:
* 0 -- Use my system's malloc. Required for Win32 systems.
! * Recommended for FreeBSD, Linux, Mac OS X, and other operating systems
* where you think the malloc routines are efficient and debugged.
* Otherwise, use only as a last resort.
! * 1 -- Use the CSRI malloc package in normal mode.
* Recommended for most operating systems where system malloc is
* suspect. Known to work well on SunOS 4.1.x.
! * 2 -- Use the CSRI malloc package in debug mode.
* Only use this if you're tracking down memory leaks. Don't use
* for a production MUSH - it's slow.
! * 5 -- Use the GNU malloc (gmalloc) package.
* Doesn't work on Alpha processors or FreeBSD systems, and
* reportedly flaky on Linux. Requires an ANSI compiler.
* Otherwise, similar to CSRI malloc.
! * 3, 4, 6 -- Same as 0, kept for compatibility.
*/
! #define MALLOC_PACKAGE 0
/* What type of attribute compression should the MUSH use?
* Your options are:
***************
*** 82,91 ****
* possibly at the cost of some speed. It is also 8-bit clean,
* and thus suitable for locales that use extended character sets.
* Sometimes has trouble on some linux systems for some reason.
! * 2 - the bigram compression from pl9 and earlier (but autotuned)
! * This should be intermediate in compression and speed, and
! * and at least one database that won't load under Huffman,
! * will load under bigram. Use if Huffman won't work.
* 3 - Nick Gammon's word-based compression algorithm.
* In theory, this should be considerably faster than Huffman
* when decompressing, and considerably slower when compressing.
--- 78,84 ----
* possibly at the cost of some speed. It is also 8-bit clean,
* and thus suitable for locales that use extended character sets.
* Sometimes has trouble on some linux systems for some reason.
! * 2 - Same as 1, for backwards compability.
* 3 - Nick Gammon's word-based compression algorithm.
* In theory, this should be considerably faster than Huffman
* when decompressing, and considerably slower when compressing.
***************
*** 102,111 ****
* You can change this at any time, with no worries. It only affects
* the in-memory compression of attribute/mail text, not the disk
* db compression. Recommend to keep it at 1. When in doubt, try them
! * all, and chekc @uptime's memory usage stats for the most efficient
* choice among those that are stable for you.
*/
! #define COMPRESSION_TYPE 3
/*------------------------- Other internals ----------------------*/
--- 95,104 ----
* You can change this at any time, with no worries. It only affects
* the in-memory compression of attribute/mail text, not the disk
* db compression. Recommend to keep it at 1. When in doubt, try them
! * all, and check @uptime's memory usage stats for the most efficient
* choice among those that are stable for you.
*/
! #define COMPRESSION_TYPE 3
/*------------------------- Other internals ----------------------*/
***************
*** 140,145 ****
--- 133,144 ----
*/
/* #define INFO_SLAVE /* */
+ /* Windows NT users may uncomment this define to get the native network i/o
+ * thread model instead of the bsd socket layer, for vastly better
+ * performance. Doesn't work on Win 95/98. By Nick Gammon
+ */
+ /* #define NT_TCP /* */
+
/*------------------------- MUSH Features ----------------------*/
/* This option is to control whether functions may have side effects
***************
*** 150,158 ****
*/
/* #define FUNCTION_SIDE_EFFECTS /* */
! /* Comment this out if you don't wish to use the built-in mail system.
* The @mail command provides a flexible hardcoded mail system, which
! * uses its own database to store messages.
*/
#define USE_MAILER /* */
--- 149,157 ----
*/
/* #define FUNCTION_SIDE_EFFECTS /* */
! /* Comment this out if you don't wish to use the built-in mail system.
* The @mail command provides a flexible hardcoded mail system, which
! * uses its own database to store messages.
*/
#define USE_MAILER /* */
***************
*** 177,183 ****
/* The chat channels system allows players to talk cross-MUSH to each
* other, without needing to be in the same room. Whether or not you
! * want this depends on what type of MUSH you want.
*/
/* #define CHAT_SYSTEM /* */
--- 176,182 ----
/* The chat channels system allows players to talk cross-MUSH to each
* other, without needing to be in the same room. Whether or not you
! * want this depends on what type of MUSH you want.
*/
/* #define CHAT_SYSTEM /* */
***************
*** 187,196 ****
* the character you want to use in addition to +, enclosed in
* single quotes, as in '=' or '.' or whatever. Don't define it to '+'!
*/
! /* #define CHAT_TOKEN_ALIAS '=' /* */
! /* Quotes limit players to a fixed number of objects.
! * Wizards can check and set quotas on players.
* See also restricted_building in game/mush.cnf for another way
* to slow database growth.
*/
--- 186,200 ----
* the character you want to use in addition to +, enclosed in
* single quotes, as in '=' or '.' or whatever. Don't define it to '+'!
*/
! /* #define CHAT_TOKEN_ALIAS '=' /* Many MUSHes want to change the +channels to =channels. That's
! * annoying. So we've got this CHAT_TOKEN_ALIAS, which allows + as well
! * as = (or whatever) channels. If you want this, define it to be
! * the character you want to use in addition to +, enclosed in
! * single quotes, as in '=' or '.' or whatever. Don't define it to '+'!
! */
! /* Quotas limit players to a fixed number of objects.
! * Wizards can check and set quotas on players.
* See also restricted_building in game/mush.cnf for another way
* to slow database growth.
*/
***************
*** 219,239 ****
* Will typically add 8 bytes to each object in memory
* Tracking login failures and modification times is a good security
* measure, too. Also enables the ctime() and mtime() functions.
! * On the whole, recommended unless you're really pinched for memory
* (i.e., for a 10,000 object db, you can't afford using another 80kb)
*
*/
/* #define CREATION_TIMES /* */
! /* The following four options control the semantics of empty and
! * deleted attributes. The configuration recommended for new MUSHes
! * is with all of these options on. Old MUSHes which do not want
! * to port code may want to use only EMPTY_ATTRS; this recreates the
! * pre-1.6.9 behavior. Any configuration with EMPTY_ATTRS but not
! * DUMP_EMPTY_ATTRS is _NOT_ recommmended, with the possible exception
! * of emulating the old behavior.
! *
! * With EMPTY_ATTRS, empty (no value) attributes are retained on
* objects, keeping their attribute flags and locked status.
* Without this option, such attributes are fully deleted.
* Recommended.
--- 223,235 ----
* Will typically add 8 bytes to each object in memory
* Tracking login failures and modification times is a good security
* measure, too. Also enables the ctime() and mtime() functions.
! * On the whole, recommended unless you're really pinched for memory
* (i.e., for a 10,000 object db, you can't afford using another 80kb)
*
*/
/* #define CREATION_TIMES /* */
! /* With EMPTY_ATTRS, empty (no value) attributes are retained on
* objects, keeping their attribute flags and locked status.
* Without this option, such attributes are fully deleted.
* Recommended.
***************
*** 245,251 ****
/* The fixed flag, when set on a player, prevents the player or anything
! * they own from using @tel or home (roy/wizzes exempted from @tel
* restriction) Nice for enforcing IC travel. :)
* The only exception is that players are permitted to @tel their objects
* to their inventory - which makes coding puppets to follow you possible.
--- 241,247 ----
/* The fixed flag, when set on a player, prevents the player or anything
! * they own from using @tel or home (roy/wizzes exempted from @tel
* restriction) Nice for enforcing IC travel. :)
* The only exception is that players are permitted to @tel their objects
* to their inventory - which makes coding puppets to follow you possible.
***************
*** 253,259 ****
#define FIXED_FLAG /* */
/* If defined, enables the Jury and Judge flags, which don't do anything
! * in themselves, but which other MUSHes may find useful
*/
/* #define JURY_OK /* */
--- 249,255 ----
#define FIXED_FLAG /* */
/* If defined, enables the Jury and Judge flags, which don't do anything
! * in themselves, but which other MUSHes may find useful
*/
/* #define JURY_OK /* */
***************
*** 267,273 ****
/* If defined, adds support for the ON_VACATION flag, which a player
* can set to indicate that they're going to be away from the MUSH
* for vacation (and which a wizard can test for when doing player purges,
! * or which can aid other players, etc). This flags is automatically
* cleared when a player logs in, so it should be set just before the
* player leaves for vacation
*/
--- 263,269 ----
/* If defined, adds support for the ON_VACATION flag, which a player
* can set to indicate that they're going to be away from the MUSH
* for vacation (and which a wizard can test for when doing player purges,
! * or which can aid other players, etc). This flag is automatically
* cleared when a player logs in, so it should be set just before the
* player leaves for vacation
*/
***************
*** 280,286 ****
/*------------------------- Cosmetic Features --------------------*/
! /* If you're using the email registration feature, but want to
* use a mailer other than sendmail, put the full path to the mailer
* program here. The mailer must accept the -t command-line
* argument ("get the recipient address from the message header To:").
--- 276,282 ----
/*------------------------- Cosmetic Features --------------------*/
! /* If you're using the email registration feature, but want to
* use a mailer other than sendmail, put the full path to the mailer
* program here. The mailer must accept the -t command-line
* argument ("get the recipient address from the message header To:").
***************
*** 297,306 ****
* and player commands. The defaults are listed below.
*/
! #define CHECKLOG "log/checkpt.log"
! #define CONNLOG "log/connect.log"
! #define WIZLOG "log/wizard.log"
! #define TRACELOG "log/trace.log"
! #define CMDLOG "log/command.log"
#endif
--- 293,302 ----
* and player commands. The defaults are listed below.
*/
! #define CHECKLOG "log/checkpt.log"
! #define CONNLOG "log/connect.log"
! #define WIZLOG "log/wizard.log"
! #define TRACELOG "log/trace.log"
! #define CMDLOG "log/command.log"
#endif
*** 1_7_4.159/Makefile.SH Sat, 03 Mar 2001 10:21:04 -0600 dunemush (pennmush/d/30_Makefile.S 1.13 700)
--- 1_7_4.177(w)/Makefile.SH Mon, 10 Sep 2001 12:21:08 -0500 dunemush (pennmush/d/30_Makefile.S 1.14 700)
***************
*** 189,194 ****
--- 189,195 ----
game/txt/* game/txt/nws/* game/txt/evt/* game/txt/hlp/* )
diffs:
+ (cd utils; sh mkcmds.sh)
@(prcs diff -r$(VS) -N pennmush `cat MANIFEST` | grep -v 'Index:')
patch: versions
***************
*** 208,213 ****
--- 209,215 ----
gzip /tmp/dist.tar
dist.tar: distclean versions
+ (cd utils; sh mkcmds.sh)
makedist -c pennmush
tar -cvf /tmp/dist.tar pennmush
-pgp -sb /tmp/dist.tar