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@M*U*S*H. * Tweak to improve efficiency of ancestor checking code and delint warning reported by Cheetah@M*U*S*H. * SESSION output no longer misaligned with 5-digit dbrefs. Reported by Cheetah@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@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@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@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@M*U*S*H. + * Tweak to improve efficiency of ancestor checking code and delint + warning reported by Cheetah@M*U*S*H. + * SESSION output no longer misaligned with 5-digit dbrefs. + Reported by Cheetah@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@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@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 , applying the object's @nameaccent, if any. ! Related functions: NAME(), ACCNAME(), INAME() & FRACTION() fraction() --- 1265,1271 ---- accname() returns the name of object , applying the object's @nameaccent, if any. ! Related functions: NAME(), FULLNAME(), INAME() & FRACTION() fraction() *************** *** 1346,1353 **** & REGREP() grep(,,) regrep(,,) ! This function returns a list of attributes on containing (or matching ). is a wildcard pattern for attribute names to search; if you want to search all attributes, use "*". --- 1346,1355 ---- & REGREP() grep(,,) regrep(,,) + grepi(,,) + regrepi(,,) ! These functions return a list of attributes on containing (or matching ). 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(), is NOT wildcard matched. ! These functions are case-sensitive. grepi()/regrepi() are case-insensitive. ! & GREPI() ! grepi(,,) ! regrepi(,,) ! ! This function works exactly like grep or regrep, but is case-insensitive. ! See "help grep()" or "help regrep()" for details. & GT() gt(,) --- 1360,1366 ---- "special" characters will need to be escaped out. In grep(), is NOT wildcard matched. ! grep()/regrep() are case-sensitive. grepi()/regrepi() are case-insensitive. & GT() gt(,) *************** *** 2566,2576 **** ports() 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(,) --- 2562,2571 ---- ports() 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(,) *************** *** 2648,2653 **** --- 2643,2649 ---- See also: edit(), regmatch() & REGMATCH() + & REGMATCHI() (Help text from TinyMUSH 2.2.4, with permission) regmatch(,[,]) regmatchi(,[,]) *** 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 p'. 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 p'. 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@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@M*U*S*H. + * Tweak to improve efficiency of ancestor checking code and delint + warning reported by Cheetah@M*U*S*H. + * SESSION output no longer misaligned with 5-digit dbrefs. + Reported by Cheetah@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@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@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 #include #include + #ifdef WIN32 + #include + #else #include + #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* ! -@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