This is patch08 to PennMUSH 1.8.0. After applying this patch, you will have version 1.8.0p8 To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.8.0-patch08 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: * /noflagcopy switch to @cpattr/@mvattr works now. Report by Kimiko Muffin. * SHS encryption now works on 64-bit architectures that define uint32_t. Report by Licenser@M*U*S*H. * MySQL detection by Configure was accidentally removed in 1.8.0p7/1.8.1p2. It's back. Report by Walker@M*U*S*H. Same applies to SO_KEEPIDLE and some other Configure units. Prereq: 1.8.0p7 *** 1_8_0.72/Patchlevel Mon, 05 Sep 2005 08:42:16 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.43.1.7 600) --- 1_8_0.80(w)/Patchlevel Thu, 15 Sep 2005 18:00:25 -0500 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.43.1.8 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.8.0p7 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.8.0p8 *** 1_8_0.72/config_h.SH Mon, 24 May 2004 14:14:15 -0500 dunemush (pennmush/b/17_config_h.S 1.17.1.2.1.1.1.11 660) --- 1_8_0.80(w)/config_h.SH Thu, 15 Sep 2005 18:12:51 -0500 dunemush (pennmush/b/17_config_h.S 1.17.1.2.1.1.1.14 660) *************** *** 729,734 **** --- 729,739 ---- */ #$d_toupper HAS_SAFE_TOUPPER /**/ + /* HAS_UINT32_T: + * If defined, this system has the uint32_t type. + */ + #$d_uint32_t HAS_UINT32_T /**/ + /* UPTIME_PATH: * This symbol gives the full path to the uptime(1) program if * it exists on the system. If not, this symbol is undefined. *************** *** 807,812 **** --- 812,823 ---- */ #$i_setjmp I_SETJMP /**/ + /* I_STDINT: + * This symbol, if defined, indicates that the program should include + * . + */ + #$i_stdint I_STDINT /**/ + /* USE_TIOCNOTTY: * This symbol, if defined indicate to the C program that the ioctl() * call with TIOCNOTTY should be used to void tty association. *** 1_8_0.72/src/command.c Thu, 23 Jun 2005 11:53:46 -0500 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.1.3.1.1.1.1.1.1 660) --- 1_8_0.80(w)/src/command.c Thu, 15 Sep 2005 18:13:29 -0500 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.1.3.1.1.1.1.1.1.1.1 660) *************** *** 93,99 **** {"@CONFIG", "SET LOWERCASE LIST GLOBALS DEFAULTS COSTS FLAGS FUNCTIONS COMMANDS ATTRIBS", cmd_config, CMD_T_ANY | CMD_T_EQSPLIT, 0, 0}, ! {"@CPATTR", "CONVERT", cmd_cpattr, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_RS_ARGS, 0, 0}, {"@CREATE", NULL, cmd_create, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0}, --- 93,100 ---- {"@CONFIG", "SET LOWERCASE LIST GLOBALS DEFAULTS COSTS FLAGS FUNCTIONS COMMANDS ATTRIBS", cmd_config, CMD_T_ANY | CMD_T_EQSPLIT, 0, 0}, ! {"@CPATTR", "CONVERT NOFLAGCOPY", cmd_cpattr, ! CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_RS_ARGS, 0, 0}, {"@CREATE", NULL, cmd_create, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED, 0, 0}, *************** *** 180,186 **** 0, 0}, {"@MOTD", "CONNECT LIST WIZARD DOWN FULL", cmd_motd, CMD_T_ANY | CMD_T_NOGAGGED, 0, 0}, ! {"@MVATTR", "CONVERT", cmd_mvattr, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_RS_ARGS, 0, 0}, {"@NAME", NULL, cmd_name, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED | CMD_T_NOGUEST, 0, 0}, --- 181,188 ---- 0, 0}, {"@MOTD", "CONNECT LIST WIZARD DOWN FULL", cmd_motd, CMD_T_ANY | CMD_T_NOGAGGED, 0, 0}, ! {"@MVATTR", "CONVERT NOFLAGCOPY", cmd_mvattr, ! CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_RS_ARGS, 0, 0}, {"@NAME", NULL, cmd_name, CMD_T_ANY | CMD_T_EQSPLIT | CMD_T_NOGAGGED | CMD_T_NOGUEST, 0, 0}, *** 1_8_0.72/hdrs/version.h Mon, 05 Sep 2005 08:42:16 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.45.1.8 660) --- 1_8_0.80(w)/hdrs/version.h Thu, 15 Sep 2005 18:13:29 -0500 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.45.1.9 660) *************** *** 1,4 **** #define VERSION "1.8.0" ! #define PATCHLEVEL "7" ! #define PATCHDATE "[08/29/2005]" ! #define NUMVERSION 1008000007 --- 1,4 ---- #define VERSION "1.8.0" ! #define PATCHLEVEL "8" ! #define PATCHDATE "[09/15/2005]" ! #define NUMVERSION 1008000008 *** 1_8_0.72/hdrs/shs.h Tue, 11 May 2004 10:52:49 -0500 dunemush (pennmush/c/48_shs.h 1.9 660) --- 1_8_0.80(w)/hdrs/shs.h Thu, 15 Sep 2005 18:13:29 -0500 dunemush (pennmush/c/48_shs.h 1.10 660) *************** *** 2,7 **** --- 2,10 ---- #define _SHS_H #include "config.h" + #ifdef I_STDINT + #include + #endif #include "confmagic.h" /* -------------- SHS.H --------------------------- */ *************** *** 15,22 **** --- 18,29 ---- typedef long LONG; #else typedef unsigned char BYTE; + #ifdef HAS_UINT32_T + typedef uint32_t LONG; + #else typedef unsigned long LONG; #endif + #endif #define SHS_BLOCKSIZE 64 *** 1_8_0.72/Configure Mon, 28 Jun 2004 09:33:37 -0500 dunemush (pennmush/d/32_Configure 1.21.1.4.1.1.1.1.1.1.1.7.1.14 710) --- 1_8_0.80(w)/Configure Thu, 15 Sep 2005 18:12:51 -0500 dunemush (pennmush/d/32_Configure 1.21.1.4.1.1.1.1.1.1.1.7.1.15.1.1.1.2 710) *************** *** 355,360 **** --- 355,361 ---- d_textdomain='' d_timelocal='' d_toupper='' + d_uint32_t='' d_uptime='' d_urandom='' d_uwait3='' *************** *** 382,387 **** --- 383,389 ---- i_nitcp='' i_setjmp='' i_stddef='' + i_stdint='' i_stdlib='' i_string='' strings='' *************** *** 5313,5377 **** fi $rm -f test_toupper* core - : uptime - echo " " - if $test -x $uptime ; then - val="$define" - else - val="$undef" - fi - set d_uptime; eval $setvar - - : see if /dev/urandom is present - echo " " - if $test -c /dev/urandom ; then - val="$define" - else - val="$undef" - fi - set d_urandom; eval $setvar - - : see if union wait is available - echo " " - set X $cppflags - shift - flags='' - also='' - for f in $*; do - case "$f" in - *NO_PROTO*) ;; - *) flags="$flags $f";; - esac - done - xxx="`./findhdr sys/wait.h`" - case "x$xxx" in - x) xxx=/dev/null - esac - $cat "$xxx" | $cppstdin $flags $cppminus >wait.out 2>/dev/null - if $contains 'union.*wait.*{' wait.out >/dev/null 2>&1 ; then - echo "Looks like your knows about 'union wait'..." >&4 - val="$define" - also='also ' - if $contains 'extern.*wait[ ]*([ ]*int' wait.out >/dev/null 2>&1 - then - echo "But wait() seems to expect an 'int' pointer (POSIX way)." >&4 - val="$undef" - also='' - elif $contains 'extern.*wait[ ]*([ ]*union' wait.out >/dev/null 2>&1 - then - echo "And indeed wait() expects an 'union wait' pointer (BSD way)." >&4 - else - echo "So we'll use that for wait()." >&4 - fi - else - echo "No trace of 'union wait' in ..." >&4 - val="$undef" - echo "Your wait() should be happy with a plain 'int' pointer." >&4 - fi - set d_uwait - eval $setvar - $rm -f wait.out - : get C preprocessor symbols handy echo " " $echo $n "Hmm... $c" --- 5315,5320 ---- *************** *** 5479,5484 **** --- 5422,5538 ---- fi $rm -f ccsym* + : see if this is a stdint system + val="$undef" + if $test "`./findhdr stdint.h`"; then + val="$define" + echo " found." >&4 + fi + echo " " + set i_stdint; eval $setvar + : see if we have uint32_t + echo "Let's try to figure out a really big double." >&4 + echo " " + $cat >d_uint32.c < + #$i_stdint I_STDINT + #ifdef I_STDINT + #include + #endif + + int main() + { + uint32_t a; + a = 2*2*2*2; + a *= a; /* 2^8 */ + a *= a; /* 2^16 */ + a *= a; /* 2^32 */ + a += 1; /* 2^32 + 1 */ + if (a == 1) + printf("ok\n"); + else + printf("not ok\n"); + } + EOCP + + if $cc $ccflags $ldflags d_uint32.c -o d_uint32 $libs >/dev/null 2>&1; then + val=`./d_uint32` + if test $val = "ok" ; then + val="$define" + set d_uint32_t; eval $setvar + echo "You have uint32_t." >&4 + else + val="$undef" + set d_uint32_t; eval $setvar + echo "You don't have uint32_t, hope you're a 32 bit machine." >&4 + fi + else + val="$undef" + set d_uint32_t; eval $setvar + echo "I can't tell if you have uint32_t, hope you're a 32 bit machine." >&4 + fi + + $rm -f d_uint32* + + : uptime + echo " " + if $test -x $uptime ; then + val="$define" + else + val="$undef" + fi + set d_uptime; eval $setvar + + : see if /dev/urandom is present + echo " " + if $test -c /dev/urandom ; then + val="$define" + else + val="$undef" + fi + set d_urandom; eval $setvar + + : see if union wait is available + echo " " + set X $cppflags + shift + flags='' + also='' + for f in $*; do + case "$f" in + *NO_PROTO*) ;; + *) flags="$flags $f";; + esac + done + xxx="`./findhdr sys/wait.h`" + case "x$xxx" in + x) xxx=/dev/null + esac + $cat "$xxx" | $cppstdin $flags $cppminus >wait.out 2>/dev/null + if $contains 'union.*wait.*{' wait.out >/dev/null 2>&1 ; then + echo "Looks like your knows about 'union wait'..." >&4 + val="$define" + also='also ' + if $contains 'extern.*wait[ ]*([ ]*int' wait.out >/dev/null 2>&1 + then + echo "But wait() seems to expect an 'int' pointer (POSIX way)." >&4 + val="$undef" + also='' + elif $contains 'extern.*wait[ ]*([ ]*union' wait.out >/dev/null 2>&1 + then + echo "And indeed wait() expects an 'union wait' pointer (BSD way)." >&4 + else + echo "So we'll use that for wait()." >&4 + fi + else + echo "No trace of 'union wait' in ..." >&4 + val="$undef" + echo "Your wait() should be happy with a plain 'int' pointer." >&4 + fi + set d_uwait + eval $setvar + $rm -f wait.out + : see if this is a termio system val="$undef" val2="$undef" *************** *** 6988,6993 **** --- 7042,7048 ---- d_textdomain='$d_textdomain' d_timelocal='$d_timelocal' d_toupper='$d_toupper' + d_uint32_t='$d_uint32_t' d_uptime='$d_uptime' d_urandom='$d_urandom' d_usgnames='$d_usgnames' *************** *** 7039,7044 **** --- 7094,7100 ---- i_sgtty='$i_sgtty' i_stdarg='$i_stdarg' i_stddef='$i_stddef' + i_stdint='$i_stdint' i_stdlib='$i_stdlib' i_string='$i_string' i_syserrno='$i_syserrno' *** 1_8_0.72/game/txt/hlp/pennvOLD.hlp Wed, 10 Aug 2005 22:42:12 -0500 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.1.1.1.1.1.1.1.1 660) --- 1_8_0.80(w)/game/txt/hlp/pennvOLD.hlp Thu, 15 Sep 2005 18:13:29 -0500 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.1.1.1.1.1.1.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, 3, 4, 5, 6, 7 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, 4, 5, 6, 7, 8 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.72/game/txt/hlp/pennv180.hlp Mon, 05 Sep 2005 08:42:16 -0500 dunemush (pennmush/h/28_pennv180.h 1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.4.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.1 660) --- 1_8_0.80(w)/game/txt/hlp/pennv180.hlp Thu, 15 Sep 2005 18:13:29 -0500 dunemush (pennmush/h/28_pennv180.h 1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.4.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.1.1.2.1.2 660) *************** *** 1,4 **** ! & 1.8.0p7 & 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.0p8 & 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,29 ---- A list of the patchlevels associated with each release can be read in 'help patchlevels'. + Version 1.8.0 patchlevel 8 September 15, 2005 + + Fixes: + * /noflagcopy switch to @cpattr/@mvattr works now. Report by + Kimiko Muffin. + * SHS encryption now works on 64-bit architectures that define + uint32_t. Report by Licenser@M*U*S*H. + * MySQL detection by Configure was accidentally removed + in 1.8.0p7/1.8.1p2. It's back. Report by Walker@M*U*S*H. + Same applies to SO_KEEPIDLE and some other Configure units. + + + & 1.8.0p7 Version 1.8.0 patchlevel 7 August 29, 2005 Fixes: *** 1_8_0.72/CHANGES.180 Mon, 05 Sep 2005 08:42:16 -0500 dunemush (pennmush/h/21_CHANGES.18 1.47 600) --- 1_8_0.80(w)/CHANGES.180 Thu, 15 Sep 2005 18:03:25 -0500 dunemush (pennmush/h/21_CHANGES.18 1.51 600) *************** *** 12,17 **** --- 12,29 ---- ========================================================================== + Version 1.8.0 patchlevel 8 September 15, 2005 + + Fixes: + * /noflagcopy switch to @cpattr/@mvattr works now. Report by + Kimiko Muffin. + * SHS encryption now works on 64-bit architectures that define + uint32_t. Report by Licenser@M*U*S*H. + * MySQL detection by Configure was accidentally removed + in 1.8.0p7/1.8.1p2. It's back. Report by Walker@M*U*S*H. + Same applies to SO_KEEPIDLE and some other Configure units. + + Version 1.8.0 patchlevel 7 August 29, 2005 Fixes: