This is patch01 to PennMUSH 1.8.0. After applying this patch, you will have version 1.8.0p1 To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.8.0-patch01 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: * Win32 portability fixes. NT_TCP builds work again, too. [EEH] * pennv180.hlp file added to MANIFEST so it's distributed now. Report by Nymeria@M*U*S*H. * More translation files included. [EEH] * Help fixes by [EEH] and Chili@M*U*S*H. * cflags() now shows the N (nonames), T (notitles), and C (nocemit) flags for channels. Suggested by Prospero@Metro. * If A can't receive from B (due to interactions), then A's puppet would send a null line when it heard B. Now the puppet doesn't send at all. Fix by Prospero@Metro. * Multiple simultaneous flag sets behaved oddly when one of the flags affected listener/hearer status. Report by Cheetah@M*U*S*H. * NUMVERSION corrected. Prereq: 1.8.0p0 *** 1_8_0.8/Patchlevel Tue, 21 Dec 2004 10:14:22 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.43 600) --- 1_8_0.17(w)/Patchlevel Sun, 16 Jan 2005 14:48:38 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.43.1.1 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.8.0p0 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.8.0p1 *** 1_8_0.8/game/txt/hlp/pennfunc.hlp Tue, 21 Dec 2004 10:16:27 -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.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.25 600) --- 1_8_0.17(w)/game/txt/hlp/pennfunc.hlp Sat, 01 Jan 2005 15:30:23 -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.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.26 600) *************** *** 98,105 **** & Channel functions Channel functions work with the channel system. ! cflags() channels() clock() cowner() ctitle() ! cwho() & Communication functions Communication functions are side-effect functions that send a message to an object or objects. --- 98,105 ---- & Channel functions Channel functions work with the channel system. ! cemit() cflags() channels() clock() cowner() ! ctitle() cwho() & Communication functions Communication functions are side-effect functions that send a message to an object or objects. *** 1_8_0.8/game/txt/hlp/penncmd.hlp Wed, 01 Dec 2004 10:07:15 -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.1.1.1.1.1.46 600) --- 1_8_0.17(w)/game/txt/hlp/penncmd.hlp Mon, 03 Jan 2005 18:47:09 -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.1.1.1.1.1.47 600) *************** *** 1047,1053 **** i.e. sit down;sit;sit on chair & @edit & @gedit ! @edit / = , @edit / = $, @edit / = ^, --- 1047,1053 ---- i.e. sit down;sit;sit on chair & @edit & @gedit ! @edit[/first] / = , @edit / = $, @edit / = ^, *************** *** 1062,1067 **** --- 1062,1070 ---- If the text contains commas, percent signs, or similar special characters, it usually must be enclosed in curly braces. + + If the /first switch is used, only the first occurrence of + is replaced. See also ATTRIBUTES, edit() & @efail *************** *** 3816,3822 **** give to Gives player the specified of pennies or . You can't give ! someone pennies if their new total would be greater than 10000 pennies. (No reason to get greedy). The /silent switch suppresses the default message indicating how many pennies were given. Wizards may "give" a negative number of pennies. --- 3819,3825 ---- give to Gives player the specified of pennies or . You can't give ! someone pennies if their new total would be greater than 100000 pennies. (No reason to get greedy). The /silent switch suppresses the default message indicating how many pennies were given. Wizards may "give" a negative number of pennies. *** 1_8_0.8/src/set.c Thu, 02 Sep 2004 11:04:56 -0500 dunemush (pennmush/b/38_set.c 1.26.1.5.1.1.2.1.1.1.1.1.1.11.1.1.1.1.1.1.1.1.1.1.1.1.1.41 660) --- 1_8_0.17(w)/src/set.c Sun, 16 Jan 2005 15:03:14 -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.1.1.1.1.1.1.1.1.1.42 660) *************** *** 613,620 **** notify(player, T("Only God can set himself!")); return 0; } - her = Hearer(thing); - listener = Listener(thing); /* check for attribute set first */ if ((p = strchr(flag, ':')) != NULL) { *p++ = '\0'; --- 613,618 ---- *************** *** 632,637 **** --- 630,637 ---- return 0; } do { + her = Hearer(thing); /* Must be in loop, can change! */ + listener = Listener(thing); /* Must be in loop, can change! */ f = split_token(&p, ' '); negate = 0; if (*f == NOT_TOKEN && *(f + 1)) { *** 1_8_0.8/src/extchat.c Sat, 16 Oct 2004 17:31:22 -0500 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.1.1.1.1.1.16.1.27.1.4 660) --- 1_8_0.17(w)/src/extchat.c Sun, 16 Jan 2005 15:03:14 -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.1.1.1.1.1.16.1.27.1.4.1.1 660) *************** *** 2099,2104 **** --- 2099,2110 ---- safe_chr('H', tbuf1, &bp); if (Channel_Open(c)) safe_chr('o', tbuf1, &bp); + if (Channel_NoTitles(c)) + safe_chr('T', tbuf1, &bp); + if (Channel_NoNames(c)) + safe_chr('N', tbuf1, &bp); + if (Channel_NoCemit(c)) + safe_chr('C', tbuf1, &bp); *bp = '\0'; return tbuf1; } *** 1_8_0.8/src/db.c Sat, 09 Oct 2004 15:56:31 -0500 dunemush (pennmush/c/25_db.c 1.26.1.1.1.1.1.6.1.1.1.28 660) --- 1_8_0.17(w)/src/db.c Sun, 16 Jan 2005 15:03:14 -0600 dunemush (pennmush/c/25_db.c 1.26.1.1.1.1.1.6.1.1.1.29 660) *************** *** 36,41 **** --- 36,45 ---- #include "extmail.h" #include "confmagic.h" + #ifdef WIN32 + #pragma warning( disable : 4761) /* disable warning re conversion */ + #endif + #ifdef WIN32SERVICES void shutdown_checkpoint(void); #endif *** 1_8_0.8/src/bsd.c Fri, 03 Dec 2004 17:50:18 -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.1.1.1.1.1.1.1.9.1.1.1.48.1.1.1.15 660) --- 1_8_0.17(w)/src/bsd.c Sun, 16 Jan 2005 15:03:14 -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.1.1.1.1.1.1.1.9.1.1.1.48.1.1.1.15.1.1 660) *************** *** 28,33 **** --- 28,34 ---- #define EWOULDBLOCK WSAEWOULDBLOCK #define MAXHOSTNAMELEN 32 #define LC_MESSAGES 6 + #pragma warning( disable : 4761) /* disable warning re conversion */ #else /* !WIN32 */ #ifdef I_SYS_FILE #include *** 1_8_0.8/src/boolexp.c Sat, 09 Oct 2004 15:44:24 -0500 dunemush (pennmush/c/39_boolexp.c 1.1.1.17.1.1.1.13.1.2.1.23 660) --- 1_8_0.17(w)/src/boolexp.c Sun, 16 Jan 2005 15:03:14 -0600 dunemush (pennmush/c/39_boolexp.c 1.1.1.17.1.1.1.13.1.2.1.24 660) *************** *** 103,108 **** --- 103,112 ---- #include "strtree.h" #include "confmagic.h" + #ifdef WIN32 + #pragma warning( disable : 4761) /* disable warning re conversion */ + #endif + /* #define DEBUG_BYTECODE */ /** Parse tree node types */ *** 1_8_0.8/hdrs/version.h Tue, 21 Dec 2004 10:14:22 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.45 660) --- 1_8_0.17(w)/hdrs/version.h Sun, 16 Jan 2005 15:03:15 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.45.1.2 660) *************** *** 1,4 **** #define VERSION "1.8.0" ! #define PATCHLEVEL "0" ! #define PATCHDATE "[01/01/2005]" ! #define NUMVERSION 001008008000 --- 1,4 ---- #define VERSION "1.8.0" ! #define PATCHLEVEL "1" ! #define PATCHDATE "[01/16/2005]" ! #define NUMVERSION 001008000001 *** 1_8_0.8/MANIFEST Tue, 21 Dec 2004 10:23:12 -0600 dunemush (pennmush/d/34_MANIFEST 1.21.1.2.1.7.1.3.1.31 600) --- 1_8_0.17(w)/MANIFEST Sat, 01 Jan 2005 15:26:04 -0600 dunemush (pennmush/d/34_MANIFEST 1.21.1.2.1.7.1.3.1.31.1.1 600) *************** *** 209,214 **** --- 209,215 ---- game/txt/hlp/pennv175.hlp game/txt/hlp/pennv176.hlp game/txt/hlp/pennv177.hlp + game/txt/hlp/pennv180.hlp game/txt/nws/index.nws game/txt/nws/pennmush.nws BUGS *** 1_8_0.8/game/txt/hlp/pennvOLD.hlp Tue, 21 Dec 2004 10:14:22 -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.4 660) --- 1_8_0.17(w)/game/txt/hlp/pennvOLD.hlp Sun, 16 Jan 2005 15:03:15 -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 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.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 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.8/src/notify.c Wed, 30 Jun 2004 15:00:16 -0500 dunemush (pennmush/g/35_notify.c 1.41.1.10 660) --- 1_8_0.17(w)/src/notify.c Sun, 16 Jan 2005 15:03:14 -0600 dunemush (pennmush/g/35_notify.c 1.41.1.10.1.1 660) *************** *** 855,860 **** --- 855,876 ---- (flags & NA_MUST_PUPPET)) && ((flags & NA_PUPPET) || !(flags & NA_NORELAY))) { dbref last = puppet; + + if (flags & NA_INTERACTION) { + int pass_interact = 1; + if ((flags & NA_INTER_SEE) && + !can_interact(speaker, target, INTERACT_SEE)) + pass_interact = 0; + if (pass_interact && (flags & NA_INTER_PRESENCE) && + !can_interact(speaker, target, INTERACT_PRESENCE)) + pass_interact = 0; + if (pass_interact && (flags & NA_INTER_HEAR) && + !can_interact(speaker, target, INTERACT_HEAR)) + pass_interact = 0; + if (!pass_interact) + continue; + } + puppet = target; if (!tbuf1) tbuf1 = (char *) mush_malloc(BUFFER_LEN, "string"); *** 1_8_0.8/src/myssl.c Sun, 11 Jul 2004 11:36:53 -0500 dunemush (pennmush/g/40_myssl.c 1.20.1.1 660) --- 1_8_0.17(w)/src/myssl.c Sun, 16 Jan 2005 15:03:14 -0600 dunemush (pennmush/g/40_myssl.c 1.20.1.1.1.1 660) *************** *** 24,30 **** #include #include #include - #define EINTR WSAEINTR #define EWOULDBLOCK WSAEWOULDBLOCK #define MAXHOSTNAMELEN 32 #define LC_MESSAGES 6 --- 24,29 ---- *** 1_8_0.8/hdrs/compile.h Sun, 05 Sep 2004 18:40:25 -0500 dunemush (pennmush/h/17_compile.h 1.5 660) --- 1_8_0.17(w)/hdrs/compile.h Sun, 16 Jan 2005 15:03:15 -0600 dunemush (pennmush/h/17_compile.h 1.6 660) *************** *** 66,72 **** --- 66,74 ---- */ #ifdef WIN32SERVICES + #ifndef NT_TCP #define exit(arg) Win32_Exit (arg) + #endif void NORETURN WIN32_CDECL Win32_Exit(int exit_code); #endif *** 1_8_0.8/CHANGES.180 Sat, 01 Jan 2005 10:05:56 -0600 dunemush (pennmush/h/21_CHANGES.18 1.4 600) --- 1_8_0.17(w)/CHANGES.180 Sun, 16 Jan 2005 14:48:32 -0600 dunemush (pennmush/h/21_CHANGES.18 1.11 600) *************** *** 12,17 **** --- 12,34 ---- ========================================================================== + Version 1.8.0 patchlevel 1 January 16, 2005 + + Fixes: + * Win32 portability fixes. NT_TCP builds work again, too. [EEH] + * pennv180.hlp file added to MANIFEST so it's distributed now. + Report by Nymeria@M*U*S*H. + * More translation files included. [EEH] + * Help fixes by [EEH] and Chili@M*U*S*H. + * cflags() now shows the N (nonames), T (notitles), and C (nocemit) + flags for channels. Suggested by Prospero@Metro. + * If A can't receive from B (due to interactions), then A's + puppet would send a null line when it heard B. Now the puppet + doesn't send at all. Fix by Prospero@Metro. + * Multiple simultaneous flag sets behaved oddly when one of the + flags affected listener/hearer status. Report by Cheetah@M*U*S*H. + * NUMVERSION corrected. + Version 1.8.0 patchlevel 0 January 1, 2005 Major Changes (since 1.7.6): *** 1_8_0.8/game/txt/hlp/pennv180.hlp Sun, 16 Jan 2005 15:03:15 -0600 dunemush () --- 1_8_0.17(w)/game/txt/hlp/pennv180.hlp Sun, 16 Jan 2005 15:03:15 -0600 dunemush (pennmush/h/28_pennv180.h 1.1 660) *************** *** 0 **** --- 1,101 ---- + & 1.8.0p1 + & changes + 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' + lists the [initials] of developers and porters that are used in the list + of changes. + + Information about changes in prior releases can be found under + help topics named for each release (e.g. 'help 1.7.2p30'). + A list of the patchlevels associated with each release can + be read in 'help patchlevels'. + + Version 1.8.0 patchlevel 1 January 16, 2005 + + Fixes: + * Win32 portability fixes. NT_TCP builds work again, too. [EEH] + * pennv180.hlp file added to MANIFEST so it's distributed now. + Report by Nymeria@M*U*S*H. + * More translation files included. [EEH] + * Help fixes by [EEH] and Chili@M*U*S*H. + * cflags() now shows the N (nonames), T (notitles), and C (nocemit) + flags for channels. Suggested by Prospero@Metro. + * If A can't receive from B (due to interactions), then A's + puppet would send a null line when it heard B. Now the puppet + doesn't send at all. Fix by Prospero@Metro. + * Multiple simultaneous flag sets behaved oddly when one of the + flags affected listener/hearer status. Report by Cheetah@M*U*S*H. + * NUMVERSION corrected. + + & 1.8.0p0 + Version 1.8.0 patchlevel 0 January 1, 2005 + + Major Changes (since 1.7.6): + * SQL support (MySQL server). + * SSL support. + * Attribute trees. + * Object ids uniquely identify an object across recycling dbrefs. + * Anonymous attributes via #lambda. + * Ancestor objects for each object type. + * Interactions (something like "realms" in mux2) control conditions + under which objects can see, hear, match, or establish the presence + of each other. See local.c. + * New flag/power internals, no more limits on number of flags, + flags can be added/removed at runtime. + * New game/chat db formats, more readable, extensible, and + better at detecting problems. + * New framework for performing lock failure activities in hardcode. + * Customized mush.cnf configuration parameters can be easily added. + * New chunk memory allocator does our own paging to disk, + so the resident memory footprint is much lower. + * Lock system rewrite. #true and #false atoms for locks. + * minimal.db is no more. If you start up the server and there's no + db to be found, it creates a new minimal database in memory. + * New commands: @command/alias, buy, @boot/silent, @assert, huh_command, + @decomp/prefix, @edit/first, ex/parent, empty, @nscemit, @function, + @nsemit, @nsoemit, @nslemit, @nsremit, @nszemit, ], @command/add, + @command/del, warn_on_missing, @switch/regexp, @*emit/spoof, + @tel/inside, @hook/ignore, @hook/override, @chan/recall, with/room, + IDLE, @sitelock/check, SCREENWIDTH, SCREENHEIGHT, ex/all + * New functions: zwho, zmwho, l/lv/n/nv/x/xvthings, malias, locks, llocks, + lset, lockflags, llockflags, lattrp, nattr/p, xattr/p, mailsend, + x/xv/n/nv/exits/players/things, nsemit/cemit/remit/lemit/oemit/zemit, + andlflags, andlpowers, orlflags, orlpower, andpowers, orpowers, + align, sent, recv, scan, valid, allof, firstof, tr, vcross, hostname, + ipaddr, cmds, reswitch*, digest, cowner, baseconv, randword, + trimtiny, trimpenn, terminfo, lports, strreplace, fraction, root, + children, accname, lpos, width, height + * New behaviors: @adisconnect, No_Pay, @name, @lock/speech, examine, + @cemit, give, @cost, SUSPECT, @startup, escape(), time(), merge(), + @set, move, @name, etimefmt(), insert(), PUPPET, help, rand, DEBUG, + TERSE, powers(), @config/set, @function/restrict, %~, @lock/leave, + tel(), @descformat, @idescformat, @aconnect + * @lock/interact can prevent other players from transmitting any + normal sound to you (that is, you won't hear them speak, pose, + emit, etc., like gagging them in a client). + * New flags: HEAVY, ORPHAN, MISTRUST + * New powers: Debit, Can_NSPemit + * New attribute flags: NO_NAME, NO_SPACE, DEBUG, NEARBY, PUBLIC, VEILED + * New channel flags: Notitles, Nonames, Nocemit + * You can log setting/resetting of flags/powers, as well as individual + commands or function calls. + * Rolling activity log dumped on panic dumps or visible with @uptime. + * A new test harness for developing regression test suites in perl + for PennMUSH is now included; few test suites are. If you can figure + out how to use this, write some tests for us! + * More and better telnet negotiation. + * Many internal improvements. Many old compile-time options removed + or replaced by run-time options. Source code commenting using + doxygen. Improved internationalization. + * New config directives: unconnected_idle_timeout, max_guests, + max_global_fns, read_remote_desc, default_home + Minor Changes (since last 1.7.7): + * The LFAIL/OLFAIL/ALFAIL messages are activated whenever a @lock/leave + is checked and failed, not just when a 'leave' command fails. + (So they work for failed attempts to leave rooms by exits/@tel). + Suggested by Zith@Lovarii. + Fixes (since last 1.7.7): + * Help for grab() now references graball(). Report by Sketch@M*U*S*H. + * Reference to 'ducats' in code replaced by appropriate plural + currency unit. Report by Kinumi@ShoujoAi.