[PENNMUSH-ANNOUNCE] 1.7.7-patch15
dunemush at tala.mede.uic.edu
dunemush at tala.mede.uic.edu
Mon Jun 2 15:28:10 CDT 2003
This is patch15 to PennMUSH 1.7.7. After applying this patch, you will
have version 1.7.7p15
To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
patch -p1 < 1.7.7-patch15
./Configure -S
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. On the off chance they appear not to be, simply
rm them and re-run make.
If a hunk fails in game/restart, you will have to decide if you want
to hand-patch the changes to restart, which increase safety in
unusual conditions.
Then @shutdown and restart your MUSH.
- Alan/Javelin
In this patch:
Fixes:
* Problem with checking command flag masks when the number of
flags was an even multiple of 8. Reported by Nymeria and
Mordie at M*U*S*H.
* Tweak to improve efficiency of ancestor checking code and delint
warning reported by Cheetah at M*U*S*H.
* SESSION output no longer misaligned with 5-digit dbrefs.
Reported by Cheetah at M*U*S*H. [TAP].
* Fixes from 1.7.6p11.
* game/txt/index-files.pl now uses locale information in the
environment to, e.g., correctly lowercase accented characters.
Report by Krad at M*U*S*H.
* Modified several Makefile.SH targets to prevent Javelin from
releasing patches that don't have the autogenerated files
up-to-date for Windows folks.
* Removed some dependence on typedefs that may or may not be in system
header files. [SW]
* Patch compiler warnings. [SW,EEH]
* Help fixes by Mike Griffiths and Oriens at Alexandria.
Prereq: 1.7.7p14
*** 1_7_7.447/Patchlevel Thu, 22 May 2003 13:40:04 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.16 600)
--- 1_7_7.464(w)/Patchlevel Mon, 02 Jun 2003 13:17:14 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.17 600)
***************
*** 1,2 ****
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.7p14
--- 1,2 ----
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.7.7p15
*** 1_7_7.447/CHANGES.176 Tue, 13 May 2003 12:53:40 -0500 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.1.9.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2 600)
--- 1_7_7.464(w)/CHANGES.176 Mon, 02 Jun 2003 13:32:58 -0500 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.1.9.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.2 600)
***************
*** 13,18 ****
--- 13,32 ----
==========================================================================
+ Version 1.7.6 patchlevel 11 June 1, 2003
+
+ Minor changes:
+ * The restart script now insures that GAMEDIR is a real directory
+ and CONF_FILE exists therein before proceeding. Suggested by
+ Philip Mak.
+ * Attribute flag setting messages are more verbose. Suggested by
+ Mike Griffiths
+ * See_All players may use the ports() function. Suggested by
+ Mike Griffiths.
+ Fixes:
+ * Wizards can no longer @chzone God. Report by Kevin at M*U*S*H.
+ * Help fixes by Mike Griffiths.
+
Version 1.7.6 patchlevel 10 May 13, 2003
Minor changes:
*** 1_7_7.447/CHANGES.177 Thu, 22 May 2003 13:40:04 -0500 dunemush (pennmush/g/23_CHANGES 1.48.1.84 600)
--- 1_7_7.464(w)/CHANGES.177 Mon, 02 Jun 2003 13:17:09 -0500 dunemush (pennmush/g/23_CHANGES 1.48.1.94 600)
***************
*** 18,23 ****
--- 18,46 ----
==========================================================================
+ Version 1.7.7 patchlevel 15 June 1, 2003
+
+ Fixes:
+ * Problem with checking command flag masks when the number of
+ flags was an even multiple of 8. Reported by Nymeria and
+ Mordie at M*U*S*H.
+ * Tweak to improve efficiency of ancestor checking code and delint
+ warning reported by Cheetah at M*U*S*H.
+ * SESSION output no longer misaligned with 5-digit dbrefs.
+ Reported by Cheetah at M*U*S*H. [TAP].
+ * Fixes from 1.7.6p11.
+ * game/txt/index-files.pl now uses locale information in the
+ environment to, e.g., correctly lowercase accented characters.
+ Report by Krad at M*U*S*H.
+ * Modified several Makefile.SH targets to prevent Javelin from
+ releasing patches that don't have the autogenerated files
+ up-to-date for Windows folks.
+ * Removed some dependence on typedefs that may or may not be in system
+ header files. [SW]
+ * Patch compiler warnings. [SW,EEH]
+ * Help fixes by Mike Griffiths and Oriens at Alexandria.
+
+
Version 1.7.7 patchlevel 14 May 22, 2003
Major changes:
*** 1_7_7.447/game/txt/hlp/penntop.hlp Tue, 15 Apr 2003 12:22:04 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.12.1.7 600)
--- 1_7_7.464(w)/game/txt/hlp/penntop.hlp Sat, 31 May 2003 16:32:16 -0500 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.12.1.1.1.1.1.2 600)
***************
*** 902,909 ****
own attributes by the child. Thus, when a $-command or @trigger is
executed, "me", for example, refers to the child, not the parent,
and the $-command's associated actions are performed by the child.
- However, uselocks are checked on parents. Failing one stops looking
- for a matching command on that parent chain.
(continued in help parents3)
& PARENTS3
--- 902,907 ----
*** 1_7_7.447/game/txt/hlp/pennfunc.hlp Mon, 12 May 2003 16:46:13 -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.1.1.1.1.1.1.9.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.3 600)
--- 1_7_7.464(w)/game/txt/hlp/pennfunc.hlp Sat, 31 May 2003 16:32:16 -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.1.1.1.1.1.1.9.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.2 600)
***************
*** 1265,1271 ****
accname() returns the name of object <object>, applying the object's
@nameaccent, if any.
! Related functions: NAME(), ACCNAME(), INAME()
& FRACTION()
fraction(<number>)
--- 1265,1271 ----
accname() returns the name of object <object>, applying the object's
@nameaccent, if any.
! Related functions: NAME(), FULLNAME(), INAME()
& FRACTION()
fraction(<number>)
***************
*** 1346,1353 ****
& REGREP()
grep(<object>,<attrs>,<pattern>)
regrep(<object>,<attrs>,<regexp>)
! This function returns a list of attributes on <object> containing
<pattern> (or matching <regexp>). <attrs> is a wildcard pattern for
attribute names to search; if you want to search all attributes, use "*".
--- 1346,1355 ----
& REGREP()
grep(<object>,<attrs>,<pattern>)
regrep(<object>,<attrs>,<regexp>)
+ grepi(<object>,<attrs>,<pattern>)
+ regrepi(<object>,<attrs>,<regexp>)
! These functions return a list of attributes on <object> containing
<pattern> (or matching <regexp>). <attrs> is a wildcard pattern for
attribute names to search; if you want to search all attributes, use "*".
***************
*** 1358,1370 ****
"special" characters will need to be escaped out. In grep(),
<pattern> is NOT wildcard matched.
! These functions are case-sensitive. grepi()/regrepi() are case-insensitive.
! & GREPI()
! grepi(<object>,<attrs>,<pattern>)
! regrepi(<object>,<attrs>,<regexp>)
!
! This function works exactly like grep or regrep, but is case-insensitive.
! See "help grep()" or "help regrep()" for details.
& GT()
gt(<num>,<num>)
--- 1360,1366 ----
"special" characters will need to be escaped out. In grep(),
<pattern> is NOT wildcard matched.
! grep()/regrep() are case-sensitive. grepi()/regrepi() are case-insensitive.
& GT()
gt(<num>,<num>)
***************
*** 2566,2576 ****
ports(<player name>)
This function returns the list of descriptors ("ports") that a player,
! specified by full player name, or by dbref, is connected to. Only Wizards
! and Royalty may use this function; if a user lacks the privileges, or the
! player is not connected, an empty list is returned. Otherwise, a list of
! ports is returned in order of most recent connection to least recent
! connection.
& POS()
pos(<string1>,<string2>)
--- 2562,2571 ----
ports(<player name>)
This function returns the list of descriptors ("ports") that a player,
! specified by full player name, or by dbref, is connected to. Only players
! who are See_All or privileged may use this function; in other cases,
! an empty list is returned. Otherwise, a list of ports is returned in
! order of most recent connection to least recent connection.
& POS()
pos(<string1>,<string2>)
***************
*** 2648,2653 ****
--- 2643,2649 ----
See also: edit(), regmatch()
& REGMATCH()
+ & REGMATCHI()
(Help text from TinyMUSH 2.2.4, with permission)
regmatch(<string>,<regexp>[,<register list>])
regmatchi(<string>,<regexp>[,<register list>])
*** 1_7_7.447/game/txt/hlp/pennflag.hlp Tue, 15 Apr 2003 12:28:09 -0500 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.4.1.2.2.4 600)
--- 1_7_7.464(w)/game/txt/hlp/pennflag.hlp Mon, 02 Jun 2003 13:16:53 -0500 dunemush (pennmush/17_pennflag.h 1.1.1.1.1.2.1.1.1.2.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.4.1.2.2.5 600)
***************
*** 531,537 ****
The ORPHAN flag severs the connection between an object and its
type ancestor, and prevents attributes from being
retrieved from the ancestor. It has no effect on the object's
! true @parents, only on the its use of the ancestor.
See also: @parent, ancestors
& PLAYER
--- 531,537 ----
The ORPHAN flag severs the connection between an object and its
type ancestor, and prevents attributes from being
retrieved from the ancestor. It has no effect on the object's
! true @parents, only on its use of the ancestor.
See also: @parent, ancestors
& PLAYER
*** 1_7_7.447/game/txt/index-files.pl Wed, 26 Mar 2003 09:19:34 -0600 dunemush (pennmush/28_index-file 1.8 600)
--- 1_7_7.464(w)/game/txt/index-files.pl Sat, 31 May 2003 15:29:18 -0500 dunemush (pennmush/28_index-file 1.9 600)
***************
*** 17,22 ****
--- 17,23 ----
require 5; # Sorry, Talek.
use strict;
use Getopt::Long;
+ use locale;
my (@entries, @aentries);
# Have we got any options?
*** 1_7_7.447/game/restart Mon, 05 May 2003 20:48:03 -0500 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.2.2.4.1.1 700)
--- 1_7_7.464(w)/game/restart Thu, 29 May 2003 11:45:33 -0500 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.2.2.1.2.2 700)
***************
*** 8,16 ****
# If this doesn't work, you can set GAMEDIR to the directory this
# script lives in by hand.
GAMEDIR=`which $0 | sed 's/\/[^\/]*$//'`
- cd $GAMEDIR
- echo Running from `pwd`
-
# The config file
CONF_FILE=mush.cnf
--- 8,13 ----
***************
*** 18,23 ****
--- 15,34 ----
# The error log file
LOG=log/netmush.log
+
+ if [ ! -d $GAMEDIR ]; then
+ echo "GAMEDIR doesn't appear to be a directory. It's: $GAMEDIR"
+ exit 1
+ fi
+
+ cd $GAMEDIR
+ echo Running from `pwd`
+
+ if [ ! -f $CONF_FILE ]; then
+ echo "CONF_FILE doesn't exist. It's: $CONF_FILE"
+ exit 1
+ fi
+
# Internationalization stuff
# Set LANG here to get international character sets and, if someone's
# done it, translation of messages.
*** 1_7_7.447/src/switchinc.c Mon, 28 Apr 2003 22:37:00 -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.31.3.4.1.5.1.4.1.1.1.1.1.4 660)
--- 1_7_7.464(w)/src/switchinc.c Mon, 02 Jun 2003 14:20:37 -0500 dunemush (pennmush/b/32_switchinc. 1.3.1.2.1.6.1.18.1.2.1.2.2.5.1.4.2.4.1.1.1.2.1.5.1.2.1.5.2.1.1.31.3.4.1.5.1.4.1.1.1.1.1.1.1.6 660)
***************
*** 46,51 ****
--- 46,52 ----
{"FLAGS", SWITCH_FLAGS},
{"FOLDERS", SWITCH_FOLDERS},
{"FORWARD", SWITCH_FORWARD},
+ {"FREESPACE", SWITCH_FREESPACE},
{"FSTATS", SWITCH_FSTATS},
{"FULL", SWITCH_FULL},
{"FUNCTIONS", SWITCH_FUNCTIONS},
***************
*** 136,140 ****
{"WIZARD", SWITCH_WIZARD},
{"YES", SWITCH_YES},
{"ZONE", SWITCH_ZONE},
! {NULL, 0}
};
--- 137,141 ----
{"WIZARD", SWITCH_WIZARD},
{"YES", SWITCH_YES},
{"ZONE", SWITCH_ZONE},
! {NULL, 0}
};
*** 1_7_7.447/src/set.c Mon, 12 May 2003 16:54:32 -0500 dunemush (pennmush/b/38_set.c 1.26.1.5.1.1.2.1.1.1.1.1.1.11.1.1.1.1.1.1.1.6 660)
--- 1_7_7.464(w)/src/set.c Mon, 02 Jun 2003 14:20:27 -0500 dunemush (pennmush/b/38_set.c 1.26.1.5.1.1.2.1.1.1.1.1.1.11.1.1.1.1.1.1.1.1.1.1.1.1.1.2 660)
***************
*** 356,362 ****
* we only want the owner to be able to rezone the object. Also,
* this allows players to @chzone themselves to an object they own.
*/
! if (!Wizard(player) && !Owns(player, thing)) {
if (noisy)
notify(player, T("You don't have the power to shift reality."));
return 0;
--- 356,362 ----
* we only want the owner to be able to rezone the object. Also,
* this allows players to @chzone themselves to an object they own.
*/
! if (!(God(player) || (!God(thing) && Wizard(player)) || Owns(player, thing))) {
if (noisy)
notify(player, T("You don't have the power to shift reality."));
return 0;
***************
*** 471,486 ****
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)
AL_FLAGS(atr) &= ~af->f;
! else
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;
}
--- 471,492 ----
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 change that flag on %s/%s"),
! Name(thing), AL_NAME(atr));
return 0;
}
!
! if (*af->flag == NOT_TOKEN) {
AL_FLAGS(atr) &= ~af->f;
! if (!Quiet(player) && !(Quiet(thing) && (Owner(thing) == player)))
! notify_format(player, T("%s/%s - %s reset."), Name(thing), AL_NAME(atr),
! (af->flag + 1));
! } else {
AL_FLAGS(atr) |= af->f;
! if (!Quiet(player) && !(Quiet(thing) && (Owner(thing) == player)))
! notify_format(player, T("%s/%s - %s set."), Name(thing), AL_NAME(atr),
! af->flag);
! }
return 1;
}
*** 1_7_7.447/src/look.c Mon, 28 Apr 2003 22:37:00 -0500 dunemush (pennmush/c/4_look.c 1.21.1.2.1.9.1.1.1.1.1.7 660)
--- 1_7_7.464(w)/src/look.c Mon, 02 Jun 2003 14:20:26 -0500 dunemush (pennmush/c/4_look.c 1.21.1.2.1.9.1.1.1.1.1.8 660)
***************
*** 40,46 ****
static void look_contents(dbref player, dbref loc, const char *contents_name);
static void look_atrs(dbref player, dbref thing, const char *mstr, int all);
static void look_simple(dbref player, dbref thing);
! static void look_description(dbref player, dbref thing, char *def,
const char *descname, const char *descformatname);
static int decompile_helper
(dbref player, dbref thing, char const *pattern, ATTR *atr, void *args);
--- 40,46 ----
static void look_contents(dbref player, dbref loc, const char *contents_name);
static void look_atrs(dbref player, dbref thing, const char *mstr, int all);
static void look_simple(dbref player, dbref thing);
! static void look_description(dbref player, dbref thing, const char *def,
const char *descname, const char *descformatname);
static int decompile_helper
(dbref player, dbref thing, char const *pattern, ATTR *atr, void *args);
***************
*** 482,489 ****
}
static void
! look_description(dbref player, dbref thing, char *def, const char *descname,
! const char *descformatname)
{
/* Show thing's description to player, obeying DESCFORMAT if set */
ATTR *a, *f;
--- 482,489 ----
}
static void
! look_description(dbref player, dbref thing, const char *def,
! const char *descname, const char *descformatname)
{
/* Show thing's description to player, obeying DESCFORMAT if set */
ATTR *a, *f;
*** 1_7_7.447/src/flags.c Tue, 06 May 2003 17:31:42 -0500 dunemush (pennmush/c/20_flags.c 1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.2.1.1.1.1.1.2.2.2.2.1.2.1.1.3.1.2.1.1.1.1.1.1.1.1.1.3.1.9.1.2.2.1.1.2.1.49 660)
--- 1_7_7.464(w)/src/flags.c Mon, 02 Jun 2003 14:20:25 -0500 dunemush (pennmush/c/20_flags.c 1.1.1.1.1.1.1.1.1.1.1.1.1.6.1.2.1.1.1.1.1.2.2.2.2.1.2.1.1.3.1.2.1.1.1.1.1.1.1.1.1.3.1.9.1.2.2.1.1.2.1.51 660)
***************
*** 708,713 ****
--- 708,715 ----
#define FlagByte(x) (x / 8)
/** Locate a specific bit within a byte given a bit position */
#define FlagBit(x) (7 - (x % 8))
+ /** How many bytes do we need for a flag bitmask? */
+ #define FlagBytes ((size_t)((flagbits + 7) / 8))
/** Allocate a new flag bitmask.
* This function allocates a new flag bitmask of sufficient length
***************
*** 719,729 ****
new_flag_bitmask(void)
{
object_flag_type bitmask;
! int flagbytes = (flagbits + 7) / 8; /* Rounds up to nearest byte */
! bitmask = (object_flag_type) mush_malloc(flagbytes, "flag_bitmask");
if (!bitmask)
panic("Unable to allocate memory for flag bitmask");
! memset(bitmask, 0, flagbytes);
return bitmask;
}
--- 721,730 ----
new_flag_bitmask(void)
{
object_flag_type bitmask;
! bitmask = (object_flag_type) mush_malloc(FlagBytes, "flag_bitmask");
if (!bitmask)
panic("Unable to allocate memory for flag bitmask");
! memset(bitmask, 0, FlagBytes);
return bitmask;
}
***************
*** 738,748 ****
clone_flag_bitmask(object_flag_type given)
{
object_flag_type bitmask;
! int flagbytes = 1 + flagbits / 8;
! bitmask = (object_flag_type) mush_malloc(flagbytes, "flag_bitmask");
if (!bitmask)
panic("Unable to allocate memory for flag bitmask");
! memcpy(bitmask, given, flagbytes);
return bitmask;
}
--- 739,748 ----
clone_flag_bitmask(object_flag_type given)
{
object_flag_type bitmask;
! bitmask = (object_flag_type) mush_malloc(FlagBytes, "flag_bitmask");
if (!bitmask)
panic("Unable to allocate memory for flag bitmask");
! memcpy(bitmask, given, FlagBytes);
return bitmask;
}
***************
*** 755,762 ****
void
copy_flag_bitmask(object_flag_type dest, object_flag_type given)
{
! int flagbytes = 1 + flagbits / 8;
! memcpy((void *) dest, (void *) given, flagbytes);
}
/** Deallocate a flag bitmask.
--- 755,761 ----
void
copy_flag_bitmask(object_flag_type dest, object_flag_type given)
{
! memcpy((void *) dest, (void *) given, FlagBytes);
}
/** Deallocate a flag bitmask.
***************
*** 836,843 ****
{
unsigned int i;
int ok = 1;
! unsigned int flagbytes = 1 + flagbits / 8;
! for (i = 0; i < flagbytes; i++)
ok &= ((*(bitmask + i) & *(source + i)) == *(bitmask + i));
return ok;
}
--- 835,841 ----
{
unsigned int i;
int ok = 1;
! for (i = 0; i < FlagBytes; i++)
ok &= ((*(bitmask + i) & *(source + i)) == *(bitmask + i));
return ok;
}
***************
*** 852,859 ****
{
unsigned int i;
int bad = 0;
! unsigned int flagbytes = 1 + flagbits / 8;
! for (i = 0; i < flagbytes; i++)
bad |= *(source + i);
return (!bad);
}
--- 850,856 ----
{
unsigned int i;
int bad = 0;
! for (i = 0; i < FlagBytes; i++)
bad |= *(source + i);
return (!bad);
}
***************
*** 871,878 ****
{
unsigned int i;
int ok = 0;
! unsigned int flagbytes = 1 + flagbits / 8;
! for (i = 0; i < flagbytes; i++)
ok |= (*(bitmask + i) & *(source + i));
return ok;
}
--- 868,874 ----
{
unsigned int i;
int ok = 0;
! for (i = 0; i < FlagBytes; i++)
ok |= (*(bitmask + i) & *(source + i));
return ok;
}
*** 1_7_7.447/src/bsd.c Tue, 06 May 2003 17:27:48 -0500 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13.1.1.1.1.1.1.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.1.1.1.1.1.27 660)
--- 1_7_7.464(w)/src/bsd.c Mon, 02 Jun 2003 14:20:25 -0500 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13.1.1.1.1.1.1.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.1.1.1.1.1.1.1.3 660)
***************
*** 965,971 ****
}
static void
! shovechars(Port_t port, Port_t sslport)
{
/* this is the main game loop */
--- 965,971 ----
}
static void
! shovechars(Port_t port, Port_t sslport __attribute__ ((__unused__)))
{
/* this is the main game loop */
***************
*** 3248,3265 ****
if (poll_msg[0] == '\0')
strcpy(poll_msg, "Doing");
if (ShowAnsi(call_by->player))
! sprintf(tbuf2, "%s %s %s %s%s\n",
T("Player Name"), T("On For"), T("Idle"), poll_msg, ANSI_NORMAL);
else
! sprintf(tbuf2, "%s %s %s %s\n",
T("Player Name"), T("On For"), T("Idle"), poll_msg);
queue_string(call_by, tbuf2);
} else if (doing == 2) {
! sprintf(tbuf2, "%s %s %s %s %s Des Sent Recv Pend\n",
T("Player Name"), T("Loc #"), T("On For"), T("Idle"), T("Cmds"));
queue_string(call_by, tbuf2);
} else {
! sprintf(tbuf2, "%s %s %s %s %s Des Host\n",
T("Player Name"), T("Loc #"), T("On For"), T("Idle"), T("Cmds"));
queue_string(call_by, tbuf2);
}
--- 3248,3265 ----
if (poll_msg[0] == '\0')
strcpy(poll_msg, "Doing");
if (ShowAnsi(call_by->player))
! sprintf(tbuf2, "%-16s %10s %6s %s%s\n",
T("Player Name"), T("On For"), T("Idle"), poll_msg, ANSI_NORMAL);
else
! sprintf(tbuf2, "%-16s %10s %6s %s\n",
T("Player Name"), T("On For"), T("Idle"), poll_msg);
queue_string(call_by, tbuf2);
} else if (doing == 2) {
! sprintf(tbuf2, "%-16s %6s %9s %5s %5s Des Sent Recv Pend\n",
T("Player Name"), T("Loc #"), T("On For"), T("Idle"), T("Cmds"));
queue_string(call_by, tbuf2);
} else {
! sprintf(tbuf2, "%-16s %6s %9s %5s %5s Des Host\n",
T("Player Name"), T("Loc #"), T("On For"), T("Idle"), T("Cmds"));
queue_string(call_by, tbuf2);
}
***************
*** 3291,3297 ****
}
} else if (call_by->connected && doing == 2 && call_by->player
&& Priv_Who(call_by->player)) {
! sprintf(tbuf1, "%-16s %5s %9s %5s %5d %4d %5lu %7lu %5d",
Name(d->player), unparse_dbref(Location(d->player)),
time_format_1(now - d->connected_at),
time_format_2(now - d->last_time), d->cmds, d->descriptor,
--- 3291,3297 ----
}
} else if (call_by->connected && doing == 2 && call_by->player
&& Priv_Who(call_by->player)) {
! sprintf(tbuf1, "%-16s %6s %9s %5s %5d %3d %5lu %7lu %5d",
Name(d->player), unparse_dbref(Location(d->player)),
time_format_1(now - d->connected_at),
time_format_2(now - d->last_time), d->cmds, d->descriptor,
***************
*** 3922,3934 ****
FUNCTION(fun_ports)
{
/* returns a list of the network descriptors that a player is
! * connected to (wizard-only)
*/
dbref target;
DESC *d;
int first;
! if (!Hasprivs(executor)) {
notify(executor, T("Permission denied."));
return;
}
--- 3922,3935 ----
FUNCTION(fun_ports)
{
/* returns a list of the network descriptors that a player is
! * connected to
*/
dbref target;
DESC *d;
int first;
!
! if (!Priv_Who(executor)) {
notify(executor, T("Permission denied."));
return;
}
*** 1_7_7.447/src/attrib.c Mon, 12 May 2003 13:56:08 -0500 dunemush (pennmush/c/40_attrib.c 1.15.1.2.1.5.1.1.1.3.1.3.1.2.1.2.1.2.2.1.1.2.1.2.1.2.1.1.1.3.1.1.1.1.1.1.3.15 660)
--- 1_7_7.464(w)/src/attrib.c Mon, 02 Jun 2003 14:20:24 -0500 dunemush (pennmush/c/40_attrib.c 1.15.1.2.1.5.1.1.1.3.1.3.1.2.1.2.1.2.2.1.1.2.1.2.1.2.1.1.1.3.1.1.1.1.1.1.3.17 660)
***************
*** 30,35 ****
--- 30,40 ----
#include "log.h"
#include "confmagic.h"
+ #ifdef WIN32
+ #pragma warning( disable : 4761) /* disable warning re conversion */
+ #endif
+
+
/** A string tree that temporarily stores matching attributes from current
* and parent objects when we're searching for commands on attributes
*/
***************
*** 391,396 ****
--- 396,402 ----
if (thing == NOTHING || !good_atr_name(atr))
return NULL;
+ ancestor = Ancestor_Parent(thing);
for (parent_depth = 0, temp = thing;
parent_depth < MAX_PARENTS && temp != NOTHING;
parent_depth++, temp = Parent(temp)) {
***************
*** 398,404 ****
* we use it there, and don't check the ancestor later
*/
if (temp == ancestor)
! ancestor = -1;
for (ptr = List(temp); ptr; ptr = AL_NEXT(ptr)) {
comp = strcoll(atr, AL_NAME(ptr));
if (comp < 0)
--- 404,410 ----
* we use it there, and don't check the ancestor later
*/
if (temp == ancestor)
! ancestor = NOTHING;
for (ptr = List(temp); ptr; ptr = AL_NEXT(ptr)) {
comp = strcoll(atr, AL_NAME(ptr));
if (comp < 0)
***************
*** 412,418 ****
}
}
/* If we have a valid ancestor, search it as well */
- ancestor = Ancestor_Parent(thing);
if (GoodObject(ancestor)) {
for (parent_depth = 0, temp = ancestor;
parent_depth < MAX_PARENTS && temp != NOTHING;
--- 418,423 ----
***************
*** 440,450 ****
for (parent_depth = 0, temp = thing;
parent_depth < MAX_PARENTS && temp != NOTHING;
parent_depth++, temp = Parent(temp)) {
- /* If the ancestor of the object is in its explict parent chain,
- * we use it there, and don't check the ancestor later
- */
- if (temp == ancestor)
- ancestor = -1;
for (ptr = List(temp); ptr; ptr = AL_NEXT(ptr)) {
comp = strcoll(atr, AL_NAME(ptr));
if (comp < 0)
--- 445,450 ----
***************
*** 1074,1080 ****
* \param atr the attribute struct from which to get the data reference.
* \return a pointer to the compressed data, in a static buffer.
*/
! unsigned char *const
atr_get_compressed_data(ATTR *atr)
{
static unsigned char buffer[BUFFER_LEN * 2];
--- 1074,1080 ----
* \param atr the attribute struct from which to get the data reference.
* \return a pointer to the compressed data, in a static buffer.
*/
! unsigned char const *
atr_get_compressed_data(ATTR *atr)
{
static unsigned char buffer[BUFFER_LEN * 2];
***************
*** 1091,1097 ****
* \param atr the attribute struct from which to get the data reference.
* \return a pointer to the uncompressed data, in a static buffer.
*/
! char *const
atr_value(ATTR *atr)
{
return uncompress(atr_get_compressed_data(atr));
--- 1091,1097 ----
* \param atr the attribute struct from which to get the data reference.
* \return a pointer to the uncompressed data, in a static buffer.
*/
! char *
atr_value(ATTR *atr)
{
return uncompress(atr_get_compressed_data(atr));
*** 1_7_7.447/hdrs/version.h Thu, 22 May 2003 13:40:04 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.18 660)
--- 1_7_7.464(w)/hdrs/version.h Mon, 02 Jun 2003 14:20:31 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.19 660)
***************
*** 1,3 ****
! #define VERSION "PennMUSH version 1.7.7 patchlevel 14 [05/22/2003]"
! #define SHORTVN "PennMUSH 1.7.7p14"
! #define NUMVERSION 001007007014
--- 1,3 ----
! #define VERSION "PennMUSH version 1.7.7 patchlevel 15 [06/01/2003]"
! #define SHORTVN "PennMUSH 1.7.7p15"
! #define NUMVERSION 001007007015
*** 1_7_7.447/hdrs/switches.h Mon, 28 Apr 2003 22:20:23 -0500 dunemush (pennmush/d/21_switches.h 1.2.1.6.2.7.1.3 660)
--- 1_7_7.464(w)/hdrs/switches.h Mon, 02 Jun 2003 14:20:37 -0500 dunemush (pennmush/d/21_switches.h 1.2.1.6.2.7.1.4 660)
***************
*** 45,137 ****
#define SWITCH_FLAGS 44
#define SWITCH_FOLDERS 45
#define SWITCH_FORWARD 46
! #define SWITCH_FSTATS 47
! #define SWITCH_FULL 48
! #define SWITCH_FUNCTIONS 49
! #define SWITCH_FWD 50
! #define SWITCH_GAG 51
! #define SWITCH_GLOBALS 52
! #define SWITCH_HEADER 53
! #define SWITCH_HERE 54
! #define SWITCH_HIDE 55
! #define SWITCH_ILIST 56
! #define SWITCH_INVENTORY 57
! #define SWITCH_IPRINT 58
! #define SWITCH_JOIN 59
! #define SWITCH_LIST 60
! #define SWITCH_LOWERCASE 61
! #define SWITCH_ME 62
! #define SWITCH_MEMBERS 63
! #define SWITCH_MOD 64
! #define SWITCH_MORTAL 65
! #define SWITCH_MOTD 66
! #define SWITCH_MUTE 67
! #define SWITCH_NAME 68
! #define SWITCH_NO 69
! #define SWITCH_NOEVAL 70
! #define SWITCH_NOFLAGCOPY 71
! #define SWITCH_NOISY 72
! #define SWITCH_NOSIG 73
! #define SWITCH_NOSPACE 74
! #define SWITCH_NOTIFY 75
! #define SWITCH_NUKE 76
! #define SWITCH_OFF 77
! #define SWITCH_ON 78
! #define SWITCH_OUTSIDE 79
! #define SWITCH_OVERRIDE 80
! #define SWITCH_PAGING 81
! #define SWITCH_PANIC 82
! #define SWITCH_PARANOID 83
! #define SWITCH_PLAYERS 84
! #define SWITCH_PORT 85
! #define SWITCH_PRESERVE 86
! #define SWITCH_PRINT 87
! #define SWITCH_PRIVS 88
! #define SWITCH_PURGE 89
! #define SWITCH_QUICK 90
! #define SWITCH_QUIET 91
! #define SWITCH_READ 92
! #define SWITCH_REBOOT 93
! #define SWITCH_RECALL 94
! #define SWITCH_REGIONS 95
! #define SWITCH_REGISTER 96
! #define SWITCH_REMOVE 97
! #define SWITCH_RENAME 98
! #define SWITCH_RESTORE 99
! #define SWITCH_RESTRICT 100
! #define SWITCH_RETROACTIVE 101
! #define SWITCH_ROOM 102
! #define SWITCH_ROOMS 103
! #define SWITCH_SEE 104
! #define SWITCH_SEEFLAG 105
! #define SWITCH_SELF 106
! #define SWITCH_SEND 107
! #define SWITCH_SET 108
! #define SWITCH_SILENT 109
! #define SWITCH_SKIPDEFAULTS 110
! #define SWITCH_SPEAK 111
! #define SWITCH_STATS 112
! #define SWITCH_SUMMARY 113
! #define SWITCH_TABLES 114
! #define SWITCH_TAG 115
! #define SWITCH_TELEPORT 116
! #define SWITCH_TF 117
! #define SWITCH_THINGS 118
! #define SWITCH_TITLE 119
! #define SWITCH_TRACE 120
! #define SWITCH_UNCLEAR 121
! #define SWITCH_UNFOLDER 122
! #define SWITCH_UNGAG 123
! #define SWITCH_UNHIDE 124
! #define SWITCH_UNMUTE 125
! #define SWITCH_UNTAG 126
! #define SWITCH_UNTIL 127
! #define SWITCH_URGENT 128
! #define SWITCH_USEFLAG 129
! #define SWITCH_WHAT 130
! #define SWITCH_WHO 131
! #define SWITCH_WIPE 132
! #define SWITCH_WIZ 133
! #define SWITCH_WIZARD 134
! #define SWITCH_YES 135
! #define SWITCH_ZONE 136
--- 45,138 ----
#define SWITCH_FLAGS 44
#define SWITCH_FOLDERS 45
#define SWITCH_FORWARD 46
! #define SWITCH_FREESPACE 47
! #define SWITCH_FSTATS 48
! #define SWITCH_FULL 49
! #define SWITCH_FUNCTIONS 50
! #define SWITCH_FWD 51
! #define SWITCH_GAG 52
! #define SWITCH_GLOBALS 53
! #define SWITCH_HEADER 54
! #define SWITCH_HERE 55
! #define SWITCH_HIDE 56
! #define SWITCH_ILIST 57
! #define SWITCH_INVENTORY 58
! #define SWITCH_IPRINT 59
! #define SWITCH_JOIN 60
! #define SWITCH_LIST 61
! #define SWITCH_LOWERCASE 62
! #define SWITCH_ME 63
! #define SWITCH_MEMBERS 64
! #define SWITCH_MOD 65
! #define SWITCH_MORTAL 66
! #define SWITCH_MOTD 67
! #define SWITCH_MUTE 68
! #define SWITCH_NAME 69
! #define SWITCH_NO 70
! #define SWITCH_NOEVAL 71
! #define SWITCH_NOFLAGCOPY 72
! #define SWITCH_NOISY 73
! #define SWITCH_NOSIG 74
! #define SWITCH_NOSPACE 75
! #define SWITCH_NOTIFY 76
! #define SWITCH_NUKE 77
! #define SWITCH_OFF 78
! #define SWITCH_ON 79
! #define SWITCH_OUTSIDE 80
! #define SWITCH_OVERRIDE 81
! #define SWITCH_PAGING 82
! #define SWITCH_PANIC 83
! #define SWITCH_PARANOID 84
! #define SWITCH_PLAYERS 85
! #define SWITCH_PORT 86
! #define SWITCH_PRESERVE 87
! #define SWITCH_PRINT 88
! #define SWITCH_PRIVS 89
! #define SWITCH_PURGE 90
! #define SWITCH_QUICK 91
! #define SWITCH_QUIET 92
! #define SWITCH_READ 93
! #define SWITCH_REBOOT 94
! #define SWITCH_RECALL 95
! #define SWITCH_REGIONS 96
! #define SWITCH_REGISTER 97
! #define SWITCH_REMOVE 98
! #define SWITCH_RENAME 99
! #define SWITCH_RESTORE 100
! #define SWITCH_RESTRICT 101
! #define SWITCH_RETROACTIVE 102
! #define SWITCH_ROOM 103
! #define SWITCH_ROOMS 104
! #define SWITCH_SEE 105
! #define SWITCH_SEEFLAG 106
! #define SWITCH_SELF 107
! #define SWITCH_SEND 108
! #define SWITCH_SET 109
! #define SWITCH_SILENT 110
! #define SWITCH_SKIPDEFAULTS 111
! #define SWITCH_SPEAK 112
! #define SWITCH_STATS 113
! #define SWITCH_SUMMARY 114
! #define SWITCH_TABLES 115
! #define SWITCH_TAG 116
! #define SWITCH_TELEPORT 117
! #define SWITCH_TF 118
! #define SWITCH_THINGS 119
! #define SWITCH_TITLE 120
! #define SWITCH_TRACE 121
! #define SWITCH_UNCLEAR 122
! #define SWITCH_UNFOLDER 123
! #define SWITCH_UNGAG 124
! #define SWITCH_UNHIDE 125
! #define SWITCH_UNMUTE 126
! #define SWITCH_UNTAG 127
! #define SWITCH_UNTIL 128
! #define SWITCH_URGENT 129
! #define SWITCH_USEFLAG 130
! #define SWITCH_WHAT 131
! #define SWITCH_WHO 132
! #define SWITCH_WIPE 133
! #define SWITCH_WIZ 134
! #define SWITCH_WIZARD 135
! #define SWITCH_YES 136
! #define SWITCH_ZONE 137
*** 1_7_7.447/hdrs/attrib.h Thu, 01 May 2003 21:17:12 -0500 dunemush (pennmush/d/25_attrib.h 1.4.1.1.1.1.1.2.1.1.1.1.1.2.1.2.1.1.1.2.1.1.2.3.1.5 660)
--- 1_7_7.464(w)/hdrs/attrib.h Mon, 02 Jun 2003 14:20:31 -0500 dunemush (pennmush/d/25_attrib.h 1.4.1.1.1.1.1.2.1.1.1.1.1.2.1.2.1.1.1.2.1.1.2.3.1.6 660)
***************
*** 55,62 ****
extern void do_atrchown(dbref player, char const *arg1, char const *arg2);
extern int string_to_atrflag(dbref player, const char *p);
extern void init_atr_name_tree(void);
! extern unsigned char *const atr_get_compressed_data(ATTR *atr);
! extern char *const atr_value(ATTR *atr);
extern char *safe_atr_value(ATTR *atr);
extern void atr_migrate(int amount);
--- 55,62 ----
extern void do_atrchown(dbref player, char const *arg1, char const *arg2);
extern int string_to_atrflag(dbref player, const char *p);
extern void init_atr_name_tree(void);
! extern unsigned const char *atr_get_compressed_data(ATTR *atr);
! extern char *atr_value(ATTR *atr);
extern char *safe_atr_value(ATTR *atr);
extern void atr_migrate(int amount);
*** 1_7_7.447/src/mysocket.c Thu, 24 Apr 2003 09:36:42 -0500 dunemush (pennmush/f/0_mysocket.c 1.16.1.1.1.1.1.1.1.4.1.4.1.9 660)
--- 1_7_7.464(w)/src/mysocket.c Mon, 02 Jun 2003 14:20:26 -0500 dunemush (pennmush/f/0_mysocket.c 1.16.1.1.1.1.1.1.1.4.1.4.1.10 660)
***************
*** 475,482 ****
* sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX.
*/
! static const char *inet_ntop4(const u_char * src, char *dst, size_t size);
! static const char *inet_ntop6(const u_char * src, char *dst, size_t size);
/* char *
* inet_ntop(af, src, dst, size)
--- 475,482 ----
* sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX.
*/
! static const char *inet_ntop4(const unsigned char *src, char *dst, size_t size);
! static const char *inet_ntop6(const unsigned char *src, char *dst, size_t size);
/* char *
* inet_ntop(af, src, dst, size)
***************
*** 508,519 ****
* `dst' (as a const)
* notes:
* (1) uses no statics
! * (2) takes a u_char* not an in_addr as input
* author:
* Paul Vixie, 1996.
*/
static const char *
! inet_ntop4(const u_char * src, char *dst, size_t size)
{
static const char fmt[] = "%u.%u.%u.%u";
char tmp[sizeof "255.255.255.255"];
--- 508,519 ----
* `dst' (as a const)
* notes:
* (1) uses no statics
! * (2) takes a unsigned char* not an in_addr as input
* author:
* Paul Vixie, 1996.
*/
static const char *
! inet_ntop4(const unsigned char *src, char *dst, size_t size)
{
static const char fmt[] = "%u.%u.%u.%u";
char tmp[sizeof "255.255.255.255"];
***************
*** 534,540 ****
* Paul Vixie, 1996.
*/
static const char *
! inet_ntop6(const u_char * src, char *dst, size_t size)
{
/*
* Note that int32_t and int16_t need only be "at least" large enough
--- 534,540 ----
* Paul Vixie, 1996.
*/
static const char *
! inet_ntop6(const unsigned char *src, char *dst, size_t size)
{
/*
* Note that int32_t and int16_t need only be "at least" large enough
***************
*** 547,553 ****
struct {
int base, len;
} best, cur;
! u_int words[IN6ADDRSZ / INT16SZ];
int i;
/*
--- 547,553 ----
struct {
int base, len;
} best, cur;
! unsigned int words[IN6ADDRSZ / INT16SZ];
int i;
/*
***************
*** 647,654 ****
* sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX.
*/
! static int inet_pton4(const char *src, u_char * dst);
! static int inet_pton6(const char *src, u_char * dst);
/* int
* inet_pton(af, src, dst)
--- 647,654 ----
* sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX.
*/
! static int inet_pton4(const char *src, unsigned char *dst);
! static int inet_pton6(const char *src, unsigned char *dst);
/* int
* inet_pton(af, src, dst)
***************
*** 687,697 ****
* Paul Vixie, 1996.
*/
static int
! inet_pton4(const char *src, u_char * dst)
{
static const char digits[] = "0123456789";
int saw_digit, octets, ch;
! u_char tmp[INADDRSZ], *tp;
saw_digit = 0;
octets = 0;
--- 687,697 ----
* Paul Vixie, 1996.
*/
static int
! inet_pton4(const char *src, unsigned char *dst)
{
static const char digits[] = "0123456789";
int saw_digit, octets, ch;
! unsigned char tmp[INADDRSZ], *tp;
saw_digit = 0;
octets = 0;
***************
*** 700,706 ****
const char *pch;
if ((pch = strchr(digits, ch)) != NULL) {
! u_int new = *tp * 10 + (pch - digits);
if (new > 255)
return (0);
--- 700,706 ----
const char *pch;
if ((pch = strchr(digits, ch)) != NULL) {
! unsigned int new = *tp * 10 + (pch - digits);
if (new > 255)
return (0);
***************
*** 739,752 ****
* Paul Vixie, 1996.
*/
static int
! inet_pton6(const char *src, u_char * dst)
{
static const char xdigits_l[] = "0123456789abcdef",
xdigits_u[] = "0123456789ABCDEF";
! u_char tmp[IN6ADDRSZ], *tp, *endp, *colonp;
const char *xdigits, *curtok;
int ch, saw_xdigit;
! u_int val;
memset((tp = tmp), 0, IN6ADDRSZ);
endp = tp + IN6ADDRSZ;
--- 739,752 ----
* Paul Vixie, 1996.
*/
static int
! inet_pton6(const char *src, unsigned char *dst)
{
static const char xdigits_l[] = "0123456789abcdef",
xdigits_u[] = "0123456789ABCDEF";
! unsigned char tmp[IN6ADDRSZ], *tp, *endp, *colonp;
const char *xdigits, *curtok;
int ch, saw_xdigit;
! unsigned int val;
memset((tp = tmp), 0, IN6ADDRSZ);
endp = tp + IN6ADDRSZ;
***************
*** 781,788 ****
}
if (tp + INT16SZ > endp)
return (0);
! *tp++ = (u_char) (val >> 8) & 0xff;
! *tp++ = (u_char) val & 0xff;
saw_xdigit = 0;
val = 0;
continue;
--- 781,788 ----
}
if (tp + INT16SZ > endp)
return (0);
! *tp++ = (unsigned char) (val >> 8) & 0xff;
! *tp++ = (unsigned char) val & 0xff;
saw_xdigit = 0;
val = 0;
continue;
***************
*** 797,804 ****
if (saw_xdigit) {
if (tp + INT16SZ > endp)
return (0);
! *tp++ = (u_char) (val >> 8) & 0xff;
! *tp++ = (u_char) val & 0xff;
}
if (colonp != NULL) {
/*
--- 797,804 ----
if (saw_xdigit) {
if (tp + INT16SZ > endp)
return (0);
! *tp++ = (unsigned char) (val >> 8) & 0xff;
! *tp++ = (unsigned char) val & 0xff;
}
if (colonp != NULL) {
/*
*** 1_7_7.447/win32/funs.h Thu, 17 Apr 2003 09:53:35 -0500 dunemush (pennmush/f/12_funs.h 1.11.1.9.2.8.2.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.8.1.3.1.7.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.7 660)
--- 1_7_7.464(w)/win32/funs.h Mon, 02 Jun 2003 13:33:13 -0500 dunemush (pennmush/f/12_funs.h 1.11.1.9.2.8.2.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.8.1.3.1.7.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3 660)
***************
*** 319,322 ****
FUNCTION_PROTO(fun_zemit);
FUNCTION_PROTO(fun_zfun);
FUNCTION_PROTO(fun_zone);
- FUNCTION_PROTO(local_fun_silly);
--- 319,321 ----
*** 1_7_7.447/game/txt/hlp/pennvOLD.hlp Fri, 18 Apr 2003 21:18:45 -0500 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.2 660)
--- 1_7_7.464(w)/game/txt/hlp/pennvOLD.hlp Mon, 02 Jun 2003 14:20:32 -0500 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.1.1.2 660)
***************
*** 4417,4424 ****
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.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
! 1.7.6: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
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
--- 4417,4424 ----
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.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
! 1.7.6: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
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_7.447/game/txt/hlp/pennv176.hlp Tue, 13 May 2003 12:53:40 -0500 dunemush (pennmush/g/33_pennv176.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2 660)
--- 1_7_7.464(w)/game/txt/hlp/pennv176.hlp Mon, 02 Jun 2003 14:20:31 -0500 dunemush (pennmush/g/33_pennv176.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3 660)
***************
*** 1,3 ****
--- 1,18 ----
+ & 1.7.6p11
+ Version 1.7.6 patchlevel 11 June 1, 2003
+
+ Minor changes:
+ * The restart script now insures that GAMEDIR is a real directory
+ and CONF_FILE exists therein before proceeding. Suggested by
+ Philip Mak.
+ * Attribute flag setting messages are more verbose. Suggested by
+ Mike Griffiths
+ * See_All players may use the ports() function. Suggested by
+ Mike Griffiths.
+ Fixes:
+ * Wizards can no longer @chzone God. Report by Kevin at M*U*S*H.
+ * Help fixes by Mike Griffiths.
+
& 1.7.6p10
Version 1.7.6 patchlevel 10 May 13, 2003
*** 1_7_7.447/game/txt/hlp/pennv177.hlp Thu, 22 May 2003 13:40:04 -0500 dunemush (pennmush/g/34_pennv177.h 1.54 660)
--- 1_7_7.464(w)/game/txt/hlp/pennv177.hlp Mon, 02 Jun 2003 14:20:31 -0500 dunemush (pennmush/g/34_pennv177.h 1.64 660)
***************
*** 1,4 ****
! & 1.7.7p14
& changes
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
--- 1,4 ----
! & 1.7.7p15
& changes
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
***************
*** 11,16 ****
--- 11,40 ----
A list of the patchlevels associated with each release can
be read in 'help patchlevels'.
+ Version 1.7.7 patchlevel 15 June 1, 2003
+
+ Fixes:
+ * Problem with checking command flag masks when the number of
+ flags was an even multiple of 8. Reported by Nymeria and
+ Mordie at M*U*S*H.
+ * Tweak to improve efficiency of ancestor checking code and delint
+ warning reported by Cheetah at M*U*S*H.
+ * SESSION output no longer misaligned with 5-digit dbrefs.
+ Reported by Cheetah at M*U*S*H. [TAP].
+ * Fixes from 1.7.6p11.
+ * game/txt/index-files.pl now uses locale information in the
+ environment to, e.g., correctly lowercase accented characters.
+ Report by Krad at M*U*S*H.
+ * Modified several Makefile.SH targets to prevent Javelin from
+ releasing patches that don't have the autogenerated files
+ up-to-date for Windows folks.
+ * Removed some dependence on typedefs that may or may not be in system
+ header files. [SW]
+ * Patch compiler warnings. [SW,EEH]
+ * Help fixes by Mike Griffiths and Oriens at Alexandria.
+
+
+ & 1.7.7p14
Version 1.7.7 patchlevel 14 May 22, 2003
Major changes:
*** 1_7_7.447/src/chunk.c Wed, 28 May 2003 10:06:29 -0500 dunemush (pennmush/g/38_chunk.c 1.15 660)
--- 1_7_7.464(w)/src/chunk.c Mon, 02 Jun 2003 14:20:25 -0500 dunemush (pennmush/g/38_chunk.c 1.17 660)
***************
*** 223,229 ****
--- 223,233 ----
#include <fcntl.h>
#include <assert.h>
#include <sys/types.h>
+ #ifdef WIN32
+ #include <io.h>
+ #else
#include <unistd.h>
+ #endif
#include "chunk.h"
#include "command.h"
***************
*** 234,239 ****
--- 238,247 ----
#include "mymalloc.h"
#include "confmagic.h"
+ #ifdef WIN32
+ #pragma warning( disable : 4761) /* disable warning re conversion */
+ #endif
+
/* A whole bunch of debugging #defines. */
/** Basic debugging stuff - are assertions checked? */
#undef CHUNK_DEBUG
***************
*** 528,546 ****
/** Deref scale control.
* When the deref counts get too big, the current period is incremented
* and all derefs are divided by 2. */
! static u_int curr_period;
/*
* Info about all regions
*/
! static u_int region_count; /**< regions in use */
! static u_int region_array_len; /**< length of regions array */
static Region *regions; /**< regions array, realloced as (rarely) needed */
/*
* regions presently in memory
*/
! static u_int cached_region_count; /**< number of regions in cache */
static RegionHeader *cache_head; /**< most recently used region */
static RegionHeader *cache_tail; /**< least recently used region */
--- 536,554 ----
/** Deref scale control.
* When the deref counts get too big, the current period is incremented
* and all derefs are divided by 2. */
! static u_int_32 curr_period;
/*
* Info about all regions
*/
! static u_int_32 region_count; /**< regions in use */
! static u_int_32 region_array_len; /**< length of regions array */
static Region *regions; /**< regions array, realloced as (rarely) needed */
/*
* regions presently in memory
*/
! static u_int_32 cached_region_count; /**< number of regions in cache */
static RegionHeader *cache_head; /**< most recently used region */
static RegionHeader *cache_tail; /**< least recently used region */
***************
*** 580,586 ****
static chunk_reference_t **m_references; /**< The passed-in references array. */
static u_int_16 *m_length; /**< The lengths of the chunks to be moved. */
static u_int_16 *m_unhappiness; /**< The unhappiness of the chunks. */
! static u_char *m_derefs; /**< The dereferences for the chunks. */
static int m_limit; /**< The number of migrates allowed. */
--- 588,594 ----
static chunk_reference_t **m_references; /**< The passed-in references array. */
static u_int_16 *m_length; /**< The lengths of the chunks to be moved. */
static u_int_16 *m_unhappiness; /**< The unhappiness of the chunks. */
! static unsigned char *m_derefs; /**< The dereferences for the chunks. */
static int m_limit; /**< The number of migrates allowed. */
***************
*** 1505,1511 ****
int j, k;
chunk_reference_t *t_r;
u_int_16 t_l, t_u;
! u_char t_d;
for (j = 1; j < m_count; j++) {
t_r = m_references[j];
--- 1513,1519 ----
int j, k;
chunk_reference_t *t_r;
u_int_16 t_l, t_u;
! unsigned char t_d;
for (j = 1; j < m_count; j++) {
t_r = m_references[j];
***************
*** 2017,2023 ****
if (GoodObject(player)) \
notify(player, s); \
else \
! do_rawlog(LT_TRACE, s); \
} while (0)
/** Display the stats summary page.
--- 2025,2031 ----
if (GoodObject(player)) \
notify(player, s); \
else \
! do_rawlog(LT_TRACE, "%s", s); \
} while (0)
/** Display the stats summary page.
***************
*** 2087,2093 ****
* \param legend the legend for the histogram.
*/
static void
! chunk_histogram(dbref player, int *histogram, char const *legend)
{
const char *s;
int j, k, max, pen, ante;
--- 2095,2101 ----
* \param legend the legend for the histogram.
*/
static void
! chunk_histogram(dbref player, int const *histogram, char const *legend)
{
const char *s;
int j, k, max, pen, ante;
***************
*** 2145,2151 ****
memcpy(buffer[ante] + j + 1, num, strlen(num));
pen = j + strlen(num) + 1;
} else {
! if (j - strlen(num) < pen)
ante = 18;
else
ante = 19;
--- 2153,2159 ----
memcpy(buffer[ante] + j + 1, num, strlen(num));
pen = j + strlen(num) + 1;
} else {
! if (j - (int) strlen(num) < pen)
ante = 18;
else
ante = 19;
***************
*** 2169,2175 ****
/** Compile a histogram for the region dereferences.
* \return histogram data for the regions.
*/
! static int *const
chunk_regionhist(void)
{
static int histogram[CHUNK_DEREF_MAX + 1];
--- 2177,2183 ----
/** Compile a histogram for the region dereferences.
* \return histogram data for the regions.
*/
! static int const *
chunk_regionhist(void)
{
static int histogram[CHUNK_DEREF_MAX + 1];
***************
*** 2186,2192 ****
/** Compile a histogram for the region free space.
* \return histogram data for the free space.
*/
! static int *const
chunk_freehist(void)
{
static int histogram[CHUNK_DEREF_MAX + 1];
--- 2194,2200 ----
/** Compile a histogram for the region free space.
* \return histogram data for the free space.
*/
! static int const *
chunk_freehist(void)
{
static int histogram[CHUNK_DEREF_MAX + 1];
Index: 1_7_7.447/Makefile.SH
*** 1_7_7.447/Makefile.SH Wed, 26 Mar 2003 09:47:20 -0600 dunemush (pennmush/d/30_Makefile.S 1.14.1.1.1.7.1.1.1.2 700)
--- 1_7_7.464(w)/Makefile.SH Mon, 02 Jun 2003 14:20:20 -0500 dunemush (pennmush/d/30_Makefile.S 1.14.1.1.1.7.1.1.1.4 700)
***************
*** 56,62 ****
# Where to install with 'make globalinstall'
GLOBAL_INSTALL=/usr/libexec/pennmush
! all: config.h options.h hdrs/cmds.h hdrs/funs.h hdrs/switches.h src/switchinc.c game/mush.cnf
@echo "Making all in src."
(cd src; make all "CC=$(CC)" "CCFLAGS=$(CCFLAGS)" \
"LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" "MAKE=$(MAKE)" \
--- 56,62 ----
# Where to install with 'make globalinstall'
GLOBAL_INSTALL=/usr/libexec/pennmush
! all: config.h options.h autogen game/mush.cnf
@echo "Making all in src."
(cd src; make all "CC=$(CC)" "CCFLAGS=$(CCFLAGS)" \
"LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" "MAKE=$(MAKE)" \
***************
*** 73,86 ****
@echo "You must cp options.h.dist to options.h and edit it."
exit 1
hdrs/cmds.h: src/cmds.c src/command.c src/cque.c src/help.c src/set.c Patchlevel
(cd utils; sh mkcmds.sh commands)
hdrs/switches.h: src/SWITCHES Patchlevel
(cd utils; sh mkcmds.sh switches)
! #src/switchinc.c: hdrs/switches.h
! # (cd utils; sh mkcmds.sh switches)
hdrs/funs.h: src/fun*.c src/bsd.c src/conf.c src/extmail.c src/help.c src/wiz.c Patchlevel
(cd utils; sh mkcmds.sh functions)
--- 73,88 ----
@echo "You must cp options.h.dist to options.h and edit it."
exit 1
+ autogen: hdrs/cmds.h hdrs/funs.h hdrs/switches.h
+
hdrs/cmds.h: src/cmds.c src/command.c src/cque.c src/help.c src/set.c Patchlevel
(cd utils; sh mkcmds.sh commands)
hdrs/switches.h: src/SWITCHES Patchlevel
(cd utils; sh mkcmds.sh switches)
! src/switchinc.c: src/SWITCHES Patchlevel
! (cd utils; sh mkcmds.sh switches)
hdrs/funs.h: src/fun*.c src/bsd.c src/conf.c src/extmail.c src/help.c src/wiz.c Patchlevel
(cd utils; sh mkcmds.sh functions)
***************
*** 120,127 ****
"LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" )
versions: CHANGES*
! -rm -rf CHANGES*~ CHANGES*bak
! utils/mkvershlp.pl game/txt/hlp CHANGES*
safety:
$(CP) src/*.c /var/pennmush-bak/src
--- 122,129 ----
"LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" )
versions: CHANGES*
! - at rm -rf CHANGES*~ CHANGES*bak
! @utils/mkvershlp.pl game/txt/hlp CHANGES*
safety:
$(CP) src/*.c /var/pennmush-bak/src
***************
*** 134,141 ****
# REQUIRES GNU INDENT! DON'T INDENT WITH ANYTHING ELSE!
indent:
! (cd utils; sh mkcmds.sh)
! (cd src; make indent)
protoize:
(cd src; make protoize "CCFLAGS=$(CCFLAGS)")
--- 136,142 ----
# REQUIRES GNU INDENT! DON'T INDENT WITH ANYTHING ELSE!
indent:
! @(cd src; make indent)
protoize:
(cd src; make protoize "CCFLAGS=$(CCFLAGS)")
***************
*** 200,210 ****
game/access.README \
game/txt/* game/txt/nws/* game/txt/evt/* game/txt/hlp/* )
! diffs: versions
@make indent > /dev/null 2>&1
! @(cd utils; sh mkcmds.sh) > /dev/null 2>&1
@(prcs diff -r$(VS) -N pennmush `cat MANIFEST` | grep -v 'Index:')
patch: versions
@make-patch-header
@make diffs
--- 201,216 ----
game/access.README \
game/txt/* game/txt/nws/* game/txt/evt/* game/txt/hlp/* )
! diffs:
@make indent > /dev/null 2>&1
! @make versions > /dev/null 2>&1
! @make touchswitches > /dev/null 2>&1
! @make autogen > /dev/null 2>&1
@(prcs diff -r$(VS) -N pennmush `cat MANIFEST` | grep -v 'Index:')
+ checkin: versions autogen
+ @prcs checkin
+
patch: versions
@make-patch-header
@make diffs
***************
*** 221,228 ****
dist.tar.gz: distclean dist.tar
gzip /tmp/dist.tar
! dist.tar: distclean versions
! (cd utils; sh mkcmds.sh)
makedist -c pennmush
tar -cvf /tmp/dist.tar pennmush
-pgp -sb /tmp/dist.tar
--- 227,236 ----
dist.tar.gz: distclean dist.tar
gzip /tmp/dist.tar
! touchswitches:
! @touch src/SWITCHES
!
! dist.tar: indent distclean versions touchswitches autogen
makedist -c pennmush
tar -cvf /tmp/dist.tar pennmush
-pgp -sb /tmp/dist.tar
More information about the Pennmush-announce
mailing list