[PENNMUSH-ANNOUNCE] 1.7.4-patch09
dunemush@pennmush.org
dunemush at pennmush.org
Thu, 6 Sep 2001 17:46:59 -0500
This is patch09 to PennMUSH 1.7.4. After applying this patch, you will
have version 1.7.4p9
To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
patch -p1 < 1.7.4-patch09
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:
Minor changes:
* @clone can optionally specify a new name for the clone.
Patch by Bellemore@M*U*S*H, inspired by mux.
* die() can take a third argument which, if true, will cause it to
return the list of individual die rolls rather than the sum.
* NT_TCP option moved to options.h.dist, and @config/list compile now
reports whether it's on or not. Suggested by Glonk@GlonkMUSH
* QUIET flag affects the "Teleported." message as well.
Suggested by Glonk@GlonkMUSH.
* pos() and strmatch() strip ansi and html markup before matching. [SW]
* Slight optimizations for many of the functions that strip markup. [SW]
* chat_strip_quote setting now applies to @*wall and say. Suggested by
Glonk@GlonkMUSH. [SW]
* @malias/who is now the same as @malias/members. Suggested by
Oriens@Alexandria.
* Small code change in do_chat_by_name so that find_channel_partial_on
can behave as documented. Suggested by Michael Loftis
Fixes:
* p8 broke regeditall when the replacer was null. Fixed.
Reported by Nymeria@M*U*S*H.
* Some unused variables removed, and pcre.h included in parse.c.
Reported by Sidney@M*U*S*H.
* index-files.pl produced an uninitialized value warning if a help file
had only a single entry (or admin entry). Warning removed.
Reported by Nymeria@M*U*S*H.
* Fixed to help lstats() to mention stats() as alias. Reported by
Glonk@GlonkMUSH.
* Help edit() fix by Sash@SW:Uprising.
* Improved failure message for @password. Suggested by Mike Wesson. [SW]
* alphamin()/alphamax() were stripping markup from what they returned. [SW]
* PARANOID flag is now only visible to owners. Reported by
Bellemore@BelleMUSH.
* Improved error message when trying to rejoin a channel. [SW]
* In Win32 NT_TCP mode, ident lookups are now done and the LASTIP
attribute doesn't get corrupted. Patch by Bellemore@BelleMUSH.
* @chan/describe now works along with @chan/desc. Suggested by
Trispis@M*U*S*H
* 'teach'ing a motion to a follower didn't work right. Reported by
Cheetah and Viila@M*U*S*H.
* Security bug in follow fixed. Reported by Walker@M*U*S*H.
* The ê and ë entities were not correctly returned in
Pueblo mode. Fixed by [NG].
* Help for trig functions improved. [SW]
* Pueblo references no longer give Chaco's (defunct) website.
By Noltar@Korongil.
Prereq: 1.7.4p8
*** 1_7_4.138/Patchlevel Sat, 28 Jul 2001 09:05:37 -0500 dunemush (pennmush/5_Patchlevel 1.26 600)
--- 1_7_4.157(w)/Patchlevel Tue, 04 Sep 2001 08:10:24 -0500 dunemush (pennmush/5_Patchlevel 1.27 600)
***************
*** 1,2 ****
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.4p8
--- 1,2 ----
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.4p9
*** 1_7_4.138/CHANGES Sat, 28 Jul 2001 09:05:37 -0500 dunemush (pennmush/8_CHANGES 1.219.1.23 600)
--- 1_7_4.157(w)/CHANGES Thu, 06 Sep 2001 10:34:13 -0500 dunemush (pennmush/8_CHANGES 1.219.1.35 600)
***************
*** 17,22 ****
--- 17,70 ----
==========================================================================
+ Version 1.7.4 patchlevel 9 September 4, 2001
+
+ Minor changes:
+ * @clone can optionally specify a new name for the clone.
+ Patch by Bellemore@M*U*S*H, inspired by mux.
+ * die() can take a third argument which, if true, will cause it to
+ return the list of individual die rolls rather than the sum.
+ * NT_TCP option moved to options.h.dist, and @config/list compile now
+ reports whether it's on or not. Suggested by Glonk@GlonkMUSH
+ * QUIET flag affects the "Teleported." message as well.
+ Suggested by Glonk@GlonkMUSH.
+ * pos() and strmatch() strip ansi and html markup before matching. [SW]
+ * Slight optimizations for many of the functions that strip markup. [SW]
+ * chat_strip_quote setting now applies to @*wall and say. Suggested by
+ Glonk@GlonkMUSH. [SW]
+ * @malias/who is now the same as @malias/members. Suggested by
+ Oriens@Alexandria.
+ * Small code change in do_chat_by_name so that find_channel_partial_on
+ can behave as documented. Suggested by Michael Loftis
+ Fixes:
+ * p8 broke regeditall when the replacer was null. Fixed.
+ Reported by Nymeria@M*U*S*H.
+ * Some unused variables removed, and pcre.h included in parse.c.
+ Reported by Sidney@M*U*S*H.
+ * index-files.pl produced an uninitialized value warning if a help file
+ had only a single entry (or admin entry). Warning removed.
+ Reported by Nymeria@M*U*S*H.
+ * Fixed to help lstats() to mention stats() as alias. Reported by
+ Glonk@GlonkMUSH.
+ * Help edit() fix by Sash@SW:Uprising.
+ * Improved failure message for @password. Suggested by Mike Wesson. [SW]
+ * alphamin()/alphamax() were stripping markup from what they returned. [SW]
+ * PARANOID flag is now only visible to owners. Reported by
+ Bellemore@BelleMUSH.
+ * Improved error message when trying to rejoin a channel. [SW]
+ * In Win32 NT_TCP mode, ident lookups are now done and the LASTIP
+ attribute doesn't get corrupted. Patch by Bellemore@BelleMUSH.
+ * @chan/describe now works along with @chan/desc. Suggested by
+ Trispis@M*U*S*H
+ * 'teach'ing a motion to a follower didn't work right. Reported by
+ Cheetah and Viila@M*U*S*H.
+ * Security bug in follow fixed. Reported by Walker@M*U*S*H.
+ * The ê and ë entities were not correctly returned in
+ Pueblo mode. Fixed by [NG].
+ * Help for trig functions improved. [SW]
+ * Pueblo references no longer give Chaco's (defunct) website.
+ By Noltar@Korongil.
+
Version 1.7.4 patchlevel 8 July 22, 2001
Minor changes:
*** 1_7_4.138/game/txt/hlp/pennvers.hlp Sat, 28 Jul 2001 09:05:37 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.20 600)
--- 1_7_4.157(w)/game/txt/hlp/pennvers.hlp Thu, 06 Sep 2001 10:34:17 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.30 600)
***************
*** 1,5 ****
& changes
! & 1.7.4p8
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.4p9
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,65 ----
A list of the patchlevels associated with each release can
be read in 'help patchlevels'.
+ Version 1.7.4 patchlevel 9 September 4, 2001
+
+ Minor changes:
+ * @clone can optionally specify a new name for the clone.
+ Patch by Bellemore@M*U*S*H, inspired by mux.
+ * die() can take a third argument which, if true, will cause it to
+ return the list of individual die rolls rather than the sum.
+ * NT_TCP option moved to options.h.dist, and @config/list compile now
+ reports whether it's on or not. Suggested by Glonk@GlonkMUSH
+ * QUIET flag affects the "Teleported." message as well.
+ Suggested by Glonk@GlonkMUSH.
+ * pos() and strmatch() strip ansi and html markup before matching. [SW]
+ * Slight optimizations for many of the functions that strip markup. [SW]
+ * chat_strip_quote setting now applies to @*wall and say. Suggested by
+ Glonk@GlonkMUSH. [SW]
+ * @malias/who is now the same as @malias/members. Suggested by
+ Oriens@Alexandria.
+ * Small code change in do_chat_by_name so that find_channel_partial_on
+ can behave as documented. Suggested by Michael Loftis
+ Fixes:
+ * p8 broke regeditall when the replacer was null. Fixed.
+ Reported by Nymeria@M*U*S*H.
+ * Some unused variables removed, and pcre.h included in parse.c.
+ Reported by Sidney@M*U*S*H.
+ * index-files.pl produced an uninitialized value warning if a help file
+ had only a single entry (or admin entry). Warning removed.
+ Reported by Nymeria@M*U*S*H.
+ * Fixed to help lstats() to mention stats() as alias. Reported by
+ Glonk@GlonkMUSH.
+ * Help edit() fix by Sash@SW:Uprising.
+ * Improved failure message for @password. Suggested by Mike Wesson. [SW]
+ * alphamin()/alphamax() were stripping markup from what they returned. [SW]
+ * PARANOID flag is now only visible to owners. Reported by
+ Bellemore@BelleMUSH.
+ * Improved error message when trying to rejoin a channel. [SW]
+ * In Win32 NT_TCP mode, ident lookups are now done and the LASTIP
+ attribute doesn't get corrupted. Patch by Bellemore@BelleMUSH.
+ * @chan/describe now works along with @chan/desc. Suggested by
+ Trispis@M*U*S*H
+ * 'teach'ing a motion to a follower didn't work right. Reported by
+ Cheetah and Viila@M*U*S*H.
+ * Security bug in follow fixed. Reported by Walker@M*U*S*H.
+ * The ê and ë entities were not correctly returned in
+ Pueblo mode. Fixed by [NG].
+ * Help for trig functions improved. [SW]
+ * Pueblo references no longer give Chaco's (defunct) website.
+ By Noltar@Korongil.
+
+ & 1.7.4p8
Version 1.7.4 patchlevel 8 July 22, 2001
Minor changes:
***************
*** 4797,4803 ****
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
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
--- 4846,4852 ----
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
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.138/game/txt/hlp/penntop.hlp Wed, 18 Jul 2001 12:11:07 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.2 600)
--- 1_7_4.157(w)/game/txt/hlp/penntop.hlp Wed, 05 Sep 2001 15:50:17 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2 600)
***************
*** 310,317 ****
SimpleMU http://simplemu.onlineroleplay.com
MACINTOSH MUDDweller http://www.shareware.com (search for Muddweller)
- WINDOWS Pueblo http://www.chaco.com
-
& CONTROL
Controlling an object basically means that you have the power to change
the object's characteristics such as flags and attributes. It may also
--- 310,315 ----
***************
*** 697,710 ****
(continued in help listening3)
& LISTENING3
Please note that an object CANNOT trigger its own ^-patterns, so they
! work like @ahear rather than @aahear or @amhear. Additionally,
! unlike $-commands, @listen and ^-patterns are NOT inherited via @parent,
! unless the LISTEN_PARENT flag is set on the listener.
Listen patterns are checked after the object's normal @listen attribute.
See also: @listen, @ahear, @amhear, @aahear, MONITOR,
USER-DEFINED COMMANDS, LISTEN_PARENT
& LISTS
The word "list" is used in the help files to refer to a string that
is a series of smaller strings separated by one or more spaces. A list
--- 695,715 ----
(continued in help listening3)
& LISTENING3
Please note that an object CANNOT trigger its own ^-patterns, so they
! work like @ahear rather than @aahear or @amhear. (Note that the
! triggering object is whatever happens to be %#, so, for example, when
! you @set an object MONITOR, you are %# with regard to the
! "Object is now listening" message, and this message can be picked up
! with an ^pattern.)
!
! Additionally, unlike $-commands, @listen and ^-patterns are NOT
! inherited via @parent, unless the LISTEN_PARENT flag is set on the
! listener.
Listen patterns are checked after the object's normal @listen attribute.
See also: @listen, @ahear, @amhear, @aahear, MONITOR,
USER-DEFINED COMMANDS, LISTEN_PARENT
+
& LISTS
The word "list" is used in the help files to refer to a string that
is a series of smaller strings separated by one or more spaces. A list
*** 1_7_4.138/game/txt/hlp/pennpueb.hlp Mon, 17 Apr 2000 11:58:36 -0500 dunemush (pennmush/14_pennpueb.h 1.2 600)
--- 1_7_4.157(w)/game/txt/hlp/pennpueb.hlp Tue, 04 Sep 2001 08:13:19 -0500 dunemush (pennmush/14_pennpueb.h 1.2.1.1 600)
***************
*** 1,9 ****
& PUEBLO
& PUEBLO()
! Pueblo is a client made by Chaco (http://www.chaco.com/pueblo).
! It attempts to MIX HTML with MUSH, and does a very good job at it.
! If compiled into the MUSH, PennMUSH offers full support for the
! enhanced features of Pueblo.
PennMUSH will automatically detect a Pueblo client (rather, the
client will announce itself and PennMUSH will detect that), and
--- 1,10 ----
& PUEBLO
& PUEBLO()
! Pueblo is a client made by Chaco (a now defunct company).
! It attempts to MIX HTML with MUSH, and does a decent job at it.
! There are other clients (notably MUSHclient) that also offer Pueblo
! features. If compiled into the MUSH, PennMUSH offers support for
! the enhanced features of Pueblo.
PennMUSH will automatically detect a Pueblo client (rather, the
client will announce itself and PennMUSH will detect that), and
***************
*** 19,25 ****
& PUEBLO FEATURES
PennMUSH makes the following enhancements visible to Pueblo users, if
! Pueblo support has been enabled in the server (check @config).:
- Object/Room names are highlighted
- Support for VRML graphics
--- 20,26 ----
& PUEBLO FEATURES
PennMUSH makes the following enhancements visible to Pueblo users, if
! Pueblo support has been enabled in the server (check @config):
- Object/Room names are highlighted
- Support for VRML graphics
*** 1_7_4.138/game/txt/hlp/pennmail.hlp Fri, 29 Jun 2001 12:34:08 -0500 dunemush (pennmush/15_pennmail.h 1.8 600)
--- 1_7_4.157(w)/game/txt/hlp/pennmail.hlp Tue, 04 Sep 2001 08:19:12 -0500 dunemush (pennmush/15_pennmail.h 1.9 600)
***************
*** 147,154 ****
and is equivalent to @malias/list
@malias with a single argument (the name of an alias) lists the
! members of that alias, if you're allowed to see them, and is
! equivalent to @malias/members <alias>
See help @malias2 for more
--- 147,154 ----
and is equivalent to @malias/list
@malias with a single argument (the name of an alias) lists the
! members of that alias, if you're allowed to see them. Other forms of
! the same command are @malias/members <alias> or @malias/who <alias>
See help @malias2 for more
*** 1_7_4.138/game/txt/hlp/pennfunc.hlp Thu, 19 Jul 2001 14:15:24 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.4 600)
--- 1_7_4.157(w)/game/txt/hlp/pennfunc.hlp Tue, 04 Sep 2001 08:09:50 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8 600)
***************
*** 227,235 ****
Returns the absolute value of a number. i.e. ABS(-4) returns 4;
ABS(2) returns 2, etc.
& ACOS()
! acos(<number>)
! Returns the arc-cosine of <number>, expressed in radians.
& ADD()
add(<number>,<number>,...)
--- 227,238 ----
Returns the absolute value of a number. i.e. ABS(-4) returns 4;
ABS(2) returns 2, etc.
& ACOS()
! acos(<cosine>)
! Returns the angle that has the given <cosine> (arc-cosine), with the
! angle expressed in radians.
!
! See HELP COS() for how to convert between radians and degrees.
& ADD()
add(<number>,<number>,...)
***************
*** 322,334 ****
This function returns the proper article, "a" or "an", based on whether
or not <string> begins with a vowel.
& ASIN()
! asin(<number>)
! Returns the arc-sine of <number>, expressed in radians.
& ATAN()
! atan(<number>)
! Returns the arc-tangent of <number>, expressed in radians.
& ATRLOCK()
atrlock(<object>/<attrib>[, <on|off>])
--- 325,343 ----
This function returns the proper article, "a" or "an", based on whether
or not <string> begins with a vowel.
& ASIN()
! asin(<sine>)
! Returns the angle with the given <sine> (arc-sine), with the angle
! expressed in radians.
!
! See HELP COS() for how to convert between radians and degrees.
& ATAN()
! atan(<tangent>)
! Returns the angle with the given <tangent> (arc-tangent), with the
! angle expressed in radians.
!
! See HELP COS() for how to convert between radians and degrees.
& ATRLOCK()
atrlock(<object>/<attrib>[, <on|off>])
***************
*** 572,580 ****
See also: convsecs(), time()
& COS()
! cos(<number>)
! Returns the cosine of <number>, which should be expressed in radians.
& PCREATE()
pcreate(<name>,<password>)
--- 581,595 ----
See also: convsecs(), time()
& COS()
! cos(<angle>)
! Returns the cosine of <angle>, which should be expressed in radians.
!
! An angle in degrees can be converted to radians with the following:
! fdiv(mul(DEGREES, pi()), 180)
!
! An angle in radians can be converted to degrees with the following:
! fdiv(mul(RADIANS, 180), pi())
& PCREATE()
pcreate(<name>,<password>)
***************
*** 666,678 ****
You say, "abcfgh"
& DIE()
! die(<number of times to roll die>, <number of sides on die>)
This function simulates rolling dice. It "rolls" a die with a given
number of sides, a certain number of times, and sums the results.
For example, DIE(2, 6) would roll "2d6" - two six-sided dice,
generating a result in the range 2-12. The maximum number of
dice this function will roll in a single call is 20.
& DIG()
dig(<name> [, <exit to> [, <exit from>]])
--- 681,702 ----
You say, "abcfgh"
& DIE()
! die(<number of times to roll die>, <number of sides on die>[, <show>])
This function simulates rolling dice. It "rolls" a die with a given
number of sides, a certain number of times, and sums the results.
For example, DIE(2, 6) would roll "2d6" - two six-sided dice,
generating a result in the range 2-12. The maximum number of
dice this function will roll in a single call is 20.
+ If a third argument is given and it's a true value, the result will
+ be a space-seperated list of the individual rolls rather than their
+ sum.
+
+ Example:
+ > think die(3, 6)
+ 6
+ > think die(3, 6, 1)
+ 5 2 1
& DIG()
dig(<name> [, <exit to> [, <exit from>]])
***************
*** 756,762 ****
If <search> is a dollar sign ($), <replace> is appended.
Example:
! > say "[edit(this is a test,^,I think,$,.,a test,an exam)]
You say "I think this is an exam."
See also @edit, regedit().
--- 780,786 ----
If <search> is a dollar sign ($), <replace> is appended.
Example:
! > say [edit(this is a test,^,I think%b,$,.,a test,an exam)]
You say "I think this is an exam."
See also @edit, regedit().
***************
*** 1707,1712 ****
--- 1731,1737 ----
& LSTATS()
& STATS()
lstats(<player>)
+ stats(<player>)
This function returns the breakdown of objects in the database, in
a format similar to "@stats". If <player> is "all", a breakdown is
***************
*** 1714,1719 ****
--- 1739,1746 ----
for that particular player. Only wizards can LSTATS() other players.
The list returned is in the format:
<Total objects> <Rooms> <Exits> <Things> <Players> <Garbage>
+
+ stats() is an alias for lstats().
& LT()
lt(<num>,<num>)
***************
*** 2592,2600 ****
1 if the number is positive, and -1 if the number is negative.
Thus, SIGN(-4) is -1, SIGN(2) is 1, and SIGN(0) is 0.
& SIN()
! sin(<number>)
! Returns the sine of <number>, which should be expressed in radians.
& SORT()
sort(<word1> <word2> ...[,<sort type>][,<delimiter>][,<output sep>])
--- 2619,2629 ----
1 if the number is positive, and -1 if the number is negative.
Thus, SIGN(-4) is -1, SIGN(2) is 1, and SIGN(0) is 0.
& SIN()
! sin(<angle>)
! Returns the sine of <angle>, which should be expressed in radians.
!
! See HELP COS() for how to convert between radians and degrees.
& SORT()
sort(<word1> <word2> ...[,<sort type>][,<delimiter>][,<output sep>])
***************
*** 2885,2893 ****
brown |fox
& TAN()
! tan(<number>)
! Returns the tangent of <number>, which should be expressed in radians.
& TEL()
tel(<object>,<destination>)
--- 2914,2924 ----
brown |fox
& TAN()
! tan(<angle>)
! Returns the tangent of <angle>, which should be expressed in radians.
!
! See HELP COS() for how to convert between radians and degrees.
& TEL()
tel(<object>,<destination>)
*** 1_7_4.138/game/txt/hlp/pennflag.hlp Wed, 28 Mar 2001 14:27:36 -0600 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1 600)
--- 1_7_4.157(w)/game/txt/hlp/pennflag.hlp Fri, 03 Aug 2001 11:00:20 -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 600)
***************
*** 516,523 ****
Flag: QUIET (all types)
This flag when set on yourself prevents you from hearing
! the 'set' or 'triggered' messages from any objects you own. When
! set on an object, only that object will not relay its messages.
& ROOM
Flag: ROOM (rooms)
--- 516,524 ----
Flag: QUIET (all types)
This flag when set on yourself prevents you from hearing
! the 'set', 'triggered', or 'Teleported.' messages from any objects
! you own. When set on an object, only that object will not relay
! its messages.
& ROOM
Flag: ROOM (rooms)
*** 1_7_4.138/game/txt/index-files.pl Thu, 08 Feb 2001 23:01:41 -0600 dunemush (pennmush/28_index-file 1.3 600)
--- 1_7_4.157(w)/game/txt/index-files.pl Mon, 30 Jul 2001 13:12:39 -0500 dunemush (pennmush/28_index-file 1.4 600)
***************
*** 31,38 ****
@aentries = map { lc $_ } @aentries;
sub withnumchecking;
! my @sorted = sort withnumchecking @entries;
! my @asorted = sort withnumchecking @aentries;
my $maxlines = 14;
my $maxlen = 25;
--- 31,38 ----
@aentries = map { lc $_ } @aentries;
sub withnumchecking;
! my @sorted = ($#entries > 0) ? (sort withnumchecking @entries) : @entries;
! my @asorted = ($#entries > 0) ? (sort withnumchecking @aentries) : @aentries;
my $maxlines = 14;
my $maxlen = 25;
*** 1_7_4.138/game/mushcnf.dst Sat, 07 Jul 2001 21:06:09 -0500 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.1 600)
--- 1_7_4.157(w)/game/mushcnf.dst Mon, 13 Aug 2001 19:50:07 -0500 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2 600)
***************
*** 551,557 ****
page_aliases no
# Should +whatever "hi! strip the intiial quote and produce <whatever> X says,
! # "hi!", or not (producing <whatever> X says, ""hi!").
chat_strip_quote yes
--- 551,558 ----
page_aliases no
# Should +whatever "hi! strip the intiial quote and produce <whatever> X says,
! # "hi!", or not (producing <whatever> X says, ""hi!"). This also affects
! # the @*wall and say commands.
chat_strip_quote yes
*** 1_7_4.138/src/SWITCHES Tue, 24 Apr 2001 12:38:03 -0500 dunemush (pennmush/b/22_SWITCHES 1.10 600)
--- 1_7_4.157(w)/src/SWITCHES Tue, 04 Sep 2001 08:18:01 -0500 dunemush (pennmush/b/22_SWITCHES 1.12 600)
***************
*** 24,30 ****
DEFAULTS
DELETE
DELIM
! DESC
DESTROY
DISABLE
DOWN
--- 24,30 ----
DEFAULTS
DELETE
DELIM
! DESCRIBE
DESTROY
DISABLE
DOWN
***************
*** 121,126 ****
--- 121,127 ----
URGENT
USEFLAG
WHAT
+ WHO
WIPE
WIZ
WIZARD
*** 1_7_4.138/src/wiz.c Thu, 19 Jul 2001 14:15:24 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.5 660)
--- 1_7_4.157(w)/src/wiz.c Thu, 06 Sep 2001 10:40:59 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7 660)
***************
*** 423,429 ****
/* Put it into its new room */
Source(victim) = destination;
PUSH(victim, Exits(destination));
! notify(player, T("Teleported."));
return;
}
loc = Location(victim);
--- 423,430 ----
/* Put it into its new room */
Source(victim) = destination;
PUSH(victim, Exits(destination));
! if (!Quiet(player) && !(Quiet(victim) && (Owner(victim) == player)))
! notify(player, T("Teleported."));
return;
}
loc = Location(victim);
***************
*** 517,524 ****
did_it(victim, victim, "TPORT", NULL, "OTPORT", NULL, "ATPORT",
destination);
if ((victim != player) && !(Puppet(victim) &&
! (Owner(victim) == Owner(player))))
! notify(player, T("Teleported."));
return;
}
/* we can't do it */
--- 518,527 ----
did_it(victim, victim, "TPORT", NULL, "OTPORT", NULL, "ATPORT",
destination);
if ((victim != player) && !(Puppet(victim) &&
! (Owner(victim) == Owner(player)))) {
! if (!Quiet(player) && !(Quiet(victim) && (Owner(victim) == player)))
! notify(player, T("Teleported."));
! }
return;
}
/* we can't do it */
*** 1_7_4.138/src/strutil.c Mon, 18 Jun 2001 10:36:58 -0500 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.6 660)
--- 1_7_4.157(w)/src/strutil.c Thu, 06 Sep 2001 10:40:59 -0500 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7 660)
***************
*** 732,743 ****
/* Strip all ansi and html markup from a string */
char *
! remove_markup(orig)
const char *orig;
{
static char buff[BUFFER_LEN];
char *bp = buff;
char *q;
if (!orig)
return NULL;
--- 732,745 ----
/* Strip all ansi and html markup from a string */
char *
! remove_markup(orig, s_len)
const char *orig;
+ Size_t *s_len;
{
static char buff[BUFFER_LEN];
char *bp = buff;
char *q;
+ Size_t len = 0;
if (!orig)
return NULL;
***************
*** 754,762 ****
--- 756,767 ----
break;
default:
safe_chr(*q++, buff, &bp);
+ len++;
}
}
*bp = '\0';
+ if (s_len)
+ *s_len = len + 1;
return buff;
}
*** 1_7_4.138/src/speech.c Mon, 18 Jun 2001 10:36:58 -0500 dunemush (pennmush/b/35_speech.c 1.21.1.2.1.3.1.5.1.1.1.7.1.3.1.1.1.1 660)
--- 1_7_4.157(w)/src/speech.c Thu, 06 Sep 2001 10:40:59 -0500 dunemush (pennmush/b/35_speech.c 1.21.1.2.1.3.1.5.1.1.1.7.1.3.1.1.1.3 660)
***************
*** 150,155 ****
--- 150,158 ----
return;
}
+ if (*tbuf1 == SAY_TOKEN && CHAT_STRIP_QUOTE)
+ tbuf1++;
+
/* notify everybody */
notify(player, tprintf(T("You say, \"%s\""), tbuf1));
notify_except(Contents(loc), player,
***************
*** 415,420 ****
--- 418,424 ----
safe_str(arg2, tbuf2, &bp2);
safe_str("\" to ", tbuf2, &bp2);
safe_str(tbuf, tbuf2, &bp2);
+ safe_chr('.', tbuf2, &bp2);
break;
}
*bp2 = '\0';
***************
*** 649,655 ****
switch (*message) {
case SAY_TOKEN:
key = 1;
! message = message + 1;
break;
case SEMI_POSE_TOKEN:
gap = "";
--- 653,660 ----
switch (*message) {
case SAY_TOKEN:
key = 1;
! if (CHAT_STRIP_QUOTE)
! message = message + 1;
break;
case SEMI_POSE_TOKEN:
gap = "";
*** 1_7_4.138/src/player.c Sat, 23 Jun 2001 14:54:26 -0500 dunemush (pennmush/b/47_player.c 1.15.1.1.1.1.1.3 660)
--- 1_7_4.157(w)/src/player.c Thu, 06 Sep 2001 10:40:58 -0500 dunemush (pennmush/b/47_player.c 1.15.1.1.1.1.1.4 660)
***************
*** 440,446 ****
return;
}
if (!password_check(player, old)) {
! notify(player, "Sorry");
} else if (!ok_password(newobj)) {
notify(player, T("Bad new password."));
} else {
--- 440,446 ----
return;
}
if (!password_check(player, old)) {
! notify(player, T("Suffering from memory loss? See a wizard!"));
} else if (!ok_password(newobj)) {
notify(player, T("Bad new password."));
} else {
*** 1_7_4.138/src/parse.c Thu, 19 Jul 2001 14:15:24 -0500 dunemush (pennmush/b/48_parse.c 1.23.1.9 660)
--- 1_7_4.157(w)/src/parse.c Thu, 06 Sep 2001 10:40:58 -0500 dunemush (pennmush/b/48_parse.c 1.23.1.10 660)
***************
*** 28,33 ****
--- 28,34 ----
#include "mushdb.h"
#include "parse.h"
#include "attrib.h"
+ #include "pcre.h"
#include "flags.h"
#include "log.h"
#ifdef MEM_CHECK
***************
*** 462,468 ****
} else {
char obuf[BUFFER_LEN];
int p = 0;
- char *o;
(*str)++;
/* Check the first two characters after the $ for a number */
--- 463,468 ----
*** 1_7_4.138/src/move.c Tue, 10 Jul 2001 14:23:59 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.5 660)
--- 1_7_4.157(w)/src/move.c Thu, 06 Sep 2001 10:40:58 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1 660)
***************
*** 22,27 ****
--- 22,28 ----
#include "lock.h"
#include "log.h"
#include "command.h"
+ #include "cmds.h"
#include "game.h"
#include "confmagic.h"
***************
*** 297,304 ****
return 1;
/* otherwise match on exits */
! return (last_match_result
! (player, direction, TYPE_EXIT, MAT_EXIT | MAT_ABSOLUTE) != NOTHING);
}
static dbref
--- 298,304 ----
return 1;
/* otherwise match on exits */
! return (last_match_result(player, direction, TYPE_EXIT, MAT_EXIT) != NOTHING);
}
static dbref
***************
*** 342,348 ****
do_move(player, direction, type)
dbref player;
const char *direction;
! int type; /* type 0 is normal, type 1 is global */
{
dbref exit_m, loc, var_dest;
--- 342,348 ----
do_move(player, direction, type)
dbref player;
const char *direction;
! int type; /* type 0 is normal, type 1 is global, type 2 is zone */
{
dbref exit_m, loc, var_dest;
***************
*** 370,387 ****
if (DO_GLOBALS && (type == 1))
exit_m =
match_result(player, direction, TYPE_EXIT,
! MAT_EXIT | MAT_GLOBAL | MAT_CHECK_KEYS | MAT_ABSOLUTE);
else if (DO_GLOBALS && (type == 2))
exit_m =
match_result(player, direction, TYPE_EXIT,
! MAT_EXIT | MAT_REMOTES | MAT_CHECK_KEYS | MAT_ABSOLUTE);
else
exit_m =
! match_result(player, direction, TYPE_EXIT,
! MAT_EXIT | MAT_CHECK_KEYS | MAT_ABSOLUTE);
! if (!Hasprivs(player) && GoodObject(exit_m) && is_dbref(direction)
! && (Source(exit_m) != Location(player)))
! exit_m = NOTHING;
switch (exit_m) {
case NOTHING:
/* try to force the object */
--- 370,383 ----
if (DO_GLOBALS && (type == 1))
exit_m =
match_result(player, direction, TYPE_EXIT,
! MAT_EXIT | MAT_GLOBAL | MAT_CHECK_KEYS);
else if (DO_GLOBALS && (type == 2))
exit_m =
match_result(player, direction, TYPE_EXIT,
! MAT_EXIT | MAT_REMOTES | MAT_CHECK_KEYS);
else
exit_m =
! match_result(player, direction, TYPE_EXIT, MAT_EXIT | MAT_CHECK_KEYS);
switch (exit_m) {
case NOTHING:
/* try to force the object */
***************
*** 432,438 ****
enter_room(player, var_dest, 0);
/* Move the followers if the leader is elsewhere */
if (Location(player) != loc)
! follower_command(player, loc, ccom);
break;
case TYPE_PLAYER:
--- 428,434 ----
enter_room(player, var_dest, 0);
/* Move the followers if the leader is elsewhere */
if (Location(player) != loc)
! follower_command(player, loc, tprintf("%s #%d", "move", exit_m));
break;
case TYPE_PLAYER:
***************
*** 449,455 ****
safe_tel(player, var_dest, 0);
/* Move the followers if the leader is elsewhere */
if (Location(player) != loc)
! follower_command(player, loc, ccom);
break;
case TYPE_EXIT:
notify(player, T("This feature coming soon."));
--- 445,451 ----
safe_tel(player, var_dest, 0);
/* Move the followers if the leader is elsewhere */
if (Location(player) != loc)
! follower_command(player, loc, tprintf("%s #%d", "move", exit_m));
break;
case TYPE_EXIT:
notify(player, T("This feature coming soon."));
***************
*** 663,683 ****
{
dbref thing;
dbref loc;
! long match_flags = MAT_CHECK_KEYS | MAT_NEIGHBOR | MAT_EXIT | MAT_ENGLISH;
! if (is_alias || Hasprivs(player))
! match_flags |= MAT_ABSOLUTE; /* necessary for enter aliases to work */
if ((thing = noisy_match_result(player, what, TYPE_THING, match_flags))
! == NOTHING) {
! /* notify(player,T ("I don't see that here.")); */
return;
! }
switch (Typeof(thing)) {
case TYPE_ROOM:
case TYPE_EXIT:
notify(player, T("Permission denied."));
break;
default:
/* the object must pass the lock. Also, the thing being entered */
/* has to be controlled, or must be enter_ok */
if (!(((Flags(thing) & ENTER_OK) || controls(player, thing)) &&
--- 659,684 ----
{
dbref thing;
dbref loc;
! long match_flags =
! MAT_CHECK_KEYS | MAT_NEIGHBOR | MAT_EXIT | MAT_ENGLISH | MAT_ABSOLUTE;
if ((thing = noisy_match_result(player, what, TYPE_THING, match_flags))
! == NOTHING)
return;
!
switch (Typeof(thing)) {
case TYPE_ROOM:
case TYPE_EXIT:
notify(player, T("Permission denied."));
break;
default:
+ /* Remember the current room */
+ loc = Location(player);
+ /* Only privileged players may enter something remotely */
+ if ((Location(thing) != loc) && !Hasprivs(player)) {
+ notify(player, T("I don't see that here."));
+ return;
+ }
/* the object must pass the lock. Also, the thing being entered */
/* has to be controlled, or must be enter_ok */
if (!(((Flags(thing) & ENTER_OK) || controls(player, thing)) &&
***************
*** 691,703 ****
notify(player, T("Sorry, you must remain beside yourself!"));
return;
}
- /* Remember the current room */
- loc = Location(player);
/* Move the leader */
safe_tel(player, thing, 0);
/* Move the followers if the leader is elsewhere */
if (Location(player) != loc)
! follower_command(player, loc, ccom);
break;
}
}
--- 692,702 ----
notify(player, T("Sorry, you must remain beside yourself!"));
return;
}
/* Move the leader */
safe_tel(player, thing, 0);
/* Move the followers if the leader is elsewhere */
if (Location(player) != loc)
! follower_command(player, loc, tprintf("%s #%d", "enter", thing));
break;
}
}
***************
*** 717,723 ****
}
enter_room(player, Location(loc), 0);
if (Location(player) != loc)
! follower_command(player, loc, ccom);
}
dbref
--- 716,722 ----
}
enter_room(player, Location(loc), 0);
if (Location(player) != loc)
! follower_command(player, loc, (char *) "leave");
}
dbref
***************
*** 1192,1198 ****
--- 1191,1201 ----
ATTR *a;
char *s, *sp;
char tbuf1[BUFFER_LEN];
+ char combuf[BUFFER_LEN];
+ if (!com || !*com)
+ return;
+ strcpy(combuf, com);
a = atr_get_noparent(leader, "FOLLOWERS");
if (!a)
return; /* No followers */
***************
*** 1207,1213 ****
See_All(follower))) {
/* This is a follower who was in the room with the leader. Follow. */
notify_format(follower, T("You follow %s."), Name(leader));
! process_command(follower, com, follower, 0);
}
}
}
--- 1210,1216 ----
See_All(follower))) {
/* This is a follower who was in the room with the leader. Follow. */
notify_format(follower, T("You follow %s."), Name(leader));
! process_command(follower, combuf, follower, 0);
}
}
}
*** 1_7_4.138/src/match.c Tue, 03 Jul 2001 13:25:37 -0500 dunemush (pennmush/c/2_match.c 1.22 660)
--- 1_7_4.157(w)/src/match.c Thu, 06 Sep 2001 10:40:58 -0500 dunemush (pennmush/c/2_match.c 1.24 660)
***************
*** 463,471 ****
if (!IsRoom(loc))
return NOTHING;
absolute = match_absolute(match_name);
- if (!controls(match_who, absolute)) {
- absolute = NOTHING;
- }
DOLIST(exit_tmp, Exits(loc)) {
if (exit_tmp == absolute) {
the_match = exit_tmp;
--- 463,468 ----
*** 1_7_4.138/src/ident.c Sat, 28 Jul 2001 09:05:37 -0500 dunemush (pennmush/c/8_ident.c 1.19.1.3 660)
--- 1_7_4.157(w)/src/ident.c Thu, 06 Sep 2001 10:40:58 -0500 dunemush (pennmush/c/8_ident.c 1.19.1.4 660)
***************
*** 251,264 ****
#endif
{
ident_t *id;
- int res;
#ifndef WIN32
int tmperrno;
#endif
- fd_set rs, ws, es;
char host[NI_MAXHOST];
union sockaddr_u myinterface;
- struct timeval to;
if ((id = (ident_t *) malloc(sizeof(*id))) == 0)
return 0;
--- 251,261 ----
*** 1_7_4.138/src/game.c Sat, 07 Jul 2001 15:24:04 -0500 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.3 660)
--- 1_7_4.157(w)/src/game.c Thu, 06 Sep 2001 10:40:58 -0500 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4 660)
***************
*** 110,119 ****
static FILE *db_open_write _((const char *filename));
static void db_close _((FILE * f));
void do_readcache _((dbref player));
- void set_interp _((dbref player, dbref cause, char const *obj,
- char const *attrib, char const *val, int from_port));
- int test_set _((dbref player, dbref cause, char const *command,
- char *arg1, char *arg2, int from_port));
char **argv_hack _((dbref player, dbref cause, char const *arg,
char *fargs[], int eflags));
int check_alias _((const char *command, const char *list));
--- 110,115 ----
*** 1_7_4.138/src/funstr.c Mon, 18 Jun 2001 10:36:58 -0500 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.5 660)
--- 1_7_4.157(w)/src/funstr.c Thu, 06 Sep 2001 10:40:58 -0500 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6 660)
***************
*** 179,194 ****
{
char amax[BUFFER_LEN];
char *c;
! int j;
!
! strcpy(amax, remove_markup(args[0]));
for (j = 1; j < nargs; j++) {
! c = remove_markup(args[j]);
! if (strcmp(amax, c) < 0)
! strcpy(amax, c);
}
! safe_str(amax, buff, bp);
}
/* ARGSUSED */
--- 179,197 ----
{
char amax[BUFFER_LEN];
char *c;
! int j, m = 0;
! Size_t len;
! c = remove_markup(args[0], &len);
! memcpy(amax, c, len);
for (j = 1; j < nargs; j++) {
! c = remove_markup(args[j], &len);
! if (strcmp(amax, c) < 0) {
! memcpy(amax, c, len);
! m = j;
! }
}
! safe_str(args[m], buff, bp);
}
/* ARGSUSED */
***************
*** 196,210 ****
{
char amin[BUFFER_LEN];
char *c;
! int j;
! strcpy(amin, remove_markup(args[0]));
for (j = 1; j < nargs; j++) {
! c = remove_markup(args[j]);
! if (strcmp(amin, c) > 0)
! strcpy(amin, c);
}
! safe_str(amin, buff, bp);
}
/* ARGSUSED */
--- 199,217 ----
{
char amin[BUFFER_LEN];
char *c;
! int j, m = 0;
! Size_t len;
! c = remove_markup(args[0], &len);
! memcpy(amin, c, len);
for (j = 1; j < nargs; j++) {
! c = remove_markup(args[j], &len);
! if (strcmp(amin, c) > 0) {
! memcpy(amin, c, len);
! m = j;
! }
}
! safe_str(args[m], buff, bp);
}
/* ARGSUSED */
***************
*** 354,363 ****
FUNCTION(fun_comp)
{
int x;
! char left[BUFFER_LEN];
! strcpy(left, remove_markup(args[0]));
! x = strcmp(left, remove_markup(args[1]));
if (x > 0)
safe_chr('1', buff, bp);
else if (x < 0)
--- 361,372 ----
FUNCTION(fun_comp)
{
int x;
! char left[BUFFER_LEN], *t;
! int len;
! t = remove_markup(args[0], &len);
! memcpy(left, t, len);
! x = strcmp(left, remove_markup(args[1], NULL));
if (x > 0)
safe_chr('1', buff, bp);
else if (x < 0)
***************
*** 369,378 ****
/* ARGSUSED */
FUNCTION(fun_pos)
{
char *pos;
! pos = strstr(args[1], args[0]);
if (pos)
! safe_integer(pos - args[1] + 1, buff, bp);
else
safe_str("#-1", buff, bp);
}
--- 378,392 ----
/* ARGSUSED */
FUNCTION(fun_pos)
{
+ char tbuf[BUFFER_LEN];
char *pos;
! Size_t len;
!
! pos = remove_markup(args[1], &len);
! memcpy(tbuf, pos, len);
! pos = strstr(tbuf, remove_markup(args[0], NULL));
if (pos)
! safe_integer(pos - tbuf + 1, buff, bp);
else
safe_str("#-1", buff, bp);
}
***************
*** 380,387 ****
/* ARGSUSED */
FUNCTION(fun_strmatch)
{
/* matches a wildcard pattern for an _entire_ string */
! safe_boolean(quick_wild(args[1], args[0]), buff, bp);
}
/* ARGSUSED */
--- 394,407 ----
/* ARGSUSED */
FUNCTION(fun_strmatch)
{
+ char tbuf[BUFFER_LEN];
+ char *t;
+ Size_t len;
/* matches a wildcard pattern for an _entire_ string */
!
! t = remove_markup(args[0], &len);
! memcpy(tbuf, t, len);
! safe_boolean(quick_wild(remove_markup(args[1], NULL), tbuf), buff, bp);
}
/* ARGSUSED */
***************
*** 653,658 ****
--- 673,679 ----
char *oldbp;
char start, end;
char letters[BUFFER_LEN];
+ Size_t len;
if (nargs >= 3) {
if (!delim_check(buff, bp, nargs, args, 3, &start))
***************
*** 679,685 ****
tptr[1] = wenv[1];
wenv[1] = place;
! strcpy(letters, remove_markup(args[1]));
lp = trim_space_sep(letters, ' ');
if (nargs >= 3) {
--- 700,707 ----
tptr[1] = wenv[1];
wenv[1] = place;
! ap = remove_markup(args[1], &len);
! memcpy(letters, ap, len);
lp = trim_space_sep(letters, ' ');
if (nargs >= 3) {
***************
*** 1187,1193 ****
char *cp;
! cp = remove_markup(args[0]);
safe_str(cp, buff, bp);
}
--- 1209,1215 ----
char *cp;
! cp = remove_markup(args[0], NULL);
safe_str(cp, buff, bp);
}
*** 1_7_4.138/src/funmisc.c Sat, 07 Jul 2001 21:06:09 -0500 dunemush (pennmush/c/14_funmisc.c 1.28 660)
--- 1_7_4.157(w)/src/funmisc.c Thu, 06 Sep 2001 10:40:58 -0500 dunemush (pennmush/c/14_funmisc.c 1.30 660)
***************
*** 206,211 ****
--- 206,212 ----
unsigned int die;
unsigned int count;
unsigned int total = 0;
+ int show_all = 0, first = 1;
if (!is_uinteger(args[0]) || !is_uinteger(args[1])) {
safe_str(T(e_uints), buff, bp);
***************
*** 213,230 ****
}
n = parse_uinteger(args[0]);
die = parse_uinteger(args[1]);
if (n == 0 || n > 20) {
safe_str(T("#-1 NUMBER OUT OF RANGE"), buff, bp);
return;
}
! for (count = 0; count < n; count++)
! total += get_random_long(1, die);
! safe_str(unparse_uinteger(total), buff, bp);
}
-
/* ARGSUSED */
FUNCTION(fun_switch)
{
--- 214,242 ----
}
n = parse_uinteger(args[0]);
die = parse_uinteger(args[1]);
+ if (nargs == 3)
+ show_all = parse_boolean(args[2]);
if (n == 0 || n > 20) {
safe_str(T("#-1 NUMBER OUT OF RANGE"), buff, bp);
return;
}
! if (show_all) {
! for (count = 0; count < n; count++) {
! if (first)
! first = 0;
! else
! safe_chr(' ', buff, bp);
! safe_str(unparse_uinteger(get_random_long(1, die)), buff, bp);
! }
! } else {
! for (count = 0; count < n; count++)
! total += get_random_long(1, die);
! safe_str(unparse_uinteger(total), buff, bp);
! }
}
/* ARGSUSED */
FUNCTION(fun_switch)
{
***************
*** 378,384 ****
tbuf1[2] = '\0';
tbuf1[3] = '\0';
p = tbuf1;
! q = upcasestr(remove_markup(str));
/* First character is just copied */
*p = *q++;
/* Special case for PH->F */
--- 390,396 ----
tbuf1[2] = '\0';
tbuf1[3] = '\0';
p = tbuf1;
! q = upcasestr(remove_markup(str, NULL));
/* First character is just copied */
*p = *q++;
/* Special case for PH->F */
*** 1_7_4.138/src/funlist.c Thu, 19 Jul 2001 14:15:24 -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.3 660)
--- 1_7_4.157(w)/src/funlist.c Thu, 06 Sep 2001 10:40:57 -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)
***************
*** 2471,2477 ****
re_subpatterns = subpatterns;
process_expression(buff, bp, &obp, executor, caller, enactor,
PE_DEFAULT | PE_DOLLAR, PT_DEFAULT, pe_info);
! if (*bp == oldbp && pe_info->fun_invocations == funccount)
break;
oldbp = *bp;
funccount = pe_info->fun_invocations;
--- 2471,2478 ----
re_subpatterns = subpatterns;
process_expression(buff, bp, &obp, executor, caller, enactor,
PE_DEFAULT | PE_DOLLAR, PT_DEFAULT, pe_info);
! if ((*bp == (buff + BUFFER_LEN - 1))
! && (pe_info->fun_invocations == funccount))
break;
oldbp = *bp;
funccount = pe_info->fun_invocations;
*** 1_7_4.138/src/fundb.c Thu, 19 Jul 2001 14:15:24 -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.3 660)
--- 1_7_4.157(w)/src/fundb.c Thu, 06 Sep 2001 10:40:57 -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)
***************
*** 1484,1490 ****
safe_str(T(e_perm), buff, bp);
return;
}
! safe_dbref(do_clone(executor, args[0], 0), buff, bp);
}
--- 1484,1490 ----
safe_str(T(e_perm), buff, bp);
return;
}
! safe_dbref(do_clone(executor, args[0], NULL, 0), buff, bp);
}
*** 1_7_4.138/src/function.c Thu, 19 Jul 2001 14:15:24 -0500 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.5 660)
--- 1_7_4.157(w)/src/function.c Thu, 06 Sep 2001 10:40:57 -0500 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.6 660)
***************
*** 210,216 ****
{"DECRYPT", fun_decrypt, 2, 2, FN_REG},
{"DEFAULT", fun_default, 2, 2, FN_NOPARSE},
{"DELETE", fun_delete, 3, 3, FN_REG},
! {"DIE", fun_die, 2, 2, FN_REG},
{"DIG", fun_dig, 1, 3, FN_REG},
{"DIST2D", fun_dist2d, 4, 4, FN_REG},
{"DIST3D", fun_dist3d, 6, 6, FN_REG},
--- 210,216 ----
{"DECRYPT", fun_decrypt, 2, 2, FN_REG},
{"DEFAULT", fun_default, 2, 2, FN_NOPARSE},
{"DELETE", fun_delete, 3, 3, FN_REG},
! {"DIE", fun_die, 2, 3, FN_REG},
{"DIG", fun_dig, 1, 3, FN_REG},
{"DIST2D", fun_dist2d, 4, 4, FN_REG},
{"DIST3D", fun_dist3d, 6, 6, FN_REG},
*** 1_7_4.138/src/flags.c Thu, 19 Jul 2001 14:15:24 -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.2 660)
--- 1_7_4.157(w)/src/flags.c Thu, 06 Sep 2001 10:40:57 -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)
***************
*** 142,148 ****
#endif
{"SUSPECT", 's', TYPE_PLAYER, PLAYER_SUSPECT, F_WIZARD | F_MDARK,
F_WIZARD | F_MDARK},
! {"PARANOID", 'p', TYPE_PLAYER, PLAYER_PARANOID, F_ANY, F_ANY},
{"MONITOR", 'M', TYPE_THING, THING_LISTEN, F_ANY, F_ANY},
{"DESTROY_OK", 'd', TYPE_THING, THING_DEST_OK, F_ANY, F_ANY},
--- 142,149 ----
#endif
{"SUSPECT", 's', TYPE_PLAYER, PLAYER_SUSPECT, F_WIZARD | F_MDARK,
F_WIZARD | F_MDARK},
! {"PARANOID", 'p', TYPE_PLAYER, PLAYER_PARANOID, F_ANY | F_ODARK,
! F_ANY | F_ODARK},
{"MONITOR", 'M', TYPE_THING, THING_LISTEN, F_ANY, F_ANY},
{"DESTROY_OK", 'd', TYPE_THING, THING_DEST_OK, F_ANY, F_ANY},
*** 1_7_4.138/src/extchat.c Sat, 07 Jul 2001 15:24:04 -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.7 660)
--- 1_7_4.157(w)/src/extchat.c Thu, 06 Sep 2001 10:40:57 -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)
***************
*** 718,731 ****
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) && onchannel(player, p)) {
! if (!*chan)
*chan = p;
! count++;
}
}
switch (count) {
--- 718,733 ----
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++;
! }
}
}
switch (count) {
***************
*** 944,952 ****
notify(player, T("Guests are not allowed to join channels."));
return;
}
switch (find_channel_partial_off(name, &chan, player)) {
case CMATCH_NONE:
! notify(player, T("CHAT: I don't recognize that channel."));
return;
case CMATCH_AMBIG:
notify(player, T("CHAT: I don't know which channel you mean."));
--- 946,960 ----
notify(player, T("Guests are not allowed to join channels."));
return;
}
+
+
switch (find_channel_partial_off(name, &chan, player)) {
case CMATCH_NONE:
! if (find_channel_partial_on(name, &chan, player))
! notify_format(player, T("CHAT: You are already on channel <%s>"),
! ChanName(chan));
! else
! notify(player, T("CHAT: I don't recognize that channel."));
return;
case CMATCH_AMBIG:
notify(player, T("CHAT: I don't know which channel you mean."));
***************
*** 999,1005 ****
}
switch (find_channel_partial_on(name, &chan, player)) {
case CMATCH_NONE:
! notify(player, T("CHAT: I don't recognize that channel."));
return;
case CMATCH_AMBIG:
notify(player, T("CHAT: I don't know which channel you mean."));
--- 1007,1018 ----
}
switch (find_channel_partial_on(name, &chan, player)) {
case CMATCH_NONE:
! if (find_channel_partial_off(name, &chan, player)
! && Chan_Can_See(chan, player))
! notify_format(player, T("CHAT: You are not on channel <%s>"),
! ChanName(chan));
! else
! notify(player, T("CHAT: I don't recognize that channel."));
return;
case CMATCH_AMBIG:
notify(player, T("CHAT: I don't know which channel you mean."));
***************
*** 1035,1044 ****
notify(player, T("Don't you have anything to say?"));
return 0;
}
if (find_channel_partial_on(name, &c, player) == CMATCH_NONE) {
! if (source)
! notify(player, T("No such channel."));
! return 0;
}
do_chat(player, c, msg);
return 1;
--- 1048,1062 ----
notify(player, T("Don't you have anything to say?"));
return 0;
}
+ /* First try to find a channel that the player's on. If that fails,
+ * look for one that the player's not on.
+ */
if (find_channel_partial_on(name, &c, player) == CMATCH_NONE) {
! if (find_channel(name, &c) == CMATCH_NONE) {
! if (source)
! notify(player, T("No such channel."));
! return 0;
! }
}
do_chat(player, c, msg);
return 1;
*** 1_7_4.138/src/create.c Mon, 18 Jun 2001 10:36:58 -0500 dunemush (pennmush/c/27_create.c 1.27.1.2 660)
--- 1_7_4.157(w)/src/create.c Thu, 06 Sep 2001 10:40:57 -0500 dunemush (pennmush/c/27_create.c 1.27.1.3 660)
***************
*** 480,488 ****
}
dbref
! do_clone(player, name, preserve)
dbref player;
char *name;
int preserve;
{
dbref clone, thing;
--- 480,489 ----
}
dbref
! do_clone(player, name, newname, preserve)
dbref player;
char *name;
+ char *newname;
int preserve;
{
dbref clone, thing;
***************
*** 492,497 ****
--- 493,502 ----
notify(player, T("Guests are not allowed to build."));
return NOTHING;
}
+ if (*newname && !ok_name(newname)) {
+ notify(player, T("That is not a reasonable name."));
+ return NOTHING;
+ }
thing = noisy_match_result(player, name, NOTYPE, MAT_EVERYTHING);
if ((thing == NOTHING))
return NOTHING;
***************
*** 524,530 ****
Chanlist(clone) = NULL;
#endif
Name(clone) = NULL;
! set_name(clone, Name(thing));
s_Pennies(clone, Pennies(thing));
atr_cpy(clone, thing);
{
--- 529,538 ----
Chanlist(clone) = NULL;
#endif
Name(clone) = NULL;
! if (*newname)
! set_name(clone, newname);
! else
! set_name(clone, Name(thing));
s_Pennies(clone, Pennies(thing));
atr_cpy(clone, thing);
{
***************
*** 589,595 ****
clone = new_object();
memcpy(REFDB(clone), REFDB(thing), sizeof(struct object));
Name(clone) = NULL;
! set_name(clone, Name(thing));
atr_cpy(clone, thing);
{
struct lock_list *ll;
--- 597,606 ----
clone = new_object();
memcpy(REFDB(clone), REFDB(thing), sizeof(struct object));
Name(clone) = NULL;
! if (*newname)
! set_name(clone, newname);
! else
! set_name(clone, Name(thing));
atr_cpy(clone, thing);
{
struct lock_list *ll;
***************
*** 646,652 ****
return NOTHING;
}
strcpy(dbnum, unparse_dbref(Location(thing)));
! clone = do_real_open(player, Name(thing), dbnum, NOTHING);
if (!GoodObject(clone))
return NOTHING;
else {
--- 657,666 ----
return NOTHING;
}
strcpy(dbnum, unparse_dbref(Location(thing)));
! if (*newname)
! clone = do_real_open(player, newname, dbnum, NOTHING);
! else
! clone = do_real_open(player, Name(thing), dbnum, NOTHING);
if (!GoodObject(clone))
return NOTHING;
else {
*** 1_7_4.138/src/conf.c Sat, 07 Jul 2001 21:06:09 -0500 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.2 660)
--- 1_7_4.157(w)/src/conf.c Thu, 06 Sep 2001 10:40:57 -0500 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3 660)
***************
*** 1208,1213 ****
--- 1208,1219 ----
notify(player, T(" DNS and ident lookups are handled by the MUSH process."));
#endif
+ #ifdef NT_TCP
+ notify(player, T(" Windows NT native TCP/IP networking functions in use."));
+ #else
+ notify(player, T(" BSD sockets networking in use."));
+ #endif
+
notify(player, T(" Floating point functions are enabled."));
#ifdef FUNCTION_SIDE_EFFECTS
*** 1_7_4.138/src/command.c Mon, 09 Jul 2001 09:04:12 -0500 dunemush (pennmush/c/36_command.c 1.56.1.1.1.1.1.1.1.2.1.1.1.1.1.1 660)
--- 1_7_4.157(w)/src/command.c Thu, 06 Sep 2001 10:40:57 -0500 dunemush (pennmush/c/36_command.c 1.56.1.1.1.1.1.1.1.2.1.1.1.1.1.5 660)
***************
*** 40,46 ****
HASHTAB htab_command;
HASHTAB htab_reserved_aliases;
- void test_command _((dbref player, switch_mask *sw, char *args));
static char *command_isattr _((char *command));
static int command_check _((dbref player, COMMAND_INFO *cmd));
static int switch_find _((COMMAND_INFO *cmd, char *sw));
--- 40,45 ----
***************
*** 68,74 ****
{"@CEMIT", "NOEVAL NOISY", cmd_cemit,
CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0, 0},
{"@CHANNEL",
! "LIST ADD DELETE RENAME NAME PRIVS QUIET NOISY DECOMPILE DESC CHOWN WIPE MUTE UNMUTE GAG UNGAG HIDE UNHIDE WHAT TITLE BRIEF",
cmd_channel,
CMD_T_ANY | CMD_T_SWITCHES | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0, 0},
{"@CHAT", NULL, cmd_chat, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0,
--- 67,73 ----
{"@CEMIT", "NOEVAL NOISY", cmd_cemit,
CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0, 0},
{"@CHANNEL",
! "LIST ADD DELETE RENAME NAME PRIVS QUIET NOISY DECOMPILE DESCRIBE CHOWN WIPE MUTE UNMUTE GAG UNGAG HIDE UNHIDE WHAT TITLE BRIEF",
cmd_channel,
CMD_T_ANY | CMD_T_SWITCHES | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0, 0},
{"@CHAT", NULL, cmd_chat, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0,
***************
*** 89,95 ****
0, 0, 0},
{"@CREATE", NULL, cmd_create, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED,
0, 0, 0},
! {"@CLONE", "PRESERVE", cmd_clone, CMD_T_ANY | CMD_T_NOGAGGED, 0, 0, 0},
#ifdef CHAT_SYSTEM
{"@CLOCK", "JOIN SPEAK MOD SEE HIDE", cmd_clock,
--- 88,95 ----
0, 0, 0},
{"@CREATE", NULL, cmd_create, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED,
0, 0, 0},
! {"@CLONE", "PRESERVE", cmd_clone, CMD_T_ANY | CMD_T_NOGAGGED | CMD_T_EQSPLIT,
! 0, 0, 0},
#ifdef CHAT_SYSTEM
{"@CLOCK", "JOIN SPEAK MOD SEE HIDE", cmd_clock,
***************
*** 160,166 ****
#ifdef MAIL_ALIASES
{"@MALIAS",
! "SET CREATE DESTROY DESC RENAME STATS CHOWN NUKE ADD REMOVE LIST ALL MEMBERS USEFLAG SEEFLAG",
cmd_malias, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0, 0},
#endif
#endif
--- 160,166 ----
#ifdef MAIL_ALIASES
{"@MALIAS",
! "SET CREATE DESTROY DESCRIBE RENAME STATS CHOWN NUKE ADD REMOVE LIST ALL WHO MEMBERS USEFLAG SEEFLAG",
cmd_malias, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0, 0},
#endif
#endif
*** 1_7_4.138/src/cmds.c Fri, 11 May 2001 15:40:56 -0500 dunemush (pennmush/c/37_cmds.c 1.33.1.1.1.2.1.2 660)
--- 1_7_4.157(w)/src/cmds.c Thu, 06 Sep 2001 10:40:57 -0500 dunemush (pennmush/c/37_cmds.c 1.33.1.1.1.2.1.2.2.3 660)
***************
*** 125,131 ****
do_chan_admin(player, arg_left, "n", 4);
else if (SW_ISSET(sw, SWITCH_DECOMPILE))
do_chan_decompile(player, arg_left, SW_ISSET(sw, SWITCH_BRIEF));
! else if (SW_ISSET(sw, SWITCH_DESC))
do_chan_desc(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_TITLE))
do_chan_title(player, arg_left, arg_right);
--- 125,131 ----
do_chan_admin(player, arg_left, "n", 4);
else if (SW_ISSET(sw, SWITCH_DECOMPILE))
do_chan_decompile(player, arg_left, SW_ISSET(sw, SWITCH_BRIEF));
! else if (SW_ISSET(sw, SWITCH_DESCRIBE))
do_chan_desc(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_TITLE))
do_chan_title(player, arg_left, arg_right);
***************
*** 224,232 ****
COMMAND (cmd_clone) {
if (SW_ISSET(sw, SWITCH_PRESERVE))
! do_clone(player, arg_left, SWITCH_PRESERVE);
else
! do_clone(player, arg_left, SWITCH_NONE);
}
#ifdef CHAT_SYSTEM
--- 224,232 ----
COMMAND (cmd_clone) {
if (SW_ISSET(sw, SWITCH_PRESERVE))
! do_clone(player, arg_left, arg_right, SWITCH_PRESERVE);
else
! do_clone(player, arg_left, arg_right, SWITCH_NONE);
}
#ifdef CHAT_SYSTEM
***************
*** 520,526 ****
do_malias_list(player);
else if (SW_ISSET(sw, SWITCH_ALL))
do_malias_all(player);
! else if (SW_ISSET(sw, SWITCH_MEMBERS))
do_malias_members(player, arg_left);
else if (SW_ISSET(sw, SWITCH_CREATE))
do_malias_create(player, arg_left, arg_right);
--- 520,526 ----
do_malias_list(player);
else if (SW_ISSET(sw, SWITCH_ALL))
do_malias_all(player);
! else if (SW_ISSET(sw, SWITCH_MEMBERS) || SW_ISSET(sw, SWITCH_WHO))
do_malias_members(player, arg_left);
else if (SW_ISSET(sw, SWITCH_CREATE))
do_malias_create(player, arg_left, arg_right);
***************
*** 532,538 ****
do_malias_add(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_REMOVE))
do_malias_remove(player, arg_left, arg_right);
! else if (SW_ISSET(sw, SWITCH_DESC))
do_malias_desc(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_RENAME))
do_malias_rename(player, arg_left, arg_right);
--- 532,538 ----
do_malias_add(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_REMOVE))
do_malias_remove(player, arg_left, arg_right);
! else if (SW_ISSET(sw, SWITCH_DESCRIBE))
do_malias_desc(player, arg_left, arg_right);
else if (SW_ISSET(sw, SWITCH_RENAME))
do_malias_rename(player, arg_left, arg_right);
*** 1_7_4.138/src/bsd.c Fri, 20 Jul 2001 11:11:16 -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.9 660)
--- 1_7_4.157(w)/src/bsd.c Thu, 06 Sep 2001 10:40:56 -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,11 ****
/* bsd.c */
- /* 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 */
-
#include "copyrite.h"
#include "config.h"
--- 1,5 ----
***************
*** 1027,1034 ****
{203, "Ë"},
{232, "è"},
{233, "é"},
! {224, "ê"},
! {225, "ë"},
/* Accented i's */
--- 1021,1028 ----
{203, "Ë"},
{232, "è"},
{233, "é"},
! {234, "ê"},
! {235, "ë"},
/* Accented i's */
***************
*** 4528,4534 ****
notify(player, T("Why would you want to do that?"));
return;
}
! strncpy(buf, remove_markup(message), DOING_LEN - 1);
/* now smash undesirable characters and truncate */
for (i = 0; i < DOING_LEN; i++) {
--- 4522,4528 ----
notify(player, T("Why would you want to do that?"));
return;
}
! strncpy(buf, remove_markup(message, NULL), DOING_LEN - 1);
/* now smash undesirable characters and truncate */
for (i = 0; i < DOING_LEN; i++) {
***************
*** 4562,4568 ****
notify(player, T("Who do you think you are, Gallup?"));
return;
}
! strncpy(poll_msg, remove_markup(message), DOING_LEN - 1);
for (i = 0; i < DOING_LEN; i++) {
if ((poll_msg[i] == '\r') || (poll_msg[i] == '\n') ||
(poll_msg[i] == '\t') || (poll_msg[i] == BEEP_CHAR))
--- 4556,4562 ----
notify(player, T("Who do you think you are, Gallup?"));
return;
}
! strncpy(poll_msg, remove_markup(message, NULL), DOING_LEN - 1);
for (i = 0; i < DOING_LEN; i++) {
if ((poll_msg[i] == '\r') || (poll_msg[i] == '\n') ||
(poll_msg[i] == '\t') || (poll_msg[i] == BEEP_CHAR))
***************
*** 5377,5382 ****
--- 5371,5378 ----
union sockaddr_u addr;
int nLen, addr_len;
struct hostname_info *hi;
+ char *socket_ident;
+ char *chp;
/* int i; */
BOOL b;
***************
*** 5403,5411 ****
/* */
bp = tbuf2;
! safe_str((const char *) ip_convert(&addr.addr, nLen), tbuf2, &bp);
*bp = '\0';
bp = tbuf1;
addr_len = sizeof(addr);
hi = hostname_convert(&addr.addr, addr_len);
safe_str(hi ? hi->hostname : "", tbuf1, &bp);
--- 5399,5421 ----
/* */
bp = tbuf2;
! hi = ip_convert(&addr.addr, addr_len);
! safe_str(hi ? hi->hostname : "", tbuf2, &bp);
*bp = '\0';
bp = tbuf1;
+ if (USE_IDENT) {
+ int timeout = IDENT_TIMEOUT;
+ socket_ident = ident_id(socketClient, &timeout);
+ if (socket_ident) {
+ /* Truncate at first non-printable character */
+ for (chp = socket_ident; *chp && isprint(*chp); chp++) ;
+ *chp = '\0';
+ safe_str(socket_ident, tbuf1, &bp);
+ safe_chr('@', tbuf1, &bp);
+ free(socket_ident);
+ }
+ }
+
addr_len = sizeof(addr);
hi = hostname_convert(&addr.addr, addr_len);
safe_str(hi ? hi->hostname : "", tbuf1, &bp);
*** 1_7_4.138/hdrs/version.h Sat, 28 Jul 2001 09:05:37 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.7 660)
--- 1_7_4.157(w)/hdrs/version.h Thu, 06 Sep 2001 10:41:01 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9 660)
***************
*** 1,2 ****
! #define VERSION "PennMUSH version 1.7.4 patchlevel 8 [07/22/2001]"
! #define SHORTVN "PennMUSH 1.7.4p8"
--- 1,2 ----
! #define VERSION "PennMUSH version 1.7.4 patchlevel 9 [09/04/2001]"
! #define SHORTVN "PennMUSH 1.7.4p9"
*** 1_7_4.138/hdrs/externs.h Tue, 03 Jul 2001 13:25:37 -0500 dunemush (pennmush/d/16_externs.h 1.1.1.53.1.2.1.6 660)
--- 1_7_4.157(w)/hdrs/externs.h Thu, 06 Sep 2001 10:40:59 -0500 dunemush (pennmush/d/16_externs.h 1.1.1.53.1.2.1.8 660)
***************
*** 161,167 ****
extern void do_open _((dbref player, const char *direction, char **links));
extern void do_link _((dbref player, const char *name, const char *room_name));
extern void do_unlink _((dbref player, const char *name));
! extern dbref do_clone _((dbref player, char *name, int preserve));
/* From game.c */
extern void report _((void));
--- 161,168 ----
extern void do_open _((dbref player, const char *direction, char **links));
extern void do_link _((dbref player, const char *name, const char *room_name));
extern void do_unlink _((dbref player, const char *name));
! extern dbref do_clone
! _((dbref player, char *name, char *newname, int preserve));
/* From game.c */
extern void report _((void));
***************
*** 289,295 ****
#define vsnprintf _vsnprintf
#endif
#endif
! extern char *remove_markup _((const char *orig));
extern char *skip_leading_ansi _((const char *s));
typedef struct {
char text[BUFFER_LEN];
--- 290,296 ----
#define vsnprintf _vsnprintf
#endif
#endif
! extern char *remove_markup _((const char *orig, Size_t * stripped_len));
extern char *skip_leading_ansi _((const char *s));
typedef struct {
char text[BUFFER_LEN];
*** 1_7_4.138/hdrs/conf.h Sat, 07 Jul 2001 21:06:09 -0500 dunemush (pennmush/d/20_conf.h 1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.5.1.1.1.1.1.1.1.1.1.2.1.1.2.1.2.1 660)
--- 1_7_4.157(w)/hdrs/conf.h Thu, 06 Sep 2001 10:40:59 -0500 dunemush (pennmush/d/20_conf.h 1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.5.1.1.1.1.1.1.1.1.1.2.1.1.2.1.2.2 660)
***************
*** 52,58 ****
/* These CAN be modified, but it's heavily NOT suggested */
#define PUEBLO_SEND "</xch_mudtext><img xch_mode=purehtml><xch_page clear=text><body bgcolor=#000000 fgcolor=#C0C0C0>\n"
! #define PUEBLO_HELLO "This world is Pueblo 1.10 Enhanced. See http://www.chaco.com/pueblo/\r\n"
/*----- intrface.c stuff -----*/
--- 52,58 ----
/* These CAN be modified, but it's heavily NOT suggested */
#define PUEBLO_SEND "</xch_mudtext><img xch_mode=purehtml><xch_page clear=text><body bgcolor=#000000 fgcolor=#C0C0C0>\n"
! #define PUEBLO_HELLO "This world is Pueblo 1.10 Enhanced.\r\n"
/*----- intrface.c stuff -----*/
*** 1_7_4.138/options.h.dist Sat, 30 Jun 2001 08:59:12 -0500 dunemush (pennmush/d/33_options.h. 1.10.1.1.1.1.1.2.1.1.1.1.1.1.1.2 600)
--- 1_7_4.157(w)/options.h.dist Tue, 31 Jul 2001 16:23:22 -0500 dunemush (pennmush/d/33_options.h. 1.10.1.1.1.1.1.2.1.1.1.1.1.1.1.3 600)
***************
*** 133,138 ****
--- 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