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 '. '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 '. '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 p'. 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 p'. 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 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 or @malias/who 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() ! Returns the arc-cosine of , expressed in radians. & ADD() add(,,...) --- 227,238 ---- Returns the absolute value of a number. i.e. ABS(-4) returns 4; ABS(2) returns 2, etc. & ACOS() ! acos() ! Returns the angle that has the given (arc-cosine), with the ! angle expressed in radians. ! ! See HELP COS() for how to convert between radians and degrees. & ADD() add(,,...) *************** *** 322,334 **** This function returns the proper article, "a" or "an", based on whether or not begins with a vowel. & ASIN() ! asin() ! Returns the arc-sine of , expressed in radians. & ATAN() ! atan() ! Returns the arc-tangent of , expressed in radians. & ATRLOCK() atrlock(/[, ]) --- 325,343 ---- This function returns the proper article, "a" or "an", based on whether or not begins with a vowel. & ASIN() ! asin() ! Returns the angle with the given (arc-sine), with the angle ! expressed in radians. ! ! See HELP COS() for how to convert between radians and degrees. & ATAN() ! atan() ! Returns the angle with the given (arc-tangent), with the ! angle expressed in radians. ! ! See HELP COS() for how to convert between radians and degrees. & ATRLOCK() atrlock(/[, ]) *************** *** 572,580 **** See also: convsecs(), time() & COS() ! cos() ! Returns the cosine of , which should be expressed in radians. & PCREATE() pcreate(,) --- 581,595 ---- See also: convsecs(), time() & COS() ! cos() ! Returns the cosine of , 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(,) *************** *** 666,678 **** You say, "abcfgh" & DIE() ! 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( [, [, ]]) --- 681,702 ---- You say, "abcfgh" & DIE() ! 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. + 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( [, [, ]]) *************** *** 756,762 **** If is a dollar sign ($), 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 is a dollar sign ($), 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() + stats() This function returns the breakdown of objects in the database, in a format similar to "@stats". If 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: + + stats() is an alias for lstats(). & LT() lt(,) *************** *** 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() ! Returns the sine of , which should be expressed in radians. & SORT() sort( ...[,][,][,]) --- 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() ! Returns the sine of , which should be expressed in radians. ! ! See HELP COS() for how to convert between radians and degrees. & SORT() sort( ...[,][,][,]) *************** *** 2885,2893 **** brown |fox & TAN() ! tan() ! Returns the tangent of , which should be expressed in radians. & TEL() tel(,) --- 2914,2924 ---- brown |fox & TAN() ! tan() ! Returns the tangent of , which should be expressed in radians. ! ! See HELP COS() for how to convert between radians and degrees. & TEL() tel(,) *** 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 X says, ! # "hi!", or not (producing X says, ""hi!"). chat_strip_quote yes --- 551,558 ---- page_aliases no # Should +whatever "hi! strip the intiial quote and produce X says, ! # "hi!", or not (producing 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 "\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 "\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