[PENNMUSH-ANNOUNCE] 1.7.5-patch08
dunemush@pennmush.org
dunemush at pennmush.org
Thu, 4 Jul 2002 16:15:11 -0500
This is patch08 to PennMUSH 1.7.5. After applying this patch, you will
have version 1.7.5p8
To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
patch -p1 < 1.7.5-patch08
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:
* Added @nspemit and nspemit(). Wizard-only versions of @pemit and
pemit() that don't print nospoof information. Suggested by many people,
most recently Mike Griffiths and Nymeria@M*U*S*H. [SW]
* Help updates. [SW]
* Force the pipes to compression program for database reads and saves to be
block-buffered. [SW]
* @function name=obj/attrib now works, as well as
@function name=obj,attrib [TAP]
* The AF_PREFIXMATCH flag is no longer shown on attributes it's set
on when you examine them.
Fixes:
* A bunch of internal code cleanup, especially around casts. [SW]
* The disconnected room check is skipped on GOING rooms. Suggested
by Philip Mak.
* The dbck check for nameless rooms was only checking disconnected
rooms; now it checks all rooms.
* hasflag() did not work with single-character flag abbreviations.
Report by Mystery8.
* The variable named 'template' in src/strutil.c has been renamed
to avoid clashes with the C++ reserved word. Suggested by Mac@M*U*S*H.
* Improvement to help @filter. Suggested by Philip Mak. [SW]
* Files in the patches directory ending in ~ are ignored
when patches.h is rebuilt. [SW]
* Removed a // comment from strutil.c, as we're still
just following the c89 standard, not c99. Report by
Vadiv@M*U*S*H. [SW]
* make indent now indents the .dst files before the .c ones.
Fixes some spurious warnings from later makes. Suggested by
Vadiv@M*U*S*H. [SW]
* Code cleanup, mostly tprintf() and unneeded header file
checking elimination. [SW]
* Since a Windows header #defines OPAQUE, which conflicts with a
#define for the mush flag of the same name, rename
our #define rather than #undefining the Windows one. [SW]
Prereq: 1.7.5p7
*** 1_7_5.188/Patchlevel Tue, 14 May 2002 23:25:01 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.8 600)
--- 1_7_5.213(w)/Patchlevel Wed, 26 Jun 2002 10:09:31 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.9 600)
***************
*** 1,2 ****
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.5p7
--- 1,2 ----
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.5p8
*** 1_7_5.188/CHANGES.174 Tue, 14 May 2002 21:59:33 -0500 dunemush (pennmush/8_CHANGES 1.219.1.72.1.52 600)
--- 1_7_5.213(w)/CHANGES.174 Wed, 19 Jun 2002 21:50:34 -0500 dunemush (pennmush/8_CHANGES 1.219.1.72.1.65 600)
***************
*** 18,28 ****
==========================================================================
! Version 1.7.4 patchlevel 19 May 6, 2002
Fixes:
* Win32 portability fixes. [EEH]
!
Version 1.7.4 patchlevel 18 May 6, 2002
--- 18,53 ----
==========================================================================
! Version 1.7.4 patchlevel 19 June 14, 2002
+ Minor changes:
+ * Wizards can now unset the WIZARD flag on any thing, whether they
+ own it or not. Suggested by Cerekk@bDv.
+ * Circular zoning is no longer allowed. Fixes part of a bug reported
+ by Philip Mak. [SW]
Fixes:
* Win32 portability fixes. [EEH]
! * grep for 'grep' rather than 'egrep' in restart because in grep 2.5.1,
! egrep is a shell script that exec's grep instead of a link.
! Fix by Vadiv@M*U*S*H.
! * The messages for a possessive get used the object's new location
! instead of its old one. Fixed by Apollo@Restoration.
! * Attempts by unlinked exits to @link an exit could crash.
! * %1 in @areceive was being set to the recipient rather than the giver.
! Fixed. Report by jubjup@trekmush.org
! * @uptime fix for Linux 2.4 kernel. [SW]
! * The @@() function no longer complains about commas. Report by
! Trispis@M*U*S*H. [TAP]
! * @search flags=<flaglist> is now smarter about toggles with the same
! letter and different types. Report by Philip Mak.
! * English-style matching now ignores the type of object being matched.
! This fixes a bug with, e.g., @link my 1st object=me reported by
! Oriens@Alexandria.
! * bound() now listed in the math functions list. Report by Dandy@M*U*S*H.
! * Help fix for member() by Cerekk@bDV TrekMUSH
! * The server can now transparently read mush.cnf (and included) files
! that have Dos- or Mac-style line-endings. Suggested by Paleran.
! * Crash bug in @search fixed. Reported by Philip Mak.
Version 1.7.4 patchlevel 18 May 6, 2002
*** 1_7_5.188/CHANGES Wed, 15 May 2002 22:11:33 -0500 dunemush (pennmush/g/7_CHANGES 1.27.1.36 600)
--- 1_7_5.213(w)/CHANGES Thu, 04 Jul 2002 14:33:55 -0500 dunemush (pennmush/g/7_CHANGES 1.27.1.43 600)
***************
*** 18,23 ****
--- 18,62 ----
==========================================================================
+ Version 1.7.5 patchlevel 8 June 26, 2002
+
+ Minor Changes:
+ * Added @nspemit and nspemit(). Wizard-only versions of @pemit and
+ pemit() that don't print nospoof information. Suggested by many people,
+ most recently Mike Griffiths and Nymeria@M*U*S*H. [SW]
+ * Help updates. [SW]
+ * Force the pipes to compression program for database reads and saves to be
+ block-buffered. [SW]
+ * @function name=obj/attrib now works, as well as
+ @function name=obj,attrib [TAP]
+ * The AF_PREFIXMATCH flag is no longer shown on attributes it's set
+ on when you examine them.
+ Fixes:
+ * A bunch of internal code cleanup, especially around casts. [SW]
+ * The disconnected room check is skipped on GOING rooms. Suggested
+ by Philip Mak.
+ * The dbck check for nameless rooms was only checking disconnected
+ rooms; now it checks all rooms.
+ * hasflag() did not work with single-character flag abbreviations.
+ Report by Mystery8.
+ * The variable named 'template' in src/strutil.c has been renamed
+ to avoid clashes with the C++ reserved word. Suggested by Mac@M*U*S*H.
+ * Improvement to help @filter. Suggested by Philip Mak. [SW]
+ * Files in the patches directory ending in ~ are ignored
+ when patches.h is rebuilt. [SW]
+ * Removed a // comment from strutil.c, as we're still
+ just following the c89 standard, not c99. Report by
+ Vadiv@M*U*S*H. [SW]
+ * make indent now indents the .dst files before the .c ones.
+ Fixes some spurious warnings from later makes. Suggested by
+ Vadiv@M*U*S*H. [SW]
+ * Code cleanup, mostly tprintf() and unneeded header file
+ checking elimination. [SW]
+ * Since a Windows header #defines OPAQUE, which conflicts with a
+ #define for the mush flag of the same name, rename
+ our #define rather than #undefining the Windows one. [SW]
+
+
Version 1.7.5 patchlevel 7 May 14, 2002
Utilities:
*** 1_7_5.188/game/txt/hlp/pennvers.hlp Wed, 15 May 2002 22:11:33 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.1.1.5.1.4.1.1.1.1.1.1.1.7 600)
--- 1_7_5.213(w)/game/txt/hlp/pennvers.hlp Thu, 04 Jul 2002 14:33:58 -0500 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.1.1.5.1.4.1.1.1.1.1.1.1.1.1.5.1.6 600)
***************
*** 1,5 ****
& changes
! & 1.7.5p7
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
can probably be gotten via 'help <name of whatever>'. 'help credits'
--- 1,5 ----
& changes
! & 1.7.5p8
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,56 ----
A list of the patchlevels associated with each release can
be read in 'help patchlevels'.
+ Version 1.7.5 patchlevel 8 June 26, 2002
+
+ Minor Changes:
+ * Added @nspemit and nspemit(). Wizard-only versions of @pemit and
+ pemit() that don't print nospoof information. Suggested by many people,
+ most recently Mike Griffiths and Nymeria@M*U*S*H. [SW]
+ * Help updates. [SW]
+ * Force the pipes to compression program for database reads and saves to be
+ block-buffered. [SW]
+ * @function name=obj/attrib now works, as well as
+ @function name=obj,attrib [TAP]
+ * The AF_PREFIXMATCH flag is no longer shown on attributes it's set
+ on when you examine them.
+ Fixes:
+ * A bunch of internal code cleanup, especially around casts. [SW]
+ * The disconnected room check is skipped on GOING rooms. Suggested
+ by Philip Mak.
+ * The dbck check for nameless rooms was only checking disconnected
+ rooms; now it checks all rooms.
+ * hasflag() did not work with single-character flag abbreviations.
+ Report by Mystery8.
+ * The variable named 'template' in src/strutil.c has been renamed
+ to avoid clashes with the C++ reserved word. Suggested by Mac@M*U*S*H.
+ * Improvement to help @filter. Suggested by Philip Mak. [SW]
+ * Files in the patches directory ending in ~ are ignored
+ when patches.h is rebuilt. [SW]
+ * Removed a // comment from strutil.c, as we're still
+ just following the c89 standard, not c99. Report by
+ Vadiv@M*U*S*H. [SW]
+ * make indent now indents the .dst files before the .c ones.
+ Fixes some spurious warnings from later makes. Suggested by
+ Vadiv@M*U*S*H. [SW]
+ * Code cleanup, mostly tprintf() and unneeded header file
+ checking elimination. [SW]
+ * Since a Windows header #defines OPAQUE, which conflicts with a
+ #define for the mush flag of the same name, rename
+ our #define rather than #undefining the Windows one. [SW]
+
+
+ & 1.7.5p7
Version 1.7.5 patchlevel 7 May 14, 2002
Utilities:
***************
*** 269,279 ****
* Fixes up to 1.7.4p12 merged in.
& 1.7.4p19
! Version 1.7.4 patchlevel 19 May 6, 2002
Fixes:
* Win32 portability fixes. [EEH]
!
& 1.7.4p18
Version 1.7.4 patchlevel 18 May 6, 2002
--- 309,344 ----
* Fixes up to 1.7.4p12 merged in.
& 1.7.4p19
! Version 1.7.4 patchlevel 19 June 14, 2002
+ Minor changes:
+ * Wizards can now unset the WIZARD flag on any thing, whether they
+ own it or not. Suggested by Cerekk@bDv.
+ * Circular zoning is no longer allowed. Fixes part of a bug reported
+ by Philip Mak. [SW]
Fixes:
* Win32 portability fixes. [EEH]
! * grep for 'grep' rather than 'egrep' in restart because in grep 2.5.1,
! egrep is a shell script that exec's grep instead of a link.
! Fix by Vadiv@M*U*S*H.
! * The messages for a possessive get used the object's new location
! instead of its old one. Fixed by Apollo@Restoration.
! * Attempts by unlinked exits to @link an exit could crash.
! * %1 in @areceive was being set to the recipient rather than the giver.
! Fixed. Report by jubjup@trekmush.org
! * @uptime fix for Linux 2.4 kernel. [SW]
! * The @@() function no longer complains about commas. Report by
! Trispis@M*U*S*H. [TAP]
! * @search flags=<flaglist> is now smarter about toggles with the same
! letter and different types. Report by Philip Mak.
! * English-style matching now ignores the type of object being matched.
! This fixes a bug with, e.g., @link my 1st object=me reported by
! Oriens@Alexandria.
! * bound() now listed in the math functions list. Report by Dandy@M*U*S*H.
! * Help fix for member() by Cerekk@bDV TrekMUSH
! * The server can now transparently read mush.cnf (and included) files
! that have Dos- or Mac-style line-endings. Suggested by Paleran.
! * Crash bug in @search fixed. Reported by Philip Mak.
& 1.7.4p18
Version 1.7.4 patchlevel 18 May 6, 2002
***************
*** 5363,5369 ****
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.5: 0, 1, 2, 3, 4, 5, 6, 7
1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
1.7.2: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
--- 5428,5434 ----
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.5: 0, 1, 2, 3, 4, 5, 6, 7, 8
1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
1.7.3: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
1.7.2: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
*** 1_7_5.188/game/txt/hlp/penntop.hlp Wed, 10 Apr 2002 20:36:23 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.2 600)
--- 1_7_5.213(w)/game/txt/hlp/penntop.hlp Mon, 10 Jun 2002 17:36:59 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.3 600)
***************
*** 267,277 ****
Value tiny_booleans=no tiny_booleans=yes Gotcha
0 FALSE FALSE
non-zero number TRUE TRUE
! #<non-negative> TRUE TRUE
! #<negative> FALSE TRUE *
null string FALSE FALSE
0<non-numbers..> TRUE FALSE *
! <non-numbers...> TRUE TRUE
(continued in help boolean3)
& BOOLEAN3
--- 267,277 ----
Value tiny_booleans=no tiny_booleans=yes Gotcha
0 FALSE FALSE
non-zero number TRUE TRUE
! #<non-negative> TRUE FALSE *
! #<negative> FALSE FALSE
null string FALSE FALSE
0<non-numbers..> TRUE FALSE *
! <non-numbers...> TRUE FALSE *
(continued in help boolean3)
& BOOLEAN3
*** 1_7_5.188/game/txt/hlp/pennfunc.hlp Fri, 10 May 2002 22:07:51 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.2 600)
--- 1_7_5.213(w)/game/txt/hlp/pennfunc.hlp Wed, 19 Jun 2002 21:50:39 -0500 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.2 600)
***************
*** 42,47 ****
--- 42,49 ----
Attribute functions: attribute-related manipulations (GET, UFUN)
Bitwise functions: Manipulation of individual bits of numbers (SHL, BOR)
Boolean functions: produce 0 or 1 (false or true) answers (OR, AND)
+ Channel functions: Get information about channels (CTITLE, CWHO)
+ Communication functions: Send messages to objects (PEMIT, OEMIT)
Dbref functions: return dbref info related to objects (LOC, LEXITS)
Floating point functions: floating point math (SIN, ROUND)
Global functions: local MUSH-specific functions defined with @function
***************
*** 92,97 ****
--- 94,109 ----
nor() not() or() t() xor()
See also: BOOLEAN VALUES, @config
+ & Channel functions
+ Channel functions work with the channel system.
+
+ cflags() channels() clock() ctitle() cwho()
+ & Communication functions
+ Communication functions are side-effect functions that send a message
+ to an object or objects.
+
+ cemit() emit() lemit() nspemit() oemit()
+ pemit() remit() zemit()
& Dbref functions
Dbref functions return a dbref or list of dbrefs related to some value
on an object.
***************
*** 104,120 ****
See also: DBREF
& Information functions
! Information functions return values related to objects or channels.
! andflags() cflags() channels() clock() config()
! conn() controls() ctime() ctitle() cwho()
! doing() elock() findable() flags() fullname()
! hasattr() hasattrp() hasflag() haspower() hastype()
! hidden() idle() iname() lock() lstats()
! lwho() money() mtime() mwho() name()
! nattr() nearby() objmem() orflags() playermem()
! poll() ports() powers() quota() type()
! visible()
& Mail functions
Mail functions work with @mail.
--- 116,131 ----
See also: DBREF
& Information functions
! Information functions return values related to objects.
! andflags() config()
! conn() controls() ctime() doing() elock()
! findable() flags() fullname() hasattr() hasattrp()
! hasflag() haspower() hastype() hidden() idle()
! iname() lock() lstats() lwho() money()
! mtime() mwho() name() nattr() nearby()
! objmem() orflags() playermem() poll() ports()
! powers() quota() type() visible()
& Mail functions
Mail functions work with @mail.
***************
*** 154,162 ****
Math functions take one or more numbers and return a numeric value.
What is allowed as a 'number' depends on @config settings (see help).
These functions can taken both integers and floating point numbers:
! add() lmath() max() mean() median()
! min() mul() sign() stddev() sub()
! trunc() val()
These functions operate only on integers (if passed floating point
numbers, an error will be reported):
--- 165,173 ----
Math functions take one or more numbers and return a numeric value.
What is allowed as a 'number' depends on @config settings (see help).
These functions can taken both integers and floating point numbers:
! add() bound() lmath() max() mean()
! median() min() mul() sign() stddev()
! sub() trunc() val()
These functions operate only on integers (if passed floating point
numbers, an error will be reported):
***************
*** 208,222 ****
& Utility functions
These functions don't quite fit into any other category.
! ansi() atrlock() beep() cemit() clone()
! create() die() dig() emit() functions()
! isdbref() isint() isnum() isword() lemit()
! localize() link() list() lnum() mudname()
! null() objeval() oemit() open() pcreate()
! pemit() r-function rand() remit() restarts()
! s-function set() setq() setr() soundex()
! soundslike() tel() textfile() valid() version()
! wipe() zemit() @@()
& @@()
& NULL()
--- 219,232 ----
& Utility functions
These functions don't quite fit into any other category.
! ansi() atrlock() beep() clone() create()
! die() dig() functions() isdbref() isint()
! isnum() isword() localize() link() list()
! lnum() mudname() null() objeval() open()
! pcreate() r-function rand() restarts() s-function
! set() setq() setr() soundex() soundslike()
! tel() textfile() valid() version() wipe()
! @@()
& @@()
& NULL()
***************
*** 2045,2054 ****
& MEMBER()
member(<list>,<word>[,<delimiter>])
! Member takes a list and a word, and returns the position of <word>
if <word> is a word in <list>. A word is defined as a string which
has no interior spaces. So ' hello ' would be one word, while
'hello there' would be two. See LISTS
& MERGE()
merge(<string1>, <string2>, <character>)
--- 2055,2066 ----
& MEMBER()
member(<list>,<word>[,<delimiter>])
! Takes a list and a word, and returns the position of <word>
if <word> is a word in <list>. A word is defined as a string which
has no interior spaces. So ' hello ' would be one word, while
'hello there' would be two. See LISTS
+
+ member() is case-sensitive.
& MERGE()
merge(<string1>, <string2>, <character>)
***************
*** 2282,2287 ****
--- 2294,2309 ----
see help BOOLEAN VALUES for details.
See also: and(), or(), nor(), xor()
+ & NSPEMIT()
+ nspemit(<object list>,<message>)
+
+ This wizard-only function will send each object on the list a
+ message, as per the @nspemit/list command. It returns nothing. It is
+ similar to pemit(), except it does not include any nospoof information.
+ Like @nspemit, it is meant for use with globals where nospoof
+ information isn't wanted.
+
+ See also: pemit(), @nspemit
& NUM()
num(<object>)
***************
*** 2365,2372 ****
pemit(<object list>,<message>)
This function will send each object on the list a message, as per
! the @pemit/list command (that is, the list must be a list of dbrefs).
! It returns nothing. It respects page-locks and HAVEN flags on players.
& PI()
pi()
--- 2387,2394 ----
pemit(<object list>,<message>)
This function will send each object on the list a message, as per
! the @pemit/list command. It returns nothing. It respects page-locks and
! HAVEN flags on players.
& PI()
pi()
*** 1_7_5.188/game/txt/hlp/penncmd.hlp Mon, 06 May 2002 20:42:49 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.4 600)
--- 1_7_5.213(w)/game/txt/hlp/penncmd.hlp Thu, 04 Jul 2002 14:47:51 -0500 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.10 600)
***************
*** 55,65 ****
@dolist @drain @edit @emit @entrances
@find @force @function @gedit @grep
@halt @lemit @listmotd @mail @map
! @notify @oemit @password @pemit @ps
! @remit @restart @rwall @rwallemit @rwallpose
! @scan @search @select @stats @sweep
! @switch @teleport @trigger @verb @version
! @wait @whereis @zemit
& @-WIZARD
These '@' commands are only usable by wizards or privileged players:
--- 55,65 ----
@dolist @drain @edit @emit @entrances
@find @force @function @gedit @grep
@halt @lemit @listmotd @mail @map
! @notify @nspemit @oemit @password @pemit
! @ps @remit @restart @rwall @rwallemit
! @rwallpose @scan @search @select @stats
! @sweep @switch @teleport @trigger @verb
! @version @wait @whereis @zemit
& @-WIZARD
These '@' commands are only usable by wizards or privileged players:
***************
*** 1133,1140 ****
with the @filter set. (Note: @filter on rooms has no effect!)
Please note that you should NOT use curly brackets {} in an @filter
! pattern. Also note that AUDIBLE exits will not take effect unless the
! room they lead from is also set AUDIBLE.
See 'help @filter2' for more.
& @filter2
--- 1133,1141 ----
with the @filter set. (Note: @filter on rooms has no effect!)
Please note that you should NOT use curly brackets {} in an @filter
! pattern. If you want to filter a message containing a comma, you
! need to put a \ before it. Also note that AUDIBLE exits will not
! take effect unless the room they lead from is also set AUDIBLE.
See 'help @filter2' for more.
& @filter2
***************
*** 1240,1245 ****
--- 1241,1247 ----
& @function
@function [<function name>]
@function <function name>=<object>,<attribute>
+ or @function <function name>=<object>/<attribute>
@function/<switch> <function name>
When used without any arguments, this command lists all global
***************
*** 1947,1952 ****
--- 1949,1963 ----
Similarly, you may not specify both the /all switch and a number.
See also: SEMAPHORES, @drain, @wait
+ & @nspemit
+ @nspemit[/switches] <object>=<message>
+
+ This wizard-only command is similar to @pemit, with two differences.
+ It will not include nospoof information, and it doesn't accept the
+ /contents switch. It is meant to be used by commands in the master
+ room where the nospoof information is just useless noise.
+
+ See also: @pemit, nspemit()
& @odeath
@odeath <player> [=<message>]
***************
*** 2293,2299 ****
There can be any number of objects in the list. The objects must be
specified by dbref number. You will not get back a "confirmation"
message for the /list form of this command.
!
(continued in help @pemit2)
& @pemit2
The @pemit command can take the following additional switches:
--- 2304,2310 ----
There can be any number of objects in the list. The objects must be
specified by dbref number. You will not get back a "confirmation"
message for the /list form of this command.
!
(continued in help @pemit2)
& @pemit2
The @pemit command can take the following additional switches:
***************
*** 2541,2547 ****
@set <object>=<attribute>:<value>
@set <object>/<attribute>=[!]<atrflag>
! The first form sets (or unsets) a flag on <object>.
Ex: @set me=VISUAL
The second form sets a pre-defined attribute on <object>
--- 2552,2558 ----
@set <object>=<attribute>:<value>
@set <object>/<attribute>=[!]<atrflag>
! The first form sets (or unsets) a flag on <object>. See 'help flags'.
Ex: @set me=VISUAL
The second form sets a pre-defined attribute on <object>
***************
*** 2552,2589 ****
Ex: @set Test Object=random:This is a random attribute.
&random Test Object=This is a random attribute.
- See "help @set2" for more.
- & @set2
The fourth form sets (or unsets) an attribute flag on the specified
! attribute. Possible flags are:
!
! no_command Attribute will not be checked for '$' commands and
! '^' listen patterns. In an 'examine', this is denoted
! by '$' next to the dbref of the attribute's owner.
! visual Attribute can be seen by anyone via get(), eval(),
! ufun(), zfun(), and similar functions. In 'examine',
! this is denoted by 'v'.
!
! (continued in help @set3)
! & @set3
! no_inherit Attribute will not be inherited by the children of
! this object. In 'examine', this is denoted by 'i'.
! "private" is a synonym for no_inherit.
! no_clone Attribute will not be copied if the object is @clone'd.
! In 'examine', this is denoted by 'c'.
! mortal_dark Attribute cannot be seen by mortals. Denoted by 'm'.
! This flag can only be set by royalty and wizards.
! "hidden" is a synonym for mortal_dark.
! regexp Match $-commands and ^-listens using regular expressions.
! See 'help regexps'. Denoted by 'R'.
! case Match $-commands and ^-listens case sensitively.
! Otherwise case doesn't count. Denoted by 'C'.
! wizard Attribute can only be set by wizards. Denoted by 'w'.
This flag can only be set by royalty and wizards.
! safe Attribute may not be modified, without unsetting this
! flag. Denoted by 'S'.
!
! See also: FLAGS, NON-STANDARD ATTRIBUTES.
& @sex
@sex <player> = <gender>
--- 2563,2593 ----
Ex: @set Test Object=random:This is a random attribute.
&random Test Object=This is a random attribute.
The fourth form sets (or unsets) an attribute flag on the specified
! attribute. See 'help attribute flags'.
! & attribute flags
! Attribute flags are set on an object's attributes using @set, or applied
! to attributes globally using @attrib. Their names (and, when applicable,
! the character used in examine as shorthand for the flag) include:
!
! no_command ($) Attribute will not be checked for '$' commands and
! '^' listen patterns.
! visual (v) Attribute can be seen by anyone via get(), eval(),
! ufun(), zfun(), and similar functions.
! no_inherit (i) Attribute will not be inherited by the children of
! this object.
! no_clone (c) Attribute will not be copied if the object is @clone'd.
! regexp (R) Match $-commands and ^-listens using regular expressions.
! See 'help regexps'.
! case (C) Match $-commands and ^-listens case sensitively.
! safe (S) Attribute may not be modified, without unsetting this flag.
! mortal_dark (m) Attribute cannot be seen by mortals. This flag can only
! be set by royalty and wizards. "hidden" is a synonym.
! wizard (w) Attribute can only be set by wizards.
This flag can only be set by royalty and wizards.
! prefixmatch When a user attempts to set an attribute using @<attrib>,
! this attribute will be matched down to its unique
! prefixes. This flag is primarily used internally.
& @sex
@sex <player> = <gender>
*** 1_7_5.188/game/restart Mon, 16 Jul 2001 11:57:35 -0500 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.1 700)
--- 1_7_5.213(w)/game/restart Sat, 25 May 2002 11:52:09 -0500 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.2 700)
***************
*** 55,61 ****
# Prevent double-starting things. You may need to provide a pathname for
# some of the commands. System V flavors need "ps -f" instead of "ps uwx".
! mush=`ps uwx | egrep $CONF_FILE | grep -v egrep | wc -l`
if [ $mush -gt 0 ]; then
--- 55,61 ----
# Prevent double-starting things. You may need to provide a pathname for
# some of the commands. System V flavors need "ps -f" instead of "ps uwx".
! mush=`ps uwx | grep $CONF_FILE | grep -v grep | wc -l`
if [ $mush -gt 0 ]; then
*** 1_7_5.188/utils/mkcmds.sh Tue, 25 Sep 2001 15:42:13 -0500 dunemush (pennmush/45_mkcmds.sh 1.6 700)
--- 1_7_5.213(w)/utils/mkcmds.sh Wed, 26 Jun 2002 08:44:02 -0500 dunemush (pennmush/45_mkcmds.sh 1.7 700)
***************
*** 14,20 ****
if [ -d ../patches ]; then
echo "Rebuilding list of installed Patches"
! for bu in ../patches/*; do
name=`grep "^# Patch name:" $bu | sed 's/[^:]*://'`
ver=`grep "^# Patch version:" $bu | sed 's/[^:]*://'`
name=`echo $name`
--- 14,20 ----
if [ -d ../patches ]; then
echo "Rebuilding list of installed Patches"
! for bu in ../patches/*[^~]; do
name=`grep "^# Patch name:" $bu | sed 's/[^:]*://'`
ver=`grep "^# Patch version:" $bu | sed 's/[^:]*://'`
name=`echo $name`
*** 1_7_5.188/src/shs.c Sun, 25 Feb 2001 13:37:15 -0600 dunemush (pennmush/b/18_shs.c 1.4 660)
--- 1_7_5.213(w)/src/shs.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/18_shs.c 1.5 660)
***************
*** 23,33 ****
#include "copyrite.h"
#include "config.h"
- #ifdef I_STRING
#include <string.h>
- #else
- /* #include <strings.h> Not sure why this is commented out. */
- #endif
#include "shs.h"
--- 23,29 ----
***************
*** 138,148 ****
/* some optimizing compilers - it may be necessary to split it into sections, e.g. */
/* based on the four subrounds */
! static void shsTransform _((SHS_INFO * shsInfo));
static void
! shsTransform(shsInfo)
! SHS_INFO *shsInfo;
{
LONG W[80], temp;
int i;
--- 134,143 ----
/* some optimizing compilers - it may be necessary to split it into sections, e.g. */
/* based on the four subrounds */
! static void shsTransform(SHS_INFO * shsInfo);
static void
! shsTransform(SHS_INFO * shsInfo)
{
LONG W[80], temp;
int i;
***************
*** 320,330 ****
} /* end of shsTransform */
! static void byteReverse _((LONG * buffer, int byteCount));
static void
! byteReverse(buffer, byteCount)
! LONG *buffer;
! int byteCount;
{
LONG value;
int count;
--- 315,323 ----
} /* end of shsTransform */
! static void byteReverse(LONG * buffer, int byteCount);
static void
! byteReverse(LONG * buffer, int byteCount)
{
LONG value;
int count;
***************
*** 343,352 ****
/* away with the need to handle partial blocks between calls to shsUpdate () */
void
! shsUpdate(shsInfo, buffer, count)
! SHS_INFO *shsInfo;
! BYTE *buffer;
! int count;
{
/* Update bitcount */
--- 336,342 ----
/* away with the need to handle partial blocks between calls to shsUpdate () */
void
! shsUpdate(SHS_INFO * shsInfo, const BYTE * buffer, int count)
{
/* Update bitcount */
***************
*** 373,383 ****
} /* end of shsUpdate */
- void shsFile _((SHS_INFO * shsInfo));
-
void
! shsFinal(shsInfo)
! SHS_INFO *shsInfo;
{
int count;
LONG lowBitcount = shsInfo->countLo, highBitcount = shsInfo->countHi;
--- 363,370 ----
} /* end of shsUpdate */
void
! shsFinal(SHS_INFO * shsInfo)
{
int count;
LONG lowBitcount = shsInfo->countLo, highBitcount = shsInfo->countHi;
*** 1_7_5.188/src/wiz.c Fri, 03 May 2002 22:41:51 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.2 660)
--- 1_7_5.213(w)/src/wiz.c Thu, 04 Jul 2002 16:11:39 -0500 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.1.1.1.1.1.1.6 660)
***************
*** 8,27 ****
#ifdef I_UNISTD
#include <unistd.h>
#endif
- #ifdef I_STRING
#include <string.h>
- #else
- #include <strings.h>
- #endif
#include <math.h>
#ifdef I_SYS_TIME
#include <sys/time.h>
#else
#include <time.h>
#endif
- #ifdef I_STDLIB
#include <stdlib.h>
- #endif
#include <ctype.h>
#ifdef I_FCNTL
#include <fcntl.h>
--- 8,21 ----
***************
*** 29,35 ****
#ifdef WIN32
#include <windows.h>
#include "process.h"
- #undef OPAQUE
#endif
#include "conf.h"
#include "mushdb.h"
--- 23,28 ----
***************
*** 55,66 ****
#include "confmagic.h"
! extern dbref find_entrance _((dbref door));
! extern int convert_flags _((dbref player, char *s, object_flag_type *p_mask,
! object_flag_type *p_toggle,
! object_flag_type *p_type));
! struct db_stat_info *get_stats _((dbref owner));
! extern dbref find_player_by_desc _((int port));
extern int paranoid_dump;
extern int paranoid_checkpt;
--- 48,58 ----
#include "confmagic.h"
! extern dbref find_entrance(dbref door);
! extern int convert_flags(dbref player, const char *s, object_flag_type *p_mask,
! object_flag_type *p_toggle, object_flag_type *p_type);
! struct db_stat_info *get_stats(dbref owner);
! extern dbref find_player_by_desc(int port);
extern int paranoid_dump;
extern int paranoid_checkpt;
***************
*** 74,85 ****
extern int reserved;
#endif
! int tport_dest_ok _((dbref player, dbref victim, dbref dest));
! int tport_control_ok _((dbref player, dbref victim, dbref loc));
! static int mem_usage _((dbref thing));
#ifdef INFO_SLAVE
! void kill_info_slave _((void));
#endif
extern char confname[BUFFER_LEN];
--- 66,77 ----
extern int reserved;
#endif
! int tport_dest_ok(dbref player, dbref victim, dbref dest);
! int tport_control_ok(dbref player, dbref victim, dbref loc);
! static int mem_usage(dbref thing);
#ifdef INFO_SLAVE
! void kill_info_slave(void);
#endif
extern char confname[BUFFER_LEN];
***************
*** 158,164 ****
/* the quotas of priv'ed players are unlimited and cannot be set. */
if (NoQuota(who)) {
! notify(player, tprintf(T("Objects: %d Limit: UNLIMITED"), owned));
return;
}
/* if we're not doing a change, determine the mortal's quota limit.
--- 150,156 ----
/* the quotas of priv'ed players are unlimited and cannot be set. */
if (NoQuota(who)) {
! notify_format(player, T("Objects: %d Limit: UNLIMITED"), owned);
return;
}
/* if we're not doing a change, determine the mortal's quota limit.
***************
*** 167,179 ****
if (!set_q) {
limit = get_current_quota(who);
! notify(player, tprintf(T("Objects: %d Limit: %d"), owned, owned + limit));
return;
}
/* set a new quota */
if (!arg2 || !*arg2) {
limit = get_current_quota(who);
! notify(player, tprintf(T("Objects: %d Limit: %d"), owned, owned + limit));
notify(player, T("What do you want to set the quota to?"));
return;
}
--- 159,171 ----
if (!set_q) {
limit = get_current_quota(who);
! notify_format(player, T("Objects: %d Limit: %d"), owned, owned + limit);
return;
}
/* set a new quota */
if (!arg2 || !*arg2) {
limit = get_current_quota(who);
! notify_format(player, T("Objects: %d Limit: %d"), owned, owned + limit);
notify(player, T("What do you want to set the quota to?"));
return;
}
***************
*** 188,194 ****
(void) atr_add(Owner(who), "RQUOTA", tprintf("%d", limit - owned), GOD,
NOTHING);
! notify(player, tprintf(T("Objects: %d Limit: %d"), owned, limit));
}
--- 180,186 ----
(void) atr_add(Owner(who), "RQUOTA", tprintf("%d", limit - owned), GOD,
NOTHING);
! notify_format(player, T("Objects: %d Limit: %d"), owned, limit);
}
***************
*** 233,246 ****
if (NoQuota(who)) {
if (!quiet)
! notify(player, tprintf("%s: Objects: %d Limit: UNLIMITED",
! Name(who), owned));
continue;
}
if (!quiet) {
oldlimit = get_current_quota(who);
! notify(player, tprintf("%s: Objects: %d Limit: %d",
! Name(who), owned, oldlimit));
}
if (limit != -1) {
if (limit <= owned)
--- 225,238 ----
if (NoQuota(who)) {
if (!quiet)
! notify_format(player, "%s: Objects: %d Limit: UNLIMITED",
! Name(who), owned);
continue;
}
if (!quiet) {
oldlimit = get_current_quota(who);
! notify_format(player, "%s: Objects: %d Limit: %d",
! Name(who), owned, oldlimit);
}
if (limit != -1) {
if (limit <= owned)
***************
*** 253,259 ****
if (limit == -1)
notify(player, T("Quotas not changed."));
else
! notify(player, tprintf(T("All quotas changed to %d."), limit));
}
#endif /* QUOTA */
--- 245,251 ----
if (limit == -1)
notify(player, T("Quotas not changed."));
else
! notify_format(player, T("All quotas changed to %d."), limit);
}
#endif /* QUOTA */
***************
*** 529,537 ****
|| controls(player, Location(victim)))
do_move(victim, to, 0);
else
! notify(victim,
! tprintf(T("%s tries to impose his will on you and fails."),
! Name(player)));
}
}
}
--- 521,529 ----
|| controls(player, Location(victim)))
do_move(victim, to, 0);
else
! notify_format(victim,
! T("%s tries to impose his will on you and fails."),
! Name(player));
}
}
}
***************
*** 656,662 ****
else
owner = lookup_player(name);
if (owner == NOTHING) {
! notify(player, tprintf(T("%s: No such player."), name));
return;
}
if (!Search_All(player)) {
--- 648,654 ----
else
owner = lookup_player(name);
if (owner == NOTHING) {
! notify_format(player, T("%s: No such player."), name);
return;
}
if (!Search_All(player)) {
***************
*** 667,687 ****
}
si = get_stats(owner);
if (owner == ANY_OWNER) {
! notify(player,
! tprintf
! (T
! ("%d objects = %d rooms, %d exits, %d things, %d players, %d garbage."),
! si->total, si->rooms, si->exits, si->things, si->players,
! si->garbage));
if (first_free != NOTHING)
! notify(player, tprintf(T("The next object to be created will be #%d."),
! first_free));
} else {
! notify(player,
! tprintf
! (T("%d objects = %d rooms, %d exits, %d things, %d players."),
! si->total - si->garbage, si->rooms, si->exits, si->things,
! si->players));
}
}
--- 659,677 ----
}
si = get_stats(owner);
if (owner == ANY_OWNER) {
! notify_format(player,
! T
! ("%d objects = %d rooms, %d exits, %d things, %d players, %d garbage."),
! si->total, si->rooms, si->exits, si->things, si->players,
! si->garbage);
if (first_free != NOTHING)
! notify_format(player, T("The next object to be created will be #%d."),
! first_free);
} else {
! notify_format(player,
! T("%d objects = %d rooms, %d exits, %d things, %d players."),
! si->total - si->garbage, si->rooms, si->exits, si->things,
! si->players);
}
}
***************
*** 842,848 ****
change_quota(n_target, -count);
#endif
! notify(player, tprintf(T("Ownership changed for %d objects."), count));
}
void
--- 832,838 ----
change_quota(n_target, -count);
#endif
! notify_format(player, T("Ownership changed for %d objects."), count);
}
void
***************
*** 889,895 ****
count += do_chzone(player, unparse_dbref(i), target, 0);
}
}
! notify(player, tprintf(T("Zone changed for %d objects."), count));
}
/*-----------------------------------------------------------------------
--- 879,885 ----
count += do_chzone(player, unparse_dbref(i), target, 0);
}
}
! notify_format(player, T("Zone changed for %d objects."), count);
}
/*-----------------------------------------------------------------------
***************
*** 921,927 ****
}
n = do_top(n);
! notify(player, tprintf(T("%d commands executed."), n));
}
--- 911,917 ----
}
n = do_top(n);
! notify_format(player, T("%d commands executed."), n);
}
***************
*** 945,975 ****
return;
notify(player, object_header(player, thing));
! notify(player, tprintf(T("Flags value: 0x%08x"), Flags(thing)));
! notify(player, tprintf(T("Toggles value: 0x%08x"), Toggles(thing)));
! notify(player, tprintf(T("Powers value: 0x%08x"), Powers(thing)));
! notify(player, tprintf("Next: %d", Next(thing)));
! notify(player, tprintf("Contents: %d", Contents(thing)));
switch (Typeof(thing)) {
case TYPE_PLAYER:
#ifdef USE_MAILER
mp = desc_mail(thing);
! notify(player,
! tprintf(T("First mail sender: %d"), mp ? mp->from : NOTHING));
#endif
case TYPE_THING:
! notify(player, tprintf("Location: %d", Location(thing)));
! notify(player, tprintf("Home: %d", Home(thing)));
break;
case TYPE_EXIT:
! notify(player, tprintf("Destination: %d", Location(thing)));
! notify(player, tprintf("Source: %d", Source(thing)));
break;
case TYPE_ROOM:
! notify(player, tprintf("Drop-to: %d", Location(thing)));
! notify(player, tprintf("Exits: %d", Exits(thing)));
break;
case TYPE_GARBAGE:
break;
--- 935,964 ----
return;
notify(player, object_header(player, thing));
! notify_format(player, T("Flags value: 0x%08x"), Flags(thing));
! notify_format(player, T("Toggles value: 0x%08x"), Toggles(thing));
! notify_format(player, T("Powers value: 0x%08x"), Powers(thing));
! notify_format(player, "Next: %d", Next(thing));
! notify_format(player, "Contents: %d", Contents(thing));
switch (Typeof(thing)) {
case TYPE_PLAYER:
#ifdef USE_MAILER
mp = desc_mail(thing);
! notify_format(player, T("First mail sender: %d"), mp ? mp->from : NOTHING);
#endif
case TYPE_THING:
! notify_format(player, "Location: %d", Location(thing));
! notify_format(player, "Home: %d", Home(thing));
break;
case TYPE_EXIT:
! notify_format(player, "Destination: %d", Location(thing));
! notify_format(player, "Source: %d", Source(thing));
break;
case TYPE_ROOM:
! notify_format(player, "Drop-to: %d", Location(thing));
! notify_format(player, "Exits: %d", Exits(thing));
break;
case TYPE_GARBAGE:
break;
***************
*** 1036,1048 ****
#endif
void
! do_power(player, name, power)
! dbref player;
! const char *name;
! const char *power;
{
object_flag_type pwr;
! char *s;
dbref thing;
if (!Wizard(player)) {
--- 1025,1034 ----
#endif
void
! do_power(dbref player, const char *name, const char *power)
{
object_flag_type pwr;
! const char *s;
dbref thing;
if (!Wizard(player)) {
***************
*** 1063,1069 ****
return;
}
/* move past the not token if there is one */
! for (s = (char *) power; *s && ((*s == NOT_TOKEN) || isspace(*s)); s++) ;
if (*s == '\0') {
notify(player, T("You must specify a power."));
--- 1049,1055 ----
return;
}
/* move past the not token if there is one */
! for (s = power; *s && ((*s == NOT_TOKEN) || isspace(*s)); s++) ;
if (*s == '\0') {
notify(player, T("You must specify a power."));
***************
*** 1077,1083 ****
if (*power == NOT_TOKEN) {
Powers(thing) &= ~pwr;
if (!AreQuiet(player, thing))
! notify(player, tprintf(T("%s - power removed."), Name(thing)));
do_log(LT_WIZ, player, thing, T("Power Removed: %s"), power);
} else {
if (Hasprivs(thing) && (pwr == IS_GUEST)) {
--- 1063,1069 ----
if (*power == NOT_TOKEN) {
Powers(thing) &= ~pwr;
if (!AreQuiet(player, thing))
! notify_format(player, T("%s - power removed."), Name(thing));
do_log(LT_WIZ, player, thing, T("Power Removed: %s"), power);
} else {
if (Hasprivs(thing) && (pwr == IS_GUEST)) {
***************
*** 1086,1092 ****
}
Powers(thing) |= pwr;
if (!AreQuiet(player, thing))
! notify(player, tprintf(T("%s - power granted."), Name(thing)));
do_log(LT_WIZ, player, thing, T("Power Granted: %s"), power);
}
}
--- 1072,1078 ----
}
Powers(thing) |= pwr;
if (!AreQuiet(player, thing))
! notify_format(player, T("%s - power granted."), Name(thing));
do_log(LT_WIZ, player, thing, T("Power Granted: %s"), power);
}
}
***************
*** 1096,1104 ****
*/
! int raw_search _((dbref player, const char *owner, const char *class,
! const char *restriction, const char *start, const char *stop,
! dbref **result, PE_Info * pe_info));
void
do_search(player, arg1, arg3)
--- 1082,1090 ----
*/
! int raw_search(dbref player, const char *owner, const char *class,
! const char *restriction, const char *start, const char *stop,
! dbref **result, PE_Info * pe_info);
void
do_search(player, arg1, arg3)
***************
*** 1106,1112 ****
const char *arg1;
char **arg3;
{
! char *arg2;
dbref *results = NULL;
int nresults;
--- 1092,1098 ----
const char *arg1;
char **arg3;
{
! char tbuf[BUFFER_LEN], *arg2 = tbuf;
dbref *results = NULL;
int nresults;
***************
*** 1117,1123 ****
/* First argument is a player, so we could have a quoted name */
if (PLAYER_NAME_SPACES && *arg1 == '\"') {
for (; *arg1 && ((*arg1 == '\"') || isspace(*arg1)); arg1++) ;
! arg2 = (char *) arg1;
while (*arg2 && (*arg2 != '\"')) {
while (*arg2 && (*arg2 != '\"'))
arg2++;
--- 1103,1109 ----
/* First argument is a player, so we could have a quoted name */
if (PLAYER_NAME_SPACES && *arg1 == '\"') {
for (; *arg1 && ((*arg1 == '\"') || isspace(*arg1)); arg1++) ;
! strcpy(tbuf, arg1);
while (*arg2 && (*arg2 != '\"')) {
while (*arg2 && (*arg2 != '\"'))
arg2++;
***************
*** 1129,1135 ****
}
}
} else {
! arg2 = (char *) arg1;
while (*arg2 && !isspace(*arg2))
arg2++;
if (*arg2)
--- 1115,1121 ----
}
}
} else {
! strcpy(tbuf, arg1);
while (*arg2 && !isspace(*arg2))
arg2++;
if (*arg2)
***************
*** 1142,1153 ****
if (!arg3[1] || !*arg3[1])
arg2 = (char *) ""; /* arg1 */
else {
! arg2 = (char *) arg1; /* arg2, arg3 */
! arg1 = (char *) "";
}
}
! nresults = raw_search(player, arg1, arg2, arg3[1], arg3[2], arg3[3],
&results, NULL);
if (nresults == 0) {
--- 1128,1139 ----
if (!arg3[1] || !*arg3[1])
arg2 = (char *) ""; /* arg1 */
else {
! arg2 = (char *) arg1; /* arg2=arg3 */
! tbuf[0] = '\0';
}
}
! nresults = raw_search(player, tbuf, arg2, arg3[1], arg3[2], arg3[3],
&results, NULL);
if (nresults == 0) {
***************
*** 1156,1165 ****
/* Split the results up by type and report. */
int n;
int nthings = 0, nexits = 0, nrooms = 0, nplayers = 0;
! char *tbuf, *tbuf1;
dbref *things, *exits, *rooms, *players;
- tbuf = (char *) mush_malloc(BUFFER_LEN, "string");
tbuf1 = (char *) mush_malloc(BUFFER_LEN, "string");
things = (dbref *) mush_malloc(sizeof(dbref) * nresults, "dbref_list");
exits = (dbref *) mush_malloc(sizeof(dbref) * nresults, "dbref_list");
--- 1142,1150 ----
/* Split the results up by type and report. */
int n;
int nthings = 0, nexits = 0, nrooms = 0, nplayers = 0;
! char *tbuf1;
dbref *things, *exits, *rooms, *players;
tbuf1 = (char *) mush_malloc(BUFFER_LEN, "string");
things = (dbref *) mush_malloc(sizeof(dbref) * nresults, "dbref_list");
exits = (dbref *) mush_malloc(sizeof(dbref) * nresults, "dbref_list");
***************
*** 1190,1198 ****
notify(player, "\nROOMS:");
for (n = 0; n < nrooms; n++) {
strcpy(tbuf1, object_header(player, Owner(rooms[n])));
! sprintf(tbuf, T("%s [owner: %s]"), object_header(player, rooms[n]),
! tbuf1);
! notify(player, tbuf);
}
}
--- 1175,1182 ----
notify(player, "\nROOMS:");
for (n = 0; n < nrooms; n++) {
strcpy(tbuf1, object_header(player, Owner(rooms[n])));
! notify_format(player, T("%s [owner: %s]"),
! object_header(player, rooms[n]), tbuf1);
}
}
***************
*** 1211,1219 ****
strcpy(tbuf1,
(from == NOTHING) ? "NOWHERE" : object_header(player, from));
strcpy(tbuf2, (to == NOTHING) ? "NOWHERE" : object_header(player, to));
! sprintf(tbuf, T("%s [from %s to %s]"), object_header(player, exits[n]),
! tbuf1, tbuf2);
! notify(player, tbuf);
}
mush_free((Malloc_t) tbuf2, "string");
}
--- 1195,1202 ----
strcpy(tbuf1,
(from == NOTHING) ? "NOWHERE" : object_header(player, from));
strcpy(tbuf2, (to == NOTHING) ? "NOWHERE" : object_header(player, to));
! notify_format(player, T("%s [from %s to %s]"),
! object_header(player, exits[n]), tbuf1, tbuf2);
}
mush_free((Malloc_t) tbuf2, "string");
}
***************
*** 1222,1230 ****
notify(player, "\nOBJECTS:");
for (n = 0; n < nthings; n++) {
strcpy(tbuf1, object_header(player, Owner(things[n])));
! sprintf(tbuf, T("%s [owner: %s]"), object_header(player, things[n]),
! tbuf1);
! notify(player, tbuf);
}
}
--- 1205,1212 ----
notify(player, "\nOBJECTS:");
for (n = 0; n < nthings; n++) {
strcpy(tbuf1, object_header(player, Owner(things[n])));
! notify_format(player, T("%s [owner: %s]"),
! object_header(player, things[n]), tbuf1);
}
}
***************
*** 1244,1254 ****
}
notify(player, T("---------- Search Done ----------"));
! notify(player,
! tprintf(T
! ("Totals: Rooms...%d Exits...%d Objects...%d Players...%d"),
! nrooms, nexits, nthings, nplayers));
! mush_free((Malloc_t) tbuf, "string");
mush_free((Malloc_t) tbuf1, "string");
mush_free((Malloc_t) rooms, "dbref_list");
mush_free((Malloc_t) exits, "dbref_list");
--- 1226,1235 ----
}
notify(player, T("---------- Search Done ----------"));
! notify_format(player,
! T
! ("Totals: Rooms...%d Exits...%d Objects...%d Players...%d"),
! nrooms, nexits, nthings, nplayers);
mush_free((Malloc_t) tbuf1, "string");
mush_free((Malloc_t) rooms, "dbref_list");
mush_free((Malloc_t) exits, "dbref_list");
***************
*** 1310,1331 ****
/* Does the actual searching */
int
! raw_search(player, owner, class, restriction, start, stop, result, pe_info)
! dbref player;
! const char *owner;
! const char *class;
! const char *restriction;
! const char *start;
! const char *stop;
! dbref **result;
! PE_Info *pe_info;
{
Size_t result_size;
Size_t nresults = 0;
enum search_class sclass = S_OWNER;
int n;
int restrict_type = NOTYPE;
! object_flag_type restrict_flags = 0, restrict_toggles = 0;
dbref restrict_obj = NOTHING, restrict_owner = ANY_OWNER;
int is_wiz;
dbref low = 0, high = db_top;
--- 1291,1306 ----
/* Does the actual searching */
int
! raw_search(dbref player, const char *owner, const char *class,
! const char *restriction, const char *start, const char *stop,
! dbref **result, PE_Info * pe_info)
{
Size_t result_size;
Size_t nresults = 0;
enum search_class sclass = S_OWNER;
int n;
int restrict_type = NOTYPE;
! object_flag_type restrict_flags = 0;
dbref restrict_obj = NOTHING, restrict_owner = ANY_OWNER;
int is_wiz;
dbref low = 0, high = db_top;
***************
*** 1444,1458 ****
return -1;
}
} else if (string_prefix("flags", class)) {
! /*
! * convert_flags ignores previous values of flag_mask and
! * restrict_type while setting them
! */
sclass = S_FLAG;
! if (restriction && *restriction &&
! !convert_flags(player, (char *) restriction, &restrict_flags,
! &restrict_toggles, &restrict_type))
return -1;
} else {
notify(player, T("Unknown search class."));
return -1;
--- 1419,1430 ----
return -1;
}
} else if (string_prefix("flags", class)) {
! /* Handle the checking later. */
sclass = S_FLAG;
! if (!restriction || !*restriction) {
! notify(player, T("You must give a flag list."));
return -1;
+ }
} else {
notify(player, T("Unknown search class."));
return -1;
***************
*** 1466,1473 ****
/* make sure player has money to do the search */
if (!payfor(player, FIND_COST)) {
! notify(player, tprintf(T("Searches cost %d %s."), FIND_COST,
! ((FIND_COST == 1) ? MONEY : MONIES)));
return -1;
}
--- 1438,1445 ----
/* make sure player has money to do the search */
if (!payfor(player, FIND_COST)) {
! notify_format(player, T("Searches cost %d %s."), FIND_COST,
! ((FIND_COST == 1) ? MONEY : MONIES));
return -1;
}
***************
*** 1558,1569 ****
char tbuf1[BUFFER_LEN];
char *bp;
for (n = low; n < high; n++) {
if (!((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
&& (restrict_type == NOTYPE || Typeof(n) == restrict_type)))
continue;
! ebuf1 = replace_string("##", tprintf("#%d", n), restriction);
ebuf2 = ebuf1;
bp = tbuf1;
process_expression(tbuf1, &bp, &ebuf2, player, player, player,
--- 1530,1544 ----
char tbuf1[BUFFER_LEN];
char *bp;
+ if (!restriction || !*restriction)
+ break;
+
for (n = low; n < high; n++) {
if (!((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
&& (restrict_type == NOTYPE || Typeof(n) == restrict_type)))
continue;
! ebuf1 = replace_string("##", unparse_dbref(n), restriction);
ebuf2 = ebuf1;
bp = tbuf1;
process_expression(tbuf1, &bp, &ebuf2, player, player, player,
***************
*** 1610,1617 ****
for (n = low; n < high; n++) {
if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
&& (restrict_type == NOTYPE || Typeof(n) == restrict_type)
! && (Flags(n) & restrict_flags) == restrict_flags
! && (Toggles(n) & restrict_toggles) == restrict_toggles) {
if (nresults >= result_size) {
dbref *newresults;
result_size *= 2;
--- 1585,1591 ----
for (n = low; n < high; n++) {
if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner)
&& (restrict_type == NOTYPE || Typeof(n) == restrict_type)
! && flaglist_check(player, n, restriction, 1)) {
if (nresults >= result_size) {
dbref *newresults;
result_size *= 2;
***************
*** 1734,1748 ****
add_access_sitelock(player, site, whod, can, cant);
write_access_file();
if (whod != AMBIGUOUS) {
! notify(player,
! tprintf(T("Site %s access options for %s(%s) set to %s"),
! site, Name(whod), unparse_dbref(whod), opts));
do_log(LT_WIZ, player, NOTHING,
T("*** SITELOCK *** %s for %s(%s) --> %s"), site,
Name(whod), unparse_dbref(whod), opts);
} else {
! notify(player,
! tprintf(T("Site %s access options set to %s"), site, opts));
do_log(LT_WIZ, player, NOTHING, "*** SITELOCK *** %s --> %s", site, opts);
}
return;
--- 1708,1721 ----
add_access_sitelock(player, site, whod, can, cant);
write_access_file();
if (whod != AMBIGUOUS) {
! notify_format(player,
! T("Site %s access options for %s(%s) set to %s"),
! site, Name(whod), unparse_dbref(whod), opts);
do_log(LT_WIZ, player, NOTHING,
T("*** SITELOCK *** %s for %s(%s) --> %s"), site,
Name(whod), unparse_dbref(whod), opts);
} else {
! notify_format(player, T("Site %s access options set to %s"), site, opts);
do_log(LT_WIZ, player, NOTHING, "*** SITELOCK *** %s --> %s", site, opts);
}
return;
***************
*** 1764,1770 ****
else
add_access_sitelock(player, site, AMBIGUOUS, 0, ACS_DEFAULT);
write_access_file();
! notify(player, tprintf(T("Site %s locked"), site));
do_log(LT_WIZ, player, NOTHING, "*** SITELOCK *** %s", site);
break;
case 3:{
--- 1737,1743 ----
else
add_access_sitelock(player, site, AMBIGUOUS, 0, ACS_DEFAULT);
write_access_file();
! notify_format(player, T("Site %s locked"), site);
do_log(LT_WIZ, player, NOTHING, "*** SITELOCK *** %s", site);
break;
case 3:{
***************
*** 1852,1858 ****
/* Put a newline at the end of the site */
fprintf(fp, "%s\n", site);
fclose(fp);
! notify(player, tprintf(T("Name %s locked"), site));
do_log(LT_WIZ, player, NOTHING, "*** NAMELOCK *** %s", site);
} else {
notify(player, T("Error writing to file."));
--- 1825,1831 ----
/* Put a newline at the end of the site */
fprintf(fp, "%s\n", site);
fclose(fp);
! notify_format(player, T("Name %s locked"), site);
do_log(LT_WIZ, player, NOTHING, "*** NAMELOCK *** %s", site);
} else {
notify(player, T("Error writing to file."));
*** 1_7_5.188/src/utils.c Tue, 14 May 2002 22:08:43 -0500 dunemush (pennmush/b/27_utils.c 1.30.1.1.1.2 660)
--- 1_7_5.213(w)/src/utils.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/27_utils.c 1.30.1.1.1.3 660)
***************
*** 29,35 ****
#ifdef WIN32
#include <wtypes.h>
#include <winbase.h> /* For GetCurrentProcessId() */
- #undef OPAQUE /* Clashes with flags.h */
#endif
#include <ctype.h>
#include <fcntl.h>
--- 29,34 ----
*** 1_7_5.188/src/timer.c Mon, 22 Apr 2002 11:34:33 -0500 dunemush (pennmush/b/29_timer.c 1.29.1.2 660)
--- 1_7_5.213(w)/src/timer.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/29_timer.c 1.29.1.3 660)
***************
*** 15,21 ****
#endif
#ifdef WIN32
#include <windows.h>
- #undef OPAQUE /* conflict */
#endif
#include <signal.h>
#ifdef I_UNISTD
--- 15,20 ----
*** 1_7_5.188/src/help.c Mon, 29 Apr 2002 10:47:50 -0500 dunemush (pennmush/f/32_help.c 1.4.1.2.1.1.1.3.2.2.1.1.2.1.1.2.1.2.1.2.1.3.1.2 660)
--- 1_7_5.213(w)/src/help.c Thu, 04 Jul 2002 16:11:37 -0500 dunemush (pennmush/f/32_help.c 1.4.1.2.1.1.1.3.2.2.1.1.2.1.1.2.1.2.1.2.1.3.1.3 660)
***************
*** 33,39 ****
static void do_new_spitfile _((dbref player, char *arg1,
help_file *help_dat, int restricted));
! static char *string_spitfile(help_file *help_dat, char *arg1);
static void help_build_index _((help_file *h, int restricted));
--- 33,39 ----
static void do_new_spitfile _((dbref player, char *arg1,
help_file *help_dat, int restricted));
! static const char *string_spitfile(help_file *help_dat, char *arg1);
static void help_build_index _((help_file *h, int restricted));
***************
*** 437,443 ****
}
! static char *
string_spitfile(help_file *help_dat, char *arg1)
{
help_indx *entry = NULL;
--- 437,443 ----
}
! static const char *
string_spitfile(help_file *help_dat, char *arg1)
{
help_indx *entry = NULL;
*** 1_7_5.188/src/privtab.c Tue, 03 Oct 2000 09:25:10 -0500 dunemush (pennmush/b/31_privtab.c 1.3 660)
--- 1_7_5.213(w)/src/privtab.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/31_privtab.c 1.5 660)
***************
*** 140,146 ****
bp = buf;
for (c = table; c->name; c++) {
! if (privs & c->bits_to_show) {
safe_chr(c->letter, buf, &bp);
privs &= ~c->bits_to_set;
}
--- 140,146 ----
bp = buf;
for (c = table; c->name; c++) {
! if ((privs & c->bits_to_show) && c->letter) {
safe_chr(c->letter, buf, &bp);
privs &= ~c->bits_to_set;
}
*** 1_7_5.188/src/switchinc.c Fri, 17 May 2002 11:04:48 -0500 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1.1.2.1.5.1.2.1.5.2.1.1.6 660)
--- 1_7_5.213(w)/src/switchinc.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1.1.2.1.5.1.2.1.5.2.1.1.9 660)
***************
*** 1,520 ****
{
! "ACCESS", SWITCH_ACCESS
! }
! ,
! {
! "ADD", SWITCH_ADD
! }
! ,
! {
! "ALL", SWITCH_ALL
! }
! ,
! {
! "ANY", SWITCH_ANY
! }
! ,
! {
! "ATTRIBS", SWITCH_ATTRIBS
! }
! ,
! {
! "BAN", SWITCH_BAN
! }
! ,
! {
! "BLIND", SWITCH_BLIND
! }
! ,
! {
! "BRIEF", SWITCH_BRIEF
! }
! ,
! {
! "CHECK", SWITCH_CHECK
! }
! ,
! {
! "CHOWN", SWITCH_CHOWN
! }
! ,
! {
! "CLEAR", SWITCH_CLEAR
! }
! ,
! {
! "CMD", SWITCH_CMD
! }
! ,
! {
! "COMMANDS", SWITCH_COMMANDS
! }
! ,
! {
! "CONN", SWITCH_CONN
! }
! ,
! {
! "CONNECT", SWITCH_CONNECT
! }
! ,
! {
! "CONNECTED", SWITCH_CONNECTED
! }
! ,
! {
! "CONTENTS", SWITCH_CONTENTS
! }
! ,
! {
! "COSTS", SWITCH_COSTS
! }
! ,
! {
! "COUNT", SWITCH_COUNT
! }
! ,
! {
! "CREATE", SWITCH_CREATE
! }
! ,
! {
! "DATABASE", SWITCH_DATABASE
! }
! ,
! {
! "DB", SWITCH_DB
! }
! ,
! {
! "DEBUG", SWITCH_DEBUG
! }
! ,
! {
! "DECOMPILE", SWITCH_DECOMPILE
! }
! ,
! {
! "DEFAULTS", SWITCH_DEFAULTS
! }
! ,
! {
! "DELETE", SWITCH_DELETE
! }
! ,
! {
! "DELIMIT", SWITCH_DELIMIT
! }
! ,
! {
! "DESCRIBE", SWITCH_DESCRIBE
! }
! ,
! {
! "DESTROY", SWITCH_DESTROY
! }
! ,
! {
! "DISABLE", SWITCH_DISABLE
! }
! ,
! {
! "DOWN", SWITCH_DOWN
! }
! ,
! {
! "DSTATS", SWITCH_DSTATS
! }
! ,
! {
! "EMIT", SWITCH_EMIT
! }
! ,
! {
! "ENABLE", SWITCH_ENABLE
! }
! ,
! {
! "ERR", SWITCH_ERR
! }
! ,
! {
! "EXITS", SWITCH_EXITS
! }
! ,
! {
! "FILE", SWITCH_FILE
! }
! ,
! {
! "FIRST", SWITCH_FIRST
! }
! ,
! {
! "FLAGS", SWITCH_FLAGS
! }
! ,
! {
! "FOLDERS", SWITCH_FOLDERS
! }
! ,
! {
! "FORWARD", SWITCH_FORWARD
! }
! ,
! {
! "FSTATS", SWITCH_FSTATS
! }
! ,
! {
! "FULL", SWITCH_FULL
! }
! ,
! {
! "FUNCTIONS", SWITCH_FUNCTIONS
! }
! ,
! {
! "FWD", SWITCH_FWD
! }
! ,
! {
! "GAG", SWITCH_GAG
! }
! ,
! {
! "GLOBALS", SWITCH_GLOBALS
! }
! ,
! {
! "HEADER", SWITCH_HEADER
! }
! ,
! {
! "HERE", SWITCH_HERE
! }
! ,
! {
! "HIDE", SWITCH_HIDE
! }
! ,
! {
! "ILIST", SWITCH_ILIST
! }
! ,
! {
! "INVENTORY", SWITCH_INVENTORY
! }
! ,
! {
! "IPRINT", SWITCH_IPRINT
! }
! ,
! {
! "JOIN", SWITCH_JOIN
! }
! ,
! {
! "LIST", SWITCH_LIST
! }
! ,
! {
! "LOWERCASE", SWITCH_LOWERCASE
! }
! ,
! {
! "ME", SWITCH_ME
! }
! ,
! {
! "MEMBERS", SWITCH_MEMBERS
! }
! ,
! {
! "MOD", SWITCH_MOD
! }
! ,
! {
! "MORTAL", SWITCH_MORTAL
! }
! ,
! {
! "MOTD", SWITCH_MOTD
! }
! ,
! {
! "MUTE", SWITCH_MUTE
! }
! ,
! {
! "NAME", SWITCH_NAME
! }
! ,
! {
! "NO", SWITCH_NO
! }
! ,
! {
! "NOEVAL", SWITCH_NOEVAL
! }
! ,
! {
! "NOFLAGCOPY", SWITCH_NOFLAGCOPY
! }
! ,
! {
! "NOISY", SWITCH_NOISY
! }
! ,
! {
! "NOSIG", SWITCH_NOSIG
! }
! ,
! {
! "NOSPACE", SWITCH_NOSPACE
! }
! ,
! {
! "NOTIFY", SWITCH_NOTIFY
! }
! ,
! {
! "NUKE", SWITCH_NUKE
! }
! ,
! {
! "OFF", SWITCH_OFF
! }
! ,
! {
! "ON", SWITCH_ON
! }
! ,
! {
! "OUTSIDE", SWITCH_OUTSIDE
! }
! ,
! {
! "OVERRIDE", SWITCH_OVERRIDE
! }
! ,
! {
! "PANIC", SWITCH_PANIC
! }
! ,
! {
! "PARANOID", SWITCH_PARANOID
! }
! ,
! {
! "PLAYERS", SWITCH_PLAYERS
! }
! ,
! {
! "PORT", SWITCH_PORT
! }
! ,
! {
! "POSE", SWITCH_POSE
! }
! ,
! {
! "PRESERVE", SWITCH_PRESERVE
! }
! ,
! {
! "PRINT", SWITCH_PRINT
! }
! ,
! {
! "PRIVS", SWITCH_PRIVS
! }
! ,
! {
! "PURGE", SWITCH_PURGE
! }
! ,
! {
! "QUICK", SWITCH_QUICK
! }
! ,
! {
! "QUIET", SWITCH_QUIET
! }
! ,
! {
! "READ", SWITCH_READ
! }
! ,
! {
! "REBOOT", SWITCH_REBOOT
! }
! ,
! {
! "REGISTER", SWITCH_REGISTER
! }
! ,
! {
! "REMOVE", SWITCH_REMOVE
! }
! ,
! {
! "RENAME", SWITCH_RENAME
! }
! ,
! {
! "RESTORE", SWITCH_RESTORE
! }
! ,
! {
! "RESTRICT", SWITCH_RESTRICT
! }
! ,
! {
! "RETROACTIVE", SWITCH_RETROACTIVE
! }
! ,
! {
! "ROOM", SWITCH_ROOM
! }
! ,
! {
! "ROOMS", SWITCH_ROOMS
! }
! ,
! {
! "ROYALTY", SWITCH_ROYALTY
! }
! ,
! {
! "SEE", SWITCH_SEE
! }
! ,
! {
! "SEEFLAG", SWITCH_SEEFLAG
! }
! ,
! {
! "SELF", SWITCH_SELF
! }
! ,
! {
! "SEND", SWITCH_SEND
! }
! ,
! {
! "SET", SWITCH_SET
! }
! ,
! {
! "SILENT", SWITCH_SILENT
! }
! ,
! {
! "SKIPDEFAULTS", SWITCH_SKIPDEFAULTS
! }
! ,
! {
! "SPEAK", SWITCH_SPEAK
! }
! ,
! {
! "STATS", SWITCH_STATS
! }
! ,
! {
! "SUMMARY", SWITCH_SUMMARY
! }
! ,
! {
! "TABLES", SWITCH_TABLES
! }
! ,
! {
! "TAG", SWITCH_TAG
! }
! ,
! {
! "TELEPORT", SWITCH_TELEPORT
! }
! ,
! {
! "TF", SWITCH_TF
! }
! ,
! {
! "THINGS", SWITCH_THINGS
! }
! ,
! {
! "TITLE", SWITCH_TITLE
! }
! ,
! {
! "TRACE", SWITCH_TRACE
! }
! ,
! {
! "UNCLEAR", SWITCH_UNCLEAR
! }
! ,
! {
! "UNFOLDER", SWITCH_UNFOLDER
! }
! ,
! {
! "UNGAG", SWITCH_UNGAG
! }
! ,
! {
! "UNHIDE", SWITCH_UNHIDE
! }
! ,
! {
! "UNMUTE", SWITCH_UNMUTE
! }
! ,
! {
! "UNTAG", SWITCH_UNTAG
! }
! ,
! {
! "UNTIL", SWITCH_UNTIL
! }
! ,
! {
! "URGENT", SWITCH_URGENT
! }
! ,
! {
! "USEFLAG", SWITCH_USEFLAG
! }
! ,
! {
! "WHAT", SWITCH_WHAT
! }
! ,
! {
! "WHO", SWITCH_WHO
! }
! ,
! {
! "WIPE", SWITCH_WIPE
! }
! ,
! {
! "WIZ", SWITCH_WIZ
! }
! ,
! {
! "WIZARD", SWITCH_WIZARD
! }
! ,
! {
! "YES", SWITCH_YES
! }
! ,
! {
! "ZONE", SWITCH_ZONE
! }
,
--- 1,391 ----
{
! "ACCESS", SWITCH_ACCESS}
!
! , {
! "ADD", SWITCH_ADD}
!
! , {
! "ALL", SWITCH_ALL}
!
! , {
! "ANY", SWITCH_ANY}
!
! , {
! "ATTRIBS", SWITCH_ATTRIBS}
!
! , {
! "BAN", SWITCH_BAN}
!
! , {
! "BLIND", SWITCH_BLIND}
!
! , {
! "BRIEF", SWITCH_BRIEF}
!
! , {
! "CHECK", SWITCH_CHECK}
!
! , {
! "CHOWN", SWITCH_CHOWN}
!
! , {
! "CLEAR", SWITCH_CLEAR}
!
! , {
! "CMD", SWITCH_CMD}
!
! , {
! "COMMANDS", SWITCH_COMMANDS}
!
! , {
! "CONN", SWITCH_CONN}
!
! , {
! "CONNECT", SWITCH_CONNECT}
!
! , {
! "CONNECTED", SWITCH_CONNECTED}
!
! , {
! "CONTENTS", SWITCH_CONTENTS}
!
! , {
! "COSTS", SWITCH_COSTS}
!
! , {
! "COUNT", SWITCH_COUNT}
!
! , {
! "CREATE", SWITCH_CREATE}
!
! , {
! "DATABASE", SWITCH_DATABASE}
!
! , {
! "DB", SWITCH_DB}
!
! , {
! "DEBUG", SWITCH_DEBUG}
!
! , {
! "DECOMPILE", SWITCH_DECOMPILE}
!
! , {
! "DEFAULTS", SWITCH_DEFAULTS}
!
! , {
! "DELETE", SWITCH_DELETE}
!
! , {
! "DELIMIT", SWITCH_DELIMIT}
!
! , {
! "DESCRIBE", SWITCH_DESCRIBE}
!
! , {
! "DESTROY", SWITCH_DESTROY}
!
! , {
! "DISABLE", SWITCH_DISABLE}
!
! , {
! "DOWN", SWITCH_DOWN}
!
! , {
! "DSTATS", SWITCH_DSTATS}
!
! , {
! "EMIT", SWITCH_EMIT}
!
! , {
! "ENABLE", SWITCH_ENABLE}
!
! , {
! "ERR", SWITCH_ERR}
!
! , {
! "EXITS", SWITCH_EXITS}
!
! , {
! "FILE", SWITCH_FILE}
!
! , {
! "FIRST", SWITCH_FIRST}
!
! , {
! "FLAGS", SWITCH_FLAGS}
!
! , {
! "FOLDERS", SWITCH_FOLDERS}
!
! , {
! "FORWARD", SWITCH_FORWARD}
!
! , {
! "FSTATS", SWITCH_FSTATS}
!
! , {
! "FULL", SWITCH_FULL}
!
! , {
! "FUNCTIONS", SWITCH_FUNCTIONS}
!
! , {
! "FWD", SWITCH_FWD}
!
! , {
! "GAG", SWITCH_GAG}
!
! , {
! "GLOBALS", SWITCH_GLOBALS}
!
! , {
! "HEADER", SWITCH_HEADER}
!
! , {
! "HERE", SWITCH_HERE}
!
! , {
! "HIDE", SWITCH_HIDE}
!
! , {
! "ILIST", SWITCH_ILIST}
!
! , {
! "INVENTORY", SWITCH_INVENTORY}
!
! , {
! "IPRINT", SWITCH_IPRINT}
!
! , {
! "JOIN", SWITCH_JOIN}
!
! , {
! "LIST", SWITCH_LIST}
!
! , {
! "LOWERCASE", SWITCH_LOWERCASE}
!
! , {
! "ME", SWITCH_ME}
!
! , {
! "MEMBERS", SWITCH_MEMBERS}
!
! , {
! "MOD", SWITCH_MOD}
!
! , {
! "MORTAL", SWITCH_MORTAL}
!
! , {
! "MOTD", SWITCH_MOTD}
!
! , {
! "MUTE", SWITCH_MUTE}
!
! , {
! "NAME", SWITCH_NAME}
!
! , {
! "NO", SWITCH_NO}
!
! , {
! "NOEVAL", SWITCH_NOEVAL}
!
! , {
! "NOFLAGCOPY", SWITCH_NOFLAGCOPY}
!
! , {
! "NOISY", SWITCH_NOISY}
!
! , {
! "NOSIG", SWITCH_NOSIG}
!
! , {
! "NOSPACE", SWITCH_NOSPACE}
!
! , {
! "NOTIFY", SWITCH_NOTIFY}
!
! , {
! "NUKE", SWITCH_NUKE}
!
! , {
! "OFF", SWITCH_OFF}
!
! , {
! "ON", SWITCH_ON}
!
! , {
! "OUTSIDE", SWITCH_OUTSIDE}
!
! , {
! "OVERRIDE", SWITCH_OVERRIDE}
!
! , {
! "PANIC", SWITCH_PANIC}
!
! , {
! "PARANOID", SWITCH_PARANOID}
!
! , {
! "PLAYERS", SWITCH_PLAYERS}
!
! , {
! "PORT", SWITCH_PORT}
!
! , {
! "POSE", SWITCH_POSE}
!
! , {
! "PRESERVE", SWITCH_PRESERVE}
!
! , {
! "PRINT", SWITCH_PRINT}
!
! , {
! "PRIVS", SWITCH_PRIVS}
!
! , {
! "PURGE", SWITCH_PURGE}
!
! , {
! "QUICK", SWITCH_QUICK}
!
! , {
! "QUIET", SWITCH_QUIET}
!
! , {
! "READ", SWITCH_READ}
!
! , {
! "REBOOT", SWITCH_REBOOT}
!
! , {
! "REGISTER", SWITCH_REGISTER}
!
! , {
! "REMOVE", SWITCH_REMOVE}
!
! , {
! "RENAME", SWITCH_RENAME}
!
! , {
! "RESTORE", SWITCH_RESTORE}
!
! , {
! "RESTRICT", SWITCH_RESTRICT}
!
! , {
! "RETROACTIVE", SWITCH_RETROACTIVE}
!
! , {
! "ROOM", SWITCH_ROOM}
!
! , {
! "ROOMS", SWITCH_ROOMS}
!
! , {
! "ROYALTY", SWITCH_ROYALTY}
!
! , {
! "SEE", SWITCH_SEE}
!
! , {
! "SEEFLAG", SWITCH_SEEFLAG}
!
! , {
! "SELF", SWITCH_SELF}
!
! , {
! "SEND", SWITCH_SEND}
!
! , {
! "SET", SWITCH_SET}
!
! , {
! "SILENT", SWITCH_SILENT}
!
! , {
! "SKIPDEFAULTS", SWITCH_SKIPDEFAULTS}
!
! , {
! "SPEAK", SWITCH_SPEAK}
!
! , {
! "STATS", SWITCH_STATS}
!
! , {
! "SUMMARY", SWITCH_SUMMARY}
!
! , {
! "TABLES", SWITCH_TABLES}
!
! , {
! "TAG", SWITCH_TAG}
!
! , {
! "TELEPORT", SWITCH_TELEPORT}
!
! , {
! "TF", SWITCH_TF}
!
! , {
! "THINGS", SWITCH_THINGS}
!
! , {
! "TITLE", SWITCH_TITLE}
!
! , {
! "TRACE", SWITCH_TRACE}
!
! , {
! "UNCLEAR", SWITCH_UNCLEAR}
!
! , {
! "UNFOLDER", SWITCH_UNFOLDER}
!
! , {
! "UNGAG", SWITCH_UNGAG}
!
! , {
! "UNHIDE", SWITCH_UNHIDE}
!
! , {
! "UNMUTE", SWITCH_UNMUTE}
!
! , {
! "UNTAG", SWITCH_UNTAG}
!
! , {
! "UNTIL", SWITCH_UNTIL}
!
! , {
! "URGENT", SWITCH_URGENT}
!
! , {
! "USEFLAG", SWITCH_USEFLAG}
!
! , {
! "WHAT", SWITCH_WHAT}
!
! , {
! "WHO", SWITCH_WHO}
!
! , {
! "WIPE", SWITCH_WIPE}
!
! , {
! "WIZ", SWITCH_WIZ}
!
! , {
! "WIZARD", SWITCH_WIZARD}
!
! , {
! "YES", SWITCH_YES}
!
! , {
! "ZONE", SWITCH_ZONE}
!
,
*** 1_7_5.188/src/strutil.c Mon, 29 Apr 2002 10:17:15 -0500 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.3 660)
--- 1_7_5.213(w)/src/strutil.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.6 660)
***************
*** 180,196 ****
}
int
! safe_accent(const char *base, const char *template, size_t len, char *buff,
char **bp)
{
! /* base and template must be the same length */
size_t n;
unsigned char c;
for (n = 0; n < len; n++) {
switch (base[n]) {
case 'A':
! switch (template[n]) {
case '`':
c = 192;
break;
--- 180,196 ----
}
int
! safe_accent(const char *base, const char *tmplate, size_t len, char *buff,
char **bp)
{
! /* base and tmplate must be the same length */
size_t n;
unsigned char c;
for (n = 0; n < len; n++) {
switch (base[n]) {
case 'A':
! switch (tmplate[n]) {
case '`':
c = 192;
break;
***************
*** 214,220 ****
}
break;
case 'a':
! switch (template[n]) {
case '`':
c = 224;
break;
--- 214,220 ----
}
break;
case 'a':
! switch (tmplate[n]) {
case '`':
c = 224;
break;
***************
*** 238,256 ****
}
break;
case 'C':
! if (template[n] == ',')
c = 199;
else
c = 'C';
break;
case 'c':
! if (template[n] == ',')
c = 231;
else
c = 'c';
break;
case 'E':
! switch (template[n]) {
case '`':
c = 200;
break;
--- 238,256 ----
}
break;
case 'C':
! if (tmplate[n] == ',')
c = 199;
else
c = 'C';
break;
case 'c':
! if (tmplate[n] == ',')
c = 231;
else
c = 'c';
break;
case 'E':
! switch (tmplate[n]) {
case '`':
c = 200;
break;
***************
*** 268,274 ****
}
break;
case 'e':
! switch (template[n]) {
case '`':
c = 232;
break;
--- 268,274 ----
}
break;
case 'e':
! switch (tmplate[n]) {
case '`':
c = 232;
break;
***************
*** 286,292 ****
}
break;
case 'I':
! switch (template[n]) {
case '`':
c = 204;
break;
--- 286,292 ----
}
break;
case 'I':
! switch (tmplate[n]) {
case '`':
c = 204;
break;
***************
*** 304,310 ****
}
break;
case 'i':
! switch (template[n]) {
case '`':
c = 236;
break;
--- 304,310 ----
}
break;
case 'i':
! switch (tmplate[n]) {
case '`':
c = 236;
break;
***************
*** 322,340 ****
}
break;
case 'N':
! if (template[n] == '~')
c = 209;
else
c = 'N';
break;
case 'n':
! if (template[n] == '~')
c = 241;
else
c = 'n';
break;
case 'O':
! switch (template[n]) {
case '`':
c = 210;
break;
--- 322,340 ----
}
break;
case 'N':
! if (tmplate[n] == '~')
c = 209;
else
c = 'N';
break;
case 'n':
! if (tmplate[n] == '~')
c = 241;
else
c = 'n';
break;
case 'O':
! switch (tmplate[n]) {
case '`':
c = 210;
break;
***************
*** 355,361 ****
}
break;
case 'o':
! switch (template[n]) {
case '&':
c = 240;
break;
--- 355,361 ----
}
break;
case 'o':
! switch (tmplate[n]) {
case '&':
c = 240;
break;
***************
*** 379,385 ****
}
break;
case 'U':
! switch (template[n]) {
case '`':
c = 217;
break;
--- 379,385 ----
}
break;
case 'U':
! switch (tmplate[n]) {
case '`':
c = 217;
break;
***************
*** 397,403 ****
}
break;
case 'u':
! switch (template[n]) {
case '`':
c = 249;
break;
--- 397,403 ----
}
break;
case 'u':
! switch (tmplate[n]) {
case '`':
c = 249;
break;
***************
*** 415,477 ****
}
break;
case 'Y':
! if (template[n] == '\'')
c = 221;
else
c = 'Y';
break;
case 'y':
! if (template[n] == '\'')
c = 253;
! else if (template[n] == ':')
c = 255;
else
c = 'y';
break;
case '?':
! if (template[n] == 'u')
c = 191;
else
c = '?';
break;
case '!':
! if (template[n] == 'u')
c = 161;
else
c = '!';
break;
case '<':
! if (template[n] == '"')
c = 171;
else
c = '<';
break;
case '>':
! if (template[n] == '"')
c = 187;
else
c = '>';
break;
case 's':
! if (template[n] == 'B')
c = 223;
else
c = 's';
break;
case 'p':
! if (template[n] == '|')
c = 254;
else
c = 'p';
break;
case 'P':
! if (template[n] == '|')
c = 222;
else
c = 'P';
break;
case 'D':
! if (template[n] == '-')
c = 208;
else
c = 'D';
--- 415,477 ----
}
break;
case 'Y':
! if (tmplate[n] == '\'')
c = 221;
else
c = 'Y';
break;
case 'y':
! if (tmplate[n] == '\'')
c = 253;
! else if (tmplate[n] == ':')
c = 255;
else
c = 'y';
break;
case '?':
! if (tmplate[n] == 'u')
c = 191;
else
c = '?';
break;
case '!':
! if (tmplate[n] == 'u')
c = 161;
else
c = '!';
break;
case '<':
! if (tmplate[n] == '"')
c = 171;
else
c = '<';
break;
case '>':
! if (tmplate[n] == '"')
c = 187;
else
c = '>';
break;
case 's':
! if (tmplate[n] == 'B')
c = 223;
else
c = 's';
break;
case 'p':
! if (tmplate[n] == '|')
c = 254;
else
c = 'p';
break;
case 'P':
! if (tmplate[n] == '|')
c = 222;
else
c = 'P';
break;
case 'D':
! if (tmplate[n] == '-')
c = 208;
else
c = 'D';
***************
*** 676,688 ****
int
u_strlen(const unsigned char *s)
{
! return strlen((char *) s);
}
unsigned char *
u_strcpy(unsigned char *target, const unsigned char *source)
{
! return (unsigned char *) strcpy((char *) target, (char *) source);
}
char *
--- 676,688 ----
int
u_strlen(const unsigned char *s)
{
! return strlen((const char *) s);
}
unsigned char *
u_strcpy(unsigned char *target, const unsigned char *source)
{
! return (unsigned char *) strcpy((char *) target, (const char *) source);
}
char *
***************
*** 862,874 ****
/* Strlen that ignores ansi and HTML sequences */
int
! ansi_strlen(const char *string)
{
int i = 0;
! char *p;
! if (!ANSI_JUSTIFY)
! return strlen(string);
! p = (char *) string;
if (!p)
return 0;
--- 862,871 ----
/* Strlen that ignores ansi and HTML sequences */
int
! ansi_strlen(const char *p)
{
int i = 0;
!
if (!p)
return 0;
***************
*** 893,903 ****
/* Returns true length of string up to numchars visible characters.
*/
int
! ansi_strnlen(const char *string, Size_t numchars)
{
int i = 0;
! char *p;
! p = (char *) string;
if (!p)
return 0;
while (*p && numchars > 0) {
--- 890,899 ----
/* Returns true length of string up to numchars visible characters.
*/
int
! ansi_strnlen(const char *p, size_t numchars)
{
int i = 0;
!
if (!p)
return 0;
while (*p && numchars > 0) {
***************
*** 951,957 ****
}
char *
! next_in_list(char **head)
{
int paren = 0;
static char buf[BUFFER_LEN];
--- 947,953 ----
}
char *
! next_in_list(const char **head)
{
int paren = 0;
static char buf[BUFFER_LEN];
***************
*** 987,999 ****
{
static char buff[BUFFER_LEN];
char *bp = buff;
! char *q;
! Size_t len = 0;
if (!orig)
return NULL;
! for (q = (char *) orig; *q;) {
switch (*q) {
case ESC_CHAR:
/* Skip over ansi */
--- 983,995 ----
{
static char buff[BUFFER_LEN];
char *bp = buff;
! const char *q;
! size_t len = 0;
if (!orig)
return NULL;
! for (q = orig; *q;) {
switch (*q) {
case ESC_CHAR:
/* Skip over ansi */
***************
*** 1075,1081 ****
size = stack + sizeof(stack) - current;
! // if (size < (int) ((buff + maxlen - 1) - *bp)) {
if (((int) (*bp - buff)) + size < maxlen - 2) {
switch (size % 8) {
case 0:
--- 1071,1077 ----
size = stack + sizeof(stack) - current;
! /* if (size < (int) ((buff + maxlen - 1) - *bp)) { */
if (((int) (*bp - buff)) + size < maxlen - 2) {
switch (size % 8) {
case 0:
***************
*** 1172,1180 ****
#endif /* HAS_STRXFRM && !WIN32 */
char *
! skip_leading_ansi(const char *s)
{
- char *p = (char *) s;
if (!p)
return NULL;
while (*p == ESC_CHAR || *p == TAG_START) {
--- 1168,1175 ----
#endif /* HAS_STRXFRM && !WIN32 */
char *
! skip_leading_ansi(const char *p)
{
if (!p)
return NULL;
while (*p == ESC_CHAR || *p == TAG_START) {
***************
*** 1188,1194 ****
if (*p)
p++;
}
! return p;
}
--- 1183,1189 ----
if (*p)
p++;
}
! return (char *) p;
}
***************
*** 1206,1212 ****
if (!data)
return NULL;
! data->len = ansi_strlen((char *) src);
while (*src) {
y = skip_leading_ansi(src);
--- 1201,1207 ----
if (!data)
return NULL;
! data->len = ansi_strlen(src);
while (*src) {
y = skip_leading_ansi(src);
*** 1_7_5.188/src/speech.c Mon, 29 Apr 2002 10:17:15 -0500 dunemush (pennmush/b/35_speech.c 1.21.1.2.1.3.1.5.1.1.1.7.1.3.1.1.1.8.1.1.1.1.1.1 660)
--- 1_7_5.213(w)/src/speech.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/35_speech.c 1.21.1.2.1.3.1.5.1.1.1.7.1.3.1.1.1.8.1.1.1.1.1.1.1.3 660)
***************
*** 298,307 ****
dbref good[100];
int gcount, bcount;
char *bad, *bptr;
! char *head;
int overheard;
char *current;
! char **start;
if (!arg1 || !*arg1) {
notify(player, T("Whisper to whom?"));
--- 298,307 ----
dbref good[100];
int gcount, bcount;
char *bad, *bptr;
! const char *head;
int overheard;
char *current;
! const char **start;
if (!arg1 || !*arg1) {
notify(player, T("Whisper to whom?"));
***************
*** 319,325 ****
panic("Unable to allocate memory in do_whisper_list");
overheard = 0;
! head = (char *) arg1;
start = &head;
/* Figure out what kind of message */
gap = " ";
--- 319,325 ----
panic("Unable to allocate memory in do_whisper_list");
overheard = 0;
! head = arg1;
start = &head;
/* Figure out what kind of message */
gap = " ";
***************
*** 340,346 ****
bptr = bad;
safe_str(T("Unable to whisper to:"), bad, &bptr);
while (head && *head) {
! current = (char *) next_in_list(start);
who = match_result(player, current, TYPE_PLAYER, MAT_NEAR_THINGS |
MAT_CONTAINER);
if (!GoodObject(who)) {
--- 340,346 ----
bptr = bad;
safe_str(T("Unable to whisper to:"), bad, &bptr);
while (head && *head) {
! current = next_in_list(start);
who = match_result(player, current, TYPE_PLAYER, MAT_NEAR_THINGS |
MAT_CONTAINER);
if (!GoodObject(who)) {
***************
*** 485,491 ****
}
void
! do_pemit_list(dbref player, char *list, const char *message)
{
/* Send a message to a list of dbrefs. To avoid repeated generation
* of the NOSPOOF string, we set it up the first time we encounter
--- 485,491 ----
}
void
! do_pemit_list(dbref player, char *list, const char *message, int nospoof)
{
/* Send a message to a list of dbrefs. To avoid repeated generation
* of the NOSPOOF string, we set it up the first time we encounter
***************
*** 510,516 ****
while ((p = split_token(&l, ' '))) {
who = noisy_match_result(player, p, NOTYPE, MAT_ABSOLUTE);
if (GoodObject(who) && okay_pemit(player, who)) {
! if (Nospoof(who)) {
bp = tbuf;
if (Paranoid(who))
safe_format(tbuf, &bp, "[%s(#%d)->] ", Name(player), player);
--- 510,516 ----
while ((p = split_token(&l, ' '))) {
who = noisy_match_result(player, p, NOTYPE, MAT_ABSOLUTE);
if (GoodObject(who) && okay_pemit(player, who)) {
! if (nospoof && Nospoof(who)) {
bp = tbuf;
if (Paranoid(who))
safe_format(tbuf, &bp, "[%s(#%d)->] ", Name(player), player);
***************
*** 527,539 ****
}
void
! do_pemit(dbref player, const char *arg1, const char *arg2, int silent)
{
dbref who;
! switch (who =
! match_result(player, arg1, NOTYPE,
! MAT_OBJECTS | MAT_HERE | MAT_CONTAINER)) {
case NOTHING:
notify(player, T("I don't see that here."));
break;
--- 527,539 ----
}
void
! do_pemit(dbref player, const char *arg1, const char *arg2, int silent,
! int nospoof)
{
dbref who;
! switch (who = match_result(player, arg1, NOTYPE,
! MAT_OBJECTS | MAT_HERE | MAT_CONTAINER)) {
case NOTHING:
notify(player, T("I don't see that here."));
break;
***************
*** 553,559 ****
}
if (!silent)
notify_format(player, T("You pemit \"%s\" to %s."), arg2, Name(who));
! if (Nospoof(who)) {
if (Paranoid(who))
notify_format(who, "[%s(#%d)->%s] %s", Name(player), player,
Name(who), arg2);
--- 553,559 ----
}
if (!silent)
notify_format(player, T("You pemit \"%s\" to %s."), arg2, Name(who));
! if (nospoof && Nospoof(who)) {
if (Paranoid(who))
notify_format(who, "[%s(#%d)->%s] %s", Name(player), player,
Name(who), arg2);
***************
*** 697,703 ****
int noeval, int multipage)
{
dbref target;
! char *message;
const char *gap;
int key;
char *tbuf, *tbuf2;
--- 697,703 ----
int noeval, int multipage)
{
dbref target;
! const char *message;
const char *gap;
int key;
char *tbuf, *tbuf2;
***************
*** 705,714 ****
char *rp, *rplist;
dbref good[100];
int gcount = 0, bcount = 0;
! char tobuf[BUFFER_LEN];
! char msgbuf[BUFFER_LEN];
! char *head;
! char **start;
char *current;
char *s;
int i;
--- 705,714 ----
char *rp, *rplist;
dbref good[100];
int gcount = 0, bcount = 0;
! char tobuf[BUFFER_LEN], *tb;
! char msgbuf[BUFFER_LEN], *mb;
! const char *head;
! const char **start;
char *current;
char *s;
int i;
***************
*** 717,746 ****
if (arg2 && *arg2) {
/* page to=msg. Always evaluate to, maybe evaluate msg */
! head = tobuf;
! process_expression(tobuf, &head, &arg1, player, cause, cause,
PE_DEFAULT, PT_DEFAULT, NULL);
! *head = '\0';
head = tobuf;
if (noeval) {
! message = (char *) arg2;
} else {
! message = msgbuf;
! process_expression(msgbuf, &message, &arg2, player, cause, cause,
PE_DEFAULT, PT_DEFAULT, NULL);
! *message = '\0';
message = msgbuf;
}
} else {
/* page msg. A repage. Maybe evaluate msg */
head = NULL;
if (noeval) {
! message = (char *) arg1;
} else {
! message = msgbuf;
! process_expression(msgbuf, &message, &arg1, player, cause, cause,
PE_DEFAULT, PT_DEFAULT, NULL);
! *message = '\0';
message = msgbuf;
}
}
--- 717,746 ----
if (arg2 && *arg2) {
/* page to=msg. Always evaluate to, maybe evaluate msg */
! tb = tobuf;
! process_expression(tobuf, &tb, &arg1, player, cause, cause,
PE_DEFAULT, PT_DEFAULT, NULL);
! *tb = '\0';
head = tobuf;
if (noeval) {
! message = arg2;
} else {
! mb = msgbuf;
! process_expression(msgbuf, &mb, &arg2, player, cause, cause,
PE_DEFAULT, PT_DEFAULT, NULL);
! *mb = '\0';
message = msgbuf;
}
} else {
/* page msg. A repage. Maybe evaluate msg */
head = NULL;
if (noeval) {
! message = arg1;
} else {
! mb = msgbuf;
! process_expression(msgbuf, &mb, &arg1, player, cause, cause,
PE_DEFAULT, PT_DEFAULT, NULL);
! *mb = '\0';
message = msgbuf;
}
}
***************
*** 805,811 ****
safe_str(T("Unable to page:"), tbuf, &tp);
while (head && *head) {
! current = (char *) next_in_list(start);
target = lookup_player(current);
if (!GoodObject(target))
target = short_page(current);
--- 805,811 ----
safe_str(T("Unable to page:"), tbuf, &tp);
while (head && *head) {
! current = next_in_list(start);
target = lookup_player(current);
if (!GoodObject(target))
target = short_page(current);
***************
*** 1075,1082 ****
const char *
make_prefixstr(dbref thing, const char *msg)
{
! char *bp;
! char const *asave, *ap;
static char tbuf1[BUFFER_LEN];
char *wsave[10], *preserve[NUMQ];
ATTR *a;
--- 1075,1082 ----
const char *
make_prefixstr(dbref thing, const char *msg)
{
! char *bp, *asave;
! char const *ap;
static char tbuf1[BUFFER_LEN];
char *wsave[10], *preserve[NUMQ];
ATTR *a;
*** 1_7_5.188/src/set.c Wed, 10 Apr 2002 20:36:23 -0500 dunemush (pennmush/b/38_set.c 1.26.1.5.1.1.2.1.1.2 660)
--- 1_7_5.213(w)/src/set.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/38_set.c 1.26.1.5.1.1.2.1.1.1.1.1.1.3 660)
***************
*** 6,16 ****
/* commands which set parameters */
#include <stdio.h>
#include <ctype.h>
- #ifdef I_STRING
#include <string.h>
- #else
- #include <strings.h>
- #endif
#ifdef I_SYS_TIME
#include <sys/time.h>
#else
--- 6,12 ----
***************
*** 19,27 ****
#ifdef I_SYS_TYPES
#include <sys/types.h>
#endif
- #ifdef I_STDLIB
#include <stdlib.h>
- #endif
#include "conf.h"
#include "mushdb.h"
--- 15,21 ----
***************
*** 372,377 ****
--- 366,385 ----
notify(player, T("You shouldn't zone objects to themselves!"));
return 0;
}
+ /* Don't allow circular zones */
+ {
+ dbref tmp;
+ for (tmp = Zone(zone); GoodObject(tmp); tmp = Zone(tmp)) {
+ if (tmp == thing) {
+ notify(player, T("You can't make circular zones!"));
+ return 0;
+ }
+ if (tmp == Zone(tmp)) /* Ran into an object zoned to itself */
+ break;
+ }
+ }
+
+
/* Don't allow chzone to objects without elocks!
* If no lock is set, set a default lock (warn if zmo are used for control)
* This checks for many trivial elocks (canuse/1, where &canuse=1)
***************
*** 454,461 ****
if (!(Can_Write_Attr(player, thing, AL_ATTR(atr)) ||
((*af->flag == NOT_TOKEN) && (af->f == AF_SAFE) &&
Can_Write_Attr_Ignore_Safe(player, thing, AL_ATTR(atr))))) {
! notify(player,
! tprintf(T("You cannot set %s/%s"), Name(thing), AL_NAME(atr)));
return 0;
}
if (*af->flag == NOT_TOKEN)
--- 462,468 ----
if (!(Can_Write_Attr(player, thing, AL_ATTR(atr)) ||
((*af->flag == NOT_TOKEN) && (af->f == AF_SAFE) &&
Can_Write_Attr_Ignore_Safe(player, thing, AL_ATTR(atr))))) {
! notify_format(player, T("You cannot set %s/%s"), Name(thing), AL_NAME(atr));
return 0;
}
if (*af->flag == NOT_TOKEN)
***************
*** 464,470 ****
AL_FLAGS(atr) |= af->f;
if (!Quiet(player) && !(Quiet(thing) && (Owner(thing) == player)))
! notify(player, tprintf("%s/%s - Set.", Name(thing), AL_NAME(atr)));
return 1;
}
--- 471,477 ----
AL_FLAGS(atr) |= af->f;
if (!Quiet(player) && !(Quiet(thing) && (Owner(thing) == player)))
! notify_format(player, "%s/%s - Set.", Name(thing), AL_NAME(atr));
return 1;
}
***************
*** 479,487 ****
if (!atr)
return;
if (!Can_Write_Attr(player, target, AL_ATTR(atr))) {
! notify(player,
! tprintf(T("You cannot set attrib flags on %s/%s"), Name(target),
! AL_NAME(atr)));
return;
}
AL_FLAGS(atr) = flags;
--- 486,494 ----
if (!atr)
return;
if (!Can_Write_Attr(player, target, AL_ATTR(atr))) {
! notify_format(player,
! T("You cannot set attrib flags on %s/%s"), Name(target),
! AL_NAME(atr));
return;
}
AL_FLAGS(atr) = flags;
***************
*** 647,659 ****
free((Malloc_t) text); /* safe_uncompress malloc()s memory */
if (copies) {
! notify(player, tprintf(T("Attribute %s (%d copies)"),
! (move ? "moved" : "copied"), copies));
if (move)
do_set_atr(oldobj, AL_NAME(a), NULL, player, 1);
} else {
! notify(player, tprintf(T("Unable to %s attribute."),
! (move ? "move" : "copy")));
}
return;
}
--- 654,666 ----
free((Malloc_t) text); /* safe_uncompress malloc()s memory */
if (copies) {
! notify_format(player, T("Attribute %s (%d copies)"),
! (move ? "moved" : "copied"), copies);
if (move)
do_set_atr(oldobj, AL_NAME(a), NULL, player, 1);
} else {
! notify_format(player, T("Unable to %s attribute."),
! (move ? "move" : "copy"));
}
return;
}
***************
*** 667,679 ****
void *args;
{
int ansi_long_flag = 0;
! char *r, *s, *val;
char tbuf1[BUFFER_LEN], tbuf_ansi[BUFFER_LEN];
char *tbufp, *tbufap;
char **argv = (char **) args;
val = argv[1];
! r = (argv[2]) ? argv[2] : (char *) "";
tbufp = tbuf1;
tbufap = tbuf_ansi;
--- 674,687 ----
void *args;
{
int ansi_long_flag = 0;
! const char *r;
! char *s, *val;
char tbuf1[BUFFER_LEN], tbuf_ansi[BUFFER_LEN];
char *tbufp, *tbufap;
char **argv = (char **) args;
val = argv[1];
! r = (argv[2]) ? argv[2] : "";
tbufp = tbuf1;
tbufap = tbuf_ansi;
***************
*** 756,764 ****
if (do_set_atr(thing, AL_NAME(a), tbuf1, player, 0) &&
!Quiet(player) && !Quiet(thing)) {
if (!ansi_long_flag && ShowAnsi(player))
! notify(player, tprintf("%s - Set: %s", AL_NAME(a), tbuf_ansi));
else
! notify(player, tprintf("%s - Set: %s", AL_NAME(a), tbuf1));
}
return 1;
--- 764,772 ----
if (do_set_atr(thing, AL_NAME(a), tbuf1, player, 0) &&
!Quiet(player) && !Quiet(thing)) {
if (!ansi_long_flag && ShowAnsi(player))
! notify_format(player, "%s - Set: %s", AL_NAME(a), tbuf_ansi);
else
! notify_format(player, "%s - Set: %s", AL_NAME(a), tbuf1);
}
return 1;
***************
*** 838,844 ****
if (charge_action(player, thing, upcasestr(s))) {
if (!Quiet(player) && !Quiet(thing))
! notify(player, tprintf("%s - Triggered.", Name(thing)));
} else {
notify(player, T("No such attribute."));
}
--- 846,852 ----
if (charge_action(player, thing, upcasestr(s))) {
if (!Quiet(player) && !Quiet(thing))
! notify_format(player, "%s - Triggered.", Name(thing));
} else {
notify(player, T("No such attribute."));
}
*** 1_7_5.188/src/services.c Tue, 15 May 2001 15:59:50 -0500 dunemush (pennmush/b/39_services.c 1.11 660)
--- 1_7_5.213(w)/src/services.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/39_services.c 1.12 660)
***************
*** 8,14 ****
#include "config.h"
#include <windows.h> /* for service and thread routines */
- #undef OPAQUE /* clashes with MUSH definition */
#ifdef I_STDLIB
#include <stdlib.h>
--- 8,13 ----
*** 1_7_5.188/src/rob.c Mon, 11 Mar 2002 18:22:55 -0600 dunemush (pennmush/b/42_rob.c 1.18.1.2.1.3.1.4 660)
--- 1_7_5.213(w)/src/rob.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/42_rob.c 1.18.1.2.1.3.1.3.1.3 660)
***************
*** 3,11 ****
#include "config.h"
#include "copyrite.h"
#include <ctype.h>
- #ifdef I_STDLIB
#include <stdlib.h>
- #endif
/* give and kill */
--- 3,9 ----
***************
*** 18,35 ****
#include "log.h"
#include "lock.h"
#include "dbdefs.h"
#include "confmagic.h"
-
- void do_kill _((dbref player, const char *what, int cost, int slay));
- void do_give _((dbref player, char *recipient, char *amnt, int silent));
-
void
! do_kill(player, what, cost, slay)
! dbref player;
! const char *what;
! int cost;
! int slay;
{
dbref victim;
char tbuf1[BUFFER_LEN], tbuf2[BUFFER_LEN];
--- 16,26 ----
#include "log.h"
#include "lock.h"
#include "dbdefs.h"
+ #include "game.h"
#include "confmagic.h"
void
! do_kill(dbref player, const char *what, int cost, int slay)
{
dbref victim;
char tbuf1[BUFFER_LEN], tbuf2[BUFFER_LEN];
***************
*** 78,84 ****
/* see if it works */
if (!payfor(player, cost)) {
! notify(player, tprintf(T("You don't have enough %s."), MONIES));
break;
}
}
--- 69,75 ----
/* see if it works */
if (!payfor(player, cost)) {
! notify_format(player, T("You don't have enough %s."), MONIES);
break;
}
}
***************
*** 101,108 ****
if (payoff + Pennies(Owner(victim)) > Max_Pennies(Owner(victim)))
payoff = Max_Pennies(Owner(victim)) - Pennies(Owner(victim));
if (payoff > 0) {
! notify(victim, tprintf(T("Your insurance policy pays %d %s."),
! payoff, ((payoff == 1) ? MONEY : MONIES)));
giveto(Owner(victim), payoff);
} else {
notify(victim, T("Your insurance policy has been revoked."));
--- 92,99 ----
if (payoff + Pennies(Owner(victim)) > Max_Pennies(Owner(victim)))
payoff = Max_Pennies(Owner(victim)) - Pennies(Owner(victim));
if (payoff > 0) {
! notify_format(victim, T("Your insurance policy pays %d %s."),
! payoff, ((payoff == 1) ? MONEY : MONIES));
giveto(Owner(victim), payoff);
} else {
notify(victim, T("Your insurance policy has been revoked."));
***************
*** 114,120 ****
} else {
/* notify player and victim only */
notify(player, T("Your murder attempt failed."));
! notify(victim, tprintf(T("%s tried to kill you!"), Name(player)));
}
break;
}
--- 105,111 ----
} else {
/* notify player and victim only */
notify(player, T("Your murder attempt failed."));
! notify_format(victim, T("%s tried to kill you!"), Name(player));
}
break;
}
***************
*** 122,132 ****
}
void
! do_give(player, recipient, amnt, silent)
! dbref player;
! char *recipient;
! char *amnt;
! int silent;
{
dbref who;
int amount;
--- 113,119 ----
}
void
! do_give(dbref player, char *recipient, char *amnt, int silent)
{
dbref who;
int amount;
***************
*** 199,206 ****
"AGIVE", NOTHING, myenv);
/* Notify the object that it's been given */
! notify(thing,
! tprintf(T("%s gave you to %s."), Name(player), Name(who)));
/* Recipient gets success message on thing and receive on self */
did_it(who, thing, "SUCCESS", NULL, "OSUCCESS", NULL, "ASUCCESS",
--- 186,192 ----
"AGIVE", NOTHING, myenv);
/* Notify the object that it's been given */
! notify_format(thing, T("%s gave you to %s."), Name(player), Name(who));
/* Recipient gets success message on thing and receive on self */
did_it(who, thing, "SUCCESS", NULL, "OSUCCESS", NULL, "ASUCCESS",
***************
*** 209,214 ****
--- 195,201 ----
safe_format(tbuf1, &bp, T("%s gave you %s."), Name(player),
Name(thing));
*bp = '\0';
+ sprintf(myenv[1], "#%d", player);
real_did_it(who, who, "RECEIVE", tbuf1, "ORECEIVE", NULL,
"ARECEIVE", NOTHING, myenv);
***************
*** 225,232 ****
notify(player, T("What is this, a holdup?"));
return;
} else if (amount == 0) {
! notify(player,
! tprintf(T("You must specify a positive number of %s."), MONIES));
return;
}
if (Pennies(who) + amount > Max_Pennies(who)) {
--- 212,219 ----
notify(player, T("What is this, a holdup?"));
return;
} else if (amount == 0) {
! notify_format(player,
! T("You must specify a positive number of %s."), MONIES);
return;
}
if (Pennies(who) + amount > Max_Pennies(who)) {
***************
*** 240,246 ****
}
/* try to do the give */
if (!payfor(player, amount)) {
! notify(player, tprintf(T("You don't have that many %s to give!"), MONIES));
} else {
/* objects work differently */
if (IsThing(who)) {
--- 227,233 ----
}
/* try to do the give */
if (!payfor(player, amount)) {
! notify_format(player, T("You don't have that many %s to give!"), MONIES);
} else {
/* objects work differently */
if (IsThing(who)) {
***************
*** 269,290 ****
} else {
/* he can do it */
if (amount > 0) {
! notify(player,
! tprintf(T("You give %d %s to %s."), amount,
! ((amount == 1) ? MONEY : MONIES), Name(who)));
} else {
! notify(player, tprintf(T("You took %d %s from %s!"), abs(amount),
! ((abs(amount) == 1) ? MONEY : MONIES),
! Name(who)));
}
if (IsPlayer(who) && !silent) {
if (amount > 0) {
! notify(who, tprintf(T("%s gives you %d %s."), Name(player),
! amount, ((amount == 1) ? MONEY : MONIES)));
} else {
! notify(who, tprintf(T("%s took %d %s from you!"), Name(player),
! abs(amount),
! ((abs(amount) == 1) ? MONEY : MONIES)));
}
}
giveto(who, amount);
--- 256,275 ----
} else {
/* he can do it */
if (amount > 0) {
! notify_format(player,
! T("You give %d %s to %s."), amount,
! ((amount == 1) ? MONEY : MONIES), Name(who));
} else {
! notify_format(player, T("You took %d %s from %s!"), abs(amount),
! ((abs(amount) == 1) ? MONEY : MONIES), Name(who));
}
if (IsPlayer(who) && !silent) {
if (amount > 0) {
! notify_format(who, T("%s gives you %d %s."), Name(player),
! amount, ((amount == 1) ? MONEY : MONIES));
} else {
! notify_format(who, T("%s took %d %s from you!"), Name(player),
! abs(amount), ((abs(amount) == 1) ? MONEY : MONIES));
}
}
giveto(who, amount);
*** 1_7_5.188/src/predicat.c Wed, 06 Feb 2002 23:25:21 -0600 dunemush (pennmush/b/44_predicat.c 1.1.1.34.1.1.1.3.1.4.2.2 660)
--- 1_7_5.213(w)/src/predicat.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/44_predicat.c 1.1.1.34.1.1.1.3.1.4.2.3 660)
***************
*** 183,190 ****
*/
ATTR *d;
! char buff[BUFFER_LEN], *bp, *sp;
! char const *asave, *ap;
int j;
char *preserves[10];
char *preserveq[NUMQ];
--- 183,190 ----
*/
ATTR *d;
! char buff[BUFFER_LEN], *bp, *sp, *asave;
! char const *ap;
int j;
char *preserves[10];
char *preserveq[NUMQ];
***************
*** 797,804 ****
/* code for auto-return page - HAVEN, IDLE, and AWAY messages */
ATTR *d;
! char buff[BUFFER_LEN], *bp;
! char const *asave, *ap;
struct tm *ptr;
if (message && *message) {
--- 797,804 ----
/* code for auto-return page - HAVEN, IDLE, and AWAY messages */
ATTR *d;
! char buff[BUFFER_LEN], *bp, *asave;
! char const *ap;
struct tm *ptr;
if (message && *message) {
*** 1_7_5.188/src/plyrlist.c Wed, 15 May 2002 20:41:03 -0500 dunemush (pennmush/b/46_plyrlist.c 1.5.1.2 660)
--- 1_7_5.213(w)/src/plyrlist.c Thu, 04 Jul 2002 16:11:38 -0500 dunemush (pennmush/b/46_plyrlist.c 1.5.1.2.1.1 660)
***************
*** 3,16 ****
#include "config.h"
#include <ctype.h>
- #ifdef I_STRING
#include <string.h>
- #else
- #include <strings.h>
- #endif
- #ifdef I_STDLIB
#include <stdlib.h>
! #endif
#include "copyrite.h"
#include "conf.h"
--- 3,11 ----
#include "config.h"
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
!
#include "copyrite.h"
#include "conf.h"
***************
*** 25,31 ****
HASHTAB htab_player_list;
static int hft_initialized = 0;
! static void init_hft _((void));
static void
init_hft()
--- 20,26 ----
HASHTAB htab_player_list;
static int hft_initialized = 0;
! static void init_hft(void);
static void
init_hft()
***************
*** 42,50 ****
void
! add_player(player, alias)
! dbref player;
! char *alias;
{
if (!hft_initialized)
init_hft();
--- 37,43 ----
void
! add_player(dbref player, const char *alias)
{
if (!hft_initialized)
init_hft();
***************
*** 55,62 ****
}
dbref
! lookup_player(name)
! const char *name;
{
int p;
void *hval;
--- 48,54 ----
}
dbref
! lookup_player(const char *name)
{
int p;
void *hval;
***************
*** 86,94 ****
}
void
! delete_player(player, alias)
! dbref player;
! char *alias;
{
if (alias)
hashdelete(strupper(alias), &htab_player_list);
--- 78,84 ----
}
void
! delete_player(dbref player, const char *alias)
{
if (alias)
hashdelete(strupper(alias), &htab_player_list);
*** 1_7_5.188/src/mycrypt.c Wed, 06 Sep 2000 20:09:35 -0500 dunemush (pennmush/b/50_mycrypt.c 1.4 660)
--- 1_7_5.213(w)/src/mycrypt.c Thu, 04 Jul 2002 16:11:37 -0500 dunemush (pennmush/b/50_mycrypt.c 1.5 660)
***************
*** 28,37 ****
#include "shs.c"
#endif
! char *mush_crypt _((const char *key));
char *
! mush_crypt(key)
! const char *key;
{
#if (CRYPT_SYSTEM >= 2)
SHS_INFO shsInfo;
--- 28,36 ----
#include "shs.c"
#endif
! char *mush_crypt(const char *key);
char *
! mush_crypt(const char *key)
{
#if (CRYPT_SYSTEM >= 2)
SHS_INFO shsInfo;
***************
*** 51,57 ****
#if (CRYPT_SYSTEM >= 2)
shsInfo.reverse_wanted = (BYTE) options.reverse_shs;
shsInit(&shsInfo);
! shsUpdate(&shsInfo, (BYTE *) key, strlen(key));
shsFinal(&shsInfo);
sprintf(crypt_buff, "XX%lu%lu", shsInfo.digest[0], shsInfo.digest[1]);
return crypt_buff;
--- 50,56 ----
#if (CRYPT_SYSTEM >= 2)
shsInfo.reverse_wanted = (BYTE) options.reverse_shs;
shsInit(&shsInfo);
! shsUpdate(&shsInfo, (const BYTE *) key, strlen(key));
shsFinal(&shsInfo);
sprintf(crypt_buff, "XX%lu%lu", shsInfo.digest[0], shsInfo.digest[1]);
return crypt_buff;
*** 1_7_5.188/src/move.c Fri, 10 May 2002 22:07:51 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1.1.1.1.2.1.2 660)
--- 1_7_5.213(w)/src/move.c Thu, 04 Jul 2002 16:11:37 -0500 dunemush (pennmush/b/51_move.c 1.1.1.18.1.5.1.13.1.3.1.9.1.1.1.1.1.2.1.1.1.4 660)
***************
*** 4,14 ****
#include "config.h"
#include <ctype.h>
- #ifdef I_STRING
#include <string.h>
- #else
- #include <strings.h>
- #endif
#include "conf.h"
#include "mushdb.h"
--- 4,10 ----
***************
*** 28,47 ****
extern char ccom[BUFFER_LEN];
! void moveit _((dbref what, dbref where, int nomovemsgs));
! static void send_contents _((dbref loc, dbref dest));
! static void maybe_dropto _((dbref loc, dbref dropto));
! static dbref find_var_dest _((dbref player, dbref exit_obj));
! static void add_follower _((dbref leader, dbref follower));
! static void add_following _((dbref follower, dbref leader));
! static void add_follow _((dbref leader, dbref follower, int noisy));
! static void del_follower _((dbref leader, dbref follower));
! static void del_following _((dbref follower, dbref leader));
! static void del_follow _((dbref follower, dbref leader, int noisy));
! static char *list_followers _((dbref player));
! static char *list_following _((dbref player));
! static int is_following _((dbref follower, dbref leader));
! static void follower_command _((dbref leader, dbref loc, char *com));
void
moveto(what, where)
--- 24,43 ----
extern char ccom[BUFFER_LEN];
! void moveit(dbref what, dbref where, int nomovemsgs);
! static void send_contents(dbref loc, dbref dest);
! static void maybe_dropto(dbref loc, dbref dropto);
! static dbref find_var_dest(dbref player, dbref exit_obj);
! static void add_follower(dbref leader, dbref follower);
! static void add_following(dbref follower, dbref leader);
! static void add_follow(dbref leader, dbref follower, int noisy);
! static void del_follower(dbref leader, dbref follower);
! static void del_following(dbref follower, dbref leader);
! static void del_follow(dbref follower, dbref leader, int noisy);
! static char *list_followers(dbref player);
! static char *list_following(dbref player);
! static int is_following(dbref follower, dbref leader);
! static void follower_command(dbref leader, dbref loc, const char *com);
void
moveto(what, where)
***************
*** 484,490 ****
Exits(loc) = remove_first(Exits(loc), thing);
Source(thing) = loc;
PUSH(thing, Exits(loc));
! notify(player, tprintf(T("%s is now the first exit."), Name(thing)));
}
--- 480,486 ----
Exits(loc) = remove_first(Exits(loc), thing);
Source(thing) = loc;
PUSH(thing, Exits(loc));
! notify_format(player, T("%s is now the first exit."), Name(thing));
}
***************
*** 526,539 ****
(controls(player, thing) ||
(EnterOk(Location(thing)) &&
eval_lock(player, Location(thing), Enter_Lock)))) {
! moveto(thing, player);
! notify(Location(thing),
! tprintf(T("%s was taken from you."), Name(thing)));
notify_format(thing, T("%s took you."), Name(player));
sprintf(tbuf1, T("You take %s from %s."), Name(thing),
Name(Location(thing)));
sprintf(tbuf2, T("takes %s from %s."), Name(thing),
Name(Location(thing)));
did_it(player, thing, "SUCCESS", tbuf1, "OSUCCESS", tbuf2, "ASUCCESS",
NOTHING);
myenv[0] = (char *) mush_malloc(BUFFER_LEN, "dbref");
--- 522,535 ----
(controls(player, thing) ||
(EnterOk(Location(thing)) &&
eval_lock(player, Location(thing), Enter_Lock)))) {
! notify_format(Location(thing),
! T("%s was taken from you."), Name(thing));
notify_format(thing, T("%s took you."), Name(player));
sprintf(tbuf1, T("You take %s from %s."), Name(thing),
Name(Location(thing)));
sprintf(tbuf2, T("takes %s from %s."), Name(thing),
Name(Location(thing)));
+ moveto(thing, player);
did_it(player, thing, "SUCCESS", tbuf1, "OSUCCESS", tbuf2, "ASUCCESS",
NOTHING);
myenv[0] = (char *) mush_malloc(BUFFER_LEN, "dbref");
***************
*** 721,727 ****
}
enter_room(player, Location(loc), 0);
if (Location(player) != loc)
! follower_command(player, loc, (char *) "leave");
}
dbref
--- 717,723 ----
}
enter_room(player, Location(loc), 0);
if (Location(player) != loc)
! follower_command(player, loc, "leave");
}
dbref
***************
*** 821,829 ****
add_follow(leader, player, 1);
} else {
/* List followers */
! notify(player, tprintf(T("You are following: %s"), list_following(player)));
! notify(player,
! tprintf(T("You are followed by: %s"), list_followers(player)));
}
}
--- 817,824 ----
add_follow(leader, player, 1);
} else {
/* List followers */
! notify_format(player, T("You are following: %s"), list_following(player));
! notify_format(player, T("You are followed by: %s"), list_followers(player));
}
}
***************
*** 982,988 ****
add_following(follower, leader);
if (noisy) {
strcpy(msg, tprintf(T("You begin following %s."), Name(leader)));
! notify(leader, tprintf(T("%s begins following you."), Name(follower)));
did_it(follower, leader, "FOLLOW", msg, "OFOLLOW", NULL,
"AFOLLOW", NOTHING);
}
--- 977,983 ----
add_following(follower, leader);
if (noisy) {
strcpy(msg, tprintf(T("You begin following %s."), Name(leader)));
! notify_format(leader, T("%s begins following you."), Name(follower));
did_it(follower, leader, "FOLLOW", msg, "OFOLLOW", NULL,
"AFOLLOW", NOTHING);
}
***************
*** 1040,1046 ****
del_following(follower, leader);
if (noisy) {
strcpy(msg, tprintf(T("You stop following %s."), Name(leader)));
! notify(leader, tprintf(T("%s stops following you."), Name(follower)));
did_it(follower, leader, "UNFOLLOW", msg, "OUNFOLLOW", NULL,
"AUNFOLLOW", NOTHING);
}
--- 1035,1041 ----
del_following(follower, leader);
if (noisy) {
strcpy(msg, tprintf(T("You stop following %s."), Name(leader)));
! notify_format(leader, T("%s stops following you."), Name(follower));
did_it(follower, leader, "UNFOLLOW", msg, "OUNFOLLOW", NULL,
"AUNFOLLOW", NOTHING);
}
***************
*** 1158,1164 ****
if (GoodObject(flwr)) {
del_following(flwr, leader);
if (noisy)
! notify(flwr, tprintf(T("You stop following %s."), Name(leader)));
}
}
(void) atr_clr(leader, "FOLLOWERS", GOD);
--- 1153,1159 ----
if (GoodObject(flwr)) {
del_following(flwr, leader);
if (noisy)
! notify_format(flwr, T("You stop following %s."), Name(leader));
}
}
(void) atr_clr(leader, "FOLLOWERS", GOD);
***************
*** 1185,1191 ****
if (GoodObject(ldr)) {
del_follower(ldr, follower);
if (noisy)
! notify(ldr, tprintf(T("%s stops following you."), Name(follower)));
}
}
(void) atr_clr(follower, "FOLLOWING", GOD);
--- 1180,1186 ----
if (GoodObject(ldr)) {
del_follower(ldr, follower);
if (noisy)
! notify_format(ldr, T("%s stops following you."), Name(follower));
}
}
(void) atr_clr(follower, "FOLLOWING", GOD);
***************
*** 1195,1204 ****
* leader, run the same command the leader just ran.
*/
static void
! follower_command(leader, loc, com)
! dbref leader;
! dbref loc;
! char *com;
{
dbref follower;
ATTR *a;
--- 1190,1196 ----
* leader, run the same command the leader just ran.
*/
static void
! follower_command(dbref leader, dbref loc, const char *com)
{
dbref follower;
ATTR *a;
*** 1_7_5.188/src/match.c Tue, 09 Apr 2002 11:29:01 -0500 dunemush (pennmush/c/2_match.c 1.25 660)
--- 1_7_5.213(w)/src/match.c Thu, 04 Jul 2002 16:11:37 -0500 dunemush (pennmush/c/2_match.c 1.24.1.1.1.2 660)
***************
*** 94,106 ****
const int type, const long int flags,
dbref *last_match, int *match_count);
static dbref match_english(const dbref who, const char *name,
! const int type, const long int flags);
static dbref choose_thing(const dbref match_who, const int preferred_type,
long int flags, dbref thing1, dbref thing2,
int *match_count);
-
/* A wrapper for returning a match, AMBIGUOUS, or NOTHING
*/
dbref
--- 94,105 ----
const int type, const long int flags,
dbref *last_match, int *match_count);
static dbref match_english(const dbref who, const char *name,
! const long int flags);
static dbref choose_thing(const dbref match_who, const int preferred_type,
long int flags, dbref thing1, dbref thing2,
int *match_count);
/* A wrapper for returning a match, AMBIGUOUS, or NOTHING
*/
dbref
***************
*** 252,258 ****
}
if ((flags & MAT_ENGLISH) && !GoodObject(last_match)
&& !GoodObject(exact_match)) {
! match = match_english(who, name, type, flags);
if (GoodObject(match)) {
exact_match_count++;
exact_match = match;
--- 251,257 ----
}
if ((flags & MAT_ENGLISH) && !GoodObject(last_match)
&& !GoodObject(exact_match)) {
! match = match_english(who, name, flags);
if (GoodObject(match)) {
exact_match_count++;
exact_match = match;
***************
*** 525,534 ****
}
static dbref
! match_english(who, name, type, flags)
const dbref who;
const char *name;
- const int type;
const long int flags;
{
int do_loc;
--- 524,532 ----
}
static dbref
! match_english(who, name, flags)
const dbref who;
const char *name;
const long int flags;
{
int do_loc;
***************
*** 619,627 ****
}
matchnum = 0;
DOLIST(item, item) {
! if ((Typeof(item) & type)
! && (!strcasecmp(Name(item), dupname)
! || string_match(Name(item), dupname))) {
matchnum++;
if (matchnum == num) {
mush_free(p, "string");
--- 617,624 ----
}
matchnum = 0;
DOLIST(item, item) {
! if (!strcasecmp(Name(item), dupname)
! || string_match(Name(item), dupname)) {
matchnum++;
if (matchnum == num) {
mush_free(p, "string");
*** 1_7_5.188/src/look.c Mon, 29 Apr 2002 13:41:26 -0500 dunemush (pennmush/c/4_look.c 1.21.1.2.1.3 660)
--- 1_7_5.213(w)/src/look.c Thu, 04 Jul 2002 16:11:37 -0500 dunemush (pennmush/c/4_look.c 1.21.1.2.1.4 660)
***************
*** 80,87 ****
a = atr_get(loc, "EXITFORMAT");
if (a) {
char *wsave[10], *rsave[NUMQ];
! char *arg, *buff, *bp;
! char const *sp, *save;
int j;
arg = (char *) mush_malloc(BUFFER_LEN, "string");
--- 80,87 ----
a = atr_get(loc, "EXITFORMAT");
if (a) {
char *wsave[10], *rsave[NUMQ];
! char *arg, *buff, *bp, *save;
! char const *sp;
int j;
arg = (char *) mush_malloc(BUFFER_LEN, "string");
***************
*** 256,263 ****
a = atr_get(loc, "CONFORMAT");
if (a) {
char *wsave[10], *rsave[NUMQ];
! char *arg, *buff, *bp;
! char const *sp, *save;
int j;
arg = (char *) mush_malloc(BUFFER_LEN, "string");
--- 256,263 ----
a = atr_get(loc, "CONFORMAT");
if (a) {
char *wsave[10], *rsave[NUMQ];
! char *arg, *buff, *bp, *save;
! char const *sp;
int j;
arg = (char *) mush_malloc(BUFFER_LEN, "string");
***************
*** 628,634 ****
char *r;
dbref content;
dbref exit_dbref;
! char *real_name = NULL, *attrib_name = NULL;
char *tp;
char *tbuf;
int ok = 0;
--- 628,635 ----
char *r;
dbref content;
dbref exit_dbref;
! const char *real_name = NULL;
! char *attrib_name = NULL;
char *tp;
char *tbuf;
int ok = 0;
***************
*** 645,651 ****
*attrib_name = '\0';
attrib_name++;
}
! real_name = (char *) name;
/* look it up */
if ((thing =
noisy_match_result(player, real_name, NOTYPE,
--- 646,652 ----
*attrib_name = '\0';
attrib_name++;
}
! real_name = name;
/* look it up */
if ((thing =
noisy_match_result(player, real_name, NOTYPE,
***************
*** 675,681 ****
*/
tp = tbuf;
safe_str(object_header(player, thing), tbuf, &tp);
! safe_str((char *) T(" is owned by "), tbuf, &tp);
safe_str(object_header(player, Owner(thing)), tbuf, &tp);
*tp = '\0';
notify(player, tbuf);
--- 676,682 ----
*/
tp = tbuf;
safe_str(object_header(player, thing), tbuf, &tp);
! safe_str(T(" is owned by "), tbuf, &tp);
safe_str(object_header(player, Owner(thing)), tbuf, &tp);
*tp = '\0';
notify(player, tbuf);
***************
*** 758,764 ****
look_exits(player, thing, T("Obvious exits:"));
tp = tbuf;
safe_str(object_header(player, thing), tbuf, &tp);
! safe_str((char *) T(" is owned by "), tbuf, &tp);
safe_str(object_header(player, Owner(thing)), tbuf, &tp);
*tp = '\0';
notify(player, tbuf);
--- 759,765 ----
look_exits(player, thing, T("Obvious exits:"));
tp = tbuf;
safe_str(object_header(player, thing), tbuf, &tp);
! safe_str(T("