This is patch02 to PennMUSH 1.7.6. After applying this patch, you will have version 1.7.6p2 To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.7.6-patch02 make install If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1', not just 'patch -p1'. Unix (or cygwin) users need not worry about failed hunks in src/switchinc.c, hdrs/switches.h, hdrs/cmds.h, or hdrs/funs.h. These files are automatically rebuilt on compile. Then @shutdown and restart your MUSH. - Alan/Javelin In this patch: Minor changes: * An invalid range argument to @search/lsearch is now coerced to be the lowest or highest dbref, as appropriate. The search range is also now inclusive. And lsearch() works. Suggested by Philip Mak. * mushcnf.dst now includes a default value for call_limit. Suggested by Philip Mak. * Testing for whether the mush is already running in the restart script has been improved by Philip Mak. Internationalization: * Polish translation files (partial) are now being distributed. Fixes: * Fix to win32 warnings. [EEH] * Under Win32, a failed accept() call in bsd.c would not be correctly handled. Report by BladedThoth@M*U*S*H. * Help fixes by Luigi@8bitMUSH, Kyieren@M*U*S*H, Intrevis@M*U*S*H. * @map crash bug repoted by Philip Mak, fixed by Walker@M*U*S*H. * Modifiying locks now updates the object's modification time. Reported by Philip Mak. Prereq: 1.7.6p1 *** 1_7_6.57/Patchlevel Mon, 09 Dec 2002 10:15:18 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1.1.1 600) --- 1_7_6.69(w)/Patchlevel Tue, 17 Dec 2002 22:33:13 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1.1.2 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.6p1 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.6p2 *** 1_7_6.57/CHANGES Sun, 08 Dec 2002 22:35:42 -0600 dunemush (pennmush/g/17_CHANGES 1.10.1.6.1.2.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1 600) --- 1_7_6.69(w)/CHANGES Tue, 17 Dec 2002 22:32:59 -0600 dunemush (pennmush/g/17_CHANGES 1.10.1.6.1.2.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.9.1.1.1.1 600) *************** *** 18,23 **** --- 18,46 ---- ========================================================================== + Version 1.7.6 patchlevel 2 December 17, 2002 + + Minor changes: + * An invalid range argument to @search/lsearch is now coerced + to be the lowest or highest dbref, as appropriate. The search + range is also now inclusive. And lsearch() works. + Suggested by Philip Mak. + * mushcnf.dst now includes a default value for call_limit. + Suggested by Philip Mak. + * Testing for whether the mush is already running in the + restart script has been improved by Philip Mak. + Internationalization: + * Polish translation files (partial) are now being distributed. + Fixes: + * Fix to win32 warnings. [EEH] + * Under Win32, a failed accept() call in bsd.c would not be + correctly handled. Report by BladedThoth@M*U*S*H. + * Help fixes by Luigi@8bitMUSH, Kyieren@M*U*S*H, Intrevis@M*U*S*H. + * @map crash bug repoted by Philip Mak, fixed by Walker@M*U*S*H. + * Modifiying locks now updates the object's modification time. + Reported by Philip Mak. + + Version 1.7.6 patchlevel 1 November 26, 2002 Minor changes: *** 1_7_6.57/game/txt/hlp/pennvers.hlp Sun, 08 Dec 2002 22:35:42 -0600 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.1.1.5.1.4.1.1.1.1.1.1.1.1.1.5.1.1.1.3.1.1.1.3.1.1.1.54.1.10.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1 600) --- 1_7_6.69(w)/game/txt/hlp/pennvers.hlp Tue, 17 Dec 2002 22:33:28 -0600 dunemush (pennmush/12_pennvers.h 1.169.1.42.1.3.1.2.2.2.1.1.1.3.1.1.1.5.1.4.1.1.1.1.1.1.1.1.1.5.1.1.1.3.1.1.1.3.1.1.1.54.1.10.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.7.1.1.1.1 600) *************** *** 1,5 **** & changes ! & 1.7.6p1 This is a list of changes in this patchlevel which are probably of interest to players. More information about new commands and functions can probably be gotten via 'help '. 'help credits' --- 1,5 ---- & changes ! & 1.7.6p2 This is a list of changes in this patchlevel which are probably of interest to players. More information about new commands and functions can probably be gotten via 'help '. 'help credits' *************** *** 11,16 **** --- 11,40 ---- A list of the patchlevels associated with each release can be read in 'help patchlevels'. + Version 1.7.6 patchlevel 2 December 17, 2002 + + Minor changes: + * An invalid range argument to @search/lsearch is now coerced + to be the lowest or highest dbref, as appropriate. The search + range is also now inclusive. And lsearch() works. + Suggested by Philip Mak. + * mushcnf.dst now includes a default value for call_limit. + Suggested by Philip Mak. + * Testing for whether the mush is already running in the + restart script has been improved by Philip Mak. + Internationalization: + * Polish translation files (partial) are now being distributed. + Fixes: + * Fix to win32 warnings. [EEH] + * Under Win32, a failed accept() call in bsd.c would not be + correctly handled. Report by BladedThoth@M*U*S*H. + * Help fixes by Luigi@8bitMUSH, Kyieren@M*U*S*H, Intrevis@M*U*S*H. + * @map crash bug repoted by Philip Mak, fixed by Walker@M*U*S*H. + * Modifiying locks now updates the object's modification time. + Reported by Philip Mak. + + + & 1.7.6p1 Version 1.7.6 patchlevel 1 November 26, 2002 Minor changes: *************** *** 5747,5753 **** For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.7.6: 0, 1 1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 --- 5771,5777 ---- For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.7.6: 0, 1, 2 1.7.5: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 1.7.4: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 *** 1_7_6.57/game/txt/hlp/pennfunc.hlp Mon, 02 Dec 2002 18:14:17 -0600 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.1.1.1 600) --- 1_7_6.69(w)/game/txt/hlp/pennfunc.hlp Wed, 11 Dec 2002 15:32:36 -0600 dunemush (pennmush/16_pennfunc.h 1.2.1.50.1.1.1.1.1.2.1.7.1.8.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.1.1.1.1.3 600) *************** *** 1897,1904 **** & LSEARCH() & SEARCH() & LSEARCHR() ! lsearch(, , [, [, ]]) ! lsearchr(, , [, [, ]]) This function is similar to the @search command, except it returns just a list of dbref numbers. It is computationally expensive, and --- 1897,1904 ---- & LSEARCH() & SEARCH() & LSEARCHR() ! lsearch([, [, [, [, ]]]]) ! lsearchr([, [, [, [, ]]]]) This function is similar to the @search command, except it returns just a list of dbref numbers. It is computationally expensive, and *************** *** 2529,2535 **** & RAND() rand() ! Rand returns an integer between 0 and num-1. If called with an invalid argument, rand() returns an error message beginning with #-1. & REGEDIT() --- 2529,2535 ---- & RAND() rand() ! Rand returns an integer between 0 and num-1, inclusive. If called with an invalid argument, rand() returns an error message beginning with #-1. & REGEDIT() *************** *** 3408,3432 **** Example: > @va Object=$test *:"[ufun(testfun, v(0))]; @emit [v(0)] ! > ! &testfun object=[strlen(v(0))] [ucstr(v(0))] > test string ! Foo says, "6 STRING" string ! See "help UFUN3" for more. ! ! & U3 ! & UFUN3 ! A user-defined function may be as complex as you want it to be. If the evaluation order doesn't quite seem right, adding escapes or breaking up the expression will probably help. - Excessive recursion in either a UFUN() or ZFUN() will cause it to - return "#-1 EXCESSIVE RECURSION ERROR", and sets the object HALT. - An object which is HALT may not evaluate either UFUN() or ZFUN(); - those functions will then return "#-1 OBJECT HALTED". - & UCSTR() ucstr() --- 3408,3424 ---- Example: > @va Object=$test *:"[ufun(testfun, v(0))]; @emit [v(0)] ! > &testfun object=[strlen(v(0))] [ucstr(v(0))] > test string ! Object says, "6 STRING" string ! A user-defined function may be as complex as you want it to be, ! subject to limits on recursion depth, number of function invocations, ! or cpu time that may be configured in the MUSH. If the evaluation order doesn't quite seem right, adding escapes or breaking up the expression will probably help. & UCSTR() ucstr() *** 1_7_6.57/game/txt/hlp/penncmd.hlp Mon, 09 Dec 2002 10:15:18 -0600 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.10.1.1.1.1 600) --- 1_7_6.69(w)/game/txt/hlp/penncmd.hlp Tue, 17 Dec 2002 15:44:52 -0600 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.10.1.1.1.1.1.1 600) *************** *** 808,815 **** See also: SAFE, GOING, DESTROY_OK & @dig ! @dig [= ;*,;*] ! @dig/teleport This command is used to create a new room, possibly with exits linking it to the room you are standing in. This command normally costs 10 pennies, --- 808,814 ---- See also: SAFE, GOING, DESTROY_OK & @dig ! @dig[/teleport] [=;*,;*] This command is used to create a new room, possibly with exits linking it to the room you are standing in. This command normally costs 10 pennies, *************** *** 973,980 **** (which is a good thing for security). & @emit & \ ! @emit[/room][/silent] ! @emit[/noeval] \ This sends to every person in the current room. However, no --- 972,978 ---- (which is a good thing for security). & @emit & \ ! @emit[/room][/silent][/noeval] [] \ This sends to every person in the current room. However, no *** 1_7_6.57/game/restart Fri, 17 May 2002 14:49:25 -0500 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.2 700) --- 1_7_6.69(w)/game/restart Tue, 17 Dec 2002 00:15:34 -0600 dunemush (pennmush/39_restart 1.1.1.1.1.1.1.2.1.1.1.1.1.2.1.2.2.1 700) *************** *** 55,61 **** # Prevent double-starting things. You may need to provide a pathname for # some of the commands. System V flavors need "ps -f" instead of "ps uwx". ! mush=`ps uwx | grep $CONF_FILE | grep -v grep | wc -l` if [ $mush -gt 0 ]; then --- 55,61 ---- # Prevent double-starting things. You may need to provide a pathname for # some of the commands. System V flavors need "ps -f" instead of "ps uwx". ! mush=`ps uwx | grep " $CONF_FILE" | grep -v grep | wc -l` if [ $mush -gt 0 ]; then *** 1_7_6.57/game/mushcnf.dst Sun, 08 Dec 2002 22:35:42 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1 600) --- 1_7_6.69(w)/game/mushcnf.dst Tue, 17 Dec 2002 15:49:19 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1.1.1 600) *************** *** 161,171 **** # the maximum number of times we're allowed to recursively call the parser # for a single expression. This limits how much the stack size can increase, # which could be useful if your host limits your stack (it will prevent ! # a crash). # But remember that you need to recurse for every [ or { or function call # in your code, and those add up quickly. So this must often be set quite # high (e.g. 18000), alas. Setting it to '0' means unlimited. ! call_limit 0 # The maximum number of milliseconds of CPU time that a single queue entry # is allowed to use before aborting. Setting this to a low number will --- 161,172 ---- # the maximum number of times we're allowed to recursively call the parser # for a single expression. This limits how much the stack size can increase, # which could be useful if your host limits your stack (it will prevent ! # a crash). The higher your allowed stack size limit, the larger the ! # mush process can grow, and the higher this can be set. # But remember that you need to recurse for every [ or { or function call # in your code, and those add up quickly. So this must often be set quite # high (e.g. 18000), alas. Setting it to '0' means unlimited. ! call_limit 10000 # The maximum number of milliseconds of CPU time that a single queue entry # is allowed to use before aborting. Setting this to a low number will *** 1_7_6.57/src/wiz.c Fri, 06 Dec 2002 21:20:38 -0600 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.1.1.1.1.1.1.8.1.2.2.2.1.2.1.1.1.1.1.1 660) --- 1_7_6.69(w)/src/wiz.c Tue, 17 Dec 2002 22:34:46 -0600 dunemush (pennmush/b/23_wiz.c 1.44.1.1.1.1.1.2.1.7.1.1.1.1.1.1.1.1.1.1.1.8.1.2.2.2.1.2.1.1.1.1.1.1.1.2 660) *************** *** 1304,1310 **** object_flag_type restrict_flags = 0; dbref restrict_obj = NOTHING, restrict_owner = ANY_OWNER; int is_wiz; ! dbref low = 0, high = db_top; is_wiz = Search_All(player) || See_All(player); --- 1304,1310 ---- object_flag_type restrict_flags = 0; dbref restrict_obj = NOTHING, restrict_owner = ANY_OWNER; int is_wiz; ! dbref low = 0, high = db_top - 1; is_wiz = Search_All(player) || See_All(player); *************** *** 1314,1333 **** if (start[0] == '#') offset = 1; low = parse_integer(start + offset); ! if (!GoodObject(low)) { ! notify(player, T("Invalid range argument.")); ! return -1; ! } } if (stop && *stop) { Size_t offset = 0; if (stop[0] == '#') offset = 1; high = parse_integer(stop + offset); ! if (!GoodObject(high)) { ! notify(player, T("Invalid range argument.")); ! return -1; ! } } /* set limits on who we search */ --- 1314,1329 ---- if (start[0] == '#') offset = 1; low = parse_integer(start + offset); ! if (!GoodObject(low)) ! low = 0; } if (stop && *stop) { Size_t offset = 0; if (stop[0] == '#') offset = 1; high = parse_integer(stop + offset); ! if (!GoodObject(high)) ! high = db_top - 1; } /* set limits on who we search */ *************** *** 1454,1460 **** switch (sclass) { case S_OWNER: /* @search someone */ case S_TYPE: /* @search type=whatever */ ! for (n = low; n < high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (restrict_type == NOTYPE || Typeof(n) == restrict_type)) { if (nresults >= result_size) { --- 1450,1456 ---- switch (sclass) { case S_OWNER: /* @search someone */ case S_TYPE: /* @search type=whatever */ ! for (n = low; n <= high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (restrict_type == NOTYPE || Typeof(n) == restrict_type)) { if (nresults >= result_size) { *************** *** 1471,1477 **** } break; case S_ZONE: /* @search ZONE=#1234 */ ! for (n = low; n < high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && Zone(n) == restrict_obj) { if (nresults >= result_size) { --- 1467,1473 ---- } break; case S_ZONE: /* @search ZONE=#1234 */ ! for (n = low; n <= high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && Zone(n) == restrict_obj) { if (nresults >= result_size) { *************** *** 1489,1495 **** } break; case S_PARENT: /* @search parent=#1234 */ ! for (n = low; n < high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && Parent(n) == restrict_obj) { if (nresults >= result_size) { --- 1485,1491 ---- } break; case S_PARENT: /* @search parent=#1234 */ ! for (n = low; n <= high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && Parent(n) == restrict_obj) { if (nresults >= result_size) { *************** *** 1507,1513 **** } break; case S_NAME: /* @search (?:name|exits|objects|rooms|players|things)=name */ ! for (n = low; n < high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (restrict_type == NOTYPE || Typeof(n) == restrict_type) && string_match(Name(n), restriction)) { --- 1503,1509 ---- } break; case S_NAME: /* @search (?:name|exits|objects|rooms|players|things)=name */ ! for (n = low; n <= high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (restrict_type == NOTYPE || Typeof(n) == restrict_type) && string_match(Name(n), restriction)) { *************** *** 1535,1541 **** if (!restriction || !*restriction) break; ! for (n = low; n < high; n++) { if (!((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (restrict_type == NOTYPE || Typeof(n) == restrict_type))) continue; --- 1531,1537 ---- if (!restriction || !*restriction) break; ! for (n = low; n <= high; n++) { if (!((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (restrict_type == NOTYPE || Typeof(n) == restrict_type))) continue; *************** *** 1566,1572 **** } break; case S_POWER: /* @search power=see_all */ ! for (n = low; n < high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (Powers(n) & restrict_flags) == restrict_flags) { if (nresults >= result_size) { --- 1562,1568 ---- } break; case S_POWER: /* @search power=see_all */ ! for (n = low; n <= high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (Powers(n) & restrict_flags) == restrict_flags) { if (nresults >= result_size) { *************** *** 1584,1590 **** } break; case S_FLAG: ! for (n = low; n < high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (restrict_type == NOTYPE || Typeof(n) == restrict_type) && flaglist_check(player, n, restriction, 1)) { --- 1580,1586 ---- } break; case S_FLAG: ! for (n = low; n <= high; n++) { if ((restrict_owner == ANY_OWNER || Owner(n) == restrict_owner) && (restrict_type == NOTYPE || Typeof(n) == restrict_type) && flaglist_check(player, n, restriction, 1)) { *** 1_7_6.57/src/timer.c Thu, 05 Sep 2002 09:29:20 -0500 dunemush (pennmush/b/29_timer.c 1.29.1.7 660) --- 1_7_6.69(w)/src/timer.c Tue, 17 Dec 2002 22:34:46 -0600 dunemush (pennmush/b/29_timer.c 1.29.1.7.1.1 660) *************** *** 216,222 **** } #elif defined(WIN32) /* Windoze way */ if (options.queue_entry_cpu_time > 0) ! timer_id = SetTimer(NULL, NULL, (unsigned) options.queue_entry_cpu_time, (TIMERPROC) win32_timer); else timer_set = 0; --- 216,222 ---- } #elif defined(WIN32) /* Windoze way */ if (options.queue_entry_cpu_time > 0) ! timer_id = SetTimer(NULL, 0, (unsigned) options.queue_entry_cpu_time, (TIMERPROC) win32_timer); else timer_set = 0; *** 1_7_6.57/src/switchinc.c Mon, 09 Dec 2002 14:23:00 -0600 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.1 660) --- 1_7_6.69(w)/src/switchinc.c Tue, 17 Dec 2002 22:34:46 -0600 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.2 660) *************** *** 132,136 **** {"WIZARD", SWITCH_WIZARD}, {"YES", SWITCH_YES}, {"ZONE", SWITCH_ZONE}, ! {NULL, 0} }; --- 132,136 ---- {"WIZARD", SWITCH_WIZARD}, {"YES", SWITCH_YES}, {"ZONE", SWITCH_ZONE}, ! {NULL, 0} }; *** 1_7_6.57/src/strutil.c Sun, 01 Dec 2002 13:45:45 -0600 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.1.1.21 660) --- 1_7_6.69(w)/src/strutil.c Tue, 17 Dec 2002 22:34:46 -0600 dunemush (pennmush/b/33_strutil.c 1.28.1.3.1.3.1.7.2.1.1.2.1.1.1.1.1.1.1.21.1.2 660) *************** *** 1091,1097 **** * which we need). */ r = ldiv(r.quot, 10); ! *(--current) = r.rem + '0'; } while (r.quot); /* Add the negative sign if needed. */ --- 1091,1097 ---- * which we need). */ r = ldiv(r.quot, 10); ! *(--current) = (unsigned char) r.rem + '0'; } while (r.quot); /* Add the negative sign if needed. */ *** 1_7_6.57/src/lock.c Wed, 20 Nov 2002 09:43:49 -0600 dunemush (pennmush/c/6_lock.c 1.17.1.13 660) --- 1_7_6.69(w)/src/lock.c Tue, 17 Dec 2002 22:34:43 -0600 dunemush (pennmush/c/6_lock.c 1.17.1.13.1.1 660) *************** *** 32,37 **** --- 32,38 ---- #include "mushdb.h" #include "attrib.h" #include "externs.h" + #include "dbdefs.h" #include "lock.h" #include "match.h" #include "log.h" *************** *** 497,506 **** if (getlock(thing, real_type) == TRUE_BOOLEXP) notify_format(player, T("%s(%s) - (already) unlocked."), Name(thing), unparse_dbref(thing)); ! else if (delete_lock(player, thing, real_type)) notify_format(player, T("%s(%s) - unlocked."), Name(thing), unparse_dbref(thing)); ! else notify(player, T("Permission denied.")); } } --- 498,510 ---- if (getlock(thing, real_type) == TRUE_BOOLEXP) notify_format(player, T("%s(%s) - (already) unlocked."), Name(thing), unparse_dbref(thing)); ! else if (delete_lock(player, thing, real_type)) { notify_format(player, T("%s(%s) - unlocked."), Name(thing), unparse_dbref(thing)); ! #ifdef CREATION_TIMES ! ModTime(thing) = mudtime; ! #endif ! } else notify(player, T("Permission denied.")); } } *************** *** 555,564 **** } else { if ((real_type = check_lock_type(player, thing, type)) != NULL) { /* everything ok, do it */ ! if (add_lock(player, thing, real_type, key, -1)) notify_format(player, T("%s(%s) - locked."), Name(thing), unparse_dbref(thing)); ! else notify(player, T("Permission denied.")); } } --- 559,571 ---- } else { if ((real_type = check_lock_type(player, thing, type)) != NULL) { /* everything ok, do it */ ! if (add_lock(player, thing, real_type, key, -1)) { notify_format(player, T("%s(%s) - locked."), Name(thing), unparse_dbref(thing)); ! #ifdef CREATION_TIMES ! ModTime(thing) = mudtime; ! #endif ! } else notify(player, T("Permission denied.")); } } *************** *** 638,641 **** --- 645,651 ---- notify_format(player, "%s/%s - %s.", Name(thing), L_TYPE(l), unset ? "unset" : "set"); + #ifdef CREATION_TIMES + ModTime(thing) = mudtime; + #endif } *** 1_7_6.57/src/game.c Sat, 30 Nov 2002 15:49:22 -0600 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.5.1.3.1.2.1.2 660) --- 1_7_6.69(w)/src/game.c Tue, 17 Dec 2002 22:34:43 -0600 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.5.1.3.1.2.1.2.1.1 660) *************** *** 1368,1384 **** bind_and_queue(player, cause, command, curr, placestr); } else { const char *replace[2]; ! char *ebuf; /* it's @map, add to the output list */ if (bp != outbuf) safe_chr(delim, outbuf, &bp); replace[0] = curr; replace[1] = placestr; ! ebuf = replace_string2(standard_tokens, replace, command); process_expression(outbuf, &bp, (char const **) &ebuf, player, cause, cause, PE_DEFAULT, PT_DEFAULT, NULL); ! mush_free(ebuf, "replace_string.buff"); } } --- 1368,1384 ---- bind_and_queue(player, cause, command, curr, placestr); } else { const char *replace[2]; ! char *ebuf, *ebufptr; /* it's @map, add to the output list */ if (bp != outbuf) safe_chr(delim, outbuf, &bp); replace[0] = curr; replace[1] = placestr; ! ebufptr = ebuf = replace_string2(standard_tokens, replace, command); process_expression(outbuf, &bp, (char const **) &ebuf, player, cause, cause, PE_DEFAULT, PT_DEFAULT, NULL); ! mush_free(ebufptr, "replace_string.buff"); } } *** 1_7_6.57/src/function.c Sat, 30 Nov 2002 15:49:22 -0600 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.6.1.1.1.1.1.14.1.2 660) --- 1_7_6.69(w)/src/function.c Tue, 17 Dec 2002 22:34:43 -0600 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.6.1.1.1.1.1.14.1.2.1.1 660) *************** *** 302,309 **** {"LOCK", fun_lock, 1, 2, FN_REG}, {"LPARENT", fun_lparent, 1, 1, FN_REG}, {"LPLAYERS", fun_lplayers, 1, 1, FN_REG}, ! {"LSEARCH", fun_lsearch, 3, 5, FN_REG}, ! {"LSEARCHR", fun_lsearch, 3, 5, FN_REG}, {"LSTATS", fun_lstats, 0, 1, FN_REG}, {"LT", fun_lt, 2, 2, FN_REG}, {"LTE", fun_lte, 2, 2, FN_REG}, --- 302,309 ---- {"LOCK", fun_lock, 1, 2, FN_REG}, {"LPARENT", fun_lparent, 1, 1, FN_REG}, {"LPLAYERS", fun_lplayers, 1, 1, FN_REG}, ! {"LSEARCH", fun_lsearch, 1, 5, FN_REG}, ! {"LSEARCHR", fun_lsearch, 1, 5, FN_REG}, {"LSTATS", fun_lstats, 0, 1, FN_REG}, {"LT", fun_lt, 2, 2, FN_REG}, {"LTE", fun_lte, 2, 2, FN_REG}, *** 1_7_6.57/src/conf.c Sat, 30 Nov 2002 15:49:22 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.15 660) --- 1_7_6.69(w)/src/conf.c Tue, 17 Dec 2002 22:34:42 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.15.1.1.1.1 660) *************** *** 936,941 **** --- 936,942 ---- options.player_name_len = 16; options.queue_entry_cpu_time = 1500; options.ascii_names = 1; + options.call_lim = 10000; } /* Limit how many files we can nest */ *** 1_7_6.57/src/bsd.c Sun, 08 Dec 2002 22:35:42 -0600 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.8.2.1.1.1.1.1.1.1.1.2.1.1 660) --- 1_7_6.69(w)/src/bsd.c Tue, 17 Dec 2002 22:34:42 -0600 dunemush (pennmush/c/38_bsd.c 1.58.1.11.1.2.1.5.1.7.1.14.1.13.1.9.1.4.1.2.1.12.1.1.1.1.1.2.1.1.1.13.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.8.2.1.1.1.1.1.1.1.1.2.1.1.1.1 660) *************** *** 373,379 **** struct timeval *update_quotas(struct timeval *last, struct timeval *current); void shovechars(Port_t port); ! DESC *new_connection(int oldsock); void clearstrings(DESC *d); typedef struct fblock { char *buff; --- 373,379 ---- struct timeval *update_quotas(struct timeval *last, struct timeval *current); void shovechars(Port_t port); ! DESC *new_connection(int oldsock, int *result); void clearstrings(DESC *d); typedef struct fblock { char *buff; *************** *** 2173,2181 **** } #else if (FD_ISSET(sock, &input_set)) { ! if (!(newd = new_connection(sock))) { #ifdef WIN32 ! if (newd == INVALID_SOCKET && WSAGetLastError() != WSAEINTR) #else if (errno && errno != EINTR) #endif --- 2173,2182 ---- } #else if (FD_ISSET(sock, &input_set)) { ! int result; ! if (!(newd = new_connection(sock, &result))) { #ifdef WIN32 ! if (result == INVALID_SOCKET && WSAGetLastError() != WSAEINTR) #else if (errno && errno != EINTR) #endif *************** *** 2210,2217 **** } DESC * ! new_connection(oldsock) ! int oldsock; { int newsock; union sockaddr_u addr; --- 2211,2217 ---- } DESC * ! new_connection(int oldsock, int *result) { int newsock; union sockaddr_u addr; *************** *** 2223,2231 **** --- 2223,2233 ---- char *socket_ident; char *chp; + *result = 0; addr_len = MAXSOCKADDR; newsock = accept(oldsock, (struct sockaddr *) (addr.data), &addr_len); if (newsock < 0) { + *result = newsock; return 0; } bp = tbuf2; *** 1_7_6.57/hdrs/version.h Mon, 09 Dec 2002 10:15:18 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.1 660) --- 1_7_6.69(w)/hdrs/version.h Tue, 17 Dec 2002 22:34:47 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.2.1.1 660) *************** *** 1,2 **** ! #define VERSION "PennMUSH version 1.7.6 patchlevel 1 [12/08/2002]" ! #define SHORTVN "PennMUSH 1.7.6p1" --- 1,2 ---- ! #define VERSION "PennMUSH version 1.7.6 patchlevel 2 [12/17/2002]" ! #define SHORTVN "PennMUSH 1.7.6p2" *** 1_7_6.57/po/Makefile Wed, 13 Nov 2002 15:39:20 -0600 dunemush (pennmush/e/47_Makefile 1.10 660) --- 1_7_6.69(w)/po/Makefile Tue, 17 Dec 2002 22:31:44 -0600 dunemush (pennmush/e/47_Makefile 1.11 660) *************** *** 1,7 **** .SUFFIXES: .po .pox .mo POFILES=ru_RU.po nl_NL.po sv_SE.po hu_HU.po es_ES.po pt_BR.po fr_FR.po \ ! da_DK.po de_DE.po no_NO.po .pox.po: $*.pox pennmush.pot -msgmerge -E -v $*.pox pennmush.pot > $*.po --- 1,7 ---- .SUFFIXES: .po .pox .mo POFILES=ru_RU.po nl_NL.po sv_SE.po hu_HU.po es_ES.po pt_BR.po fr_FR.po \ ! da_DK.po de_DE.po no_NO.po pl_PL.po .pox.po: $*.pox pennmush.pot -msgmerge -E -v $*.pox pennmush.pot > $*.po