[PENNMUSH-ANNOUNCE] 1.7.6-patch01
dunemush@pennmush.org
dunemush at pennmush.org
Mon Dec 9 20:22:50 2002
This is patch01 to PennMUSH 1.7.6. After applying this patch, you will
have version 1.7.6p1
To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
patch -p1 < 1.7.6-patch01
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. If you had set use_dns to 'off'
in mush.cnf and are using INFO_SLAVE, you will want to do a full
@shutdown, rather than simply @shutdown/reboot.
- Alan/Javelin
In this patch:
Minor changes:
* When using @nuke to destroy a SAFE object when really_safe is "no",
provide a warning (but schedule destruction anyway). Suggested by
Cerekk@bDV.
Fixes:
* VS.NET project file was defaulting to signed instead of unsigned
chars, causing crashes. Fixed by BladedThoth@M*U*S*H.
Several places where we should have cast things to unsigned to
avoid this kind of thing have been fixed. [SW]
* The *emit() functions now set the orator correctly.
Reported by Philip Mak.
* ccom and cplr are cleared after each command execution so they
can't be leaked as easily. Suggested by Philip Mak.
* Linting.
* If God gives the wrong password to @logwipe, provide some feedback.
Suggested by Cerekk@bDv.
* mkcmds.sh was needlessly rebuilding several autogenerated files.
* The rules for flag characters shown in object headers now allows
F_INTERNAL flags to be shown (like GOING), just the same as
when you get a full flag list on examine. Report by Philip Mak.
* Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak.
* @search type=something would report an error AND match the entire
database when something wasn't object, player, exit or room. [SW]
* Cosmetic bug in @malias/list fixed. Report by Philip Mak.
* The info_slave now properly obeys the use_dns setting in mush.cnf.
This requires a full shutdown to put into effect. Report by
BlaZe@M*U*S*H. [SW]
Prereq: 1.7.6p0
*** 1_7_6.36/Patchlevel Mon, 11 Nov 2002 20:59:15 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1 600)
--- 1_7_6.56(w)/Patchlevel Sun, 08 Dec 2002 22:45:53 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1.1.1 600)
***************
*** 1,2 ****
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.6p0
--- 1,2 ----
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.6p1
*** 1_7_6.36/CHANGES Tue, 26 Nov 2002 14:28:59 -0600 dunemush (pennmush/g/17_CHANGES 1.10.1.6.1.2 600)
--- 1_7_6.56(w)/CHANGES Sun, 08 Dec 2002 22:34:55 -0600 dunemush (pennmush/g/17_CHANGES 1.10.1.6.1.2.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1 600)
***************
*** 18,23 ****
--- 18,54 ----
==========================================================================
+ Version 1.7.6 patchlevel 1 November 26, 2002
+
+ Minor changes:
+ * When using @nuke to destroy a SAFE object when really_safe is "no",
+ provide a warning (but schedule destruction anyway). Suggested by
+ Cerekk@bDV.
+ Fixes:
+ * VS.NET project file was defaulting to signed instead of unsigned
+ chars, causing crashes. Fixed by BladedThoth@M*U*S*H.
+ Several places where we should have cast things to unsigned to
+ avoid this kind of thing have been fixed. [SW]
+ * The *emit() functions now set the orator correctly.
+ Reported by Philip Mak.
+ * ccom and cplr are cleared after each command execution so they
+ can't be leaked as easily. Suggested by Philip Mak.
+ * Linting.
+ * If God gives the wrong password to @logwipe, provide some feedback.
+ Suggested by Cerekk@bDv.
+ * mkcmds.sh was needlessly rebuilding several autogenerated files.
+ * The rules for flag characters shown in object headers now allows
+ F_INTERNAL flags to be shown (like GOING), just the same as
+ when you get a full flag list on examine. Report by Philip Mak.
+ * Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak.
+ * @search type=something would report an error AND match the entire
+ database when something wasn't object, player, exit or room. [SW]
+ * Cosmetic bug in @malias/list fixed. Report by Philip Mak.
+ * The info_slave now properly obeys the use_dns setting in mush.cnf.
+ This requires a full shutdown to put into effect. Report by
+ BlaZe@M*U*S*H. [SW]
+
+
Version 1.7.6 patchlevel 0 November 11, 2002
License:
*** 1_7_6.36/game/txt/hlp/pennvers.hlp Tue, 26 Nov 2002 14:28:59 -0600 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.1.1.3.1.1.1.3.1.1.1.54.1.10.1.2 600)
--- 1_7_6.56(w)/game/txt/hlp/pennvers.hlp Sun, 08 Dec 2002 22:35:09 -0600 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.1.1.3.1.1.1.3.1.1.1.54.1.10.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1 600)
***************
*** 1,5 ****
& changes
! & 1.7.6p0
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.6p1
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,48 ----
A list of the patchlevels associated with each release can
be read in 'help patchlevels'.
+ Version 1.7.6 patchlevel 1 November 26, 2002
+
+ Minor changes:
+ * When using @nuke to destroy a SAFE object when really_safe is "no",
+ provide a warning (but schedule destruction anyway). Suggested by
+ Cerekk@bDV.
+ Fixes:
+ * VS.NET project file was defaulting to signed instead of unsigned
+ chars, causing crashes. Fixed by BladedThoth@M*U*S*H.
+ Several places where we should have cast things to unsigned to
+ avoid this kind of thing have been fixed. [SW]
+ * The *emit() functions now set the orator correctly.
+ Reported by Philip Mak.
+ * ccom and cplr are cleared after each command execution so they
+ can't be leaked as easily. Suggested by Philip Mak.
+ * Linting.
+ * If God gives the wrong password to @logwipe, provide some feedback.
+ Suggested by Cerekk@bDv.
+ * mkcmds.sh was needlessly rebuilding several autogenerated files.
+ * The rules for flag characters shown in object headers now allows
+ F_INTERNAL flags to be shown (like GOING), just the same as
+ when you get a full flag list on examine. Report by Philip Mak.
+ * Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak.
+ * @search type=something would report an error AND match the entire
+ database when something wasn't object, player, exit or room. [SW]
+ * Cosmetic bug in @malias/list fixed. Report by Philip Mak.
+ * The info_slave now properly obeys the use_dns setting in mush.cnf.
+ This requires a full shutdown to put into effect. Report by
+ BlaZe@M*U*S*H. [SW]
+
+
+ & 1.7.6p0
Version 1.7.6 patchlevel 0 November 11, 2002
License:
***************
*** 5715,5721 ****
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.6: 0
1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20
--- 5747,5753 ----
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.6: 0, 1
1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20
*** 1_7_6.36/game/txt/hlp/pennfunc.hlp Tue, 26 Nov 2002 14:28:59 -0600 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.1.1.1.1.1.1.9.1.1 600)
--- 1_7_6.56(w)/game/txt/hlp/pennfunc.hlp Mon, 02 Dec 2002 18:13:48 -0600 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.1.1.1.1.1.1.9.1.1.1.1 600)
***************
*** 1474,1480 ****
This inserts before the item of <list> at <position> the <new item>.
That means that <new item> then becomes the <position>th element of
! <list>. If a separator is not given, a space is assumed.
Examples:
> say [insert(This is a string,4,test)]
--- 1474,1481 ----
This inserts before the item of <list> at <position> the <new item>.
That means that <new item> then becomes the <position>th element of
! <list>. If a separator is not given, a space is assumed. Null items are
! counted when determining position, as in 'items()'.
Examples:
> say [insert(This is a string,4,test)]
***************
*** 1678,1684 ****
Ldelete(<list>,<position>[,<single-character separator>])
This deletes the item at <position> in the list. If a separator
! character is not given, a space is assumed.
Examples:
> say [ldelete(This is a long test string,4)]
--- 1679,1686 ----
Ldelete(<list>,<position>[,<single-character separator>])
This deletes the item at <position> in the list. If a separator
! character is not given, a space is assumed. Null items are
! counted, as in 'items()'.
Examples:
> say [ldelete(This is a long test string,4)]
***************
*** 2615,2621 ****
replace(<list>,<position>,<new item>[,<single-character separator>])
This replaces the item at <position> of <list> with <new item>.
! If no separator is given, a space is assumed.
Examples:
> say [replace(Turn north at the junction,2,south)]
--- 2617,2624 ----
replace(<list>,<position>,<new item>[,<single-character separator>])
This replaces the item at <position> of <list> with <new item>.
! If no separator is given, a space is assumed. Null items are
! counted when determining position, as in 'items()'.
Examples:
> say [replace(Turn north at the junction,2,south)]
*** 1_7_6.36/game/txt/hlp/pennflag.hlp Wed, 20 Nov 2002 21:46:44 -0600 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.4 600)
--- 1_7_6.56(w)/game/txt/hlp/pennflag.hlp Tue, 03 Dec 2002 21:40:42 -0600 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.4.1.1 600)
***************
*** 663,669 ****
See also: ROYALTY, @power
& Z_TEL
! Flag: Z_TEL (all types)
The Z_TEL flag, when set on a zoned room or on the ZMO of a room,
prevents objects in the room from being @teleported out of the
--- 663,669 ----
See also: ROYALTY, @power
& Z_TEL
! Flag: Z_TEL (things, rooms)
The Z_TEL flag, when set on a zoned room or on the ZMO of a room,
prevents objects in the room from being @teleported out of the
*** 1_7_6.36/game/txt/hlp/penncmd.hlp Wed, 20 Nov 2002 09:43:49 -0600 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.2.1.10 600)
--- 1_7_6.56(w)/game/txt/hlp/penncmd.hlp Mon, 09 Dec 2002 10:15:09 -0600 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.2.1.10.1.1.1.1 600)
***************
*** 2257,2263 ****
If the =<message> part is omitted, the message will be reset.
! See also:
& @oxtport
@oxtport <object> [=<message>]
--- 2257,2263 ----
If the =<message> part is omitted, the message will be reset.
! See also: leave, @leave, @oleave, @aleave
& @oxtport
@oxtport <object> [=<message>]
***************
*** 3128,3134 ****
The second form of the command runs @wcheck on every object in the
database and informs connected owners of warnings. It is usually
automatically run by the MUSH at intervals. Only Wizards may use
! @wheck/all.
The third runs it on all objects the player owns that aren't set NO_WARN.
--- 3128,3134 ----
The second form of the command runs @wcheck on every object in the
database and informs connected owners of warnings. It is usually
automatically run by the MUSH at intervals. Only Wizards may use
! @wcheck/all.
The third runs it on all objects the player owns that aren't set NO_WARN.
*** 1_7_6.36/game/mushcnf.dst Wed, 30 Oct 2002 23:34:53 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8 600)
--- 1_7_6.56(w)/game/mushcnf.dst Sun, 08 Dec 2002 22:32:42 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1 600)
***************
*** 27,32 ****
--- 27,34 ----
# If yes, you'll see hostnames on the wizard WHO. If no, IP numbers.
# No makes sense if you're running PennMUSH at home and don't have
# a DNS server you can access. MacOS 7/8/9 should use 'no'
+ # Changing this while using info_slave requires a @shutdown/reboot
+ # to make it take effect.
use_dns yes
# Databases
***************
*** 347,352 ****
--- 349,356 ----
### and select an ident_timeout to determine how long the MUSH
### should wait for a response, in seconds. If you're using
### INFO_SLAVE (in options.h), this is how long the info_slave waits.
+ # Changing this while using info_slave requires a @shutdown/reboot
+ # to make it take effect.
use_ident yes
ident_timeout 5
*** 1_7_6.36/utils/mkcmds.sh.SH Mon, 30 Sep 2002 23:28:28 -0500 dunemush (pennmush/g/16_mkcmds.sh. 1.1 750)
--- 1_7_6.56(w)/utils/mkcmds.sh.SH Sat, 30 Nov 2002 22:32:31 -0600 dunemush (pennmush/g/16_mkcmds.sh. 1.2 750)
***************
*** 109,154 ****
$echo "You have too many switches defined!"
fi
! cmp -s ../hdrs/switches.h ../hdrs/temp.h
! cmpstat=$?
! if [ $cmpstat -eq 0 ]; then
! rm -f ../hdrs/temp.h
! else
! mv -f ../hdrs/temp.h ../hdrs/switches.h
! fi
! cmp -s ../src/switchinc.c ../src/temp.c
! cmpstat=$?
! if [ $cmpstat -eq 0 ]; then
! rm -f ../src/temp.c
! else
! mv -f ../src/temp.c ../src/switchinc.c
! fi
$echo "Rebuilding command prototype file"
$echo "/* AUTOGENERATED FILE. DO NOT EDIT */" >> ../hdrs/temp.h
for c in `grep "^COMMAND *(" ../src/*.c | cut -f2 -d\( | cut -f1 -d\) | sort | uniq`; do
$echo >>../hdrs/temp.h "COMMAND_PROTO($c);"
done
! cmp -s ../hdrs/cmds.h ../hdrs/temp.h
! cmpstat=$?
! if [ $cmpstat -eq 0 ]; then
! rm -f ../hdrs/temp.h
! else
! mv -f ../hdrs/temp.h ../hdrs/cmds.h
! fi
$echo "Rebuilding function prototype file"
$echo "/* AUTOGENERATED FILE. DO NOT EDIT */" >> ../hdrs/temp.h
for c in `grep "^FUNCTION *(" ../src/*.c | cut -f2 -d\( | cut -f1 -d\) | sort | uniq`; do
$echo >>../hdrs/temp.h "FUNCTION_PROTO($c);"
done
! cmp -s ../hdrs/funs.h ../hdrs/temp.h
! cmpstat=$?
! if [ $cmpstat -eq 0 ]; then
! rm -f ../hdrs/temp.h
! else
! mv -f ../hdrs/temp.h ../hdrs/funs.h
! fi
if [ -d "../win32" ]; then
cp ../hdrs/funs.h ../win32/funs.h
--- 109,130 ----
$echo "You have too many switches defined!"
fi
! mv -f ../hdrs/temp.h ../hdrs/switches.h
! mv -f ../src/temp.c ../src/switchinc.c
$echo "Rebuilding command prototype file"
$echo "/* AUTOGENERATED FILE. DO NOT EDIT */" >> ../hdrs/temp.h
for c in `grep "^COMMAND *(" ../src/*.c | cut -f2 -d\( | cut -f1 -d\) | sort | uniq`; do
$echo >>../hdrs/temp.h "COMMAND_PROTO($c);"
done
! mv -f ../hdrs/temp.h ../hdrs/cmds.h
$echo "Rebuilding function prototype file"
$echo "/* AUTOGENERATED FILE. DO NOT EDIT */" >> ../hdrs/temp.h
for c in `grep "^FUNCTION *(" ../src/*.c | cut -f2 -d\( | cut -f1 -d\) | sort | uniq`; do
$echo >>../hdrs/temp.h "FUNCTION_PROTO($c);"
done
! mv -f ../hdrs/temp.h ../hdrs/funs.h
if [ -d "../win32" ]; then
cp ../hdrs/funs.h ../win32/funs.h
*** 1_7_6.36/src/wiz.c Tue, 26 Nov 2002 14:48:05 -0600 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.8.1.2.2.2 660)
--- 1_7_6.56(w)/src/wiz.c Mon, 09 Dec 2002 14:04:32 -0600 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.8.1.2.2.2.1.2.1.1.1.1.1.1 660)
***************
*** 576,582 ****
char *s;
! for (s = command; *s && !isspace(*s); s++) ;
if (!*s)
return (0);
*s++ = '\0';
--- 576,582 ----
char *s;
! for (s = command; *s && !isspace((unsigned char) *s); s++) ;
if (!*s)
return (0);
*s++ = '\0';
***************
*** 1045,1051 ****
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."));
--- 1045,1052 ----
return;
}
/* move past the not token if there is one */
! for (s = power; *s && ((*s == NOT_TOKEN) || isspace((unsigned char) *s));
! s++) ;
if (*s == '\0') {
notify(player, T("You must specify a power."));
***************
*** 1095,1119 ****
/* 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++;
if (*arg2 == '\"') {
*arg2++ = '\0';
! while (*arg2 && isspace(*arg2))
arg2++;
break;
}
}
} else {
strcpy(tbuf, arg1);
! while (*arg2 && !isspace(*arg2))
arg2++;
if (*arg2)
*arg2++ = '\0';
! while (*arg2 && isspace(*arg2))
arg2++;
}
--- 1096,1121 ----
/* First argument is a player, so we could have a quoted name */
if (PLAYER_NAME_SPACES && *arg1 == '\"') {
! for (; *arg1 && ((*arg1 == '\"') || isspace((unsigned char) *arg1));
! arg1++) ;
strcpy(tbuf, arg1);
while (*arg2 && (*arg2 != '\"')) {
while (*arg2 && (*arg2 != '\"'))
arg2++;
if (*arg2 == '\"') {
*arg2++ = '\0';
! while (*arg2 && isspace((unsigned char) *arg2))
arg2++;
break;
}
}
} else {
strcpy(tbuf, arg1);
! while (*arg2 && !isspace((unsigned char) *arg2))
arg2++;
if (*arg2)
*arg2++ = '\0';
! while (*arg2 && isspace((unsigned char) *arg2))
arg2++;
}
***************
*** 1358,1363 ****
--- 1360,1366 ----
restrict_type = TYPE_PLAYER;
} else {
notify(player, T("Unknown type."));
+ return -1;
}
} else if (string_prefix("things", class) || string_prefix("objects", class)) {
sclass = S_NAME;
*** 1_7_6.36/src/help.c Fri, 05 Jul 2002 12:57:10 -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.4 660)
--- 1_7_6.56(w)/src/help.c Mon, 09 Dec 2002 14:04:28 -0600 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.6 660)
***************
*** 354,360 ****
fclose(rfp);
return;
}
! if (isspace(line[0]))
continue;
if (line[0] != '&') {
do_rawlog(LT_ERR, T("Malformed help file %s doesn't start with &"),
--- 354,360 ----
fclose(rfp);
return;
}
! if (isspace((unsigned char) line[0]))
continue;
if (line[0] != '&') {
do_rawlog(LT_ERR, T("Malformed help file %s doesn't start with &"),
*** 1_7_6.36/src/strutil.c Sun, 10 Nov 2002 12:03:21 -0600 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.1.1.18 660)
--- 1_7_6.56(w)/src/strutil.c Mon, 09 Dec 2002 14:04:29 -0600 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.1.1.21 660)
***************
*** 128,136 ****
if (string_prefix(src, sub))
return src;
/* else scan to beginning of next word */
! while (*src && (isalpha(*src) || isdigit(*src)))
src++;
! while (*src && !isalpha(*src) && !isdigit(*src))
src++;
}
}
--- 128,138 ----
if (string_prefix(src, sub))
return src;
/* else scan to beginning of next word */
! while (*src && (isalpha((unsigned char) *src)
! || isdigit((unsigned char) *src)))
src++;
! while (*src && !isalpha((unsigned char) *src)
! && !isdigit((unsigned char) *src))
src++;
}
}
***************
*** 687,693 ****
*/
char *c = (char *) s;
! while (c && *c && isspace(*c))
c++;
return c;
}
--- 689,695 ----
*/
char *c = (char *) s;
! while (c && *c && isspace((unsigned char) *c))
c++;
return c;
}
*** 1_7_6.36/src/set.c Tue, 12 Nov 2002 09:41:55 -0600 dunemush (pennmush/b/38_set.c 1.26.1.5.1.1.2.1.1.1.1.1.1.9 660)
--- 1_7_6.56(w)/src/set.c Mon, 09 Dec 2002 14:04:29 -0600 dunemush (pennmush/b/38_set.c 1.26.1.5.1.1.2.1.1.1.1.1.1.11 660)
***************
*** 81,98 ****
password++;
if (*password == '\"') {
*password++ = '\0';
! while (*password && isspace(*password))
password++;
break;
}
}
} else {
password = newname;
! while (*password && !isspace(*password))
password++;
if (*password) {
*password++ = '\0';
! while (*password && isspace(*password))
password++;
}
}
--- 81,98 ----
password++;
if (*password == '\"') {
*password++ = '\0';
! while (*password && isspace((unsigned char) *password))
password++;
break;
}
}
} else {
password = newname;
! while (*password && !isspace((unsigned char) *password))
password++;
if (*password) {
*password++ = '\0';
! while (*password && isspace((unsigned char) *password))
password++;
}
}
***************
*** 100,112 ****
/* split off password */
for (password = newname + strlen(newname) - 1;
! *password && !isspace(*password); password--) ;
! for (; *password && isspace(*password); password--) ;
/* eat whitespace */
if (*password) {
*++password = '\0'; /* terminate name */
password++;
! while (*password && isspace(*password))
password++;
}
}
--- 100,112 ----
/* split off password */
for (password = newname + strlen(newname) - 1;
! *password && !isspace((unsigned char) *password); password--) ;
! for (; *password && isspace((unsigned char) *password); password--) ;
/* eat whitespace */
if (*password) {
*++password = '\0'; /* terminate name */
password++;
! while (*password && isspace((unsigned char) *password))
password++;
}
}
***************
*** 514,520 ****
return;
}
/* move past NOT token if there is one */
! for (p = flag; *p && ((*p == NOT_TOKEN) || isspace(*p)); p++) ;
if ((af.f = string_to_atrflag(player, p)) < 0) {
notify(player, T("Unrecognized attribute flag."));
--- 514,521 ----
return;
}
/* move past NOT token if there is one */
! for (p = flag; *p && ((*p == NOT_TOKEN) || isspace((unsigned char) *p));
! p++) ;
if ((af.f = string_to_atrflag(player, p)) < 0) {
notify(player, T("Unrecognized attribute flag."));
***************
*** 563,569 ****
/* we haven't set an attribute, so we must be setting a flag */
/* move p past NOT_TOKEN if present */
! for (p = (char *) flag; *p && (*p == NOT_TOKEN || isspace(*p)); p++) ;
/* identify flag */
if (*p == '\0') {
--- 564,571 ----
/* we haven't set an attribute, so we must be setting a flag */
/* move p past NOT_TOKEN if present */
! for (p = (char *) flag;
! *p && (*p == NOT_TOKEN || isspace((unsigned char) *p)); p++) ;
/* identify flag */
if (*p == '\0') {
*** 1_7_6.36/src/rob.c Fri, 05 Jul 2002 12:57:10 -0500 dunemush (pennmush/b/42_rob.c 1.18.1.2.1.3.1.3.1.4 660)
--- 1_7_6.56(w)/src/rob.c Mon, 09 Dec 2002 14:04:29 -0600 dunemush (pennmush/b/42_rob.c 1.18.1.2.1.3.1.3.1.6 660)
***************
*** 142,148 ****
}
/* make sure amount is all digits */
! for (s = amnt; *s && ((isdigit(*s)) || (*s == '-')); s++) ;
/* must be giving object */
if (*s) {
dbref thing;
--- 142,148 ----
}
/* make sure amount is all digits */
! for (s = amnt; *s && ((isdigit((unsigned char) *s)) || (*s == '-')); s++) ;
/* must be giving object */
if (*s) {
dbref thing;
*** 1_7_6.36/src/predicat.c Sat, 09 Nov 2002 18:52:33 -0600 dunemush (pennmush/b/44_predicat.c 1.1.1.34.1.1.1.3.1.4.2.7 660)
--- 1_7_6.56(w)/src/predicat.c Mon, 09 Dec 2002 14:04:29 -0600 dunemush (pennmush/b/44_predicat.c 1.1.1.34.1.1.1.3.1.4.2.9 660)
***************
*** 574,585 ****
return 0;
/* No leading spaces */
! if (isspace(*name))
return 0;
/* only printable characters */
for (p = name; p && *p; p++) {
! if (!isprint(*p))
return 0;
if (ONLY_ASCII_NAMES && *p > 127)
return 0;
--- 574,585 ----
return 0;
/* No leading spaces */
! if (isspace((unsigned char) *name))
return 0;
/* only printable characters */
for (p = name; p && *p; p++) {
! if (!isprint((unsigned char) *p))
return 0;
if (ONLY_ASCII_NAMES && *p > 127)
return 0;
***************
*** 589,595 ****
/* No trailing spaces */
p--;
! if (isspace(*p))
return 0;
/* Not too long */
--- 589,595 ----
/* No trailing spaces */
p--;
! if (isspace((unsigned char) *p))
return 0;
/* Not too long */
***************
*** 621,627 ****
/* Make sure that the name contains legal characters only */
for (scan = (unsigned char *) name; scan && *scan; scan++) {
! if (isalnum(*scan))
continue;
if (!strchr(good, *scan))
return 0;
--- 621,627 ----
/* Make sure that the name contains legal characters only */
for (scan = (unsigned char *) name; scan && *scan; scan++) {
! if (isalnum((unsigned char) *scan))
continue;
if (!strchr(good, *scan))
return 0;
***************
*** 650,666 ****
}
int
! ok_command_name(name)
! const char *name;
{
/* is name ok for a command or function?
* It must begin with an uppercase alpha, and contain only
* uppercase alpha, numbers, or underscore thereafter.
*/
! const char *p;
! if (!isupper(*name))
return 0;
! for (p = name; p && *p; p++) {
if (!(isupper(*p) || isdigit(*p) || (*p == '_')))
return 0;
}
--- 650,665 ----
}
int
! ok_command_name(const char *name)
{
/* is name ok for a command or function?
* It must begin with an uppercase alpha, and contain only
* uppercase alpha, numbers, or underscore thereafter.
*/
! const unsigned char *p;
! if (!isupper((unsigned char) *name))
return 0;
! for (p = (unsigned char *) name; p && *p; p++) {
if (!(isupper(*p) || isdigit(*p) || (*p == '_')))
return 0;
}
***************
*** 768,774 ****
/* skip over the 's' and whitespace */
do {
obj++;
! } while (isspace(*obj));
/* we already have a terminating null, so we're okay to just do matches */
loc = match_result(player, box, NOTYPE, MAT_NEIGHBOR | MAT_POSSESSION);
--- 767,773 ----
/* skip over the 's' and whitespace */
do {
obj++;
! } while (isspace((unsigned char) *obj));
/* we already have a terminating null, so we're okay to just do matches */
loc = match_result(player, box, NOTYPE, MAT_NEIGHBOR | MAT_POSSESSION);
*** 1_7_6.36/src/parse.c Sun, 10 Nov 2002 08:51:00 -0600 dunemush (pennmush/b/48_parse.c 1.23.1.10.1.2.1.1.1.1.1.2.1.2.1.5 660)
--- 1_7_6.56(w)/src/parse.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/b/48_parse.c 1.23.1.10.1.2.1.1.1.1.1.2.1.2.1.7 660)
***************
*** 103,109 ****
if (!str || (*str != NUMBER_TOKEN) || !*(str + 1))
return NOTHING;
! for (p = str + 1; isdigit(*p); p++) {
}
if (*p)
return NOTHING;
--- 103,109 ----
if (!str || (*str != NUMBER_TOKEN) || !*(str + 1))
return NOTHING;
! for (p = str + 1; isdigit((unsigned char) *p); p++) {
}
if (*p)
return NOTHING;
***************
*** 157,163 ****
if (*(str + 1) == '-') {
str++;
}
! for (str++; isdigit(*str); str++) {
}
return !*str;
}
--- 157,163 ----
if (*(str + 1) == '-') {
str++;
}
! for (str++; isdigit((unsigned char) *str); str++) {
}
return !*str;
}
***************
*** 173,179 ****
return 1;
if (!str)
return 0;
! while (isspace(*str))
str++;
if (*str == '\0')
return NULL_EQ_ZERO;
--- 173,179 ----
return 1;
if (!str)
return 0;
! while (isspace((unsigned char) *str))
str++;
if (*str == '\0')
return NULL_EQ_ZERO;
***************
*** 196,206 ****
if (!str)
return 0;
/* strtoul() accepts negative numbers, so we still have to do this check */
! while (isspace(*str))
str++;
if (*str == '\0')
return NULL_EQ_ZERO;
! if (!(isdigit(*str) || *str == '+'))
return 0;
errno = 0;
strtoul(str, &end, 10);
--- 196,206 ----
if (!str)
return 0;
/* strtoul() accepts negative numbers, so we still have to do this check */
! while (isspace((unsigned char) *str))
str++;
if (*str == '\0')
return NULL_EQ_ZERO;
! if (!(isdigit((unsigned char) *str) || *str == '+'))
return 0;
errno = 0;
strtoul(str, &end, 10);
***************
*** 246,252 ****
/* If we're emulating Tiny, anything is a number */
if (TINY_MATH)
return 1;
! while (isspace(*str))
str++;
if (*str == '\0')
return NULL_EQ_ZERO;
--- 246,252 ----
/* If we're emulating Tiny, anything is a number */
if (TINY_MATH)
return 1;
! while (isspace((unsigned char) *str))
str++;
if (*str == '\0')
return NULL_EQ_ZERO;
***************
*** 465,474 ****
(*str)++;
/* Check the first two characters after the $ for a number */
! if (isdigit(**str)) {
p = **str - '0';
(*str)++;
! if (isdigit(**str)) {
p *= 10;
p += **str - '0';
(*str)++;
--- 465,474 ----
(*str)++;
/* Check the first two characters after the $ for a number */
! if (isdigit((unsigned char) **str)) {
p = **str - '0';
(*str)++;
! if (isdigit((unsigned char) **str)) {
p *= 10;
p += **str - '0';
(*str)++;
***************
*** 645,651 ****
safe_chr(savec, buff, bp);
}
! if (isupper(savec))
*savepos = UPCASE(*savepos);
}
break;
--- 645,651 ----
safe_chr(savec, buff, bp);
}
! if (isupper((unsigned char) savec))
*savepos = UPCASE(*savepos);
}
break;
*** 1_7_6.36/src/match.c Mon, 10 Jun 2002 23:51:30 -0500 dunemush (pennmush/c/2_match.c 1.24.1.1.1.2 660)
--- 1_7_6.56(w)/src/match.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/2_match.c 1.24.1.1.1.4 660)
***************
*** 330,336 ****
if (*match_name == LOOKUP_TOKEN) {
! for (p = match_name + 1; isspace(*p); p++) ;
if ((match = lookup_player(p)) != NOTHING) {
return match;
} else {
--- 330,336 ----
if (*match_name == LOOKUP_TOKEN) {
! for (p = match_name + 1; isspace((unsigned char) *p); p++) ;
if ((match = lookup_player(p)) != NOTHING) {
return match;
} else {
***************
*** 470,476 ****
/* did we get it? */
if (*p == '\0') {
/* make sure there's nothing afterwards */
! while (isspace(*match))
match++;
if (*match == '\0' || *match == EXIT_DELIMITER) {
/* we got it */
--- 470,476 ----
/* did we get it? */
if (*p == '\0') {
/* make sure there's nothing afterwards */
! while (isspace((unsigned char) *match))
match++;
if (*match == '\0' || *match == EXIT_DELIMITER) {
/* we got it */
***************
*** 482,488 ****
}
/* we didn't get it, find next match */
while (*match && *match++ != EXIT_DELIMITER) ;
! while (isspace(*match))
match++;
}
}
--- 482,488 ----
}
/* we didn't get it, find next match */
while (*match && *match++ != EXIT_DELIMITER) ;
! while (isspace((unsigned char) *match))
match++;
}
}
*** 1_7_6.36/src/malias.c Sat, 09 Nov 2002 19:47:06 -0600 dunemush (pennmush/c/3_malias.c 1.34 660)
--- 1_7_6.56(w)/src/malias.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/3_malias.c 1.36.1.1 660)
***************
*** 142,148 ****
good = "`$_-.'";
/* Make sure that the name contains legal characters only */
for (scan = alias + 1; scan && *scan; scan++) {
! if (isalpha(*scan) || isdigit(*scan))
continue;
if (!strchr(good, *scan)) {
notify(player, T("MAIL: Invalid character in mail alias."));
--- 142,148 ----
good = "`$_-.'";
/* Make sure that the name contains legal characters only */
for (scan = alias + 1; scan && *scan; scan++) {
! if (isalpha((unsigned char) *scan) || isdigit((unsigned char) *scan))
continue;
if (!strchr(good, *scan)) {
notify(player, T("MAIL: Invalid character in mail alias."));
***************
*** 932,945 ****
}
if (!m->mflags)
! privs[3] = 'E';
else {
if (m->mflags & ALIAS_MEMBERS)
! privs[3] = 'M';
if (m->mflags & ALIAS_ADMIN)
! privs[4] = 'A';
! if (!strncmp(privs + 3, "--", 2))
! privs[4] = 'O';
}
return privs;
--- 932,945 ----
}
if (!m->mflags)
! privs[4] = 'E';
else {
if (m->mflags & ALIAS_MEMBERS)
! privs[4] = 'M';
if (m->mflags & ALIAS_ADMIN)
! privs[5] = 'A';
! if (!strncmp(privs + 4, "--", 2))
! privs[5] = 'O';
}
return privs;
*** 1_7_6.36/src/log.c Wed, 28 Aug 2002 09:50:52 -0500 dunemush (pennmush/c/5_log.c 1.10.1.2.2.4.1.1 660)
--- 1_7_6.56(w)/src/log.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/5_log.c 1.10.1.2.2.4.1.1.2.1 660)
***************
*** 294,299 ****
--- 294,300 ----
default:
lname = "unspecified";
}
+ notify(player, T("Wrong password."));
do_log(LT_WIZ, player, NOTHING,
T("Invalid attempt to wipe the %s log, password %s"), lname, str);
return;
*** 1_7_6.36/src/info_slave.c Fri, 04 Jan 2002 15:23:43 -0600 dunemush (pennmush/c/7_info_slave 1.9.1.4 660)
--- 1_7_6.56(w)/src/info_slave.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/7_info_slave 1.9.1.4.1.1 660)
***************
*** 97,108 ****
int len, size;
IDENT *ident_result;
char host[NI_MAXHOST];
! int use_ident, timeout;
socklen_t llen, rlen;
struct iovec dat[3];
if (argc < 2) {
! fprintf(stderr, "info_slave needs port number!\n");
exit(1);
}
port = atoi(argv[1]);
--- 97,108 ----
int len, size;
IDENT *ident_result;
char host[NI_MAXHOST];
! int use_ident, use_dns, timeout;
socklen_t llen, rlen;
struct iovec dat[3];
if (argc < 2) {
! fprintf(stderr, "info_slave needs a port number!\n");
exit(1);
}
port = atoi(argv[1]);
***************
*** 114,119 ****
--- 114,126 ----
use_ident = atoi(argv[2]);
} else
use_ident = 5;
+
+ if (argc >= 4) {
+ /* The third argument is 1 to do DNS lookups, 0 to not. */
+ use_dns = atoi(argv[3]);
+ } else
+ use_dns = 1;
+
#ifdef HAS_SOCKETPAIR
mush = port; /* We inherit open file descriptions and sockets from parent */
#else
***************
*** 182,193 ****
if (ident_result)
ident_free(ident_result);
}
! if (getnameinfo(&remote.addr, rlen, host, sizeof host, NULL, 0,
! NI_NUMERICSERV) != 0) {
! safe_str("An error occured", buf, &bp);
! } else {
safe_str(host, buf, &bp);
- }
*bp = '\0';
size = strlen(buf);
dat[0].iov_base = (char *) &fd;
--- 189,203 ----
if (ident_result)
ident_free(ident_result);
}
! if (use_dns) {
! if (getnameinfo(&remote.addr, rlen, host, sizeof host, NULL, 0,
! NI_NUMERICSERV) != 0) {
! safe_str("An error occured", buf, &bp);
! } else {
! safe_str(host, buf, &bp);
! }
! } else
safe_str(host, buf, &bp);
*bp = '\0';
size = strlen(buf);
dat[0].iov_base = (char *) &fd;
*** 1_7_6.36/src/ident.c Mon, 19 Aug 2002 21:42:39 -0500 dunemush (pennmush/c/8_ident.c 1.19.1.4.1.9 660)
--- 1_7_6.56(w)/src/ident.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/8_ident.c 1.19.1.4.1.11 660)
***************
*** 364,370 ****
/*
** Skip leading spaces
*/
! while (isspace(*bp))
bp++;
/*
--- 364,370 ----
/*
** Skip leading spaces
*/
! while (isspace((unsigned char) *bp))
bp++;
/*
***************
*** 380,386 ****
*/
/* Remove trailing spaces */
*dc = *bp;
! for (dc = bp - 1; dc > cp && isspace(*dc); dc--) ;
*++dc = '\0';
bp++;
--- 380,386 ----
*/
/* Remove trailing spaces */
*dc = *bp;
! for (dc = bp - 1; dc > cp && isspace((unsigned char) *dc); dc--) ;
*++dc = '\0';
bp++;
*** 1_7_6.36/src/game.c Sun, 10 Nov 2002 14:27:19 -0600 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.5.1.3.1.2 660)
--- 1_7_6.56(w)/src/game.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.5.1.3.1.2.1.2 660)
***************
*** 858,869 ****
raw_notify(Owner(player), tprintf("#%d] %s", player, command));
/* eat leading whitespace */
! while (*command && isspace(*command))
command++;
/* eat trailing whitespace */
p = command + strlen(command) - 1;
! while (isspace(*p) && (p >= command))
p--;
*++p = '\0';
--- 858,869 ----
raw_notify(Owner(player), tprintf("#%d] %s", player, command));
/* eat leading whitespace */
! while (*command && isspace((unsigned char) *command))
command++;
/* eat trailing whitespace */
p = command + strlen(command) - 1;
! while (isspace((unsigned char) *p) && (p >= command))
p--;
*++p = '\0';
***************
*** 993,1001 ****
#undef cmd_match
int
! check_alias(command, list)
! const char *command;
! const char *list;
{
/* check if a string matches part of a semi-colon separated list */
const char *p;
--- 993,999 ----
#undef cmd_match
int
! check_alias(const char *command, const char *list)
{
/* check if a string matches part of a semi-colon separated list */
const char *p;
***************
*** 1003,1016 ****
for (p = command; (*p && DOWNCASE(*p) == DOWNCASE(*list)
&& *list != EXIT_DELIMITER); p++, list++) ;
if (*p == '\0') {
! while (isspace(*list))
list++;
if (*list == '\0' || *list == EXIT_DELIMITER)
return 1; /* word matched */
}
/* didn't match. check next word in list */
while (*list && *list++ != EXIT_DELIMITER) ;
! while (isspace(*list))
list++;
}
/* reached the end of the list without matching anything */
--- 1001,1014 ----
for (p = command; (*p && DOWNCASE(*p) == DOWNCASE(*list)
&& *list != EXIT_DELIMITER); p++, list++) ;
if (*p == '\0') {
! while (isspace((unsigned char) *list))
list++;
if (*list == '\0' || *list == EXIT_DELIMITER)
return 1; /* word matched */
}
/* didn't match. check next word in list */
while (*list && *list++ != EXIT_DELIMITER) ;
! while (isspace((unsigned char) *list))
list++;
}
/* reached the end of the list without matching anything */
*** 1_7_6.36/src/funtime.c Wed, 30 Oct 2002 21:55:20 -0600 dunemush (pennmush/c/12_funtime.c 1.11.1.12 660)
--- 1_7_6.56(w)/src/funtime.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/12_funtime.c 1.11.1.14 660)
***************
*** 288,294 ****
/* get the day of month */
p = q;
! while (isspace(*p)) /* skip leading space */
p++;
if (!(q = strchr(p, ' ')))
return 0;
--- 288,294 ----
/* get the day of month */
p = q;
! while (isspace((unsigned char) *p)) /* skip leading space */
p++;
if (!(q = strchr(p, ' ')))
return 0;
*** 1_7_6.36/src/funstr.c Sun, 10 Nov 2002 14:27:19 -0600 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.3.1.5.1.3 660)
--- 1_7_6.56(w)/src/funstr.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.3.1.5.1.3.1.2 660)
***************
*** 74,80 ****
return;
}
for (p = args[0]; *p; p++) {
! if (!isalpha((int) *p)) {
safe_chr('0', buff, bp);
return;
}
--- 74,80 ----
return;
}
for (p = args[0]; *p; p++) {
! if (!isalpha((unsigned char) *p)) {
safe_chr('0', buff, bp);
return;
}
*** 1_7_6.36/src/funmisc.c Wed, 30 Oct 2002 14:26:02 -0600 dunemush (pennmush/c/14_funmisc.c 1.30.1.1.1.9 660)
--- 1_7_6.56(w)/src/funmisc.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/14_funmisc.c 1.30.1.1.1.12 660)
***************
*** 57,62 ****
--- 57,63 ----
safe_str(T(e_perm), buff, bp);
return;
}
+ orator = executor;
do_pemit_list(executor, args[0], args[1], 1);
}
***************
*** 67,72 ****
--- 68,74 ----
safe_str(T(e_perm), buff, bp);
return;
}
+ orator = executor;
do_pemit_list(executor, args[0], args[1], 0);
}
***************
*** 77,82 ****
--- 79,85 ----
safe_str(T(e_perm), buff, bp);
return;
}
+ orator = executor;
do_oemit_list(executor, args[0], args[1]);
}
***************
*** 87,92 ****
--- 90,96 ----
safe_str(T(e_perm), buff, bp);
return;
}
+ orator = executor;
do_emit(executor, args[0]);
}
***************
*** 97,102 ****
--- 101,107 ----
safe_str(T(e_perm), buff, bp);
return;
}
+ orator = executor;
do_remit(executor, args[0], args[1], 0);
}
***************
*** 107,112 ****
--- 112,118 ----
safe_str(T(e_perm), buff, bp);
return;
}
+ orator = executor;
do_lemit(executor, args[0], 0);
}
***************
*** 117,122 ****
--- 123,129 ----
safe_str(T(e_perm), buff, bp);
return;
}
+ orator = executor;
do_zemit(executor, args[0], args[1]);
}
***************
*** 132,137 ****
--- 139,145 ----
}
if (nargs == 3 && parse_boolean(args[2]))
noisy = 1;
+ orator = executor;
do_cemit(executor, args[0], args[1], noisy);
}
#endif
***************
*** 392,398 ****
p++;
/* Convert letters to soundex values, squash duplicates */
while (*q) {
! if (!isalpha(*q) || !isascii(*q)) {
q++;
continue;
}
--- 400,406 ----
p++;
/* Convert letters to soundex values, squash duplicates */
while (*q) {
! if (!isalpha((unsigned char) *q) || !isascii((unsigned char) *q)) {
q++;
continue;
}
***************
*** 431,439 ****
* 5. Truncate to 4 characters or pad with 0's.
* It's actually a bit messier than that to make it faster.
*/
! if (!args[0] || !*args[0] || !isalpha(*args[0]) || strchr(args[0], ' ')) {
! safe_str(T("#-1 FUNCTION (SOUNDEX) REQUIRES A SINGLE WORD ARGUMENT"),
! buff, bp);
return;
}
safe_str(soundex(args[0]), buff, bp);
--- 439,448 ----
* 5. Truncate to 4 characters or pad with 0's.
* It's actually a bit messier than that to make it faster.
*/
! if (!args[0] || !*args[0] || !isalpha((unsigned char) *args[0])
! || strchr(args[0], ' ')) {
! safe_str(T("#-1 FUNCTION (SOUNDEX) REQUIRES A SINGLE WORD ARGUMENT"), buff,
! bp);
return;
}
safe_str(soundex(args[0]), buff, bp);
*** 1_7_6.36/src/funmath.c Sat, 09 Nov 2002 18:52:33 -0600 dunemush (pennmush/c/15_funmath.c 1.39.1.1.1.1.1.1.1.8 660)
--- 1_7_6.56(w)/src/funmath.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/c/15_funmath.c 1.39.1.1.1.1.1.1.1.10 660)
***************
*** 227,233 ****
return;
}
p = args[0] + arglens[0] - 1;
! if (!isdigit(*p)) {
if (NULL_EQ_ZERO) {
safe_str(args[0], buff, bp);
safe_str("1", buff, bp);
--- 227,233 ----
return;
}
p = args[0] + arglens[0] - 1;
! if (!isdigit((unsigned char) *p)) {
if (NULL_EQ_ZERO) {
safe_str(args[0], buff, bp);
safe_str("1", buff, bp);
***************
*** 235,241 ****
safe_str(T("#-1 ARGUMENT MUST END IN AN INTEGER"), buff, bp);
return;
}
! while ((isdigit(*p) || (*p == '-')) && p != args[0]) {
if (*p == '-') {
p--;
break;
--- 235,241 ----
safe_str(T("#-1 ARGUMENT MUST END IN AN INTEGER"), buff, bp);
return;
}
! while ((isdigit((unsigned char) *p) || (*p == '-')) && p != args[0]) {
if (*p == '-') {
p--;
break;
***************
*** 269,275 ****
return;
}
p = args[0] + arglens[0] - 1;
! if (!isdigit(*p)) {
if (NULL_EQ_ZERO) {
safe_str(args[0], buff, bp);
safe_str("-1", buff, bp);
--- 269,275 ----
return;
}
p = args[0] + arglens[0] - 1;
! if (!isdigit((unsigned char) *p)) {
if (NULL_EQ_ZERO) {
safe_str(args[0], buff, bp);
safe_str("-1", buff, bp);
***************
*** 277,283 ****
safe_str(T("#-1 ARGUMENT MUST END IN AN INTEGER"), buff, bp);
return;
}
! while ((isdigit(*p) || (*p == '-')) && p != args[0]) {
if (*p == '-') {
p--;
break;
--- 277,283 ----
safe_str(T("#-1 ARGUMENT MUST END IN AN INTEGER"), buff, bp);
return;
}
! while ((isdigit((unsigned char) *p) || (*p == '-')) && p != args[0]) {
if (*p == '-') {
p--;
break;
***************
*** 1230,1236 ****
dot = 1; /* allow only 1 dot in a number */
*pnumber = '\0'; /* devide the string */
pnum2 = pnumber + 1;
! } else if (!isdigit(*pnumber)) {
safe_str(T(e_num), buff, bp);
return;
}
--- 1230,1236 ----
dot = 1; /* allow only 1 dot in a number */
*pnumber = '\0'; /* devide the string */
pnum2 = pnumber + 1;
! } else if (!isdigit((unsigned char) *pnumber)) {
safe_str(T(e_num), buff, bp);
return;
}
*** 1_7_6.36/src/function.c Wed, 30 Oct 2002 14:26:02 -0600 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.6.1.1.1.1.1.14 660)
--- 1_7_6.56(w)/src/function.c Mon, 09 Dec 2002 14:04:27 -0600 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.6.1.1.1.1.1.14.1.2 660)
***************
*** 653,660 ****
*/
char *
! strip_braces(str)
! char const *str;
{
/* this is a hack which just strips a level of braces. It malloc()s memory
* which must be free()d later.
--- 653,659 ----
*/
char *
! strip_braces(const char *str)
{
/* this is a hack which just strips a level of braces. It malloc()s memory
* which must be free()d later.
***************
*** 666,672 ****
buff = (char *) mush_malloc(BUFFER_LEN, "strip_braces.buff");
bufc = buff;
! while (isspace(*str)) /* eat spaces at the beginning */
str++;
switch (*str) {
--- 665,671 ----
buff = (char *) mush_malloc(BUFFER_LEN, "strip_braces.buff");
bufc = buff;
! while (isspace((unsigned char) *str)) /* eat spaces at the beginning */
str++;
switch (*str) {
*** 1_7_6.36/src/flags.c Wed, 20 Nov 2002 21:50:51 -0600 dunemush (pennmush/c/20_flags.c 1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.2.1.1.1.1.1.2.2.2.2.1.2.1.1.3.1.2.1.1.1.1.1.1.1.1.1.3.1.9.1.2.2.1 660)
--- 1_7_6.56(w)/src/flags.c Mon, 09 Dec 2002 14:04:27 -0600 dunemush (pennmush/c/20_flags.c 1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.2.1.1.1.1.1.2.2.2.2.1.2.1.1.3.1.2.1.1.1.1.1.1.1.1.1.3.1.9.1.2.2.1.1.2 660)
***************
*** 402,408 ****
toggle_need &= ~f->flag;
*p++ = f->letter;
} else if ((f->type == NOTYPE) && (flag_need & f->flag) &&
! !(f->perms & F_INTERNAL) && Can_See_Flag(player, thing, f)) {
flag_need &= ~f->flag;
*p++ = f->letter;
}
--- 402,408 ----
toggle_need &= ~f->flag;
*p++ = f->letter;
} else if ((f->type == NOTYPE) && (flag_need & f->flag) &&
! Can_See_Flag(player, thing, f)) {
flag_need &= ~f->flag;
*p++ = f->letter;
}
*** 1_7_6.36/src/extmail.c Sat, 09 Nov 2002 19:47:06 -0600 dunemush (pennmush/c/22_extmail.c 1.44.1.7.1.5.1.7 660)
--- 1_7_6.56(w)/src/extmail.c Mon, 09 Dec 2002 14:04:27 -0600 dunemush (pennmush/c/22_extmail.c 1.44.1.7.1.5.1.9 660)
***************
*** 177,183 ****
*p = '\0';
break;
}
! if (!isprint(*p)) {
*p = ' ';
}
}
--- 177,183 ----
*p = '\0';
break;
}
! if (!isprint((unsigned char) *p)) {
*p = ' ';
}
}
***************
*** 219,225 ****
return;
}
for (p = newname; p && *p; p++) {
! if (!isdigit(*p) && !isalpha(*p)) {
notify(player, T("MAIL: Illegal folder name"));
return;
}
--- 219,225 ----
return;
}
for (p = newname; p && *p; p++) {
! if (!isdigit((unsigned char) *p) && !isalpha((unsigned char) *p)) {
notify(player, T("MAIL: Illegal folder name"));
return;
}
***************
*** 1336,1342 ****
do_mail_send(sender, arg1, arg2, 0, 0, 0);
} else {
/* Must be reading or listing mail - no arg2 */
! if (isdigit(*arg1) && !strchr(arg1, '-'))
do_mail_read(player, arg1);
else
do_mail_list(player, arg1);
--- 1336,1342 ----
do_mail_send(sender, arg1, arg2, 0, 0, 0);
} else {
/* Must be reading or listing mail - no arg2 */
! if (isdigit((unsigned char) *arg1) && !strchr(arg1, '-'))
do_mail_read(player, arg1);
else
do_mail_list(player, arg1);
***************
*** 2006,2012 ****
return -1;
res += 2 + strlen(name);
p = res;
! while (isdigit(*p))
p++;
*p = '\0';
return atoi(res);
--- 2006,2012 ----
return -1;
res += 2 + strlen(name);
p = res;
! while (isdigit((unsigned char) *p))
p++;
*p = '\0';
return atoi(res);
***************
*** 2081,2087 ****
if (old && *old) {
strcpy(tbuf, str);
r = old;
! while (!isspace(*r))
r++;
*r = '\0';
res = replace_string(old, new, tbuf); /* mallocs mem! */
--- 2081,2087 ----
if (old && *old) {
strcpy(tbuf, str);
r = old;
! while (!isspace((unsigned char) *r))
r++;
*r = '\0';
res = replace_string(old, new, tbuf); /* mallocs mem! */
***************
*** 2147,2153 ****
* for now. Later, this will be where named folders are handled */
if (!folder_string || !*folder_string)
return -1;
! if (isdigit(*folder_string)) {
fnum = atoi(folder_string);
if ((fnum < 0) || (fnum > MAX_FOLDERS))
return -1;
--- 2147,2153 ----
* for now. Later, this will be where named folders are handled */
if (!folder_string || !*folder_string)
return -1;
! if (isdigit((unsigned char) *folder_string)) {
fnum = atoi(folder_string);
if ((fnum < 0) || (fnum > MAX_FOLDERS))
return -1;
***************
*** 2235,2247 ****
/* Don't mess with msglist itself */
strncpy(tbuf1, msglist, BUFFER_LEN - 1);
p = tbuf1;
! while (p && *p && isspace(*p))
p++;
if (!p || !*p) {
ms->flags |= M_FOLDER;
return 1; /* all messages in current folder */
}
! if (isdigit(*p) || *p == '-') {
if (!parse_message_spec(player, p, &ms->low, &ms->high, &folder)) {
notify(player, T("MAIL: Invalid message specification"));
return 0;
--- 2235,2247 ----
/* Don't mess with msglist itself */
strncpy(tbuf1, msglist, BUFFER_LEN - 1);
p = tbuf1;
! while (p && *p && isspace((unsigned char) *p))
p++;
if (!p || !*p) {
ms->flags |= M_FOLDER;
return 1; /* all messages in current folder */
}
! if (isdigit((unsigned char) *p) || *p == '-') {
if (!parse_message_spec(player, p, &ms->low, &ms->high, &folder)) {
notify(player, T("MAIL: Invalid message specification"));
return 0;
*** 1_7_6.36/src/extchat.c Wed, 20 Nov 2002 21:50:51 -0600 dunemush (pennmush/c/23_extchat.c 1.1.1.1.1.1.1.1.1.2.1.1.1.3.1.1.1.5.1.1.1.1.1.5.1.2.1.3.1.3.1.1.1.4.1.2.1.6.1.2.1.1.2.4.2.9.1.2.1.2.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.2.1.1.2.1 660)
--- 1_7_6.56(w)/src/extchat.c Mon, 09 Dec 2002 14:04:27 -0600 dunemush (pennmush/c/23_extchat.c 1.1.1.1.1.1.1.1.1.2.1.1.1.3.1.1.1.5.1.1.1.1.1.5.1.2.1.3.1.3.1.1.1.4.1.2.1.6.1.2.1.1.2.4.2.9.1.2.1.2.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.2.1.1.2.1.1.2 660)
***************
*** 1089,1100 ****
s = tbuf1;
arg1 = s;
! while (*s && !isspace(*s))
s++;
if (*s) {
*s++ = '\0';
! while (*s && isspace(*s))
s++;
}
arg2 = s;
--- 1089,1100 ----
s = tbuf1;
arg1 = s;
! while (*s && !isspace((unsigned char) *s))
s++;
if (*s) {
*s++ = '\0';
! while (*s && isspace((unsigned char) *s))
s++;
}
arg2 = s;
***************
*** 1595,1601 ****
}
/* Stomp newlines and other weird whitespace */
for (scan = title; *scan; scan++) {
! if ((isspace(*scan) && (*scan != ' ')) || (*scan == BEEP_CHAR)) {
notify(player, T("Invalid character in title."));
return;
}
--- 1595,1602 ----
}
/* Stomp newlines and other weird whitespace */
for (scan = title; *scan; scan++) {
! if ((isspace((unsigned char) *scan) && (*scan != ' '))
! || (*scan == BEEP_CHAR)) {
notify(player, T("Invalid character in title."));
return;
}
*** 1_7_6.36/src/destroy.c Wed, 20 Nov 2002 09:43:49 -0600 dunemush (pennmush/c/24_destroy.c 1.24.2.2.1.3.1.1.1.1.1.1.1.4 660)
--- 1_7_6.56(w)/src/destroy.c Mon, 09 Dec 2002 14:04:27 -0600 dunemush (pennmush/c/24_destroy.c 1.24.2.2.1.3.1.1.1.1.1.1.1.4.1.1 660)
***************
*** 327,332 ****
--- 327,336 ----
return;
}
/* Present informative messages. */
+ if (!REALLY_SAFE && Safe(thing))
+ notify(player,
+ T
+ ("Warning: Target is set SAFE, but scheduling for destruction anyway."));
switch (Typeof(thing)) {
case TYPE_ROOM:
/* wait until dbck */
*** 1_7_6.36/src/db.c Fri, 05 Jul 2002 12:57:10 -0500 dunemush (pennmush/c/25_db.c 1.26.1.1.1.1.1.4 660)
--- 1_7_6.56(w)/src/db.c Mon, 09 Dec 2002 14:04:27 -0600 dunemush (pennmush/c/25_db.c 1.26.1.1.1.1.1.6 660)
***************
*** 672,678 ****
/* smash unprintable characters in the name, replace with ! */
strcpy(name, AL_NAME(list));
for (p = name; *p; p++) {
! if (!isprint(*p) || isspace(*p)) {
*p = '!';
fixmemdb = err = 1;
}
--- 672,678 ----
/* smash unprintable characters in the name, replace with ! */
strcpy(name, AL_NAME(list));
for (p = name; *p; p++) {
! if (!isprint((unsigned char) *p) || isspace((unsigned char) *p)) {
*p = '!';
fixmemdb = err = 1;
}
***************
*** 713,720 ****
/* get rid of unprintables and hard newlines */
lastp = '\0';
for (p = tbuf1; *p; p++) {
! if (!isprint(*p)) {
! if (!isspace(*p)) {
*p = '!';
err = 1;
}
--- 713,720 ----
/* get rid of unprintables and hard newlines */
lastp = '\0';
for (p = tbuf1; *p; p++) {
! if (!isprint((unsigned char) *p)) {
! if (!isspace((unsigned char) *p)) {
*p = '!';
err = 1;
}
*** 1_7_6.36/src/conf.c Sun, 10 Nov 2002 14:27:19 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.13 660)
--- 1_7_6.56(w)/src/conf.c Mon, 09 Dec 2002 14:04:27 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.15 660)
***************
*** 634,640 ****
/* Was this "restrict_command <command> <restriction>"? If so, do it */
if (!strcasecmp(opt, "restrict_command")) {
! for (p = val; *p && !isspace(*p); p++) ;
if (*p) {
*p++ = '\0';
if (!restrict_command(val, p)) {
--- 634,640 ----
/* Was this "restrict_command <command> <restriction>"? If so, do it */
if (!strcasecmp(opt, "restrict_command")) {
! for (p = val; *p && !isspace((unsigned char) *p); p++) ;
if (*p) {
*p++ = '\0';
if (!restrict_command(val, p)) {
***************
*** 655,661 ****
}
return 1;
} else if (!strcasecmp(opt, "command_alias")) {
! for (p = val; *p && !isspace(*p); p++) ;
if (*p) {
*p++ = '\0';
if (!alias_command(val, p)) {
--- 655,661 ----
}
return 1;
} else if (!strcasecmp(opt, "command_alias")) {
! for (p = val; *p && !isspace((unsigned char) *p); p++) ;
if (*p) {
*p++ = '\0';
if (!alias_command(val, p)) {
***************
*** 673,679 ****
}
return 1;
} else if (!strcasecmp(opt, "attribute_alias")) {
! for (p = val; *p && !isspace(*p); p++) ;
if (*p) {
*p++ = '\0';
if (!alias_attribute(val, p)) {
--- 673,679 ----
}
return 1;
} else if (!strcasecmp(opt, "attribute_alias")) {
! for (p = val; *p && !isspace((unsigned char) *p); p++) ;
if (*p) {
*p++ = '\0';
if (!alias_attribute(val, p)) {
***************
*** 691,697 ****
}
return 1;
} else if (!strcasecmp(opt, "function_alias")) {
! for (p = val; *p && !isspace(*p); p++) ;
if (*p) {
*p++ = '\0';
if (!alias_function(val, p)) {
--- 691,697 ----
}
return 1;
} else if (!strcasecmp(opt, "function_alias")) {
! for (p = val; *p && !isspace((unsigned char) *p); p++) ;
if (*p) {
*p++ = '\0';
if (!alias_function(val, p)) {
***************
*** 709,715 ****
}
return 1;
} else if (!strcasecmp(opt, "restrict_function")) {
! for (p = val; *p && !isspace(*p); p++) ;
if (*p) {
*p++ = '\0';
if (!restrict_function(val, p)) {
--- 709,715 ----
}
return 1;
} else if (!strcasecmp(opt, "restrict_function")) {
! for (p = val; *p && !isspace((unsigned char) *p); p++) ;
if (*p) {
*p++ = '\0';
if (!restrict_function(val, p)) {
***************
*** 747,753 ****
return 0;
}
comm = val;
! for (file = val; *file && !isspace(*file); file++) ;
if (*file) {
*file++ = '\0';
add_help_file(comm, file, admin);
--- 747,753 ----
return 0;
}
comm = val;
! for (file = val; *file && !isspace((unsigned char) *file); file++) ;
if (*file) {
*file++ = '\0';
add_help_file(comm, file, admin);
***************
*** 1000,1017 ****
for (p = tbuf1; *p && (*p != '\n') && (*p != '\r'); p++) ;
*p = '\0'; /* strip the end of line char(s) */
! for (p = tbuf1; *p && isspace(*p); p++) /* strip spaces */
;
! for (q = p; *q && !isspace(*q); q++) /* move over command */
;
if (*q)
*q++ = '\0'; /* split off command */
! for (; *q && isspace(*q); q++) /* skip spaces */
;
/* If the first character of the value is a #, and that is
followed by a number, treat it as a dbref instead of a
comment. */
! if (*q == '#' && isdigit(*(q + 1))) {
for (s = q + 1; *s && (*s != '#'); s++) /* look for a real comment */
;
} else {
--- 1000,1017 ----
for (p = tbuf1; *p && (*p != '\n') && (*p != '\r'); p++) ;
*p = '\0'; /* strip the end of line char(s) */
! for (p = tbuf1; *p && isspace((unsigned char) *p); p++) /* strip spaces */
;
! for (q = p; *q && !isspace((unsigned char) *q); q++) /* move over command */
;
if (*q)
*q++ = '\0'; /* split off command */
! for (; *q && isspace((unsigned char) *q); q++) /* skip spaces */
;
/* If the first character of the value is a #, and that is
followed by a number, treat it as a dbref instead of a
comment. */
! if (*q == '#' && isdigit((unsigned char) *(q + 1))) {
for (s = q + 1; *s && (*s != '#'); s++) /* look for a real comment */
;
} else {
***************
*** 1020,1026 ****
}
if (*s) /* if found nuke it */
*s = '\0';
! for (s = s - 1; (s >= q) && isspace(*s); s--) /* smash trailing stuff */
*s = '\0';
if (strlen(p) != 0) { /* skip blank lines */
--- 1020,1026 ----
}
if (*s) /* if found nuke it */
*s = '\0';
! for (s = s - 1; (s >= q) && isspace((unsigned char) *s); s--) /* smash trailing stuff */
*s = '\0';
if (strlen(p) != 0) { /* skip blank lines */
*** 1_7_6.36/src/bsd.c Sat, 23 Nov 2002 11:19:02 -0600 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.8.2.1.1.1 660)
--- 1_7_6.56(w)/src/bsd.c Mon, 09 Dec 2002 14:04:27 -0600 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.8.2.1.1.1.1.1.1.1.1.2.1.1 660)
***************
*** 1727,1733 ****
while ((curr = split_token(&fwdstr, ' ')) != NULL) {
if (is_dbref(curr)) {
fwd = parse_dbref(curr);
! if (GoodObject(fwd) && !IsGarbage(fwd) && Can_Forward(target, fwd))
if (IsRoom(fwd)) {
notify_anything(speaker, na_loc, &fwd, NULL,
flags | NA_NORELAY, tbuf1);
--- 1727,1733 ----
while ((curr = split_token(&fwdstr, ' ')) != NULL) {
if (is_dbref(curr)) {
fwd = parse_dbref(curr);
! if (GoodObject(fwd) && !IsGarbage(fwd) && Can_Forward(target, fwd)) {
if (IsRoom(fwd)) {
notify_anything(speaker, na_loc, &fwd, NULL,
flags | NA_NORELAY, tbuf1);
***************
*** 1735,1740 ****
--- 1735,1741 ----
notify_anything(speaker, na_one, &fwd, NULL,
flags | NA_NORELAY, tbuf1);
}
+ }
}
}
free((Malloc_t) orig);
***************
*** 2237,2243 ****
socket_ident = ident_id(newsock, &timeout);
if (socket_ident) {
/* Truncate at first non-printable character */
! for (chp = socket_ident; *chp && isprint(*chp); chp++) ;
*chp = '\0';
safe_str(socket_ident, tbuf1, &bp);
safe_chr('@', tbuf1, &bp);
--- 2238,2244 ----
socket_ident = ident_id(newsock, &timeout);
if (socket_ident) {
/* Truncate at first non-printable character */
! for (chp = socket_ident; *chp && isprint((unsigned char) *chp); chp++) ;
*chp = '\0';
safe_str(socket_ident, tbuf1, &bp);
safe_chr('@', tbuf1, &bp);
***************
*** 2756,2765 ****
sprintf(num, "%d", socks[1]);
#endif
if (!USE_IDENT)
! execl("./info_slave", "./info_slave", num, "-1", (char *) NULL);
else
execl("./info_slave", "./info_slave", num, tprintf("%d", IDENT_TIMEOUT),
! (char *) NULL);
perror("execing info slave");
exit(1);
}
--- 2757,2767 ----
sprintf(num, "%d", socks[1]);
#endif
if (!USE_IDENT)
! execl("./info_slave", "./info_slave", num, "-1", USE_DNS ? "1" : "0",
! (char *) NULL);
else
execl("./info_slave", "./info_slave", num, tprintf("%d", IDENT_TIMEOUT),
! USE_DNS ? "1" : "0", (char *) NULL);
perror("execing info slave");
exit(1);
}
***************
*** 3696,3701 ****
--- 3698,3705 ----
process_command(d->player, command, d->player, 1);
send_suffix(d);
+ strcpy(ccom, "");
+ cplr = NOTHING;
} else {
if (!check_connect(d, command))
return 0;
***************
*** 3976,3998 ****
}
void
! parse_connect(msg, command, user, pass)
! const char *msg;
! char *command;
! char *user;
! char *pass;
{
! char *p;
while (*msg && isspace(*msg))
msg++;
! p = command;
while (*msg && isprint(*msg) && !isspace(*msg))
*p++ = *msg++;
*p = '\0';
while (*msg && isspace(*msg))
msg++;
! p = user;
if (PLAYER_NAME_SPACES && *msg == '\"') {
for (; *msg && ((*msg == '\"') || isspace(*msg)); msg++) ;
--- 3980,3999 ----
}
void
! parse_connect(const char *msg1, char *command, char *user, char *pass)
{
! unsigned char *p;
! unsigned const char *msg = (unsigned const char *) msg1;
while (*msg && isspace(*msg))
msg++;
! p = (unsigned char *) command;
while (*msg && isprint(*msg) && !isspace(*msg))
*p++ = *msg++;
*p = '\0';
while (*msg && isspace(*msg))
msg++;
! p = (unsigned char *) user;
if (PLAYER_NAME_SPACES && *msg == '\"') {
for (; *msg && ((*msg == '\"') || isspace(*msg)); msg++) ;
***************
*** 4017,4023 ****
*p = '\0';
while (*msg && isspace(*msg))
msg++;
! p = pass;
while (*msg && isprint(*msg) && !isspace(*msg))
*p++ = *msg++;
*p = '\0';
--- 4018,4024 ----
*p = '\0';
while (*msg && isspace(*msg))
msg++;
! p = (unsigned char *) pass;
while (*msg && isprint(*msg) && !isspace(*msg))
*p++ = *msg++;
*p = '\0';
***************
*** 5461,5467 ****
exit(0);
}
/* Write out the reboot db flags here */
! fprintf(f, "V%d\n", flags);
putref(f, sock);
putref(f, maxd);
--- 5462,5468 ----
exit(0);
}
/* Write out the reboot db flags here */
! fprintf(f, "V%ld\n", flags);
putref(f, sock);
putref(f, maxd);
***************
*** 5630,5636 ****
struct hostname_info *hi;
char *socket_ident;
char *chp;
- /* int i; */
BOOL b;
char tbuf1[BUFFER_LEN];
--- 5631,5636 ----
***************
*** 5666,5672 ****
socket_ident = ident_id(socketClient, &timeout);
if (socket_ident) {
/* Truncate at first non-printable character */
! for (chp = socket_ident; *chp && isprint(*chp); chp++) ;
*chp = '\0';
safe_str(socket_ident, tbuf1, &bp);
safe_chr('@', tbuf1, &bp);
--- 5666,5672 ----
socket_ident = ident_id(socketClient, &timeout);
if (socket_ident) {
/* Truncate at first non-printable character */
! for (chp = socket_ident; *chp && isprint((unsigned char) *chp); chp++) ;
*chp = '\0';
safe_str(socket_ident, tbuf1, &bp);
safe_chr('@', tbuf1, &bp);
*** 1_7_6.36/src/boolexp.c Wed, 13 Nov 2002 17:26:14 -0600 dunemush (pennmush/c/39_boolexp.c 1.1.1.17.1.1.1.13 660)
--- 1_7_6.56(w)/src/boolexp.c Mon, 09 Dec 2002 14:04:26 -0600 dunemush (pennmush/c/39_boolexp.c 1.1.1.17.1.1.1.13.1.2 660)
***************
*** 468,474 ****
static void
skip_whitespace()
{
! while (*parsebuf && isspace(*parsebuf))
parsebuf++;
}
--- 468,474 ----
static void
skip_whitespace()
{
! while (*parsebuf && isspace((unsigned char) *parsebuf))
parsebuf++;
}
***************
*** 513,519 ****
}
/* strip trailing whitespace */
*p-- = '\0';
! while (isspace(*p))
*p-- = '\0';
/* do the match */
if (loading_db) {
--- 513,519 ----
}
/* strip trailing whitespace */
*p-- = '\0';
! while (isspace((unsigned char) *p))
*p-- = '\0';
/* do the match */
if (loading_db) {
***************
*** 574,580 ****
}
/* strip trailing whitespace */
*p-- = '\0';
! while (isspace(*p))
*p-- = '\0';
/* check for an attribute */
b = test_atr(tbuf1, ':');
--- 574,580 ----
}
/* strip trailing whitespace */
*p-- = '\0';
! while (isspace((unsigned char) *p))
*p-- = '\0';
/* check for an attribute */
b = test_atr(tbuf1, ':');
***************
*** 692,698 ****
}
/* strip trailing whitespace */
*p-- = '\0';
! while (isspace(*p))
*p-- = '\0';
upcasestr(tbuf1);
if (!good_atr_name(tbuf1)) {
--- 692,698 ----
}
/* strip trailing whitespace */
*p-- = '\0';
! while (isspace((unsigned char) *p))
*p-- = '\0';
upcasestr(tbuf1);
if (!good_atr_name(tbuf1)) {
*** 1_7_6.36/src/access.c Mon, 29 Apr 2002 12:03:38 -0500 dunemush (pennmush/c/43_access.c 1.11.1.2.1.2 660)
--- 1_7_6.56(w)/src/access.c Mon, 09 Dec 2002 14:04:26 -0600 dunemush (pennmush/c/43_access.c 1.11.1.2.1.4 660)
***************
*** 196,202 ****
*p = '\0';
/* Find beginning of line; ignore blank lines */
p = buf;
! if (*p && isspace(*p))
p++;
if (*p && *p != '#') {
can = cant = 0;
--- 196,202 ----
*p = '\0';
/* Find beginning of line; ignore blank lines */
p = buf;
! if (*p && isspace((unsigned char) *p))
p++;
if (*p && *p != '#') {
can = cant = 0;
***************
*** 208,218 ****
} else {
if ((comment = strchr(p, '#'))) {
*comment++ = '\0';
! while (*comment && isspace(*comment))
comment++;
}
/* Move past the host name */
! while (*p && !isspace(*p))
p++;
if (*p)
*p++ = '\0';
--- 208,218 ----
} else {
if ((comment = strchr(p, '#'))) {
*comment++ = '\0';
! while (*comment && isspace((unsigned char) *comment))
comment++;
}
/* Move past the host name */
! while (*p && !isspace((unsigned char) *p))
p++;
if (*p)
*p++ = '\0';
*** 1_7_6.36/hdrs/version.h Mon, 11 Nov 2002 20:59:15 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17 660)
--- 1_7_6.56(w)/hdrs/version.h Mon, 09 Dec 2002 14:04:32 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.1 660)
***************
*** 1,2 ****
! #define VERSION "PennMUSH version 1.7.6 patchlevel 0 [11/11/2002]"
! #define SHORTVN "PennMUSH 1.7.6p0"
--- 1,2 ----
! #define VERSION "PennMUSH version 1.7.6 patchlevel 1 [12/08/2002]"
! #define SHORTVN "PennMUSH 1.7.6p1"
*** 1_7_6.36/hdrs/conf.h Fri, 01 Nov 2002 10:47:06 -0600 dunemush (pennmush/d/20_conf.h 1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.5.1.1.1.1.1.1.1.1.1.2.1.1.2.1.2.13 660)
--- 1_7_6.56(w)/hdrs/conf.h Mon, 09 Dec 2002 14:04:32 -0600 dunemush (pennmush/d/20_conf.h 1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.5.1.1.1.1.1.1.1.1.1.2.1.1.2.1.2.13.1.1 660)
***************
*** 338,343 ****
--- 338,344 ----
#define WIZ_NOAENTER (options.wiz_noaenter)
#define USE_IDENT (options.use_ident)
#define IDENT_TIMEOUT (options.ident_timeout)
+ #define USE_DNS (options.use_dns)
#define MUSH_IP_ADDR (options.ip_addr)
#define MAX_ATTRCOUNT (options.max_attrcount)
#define FLOAT_PRECISION (options.float_precision)
*** 1_7_6.36/src/mysocket.c Thu, 30 May 2002 12:14:33 -0500 dunemush (pennmush/f/0_mysocket.c 1.16.1.1.1.1.1.1.1.4.1.4.1.3 660)
--- 1_7_6.56(w)/src/mysocket.c Mon, 09 Dec 2002 14:04:28 -0600 dunemush (pennmush/f/0_mysocket.c 1.16.1.1.1.1.1.1.1.4.1.4.1.6 660)
***************
*** 105,112 ****
static char port[NI_MAXSERV];
if (getnameinfo(host, len, hostname, sizeof hostname, port, sizeof port,
! (options.use_dns ? 0 : NI_NUMERICHOST) | NI_NUMERICSERV) !=
! 0) {
return NULL;
}
hi.hostname = hostname;
--- 105,111 ----
static char port[NI_MAXSERV];
if (getnameinfo(host, len, hostname, sizeof hostname, port, sizeof port,
! (USE_DNS ? 0 : NI_NUMERICHOST) | NI_NUMERICSERV) != 0) {
return NULL;
}
hi.hostname = hostname;
***************
*** 941,947 ****
for (sptr = &search[0]; sptr < &search[nsearch]; sptr++) {
#ifdef IPv4
/* 4check for an IPv4 dotted-decimal string */
! if (isdigit(sptr->host[0])) {
struct in_addr inaddr;
if (inet_pton(AF_INET, sptr->host, &inaddr) == 1) {
--- 940,946 ----
for (sptr = &search[0]; sptr < &search[nsearch]; sptr++) {
#ifdef IPv4
/* 4check for an IPv4 dotted-decimal string */
! if (isdigit((unsigned char) sptr->host[0])) {
struct in_addr inaddr;
if (inet_pton(AF_INET, sptr->host, &inaddr) == 1) {
***************
*** 959,965 ****
#ifdef HAS_IPV6
/* 4check for an IPv6 hex string */
! if ((isxdigit(sptr->host[0]) || sptr->host[0] == ':') &&
(strchr(sptr->host, ':') != NULL)) {
struct in6_addr in6addr;
--- 958,964 ----
#ifdef HAS_IPV6
/* 4check for an IPv6 hex string */
! if ((isxdigit((unsigned char) sptr->host[0]) || sptr->host[0] == ':') &&
(strchr(sptr->host, ':') != NULL)) {
struct in6_addr in6addr;
***************
*** 1306,1312 ****
int port, rc, nfound;
nfound = 0;
! if (isdigit(serv[0])) { /* check for port number string first */
port = (int) htons((unsigned short) atoi(serv));
if (hintsp->ai_socktype) {
/* 4caller specifies socket type */
--- 1305,1311 ----
int port, rc, nfound;
nfound = 0;
! if (isdigit((unsigned char) serv[0])) { /* check for port number string first */
port = (int) htons((unsigned short) atoi(serv));
if (hintsp->ai_socktype) {
/* 4caller specifies socket type */
*** 1_7_6.36/hdrs/case.h Wed, 06 Sep 2000 20:17:09 -0500 dunemush (pennmush/f/23_case.h 1.1 660)
--- 1_7_6.56(w)/hdrs/case.h Mon, 09 Dec 2002 14:04:32 -0600 dunemush (pennmush/f/23_case.h 1.2 660)
***************
*** 4,13 ****
#include "config.h"
#ifdef HAS_SAFE_TOUPPER
! #define DOWNCASE(x) tolower(x)
! #define UPCASE(x) toupper(x)
#else
! #define DOWNCASE(x) (isupper(x) ? tolower(x) : (x))
! #define UPCASE(x) (islower(x) ? toupper(x) : (x))
#endif
#endif /* CASE_H */
--- 4,13 ----
#include "config.h"
#ifdef HAS_SAFE_TOUPPER
! #define DOWNCASE(x) tolower((unsigned char)x)
! #define UPCASE(x) toupper((unsigned char)x)
#else
! #define DOWNCASE(x) (isupper((unsigned char)x) ? tolower((unsigned char)x) : (x))
! #define UPCASE(x) (islower((unsigned char)x) ? toupper((unsigned char)x) : (x))
#endif
#endif /* CASE_H */
*** 1_7_6.36/win32/pennmush.vcproj Tue, 26 Nov 2002 14:52:53 -0600 dunemush (pennmush/g/18_pennmush.v 1.3 660)
--- 1_7_6.56(w)/win32/pennmush.vcproj Wed, 27 Nov 2002 18:41:25 -0600 dunemush (pennmush/g/18_pennmush.v 1.4 600)
***************
*** 1,731 ****
! <?xml version="1.0" encoding = "Windows-1252"?>
! <VisualStudioProject
! ProjectType="Visual C++"
! Version="7.00"
! Name="pennmush"
! SccProjectName=""
! SccLocalPath="">
! <Platforms>
! <Platform
! Name="Win32"/>
! </Platforms>
! <Configurations>
! <Configuration
! Name="Release|Win32"
! OutputDirectory=".\./game"
! IntermediateDirectory=".\./src"
! ConfigurationType="1"
! UseOfMFC="0"
! ATLMinimizesCRunTimeLibraryUsage="FALSE"
! CharacterSet="2">
! <Tool
! Name="VCCLCompilerTool"
! InlineFunctionExpansion="0"
! AdditionalIncludeDirectories="./hdrs,./"
! PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE"
! StringPooling="TRUE"
! RuntimeLibrary="0"
! EnableFunctionLevelLinking="TRUE"
! UsePrecompiledHeader="2"
! PrecompiledHeaderFile=".\./src/pennmush.pch"
! AssemblerListingLocation=".\./src/"
! ObjectFile=".\./src/"
! ProgramDataBaseFileName=".\./src/"
! WarningLevel="3"
! SuppressStartupBanner="TRUE"
! CompileAs="0"/>
! <Tool
! Name="VCCustomBuildTool"/>
! <Tool
! Name="VCLinkerTool"
! AdditionalOptions="/MACHINE:I386"
! AdditionalDependencies="wsock32.lib winmm.lib"
! OutputFile=".\./game/pennmush.exe"
! LinkIncremental="1"
! SuppressStartupBanner="TRUE"
! ProgramDatabaseFile=".\./game/pennmush.pdb"
! SubSystem="1"/>
! <Tool
! Name="VCMIDLTool"
! TypeLibraryName=".\./game/pennmush.tlb"/>
! <Tool
! Name="VCPostBuildEventTool"/>
! <Tool
! Name="VCPreBuildEventTool"/>
! <Tool
! Name="VCPreLinkEventTool"/>
! <Tool
! Name="VCResourceCompilerTool"
! PreprocessorDefinitions="NDEBUG"
! Culture="3081"/>
! <Tool
! Name="VCWebServiceProxyGeneratorTool"/>
! <Tool
! Name="VCWebDeploymentTool"/>
! </Configuration>
! <Configuration
! Name="Debug|Win32"
! OutputDirectory=".\./game"
! IntermediateDirectory=".\./src"
! ConfigurationType="1"
! UseOfMFC="0"
! ATLMinimizesCRunTimeLibraryUsage="FALSE"
! CharacterSet="2">
! <Tool
! Name="VCCLCompilerTool"
! Optimization="0"
! AdditionalIncludeDirectories="./hdrs,./"
! PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
! RuntimeLibrary="1"
! UsePrecompiledHeader="2"
! PrecompiledHeaderFile=".\./src/pennmush.pch"
! AssemblerListingLocation=".\./src/"
! ObjectFile=".\./src/"
! ProgramDataBaseFileName=".\./src/"
! WarningLevel="3"
! SuppressStartupBanner="TRUE"
! DebugInformationFormat="4"
! CompileAs="0"/>
! <Tool
! Name="VCCustomBuildTool"/>
! <Tool
! Name="VCLinkerTool"
! AdditionalOptions="/MACHINE:I386"
! AdditionalDependencies="winmm.lib wsock32.lib"
! OutputFile=".\./game/pennmush.exe"
! LinkIncremental="2"
! SuppressStartupBanner="TRUE"
! GenerateDebugInformation="TRUE"
! ProgramDatabaseFile=".\./game/pennmush.pdb"
! SubSystem="1"/>
! <Tool
! Name="VCMIDLTool"
! TypeLibraryName=".\./game/pennmush.tlb"/>
! <Tool
! Name="VCPostBuildEventTool"/>
! <Tool
! Name="VCPreBuildEventTool"/>
! <Tool
! Name="VCPreLinkEventTool"/>
! <Tool
! Name="VCResourceCompilerTool"
! PreprocessorDefinitions="_DEBUG"
! Culture="3081"/>
! <Tool
! Name="VCWebServiceProxyGeneratorTool"/>
! <Tool
! Name="VCWebDeploymentTool"/>
! </Configuration>
! </Configurations>
! <Files>
! <Filter
! Name="src"
! Filter="">
! <File
! RelativePath=".\src\access.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\atr_tab.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\attrib.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\boolexp.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\bsd.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\cmdlocal.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\cmds.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\command.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\compress.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\conf.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\cque.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\create.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\db.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\destroy.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\extchat.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\extmail.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\filecopy.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\flags.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\function.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\funcrypt.c">
! </File>
! <File
! RelativePath=".\src\fundb.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\funlist.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\funlocal.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\funmath.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\funmisc.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\funstr.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\funtime.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\funufun.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\game.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\help.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\htab.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\ident.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\local.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\lock.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\log.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\look.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\malias.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\match.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\memcheck.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\move.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\mycrypt.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\mymalloc.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\mysocket.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\parse.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\pcre.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\player.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\plyrlist.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\predicat.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\privtab.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\ptab.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\rob.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\services.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath=".\src\set.c">
! <FileConfiguration
! Name="Release|Win32">
! <Tool
! Name="VCCLCompilerTool"/>
! </FileConfiguration>
! </File>
! <File
! RelativePath="src\shs.c">
! </File>
! <File
! RelativePath="src\sig.c">
! </File>
! <File
! RelativePath=".\src\speech.c">
! </File>
! <File
! RelativePath=".\src\strdup.c">
! </File>
! <File
! RelativePath=".\src\strtree.c">
! </File>
! <File
! RelativePath=".\src\strutil.c">
! </File>
! <File
! RelativePath=".\src\tables.c">
! </File>
! <File
! RelativePath=".\src\timer.c">
! </File>
! <File
! RelativePath=".\src\unparse.c">
! </File>
! <File
! RelativePath=".\src\utils.c">
! </File>
! <File
! RelativePath=".\src\version.c">
! </File>
! <File
! RelativePath=".\src\warnings.c">
! </File>
! <File
! RelativePath=".\src\wild.c">
! </File>
! <File
! RelativePath=".\src\wiz.c">
! </File>
! </Filter>
! <Filter
! Name="hdrs"
! Filter="">
! <File
! RelativePath="hdrs\access.h">
! </File>
! <File
! RelativePath="hdrs\ansi.h">
! </File>
! <File
! RelativePath="hdrs\atr_tab.h">
! </File>
! <File
! RelativePath="hdrs\attrib.h">
! </File>
! <File
! RelativePath="hdrs\boolexp.h">
! </File>
! <File
! RelativePath="hdrs\case.h">
! </File>
! <File
! RelativePath="hdrs\cmds.h">
! </File>
! <File
! RelativePath="hdrs\command.h">
! </File>
! <File
! RelativePath="hdrs\conf.h">
! </File>
! <File
! RelativePath="hdrs\copyrite.h">
! </File>
! <File
! RelativePath="hdrs\csrimalloc.h">
! </File>
! <File
! RelativePath="hdrs\dbdefs.h">
! </File>
! <File
! RelativePath="hdrs\extchat.h">
! </File>
! <File
! RelativePath="hdrs\externs.h">
! </File>
! <File
! RelativePath="hdrs\extmail.h">
! </File>
! <File
! RelativePath="hdrs\flags.h">
! </File>
! <File
! RelativePath="hdrs\function.h">
! </File>
! <File
! RelativePath="hdrs\funs.h">
! </File>
! <File
! RelativePath="hdrs\game.h">
! </File>
! <File
! RelativePath="hdrs\getpgsiz.h">
! </File>
! <File
! RelativePath="hdrs\help.h">
! </File>
! <File
! RelativePath="hdrs\htab.h">
! </File>
! <File
! RelativePath="hdrs\ident.h">
! </File>
! <File
! RelativePath="hdrs\intrface.h">
! </File>
! <File
! RelativePath="hdrs\lock.h">
! </File>
! <File
! RelativePath="hdrs\log.h">
! </File>
! <File
! RelativePath="hdrs\malias.h">
! </File>
! <File
! RelativePath="hdrs\match.h">
! </File>
! <File
! RelativePath="hdrs\memcheck.h">
! </File>
! <File
! RelativePath="hdrs\mushdb.h">
! </File>
! <File
! RelativePath="hdrs\mushtype.h">
! </File>
! <File
! RelativePath="hdrs\mymalloc.h">
! </File>
! <File
! RelativePath="hdrs\mysocket.h">
! </File>
! <File
! RelativePath="hdrs\parse.h">
! </File>
! <File
! RelativePath="hdrs\patches.h">
! </File>
! <File
! RelativePath="hdrs\pcre.h">
! </File>
! <File
! RelativePath="hdrs\privtab.h">
! </File>
! <File
! RelativePath="hdrs\ptab.h">
! </File>
! <File
! RelativePath="hdrs\pueblo.h">
! </File>
! <File
! RelativePath="hdrs\shs.h">
! </File>
! <File
! RelativePath="hdrs\strtree.h">
! </File>
! <File
! RelativePath="hdrs\switches.h">
! </File>
! <File
! RelativePath="hdrs\version.h">
! </File>
! </Filter>
! <File
! RelativePath="config.h">
! </File>
! <File
! RelativePath="confmagic.h">
! </File>
! <File
! RelativePath="options.h">
! </File>
! </Files>
! <Globals>
! </Globals>
! </VisualStudioProject>
--- 1,473 ----
! <?xml version="1.0" encoding = "Windows-1252"?>
! <VisualStudioProject
! ProjectType="Visual C++"
! Version="7.00"
! Name="pennmush"
! SccProjectName=""
! SccLocalPath="">
! <Platforms>
! <Platform
! Name="Win32"/>
! </Platforms>
! <Configurations>
! <Configuration
! Name="Release|Win32"
! OutputDirectory=".\./game"
! IntermediateDirectory=".\./src"
! ConfigurationType="1"
! UseOfMFC="0"
! ATLMinimizesCRunTimeLibraryUsage="FALSE"
! CharacterSet="2">
! <Tool
! Name="VCCLCompilerTool"
! InlineFunctionExpansion="0"
! AdditionalIncludeDirectories="./hdrs,./"
! PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE"
! StringPooling="TRUE"
! RuntimeLibrary="0"
! EnableFunctionLevelLinking="TRUE"
! DefaultCharIsUnsigned="TRUE"
! UsePrecompiledHeader="2"
! PrecompiledHeaderFile=".\./src/pennmush.pch"
! AssemblerListingLocation=".\./src/"
! ObjectFile=".\./src/"
! ProgramDataBaseFileName=".\./src/"
! WarningLevel="3"
! SuppressStartupBanner="TRUE"
! CompileAs="0"/>
! <Tool
! Name="VCCustomBuildTool"/>
! <Tool
! Name="VCLinkerTool"
! AdditionalOptions="/MACHINE:I386"
! AdditionalDependencies="wsock32.lib winmm.lib"
! OutputFile=".\./game/pennmush.exe"
! LinkIncremental="1"
! SuppressStartupBanner="TRUE"
! ProgramDatabaseFile=".\./game/pennmush.pdb"
! SubSystem="1"/>
! <Tool
! Name="VCMIDLTool"
! TypeLibraryName=".\./game/pennmush.tlb"/>
! <Tool
! Name="VCPostBuildEventTool"/>
! <Tool
! Name="VCPreBuildEventTool"/>
! <Tool
! Name="VCPreLinkEventTool"/>
! <Tool
! Name="VCResourceCompilerTool"
! PreprocessorDefinitions="NDEBUG"
! Culture="3081"/>
! <Tool
! Name="VCWebServiceProxyGeneratorTool"/>
! <Tool
! Name="VCWebDeploymentTool"/>
! </Configuration>
! <Configuration
! Name="Debug|Win32"
! OutputDirectory=".\./game"
! IntermediateDirectory=".\./src"
! ConfigurationType="1"
! UseOfMFC="0"
! ATLMinimizesCRunTimeLibraryUsage="FALSE"
! CharacterSet="2">
! <Tool
! Name="VCCLCompilerTool"
! Optimization="0"
! AdditionalIncludeDirectories="./hdrs,./"
! PreprocessorDefinitions="WIN32,_DEBUG,_CONSOLE"
! RuntimeLibrary="1"
! DefaultCharIsUnsigned="TRUE"
! UsePrecompiledHeader="2"
! PrecompiledHeaderFile=".\./src/pennmush.pch"
! AssemblerListingLocation=".\./src/"
! ObjectFile=".\./src/"
! ProgramDataBaseFileName=".\./src/"
! WarningLevel="3"
! SuppressStartupBanner="TRUE"
! DebugInformationFormat="4"
! CompileAs="0"/>
! <Tool
! Name="VCCustomBuildTool"/>
! <Tool
! Name="VCLinkerTool"
! AdditionalOptions="/MACHINE:I386"
! AdditionalDependencies="winmm.lib wsock32.lib"
! OutputFile=".\./game/pennmush.exe"
! LinkIncremental="2"
! SuppressStartupBanner="TRUE"
! GenerateDebugInformation="TRUE"
! ProgramDatabaseFile=".\./game/pennmush.pdb"
! SubSystem="1"/>
! <Tool
! Name="VCMIDLTool"
! TypeLibraryName=".\./game/pennmush.tlb"/>
! <Tool
! Name="VCPostBuildEventTool"/>
! <Tool
! Name="VCPreBuildEventTool"/>
! <Tool
! Name="VCPreLinkEventTool"/>
! <Tool
! Name="VCResourceCompilerTool"
! PreprocessorDefinitions="_DEBUG"
! Culture="3081"/>
! <Tool
! Name="VCWebServiceProxyGeneratorTool"/>
! <Tool
! Name="VCWebDeploymentTool"/>
! </Configuration>
! </Configurations>
! <Files>
! <Filter
! Name="src"
! Filter="">
! <File
! RelativePath=".\src\access.c">
! </File>
! <File
! RelativePath=".\src\atr_tab.c">
! </File>
! <File
! RelativePath=".\src\attrib.c">
! </File>
! <File
! RelativePath=".\src\boolexp.c">
! </File>
! <File
! RelativePath=".\src\bsd.c">
! </File>
! <File
! RelativePath=".\src\cmdlocal.c">
! </File>
! <File
! RelativePath=".\src\cmds.c">
! </File>
! <File
! RelativePath=".\src\command.c">
! </File>
! <File
! RelativePath=".\src\compress.c">
! </File>
! <File
! RelativePath=".\src\conf.c">
! </File>
! <File
! RelativePath=".\src\cque.c">
! </File>
! <File
! RelativePath=".\src\create.c">
! </File>
! <File
! RelativePath=".\src\db.c">
! </File>
! <File
! RelativePath=".\src\destroy.c">
! </File>
! <File
! RelativePath=".\src\extchat.c">
! </File>
! <File
! RelativePath=".\src\extmail.c">
! </File>
! <File
! RelativePath=".\src\filecopy.c">
! </File>
! <File
! RelativePath=".\src\flags.c">
! </File>
! <File
! RelativePath=".\src\funcrypt.c">
! </File>
! <File
! RelativePath=".\src\function.c">
! </File>
! <File
! RelativePath=".\src\fundb.c">
! </File>
! <File
! RelativePath=".\src\funlist.c">
! </File>
! <File
! RelativePath=".\src\funlocal.c">
! </File>
! <File
! RelativePath=".\src\funmath.c">
! </File>
! <File
! RelativePath=".\src\funmisc.c">
! </File>
! <File
! RelativePath=".\src\funstr.c">
! </File>
! <File
! RelativePath=".\src\funtime.c">
! </File>
! <File
! RelativePath=".\src\funufun.c">
! </File>
! <File
! RelativePath=".\src\game.c">
! </File>
! <File
! RelativePath=".\src\help.c">
! </File>
! <File
! RelativePath=".\src\htab.c">
! </File>
! <File
! RelativePath=".\src\ident.c">
! </File>
! <File
! RelativePath=".\src\local.c">
! </File>
! <File
! RelativePath=".\src\lock.c">
! </File>
! <File
! RelativePath=".\src\log.c">
! </File>
! <File
! RelativePath=".\src\look.c">
! </File>
! <File
! RelativePath=".\src\malias.c">
! </File>
! <File
! RelativePath=".\src\match.c">
! </File>
! <File
! RelativePath=".\src\memcheck.c">
! </File>
! <File
! RelativePath=".\src\move.c">
! </File>
! <File
! RelativePath=".\src\mycrypt.c">
! </File>
! <File
! RelativePath=".\src\mymalloc.c">
! </File>
! <File
! RelativePath=".\src\mysocket.c">
! </File>
! <File
! RelativePath=".\src\parse.c">
! </File>
! <File
! RelativePath=".\src\pcre.c">
! </File>
! <File
! RelativePath=".\src\player.c">
! </File>
! <File
! RelativePath=".\src\plyrlist.c">
! </File>
! <File
! RelativePath=".\src\predicat.c">
! </File>
! <File
! RelativePath=".\src\privtab.c">
! </File>
! <File
! RelativePath=".\src\ptab.c">
! </File>
! <File
! RelativePath=".\src\rob.c">
! </File>
! <File
! RelativePath=".\src\services.c">
! </File>
! <File
! RelativePath=".\src\set.c">
! </File>
! <File
! RelativePath="src\shs.c">
! </File>
! <File
! RelativePath="src\sig.c">
! </File>
! <File
! RelativePath=".\src\speech.c">
! </File>
! <File
! RelativePath=".\src\strdup.c">
! </File>
! <File
! RelativePath=".\src\strtree.c">
! </File>
! <File
! RelativePath=".\src\strutil.c">
! </File>
! <File
! RelativePath=".\src\tables.c">
! </File>
! <File
! RelativePath=".\src\timer.c">
! </File>
! <File
! RelativePath=".\src\unparse.c">
! </File>
! <File
! RelativePath=".\src\utils.c">
! </File>
! <File
! RelativePath=".\src\version.c">
! </File>
! <File
! RelativePath=".\src\warnings.c">
! </File>
! <File
! RelativePath=".\src\wild.c">
! </File>
! <File
! RelativePath=".\src\wiz.c">
! </File>
! </Filter>
! <Filter
! Name="hdrs"
! Filter="">
! <File
! RelativePath="hdrs\access.h">
! </File>
! <File
! RelativePath="hdrs\ansi.h">
! </File>
! <File
! RelativePath="hdrs\atr_tab.h">
! </File>
! <File
! RelativePath="hdrs\attrib.h">
! </File>
! <File
! RelativePath="hdrs\boolexp.h">
! </File>
! <File
! RelativePath="hdrs\case.h">
! </File>
! <File
! RelativePath="hdrs\cmds.h">
! </File>
! <File
! RelativePath="hdrs\command.h">
! </File>
! <File
! RelativePath="hdrs\conf.h">
! </File>
! <File
! RelativePath="hdrs\copyrite.h">
! </File>
! <File
! RelativePath="hdrs\csrimalloc.h">
! </File>
! <File
! RelativePath="hdrs\dbdefs.h">
! </File>
! <File
! RelativePath="hdrs\extchat.h">
! </File>
! <File
! RelativePath="hdrs\externs.h">
! </File>
! <File
! RelativePath="hdrs\extmail.h">
! </File>
! <File
! RelativePath="hdrs\flags.h">
! </File>
! <File
! RelativePath="hdrs\function.h">
! </File>
! <File
! RelativePath="hdrs\funs.h">
! </File>
! <File
! RelativePath="hdrs\game.h">
! </File>
! <File
! RelativePath="hdrs\getpgsiz.h">
! </File>
! <File
! RelativePath="hdrs\help.h">
! </File>
! <File
! RelativePath="hdrs\htab.h">
! </File>
! <File
! RelativePath="hdrs\ident.h">
! </File>
! <File
! RelativePath="hdrs\intrface.h">
! </File>
! <File
! RelativePath="hdrs\lock.h">
! </File>
! <File
! RelativePath="hdrs\log.h">
! </File>
! <File
! RelativePath="hdrs\malias.h">
! </File>
! <File
! RelativePath="hdrs\match.h">
! </File>
! <File
! RelativePath="hdrs\memcheck.h">
! </File>
! <File
! RelativePath="hdrs\mushdb.h">
! </File>
! <File
! RelativePath="hdrs\mushtype.h">
! </File>
! <File
! RelativePath="hdrs\mymalloc.h">
! </File>
! <File
! RelativePath="hdrs\mysocket.h">
! </File>
! <File
! RelativePath="hdrs\parse.h">
! </File>
! <File
! RelativePath="hdrs\patches.h">
! </File>
! <File
! RelativePath="hdrs\pcre.h">
! </File>
! <File
! RelativePath="hdrs\privtab.h">
! </File>
! <File
! RelativePath="hdrs\ptab.h">
! </File>
! <File
! RelativePath="hdrs\pueblo.h">
! </File>
! <File
! RelativePath="hdrs\shs.h">
! </File>
! <File
! RelativePath="hdrs\strtree.h">
! </File>
! <File
! RelativePath="hdrs\switches.h">
! </File>
! <File
! RelativePath="hdrs\version.h">
! </File>
! </Filter>
! <File
! RelativePath="config.h">
! </File>
! <File
! RelativePath="confmagic.h">
! </File>
! <File
! RelativePath="options.h">
! </File>
! </Files>
! <Globals>
! </Globals>
! </VisualStudioProject>
*** 1_7_6.36/INSTALL Mon, 11 Nov 2002 20:39:30 -0600 dunemush (pennmush/g/20_INSTALL 1.1 600)
--- 1_7_6.56(w)/INSTALL Sun, 08 Dec 2002 22:42:30 -0600 dunemush (pennmush/g/20_INSTALL 1.2 600)
***************
*** 101,106 ****
--- 101,107 ----
b. Compile with the Cygwin unix emulation tools (http://www.cygwin.com)
In addition to the base cygwin stuff, you'll want the following packages:
binutils, gcc, make, patch, perl, exim-4.10-1 source code
+ (gcc 3.2 is recommended.)
These are also recommended:
gettext, gettext-devel, indent, vim or emacs
It is recommended that you install the tools under C:\CYGWIN and
More information about the %(listname)s
mailing list