This is patch06 to PennMUSH 1.7.6. After applying this patch, you will have version 1.7.6p6 To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.7.6-patch06 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: * nearby() always works for see_all players. Reported by Sparta. * findable() now requires that executor control either the object or the victim or be see_all. Reported by Sparta. Fixes: * POWER^ and CHANNEL^ locks tested the wrong object. [SW] * @grep, @wipe, and @edit now report when no attributes are matched. Suggested by Procyon@M3 * Changes to telnet negotiation strings to match those in PennMUSH 1.7.7, which seems to fix some problems with display of connect.txt in some clients. Report by Howie@NewFrontier. Patch by Time@M*U*S*H. * @mail/silent wasn't unless you used /send too. Report by Moe@Chicago. * Wizards could set attributes on garbage objects (which were useless, but may have leaked memory needlessly). Reported by Taz@M*U*S*H. * @chan/hide didn't check for hide permissions properly in some cases. Reported by Tanaku@M*U*S*H. * Better explanation of when regexp matching is case sensitive vs. insensitive. Suggested by Jake@BrazilMUX, Brazil@BrazilMUX, and Vadiv@M*U*S*H. Prereq: 1.7.6p5 *** 1_7_6.101/Patchlevel Tue, 07 Jan 2003 11:03:36 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1.1.5 600) --- 1_7_6.111(w)/Patchlevel Thu, 23 Jan 2003 10:19:41 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.1.1.6 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.6p5 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.7.6p6 *** 1_7_6.101/CHANGES Tue, 07 Jan 2003 11:03:36 -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.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 600) --- 1_7_6.111(w)/CHANGES Thu, 23 Jan 2003 10:19:34 -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.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 600) *************** *** 18,23 **** --- 18,48 ---- ========================================================================== + Version 1.7.6 patchlevel 6 January 23, 2003 + + Minor changes: + * nearby() always works for see_all players. Reported by Sparta. + * findable() now requires that executor control either the object + or the victim or be see_all. Reported by Sparta. + Fixes: + * POWER^ and CHANNEL^ locks tested the wrong object. [SW] + * @grep, @wipe, and @edit now report when no attributes are + matched. Suggested by Procyon@M3 + * Changes to telnet negotiation strings to match those in + PennMUSH 1.7.7, which seems to fix some problems with display + of connect.txt in some clients. Report by Howie@NewFrontier. + Patch by Time@M*U*S*H. + * @mail/silent wasn't unless you used /send too. Report by + Moe@Chicago. + * Wizards could set attributes on garbage objects (which were useless, + but may have leaked memory needlessly). Reported by Taz@M*U*S*H. + * @chan/hide didn't check for hide permissions properly in some + cases. Reported by Tanaku@M*U*S*H. + * Better explanation of when regexp matching is case sensitive vs. + insensitive. Suggested by Jake@BrazilMUX, Brazil@BrazilMUX, and + Vadiv@M*U*S*H. + + Version 1.7.6 patchlevel 5 January 7, 2003 Fixes: *************** *** 121,127 **** * Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak. * @search type=something would report an error AND match the entire database when something wasn't object, player, exit or room. [SW] ! * Cosmetic bug in @malias/list fixed. Report by Philip Mak. * The info_slave now properly obeys the use_dns setting in mush.cnf. This requires a full shutdown to put into effect. Report by BlaZe@M*U*S*H. [SW] --- 146,152 ---- * Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak. * @search type=something would report an error AND match the entire database when something wasn't object, player, exit or room. [SW] ! * Cosmetic bug in @malias/list fixed. Report by Tanaku@M*U*S*H. * The info_slave now properly obeys the use_dns setting in mush.cnf. This requires a full shutdown to put into effect. Report by BlaZe@M*U*S*H. [SW] *** 1_7_6.101/game/txt/hlp/pennvers.hlp Tue, 07 Jan 2003 11:03:36 -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.1.2.1.1.1.4.1.2.1.1.1.1.1.1.1.2.1.1.1.1 600) --- 1_7_6.111(w)/game/txt/hlp/pennvers.hlp Thu, 23 Jan 2003 10:20:30 -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.1.2.1.1.1.4.1.2.1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.1 600) *************** *** 1,5 **** & changes ! & 1.7.6p5 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.6p6 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,42 ---- A list of the patchlevels associated with each release can be read in 'help patchlevels'. + Version 1.7.6 patchlevel 6 January 23, 2003 + + Minor changes: + * nearby() always works for see_all players. Reported by Sparta. + * findable() now requires that executor control either the object + or the victim or be see_all. Reported by Sparta. + Fixes: + * POWER^ and CHANNEL^ locks tested the wrong object. [SW] + * @grep, @wipe, and @edit now report when no attributes are + matched. Suggested by Procyon@M3 + * Changes to telnet negotiation strings to match those in + PennMUSH 1.7.7, which seems to fix some problems with display + of connect.txt in some clients. Report by Howie@NewFrontier. + Patch by Time@M*U*S*H. + * @mail/silent wasn't unless you used /send too. Report by + Moe@Chicago. + * Wizards could set attributes on garbage objects (which were useless, + but may have leaked memory needlessly). Reported by Taz@M*U*S*H. + * @chan/hide didn't check for hide permissions properly in some + cases. Reported by Tanaku@M*U*S*H. + * Better explanation of when regexp matching is case sensitive vs. + insensitive. Suggested by Jake@BrazilMUX, Brazil@BrazilMUX, and + Vadiv@M*U*S*H. + + + & 1.7.6p5 Version 1.7.6 patchlevel 5 January 7, 2003 Fixes: *************** *** 118,124 **** * Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak. * @search type=something would report an error AND match the entire database when something wasn't object, player, exit or room. [SW] ! * Cosmetic bug in @malias/list fixed. Report by Philip Mak. * The info_slave now properly obeys the use_dns setting in mush.cnf. This requires a full shutdown to put into effect. Report by BlaZe@M*U*S*H. [SW] --- 144,150 ---- * Help fixes by Bird@M*U*S*H, Intrevis@M*U*S*H, Philip Mak. * @search type=something would report an error AND match the entire database when something wasn't object, player, exit or room. [SW] ! * Cosmetic bug in @malias/list fixed. Report by Tanaku@M*U*S*H. * The info_slave now properly obeys the use_dns setting in mush.cnf. This requires a full shutdown to put into effect. Report by BlaZe@M*U*S*H. [SW] *************** *** 5829,5835 **** 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, 3, 4, 5 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 --- 5855,5861 ---- 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, 3, 4, 5, 6 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.101/game/txt/hlp/penntop.hlp Mon, 30 Dec 2002 23:35:07 -0600 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 600) --- 1_7_6.111(w)/game/txt/hlp/penntop.hlp Thu, 23 Jan 2003 10:18:59 -0600 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 600) *************** *** 1060,1066 **** The '+' sign in the command has to be escaped out, or it is taken as a regexp token. Furthermore, the pattern-match has to be anchored with ^ and $, or something like 'try +setnum cookies=30 now' would ! also match. Regexps are case-sensitive; wildcard globbing is not. Regular expression syntax is explained in 'help regexp syntax'. & REGEXP SYNTAX --- 1060,1066 ---- The '+' sign in the command has to be escaped out, or it is taken as a regexp token. Furthermore, the pattern-match has to be anchored with ^ and $, or something like 'try +setnum cookies=30 now' would ! also match. Regular expression syntax is explained in 'help regexp syntax'. & REGEXP SYNTAX *************** *** 1077,1092 **** of escaping to make things work right. One way to escape an argument like %0 is: regeditall(%0,\\W,\\$0) or similar). A regular expression is a pattern that is matched against a subject string from left to right. Most characters stand for themselves in a pattern, and match the corresponding characters in the subject. ! (Cont'd in help regexp syntax2) ! & regexp syntax2 ! There are two different sets of meta-characters: those that ! are recognized anywhere in the pattern except within square ! brackets, and those that are recognized in square brackets. ! Outside square brackets, the meta-characters are as follows: \ general escape character with several uses ^ assert start of subject --- 1077,1098 ---- of escaping to make things work right. One way to escape an argument like %0 is: regeditall(%0,\\W,\\$0) or similar). + Regular expression matching in PennMUSH can be used on user-defined + command or listen patterns. In this usage, regular expressions + are matched case-insensitively unless the attribute has the CASE flag + set. Regular expressions can also be matched in MUSHcode using + regmatch(), regrab(), regedit, etc. function families, which usually + come in case-sensitive and case-insensitive versions. + (Cont'd in help regexp syntax2) + & regexp syntax2 A regular expression is a pattern that is matched against a subject string from left to right. Most characters stand for themselves in a pattern, and match the corresponding characters in the subject. ! There are two different sets of meta-characters: those that are ! recognized anywhere in the pattern except within square brackets, ! and those that are recognized in square brackets. Outside square ! brackets, the meta-characters are as follows: \ general escape character with several uses ^ assert start of subject *** 1_7_6.101/src/switchinc.c Tue, 07 Jan 2003 11:03:36 -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.5 660) --- 1_7_6.111(w)/src/switchinc.c Thu, 23 Jan 2003 10:21:42 -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.5.1.1 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.101/src/set.c Thu, 02 Jan 2003 23:54:02 -0600 dunemush (pennmush/b/38_set.c 1.26.1.5.1.1.2.1.1.1.1.1.1.11.1.1 660) --- 1_7_6.111(w)/src/set.c Thu, 23 Jan 2003 10:21:41 -0600 dunemush (pennmush/b/38_set.c 1.26.1.5.1.1.2.1.1.1.1.1.1.11.1.1.1.1 660) *************** *** 807,813 **** notify(player, T("Nothing to do.")); return; } ! (void) atr_iter_get(player, thing, q, gedit_helper, argv); } --- 807,814 ---- notify(player, T("Nothing to do.")); return; } ! if (!atr_iter_get(player, thing, q, gedit_helper, argv)) ! notify(player, T("No matching attributes.")); } *************** *** 985,993 **** notify(player, T("That object is protected.")); return; } ! (void) atr_iter_get(player, thing, pattern, wipe_helper, NULL); ! ! notify(player, T("Attributes wiped.")); } COMMAND (cmd_with) { --- 986,995 ---- notify(player, T("That object is protected.")); return; } ! if (!atr_iter_get(player, thing, pattern, wipe_helper, NULL)) ! notify(player, T("No matching attributes.")); ! else ! notify(player, T("Attributes wiped.")); } COMMAND (cmd_with) { *** 1_7_6.101/src/predicat.c Sat, 30 Nov 2002 15:49:22 -0600 dunemush (pennmush/b/44_predicat.c 1.1.1.34.1.1.1.3.1.4.2.9 660) --- 1_7_6.111(w)/src/predicat.c Thu, 23 Jan 2003 10:21:41 -0600 dunemush (pennmush/b/44_predicat.c 1.1.1.34.1.1.1.3.1.4.2.10 660) *************** *** 1049,1066 **** return found; } void ! do_grep(player, obj, lookfor, flag, insensitive) ! dbref player; ! char *obj; ! char *lookfor; ! int flag; ! int insensitive; ! ! ! /* this is an UNPARSED arg */ ! /* 0 for just list, 1 for hilites */ ! /* 0 for case-sensitive, 1 if not */ { struct gh_args gh; dbref thing; --- 1049,1059 ---- return found; } + /* lookfor is an unparsed arg. flag is 0 for list and 1 for hilite. + * insensitive is 0 for case-sensitive, 1 for case-insensitive + */ void ! do_grep(dbref player, char *obj, char *lookfor, int flag, int insensitive) { struct gh_args gh; dbref thing; *************** *** 1092,1098 **** gh.lookfor = lookfor; gh.len = len; gh.insensitive = insensitive; ! (void) atr_iter_get(player, thing, pattern, grep_helper, &gh); } else { tp = grep_util(player, thing, pattern, lookfor, len, insensitive); notify_format(player, T("Matches of '%s' on %s(#%d): %s"), lookfor, --- 1085,1092 ---- gh.lookfor = lookfor; gh.len = len; gh.insensitive = insensitive; ! if (!atr_iter_get(player, thing, pattern, grep_helper, &gh)) ! notify(player, T("No matching attributes.")); } else { tp = grep_util(player, thing, pattern, lookfor, len, insensitive); notify_format(player, T("Matches of '%s' on %s(#%d): %s"), lookfor, *** 1_7_6.101/src/fundb.c Mon, 23 Dec 2002 18:30:40 -0600 dunemush (pennmush/c/17_fundb.c 1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.7.1.3.1.3.1.3.1.2.1.2.1.3.2.1.2.1.2.1.1.1.1.4.1.1.1.1.1.1.1.1.1.1.1.3.1.1.2.2.2.1.1.1.1.1 660) --- 1_7_6.111(w)/src/fundb.c Thu, 23 Jan 2003 10:21:40 -0600 dunemush (pennmush/c/17_fundb.c 1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.7.1.3.1.3.1.3.1.2.1.2.1.3.2.1.2.1.2.1.1.1.1.4.1.1.1.1.1.1.1.1.1.1.1.3.1.1.2.2.2.1.1.1.1.1.1.1 660) *************** *** 827,832 **** --- 827,833 ---- dbref obj2 = match_thing(executor, args[1]); if (!controls(executor, obj1) && !controls(executor, obj2) + && !See_All(executor) && !nearby(executor, obj1) && !nearby(executor, obj2)) { safe_str(T("#-1 NO OBJECTS CONTROLLED"), buff, bp); return; *************** *** 1067,1072 **** --- 1068,1076 ---- safe_str(T("#-1 ARG1 NOT FOUND"), buff, bp); else if (!GoodObject(victim)) safe_str(T("#-1 ARG2 NOT FOUND"), buff, bp); + else if (!See_All(executor) && !controls(executor, obj) && + !controls(executor, victim)) + safe_str(T(e_perm), buff, bp); else safe_boolean(Can_Locate(obj, victim), buff, bp); } *** 1_7_6.101/src/extchat.c Sat, 30 Nov 2002 15:49:22 -0600 dunemush (pennmush/c/23_extchat.c 1.1.1.1.1.1.1.1.1.2.1.1.1.3.1.1.1.5.1.1.1.1.1.5.1.2.1.3.1.3.1.1.1.4.1.2.1.6.1.2.1.1.2.4.2.9.1.2.1.2.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.2.1.1.2.1.1.2 660) --- 1_7_6.111(w)/src/extchat.c Thu, 23 Jan 2003 10:21:40 -0600 dunemush (pennmush/c/23_extchat.c 1.1.1.1.1.1.1.1.1.2.1.1.1.3.1.1.1.5.1.1.1.1.1.5.1.2.1.3.1.3.1.1.1.4.1.2.1.6.1.2.1.1.2.4.2.9.1.2.1.2.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.2.1.1.2.1.1.2.1.1.1.1 660) *************** *** 1533,1549 **** case 1: /* Hide */ if (setting) { ! if (!Chan_Can_Hide(c, player) && !Wizard(player) && (!silent)) { ! notify_format(player, ! T("You are not permitted to hide on channel <%s>."), ! ChanName(c)); ! break; } - CUtype(u) |= CU_HIDE; - if (!silent) - notify_format(player, - T("You no longer appear on channel <%s>'s who list."), - ChanName(c)); } else { CUtype(u) &= ~CU_HIDE; if (!silent) --- 1533,1550 ---- case 1: /* Hide */ if (setting) { ! if (!Chan_Can_Hide(c, player) && !Wizard(player)) { ! if (!silent) ! notify_format(player, ! T("You are not permitted to hide on channel <%s>."), ! ChanName(c)); ! } else { ! CUtype(u) |= CU_HIDE; ! if (!silent) ! notify_format(player, ! T("You no longer appear on channel <%s>'s who list."), ! ChanName(c)); } } else { CUtype(u) &= ~CU_HIDE; if (!silent) *** 1_7_6.101/src/cmds.c Wed, 13 Nov 2002 17:26:14 -0600 dunemush (pennmush/c/37_cmds.c 1.33.1.1.1.2.1.2.2.3.1.1.1.2.1.1.1.3.1.8.1.1.2.2 660) --- 1_7_6.111(w)/src/cmds.c Thu, 23 Jan 2003 10:21:39 -0600 dunemush (pennmush/c/37_cmds.c 1.33.1.1.1.2.1.2.2.3.1.1.1.2.1.1.1.3.1.8.1.1.2.2.2.1 660) *************** *** 541,547 **** else if (SW_ISSET(sw, SWITCH_UNTAG)) do_mail_untag(player, arg_left); else if (SW_ISSET(sw, SWITCH_FWD) || SW_ISSET(sw, SWITCH_FORWARD) ! || SW_ISSET(sw, SWITCH_SEND)) { /* These commands are not allowed to gagged players */ if (Gagged(player)) { notify(player, T("You cannot do that while gagged.")); --- 541,547 ---- else if (SW_ISSET(sw, SWITCH_UNTAG)) do_mail_untag(player, arg_left); else if (SW_ISSET(sw, SWITCH_FWD) || SW_ISSET(sw, SWITCH_FORWARD) ! || SW_ISSET(sw, SWITCH_SEND) || silent || urgent || nosig) { /* These commands are not allowed to gagged players */ if (Gagged(player)) { notify(player, T("You cannot do that while gagged.")); *** 1_7_6.101/src/bsd.c Mon, 09 Dec 2002 17:08: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) --- 1_7_6.111(w)/src/bsd.c Thu, 23 Jan 2003 10:21:39 -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.1.1 660) *************** *** 261,269 **** #define SGA 3 /* Suppress go-ahead */ #define LINEMODE 34 /* IAC DO LINEMODE */ ! #define TELNET_QUERY "\xFF\xFD\x22\r\n" /* IAC SB LINEMODE MODE (EDIT|SOFT_TAB) IAC SE */ ! #define SET_LINEMODE "\xFF\xFA\x22\x01\x09\xFF\xF0\r\n" void test_telnet(DESC *d); #define DESC_ITER_CONN(d) \ --- 261,269 ---- #define SGA 3 /* Suppress go-ahead */ #define LINEMODE 34 /* IAC DO LINEMODE */ ! #define TELNET_QUERY "\xFF\xFD\x22" /* IAC SB LINEMODE MODE (EDIT|SOFT_TAB) IAC SE */ ! #define SET_LINEMODE "\xFF\xFA\x22\x01\x09\xFF\xF0" void test_telnet(DESC *d); #define DESC_ITER_CONN(d) \ *** 1_7_6.101/src/boolexp.c Sat, 30 Nov 2002 15:49:22 -0600 dunemush (pennmush/c/39_boolexp.c 1.1.1.17.1.1.1.13.1.2 660) --- 1_7_6.111(w)/src/boolexp.c Thu, 23 Jan 2003 10:21:39 -0600 dunemush (pennmush/c/39_boolexp.c 1.1.1.17.1.1.1.13.1.2.1.1 660) *************** *** 313,328 **** } else if (strcmp(b->data.atr_lock->name, "POWER") == 0) { if ((pwr = find_power(b->data.atr_lock->text)) == -1) return 0; ! if (HASPOWER_RESTRICTED && !Can_Examine(player, target)) { return 0; } ! return Powers(target) & pwr; #ifdef CHAT_SYSTEM } else if (strcmp(b->data.atr_lock->name, "CHANNEL") == 0) { boolexp_recursion++; find_channel(b->data.atr_lock->text, &chan, target); boolexp_recursion--; ! return chan && onchannel(target, chan); #endif } else if (strcmp(b->data.atr_lock->name, "TYPE") == 0) { switch (*b->data.atr_lock->text) { --- 313,328 ---- } else if (strcmp(b->data.atr_lock->name, "POWER") == 0) { if ((pwr = find_power(b->data.atr_lock->text)) == -1) return 0; ! if (HASPOWER_RESTRICTED && !Can_Examine(target, player)) { return 0; } ! return Powers(player) & pwr; #ifdef CHAT_SYSTEM } else if (strcmp(b->data.atr_lock->name, "CHANNEL") == 0) { boolexp_recursion++; find_channel(b->data.atr_lock->text, &chan, target); boolexp_recursion--; ! return chan && onchannel(player, chan); #endif } else if (strcmp(b->data.atr_lock->name, "TYPE") == 0) { switch (*b->data.atr_lock->text) { *** 1_7_6.101/src/attrib.c Sat, 09 Nov 2002 19:47:06 -0600 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 660) --- 1_7_6.111(w)/src/attrib.c Thu, 23 Jan 2003 10:21:39 -0600 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.1 660) *************** *** 737,742 **** --- 737,746 ---- s = NULL; #endif + if (IsGarbage(thing)) { + notify(player, T("Garbage is garbage.")); + return 0; + } if (!controls(player, thing)) return 0; *** 1_7_6.101/hdrs/version.h Tue, 07 Jan 2003 11:03:36 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.2.1.4 660) --- 1_7_6.111(w)/hdrs/version.h Thu, 23 Jan 2003 10:21:46 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.2.1.5 660) *************** *** 1,2 **** ! #define VERSION "PennMUSH version 1.7.6 patchlevel 5 [01/07/2003]" ! #define SHORTVN "PennMUSH 1.7.6p5" --- 1,2 ---- ! #define VERSION "PennMUSH version 1.7.6 patchlevel 6 [01/23/2003]" ! #define SHORTVN "PennMUSH 1.7.6p6"