This is patch03 to PennMUSH 1.8.0. After applying this patch, you will
have version 1.8.0p3
To apply this patch, save it to a file in your top-level MUSH directory,
and do the following:
patch -p1 < 1.8.0-patch03
make clean
make install
If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1',
not just 'patch -p1'.
Unix (or cygwin) users need not worry about failed hunks in src/switchinc.c,
hdrs/switches.h, hdrs/cmds.h, or hdrs/funs.h. These files are automatically
rebuilt on compile. On the off chance they appear not to be, simply
rm them and re-run make.
Then @shutdown and restart your MUSH.
- Alan/Javelin
In this patch:
Fixes:
* 1.8.0p2 fixed ""hi when chat_strip_quote was on, and broke it
when it was off. Fixed both ways now. Report by Cheetah@M*U*S*H.
* The @break fix in 1.8.0p2 stopped compound break actions
in {}'s from working correctly. Fixed now. Report by
Kevin@M*U*S*H. [TAP]
* @list/list() works right with flags/powers now.
* MS VS.NET project file now includes sql.c/h and bufferq.c/h.
Report by T'orA@M*U*S*H.
* playermem() and objectmem() now return #-1 NO MATCH consistently
when they can't match their argument to an object of an appropriate
type. Suggested by Cheetah@M*U*S*H.
Prereq: 1.8.0p2
*** 1_8_0.25/Patchlevel Wed, 02 Feb 2005 08:57:29 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.43.1.2 600)
--- 1_8_0.32(w)/Patchlevel Sat, 26 Feb 2005 10:12:28 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.43.1.2 600)
***************
*** 1,2 ****
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.8.0p2
--- 1,2 ----
Do not edit this file. It is maintained by the official PennMUSH patches.
! This is PennMUSH 1.8.0p3
*** 1_8_0.25/src/wiz.c Tue, 21 Dec 2004 10:20:52 -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.1.1.1.2.2.17.1.9.1.30.1.3.1.2 660)
--- 1_8_0.32(w)/src/wiz.c Sat, 26 Feb 2005 10:12:54 -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.1.1.1.2.2.17.1.9.1.30.1.3.1.2.1.1 660)
***************
*** 1949,1956 ****
else {
thing = noisy_match_result(executor, args[0], NOTYPE, MAT_OBJECTS);
}
!
! if (!GoodObject(thing) || !Can_Examine(executor, thing)) {
safe_str(T(e_perm), buff, bp);
return;
}
--- 1949,1959 ----
else {
thing = noisy_match_result(executor, args[0], NOTYPE, MAT_OBJECTS);
}
! if (!GoodObject(thing)) {
! safe_str(T(e_match), buff, bp);
! return;
! }
! if (!Can_Examine(executor, thing)) {
safe_str(T(e_perm), buff, bp);
return;
}
***************
*** 1978,1984 ****
thing = atoi(args[0] + 1);
else
thing = lookup_player(args[0]);
! if (!GoodObject(thing) || !Can_Examine(executor, thing)) {
safe_str(T(e_perm), buff, bp);
return;
}
--- 1981,1991 ----
thing = atoi(args[0] + 1);
else
thing = lookup_player(args[0]);
! if (!GoodObject(thing) || !IsPlayer(thing)) {
! safe_str(T(e_match), buff, bp);
! return;
! }
! if (!Can_Examine(executor, thing)) {
safe_str(T(e_perm), buff, bp);
return;
}
*** 1_8_0.25/src/game.c Thu, 03 Feb 2005 11:50:18 -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.1.1.1.1.1.1.1.12.1.3.1.7.1.2.2.1.1.32.1.2.2.1 660)
--- 1_8_0.32(w)/src/game.c Sat, 26 Feb 2005 10:12:53 -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.1.1.1.1.1.1.1.12.1.3.1.7.1.2.2.1.1.32.1.2.2.1.1.1 660)
***************
*** 2228,2233 ****
--- 2228,2237 ----
do_motd(player, MOTD_LIST, "");
else if (string_prefix("attribs", arg))
do_list_attribs(player, lc);
+ else if (string_prefix("flags", arg))
+ do_list_flags("FLAG", player, "", lc, T("Flags"));
+ else if (string_prefix("powers", arg))
+ do_list_flags("POWERS", player, "", lc, T("Powers"));
else
notify(player, T("I don't understand what you want to @list."));
}
*** 1_8_0.25/src/funmisc.c Sat, 10 Jul 2004 09:53:09 -0500 dunemush (pennmush/c/14_funmisc.c 1.30.1.1.1.41 660)
--- 1_8_0.32(w)/src/funmisc.c Sat, 26 Feb 2005 10:12:53 -0600 dunemush (pennmush/c/14_funmisc.c 1.30.1.1.1.41.1.2 660)
***************
*** 577,582 ****
--- 577,586 ----
safe_str(list_commands(), buff, bp);
else if (string_prefix("attribs", args[0]))
safe_str(list_attribs(), buff, bp);
+ else if (string_prefix("flags", args[0]))
+ safe_str(list_all_flags("FLAG", "", executor, 0x3), buff, bp);
+ else if (string_prefix("powers", args[0]))
+ safe_str(list_all_flags("POWER", "", executor, 0x3), buff, bp);
else
safe_str("#-1", buff, bp);
return;
***************
*** 588,594 ****
dbref thing;
char save_ccom[BUFFER_LEN];
char *cmdptr;
-
if (nargs == 1) {
thing = executor;
cmdptr = args[0];
--- 592,597 ----
***************
*** 615,641 ****
enum whichof_t { DO_FIRSTOF, DO_ALLOF };
static void
! do_whichof(char *args[], int nargs, enum whichof_t flag, char *buff, char **bp,
! dbref executor, dbref caller, dbref enactor, PE_Info * pe_info)
{
int j;
char tbuf[BUFFER_LEN], *tp;
char const *sp;
char sep = ' ';
int first = 1;
-
tbuf[0] = '\0';
-
if (flag == DO_ALLOF) {
/* The last arg is a delimiter. Parse it in place. */
char insep[BUFFER_LEN];
char *isep = insep;
const char *arglast = args[nargs - 1];
! process_expression(insep, &isep, &arglast, executor, caller, enactor,
! PE_DEFAULT, PT_DEFAULT, pe_info);
*isep = '\0';
strcpy(args[nargs - 1], insep);
-
if (!delim_check(buff, bp, nargs, args, nargs, &sep))
return;
nargs--;
--- 618,642 ----
enum whichof_t { DO_FIRSTOF, DO_ALLOF };
static void
! do_whichof(char *args[], int nargs, enum whichof_t flag,
! char *buff, char **bp, dbref executor,
! dbref caller, dbref enactor, PE_Info * pe_info)
{
int j;
char tbuf[BUFFER_LEN], *tp;
char const *sp;
char sep = ' ';
int first = 1;
tbuf[0] = '\0';
if (flag == DO_ALLOF) {
/* The last arg is a delimiter. Parse it in place. */
char insep[BUFFER_LEN];
char *isep = insep;
const char *arglast = args[nargs - 1];
! process_expression(insep, &isep, &arglast, executor,
! caller, enactor, PE_DEFAULT, PT_DEFAULT, pe_info);
*isep = '\0';
strcpy(args[nargs - 1], insep);
if (!delim_check(buff, bp, nargs, args, nargs, &sep))
return;
nargs--;
***************
*** 644,660 ****
for (j = 0; j < nargs; j++) {
tp = tbuf;
sp = args[j];
! process_expression(tbuf, &tp, &sp, executor, caller, enactor,
! PE_DEFAULT, PT_DEFAULT, pe_info);
*tp = '\0';
if (parse_boolean(tbuf)) {
if (!first) {
safe_chr(sep, buff, bp);
} else
first = 0;
-
safe_str(tbuf, buff, bp);
-
if (flag == DO_FIRSTOF)
return;
}
--- 645,659 ----
for (j = 0; j < nargs; j++) {
tp = tbuf;
sp = args[j];
! process_expression(tbuf, &tp, &sp, executor, caller,
! enactor, PE_DEFAULT, PT_DEFAULT, pe_info);
*tp = '\0';
if (parse_boolean(tbuf)) {
if (!first) {
safe_chr(sep, buff, bp);
} else
first = 0;
safe_str(tbuf, buff, bp);
if (flag == DO_FIRSTOF)
return;
}
***************
*** 666,679 ****
/* ARGSUSED */
FUNCTION(fun_firstof)
{
! do_whichof(args, nargs, DO_FIRSTOF, buff, bp, executor, caller, enactor,
! pe_info);
}
/* ARGSUSED */
FUNCTION(fun_allof)
{
! do_whichof(args, nargs, DO_ALLOF, buff, bp, executor, caller, enactor,
! pe_info);
}
--- 665,678 ----
/* ARGSUSED */
FUNCTION(fun_firstof)
{
! do_whichof(args, nargs, DO_FIRSTOF, buff, bp, executor,
! caller, enactor, pe_info);
}
/* ARGSUSED */
FUNCTION(fun_allof)
{
! do_whichof(args, nargs, DO_ALLOF, buff, bp, executor,
! caller, enactor, pe_info);
}
*** 1_8_0.25/src/command.c Wed, 02 Feb 2005 08:57:29 -0600 dunemush (pennmush/c/36_command.c 1.56.1.1.1.1.1.1.1.2.1.1.1.1.1.5.1.2.1.1.1.1.1.2.1.3.1.10.1.1.3.74.1.5 660)
--- 1_8_0.32(w)/src/command.c Sat, 26 Feb 2005 10:12:52 -0600 dunemush (pennmush/c/36_command.c 1.56.1.1.1.1.1.1.1.2.1.1.1.1.1.5.1.2.1.1.1.1.1.2.1.3.1.10.1.1.3.74.1.6 660)
***************
*** 898,904 ****
return NULL;
case SAY_TOKEN:
replacer = "SAY";
! p--; /* Since 'say' strips out the '"' */
break;
case POSE_TOKEN:
replacer = "POSE";
--- 898,905 ----
return NULL;
case SAY_TOKEN:
replacer = "SAY";
! if (CHAT_STRIP_QUOTE)
! p--; /* Since 'say' strips out the '"' */
break;
case POSE_TOKEN:
replacer = "POSE";
*** 1_8_0.25/src/cmds.c Sat, 09 Oct 2004 15:42:59 -0500 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.20.1.3.1.7.1.2.1.20.1.2 660)
--- 1_8_0.32(w)/src/cmds.c Sat, 26 Feb 2005 10:12:52 -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.20.1.3.1.7.1.2.1.20.1.2.1.1 660)
***************
*** 95,110 ****
COMMAND (cmd_break) {
if (parse_boolean(arg_left)) {
global_eval_context.break_called = 1;
! if (arg_right && *arg_right)
! strcpy(global_eval_context.break_replace, arg_right);
}
}
COMMAND (cmd_assert) {
if (!parse_boolean(arg_left)) {
global_eval_context.break_called = 1;
! if (arg_right && *arg_right)
! strcpy(global_eval_context.break_replace, arg_right);
}
}
--- 95,122 ----
COMMAND (cmd_break) {
if (parse_boolean(arg_left)) {
global_eval_context.break_called = 1;
! if (arg_right && *arg_right) {
! char const *sp = arg_right;
! char *bp = global_eval_context.break_replace;
! process_expression(global_eval_context.break_replace, &bp, &sp,
! player, player, cause,
! PE_COMMAND_BRACES, PT_DEFAULT, NULL);
! *bp++ = '\0';
! }
}
}
COMMAND (cmd_assert) {
if (!parse_boolean(arg_left)) {
global_eval_context.break_called = 1;
! if (arg_right && *arg_right) {
! char const *sp = arg_right;
! char *bp = global_eval_context.break_replace;
! process_expression(global_eval_context.break_replace, &bp, &sp,
! player, player, cause,
! PE_COMMAND_BRACES, PT_DEFAULT, NULL);
! *bp++ = '\0';
! }
}
}
*** 1_8_0.25/hdrs/version.h Wed, 02 Feb 2005 08:57:29 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.45.1.3 660)
--- 1_8_0.32(w)/hdrs/version.h Sat, 26 Feb 2005 10:12:55 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.45.1.3 660)
***************
*** 1,4 ****
#define VERSION "1.8.0"
! #define PATCHLEVEL "2"
! #define PATCHDATE "[02/02/2005]"
! #define NUMVERSION 001008000002
--- 1,4 ----
#define VERSION "1.8.0"
! #define PATCHLEVEL "3"
! #define PATCHDATE "[02/26/2005]"
! #define NUMVERSION 001008000003
*** 1_8_0.25/hdrs/parse.h Thu, 02 Sep 2004 11:04:56 -0500 dunemush (pennmush/c/51_parse.h 1.10.1.15 660)
--- 1_8_0.32(w)/hdrs/parse.h Sat, 26 Feb 2005 10:12:54 -0600 dunemush (pennmush/c/51_parse.h 1.10.1.16 660)
***************
*** 188,193 ****
--- 188,197 ----
*
* PE_STRIP_BRACES strips off top-level braces.
*
+ * PE_COMMAND_BRACES strips off only completely enclosing braces,
+ * suitable for trimming command lists given to noparse commands like
+ * @switch or @break.
+ *
* PE_EVALUATE allows %-substitutions, []-evaluation, function evaluation,
* and \-stripping.
*
*** 1_8_0.25/win32/msvc.net/pennmush.vcproj Sun, 08 Aug 2004 16:10:12 -0500 dunemush (pennmush/g/18_pennmush.v 1.8 600)
--- 1_8_0.32(w)/win32/msvc.net/pennmush.vcproj Wed, 23 Feb 2005 10:10:36 -0600 dunemush (pennmush/g/18_pennmush.v 1.9 600)
***************
*** 139,144 ****
--- 139,150 ----
RelativePath=".\src\bsd.c">
+
+
+
+
+
+
+
+
*** 1_8_0.25/game/txt/hlp/pennvOLD.hlp Mon, 31 Jan 2005 14:14:40 -0600 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.2.1.5.1.1 660)
--- 1_8_0.32(w)/game/txt/hlp/pennvOLD.hlp Sat, 26 Feb 2005 10:12:58 -0600 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.2.1.5.1.1.1.1 660)
***************
*** 4417,4423 ****
For information on a specific patchlevel of one of the versions listed,
type 'help p'. For example, 'help 1.7.2p3'
! 1.8.0: 0, 1, 2
1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40
--- 4417,4423 ----
For information on a specific patchlevel of one of the versions listed,
type 'help p'. For example, 'help 1.7.2p3'
! 1.8.0: 0, 1, 2, 3
1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40
*** 1_8_0.25/game/txt/hlp/pennv180.hlp Thu, 03 Feb 2005 11:50:18 -0600 dunemush (pennmush/h/28_pennv180.h 1.1.1.2.1.1.1.2 660)
--- 1_8_0.32(w)/game/txt/hlp/pennv180.hlp Sat, 26 Feb 2005 10:12:58 -0600 dunemush (pennmush/h/28_pennv180.h 1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.1 660)
***************
*** 1,4 ****
! & 1.8.0p2
& changes
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
--- 1,4 ----
! & 1.8.0p3
& changes
This is a list of changes in this patchlevel which are probably of
interest to players. More information about new commands and functions
***************
*** 11,16 ****
--- 11,33 ----
A list of the patchlevels associated with each release can
be read in 'help patchlevels'.
+ Version 1.8.0 patchlevel 3 February 26, 2005
+
+ Fixes:
+ * 1.8.0p2 fixed ""hi when chat_strip_quote was on, and broke it
+ when it was off. Fixed both ways now. Report by Cheetah@M*U*S*H.
+ * The @break fix in 1.8.0p2 stopped compound break actions
+ in {}'s from working correctly. Fixed now. Report by
+ Kevin@M*U*S*H. [TAP]
+ * @list/list() works right with flags/powers now.
+ * MS VS.NET project file now includes sql.c/h and bufferq.c/h.
+ Report by T'orA@M*U*S*H.
+ * playermem() and objectmem() now return #-1 NO MATCH consistently
+ when they can't match their argument to an object of an appropriate
+ type. Suggested by Cheetah@M*U*S*H.
+
+
+ & 1.8.0p2
Version 1.8.0 patchlevel 2 February 2, 2005
Fixes:
*** 1_8_0.25/CHANGES.180 Thu, 03 Feb 2005 11:50:18 -0600 dunemush (pennmush/h/21_CHANGES.18 1.16 600)
--- 1_8_0.32(w)/CHANGES.180 Sat, 26 Feb 2005 10:12:44 -0600 dunemush (pennmush/h/21_CHANGES.18 1.21 600)
***************
*** 12,17 ****
--- 12,33 ----
==========================================================================
+ Version 1.8.0 patchlevel 3 February 26, 2005
+
+ Fixes:
+ * 1.8.0p2 fixed ""hi when chat_strip_quote was on, and broke it
+ when it was off. Fixed both ways now. Report by Cheetah@M*U*S*H.
+ * The @break fix in 1.8.0p2 stopped compound break actions
+ in {}'s from working correctly. Fixed now. Report by
+ Kevin@M*U*S*H. [TAP]
+ * @list/list() works right with flags/powers now.
+ * MS VS.NET project file now includes sql.c/h and bufferq.c/h.
+ Report by T'orA@M*U*S*H.
+ * playermem() and objectmem() now return #-1 NO MATCH consistently
+ when they can't match their argument to an object of an appropriate
+ type. Suggested by Cheetah@M*U*S*H.
+
+
Version 1.8.0 patchlevel 2 February 2, 2005
Fixes: