This is patch01 to PennMUSH 1.7.7. After applying this patch, you will have version 1.7.7p1 To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.7.7-patch01 make install If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1', not just 'patch -p1'. Unix (or cygwin) users need not worry about failed hunks in src/switchinc.c, hdrs/switches.h, hdrs/cmds.h, or hdrs/funs.h. These files are automatically rebuilt on compile. Then @shutdown and restart your MUSH. - Alan/Javelin In this patch: Minor Changes: * ex obj/attrib returns the attribute value even if it's veiled, if a specific (non-wildcard) attribute is given. Suggested by Nhoj@M*U*S*H. Fixes: * Win32 portability fixes. [EEH] * Fixes from 1.7.6p2 Prereq: 1.7.7p0 *** 1_7_7.59/Patchlevel Tue, 26 Nov 2002 21:18:51 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.2 600) --- 1_7_7.65(w)/Patchlevel Tue, 17 Dec 2002 22:43:29 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.2 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.7p0 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.7p1 *** 1_7_7.59/CHANGES Thu, 12 Dec 2002 21:23:20 -0600 dunemush (pennmush/g/23_CHANGES 1.19 600) --- 1_7_7.65(w)/CHANGES Tue, 17 Dec 2002 16:00:39 -0600 dunemush (pennmush/g/23_CHANGES 1.21 600) *************** *** 18,23 **** --- 18,33 ---- ========================================================================== + Version 1.7.7 patchlevel 1 December 17, 2002 + + Minor Changes: + * ex obj/attrib returns the attribute value even if it's veiled, + if a specific (non-wildcard) attribute is given. Suggested by + Nhoj@M*U*S*H. + Fixes: + * Win32 portability fixes. [EEH] + * Fixes from 1.7.6p2 + Version 1.7.7 patchlevel 0 December 8, 2002 Major Changes: *** 1_7_7.59/game/txt/hlp/pennvers.hlp Thu, 12 Dec 2002 21:23:20 -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.3 600) --- 1_7_7.65(w)/game/txt/hlp/pennvers.hlp Tue, 17 Dec 2002 22:42:53 -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.7p0 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.7p1 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,27 ---- A list of the patchlevels associated with each release can be read in 'help patchlevels'. + Version 1.7.7 patchlevel 1 December 17, 2002 + + Minor Changes: + * ex obj/attrib returns the attribute value even if it's veiled, + if a specific (non-wildcard) attribute is given. Suggested by + Nhoj@M*U*S*H. + Fixes: + * Win32 portability fixes. [EEH] + * Fixes from 1.7.6p2 + + & 1.7.7p0 Version 1.7.7 patchlevel 0 December 8, 2002 Major Changes: *************** *** 1251,1256 **** --- 1262,1291 ---- * Indentation fixes [SW] * Fixes up to 1.7.4p12 merged in. + & 1.7.6p2 + 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 *************** *** 5791,5798 **** 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.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 --- 5826,5833 ---- 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 ! 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_7.59/game/txt/hlp/pennfunc.hlp Mon, 02 Dec 2002 18:14:37 -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.2 600) --- 1_7_7.65(w)/game/txt/hlp/pennfunc.hlp Tue, 17 Dec 2002 00:17:01 -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.4 600) *************** *** 1898,1905 **** & 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 --- 1898,1905 ---- & 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 *************** *** 2530,2536 **** & 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() --- 2530,2536 ---- & 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() *************** *** 3409,3433 **** 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() --- 3409,3425 ---- 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_7.59/game/txt/hlp/penncmd.hlp Mon, 09 Dec 2002 14:24:35 -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.2 600) --- 1_7_7.65(w)/game/txt/hlp/penncmd.hlp Tue, 17 Dec 2002 15:56:27 -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.2 600) *************** *** 820,827 **** 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, --- 820,826 ---- 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, *************** *** 985,992 **** (which is a good thing for security). & @emit & \ ! @emit[/room][/silent] ! @emit[/noeval] \ This sends to every person in the current room. However, no --- 984,990 ---- (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_7.59/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_7.65(w)/game/restart Tue, 17 Dec 2002 00:17:03 -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_7.59/game/mushcnf.dst Sun, 08 Dec 2002 22:36:08 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.2 600) --- 1_7_7.65(w)/game/mushcnf.dst Tue, 17 Dec 2002 16:00:54 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1.1.2 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_7.59/src/wiz.c Fri, 06 Dec 2002 21:20:59 -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.2 660) --- 1_7_7.65(w)/src/wiz.c Tue, 17 Dec 2002 22:44:12 -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.3 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_7.59/src/timer.c Sat, 07 Dec 2002 16:26:26 -0600 dunemush (pennmush/b/29_timer.c 1.29.1.8 660) --- 1_7_7.65(w)/src/timer.c Tue, 17 Dec 2002 22:44:12 -0600 dunemush (pennmush/b/29_timer.c 1.29.1.7.1.2 660) *************** *** 214,220 **** } #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; --- 214,220 ---- } #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_7.59/src/switchinc.c Sat, 07 Dec 2002 16:26:26 -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.7 660) --- 1_7_7.65(w)/src/switchinc.c Tue, 17 Dec 2002 22:44:12 -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_7.59/src/strutil.c Sun, 01 Dec 2002 21:14:41 -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.22 660) --- 1_7_7.65(w)/src/strutil.c Tue, 17 Dec 2002 22:44:12 -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.3 660) *************** *** 1094,1100 **** * which we need). */ r = ldiv(r.quot, 10); ! *(--current) = r.rem + '0'; } while (r.quot); /* Add the negative sign if needed. */ --- 1094,1100 ---- * 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_7.59/src/look.c Sat, 07 Dec 2002 16:26:26 -0600 dunemush (pennmush/c/4_look.c 1.21.1.2.1.19 660) --- 1_7_7.65(w)/src/look.c Tue, 17 Dec 2002 22:44:11 -0600 dunemush (pennmush/c/4_look.c 1.21.1.2.1.21 660) *************** *** 379,385 **** static void look_atrs(dbref player, dbref thing, const char *mstr, int all) { ! if (all) { if (!atr_iter_get(player, thing, mstr, look_helper, NULL) && mstr) notify(player, T("No matching attributes.")); } else { --- 379,385 ---- static void look_atrs(dbref player, dbref thing, const char *mstr, int all) { ! if (all || (mstr && *mstr && !wildcard(mstr))) { if (!atr_iter_get(player, thing, mstr, look_helper, NULL) && mstr) notify(player, T("No matching attributes.")); } else { *** 1_7_7.59/src/lock.c Sun, 01 Dec 2002 21:14:41 -0600 dunemush (pennmush/c/6_lock.c 1.17.1.14 660) --- 1_7_7.65(w)/src/lock.c Tue, 17 Dec 2002 22:44:11 -0600 dunemush (pennmush/c/6_lock.c 1.17.1.13.1.2 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,508 ---- 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)); ! ModTime(thing) = mudtime; ! } 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.")); } } --- 557,567 ---- } 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)); ! ModTime(thing) = mudtime; ! } else notify(player, T("Permission denied.")); } } *************** *** 638,641 **** --- 641,645 ---- notify_format(player, "%s/%s - %s.", Name(thing), L_TYPE(l), unset ? "unset" : "set"); + ModTime(thing) = mudtime; } *** 1_7_7.59/src/game.c Sat, 07 Dec 2002 16:26:26 -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.5 660) --- 1_7_7.65(w)/src/game.c Tue, 17 Dec 2002 22:44:08 -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.2 660) *************** *** 1357,1373 **** 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"); } } --- 1357,1373 ---- 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_7.59/src/funstr.c Mon, 02 Dec 2002 18:50:58 -0600 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.3.1.5.1.3.1.6 660) --- 1_7_7.65(w)/src/funstr.c Tue, 17 Dec 2002 22:44:08 -0600 dunemush (pennmush/c/13_funstr.c 1.28.1.1.1.2.1.4.1.6.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.3.1.5.1.3.1.7 660) *************** *** 4,9 **** --- 4,10 ---- #include #include #include + #include #include "conf.h" #include "ansi.h" #include "externs.h" *************** *** 19,28 **** --- 20,35 ---- #include "lock.h" #include "confmagic.h" + #ifdef WIN32 + #define LC_MESSAGES 6 #pragma warning( disable : 4761) /* NJG: disable warning re conversion */ #endif + #ifdef __APPLE__ + #define LC_MESSAGES 6 + #endif + HASHTAB htab_tag; static int wraplen(char *str, int maxlen); *** 1_7_7.59/src/function.c Sat, 07 Dec 2002 16:26:26 -0600 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.6.1.1.1.1.1.14.1.5 660) --- 1_7_7.65(w)/src/function.c Tue, 17 Dec 2002 22:44:08 -0600 dunemush (pennmush/c/18_function.c 1.29.1.14.1.3.1.6.1.1.1.1.1.14.1.2.1.2 660) *************** *** 297,304 **** {"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}, --- 297,304 ---- {"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_7.59/src/conf.c Sat, 07 Dec 2002 16:26:26 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.20 660) --- 1_7_7.65(w)/src/conf.c Tue, 17 Dec 2002 22:44:07 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.15.1.1.1.2 660) *************** *** 932,937 **** --- 932,938 ---- 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_7.59/src/comp_w.c Sun, 01 Dec 2002 21:14:41 -0600 dunemush (pennmush/c/33_comp_w.c 1.12 660) --- 1_7_7.65(w)/src/comp_w.c Tue, 17 Dec 2002 22:44:07 -0600 dunemush (pennmush/c/33_comp_w.c 1.13 660) *************** *** 127,133 **** #include "confmagic.h" #define MAXTABLE 32768 ! #define MAXWORD 100 #define COLLISION_LIMIT 20 #define COMPRESS_HASH_MASK 0x7FFF /* 32767 */ --- 127,133 ---- #include "confmagic.h" #define MAXTABLE 32768 ! #define MAXWORDS 100 #define COLLISION_LIMIT 20 #define COMPRESS_HASH_MASK 0x7FFF /* 32767 */ *************** *** 142,148 **** /* The word we are currently compressing */ ! static char word[MAXWORD + 2]; static size_t wordpos = 0; /* Stats */ --- 142,148 ---- /* The word we are currently compressing */ ! static char word[MAXWORDS + 2]; static size_t wordpos = 0; /* Stats */ *************** *** 239,245 **** /* break up input into words */ while (*p) { ! if (!(isdigit(*p) || isalpha(*p)) || wordpos >= MAXWORD) { if (wordpos) { word[wordpos++] = *p & 0x7F; /* add trailing punctuation */ output_previous_word(); --- 239,245 ---- /* break up input into words */ while (*p) { ! if (!(isdigit(*p) || isalpha(*p)) || wordpos >= MAXWORDS) { if (wordpos) { word[wordpos++] = *p & 0x7F; /* add trailing punctuation */ output_previous_word(); *** 1_7_7.59/src/comp_w8.c Sun, 01 Dec 2002 21:14:41 -0600 dunemush (pennmush/f/33_comp_w8.c 1.8 660) --- 1_7_7.65(w)/src/comp_w8.c Tue, 17 Dec 2002 22:44:07 -0600 dunemush (pennmush/f/33_comp_w8.c 1.9 660) *************** *** 128,134 **** #include "confmagic.h" #define MAXTABLE 32768 ! #define MAXWORD 100 #define COLLISION_LIMIT 20 #define COMPRESS_HASH_MASK 0x7FFF /* 32767 */ --- 128,134 ---- #include "confmagic.h" #define MAXTABLE 32768 ! #define MAXWORDS 100 #define COLLISION_LIMIT 20 #define COMPRESS_HASH_MASK 0x7FFF /* 32767 */ *************** *** 144,150 **** /* The word we are currently compressing */ ! static char word[MAXWORD + 2]; static size_t wordpos = 0; /* Stats */ --- 144,150 ---- /* The word we are currently compressing */ ! static char word[MAXWORDS + 2]; static size_t wordpos = 0; /* Stats */ *************** *** 243,249 **** /* break up input into words */ while (*p) { ! if (!(isdigit(*p) || isalpha(*p)) || wordpos >= MAXWORD) { if (wordpos) { word[wordpos++] = *p; /* add trailing punctuation */ output_previous_word(); --- 243,249 ---- /* break up input into words */ while (*p) { ! if (!(isdigit(*p) || isalpha(*p)) || wordpos >= MAXWORDS) { if (wordpos) { word[wordpos++] = *p; /* add trailing punctuation */ output_previous_word(); *** 1_7_7.59/src/bsd.c Thu, 12 Dec 2002 21:23:20 -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.3 660) --- 1_7_7.65(w)/src/bsd.c Tue, 17 Dec 2002 22:44:07 -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.4 660) *************** *** 371,401 **** void parse_connect(const char *msg, char *command, char *user, char *pass); void close_sockets(void); dbref find_player_by_desc(int port); ! void ! bailout(int sig) ! NORETURN; ! void WIN32_CDECL signal_shutdown(int sig); ! void WIN32_CDECL signal_dump(int sig); ! void reaper(int sig); ! extern Pid_t forked_dump_pid; ! void dump_users(DESC *call_by, char *match, int doing); ! const char *time_format_1(long int dt); ! const char *time_format_2(long int dt); ! static void announce_connect(dbref player, int isnew, int num); ! static void announce_disconnect(dbref player); ! void inactivity_check(void); #ifdef INFO_SLAVE ! static void make_info_slave(void); ! static void promote_info_slave(void); ! static void query_info_slave(int fd); ! static void reap_info_slave(void); ! void kill_info_slave(void); #endif ! void reopen_logs(void); ! void load_reboot_db(void); #ifdef HAS_GETRLIMIT ! static void ! init_rlimit(void) { /* Unlimit file descriptors. */ /* Ultrix 4.4 and others may have getrlimit but may not be able to --- 371,399 ---- void parse_connect(const char *msg, char *command, char *user, char *pass); void close_sockets(void); dbref find_player_by_desc(int port); ! void NORETURN bailout(int sig); ! void WIN32_CDECL signal_shutdown(int sig); ! void WIN32_CDECL signal_dump(int sig); ! void reaper(int sig); ! extern Pid_t forked_dump_pid; ! void dump_users(DESC *call_by, char *match, int doing); ! const char *time_format_1(long int dt); ! const char *time_format_2(long int dt); ! static void announce_connect(dbref player, int isnew, int num); ! static void announce_disconnect(dbref player); ! void inactivity_check(void); #ifdef INFO_SLAVE ! static void make_info_slave(void); ! static void promote_info_slave(void); ! static void query_info_slave(int fd); ! static void reap_info_slave(void); ! void kill_info_slave(void); #endif ! void reopen_logs(void); ! void load_reboot_db(void); #ifdef HAS_GETRLIMIT ! static void ! init_rlimit(void) { /* Unlimit file descriptors. */ /* Ultrix 4.4 and others may have getrlimit but may not be able to *** 1_7_7.59/hdrs/version.h Thu, 12 Dec 2002 21:23:20 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.19 660) --- 1_7_7.65(w)/hdrs/version.h Tue, 17 Dec 2002 22:44:13 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.3 660) *************** *** 1,2 **** ! #define VERSION "PennMUSH version 1.7.7 patchlevel 0 [12/8/2002]" ! #define SHORTVN "PennMUSH 1.7.7p0" --- 1,2 ---- ! #define VERSION "PennMUSH version 1.7.7 patchlevel 1 [12/17/2002]" ! #define SHORTVN "PennMUSH 1.7.7p1" *** 1_7_7.59/hdrs/game.h Mon, 02 Dec 2002 18:48:13 -0600 dunemush (pennmush/d/12_game.h 1.28.1.2.1.1.1.1.1.1.1.10 660) --- 1_7_7.65(w)/hdrs/game.h Tue, 17 Dec 2002 22:44:12 -0600 dunemush (pennmush/d/12_game.h 1.28.1.2.1.1.1.1.1.1.1.11 660) *************** *** 151,168 **** int type); extern void do_chownall (dbref player, const char *name, const char *target, int preserve); ! extern void ! do_reboot(dbref player, int flag) ! NORETURN; /* From destroy.c */ ! extern void do_dbck(dbref player); ! extern void do_destroy(dbref player, char *name, int confirm); /* From timer.c */ ! extern void init_timer(void); /* From version.c */ ! extern void do_version(dbref player); #endif /* __GAME_H */ --- 151,166 ---- int type); extern void do_chownall (dbref player, const char *name, const char *target, int preserve); ! extern void NORETURN do_reboot(dbref player, int flag); /* From destroy.c */ ! extern void do_dbck(dbref player); ! extern void do_destroy(dbref player, char *name, int confirm); /* From timer.c */ ! extern void init_timer(void); /* From version.c */ ! extern void do_version(dbref player); #endif /* __GAME_H */ *** 1_7_7.59/hdrs/externs.h Sat, 07 Dec 2002 16:26:26 -0600 dunemush (pennmush/d/16_externs.h 1.1.1.53.1.2.1.8.2.1.1.2.1.1.1.1.1.2.1.6.1.3.1.4.2.3 660) --- 1_7_7.65(w)/hdrs/externs.h Tue, 17 Dec 2002 22:44:12 -0600 dunemush (pennmush/d/16_externs.h 1.1.1.53.1.2.1.8.2.1.1.2.1.1.1.1.1.2.1.6.1.3.1.4.2.4 660) *************** *** 53,82 **** extern int init_game_dbs(void); extern void init_game_config(const char *conf); extern void dump_database(void); ! extern void ! panic(const char *message) ! NORETURN; #ifdef WIN32 /* From timer.c */ ! extern void init_timer(void); ! extern void kill_timer(void); #endif /* WIN32 */ /* From bsd.c */ ! extern FILE *connlog_fp; ! extern FILE *checklog_fp; ! extern FILE *wizlog_fp; ! extern FILE *tracelog_fp; ! extern FILE *cmdlog_fp; ! extern int restarting; #ifdef SUN_OS ! extern int f_close(FILE * file); #define fclose(f) f_close(f); #endif ! extern int hidden(dbref player); ! void dump_reboot_db(void); /* The #defs for our notify_anything hacks.. Errr. Functions */ #define NA_NORELAY 0x0001 --- 53,80 ---- extern int init_game_dbs(void); extern void init_game_config(const char *conf); extern void dump_database(void); ! extern void NORETURN panic(const char *message); #ifdef WIN32 /* From timer.c */ ! extern void init_timer(void); ! extern void kill_timer(void); #endif /* WIN32 */ /* From bsd.c */ ! extern FILE *connlog_fp; ! extern FILE *checklog_fp; ! extern FILE *wizlog_fp; ! extern FILE *tracelog_fp; ! extern FILE *cmdlog_fp; ! extern int restarting; #ifdef SUN_OS ! extern int f_close(FILE * file); #define fclose(f) f_close(f); #endif ! extern int hidden(dbref player); ! void dump_reboot_db(void); /* The #defs for our notify_anything hacks.. Errr. Functions */ #define NA_NORELAY 0x0001 *************** *** 89,110 **** #define NA_MUST_PUPPET 0x0100 /* Ok to puppet even in same room */ ! typedef dbref (*na_lookup) (dbref, void *); ! extern void notify_anything(dbref speaker, na_lookup func, ! void *fdata, ! char *(*nsfunc) (dbref, ! na_lookup func, ! void *, int), int flags, ! const char *message); ! extern dbref na_one(dbref current, void *data); ! extern dbref na_next(dbref current, void *data); ! extern dbref na_loc(dbref current, void *data); ! extern dbref na_nextbut(dbref current, void *data); ! extern dbref na_except(dbref current, void *data); ! extern dbref na_except2(dbref current, void *data); ! extern dbref na_exceptN(dbref current, void *data); #ifdef CHAT_SYSTEM ! extern dbref na_channel(dbref current, void *data); #endif #define notify(p,m) notify_anything(orator, na_one, &(p), NULL, 0, m) --- 87,108 ---- #define NA_MUST_PUPPET 0x0100 /* Ok to puppet even in same room */ ! typedef dbref (*na_lookup) (dbref, void *); ! extern void notify_anything(dbref speaker, na_lookup func, ! void *fdata, ! char *(*nsfunc) (dbref, ! na_lookup func, ! void *, int), int flags, ! const char *message); ! extern dbref na_one(dbref current, void *data); ! extern dbref na_next(dbref current, void *data); ! extern dbref na_loc(dbref current, void *data); ! extern dbref na_nextbut(dbref current, void *data); ! extern dbref na_except(dbref current, void *data); ! extern dbref na_except2(dbref current, void *data); ! extern dbref na_exceptN(dbref current, void *data); #ifdef CHAT_SYSTEM ! extern dbref na_channel(dbref current, void *data); #endif #define notify(p,m) notify_anything(orator, na_one, &(p), NULL, 0, m) *************** *** 112,118 **** #define notify_by(t,p,m) notify_anything(t, na_one, &(p), NULL, 0, m) #define notify_noecho(p,m) notify_anything(orator, na_one, &(p), NULL, NA_NORELAY | NA_PUPPET, m) #define quiet_notify(p,m) if (!IsQuiet(p)) notify(p,m) ! extern void notify_format(dbref player, const char *fmt, ...) __attribute__ ((__format__(__printf__, 2, 3))); /* From compress.c */ --- 110,116 ---- #define notify_by(t,p,m) notify_anything(t, na_one, &(p), NULL, 0, m) #define notify_noecho(p,m) notify_anything(orator, na_one, &(p), NULL, NA_NORELAY | NA_PUPPET, m) #define quiet_notify(p,m) if (!IsQuiet(p)) notify(p,m) ! extern void notify_format(dbref player, const char *fmt, ...) __attribute__ ((__format__(__printf__, 2, 3))); /* From compress.c */ *************** *** 121,131 **** */ /* #define COMP_STATS /* */ #if (COMPRESSION_TYPE != 0) ! extern unsigned char *compress(char const *s) __attribute_malloc__; extern char *uncompress(unsigned char const *s); extern char *safe_uncompress(unsigned char const *s) __attribute_malloc__; #else ! extern char ucbuff[]; #define init_compress(f) 0 #define compress(s) ((unsigned char *)strdup(s)) #define uncompress(s) (strcpy(ucbuff, (char *) s)) --- 119,131 ---- */ /* #define COMP_STATS /* */ #if (COMPRESSION_TYPE != 0) ! extern unsigned char * ! compress(char const *s) ! __attribute_malloc__; extern char *uncompress(unsigned char const *s); extern char *safe_uncompress(unsigned char const *s) __attribute_malloc__; #else ! extern char ucbuff[]; #define init_compress(f) 0 #define compress(s) ((unsigned char *)strdup(s)) #define uncompress(s) (strcpy(ucbuff, (char *) s)) *************** *** 133,285 **** #endif /* From cque.c */ ! extern char *wenv[10], renv[NUMQ][BUFFER_LEN]; ! extern char *wnxt[10], *rnxt[NUMQ]; ! extern void do_second(void); ! extern int do_top(int ncom); ! extern void do_halt(dbref owner, const char *ncom, dbref victim); ! extern void parse_que(dbref player, const char *command, dbref cause); ! extern int queue_attribute_base ! (dbref executor, const char *atrname, dbref enactor, int noparent); #define queue_attribute(a,b,c) queue_attribute_base(a,b,c,0) #define queue_attribute_noparent(a,b,c) queue_attribute_base(a,b,c,1) ! extern void dequeue_semaphores(dbref thing, char const *aname, int count, ! int all, int drain); /* From create.c */ ! extern dbref do_dig(dbref player, const char *name, char **argv, int tport); ! extern dbref do_create(dbref player, char *name, int cost); ! extern dbref do_real_open(dbref player, const char *direction, ! const char *linkto, dbref pseudo); ! extern void do_open(dbref player, const char *direction, char **links); ! extern void do_link(dbref player, const char *name, const char *room_name, ! int preserve); ! extern void do_unlink(dbref player, const char *name); ! extern dbref do_clone(dbref player, char *name, char *newname, ! int preserve); /* From game.c */ ! extern void report(void); ! extern int Hearer(dbref thing); ! extern int Commer(dbref thing); ! extern int Listener(dbref thing); ! extern dbref orator; ! int parse_chat(dbref player, char *command); ! extern void fork_and_dump(int forking); /* From look.c */ ! extern void look_room(dbref player, dbref loc, int flag); ! extern void do_look_around(dbref player); ! extern void do_look_at(dbref player, const char *name, int key); /* From move.c */ ! extern void enter_room(dbref player, dbref loc, int nomovemsgs); ! extern int can_move(dbref player, const char *direction); ! extern void do_move(dbref player, const char *direction, int type); ! extern void moveto(dbref what, dbref where); ! extern void safe_tel(dbref player, dbref dest, int nomovemsgs); ! extern dbref global_exit(dbref player, const char *direction); ! extern dbref remote_exit(dbref loc, const char *direction); ! extern void move_wrapper(dbref player, const char *command); ! extern void do_follow(dbref player, const char *arg); ! extern void do_unfollow(dbref player, const char *arg); ! extern void do_desert(dbref player, const char *arg); ! extern void do_dismiss(dbref player, const char *arg); ! extern void clear_followers(dbref leader, int noisy); ! extern void clear_following(dbref follower, int noisy); /* From mycrypt.c */ ! extern char *mush_crypt(const char *key); /* From player.c */ ! extern int password_check(dbref player, const char *password); ! extern dbref lookup_player(const char *name); /* from player.c */ ! extern dbref create_player(const char *name, const char *password, ! const char *host, const char *ip); ! extern dbref connect_player(const char *name, const char *password, ! const char *host, const char *ip); ! extern void check_last(dbref player, const char *host, const char *ip); ! extern void check_lastfailed(dbref player, const char *host); /* From parse.c */ ! extern int is_number(const char *str); ! extern int is_strict_number(const char *str); ! extern int is_strict_integer(const char *str); /* From plyrlist.c */ ! void clear_players(void); ! void add_player(dbref player, const char *alias); ! void delete_player(dbref player, const char *alias); /* From predicat.c */ ! extern char *WIN32_CDECL tprintf(const char *fmt, ...) __attribute__ ((__format__(__printf__, 1, 2))); ! extern int could_doit(dbref player, dbref thing); ! extern void did_it(dbref player, dbref thing, const char *what, ! const char *def, const char *owhat, const char *odef, ! const char *awhat, dbref loc); ! extern void real_did_it(dbref player, dbref thing, const char *what, ! const char *def, const char *owhat, ! const char *odef, const char *awhat, dbref loc, ! char *myenv[10]); ! extern int can_see(dbref player, dbref thing, int can_see_loc); ! extern int controls(dbref who, dbref what); ! extern int can_pay_fees(dbref who, int pennies); ! extern void giveto(dbref who, dbref pennies); ! extern int payfor(dbref who, int cost); ! extern int nearby(dbref obj1, dbref obj2); #ifdef QUOTA ! extern int get_current_quota(dbref who); ! extern void change_quota(dbref who, int payment); #endif ! extern int ok_name(const char *name); ! extern int ok_command_name(const char *name); ! extern int ok_player_name(const char *name); ! extern int ok_password(const char *password); ! extern dbref parse_match_possessive(dbref player, const char *str); ! extern void page_return(dbref player, dbref target, const char *type, ! const char *message, const char *def); ! extern char *grep_util(dbref player, dbref thing, char *pattern, ! char *lookfor, int len, int insensitive); ! extern dbref where_is(dbref thing); ! extern int charge_action(dbref player, dbref thing, const char *awhat); ! dbref first_visible(dbref player, dbref thing); /* From set.c */ ! extern void chown_object(dbref player, dbref thing, dbref newowner, ! int preserve); /* From speech.c */ ! extern char *ns_esnotify(dbref speaker, na_lookup func, void *fdata, ! int para); ! extern void notify_except(dbref first, dbref exception, const char *msg); ! extern void notify_except2 ! (dbref first, dbref exc1, dbref exc2, const char *msg); /* Return thing/PREFIX + msg */ ! extern void make_prefixstr(dbref thing, const char *msg, char *tbuf1); ! extern int filter_found(dbref thing, const char *msg, int flag); /* From strutil.c */ ! extern char *split_token(char **sp, char sep); ! extern char *chopstr(const char *str, size_t lim); ! extern int string_prefix(const char *RESTRICT string, ! const char *RESTRICT prefix); ! extern const char *string_match(const char *src, const char *sub); ! extern char *strupper(const char *s); ! extern char *strlower(const char *s); ! extern char *upcasestr(char *s); ! extern char *skip_space(const char *s); ! extern char *seek_char(const char *s, char c); ! extern int u_strlen(const unsigned char *s); ! extern unsigned char *u_strcpy ! (unsigned char *target, const unsigned char *source); #define u_strdup(x) (unsigned char *)strdup((char *) x) #ifndef HAS_STRDUP ! char *strdup(const char *s) __attribute_malloc__; #endif char *mush_strdup(const char *s, const char *check) __attribute_malloc__; #ifdef WIN32 --- 133,285 ---- #endif /* From cque.c */ ! extern char *wenv[10], renv[NUMQ][BUFFER_LEN]; ! extern char *wnxt[10], *rnxt[NUMQ]; ! extern void do_second(void); ! extern int do_top(int ncom); ! extern void do_halt(dbref owner, const char *ncom, dbref victim); ! extern void parse_que(dbref player, const char *command, dbref cause); ! extern int queue_attribute_base ! (dbref executor, const char *atrname, dbref enactor, int noparent); #define queue_attribute(a,b,c) queue_attribute_base(a,b,c,0) #define queue_attribute_noparent(a,b,c) queue_attribute_base(a,b,c,1) ! extern void dequeue_semaphores(dbref thing, char const *aname, int count, ! int all, int drain); /* From create.c */ ! extern dbref do_dig(dbref player, const char *name, char **argv, int tport); ! extern dbref do_create(dbref player, char *name, int cost); ! extern dbref do_real_open(dbref player, const char *direction, ! const char *linkto, dbref pseudo); ! extern void do_open(dbref player, const char *direction, char **links); ! extern void do_link(dbref player, const char *name, const char *room_name, ! int preserve); ! extern void do_unlink(dbref player, const char *name); ! extern dbref do_clone(dbref player, char *name, char *newname, int preserve); /* From game.c */ ! extern void report(void); ! extern int Hearer(dbref thing); ! extern int Commer(dbref thing); ! extern int Listener(dbref thing); ! extern dbref orator; ! int parse_chat(dbref player, char *command); ! extern void fork_and_dump(int forking); /* From look.c */ ! extern void look_room(dbref player, dbref loc, int flag); ! extern void do_look_around(dbref player); ! extern void do_look_at(dbref player, const char *name, int key); /* From move.c */ ! extern void enter_room(dbref player, dbref loc, int nomovemsgs); ! extern int can_move(dbref player, const char *direction); ! extern void do_move(dbref player, const char *direction, int type); ! extern void moveto(dbref what, dbref where); ! extern void safe_tel(dbref player, dbref dest, int nomovemsgs); ! extern dbref global_exit(dbref player, const char *direction); ! extern dbref remote_exit(dbref loc, const char *direction); ! extern void move_wrapper(dbref player, const char *command); ! extern void do_follow(dbref player, const char *arg); ! extern void do_unfollow(dbref player, const char *arg); ! extern void do_desert(dbref player, const char *arg); ! extern void do_dismiss(dbref player, const char *arg); ! extern void clear_followers(dbref leader, int noisy); ! extern void clear_following(dbref follower, int noisy); /* From mycrypt.c */ ! extern char *mush_crypt(const char *key); /* From player.c */ ! extern int password_check(dbref player, const char *password); ! extern dbref lookup_player(const char *name); /* from player.c */ ! extern dbref create_player(const char *name, const char *password, ! const char *host, const char *ip); ! extern dbref connect_player(const char *name, const char *password, ! const char *host, const char *ip); ! extern void check_last(dbref player, const char *host, const char *ip); ! extern void check_lastfailed(dbref player, const char *host); /* From parse.c */ ! extern int is_number(const char *str); ! extern int is_strict_number(const char *str); ! extern int is_strict_integer(const char *str); /* From plyrlist.c */ ! void clear_players(void); ! void add_player(dbref player, const char *alias); ! void delete_player(dbref player, const char *alias); /* From predicat.c */ ! extern char *WIN32_CDECL tprintf(const char *fmt, ...) __attribute__ ((__format__(__printf__, 1, 2))); ! extern int could_doit(dbref player, dbref thing); ! extern void did_it(dbref player, dbref thing, const char *what, ! const char *def, const char *owhat, const char *odef, ! const char *awhat, dbref loc); ! extern void real_did_it(dbref player, dbref thing, const char *what, ! const char *def, const char *owhat, ! const char *odef, const char *awhat, dbref loc, ! char *myenv[10]); ! extern int can_see(dbref player, dbref thing, int can_see_loc); ! extern int controls(dbref who, dbref what); ! extern int can_pay_fees(dbref who, int pennies); ! extern void giveto(dbref who, dbref pennies); ! extern int payfor(dbref who, int cost); ! extern int nearby(dbref obj1, dbref obj2); #ifdef QUOTA ! extern int get_current_quota(dbref who); ! extern void change_quota(dbref who, int payment); #endif ! extern int ok_name(const char *name); ! extern int ok_command_name(const char *name); ! extern int ok_player_name(const char *name); ! extern int ok_password(const char *password); ! extern dbref parse_match_possessive(dbref player, const char *str); ! extern void page_return(dbref player, dbref target, const char *type, ! const char *message, const char *def); ! extern char *grep_util(dbref player, dbref thing, char *pattern, ! char *lookfor, int len, int insensitive); ! extern dbref where_is(dbref thing); ! extern int charge_action(dbref player, dbref thing, const char *awhat); ! dbref first_visible(dbref player, dbref thing); /* From set.c */ ! extern void chown_object(dbref player, dbref thing, dbref newowner, ! int preserve); /* From speech.c */ ! extern char *ns_esnotify(dbref speaker, na_lookup func, void *fdata, int para); ! extern void notify_except(dbref first, dbref exception, const char *msg); ! extern void notify_except2 ! (dbref first, dbref exc1, dbref exc2, const char *msg); /* Return thing/PREFIX + msg */ ! extern void make_prefixstr(dbref thing, const char *msg, char *tbuf1); ! extern int filter_found(dbref thing, const char *msg, int flag); /* From strutil.c */ ! extern char *split_token(char **sp, char sep); ! extern char *chopstr(const char *str, size_t lim); ! extern int string_prefix(const char *RESTRICT string, ! const char *RESTRICT prefix); ! extern const char *string_match(const char *src, const char *sub); ! extern char *strupper(const char *s); ! extern char *strlower(const char *s); ! extern char *upcasestr(char *s); ! extern char *skip_space(const char *s); ! extern char *seek_char(const char *s, char c); ! extern int u_strlen(const unsigned char *s); ! extern unsigned char *u_strcpy ! (unsigned char *target, const unsigned char *source); #define u_strdup(x) (unsigned char *)strdup((char *) x) #ifndef HAS_STRDUP ! char * ! strdup(const char *s) ! __attribute_malloc__; #endif char *mush_strdup(const char *s, const char *check) __attribute_malloc__; #ifdef WIN32 *** 1_7_7.59/po/Makefile Wed, 13 Nov 2002 15:39:20 -0600 dunemush (pennmush/e/47_Makefile 1.10 660) --- 1_7_7.65(w)/po/Makefile Tue, 17 Dec 2002 22:39:16 -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 *** 1_7_7.59/hdrs/mushtype.h Sat, 07 Dec 2002 16:26:26 -0600 dunemush (pennmush/f/20_mushtype.h 1.2.1.1.1.5 660) --- 1_7_7.65(w)/hdrs/mushtype.h Tue, 17 Dec 2002 22:44:12 -0600 dunemush (pennmush/f/20_mushtype.h 1.2.1.1.1.6 660) *************** *** 3,8 **** --- 3,11 ---- #include "copyrite.h" #include "options.h" #include + #ifdef WIN32 + #include + #endif #ifdef HAS_OPENSSL #include #endif