From 0b5d56f5dbd079fb3ff658529c1f900495aae7e9 Mon Sep 17 00:00:00 2001 From: Ari Johnson Date: Tue, 5 Sep 2006 00:30:46 +0000 Subject: [PATCH 1/1] Initial import from 0.72 release --- BUGS | 9 + CHANGES.174 | 715 +++ CHANGES.175 | 488 ++ CHANGES.176 | 353 ++ CHANGES.177 | 1155 +++++ CHANGES.OLD | 4302 +++++++++++++++++ COPYRITE | 171 + Configure | 7307 +++++++++++++++++++++++++++++ FAQ | 146 + I18N | 58 + INSTALL | 196 + MANIFEST | 252 + Makefile.SH | 328 ++ Patchlevel | 2 + README | 235 + README.SQL | 118 + README.SSL | 292 ++ UPGRADING | 153 + config_h.SH | 859 ++++ confmagic.h | 128 + game/.gitify-empty | 0 game/README | 127 + game/access.README | 189 + game/aliascnf.dst | 68 + game/data/.gitify-empty | 0 game/data/README | 1 + game/getdate.README | 14 + game/getdate.template | 13 + game/log/.gitify-empty | 0 game/log/README | 1 + game/mushcnf.dst | 844 ++++ game/namescnf.dst | 63 + game/restart.dst | 195 + game/restrictcnf.dst | 93 + game/save/.gitify-empty | 0 game/save/README | 1 + game/txt/.gitify-empty | 0 game/txt/Makefile | 51 + game/txt/README | 36 + game/txt/changes.sh | 18 + game/txt/changes.txt | 657 +++ game/txt/compose.sh.SH | 82 + game/txt/connect.txt | 12 + game/txt/down.txt | 6 + game/txt/evt/.gitify-empty | 0 game/txt/evt/index.evt | 7 + game/txt/evt/pennmush.evt | 16 + game/txt/full.txt | 2 + game/txt/guest.txt | 3 + game/txt/hlp/.gitify-empty | 0 game/txt/hlp/cobra_attr.hlp | 95 + game/txt/hlp/cobra_chat.hlp | 305 ++ game/txt/hlp/cobra_cmd.hlp | 4058 ++++++++++++++++ game/txt/hlp/cobra_code.hlp | 197 + game/txt/hlp/cobra_conf.hlp | 230 + game/txt/hlp/cobra_division.hlp | 751 +++ game/txt/hlp/cobra_flag.hlp | 717 +++ game/txt/hlp/cobra_func.hlp | 4190 +++++++++++++++++ game/txt/hlp/cobra_mail.hlp | 309 ++ game/txt/hlp/cobra_pueb.hlp | 131 + game/txt/hlp/cobra_vts.hlp | 145 + game/txt/hlp/cobramush.hlp | 443 ++ game/txt/hlp/cobratop.hlp | 1936 ++++++++ game/txt/hlp/index.hlp | 588 +++ game/txt/hlp/pennv174.hlp | 716 +++ game/txt/hlp/pennv175.hlp | 481 ++ game/txt/hlp/pennv176.hlp | 355 ++ game/txt/hlp/pennv177.hlp | 1180 +++++ game/txt/hlp/pennvOLD.hlp | 4442 ++++++++++++++++++ game/txt/index-files.pl | 139 + game/txt/motd.txt | 4 + game/txt/newuser.txt | 13 + game/txt/nws/.gitify-empty | 0 game/txt/nws/base.nws | 3 + game/txt/quit.txt | 6 + game/txt/register.txt | 6 + hdrs/.gitify-empty | 0 hdrs/access.h | 61 + hdrs/ansi.h | 69 + hdrs/atr_tab.h | 260 ++ hdrs/attrib.h | 133 + hdrs/boolexp.h | 36 + hdrs/bufferq.h | 39 + hdrs/case.h | 13 + hdrs/chunk.h | 35 + hdrs/command.h | 229 + hdrs/compile.h | 75 + hdrs/conf.h | 471 ++ hdrs/copyrite.h | 183 + hdrs/cron.h | 124 + hdrs/csrimalloc.h | 102 + hdrs/dbdefs.h | 349 ++ hdrs/dbio.h | 47 + hdrs/division.h | 323 ++ hdrs/extchat.h | 269 ++ hdrs/externs.h | 676 +++ hdrs/extmail.h | 108 + hdrs/flags.h | 187 + hdrs/function.h | 120 + hdrs/game.h | 196 + hdrs/getpgsiz.h | 40 + hdrs/help.h | 34 + hdrs/htab.h | 60 + hdrs/ident.h | 65 + hdrs/intrface.h | 5 + hdrs/lock.h | 127 + hdrs/log.h | 35 + hdrs/malias.h | 54 + hdrs/match.h | 61 + hdrs/mushdb.h | 235 + hdrs/mushtype.h | 218 + hdrs/mymalloc.h | 35 + hdrs/mysocket.h | 160 + hdrs/myssl.h | 31 + hdrs/oldflags.h | 161 + hdrs/parse.h | 246 + hdrs/pcre.h | 139 + hdrs/privtab.h | 35 + hdrs/ptab.h | 35 + hdrs/pueblo.h | 54 + hdrs/shs.h | 38 + hdrs/strtree.h | 43 + hdrs/version.h | 2 + hints/.gitify-empty | 0 hints/a-u-x.sh | 2 + hints/aix.sh | 1 + hints/cygwin.sh | 7 + hints/darwin.sh | 3 + hints/dec_osf.sh | 2 + hints/freebsd.sh | 6 + hints/freebsd_5.sh | 6 + hints/hpux-gcc.sh | 2 + hints/hpux.sh | 1 + hints/irix.sh | 2 + hints/irix_6.sh | 6 + hints/linux_2.sh | 2 + hints/mingw32.sh | 4 + hints/next.sh | 5 + hints/openbsd.sh | 4 + hints/os2.sh | 6 + hints/solaris_2.sh | 4 + hints/sunos_4.sh | 1 + hints/ultrix.sh | 1 + hints/win32-gcc.sh | 7 + hints/win32.sh | 9 + options.h.dist | 169 + os2/.gitify-empty | 0 os2/GCCOPT.CMD | 2 + os2/Makefile | 192 + os2/Penn-OS2.htm | 58 + os2/config.h | 518 +++ po/.gitify-empty | 0 po/Makefile | 20 + src/.gitify-empty | 0 src/.indent.pro | 6 + src/Makefile.SH | 1975 ++++++++ src/SWITCHES | 163 + src/access.c | 715 +++ src/announce.c | 97 + src/atr_tab.c | 535 +++ src/attrib.c | 2238 +++++++++ src/boolexp.c | 2138 +++++++++ src/bsd.c | 5769 +++++++++++++++++++++++ src/bufferq.c | 250 + src/chunk.c | 2539 ++++++++++ src/cmdlocal.dst | 80 + src/cmds.c | 1145 +++++ src/command.c | 1925 ++++++++ src/comp_h.c | 603 +++ src/comp_w.c | 396 ++ src/comp_w8.c | 402 ++ src/compress.c | 41 + src/conf.c | 1686 +++++++ src/console.c | 4930 ++++++++++++++++++++ src/cque.c | 1616 +++++++ src/create.c | 900 ++++ src/cron.c | 777 ++++ src/csrimalloc.c | 3464 ++++++++++++++ src/db.c | 2162 +++++++++ src/destroy.c | 1530 ++++++ src/division.c | 2673 +++++++++++ src/extchat.c | 3671 +++++++++++++++ src/extmail.c | 2786 +++++++++++ src/filecopy.c | 275 ++ src/flaglocal.dst | 41 + src/flags.c | 2548 ++++++++++ src/funcrypt.c | 204 + src/function.c | 1578 +++++++ src/fundb.c | 2001 ++++++++ src/fundiv.c | 508 ++ src/funlist.c | 3194 +++++++++++++ src/funlocal.dst | 45 + src/funmath.c | 2518 ++++++++++ src/funmisc.c | 748 +++ src/funstr.c | 2037 ++++++++ src/funtime.c | 596 +++ src/funufun.c | 320 ++ src/game.c | 2448 ++++++++++ src/gmalloc.c | 1295 ++++++ src/help.c | 545 +++ src/htab.c | 578 +++ src/ident.c | 533 +++ src/info_slave.c | 233 + src/local.dst | 267 ++ src/lock.c | 970 ++++ src/log.c | 495 ++ src/look.c | 1657 +++++++ src/malias.c | 1066 +++++ src/match.c | 690 +++ src/memcheck.c | 136 + src/move.c | 1392 ++++++ src/mycrypt.c | 63 + src/mymalloc.c | 24 + src/mysocket.c | 1561 +++++++ src/myssl.c | 592 +++ src/notify.c | 1705 +++++++ src/parse.c | 1411 ++++++ src/pcre.c | 7713 +++++++++++++++++++++++++++++++ src/player.c | 579 +++ src/plyrlist.c | 110 + src/portmsg.c | 287 ++ src/predicat.c | 1344 ++++++ src/privtab.c | 158 + src/prog.c | 689 +++ src/ptab.c | 364 ++ src/rob.c | 465 ++ src/rplog.c | 283 ++ src/services.c | 834 ++++ src/set.c | 1130 +++++ src/shs.c | 424 ++ src/sig.c | 132 + src/speech.c | 1368 ++++++ src/sql.c | 572 +++ src/strdup.c | 37 + src/strtree.c | 629 +++ src/strutil.c | 1943 ++++++++ src/switchinc.c | 164 + src/tables.c | 400 ++ src/timer.c | 382 ++ src/unparse.c | 334 ++ src/utils.c | 784 ++++ src/version.c | 51 + src/warnings.c | 525 +++ src/wild.c | 675 +++ src/wiz.c | 2090 +++++++++ utils/.gitify-empty | 0 utils/clwrapper.sh | 50 + utils/customize.pl | 148 + utils/fixdepend.pl | 4 + utils/gentables.c | 309 ++ utils/ln-dir.sh | 162 + utils/make_access_cnf.sh | 38 + utils/mkcmds.sh.SH | 163 + utils/mkvershlp.pl | 92 + utils/penn-install | 277 ++ utils/update-cnf.pl | 188 + utils/update.pl | 323 ++ win32/.gitify-empty | 0 win32/README.mingw | 66 + win32/README.txt | 45 + win32/cmds.h | 152 + win32/cobramush.sln | 21 + win32/config.h | 810 ++++ win32/confmagic.h | 129 + win32/funs.h | 369 ++ win32/options.h | 163 + win32/patches.h | 4 + win32/pennmush.dsp | 588 +++ win32/pennmush.dsw | 29 + win32/switches.h | 161 + 270 files changed, 158507 insertions(+) create mode 100644 BUGS create mode 100644 CHANGES.174 create mode 100644 CHANGES.175 create mode 100644 CHANGES.176 create mode 100644 CHANGES.177 create mode 100644 CHANGES.OLD create mode 100644 COPYRITE create mode 100644 Configure create mode 100644 FAQ create mode 100644 I18N create mode 100644 INSTALL create mode 100644 MANIFEST create mode 100644 Makefile.SH create mode 100644 Patchlevel create mode 100644 README create mode 100644 README.SQL create mode 100644 README.SSL create mode 100644 UPGRADING create mode 100644 config_h.SH create mode 100644 confmagic.h create mode 100644 game/.gitify-empty create mode 100644 game/README create mode 100644 game/access.README create mode 100644 game/aliascnf.dst create mode 100644 game/data/.gitify-empty create mode 100644 game/data/README create mode 100644 game/getdate.README create mode 100644 game/getdate.template create mode 100644 game/log/.gitify-empty create mode 100644 game/log/README create mode 100644 game/mushcnf.dst create mode 100644 game/namescnf.dst create mode 100644 game/restart.dst create mode 100644 game/restrictcnf.dst create mode 100644 game/save/.gitify-empty create mode 100644 game/save/README create mode 100644 game/txt/.gitify-empty create mode 100644 game/txt/Makefile create mode 100644 game/txt/README create mode 100644 game/txt/changes.sh create mode 100644 game/txt/changes.txt create mode 100644 game/txt/compose.sh.SH create mode 100644 game/txt/connect.txt create mode 100644 game/txt/down.txt create mode 100644 game/txt/evt/.gitify-empty create mode 100644 game/txt/evt/index.evt create mode 100644 game/txt/evt/pennmush.evt create mode 100644 game/txt/full.txt create mode 100644 game/txt/guest.txt create mode 100644 game/txt/hlp/.gitify-empty create mode 100644 game/txt/hlp/cobra_attr.hlp create mode 100644 game/txt/hlp/cobra_chat.hlp create mode 100644 game/txt/hlp/cobra_cmd.hlp create mode 100644 game/txt/hlp/cobra_code.hlp create mode 100644 game/txt/hlp/cobra_conf.hlp create mode 100644 game/txt/hlp/cobra_division.hlp create mode 100644 game/txt/hlp/cobra_flag.hlp create mode 100644 game/txt/hlp/cobra_func.hlp create mode 100644 game/txt/hlp/cobra_mail.hlp create mode 100644 game/txt/hlp/cobra_pueb.hlp create mode 100644 game/txt/hlp/cobra_vts.hlp create mode 100644 game/txt/hlp/cobramush.hlp create mode 100644 game/txt/hlp/cobratop.hlp create mode 100644 game/txt/hlp/index.hlp create mode 100644 game/txt/hlp/pennv174.hlp create mode 100644 game/txt/hlp/pennv175.hlp create mode 100644 game/txt/hlp/pennv176.hlp create mode 100644 game/txt/hlp/pennv177.hlp create mode 100644 game/txt/hlp/pennvOLD.hlp create mode 100644 game/txt/index-files.pl create mode 100644 game/txt/motd.txt create mode 100644 game/txt/newuser.txt create mode 100644 game/txt/nws/.gitify-empty create mode 100644 game/txt/nws/base.nws create mode 100644 game/txt/quit.txt create mode 100644 game/txt/register.txt create mode 100644 hdrs/.gitify-empty create mode 100644 hdrs/access.h create mode 100644 hdrs/ansi.h create mode 100644 hdrs/atr_tab.h create mode 100644 hdrs/attrib.h create mode 100644 hdrs/boolexp.h create mode 100644 hdrs/bufferq.h create mode 100644 hdrs/case.h create mode 100644 hdrs/chunk.h create mode 100644 hdrs/command.h create mode 100644 hdrs/compile.h create mode 100644 hdrs/conf.h create mode 100644 hdrs/copyrite.h create mode 100644 hdrs/cron.h create mode 100644 hdrs/csrimalloc.h create mode 100644 hdrs/dbdefs.h create mode 100644 hdrs/dbio.h create mode 100644 hdrs/division.h create mode 100644 hdrs/extchat.h create mode 100644 hdrs/externs.h create mode 100644 hdrs/extmail.h create mode 100644 hdrs/flags.h create mode 100644 hdrs/function.h create mode 100644 hdrs/game.h create mode 100644 hdrs/getpgsiz.h create mode 100644 hdrs/help.h create mode 100644 hdrs/htab.h create mode 100644 hdrs/ident.h create mode 100644 hdrs/intrface.h create mode 100644 hdrs/lock.h create mode 100644 hdrs/log.h create mode 100644 hdrs/malias.h create mode 100644 hdrs/match.h create mode 100644 hdrs/mushdb.h create mode 100644 hdrs/mushtype.h create mode 100644 hdrs/mymalloc.h create mode 100644 hdrs/mysocket.h create mode 100644 hdrs/myssl.h create mode 100644 hdrs/oldflags.h create mode 100644 hdrs/parse.h create mode 100644 hdrs/pcre.h create mode 100644 hdrs/privtab.h create mode 100644 hdrs/ptab.h create mode 100644 hdrs/pueblo.h create mode 100644 hdrs/shs.h create mode 100644 hdrs/strtree.h create mode 100644 hdrs/version.h create mode 100644 hints/.gitify-empty create mode 100644 hints/a-u-x.sh create mode 100644 hints/aix.sh create mode 100644 hints/cygwin.sh create mode 100644 hints/darwin.sh create mode 100644 hints/dec_osf.sh create mode 100644 hints/freebsd.sh create mode 100644 hints/freebsd_5.sh create mode 100644 hints/hpux-gcc.sh create mode 100644 hints/hpux.sh create mode 100644 hints/irix.sh create mode 100644 hints/irix_6.sh create mode 100644 hints/linux_2.sh create mode 100644 hints/mingw32.sh create mode 100644 hints/next.sh create mode 100644 hints/openbsd.sh create mode 100644 hints/os2.sh create mode 100644 hints/solaris_2.sh create mode 100644 hints/sunos_4.sh create mode 100644 hints/ultrix.sh create mode 100644 hints/win32-gcc.sh create mode 100644 hints/win32.sh create mode 100644 options.h.dist create mode 100644 os2/.gitify-empty create mode 100644 os2/GCCOPT.CMD create mode 100644 os2/Makefile create mode 100644 os2/Penn-OS2.htm create mode 100644 os2/config.h create mode 100644 po/.gitify-empty create mode 100644 po/Makefile create mode 100644 src/.gitify-empty create mode 100644 src/.indent.pro create mode 100644 src/Makefile.SH create mode 100644 src/SWITCHES create mode 100644 src/access.c create mode 100644 src/announce.c create mode 100644 src/atr_tab.c create mode 100644 src/attrib.c create mode 100644 src/boolexp.c create mode 100644 src/bsd.c create mode 100644 src/bufferq.c create mode 100644 src/chunk.c create mode 100644 src/cmdlocal.dst create mode 100644 src/cmds.c create mode 100644 src/command.c create mode 100644 src/comp_h.c create mode 100644 src/comp_w.c create mode 100644 src/comp_w8.c create mode 100644 src/compress.c create mode 100644 src/conf.c create mode 100644 src/console.c create mode 100644 src/cque.c create mode 100644 src/create.c create mode 100644 src/cron.c create mode 100644 src/csrimalloc.c create mode 100644 src/db.c create mode 100644 src/destroy.c create mode 100644 src/division.c create mode 100644 src/extchat.c create mode 100644 src/extmail.c create mode 100644 src/filecopy.c create mode 100644 src/flaglocal.dst create mode 100644 src/flags.c create mode 100644 src/funcrypt.c create mode 100644 src/function.c create mode 100644 src/fundb.c create mode 100644 src/fundiv.c create mode 100644 src/funlist.c create mode 100644 src/funlocal.dst create mode 100644 src/funmath.c create mode 100644 src/funmisc.c create mode 100644 src/funstr.c create mode 100644 src/funtime.c create mode 100644 src/funufun.c create mode 100644 src/game.c create mode 100644 src/gmalloc.c create mode 100644 src/help.c create mode 100644 src/htab.c create mode 100644 src/ident.c create mode 100644 src/info_slave.c create mode 100644 src/local.dst create mode 100644 src/lock.c create mode 100644 src/log.c create mode 100644 src/look.c create mode 100644 src/malias.c create mode 100644 src/match.c create mode 100644 src/memcheck.c create mode 100644 src/move.c create mode 100644 src/mycrypt.c create mode 100644 src/mymalloc.c create mode 100644 src/mysocket.c create mode 100644 src/myssl.c create mode 100644 src/notify.c create mode 100644 src/parse.c create mode 100644 src/pcre.c create mode 100644 src/player.c create mode 100644 src/plyrlist.c create mode 100644 src/portmsg.c create mode 100644 src/predicat.c create mode 100644 src/privtab.c create mode 100644 src/prog.c create mode 100644 src/ptab.c create mode 100644 src/rob.c create mode 100644 src/rplog.c create mode 100644 src/services.c create mode 100644 src/set.c create mode 100644 src/shs.c create mode 100644 src/sig.c create mode 100644 src/speech.c create mode 100644 src/sql.c create mode 100644 src/strdup.c create mode 100644 src/strtree.c create mode 100644 src/strutil.c create mode 100644 src/switchinc.c create mode 100644 src/tables.c create mode 100644 src/timer.c create mode 100644 src/unparse.c create mode 100644 src/utils.c create mode 100644 src/version.c create mode 100644 src/warnings.c create mode 100644 src/wild.c create mode 100644 src/wiz.c create mode 100644 utils/.gitify-empty create mode 100644 utils/clwrapper.sh create mode 100644 utils/customize.pl create mode 100644 utils/fixdepend.pl create mode 100644 utils/gentables.c create mode 100644 utils/ln-dir.sh create mode 100644 utils/make_access_cnf.sh create mode 100644 utils/mkcmds.sh.SH create mode 100644 utils/mkvershlp.pl create mode 100644 utils/penn-install create mode 100644 utils/update-cnf.pl create mode 100644 utils/update.pl create mode 100644 win32/.gitify-empty create mode 100644 win32/README.mingw create mode 100644 win32/README.txt create mode 100644 win32/cmds.h create mode 100644 win32/cobramush.sln create mode 100644 win32/config.h create mode 100644 win32/confmagic.h create mode 100644 win32/funs.h create mode 100644 win32/options.h create mode 100644 win32/patches.h create mode 100644 win32/pennmush.dsp create mode 100644 win32/pennmush.dsw create mode 100644 win32/switches.h diff --git a/BUGS b/BUGS new file mode 100644 index 0000000..9814dae --- /dev/null +++ b/BUGS @@ -0,0 +1,9 @@ +Bugs that aren't our fault, but might bite people with old compilers: + +* Ralph Melton reports that compiling with gcc 2.5.8 under SunOS 4.1.1 + using -O optimization and forking dumps causes the dump process to + crash. Removing -O fixes the problem; so might using a more recent gcc. +* Javelin has confirmed that compiling with gcc 2.7.2.3 under Linux 2.2.16 + using -O optimization causes ansi(rh,a) to crash. Removing -O fixes + the problem; so might using a more recent gcc + diff --git a/CHANGES.174 b/CHANGES.174 new file mode 100644 index 0000000..fc9f59f --- /dev/null +++ b/CHANGES.174 @@ -0,0 +1,715 @@ + +This is the most current changes file for PennMUSH. Please look it +over; each version contains new things which might significantly affect +the function of your server. Changes are reported in reverse +chronological order (most recent first) + +[TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) +[TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) +[SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos) +[LdW] is Luuk de Waard, a former PennMUSH developer (aka Halatir) +[RLM] is Ralph Melton, a former PennMUSH developer +[NJG] is Nick Gammon, the primary Win32 porter +[EEH] is Ervin Hearn III, a Win32 porter (aka Noltar) +[DW] is Dan Williams, the MacOS porter +[2.2] refers to code which originated with the TinyMUSH 2.2 developers +[3] refers to code by (or inspired by) TinyMUSH 3.0 +[Rhost] refers to code by (or inspired by) RhostMUSH + +========================================================================== + +Version 1.7.4 patchlevel 20 September 19, 2002 + +Fixes: + * Help semaphores4 typo fixed by Mike Griffiths. + * Help cleanup. [TAP] + * See_All players now see hidden connected mail senders. Suggested + by Philip Mak. + * spellnum could introduce spurious spaces. Reported by Intrevis@M*U*S*H. + * table() sometimes produced spurious blank rows. Reported by + Nymeria@M*U*S*H. This is the first attempt at a fix. + * switch() help improved. [SW] + * enter no longer returns Permission denied, but + "I can't see that here", as you can only enter things. + Suggested by Philip Mak. + * A one-time, one-pointer memory leak in plyrlist.c fixed + by Vadiv@M*U*S*H. + * Unbalanced or empty double-quotes gave weird results in page + and whisper. Reported by Vadiv@M*U*S*H. [SW] + * @chan/decomp no longer shows names of channels that the enactor + can't see. Reported by Nat@SW:ANT. + * The lock() and elock() functions now operate properly with + user:whatever locks. Reported by Mike Griffiths. + * pmatch() will locate hidden players if they're visible to you + because they're nearby. Suggested by Julian@M*U*S*H. + * regedit and other functions that used $-substitutions for subpatterns + could produce weird results in some cases. Reported by Bellemore@M*U*S*H + + +Version 1.7.4 patchlevel 19 June 14, 2002 + +Minor changes: + * Wizards can now unset the WIZARD flag on any thing, whether they + own it or not. Suggested by Cerekk@bDv. + * Circular zoning is no longer allowed. Fixes part of a bug reported + by Philip Mak. [SW] +Fixes: + * Win32 portability fixes. [EEH] + * grep for 'grep' rather than 'egrep' in restart because in grep 2.5.1, + egrep is a shell script that exec's grep instead of a link. + Fix by Vadiv@M*U*S*H. + * The messages for a possessive get used the object's new location + instead of its old one. Fixed by Apollo@Restoration. + * Attempts by unlinked exits to @link an exit could crash. + * %1 in @areceive was being set to the recipient rather than the giver. + Fixed. Report by jubjup@trekmush.org + * @uptime fix for Linux 2.4 kernel. [SW] + * The @@() function no longer complains about commas. Report by + Trispis@M*U*S*H. [TAP] + * @search flags= is now smarter about toggles with the same + letter and different types. Report by Philip Mak. + * English-style matching now ignores the type of object being matched. + This fixes a bug with, e.g., @link my 1st object=me reported by + Oriens@Alexandria. + * bound() now listed in the math functions list. Report by Dandy@M*U*S*H. + * Help fix for member() by Cerekk@bDV TrekMUSH + * The server can now transparently read mush.cnf (and included) files + that have Dos- or Mac-style line-endings. Suggested by Paleran. + * Crash bug in @search fixed. Reported by Philip Mak. + +Version 1.7.4 patchlevel 18 May 6, 2002 + +Minor Changes: + * The Mersenne Twister RNG has been backported from 1.7.5 into + this patchlevel, as it is not susceptible to some bugs that could + cause the RNG to hang the server. Report by Bellemore@M*U*S*H. + * Improved detection of info_slave errors. Based on patch by CU5. + * Rooms and exits can now be @forced. Suggested by Philip Mak. + * Deleting files from the hlp/nws/etc. directories is now sufficient + to cause game/txt/Makefile to rebuild the txt files. Patch by + Philip Mak. + * A see_all player may now use @chan/decompile on any channel. + Previously, the ROYALTY flag was required. Suggested by Oriens@Alexandria. +Fixes: + * The QUEUE and semaphore attributes aren't listed in @decompile + anymore. Suggested by Oriens@Alexandria. [SW] + * Several compiler warnings fixed. [SW] + * The LASTSITE and LASTIP attributes are now set locked and wizard by default, + to go along with the other connection-tracking attributes. [SW] + * Help on-vacation updated. Report by Nymeria@M*U*S*H. + * Help for following() function added. Report by Ashen-Shugar@Rhost. + * The last line of the access.cnf file sometimes wouldn't get read + properly. [SW] + * lnum improperly cached its return values without consideration for + changes in separator, so subsequent lnums with different separators + broke. Reported by Rhysem and Ambrosia@M*U*S*H. [TAP] + * Failing to speak on a channel you can't see no longer reveals the + full channel name. Reported by Vadiv@M*U*S*H. + * Passing a negative argument to the space() function now returns + an error string instead of 8192 blanks. Patch by Myrddin. + * Improved messages for following/unfollowing an ambiguous object. + Reported by Philip Mak. + + +Version 1.7.4 patchlevel 17 April 14, 2002 + +Minor Changes: + * The on-vacation flag, if in use, is no longer automatically cleared + on connect. Instead, the player is warned on connect (and at each + dump) that their flag is set. Suggested by Nymeria@M*U*S*H. +Fixes: + * Improved help for edit(). Suggested by Trispis@M*U*S*H [SW] + * List functions with null elements and a null output seperator could + trip end-of-buffer checks and stop in the middle of a list. [SW] + * valid() was inconsistent in how it handled attribute names with lower-case + letters compared to what everything else does. Reported by Philip Mak. [SW] + * @open could cause crashes in some unusual contexts. Reported + by Dandy@M*U*S*H. + * Improved sort()'s autodetection of list types. [SW] + * Fixed a problem with sorting dbrefs larger than the highest one in the + db. [SW] + * Mac portability fixes. [DW] + * Help for @open clarified. Suggested by fil@M*U*S*H. + * Help for kill clarified. Suggested by Philip Mak. + * Channel titles can no longer contain newlines or beeps. + Report by Nome@M*U*S*H. + * soundex behaved badly with extended characters. [SW] + * inc() and dec() now behave like the help says, regardless of whether + tiny_math is set or not. Their behavior on null strings and strings + that do not end in a digit depend on the null_eq_zero setting. + Reported by Wayne@PDX. + * The panic db file descriptor was never closed after reading a + panic dump. [SW] + * DOES removed from help attribute list. Suggested Philip Mak. + * Under no circumstances should connection to a null-named player + be allowed. Suggested by Wayne@PDX. + * 'with' no longer allows use of $commands on remote objects you + don't control. Report by Nammyung@M*U*S*H. + +Version 1.7.4 patchlevel 16 March 11, 2002 + +Minor changes: + * After using 'register' at the connect screen, the player is + no longer disconnected. Suggested by Philip Mak. + * 'help mail functions'. Suggested by Trispis@M*U*S*H. + * Messages associated with drop, give, and get are now more + verbose and provide more information about who did what to whom. + Suggested by Philip Mak. + * Attrib locks did case-sensitive comparison of values, which is not + what you probably want. No longer. Reported by Philip Mak. [SW] + * QUEUE and sempahore attributes are now removed (not just emptied) + when drained or notified to 0. [TAP] +Fixes: + * Improvements in handling ansi in string functions. [SW] + * @clone/preserve didn't preserve when cloning exits. Reported by + Bellemore@M*U*S*H. [SW] + * A significant bug in the manual notification of timed semaphores has + been corrected. [SW] + * Revian@M*U*S*H pointed out that user-defined commands starting with + "@" that match the names of standard attributes don't behave as + you might expect. This is now documented in help user-defined commands. + * Security checks for attribute setting used the owner of the setting + object, not the setting object itself. Report by Howie@New Frontier. + * help set() improved based on report by Tareldin@M*U*S*H. + * folderstats() did not behave as promised in the help. Now it + does. Report by Trispis@M*U*S*H. + * Typo in src/log.c fixed by Nathan Schuette. + * Improved help for DEBUG. [SW] + * Aliased 'help ^' to 'help listening2'. Suggested by Philip Mak. + * MacOS portability fixes. [DW] + * The sigusr1 handler would reinstall itself as the sighup handler + on systems that don't provide persistent signals. + Fixed by Bellemore@M*U*S*H. + * &a=b me now properly clears the attribute A=B. Reported by + Trispis@M*U*S*H. In addition, now @tel #1234= produces an error, + as it should. [SW] + * mail functions can now be called by an object on anything it controls + (typically, its owner). Suggested by Trispis@M*U*S*H. + * The givee is now correctly passed in %1 to @give/@ogive/@agive, + and documented. Reported by Philip Mak. + * Added hints for Irix 6.x by Vexon@M*U*S*H. + * i18n fix for function invocation limit message. + * Clarification in help @alias by Philip Mak. + * @set obj=!puppet repeatedly no longer repeats the "not listening" + message. Reported by Philip Mak. + + +Version 1.7.4 patchlevel 15 February 8, 2002 + +Minor Changes: + * @dolist and iter(), where multiple tokens are replaced (## and #@), + now do both replacements at once. This is more efficient in several + ways and fixes a problem where if the second token gets into the + string from a replacement of the first, it gets replaced. (iter(a#@, + ##) should return a#@, not a1). [SW] + * setunion no longer eats empty list elements. [SW] + * The help text for items() is now more descriptive of how it works + and differs from words(). Suggested by Zen@SW1. + * When you attempt to @chzone an object to a ZMO without a zone-lock, + a default zone-lock of "owner of the ZMO" is now set, and the + attempt succeeds. Suggested by Linda Antonsson. + * In the French message translation files, the word 'drapeau' and + 'flag' were used interchangeably. I've standardized on 'flag'. + Report by Vexon@M*U*S*H. +Fixes: + * Message typo fixed by Bellemore@M*U*S*H. + * No more ansified names in logged shutdown messages. Report by + Bellemore@M*U*S*H. + * Messages when destroying players now take into account the + destroy_possessions and really_safe settings. Suggested by Wayne@PDX. + * The parser no longer strips any first layer of braces in, e.g. + @switch action clauses, but only when the first character in the + clause is a brace. This prevents @sw 1=1, @wait me={@emit 1; @emit 2} + from being misparsed and running @emit 2 immediately. Reported by + Azratax@Azmush. [TAP] + +Version 1.7.4 patchlevel 14 January 4, 2002 + +Minor Changes: + * The global function invocation limit is now 5 times the per-evaluation + function invocation limit, to provide some flexibility in cases + where you run a small number of functions that cause a larger + number of other functions to be evaluated (e.g., using tel() + to move players into rooms with function-laden descriptions). [TAP] +Fixes: + * Mortals are now restricted in which html tags they can generate + when pueblo support is enabled. Suggested by BladedThoth. + * @sitelock/name ! was improperly case-sensitive in its + matching. Reported by Linda Antonsson. + * Better invocation count checking and aborting on reaching limit. + Reported by Ashen-Shugar. [TAP] + * Beep characters are ignored when matching object listen patterns. + Suggested by Wayne@PDX. + * The end-of-dump marker is checked when reading the chat database. + Suggested by Bellemore@M*U*S*H. [SW] + * @lock obj=attrib:value locks were broken. Reported by Linda + Antonsson. + * Minor help fixes. + +Version 1.7.4 patchlevel 13 November 30, 2001 + +Minor changes: + * options.h.dist mentions Darwin as well as MacOS X. [DW] + * PCRE updated to 3.7. [SW] + * When CHAN_NAME_LEN is increased beyond 30, the @chan/list header + line is misaligned, and other strange things can happen to + @chan/list. Reported by Bladed Thoth +Fixes: + * Crash bug in chat channels reported by BladedThoth. + +Version 1.7.4 patchlevel 12 November 9, 2001 + +Minor changes: + * @dol/delim is now @dol/delimit, for Mux compatibility. [SW] + * /preserve switch for @chownall works like @chown's /preserve switch. + This changes the default behavior of @chownall, which used to + preserve everything, to work like @chown and strip privileged bits. + Suggested by Taladan@M*U*S*H. +Fixes: + * Warnings in index-files.pl are no longer shown. Report by Noltar@Korongil + * Additional support for ansi in channel names. Ansi is now stripped + when sorting channels and when matching names for @chan/decomp and + @chan/what. Reported by Oriens@Alexandria. + * Help @decompile clarifies the /flags switch. Suggested by Oriens@Alexandria + * Source is indented before diffs are produced. + * Typo in help zmr correct by Oriens@Alexandria. + * Players disconnecting without QUIT continued to use CPU until fully + disconnected. Fixed. Report by Protagonist@M*U*S*H. [SW] + + +Version 1.7.4 patchlevel 11 October 15, 2001 + +Minor Changes: + * In places like switch() that can match \n" in PRE, and the newer clients that are supporting + the pueblo protocol, like MUSHclient, do handle it correctly, causing + an incompatibility problem. Our workaround is to avoid PRE. + Reported by [NJG]. + * The WHO list output is tagged for Pueblo to get + appropriate newline handling. [NJG] + * help @mail mentions help @malias. Suggested by Trispis@M*U*S*H. + * Matching code now treats players you can't see like disconnected players + when matching *player. Reported by Walker@M*U*S*H. + * @newpassword now confirms whose password was changed. Suggested by + Xyrxwyrth@M*U*S*H. + * @chan/who and cwho() now include objects on the channel. Suggested by + Glonk@GlonkMUSH. + * q-register lookup is slightly faster. [SW] + * Floating-point numbers in exponential format (6.02e23) are always + accepted, not just when tiny_math is set. [SW] + * isint() and isnum() ignore the null_eq_zero option, since they already + ignore tiny_math. [SW] + * time() and convsecs() take an optional timezone argument that, + if 'UTC', makes them act the same way as utctime() and convutcsecs(). + From MUX2. [SW] +Fixes: + * Additional range checking to avoid some bugs reported by Alierak. [SW] + * Fix to buglet in @name error with PLAYER_NAME_SPACES reported by + Luke@M*U*S*H. + * Typo in @name error message fixed by Luke@M*U*S*H. + * One could @pcreate players past the hard db limit. Reported by Z@Korongil. + * Typos in config_h.SH and options.h.dist fixed by Oriens@Alexandria. + * Under some conditions, you could double-join a channel. + Reported by Xyrxwyrth@M*U*S*H, investigated by Steven@Champions. + * Error message for @chan/desc improved. Reported by Oriens@Alexandria. + * Typo in alias.cnf fixed by rodregis@M*U*S*H. + * @mvattr sometimes failed to remove the old attrib, when it was a + standard attrib that could be abbreviated (@mvattr a/desc=b). + Fixed by Walker@M*U*S*H. + * Some english-matching (like 'get 1st foo') would fail. Reported by + Mystery8. + * Typo in help @verb reported by Greck. + * MacOS tweaks. [DW] + * Better detection of numbers that are too big. [SW] + * Wizards could crash the server by entering objects in their own + inventory. Reported by Howie@New Frontiers. + +Version 1.7.4 patchlevel 6 June 11, 2001 + +Minor changes: + * English-style matching has been added to some more commands, + to help with the stricter ambiguity checking (@teleport my 3rd foo=box, + etc.). [SW] + * @pemit/list no longer does its useless ## substitution. [SW] + * capstr() and art() skip leading ansi and html. [SW] + * table(), alphamin(), alphamax(), comp(), lcstr(), ucstr(), strinsert(), + and delete() are all ansi and html aware. Mixing html and ansi in their + arguments is probably a bad idea, though. [SW] + * reverse() and scramble() are ansi-aware, and still will break html, but + in a different way than before. [SW] + * foreach() strips ansi and html from the string before doing its things. [SW] + * Complete Norwegian translation by Kenneth Aalberg. +Fixes: + * Bug in growing hash tables fixed. [SW] + * Typo in copyright fixed. Reported by Cheetah@M*U*S*H. + * Unused variable removed from fun_ansi. Reported by Sidney@M*U*S*H. + * Mac portability stuff. [DW] + * Wizards could @chown garbage objects. [SW] + * Wizards could give to garbage objects. [SW] + * Wizards could read God's @mail. [SW] + * Eliminated some compiler warnings. [SW] + * mid() was quite broken with ansi. right() was less broken. + Both hopefully fixed for good. [SW] + * Fixed a problem with the attribute used with foreach() evaluating from + the perspective of the wrong object. [SW] + * before(), after(), and wrap() are now classified as string functions + in the help. [TAP] + * help wildcards now mentions ?. Suggested by cmintrnt@M*U*S*H. + * help fixes by Jeff Ferrell. + * Problems with wrap() when the text included %r%r (or started with %r) + reported by Noltar@Korongil. + * If you somehow managed to load a corrupt db with a parent loop, + lparent could infinite-loop. Reported by Ashen-Shugar. [TAP] + + +Version 1.7.4 patchlevel 5 May 25, 2001 + +Fixes: + * Fix to uninitialized variable that could cause ansi to bleed + on some systems. Patch by Luke@M*U*S*H + * Prototypes for ansi_align and ansi_save added to externs.h. [DW] + * FreeBSD hints file updated to get rid of a compiler warning. [SW] + * Setting hate_dest to no will not disable @recycle [SW] + * switchinc.c updated. [DW] + + +Version 1.7.4 patchlevel 4 May 13, 2001 + +Minor changes: + * Internally, the /folder switch is now /folders, which prefix-matches + to /folder and also lets @mail/folders work as syntactic sugar. + * fun_ansi has been rewritten to use less buffer space by consolidating + ansi codes. New codes for turning off ansi attributes (like hilite) + also added. Patch by Luke@M*U*S*H. + * /silent switch to give suppresses default messages when giving + money to players. Suggested by 8BitMUSH. + * Old port concentrator code removed. [SW] + * On linux, @uptime reads /proc files instead of running 'uptime' [SW] + * Code that uses strdup and then adds a MEM_CHECK record for "string" + now use a wrapper function that does it automatically. [SW] +Fixes: + * Paging a page-locked player didn't give the appropriate messages. + Reported by Steven@Champions. + * left, right, and mid are now ansi-aware. Patch by Luke@M*U*S*H. + * Help fixes to lexits(), name() (Noltar@Korongil), 1.7.4p3 (Z@Korongil). + * win32/cmds.h updated with prototypes for dismiss and desert by + Noltar@Korongil. And hdrs/externs.h, too, by [SW]. + * Memory leak with using alphabetic q-registers in queued commands fixed. + Report by Jayvin@Dynamix [SW] + * Added hints/openbsd.sh to distribution. + * Mac portability linting. [DW] + * Several memory leaks in @malias code fixed. [SW] + +Version 1.7.4 patchlevel 3 April 23, 2001 + +Commands: + * unfollow with no args now stops you from following everyone. + dismiss command stops people from following you. + desert command stops people from following you or leading you. + Idea by Oriens@Alexandria. Names suggested by Noltar@Korongil +Minor changes: + * MONITOR announcements of disconnects distinguish hidden disconnects. + Suggested by Oriens@Alexandria. + * The Uptime field of INFO shows first start time, not last reboot time. + Suggested by Trispis@M*U*S*H. +Fixes: + * Exact matches are now preferred over partial matches, and no longer + result in ambiguity. Report by Steven Viscido. + * Message mentioning INHERIT changed to TRUST by Xyrxwyrth@M*U*S*H. + * Distributed register.txt file is now more descriptive. + Suggested by Xyrxwyrth@M*U*S*H. + * The ctime(), mtime(), restarttime(), and starttime() functions now + return 2-digit days (01 vs. 1). Reported by Z@Korongil. + * @malias output uses the alias token more consistently. Suggested by + Kyieren@M*U*S*H. + * hints/solaris_2.sh modified a bit. + * Mac portability fixes + * Options.h clarification suggested by rodregis@M*U*S*H. + * Cosmetic bug in @halt fixed. Report by Trispis@M*U*S*H. + * Fixed a fencepost error in regedit*() that could generate garbage text. + Reported by Vadiv@M*U*S*H + + +Version 1.7.4 patchlevel 2 March 23, 2001 + +Major changes: + * The object matching routines have been modified. Some things you may + notice: + * Ambiguous cases are more often reported as such (rather than you + getting one of the ambiguous matches arbitrarily). + * locate() now returns #-2 as promised. Reported by Jeff Ferrell. + * A few functions that used accept player names now require + the use of *playername to match the player (e.g. mail(), hidden()). + (This is generally more consistent). +Minor changes: + * @tr of a nonexistent attribute now reports that. Report by Z@Korongil. + * TEL_OK is an alias for JUMP_OK. Suggested by Kyieren@M*U*S*H. + * Added 'help i18n' (aka help translation). Suggested by Kyieren@M*U*S*H. + * When you use 'teach' and, as a result, run the command you are teaching, + it is treated as if the command were run by a player from the socket -- + that is, attribute sets are not evaluated. Suggested by Xyrxwyrth@M*U*S*H. + * See_All players can see all channels and their members, too. + Suggested by Oriens@Alexandria. + * When trying to join yourself to a channel, we only check channels + you're not on; when trying to leave a channel, we only check channels + that you are on. This is handy for disambiguating similar prefixes. + Suggested by Oriens@Alexandria. + * When you're following a leader and the leader moves, you're told that + that you're following them before you attempt to move. Suggested by + Oriens@Alexandria. + * @stats/table is no longer restricted. +Fixes: + * @grep/iprint produced highlighted strings matching the case you + gave, not the case actually found. Reported by Reagan@NF + * @search/lsearch by powers could sometimes get you the equivalent + flag-bit instead of power-bit. Reported by Reagan@NF + * Configure fix. + * hpux-gcc hint file now included. + * Nested ansi() broke again in p1. Fixed now. Reported by Intrevis@M*U*S*H + * Added Configure check for to help Cygwin builds. + Reported by Xyrxwyrth@M*U*S*H. + * Help fix or two. + * Grammatical correction by Eratl@M*U*S*H in @boot/me error message. + * Cosmetics of @mail with folders > 9 improved. Reported by Bellemore@M*U*S*H + * One could be disconnected at the connect screen under some conditions + for no good reason. Reported by Oriens@Alexandria. [SW] + * Compile error when ROYALTY_FLAG not defined patched by Noltar@Korongil. + * Fixed infinite loop reported by Xyrxwyrth@M*U*S*H. [SW] + * It's no longer posible to connect to a GOING player. + +Version 1.7.4 patchlevel 1 March 17, 2001 + +Minor changes: + * Speedup for repeat() function. [TAP] + * Hint for openbsd, which appears to have a broken IPv6 configuration. [SW] + * Some OS-dependent defines have been removed. + * ansi() now only adds a maximum of 7 codes to the string. [TAP] +Fixes: + * The restrict_command for rob has been removed from restrict.cnf + Reported by Kyieren@M*U*S*H. + * Help fixes by Kyieren, rodregis, and Luke @ M*U*S*H, Datron@SW2, + and Noltar@Korongil. + * stripansi() didn't correctly handle multiple ansi codes in + sequence. Reported by CU5@WCX. + * Linting for warnings in pcre. [SW] + * Configure now sends mailing list subscription stuff to the new + list address. + * Updated examples in access.README to use dbrefs. + * Updated a reference to the rob command in 'give' errors. Noted by + rodregis@M*U*S*H. + * median was broken. Reported by Parax@SandsMUSH. + * Fixes to update.pl's handling of CHAT_TOKEN_ALIAS and the like. + Noted by rodregis@M*U*S*H + +Version 1.7.4 patchlevel 0 March 7, 2001 + +Major Changes: + * This is now the stable minor version. PennMUSH 1.7.2 is no longer + supported except to help people transition to this version. +Commands: + * The practically useless 'rob' command has been removed. +Minor Changes: + * A virtually complete French translation joins the Swedish and + Hungarian ones! Congratulations to Jean-Michael Amblat and + Guillaime Lupin. + * The index-files.pl script handles long help topic titles better when + creating the index of help entries. [SW] + * Config options that can be set with @config/set are now documented in + mush help. [SW] + * A @config/set of a dbref option now checks dbref for validity. [SW] + * An ansi_normal code is added at the end of each channel title. + * You can clear attributes that have invalid names. [SW] + * stripansi() removes HTML markup as well as ANSI. [SW] + * @poll and @doing cannot have ANSI or HTML markup. [SW] + * soundex() and soundslike() strip ANSI and HTML. [SW] + * The maximum length of attribute names has been limited to 1024 + characters. [SW] + * Nesting ansi() functions now works better. Patch by Luke@M*U*S*H. + * help credits explains [initials] used herein. Suggested by Kyieren@M*U*S*H +Fixes: + * Help fixes by Nymeria, Balerion, Trispis, Vexon (all@M*U*S*H), + Jeff Ferrell, and [SW,LdW] + * The two-argument forms of regmatch() and regmatchi() were backwards + when it came to case-sensitivity. [SW] + * @search on zone class did parent instead. Fix by Luke@M*U*S*H. + * Use of @mail after @mail/nuke could cause a crash. + Reported by Brazil. [SW] + * make update handles the include directive correctly. [SW] + * The admin WHO output looks better when locations reach 5-digit + dbrefs now. + * regedit() and regeditall() were case-insenstive. Fixed. [SW] + * The code for log() was changed some time back to allow an optional + base argument, but the help and function table were never updated. [SW] + * owner() could be used to determine if any attribute existed on any + object. [SW] + * atrlock() has been cleaned up, fixing many bugs. [SW] + * Some list functions that evaluate attributes could be used to determine + if the attribute existed even if the object doing the function couldn't + normally see the attribute. Fixed, and their error messages are now + consistant with the other list functions (In other words, no errors, just + a null string) [SW] + * Idle timeout is now checked every minute rather than at dbck intervals. + Based on a report by Noltar@Korongil. + * Cleanup of signed/unsigned casts and signal handlers. [SW,DW] + * forbidden_name now does a case-insensitive comparison. + Reported by Kyieren@M*U*S*H. + * Blank lines at the start of help files are now correctly ignored + on Win32 and Mac systems as well as Unix. Report by Nymeria@M*U*S*H. + * functions() didn't show @functions. [SW] + * Nuked players weren't getting removed from @maliases. [SW] + * Database corruption caused by reading a db with over-long attribute + names or with attributes starting with quotes fixed. [SW] + * Crash bug in @attribute/rename fixed. [SW] + * Potential memory leak in help_command fixed. [SW] + * Warnings removed. Reported by [NJG] + * Windows NT native IO (NT_TCP) stuff should work again. Reported by + Bellemore@M*U*S*H. [NJG] + * @forwardlist now requires that you control the target, be pemit_all, + or pass the target's @lock/forward. Report by Vadiv@M*U*S*H. + * unparse_flags didn't handle exit toggles. Report by Draci@Chaotic. + * Casting and cleanup to enable compiling with lcc [SW] + * A potential problem with regexps with heavy backtracking fixed. [SW] + * Memory leaks with @clock fixed. [SW] + * Typo in spellnum() "fourty" fixed. Reported by Kyieren@M*U*S*H. + * @malias/set didn't work. Reported by Kyieren@M*U*S*H. + * Win32 portability fixes. [NJG] + * MacOS portability fixes [DW] diff --git a/CHANGES.175 b/CHANGES.175 new file mode 100644 index 0000000..3662209 --- /dev/null +++ b/CHANGES.175 @@ -0,0 +1,488 @@ + +This is the most current changes file for PennMUSH. Please look it +over; each version contains new things which might significantly affect +the function of your server. Changes are reported in reverse +chronological order (most recent first) + +[TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) +[TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) +[SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos) +[LdW] is Luuk de Waard, a PennMUSH developer (aka Halatir) +[RLM] is Ralph Melton, a former PennMUSH developer +[NJG] is Nick Gammon, the Win32 porter +[EEH] is Ervin Hearn III, a Win32 porter (aka Noltar) +[DW] is Dan Williams, the MacOS porter +[2.2] refers to code which originated with the TinyMUSH 2.2 developers +[3] refers to code by (or inspired by) TinyMUSH 3.0 +[Rhost] refers to code by (or inspired by) RhostMUSH + +========================================================================== + +Version 1.7.5 patchlevel 12 November 3, 2002 + +Fixes: + * Another bug in wrap() fixed. Reported by Rhysem. [SW] + * Bug in @wall fixed. [SW] + * Variable renaming to avoid C99 keyword 'conj'. [SW] + * Win32 project files for MSVC++ updated by Mark. + * Several portability fixes for MS VS.NET's compiler by BladedThoth. + * flip() and reverse() didn't mix well. Better now. + Reported by Julian. [SW] + * Compiling with CHAT_SYSTEM undefined works again. Report by + BladedThoth. + * bxor() was actually doing a bor(). Reported by Sketch@M*U*S*H. [SW] + + +Version 1.7.5 patchlevel 11 October 31, 2002 + +Config: + * New mush.cnf option only_ascii_in_names (defaults to yes) prohibits + the use of extended characters in names. Games that are running + in non-English locales will probably want to set this to no instead. + Suggested by Philip Mak. [SW] +Commands: + * Added @hook/before and @hook/after [SW,3] +Locks: + * You can now use power^ and channel^ in locks + to test if the enactor has a given power or is on a given channel. + Patch by Vadiv@M*U*S*H. + * @lock/dropto, if set on a room, can prevent objects from being + affected by the room's drop-to. Inspired by Oriens@Alexandria. +Functions: + * The sha1() function computes the SHA-1 cryptographic hash of a string. + * A new nosidefx function restriction to allow disabling the side-effect + version of a function while still enabling the informational version. + For things like name() and parent(). [SW] + * @function's report includes more function restrictions in the flags + field. [SW] +Minor changes: + * Modularization of code for itemizing lists by Vadiv@M*U*S*H. + * If there's no connect.html and you're on an html connection, + connect.txt is now better formatted when sent to you. Same for + other cached text files. Suggested by BladedThoth@M*U*S*H. + * CRYPT_SYSTEM 1 now behaves like CRYPT_SYSTEM 3 (replacing + system-crypt passwords with SHS passwords). Suggested by Vadiv@M*U*S*H. + * flag_table is no longer referenced anywhere except when it is used + to seed the ptab_flag at startup. A stub "flag_add" function has + been added to make life easier for hardcoders. Suggested by + Gepht. +Fixes: + * sig.c was broken on systems without sigprocmask. Reported by + Arithon@Oracle + * Bug with paging disconnected players and @away fixed. + Reported by Vadiv@M*U*S*H. + * Bashisms that crept into utils/mkcmds.sh has been replaced by + more portable alternatives based on Configure's results. + Reported by Jason Newquist. + * Trigonometric functions were broken for non-radian degree types. + Fixed up. + * @decomp / didn't properly use 'here' as the name + of the object in its output. Reported by Oriens@Alexandria. + * Wizards can now modify any lock on anything but God. Reported by + Brian Favela. + * ex/mortal and ex now produce identical output when a mortal + examines an object owned by someone else. Reported by Philip Mak. + * We do a little better about trying to close html and ansi tags + in all conditions. Bugs reported by BladedThoth @ M*U*S*H. + * whisper/@pemit to a puppet should be relayed to the owner, even if the + owner is in the same room. Discovered thanks to MUSH sound test + suite designed by Trispis@M*U*S*H. + * The --longest switch in game/txt/Makefile was broken. Report by + Nymeria@M*U*S*H + * Help fixes by Noltar@Korongil and Intrevis@M*U*S*H + * The M_READ extmail bit is now renamed M_MSGREAD, as M_READ conflicts + with an included define on Solaris. Report by Jason Newquist. + * Setting flags using single characters was not well documented, and + didn't respect the character case. Reported by Intrevis@M*U*S*H. + * @chown by a Wizard attempted to debit the Wizard's money, rather than + that of the new owner of the object, which violated expected conservation + of money. Reported by Peter Bengtson. + * Several bugs in wrap()'s output fixed. Reported by Balerion@M*U*S*H. [SW] + + +Version 1.7.5 patchlevel 10 September 19, 2002 + +Major Changes: + * Commands can now be restricted by generic flags or powers. + Several mush.cnf options (restricted_building, free_objects, + hate_dest, player_locate, cemit_power) are now restrict.cnf + restrictions instead. By Vadiv@M*U*S*H. +Functions: + * When a set function (setdiff, etc.) is called with 4 arguments, + if the last one isn't a valid sorting category, it's treated as + the output separator. Inspired by Mux [SW] + * checkpass(), a wizard function that checks a string against a player's + password. Requested by Writh@M*U*S*H. + * regedit() and variants can now accept multiple regexps and + replacements, in order, like edit(). By Walker@M*U*S*H. + * comp() can take a third argument to specify the type of + comparison to make. Suggested by Philip Mak. + * The trigonometric functions now take an optional argument to + control how the angles they work with are measured to allow them + to accept angles in degrees as well as the default radians. [SW,MUX2,Rhost] + * Added ctu() for converting between angle measurements. [SW,MUX2,Rhost] + * Added atan2(). [SW] + * dist2d() and dist3d() can take floating-point numbers. [SW] + * Other small cleanups in the math functions. [SW] +Mail: + * The MAIL_SUBJECTS option has been removed. @mail now includes + subjects mandatorily. Suggested by Vadiv@M*U*S*H. +Minor Changes: + * When a player @clones an object owned by another player, the + clone is now owned by the @cloning player, instead of the original + owner. Fixes a quota transfer issue reported by Sparta and + Philip Mak. + * The flag table is no longer walked with a linear search. Instead, + ptab_firstentry and ptab_nextentry are used. Flags no longer need + to be added in a particular order or groups in flags.c, and flags + added through hardcode should work better. Patch by Vadiv@M*U*S*H + * Error message for wrong number of arguments to a function + now tells you how many arguments it thinks you gave. + Suggested by Philip Mak. + * GAGGED players may now perform mail reading and maintenance. + * Internal reorganization of signal code. [SW] + * Attempts to speak on a channel that you can't speak on or see + now fail and command parsing continues. Suggested by Vadiv@M*U*S*H. + * The amount of CPU time spent running a queue entry can be limited. + This helps reduce the impact of some types of denial-of-service attacks. + New mush.cnf directive queue_entry_cpu_time. This currently + works only on Unix systems with setitimer. [SW] + * Internal rewrite of page/whisper code by Vadiv@M*U*S*H. + * Flag set/reset messages now include the name of the target object. + Suggested by Kyieren@M*U*S*H. + * game/txt/Makefile now includes options to limit the number of + news/etc topic aliases that are included in the 'entries' indices + generated by index-files.pl. Suggested by Nymeria@M*U*S*H. + * Minor inconsistencies in @sweep output punctuation reported by + Cmintrnt@M*U*S*H have been fixed. + * Added hints/cygwin.sh, tested with cygwin 1.3.12. Added additional + cygwin build information to README. + * The whisper-pose message is now Player senses: , with no + quotation marks added. This matches all other pose-type messages + in the server. Suggested by Philip Mak. + * Only escape codes described in the help are allowed in timefmt() [SW] +Fixes: + * Archaic help reference to FORCE_WHITE removed. Noted by Oriens@Alexandria. + * Help fixes by Cerekk@bDv TrekMUSH, Julian@M*U*S*H, Letters@M*U*S*H, + and Philip Mak. + * The wildcard matcher could lag the MUSH under unusual conditions. + It's now smarter. Discovered by Sketch@M*U*S*H. + * Fixes from 1.7.4p20 + * Fix a bug with setdiff() not using the output separator correctly. [SW] + * convsecs() could attempt to use values larger than 2^31, which could + crash Windows. Reported by Bellemore@M*U*S*H. + * @config didn't correctly show default flags for objects. + Reported by Vadiv@M*U*S*H. + * The strcasecoll function was poorly coded, and is now fixed. + * Created players who hadn't yet logged in didn't have LASTIP set + properly. Reported by Philip Mak. + +Version 1.7.5 patchlevel 9 July 16, 2002 + +Minor Changes: + * /noeval switch added to @wall/@rwall/@wizwall and variants. + Suggested by Philip Mak. +Fixes: + * Added a missing space in the @function report for softcoded + @functions. [SW] + * MUX-style @function foo=obj/attr works right. [SW] + * Cleaned up some multiple includes of the same header files. [SW] + * Lots of cleanup of old _() macros and similar by Vadiv@M*U*S*H. + * Added help for @stats/table. Suggested by Intrevis@M*U*S*H. + * Fixes to csrimalloc #ifdefs that broke in last patchlevel. [SW] + * A typo that could crash @function on certain operating systems + has been fixed. Report by Jeff Heinen. + * Improved switch() help. [SW] + * Changes in the way switchinc.c is generated, to reduce the number + of patches that attempt to patch it due to indentation changes. [SW] + +Version 1.7.5 patchlevel 8 June 26, 2002 + +Minor Changes: + * Added @nspemit and nspemit(). Wizard-only versions of @pemit and + pemit() that don't print nospoof information. Suggested by many people, + most recently Mike Griffiths and Nymeria@M*U*S*H. [SW] + * Help updates. [SW] + * Force the pipes to compression program for database reads and saves to be + block-buffered. [SW] + * @function name=obj/attrib now works, as well as + @function name=obj,attrib [TAP] + * The AF_PREFIXMATCH flag is no longer shown on attributes it's set + on when you examine them. +Fixes: + * A bunch of internal code cleanup, especially around casts. [SW] + * The disconnected room check is skipped on GOING rooms. Suggested + by Philip Mak. + * The dbck check for nameless rooms was only checking disconnected + rooms; now it checks all rooms. + * hasflag() did not work with single-character flag abbreviations. + Report by Mystery8. + * The variable named 'template' in src/strutil.c has been renamed + to avoid clashes with the C++ reserved word. Suggested by Mac@M*U*S*H. + * Improvement to help @filter. Suggested by Philip Mak. [SW] + * Files in the patches directory ending in ~ are ignored + when patches.h is rebuilt. [SW] + * Removed a // comment from strutil.c, as we're still + just following the c89 standard, not c99. Report by + Vadiv@M*U*S*H. [SW] + * make indent now indents the .dst files before the .c ones. + Fixes some spurious warnings from later makes. Suggested by + Vadiv@M*U*S*H. [SW] + * Code cleanup, mostly tprintf() and unneeded header file + checking elimination. [SW] + * Since a Windows header #defines OPAQUE, which conflicts with a + #define for the mush flag of the same name, rename + our #define rather than #undefining the Windows one. [SW] + * Fixes from 1.7.4p19 + + +Version 1.7.5 patchlevel 7 May 14, 2002 + +Utilities: + * 'make globalinstall' will install executables, scripts, and + a game/ directory structure in a global location (/usr/libexec/pennmush + by default). Facilitates rpm builds. By Vadiv@M*U*S*H. + * The utils/ln-dir.sh script can be used to clone a globalinstall'd + pennmush for an individual MUSH/user. In combination, these two + are a replacement for 'make customize', especially for mud hosters. + By Vadiv@M*U*S*H. + * You can now configure options.h settings from the command line + using: make DEFINE="OPTION OPTION=value" UNDEFINE="OPTION" update + This will mostly be useful for autoinstallers and packaging scripts. + Suggested by Vadiv@M*U*S*H. +Minor Changes: + * The default gcc compile flags now include some extra warnings. + * The prefix-table code now only aliases down to unique prefixes. + This prevents @w from calling @wipe (reported by Philip Mak), + and means that you'll need to use alias.cnf to get some of those + short aliases. [SW] + * Attribute lookups only do prefix-matching on attributes with the + AF_PREFIXMATCH flag. Most standard atr_tab.h attributes have this + flag, but newly added @attributes won't. Solves a problem with + inadvertant prefix-matching of @attribs reported by Sam Knowlton. +Fixes: + * Fixes from 1.7.4p18 + * @decomp/skipdefaults skips @lsets of default lock flags. + Suggested by Oriens@Alexandria. [SW] + * Typo in src/bsd.c corrected. Reported by Nymeria@M*U*S*H. + * Missing prototype in src/help.c. Reported by Nymeria@M*U*S*H. + * A bunch of linting. + * Win32 portability fixes. [EEH] + * Updated MSVC++ project files for win32. [EEH] + * @newpassword = foo would change the password of an arbitrary player. + This is now corrected. Report by Oriens@Alexandria. + +Version 1.7.5 patchlevel 6 April 22, 2002 + +Config: + * New attribute_alias config directive, and some default attribute + aliases added to alias.cnf. Based on a report from Hilikiradi. +Functions: + * textfile() returns help/news/etc. entries. Suggested by Trispis@M*U*S*H. +Minor changes: + * New @warnings type lock-checks that reports problems with @locks. [SW] + * exit-unlinked checks do some sanity checks on variable exits. [SW] + * Improved error-checking in evaluation of @locks. [SW] + * No more hdrs/warnings.h file. [SW] + * New @nameaccent attribute to add accent marks to object + names in speech and things like look. Idea from Elendor. [SW] + * accent() understands a few more things. [SW] + * The accented characters->html entities table and other + lookup tables are now in a seperate file, src/tables.c, + which can be regenerated if needed by utils/gentables.c [SW] + * Improvements in caching of cached text files. [SW] +Fixes: + * Buglet in ansi display of high-bit characters fixed. Report by + Trispis@M*U*S*H. [SW] + * Improved @clock2 help by Linda Antonsson. + * Fixes from 1.7.4p17 + * A truly perverse database could cause an infinite loop on load. [TAP] + * Win32 portability fixes. [NJG, EEH] + * The notify code assumed that integers could be directly stored in + pointers. This isn't always true. [SW] + * Removed some un-used code. [SW] + * Fixed some compiler warnings and general code cleanup. [SW] + * Changed signal handlers to always use the ANSI/ISO C form (Returning + void, basically) [SW] + * A null string no longer prefix-matches anything. Report by Prot Diryn + and Cheetah@M*U*S*H. + * @sitelock/remove could remove entries it shouldn't if you remove the first + one after the '@sitelock will add sites...' line. Reported by + Ambrosia@M*U*S*H. [SW] + * The last line of the access.cnf file sometimes wouldn't get read + properly. [SW] + + +Version 1.7.5 patchlevel 5 March 11, 2002 + +Commands: + * @notify and @drain now accept a new switch /any. [TAP] + * Added @remit/list. Suggested by Tareldin@M*U*S*H [SW] +Minor changes: + * We now use the Mersenne Twister pseudo-random number generator, + which is better that that available in most C libraries. + Moreover, we seed with /dev/urandom, if it's available. [SW] + * The 'T' type character (for THING) is now shown when one-character + flag lists are displayed. This is more consistent with other types, + and makes it harder to confuse #23O (#23, opaque) with #230 + (#230, no flags). Suggested by Eratl@M*U*S*H. + * @lock/use on a parent used to apply to attempts to use $commands on + a child. This is no longer necessary, given inheritable locks, + so the behavior has been changed. Parents' locks are no longer checked + when deciding if a $command inherited from the parent should be run + via a child. + * New 'call_limit' config option can limit the number of recursive + parser calls to control process stack size and avoid crashes + on systems with limited stack. Defaults to unlimited, however, because + setting this value too small breaks mushcode. Report by Bellemore + and BladedThoth @ M*U*S*H. +Fixes: + * Code cleanup - some stuff from 1.7.4 got left in that isn't + used in 1.7.5 any more. [SW] + * Fixes from 1.7.4p16, notably an important fix for timed semaphores. + * Cygwin portability fixes. [NJG] + * Updated MSVC++ project files. [EEH] + + +Version 1.7.5 patchlevel 4 February 15, 2002 + +Major changes: + * The mush recognizes telnet-aware connections. This is + neccessary for properly sending them some 8-bit characters. [SW] + * Much more support for handling accented characters in the ISO 8859-1 + character set. See help for accent(), stripaccents(), and NOACCENTS. + Inspired by Elendor. [SW] + * Things that do first-unique-prefix matching (command, attribute and flag + names) now use a more space-efficient data structure than before. + This adds two new files, src/ptab.c and hdrs/ptab.h [SW] +Commands: + * @sitelock/remove removes a sitelock entry. [SW] +Functions: + * ord() and chr() functions for converting characters to/from numerical + values that represent them. [SW] +Minor changes: + * The useless FORCE_WHITE flag is really, truely, gone. [SW] + * Use the new arglens argument to functions in more places. [SW] + * capstr() and before() fixes reimplemented using arglens. [SW] + * We now use the Mersenne Twister PRNG algorithm. [SW] +Fixes: + * setunion() no longer eats empty list elements. [SW] + * Setting an inherited lock on a child could change the parent's lock. + Reported by Riverwolf. [SW] + * Help fixes. [SW, Nymeria] + * Players waiting at the connect screen weren't being disconnected + by the idle_timeout. + * Detection of cygwin in Configure may be improved. + * Fixes from 1.7.4p15. + +Version 1.7.5 patchlevel 3 January 24, 2002 + +Fixes: + * before() was broken in 1.7.5p2. Reported by Sam Knowlton. + * capstr() was broken in 1.7.5p2. + * Win32 portability fixes by Noltar@Korongil. + +Version 1.7.5 patchlevel 2 January 23, 2002 + +Major changes: + * Implementations for softcode functions get the lengths of their arguments + passed to them, and this is taken advantage of in a number of places. [SW] +Minor changes: + * It's harder to get a partial dbref because of end-of-buffer truncation. [SW] + * Code cleanup. In particular, safe_str() and friends are no longer + macros for a safe_copy_str() or the like, because hardly anything + used a different buffer length than BUFFER_LEN, and those places + can be handled other ways. [SW] +Fixes: + * Win32 portability fixes by Noltar@Korongil and Eric Koske. + * When you have two hidden connections, one idle over the inactivity limit, + and the other not, @hide/off on the active connection unhides both, + but you also see the Inactivity re-hide message from the other + connection. Reported by Trispis. + * iname() function actually added to function table so it works. + Reported by K. Shirow. + * @lock obj=attrib:value locks didn't work properly. Reported by + Linda Antonsson. + * Fixes from 1.7.4p14. + +Version 1.7.5 patchlevel 1 December 3, 2001 + +Minor Changes: + * PCRE updated to 3.7. [SW] + * player_name_len is now runtime configurable. Suggested by + Linda Antonsson. [SW] + * Any object of any type may be a ZMO, and any object of any type + may be zoned to a ZMO of any type. However, searching for + $commands has not changed, so $commands on a ZMO are only + searched when the ZMO is not a room, and $commands on objects + within the ZMO are only searched when the ZMO is a room. [TAP] + * @chzoneall nows directly calls @chzone, and @chzone now tells + you when it's not changing a zone. [TAP] + * The term "Zone Master" (player) has been replaced by "Shared + Player" in the help. [TAP] + * Many obsolete db formats are no longer readable. hdrs/oldattrib.h + and src/convdb.c are no more. [SW] + * Code cleanup. [SW] +Fixes: + * Help file for mix updated. Report by Cmintrnt@M*U*S*H + * Updated win32 config.h file and other fixes by Noltar@Korongil + * WHO wasn't showing unconnected players. Report by Noltar@Korongil. [SW] + * Help fixes. [SW] + +Version 1.7.5 patchlevel 0 November 14, 2001 + +Major Changes: + * This is now the development minor version. This first release includes + relatively few changes, to make converting to it easier. + * Internal changes to the lock system. This requires a new minimal.db, + which is now distributed. [SW] + * Locale-based string collation throughout. + * Only ANSI C compilers are still supported; no more K&R. Files are + gradually going to be converted to ANSI C only. + * There is now an option to make ZMOs and ZMRs not count for + control of objects, only ZMPs. [SW] +Flags: + * The ZONE player flag has been renamed SHARED, to help seperate the + ZMP control-only meaning from the command-matching of ZMOs and ZMRs. [SW] +Commands: + * /preserve switch for @link prevents @chowning. Suggested by Vexon@M*U*S*H + * Admin WHO and SESSION now includes unconnected descriptors. [SW] + * Unconnected descriptors can now be booted. Patch by Bellemore@M*U*S*H. + * Unconnected descriptors can now be paged by admin with page/port. [SW] +Functions: + * mix() can take more than 10 lists and of unequal length. [3,SW] + * iname() returns the name of an object from inside (honoring nameformat) + Idea by Jeffrey@TheHotel. + * lplayers() returns a list of players in the location. Handy for + room parents. By Vexon@M*U*S*H. + * lvplayers(), lvcon(), lvexits() are like lplayers/lcon/lexits, but + leave out dark things (and disconnected players). Handy for room + parents. By Vexon@M*U*S*H. +Minor Changes: + * munge() now passes its delimiter as %1 to make generic sorting easier. [SW] + * Word-based attribute compression is faster than before, for both + compression and decompression. [SW] + * Windows memory-usage information for wizards is now in @uptime, not + @stats [SW] + * Word-based attribute compression stats can be viewed on non-Windows + mushes as well, by defining COMP_STATS. See externs.h for details. [SW] + * Setting of the internal QUEUE and semaphore attributes does not modify + an object's last-modified timestamp. [SW] + * Speaking on a channel that you're gagging is now treated like + speaking on a channel that you're not on. Suggested by rodregis@M*U*S*H + * You can use @exitto in place of &DESTINATION to set the destinatino + for variable exits, though DESTINATION is checked first. [3] + * WATCHER is another name for the MONITOR flag. [3] + * max_guest_pennies and guest_paycheck config options. Inspired by [SW] + * Lock and unlock messages now show object name and dbref, and tell + you if you unlock an already unlocked object. Suggested by Jamie Warren. + * A version of portmsg for Win32 is in the win32 directory. + Donated by CU5@WCX + * Tweaks to info_slave, which now uses readv/writev. [SW] + * Lots of code cleanup. [SW] + * CHAT_SYSTEM, INFO_SLAVE, and FUNCTION_SIDE_EFFECTS are now #define'd + by default. [TAP] +Fixes: + * Indentation fixes [SW] + * Fixes up to 1.7.4p12 merged in. + diff --git a/CHANGES.176 b/CHANGES.176 new file mode 100644 index 0000000..56899e5 --- /dev/null +++ b/CHANGES.176 @@ -0,0 +1,353 @@ + +[TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) +[TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) +[SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos) +[LdW] is Luuk de Waard, a PennMUSH developer (aka Halatir) +[RLM] is Ralph Melton, a former PennMUSH developer +[NJG] is Nick Gammon, the Win32 porter +[EEH] is Ervin Hearn III, a Win32 porter (aka Noltar) +[DW] is Dan Williams, the MacOS porter +[2.2] refers to code which originated with the TinyMUSH 2.2 developers +[3] refers to code by (or inspired by) TinyMUSH 3.0 +[Rhost] refers to code by (or inspired by) RhostMUSH + +========================================================================== + +Version 1.7.6 patchlevel 16 April 28, 2004 + +Fixes: + * PCRE updated to 4.5 [SW] + + +Version 1.7.6 patchlevel 15 January 25, 2004 + +Fixes: + * Improved freebsd hints. [SW] + * Channel user memory allocation error corrected. + + +Version 1.7.6 patchlevel 14 September 23, 2003 + +Fixes: + * Fix to help @search2 by LeeLaLimaLLama@M*U*S*H. + * The max file descriptor could get stomped in some cases. [SW] + * Powers and toggles on destroyed objects are reset, as they + caused anomalous lsearch/haspower behavior. Report by Mordie@M*U*S*H. + * Changing channel privs and loading channels with objects no longer + permitted could cause crashes. Report by Septimus@SW RP Forum. + + +Version 1.7.6 patchlevel 13 August 11, 2003 + +Fixes: + * Calling panic() while in the middle of a panic dump would cause a loop. + Reported by [EEH]. [SW] + * Outdated mention of compose.csh removed from compose.sh.SH. + Reported by Cheetah@M*U*S*H. + * timestring() dealt wrongly with large arguments. Reported by + Jules@M*U*S*H. timefmt() had a similar problem, reported by + Luke@M*U*S*H. + * Better checking of db save failures. [SW] + + +Version 1.7.6 patchlevel 12 June 23, 2003 + +Minor changes: + * Users no longer see last connection information when they + connect to Guests. Suggested by Jules@M*U*S*H. +Fixes: + * Potential problem with ambigious names in the information functions + fixed. [SW] + * The 'chat' config group is no longer displayed when CHAT_SYSTEM + isn't defined. Report by Mike Griffiths. [SW] + * cygwin install instructions changed to remove obsolete exim + version information. Suggested by Cheetah@M*U*S*H. + * Objects with user-defined locks had problems with finding built-in locks + on the object. Reported by Walker@M*U*S*H. [SW] + + +Version 1.7.6 patchlevel 11 June 1, 2003 + +Minor changes: + * The restart script now insures that GAMEDIR is a real directory + and CONF_FILE exists therein before proceeding. Suggested by + Philip Mak. + * Attribute flag setting messages are more verbose. Suggested by + Mike Griffiths + * See_All players may use the ports() function. Suggested by + Mike Griffiths. +Fixes: + * Wizards can no longer @chzone God. Report by Kevin@M*U*S*H. + * Help fixes by Mike Griffiths. + +Version 1.7.6 patchlevel 10 May 13, 2003 + +Minor changes: + * PCRE (the regex matching engine we use) is updated to version 4.2. [SW] + * @mail/file now unclears the cleared bit when filing @mail. + Suggested by Philip Mak. +Fixes: + * @edit is better with editing ansi. Reported by Trispis@M*U*S*H. [SW] + * Help file cleanup. [SW] + * @warnings about missing FAILURE messages were not correctly + checked, causing false positives. Reported by Cheetah. + * Page message no longer ends in a period. Suggested by Time@M*U*S*H. + * Help fixes by Intrevis@M*U*S*H. + * BASE_ROOM can't be destroyed any more. Suggested by Philip Mak. + + +Version 1.7.6 patchlevel 9 April 9, 2003 + +Fixes: + * index-files.pl now produces a sensible warning for duplicate + help topics, rather than a perl warning. Suggested by Cheetah@M*U*S*H. + * Spellnum cosmetic bug with 'seventeen' fixed. Report by Jules@M*U*S*H. + * Another wrap() buglet tracked down and fixed. Probably the one + reported by Nymeria@M*U*S*H. + * Memory leak in flip() and scramble() fixed. + * Configure test for /dev/urandom from 1.7.5 got left out by mistake. + * Critical overflow bug in command argument parsing fixed. + +Version 1.7.6 patchlevel 8 March 21, 2003 + +Minor changes: + * The CHANGES file has been renamed so that it always refers to + a version number, and utils/mkvershelp.pl now generates seperate + .hlp files for each CHANGES file. This will prevent patch hunk + failures when two patchlevels of different versions are released + and both used to try to modify the same .hlp file. + * Channel names are restricted to printable characters, with no + leading or trailing spaces. Suggested by Letters@M*U*S*H. + * Calling time() with any argument other than 'utc' now generates + an error. Report by Time@M*U*S*H. +Fixes: + * Some redundant code cleanup in look_exits suggested by Vadiv@M*U*S*H. + * Help file fixes by Ves@M*U*S*H, Jules@M*U*S*H, Cerekk@bDv. + * When page_aliases is on, there's a space between the player's + name and alias. Suggested by Saturn@M3. + * Command-checking for ZMR contents didn't function when a ZMR + was used as a player's personal zone. Reported by BlaZe@M*U*S*H. + * Default idle_timeout was different in code and mushcnf.dst. + Reported by James Bond@M*U*S*H. [SW] + + +Version 1.7.6 patchlevel 7 February 20, 2003 + +Fixes: + * Some sloppy coding in src/access.c could generate runtime + debugging exceptions. Reported by BladedThoth@M*U*S*H. + * wrap() could behave incorrectly when a line was exactly the length + of the wrap width and the total input size was larger than + any previously wrapped input. Reported by Liam@Firdeloth. + * Extra NUL characters were sent after telnet codes, which + confused Mudnet and maybe some clients. Patch by Alierak. + + +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: + * 1.7.6p4 broke 'go #dbref', which broke the ability of followers + to follow. Reported by Ellis@M*U*S*H. + + +Version 1.7.6 patchlevel 4 January 2, 2003 + +Minor Changes: + * English-style matching now applies to exits in the room + (so '1st down' can match the first 'down' exit if you're not carrying + anything that matches 'down'). New english-style matching adjective + 'toward' restricts the match to exits (so: 'look toward 1st down'). +Fixes: + * Code cleanup to fix several potential buffer overflows. + * The wildcard matcher had problems with backslash escapes in + some cases, making matching a : in a $command very hard. + Reported by Wayne@PDX. + * @chzone could cause crashes on some systems. Reported by Wayne@PDX. + * When two exits match, one is no longer chosen at random. + Instead, the ambiguity should be reported as an error. + Reported by Intrevis@M*U*S*H. + * The dbref returned by locate when given the X parameter is + no longer random, but the last one found (as per the help). + * Serious bug in reading locks from the db on startup corrected. + * The profiling timer is turned off duing dumps, as some systems + (FreeBSD?) appear to continue to use it and interrupt dumps + due to cpu limiting. Reported by Nathan Schuette. + + +Version 1.7.6 patchlevel 3 December 22, 2002 + +Minor changes: + * call_limit now controls the maximum recursion in process_expression, + instead of maximum calls to p_e per command cycle. This still + limits stack size, but doesn't get in the way of massive code + nearly as much. People using a very high call_limit value should + probably lower it significantly. Patch by Philip Mak. + * Improved error messages for many database information functions. + Notably, several functions that require at least one argument, + now complain if they don't get it rather than returning silently. + Suggested by Intrevis@M*U*S*H. [SW] +Fixes: + * @warnings are no longer shown on GOING objects. Suggested by + Philip Mak. + * Help fixes by Intrevis, Time, and Ambrosia@M*U*S*H + * Bug in @decomp/skipdefaults reported by Philip Mak. [SW] + * Tweaks to utils/mkcmds.sh [SW] + * home() on a room acts as described in the help. Reported by + Intrevis@M*U*S*H. [SW] + * whisper/noisy double-notified the whisperer. Reported by Philip Mak. + * Crash bug in @mail fixed. Reported by Titan@OtherSpace. + + +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. + + +Version 1.7.6 patchlevel 1 November 26, 2002 + +Minor changes: + * When using @nuke to destroy a SAFE object when really_safe is "no", + provide a warning (but schedule destruction anyway). Suggested by + Cerekk@bDV. +Fixes: + * VS.NET project file was defaulting to signed instead of unsigned + chars, causing crashes. Fixed by BladedThoth@M*U*S*H. + Several places where we should have cast things to unsigned to + avoid this kind of thing have been fixed. [SW] + * The *emit() functions now set the orator correctly. + Reported by Philip Mak. + * ccom and cplr are cleared after each command execution so they + can't be leaked as easily. Suggested by Philip Mak. + * Linting. + * If God gives the wrong password to @logwipe, provide some feedback. + Suggested by Cerekk@bDv. + * mkcmds.sh was needlessly rebuilding several autogenerated files. + * The rules for flag characters shown in object headers now allows + F_INTERNAL flags to be shown (like GOING), just the same as + when you get a full flag list on examine. Report by Philip Mak. + * 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] + + +Version 1.7.6 patchlevel 0 November 11, 2002 + +License: + * PennMUSH 1.7.6 and later is now released under the Artistic + License. This is an OSI-compliant open source license. See the file + COPYRITE for the complete license text. + + Notable changes from the old license: + * No restrictions on commercial use + * No requirement to inform developers of improvements or submit + modifications, though it's still a nice thing to do. Note, however + that if you redistribute a modified version of PennMUSH, you MUST + include source code. + + The PennMUSH devteam thanks the copyright holders of TinyMUD, + TinyMUSH 2.0, TinyMUSH 2.2, and TinyMUSH 3.0 for their assistance + in making this possible. +Documentation: + * The README file has been split into README, INSTALL, UPGRADING, + and I18N files. +Minor Changes: + * Rooms now hear remits and lemits in them, and can be pemitted + to. This behavior now matches that of other MUSH servers. + * AUDIBLE objects now propagate sound @remit'd into them. + Report by [SW]. + * Added @lock/destroy to limit who can destroy a DESTROY_OK + object. Suggested by Luigi@8bit. + * PARANOID nospoof notification now includes the name of the object's + owner as well. Suggested by Philip Mak. + * room() no longer notifies the executor of permission errors out of + band. It now just returns the error instead, like loc(). Suggested by + Philip Mak. + * Creation times are now public information via ctime(); permission to + examine is no longer required. This allows objects to use, e.g., + %#@[ctime(%#)] as a historically unique identifier of an enactor. + Suggested by Philip Mak. + * The reboot.db is now versioned. This will make it possible to + @shutdown/reboot across patchlevels that change the reboot.db + format (in 1.7.7 and later versions). + * Rooms on an @forwardlist now receive the message as a remit, + rather than a pemit. Suggested by BladedThoth@M*U*S*H. +Fixes: + * More work on the great table() bug. Looks like a fix. [SW] + * Improved VS.NET project files by BladedThoth. + * Plugged a memory leak in deleting @locks. [SW] + * Fixed @lock-related crash bug reported by Philip Mak. [SW] + * General linting. + * process_expression ignores the [ in ansi escapes. Reported in the + context of #$ by Philip Mak. [SW] + * Internal changes to compress(), which now returns an allocated + string. Under Huffman compression, it should no longer be possible + to overflow a buffer with a pathological compression tree. Initial + concern voiced by Eyal Sagi. + * Table and ansi didn't play well together. Reported by Ellis@M*U*S*H. + * Config file reading should be better on Macs. Patch by Philip Mak. + * Obsolete checks for OLD_ANSI are removed. [SW] + * Crash bug in @function fixed. Report by Dallimar@Hemlock. + * Change to message on failed attribute flag set, to make it more + generic to cover all the possible failures. Report by Cerekk@bDv. + * Translations to some languages were broken. Fixed now. Report by + Sbot@M*U*S*H. + * QUEUE is now visible if you control an object, as promised in the + help. Reported by Luigi@8bit. + * Help fixes by Mortimer@M*U*S*H, Bellemore@M*U*S*H, Hyacinth@8bit, + [EEH], BladedThoth@M*U*S*H, Moe@M*U*S*H, Viila@M*U*S*H, Walker@M*U*S*H. + * Comment in src/Makefile fixed by Vadiv@M*U*S*H. + * A weird crash on @shutdown/reboot, probably attributable to a + broken library or system call, is now worked-around. Report by + Solarius@SWWF. + * Audible objects with @forwardlist set are no longer concealed by + the DARK flag. + * Win32 project files no longer use the win32/ directory as an include + directory, which causes problems. Reported by Gepht. + diff --git a/CHANGES.177 b/CHANGES.177 new file mode 100644 index 0000000..b797a2d --- /dev/null +++ b/CHANGES.177 @@ -0,0 +1,1155 @@ + +This is the most current changes file for PennMUSH. Please look it +over; each version contains new things which might significantly affect +the function of your server. Changes are reported in reverse +chronological order (most recent first) + +[TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) +[TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) +[SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos) +[EEH] is Ervin Hearn III, a PennMUSH developer (aka Noltar) +[LdW] is Luuk de Waard, a former PennMUSH developer (aka Halatir) +[RLM] is Ralph Melton, a former PennMUSH developer +[NJG] is Nick Gammon, the Win32 porter +[DW] is Dan Williams, the MacOS porter +[2.2] refers to code which originated with the TinyMUSH 2.2 developers +[3] refers to code by (or inspired by) TinyMUSH 3.0 +[Rhost] refers to code by (or inspired by) RhostMUSH + +========================================================================== + +Version 1.7.7 patchlevel 32 May 26, 2004 + +Major Changes: + * SQL support. PennMUSH can now operate as an SQL client and perform + queries against an SQL server. Currently only the MySQL server is + supported. This adds the @sql command, the sql() and sqlescape() + functions, and the Sql_Ok power. See README.SQL for some + additional information. Mostly based on patches by Hans Engelen. + * Creating a leaf attribute automatically creates associated branch + attributes if they are not already present. [TAP] + * When a $command matches on an object, but the object's use-lock or + command-lock prevents the command from being run, the object's + COMMAND_LOCK`FAILURE, COMMAND_LOCK`OFAILURE, and COMMAND_LOCK`AFAILURE + attributes will be triggered if the $command never successfully + matched, rather than returning a Huh? to the player. + * Exits and rooms may now run $commands. Rooms are treated as being + located in themselves for purposes of location checks. Exits are + treated as being located in their source room. Suggested by [TAP]. +Commands: + * 'empty ' attempts to get each item in and put + it alongside (in 's location). + * 'give to ' syntax added. +Minor Changes (user-visible): + * @COST attribute is now evaluated, so you can make costs depend + on who's paying, a selected item, etc. Suggested by Walker@M*U*S*H. + Also, the amount given is passed in as %0, so you can code + vendors that accept any amount. + * New OBJID^ lock atom. + * The server now maintains a rolling log of activity (commands issued, + evaluations parsed, and locks evaluated), that is dumped to the log + file on panic, or can be seen by God with @uptime. This aids + debugging code that causes a "clean" panic rather than a crash. + Suggested by Intrevis@M*U*S*H. + * When checking a use/command/listen-lock on an object with patterns + that get matched, we only check the lock once and cache the result, + to prevent multiple lock evaluations if multiple patterns match. [TAP] + * @chan/recall now shows nospoof tags for @cemit'd lines. + Suggested by Sholevi@M*U*S*H. + * SUSPECT flag can now be applied to any type of object. + Suggested by Oriens@Alexandria. +Minor Changes (internals): + * fun_escape() and fun_secure() use the same list of special characters, + rather than each having their own copy. [SW] + * Buffer queue code used by @chan/buffer and the activity log refactored + into src/bufferq.c and hdrs/bufferq.h. + * Added mush_panicf(), with printf()-style format and arguments. [SW] +Fixes: + * @scan correctly shows attributes on parents again. Report by + Wayne@PDX. + * @shutdown/panic and @shutdown/paranoid work again. [SW] + * A panic DB could be created before the database files were actually read, + causing problems on the next restart. [SW] + * Win32 and Debian installer portability fixes. [EEH] + * Code cleanup around errno. [SW] + * The locate() function now respects visibility and interactions. + Report by Jules@M*U*S*H. + + +Version 1.7.7 patchlevel 31 May 11, 2004 + +Minor Changes: + * netmush is now started with only a single argument - the path to + the configuration file. The error log file (typically game/netmush.log) + is now configured in mush.cnf. Suggested by Vadiv@M*U*S*H. + * The restart script now bases its decision about whether the mush + is already running on the full path to the configuration file, + which means you can leave mush.cnf named mush.cnf without fear + of restart problems when multiple mushes are using the same + host. This also facilitates make update. Suggested by Vadiv@M*U*S*H. + * The GAMEDIR environment variable can be passed to 'make update' + to cause it to update *.cnf files in directories other than + game/ (using the template *.dst files in game/). + E.g.: make GAMEDIR=/home/othermush/game update +Commands: + * @nscemit. Suggested by Mystery8@ST:AW. +Functions: + * nscemit(). Suggested by Mystery8@ST:AW. +Flags: + * New HEAVY admin flag, prevents an object from being teleported + by a mortal between two containers they own. Admin without this + flag can now be teleported. +Fixes: + * Help fixes by Anri@AkaneaMUSH and Intrevis@M*U*S*H. + * mix() now treats empty lists as empty, instead of containing a single + null element. Report by Luke@M*U*S*H. + * @power messages no longer reference 'flags'. Report by Nymeria@M*U*S*H. + * Crash bug with @clone in new power system fixed. + + +Version 1.7.7 patchlevel 30 May 6, 2004 + +Major changes: + * CHAT_SYSTEM option removed. If you don't want to use the chat system, + use restrict.cnf to disable @channel, @chat, etc. + * USE_MAILER and MAIL_ALIAS options removed. If you don't want to + use the @mail or @malias systems, use restrict.cnf to disable + the associated commands. + * QUOTA, EMPTY_ATTRS, and FUNCTION_SIDE_EFFECTS options are now + runtime options, instead of compile-time. + * SINGLE_LOGFILE option removed, and log filenames are now + runtime options. You may now give the same name to + multiple log files and get a more fine-grained version of the + same effect. Based on ideas by Vadiv@M*U*S*H. +Minor changes: + * New IP^ and HOSTNAME^ tests for boolexps. Suggested by Luke@M*U*S*H. + * ALLOW_NOSUBJECT option removed. We always use the beginning of the + message as the subject if one is not provided. + * JURY_OK and UNINSPECTED_FLAG options removed. Use @flag to add + flags if you need them. ONLINE_REG and VACATION_FLAG options + removed (default to always defined, add or remove with @flag as + desired). + * MEM_CHECK option removed from options.h; it is now a runtime + option in mush.cnf. + * @function/restrict can be applied to softcoded @functions, and + @function/add can accept a list of restrictions as a fifth argument. + Patch by Luke@M*U*S*H. + * log_walls run-time configuration option removed. Use the + logargs option in restrict.cnf instead. +Fixes: + * Crash bug in anonymous attributes fixed. Report by Intrevis@M*U*S*H. + * lplayers() was broken. Report by T'orA@M*U*S*H. + * Failing to create a player by providing a bad password now gives + a better error. Suggested by [NJG]. + * Setting/clearing a chan title on a notitles channel works, but + reminds you that titles are off. Suggested by Dan@InNomine. + * haspower_restricted removed from mushcnf.dst to stop spurious + warning on startup. Report by Nymeria@M*U*S*H. + + +Version 1.7.7 patchlevel 29 April 28, 2004 + +Major changes: + * Anonymous attributes via #lambda. See help anonymous attributes. [SW] + * Wizards (other than God) and royalty are no longer treated as No_Pay + unless the No_Pay power is explicitly set on them, although they + can still give (themselves or others) as many pennies as they wish. + This helps stop runaway wizards in the queue (they'll run out of cash + like anyone else). To get the old behavior back, @power your admin + No_Pay. You probably want to @power any globals that use search(), + children(), mail*stats(), etc, No_Pay as well. Suggested by Walker@M*U*S*H. + * game/restrict.cnf, alias.cnf, names.cnf are renamed in the tarball and + made with make update like mush.cnf. Suggested by Philip Mak. [SW] + * @powers now operate under the same code as the @flag system, so God + can add and modify powers in the MUSH with @power/add, etc. +Commands: + * @nsemit, @nsoemit, @nslemit, @nsremit, @nszemit and function forms + of the same. Suggested by Cloud@M*U*S*H. +Functions: + * andlpowers(), orlpowers(), andpowers(), orpowers(). + * align() performs fancy text alignment tricks. Patch by Walker@M*U*S*H. + * sent() and recv() show more player descriptor data from SESSION. + Suggested by Ricochet@M*U*S*H. + * scan() with a single argument assumes the executor's point of + view. Suggested by Cheetah@M*U*S*H. + * valid() can also check for syntactically correct passwords, + command names, and function names. +Minor changes: + * No more CRYPT_SYSTEM in options.h. We try everything and we + always reset passwords to SHS. Patch by Vadiv@M*U*S*H. + * Wizards and other privileged players can @chan/recall on channels they're + not on. Suggested by Trispis@M*U*S*H. [SW] + * A separate ip address to bind the SSL port to can now be specified + in mush.cnf. + * @flag/type allows God to change flag types. Suggested by Renee@ShoreSide. + * After each @startup is enqueued (during startup or @restart/all), + we immediately run up to 5 queue cycles. This allows, e.g., God's + @startup to up to five levels of @dol/@tr/@switch/etc and still have + the queued code run ahead of other startups. This requires that you + keep God's dbref as #1. Based on comments by Philip Mak and o + Trispis@M*U*S*H. + * The message after successful @password is now clearer, to avoid + confusion in some unusual cases. Report by Kholnuu. + * Makefile is no longer set executable. Report by Luke@M*U*S*H. + * Server now handles telnet NOP and AYT commands. Suggested by + Philip Mak and Liz (author of Muckclient). + * announce.c is no longer distributed. portmsg.c cleanup. +Fixes: + * @undestroy on an invalid (garbage, or !going) object now produces + an error message. Suggested by T'orA@M*U*S*H. + * On shutdowns, all queue deposits are now refunded. + * Ansi behavior on second and later lines of text fixed by Walker@M*U*S*H. + * Database reading improvements for win32 - ideally, you should now + be able to read a database written on win32/unix on either system. + * allof() now evaluates its separator argument. [SW] + * firstof() doesn't add an extra space before the value it returns. [SW] + * Slackware portability fixes by Dale @ Wolfpaw.net hosting + * ]page properly noevals (the right hand side) now. Report by + Cheetah@M*U*S*H. + * Partial channel match listings no longer reveal channels the player + isn't allowed to see. Report by Taz. + * Help fixes by Trispis@M*U*S*H and Tanaku@M*U*S*H. + * ssl() and terminfo() don't work on other players unless you're + See_All, as promised. Based on patch by Tanaku@M*U*S*H. + * lcon, etc. all do an INTERACT_SEE interaction check now. + Suggested by Thor@bDv. + * Code cleanup. [SW] + * Fixes from 1.7.6p16 + + +Version 1.7.7 patchlevel 28 March 12, 2004 + +Major changes: + * You can add customized configuration parameters to set in mush.cnf + by adding a couple of new lines into the local_configs() function + in local.c. (YOU MUST UPDATE YOUR local.c FROM local.dst IN THIS + PATCHLEVEL). Patch by grapenut@M*U*S*H. + * Object ids: An object id is the string "#dbref:ctime" + where #dbref is the object's dbref and ctime is its creation time + in integer format. The %: substitution returns this + id for the enactor, and the objid() function returns it for an + arbitrary object. Object ids can be used in place of softcode that + stores dbrefs to insure that a recycled dbref isn't used in place + of the intended one. The matcher code will also match objects by + id any time it's matching by dbref. + * @command/add and @command/del. You can add a custom command + (which will have the same precedence as a standard server command), + and then @hook it to softcode, effectively promoting the precedence + of softcoded globals, and letting them take advantage of some + command parser settings. Patch by Walker@M*U*S*H. +Functions: + * tr() accepts ranges of characters like a-z instead of having to + give each one. [SW] + * escape() also escapes parens and commas now. Suggested by Philip Mak. [SW] + * time() can now take a time offset or object argument (in the latter + case, time offset is read from object's TZ attribute). Patch by + Walker@M*U*S*H. + * vcross() performs cross products of vectors. [SW] + * merge() can now take a list of characters. [SW] +Minor changes: + * You can @set multiple flags at once by giving them as a list. + Suggested by Walker@M*U*S*H and others. + * Channel names are recognized when surround by <>'s, too. [SW] + * 'move' is now a command_alias for 'goto' (in alias.cnf), and not + a separate command. + * PAGE_LOCK`{,O,A}FAILURE attributes now activated when a page/pemit fails + due to the victim's @lock/page. Suggested by Sholevi@M*U*S*H. + * Tweaked game message for failing to provide correct password to + @password. Suggested by Philip Mak. + * New command 'warn_on_missing' (defaults to disabled), aliased to the + '[' character. If enabled, players who attempt to write commands + starting with functions will get errors. Suggested by [SW] and + Cheetah@M*U*S*H. + * Renaming something triggers its ONAME and ANAME attributes, if present. + The old name is passed as %0; the new as %1. Suggested by Philip Mak. + * Owner information on ex/br is reported using the usual object_header() + so dbref and flags appear. Suggested by Eratl@M*U*S*H. + * Flags that are F_DARK or F_MDARK no longer appear on @flag/list + by non-admin. Suggested by Philip Mak. + * Warn players who set themselves SHARED with a weak zone lock. + Suggested by Philip Mak. [SW] + * @halt can now take "here". Suggested by Thor@bDv. + * When parsing eqsplit commands, don't evaluate the left side + of the equal sign if the command was run with ]. +Fixes: + * Fixes to robustify file reading on Windows systems. + * The 'nofixed' command restriction works as expected now (previously, + you had to use 'nofix'). + * Exit movements are now translated into explicit GOTO commands, + so @hooks and restrictions on GOTO are now applied. Patch by + Walker@M*U*S*H. + * The AE/ae accent characters can now be produced (accent(a,e)). + Patch by Luke@M*U*S*H. + * @hook/ignore would double-evaluate arguments. Reported by + Ambrosia@M*U*S*H. [SW] + * Mingw error in src/Makefile.SH fixed. Report by Thor@bDv. [SW] + * Help fixes by Cerekk@bDv, Mike Griffiths, Steve Varley, Thor@bDv, [SW], + Dahan, Jason Stover, and Kyieren@M*U*S*H. + * cmdlocal.dst now includes flags.h. By Dahan. + * Win32 portability fixes by Dahan, Nathan Baum, [EEH]. + * utils/mkcmds.sh is now smarter about choosing temp filenames, so + parallel make should work. Fixed by Cheetah@M*U*S*H. + * The Zone: data in examine could be wrong. + + +Version 1.7.7 patchlevel 27 January 25, 2004 + +Minor Changes: + * New etimefmt() formatting codes to make it easier to get nice-looking + results without 0-valued times. Suggested by ranko_usa@M*U*S*H. [SW] + * Autodetect existence of /usr/kerberos/include to make compile + easier for RH9 sufferers. + * src/Makefile is now autobuilt from src/Makefile.SH. IF you use + local hacks that require src/Makefile, this is likely to be a problem + for you. You'll want to start patching Makefile.SH instead. + * Fewer warning flags are now provided to the compiler by default. + You can set your own warning flags instead by defining the + warnings variable in config.over. +Fixes: + * The startups option actually does what it's supposed to now. + * Potential DOS in etimefmt fixed. Report by Ashen-Shugar. [SW] + * Code cleanup. ok_tag_attribute should work. [SW] + * Channels are automatically ungagged only on initial connection + (not reconnection, partial disconnection, etc.). Suggested by + Mordie@M*U*S*H. + * notify() calls during startup would crash. Reported by Mordie@M*U*S*H. [SW] + * Fixes from 1.7.6p15. + + +Version 1.7.7 patchlevel 26 December 15, 2003 + +Commands: + * Add /regexp switch to @switch and @select. Suggested by BladedThoth. [SW] + * New /spoof switch to @pemit, @remit, @lemit, @oemit, @emit, + causes the message to appear to be generated by the cause, rather + than the enactor, which makes globals like $ooc show the right + NOSPOOF information (instead of the name of the global command object). + Patch by Philip Mak. +Functions: + * hostname(), ipaddr(), and cmds() take a dbref or descriptor number + of a connected player and return the hostname, ipaddr, and number + of commands executed. Suggested by Sholevi@M*U*S*H and Renee@ShoreSide, + code by Sholevi@M*U*S*H. + * Add reswitch*() functions. Suggested by BladedThoth. [SW] + * insert() can take a negative position argument to insert from + the right. Patch by Sholevi@M*U*S*H. + * New firstof() and allof() functions return the first true value + or all true values from a set of expressions. Patch by Sholevi@M*U*S*H. + * tr() works like the Unix utility, translating characters. Patch + by Walker@M*U*S*H. +Attributes: + * Attributes may be set DEBUG to cause their evaluation to be + debugged selectively. Patch by Pozzo@SWForum. + * @desc can no longer be gotten remotely without privileges. + To implement this, a new attribute flag NEARBY was added, + which prevents visual attributes from being remotely accessed. + See new configuration directive 'read_remote_desc' if you prefer + the old behavior. Patch by Philip Mak. + * @desc on privileged objects can now be evaluated by mortals. + To implement this, a new attribute flag PUBLIC was added, + which overrides safer_ufun for that attribute. This flag is dangerous + and should be avoided unless you are sure you know what you're doing. + Patch by Philip Mak. +Minor Changes: + * "+ " complains if is ambiguous, and + displays a list of matching channels. Patch by Luke@M*U*S*H. + * Code cleanup around @oemit by Philip Mak. + * If an object has an IDESCFORMAT but no IDESCRIBE, interior viewers + now see the DESCRIBE formatted by IDESCFORMAT (instead of + the DESCRIBE formatted by DESCFORMAT). Suggested by Philip Mak. + * Ported to Win32 with the Mingw development environment. + See win32/README.mingw for compile instructions. [EEH] + * null() can now take any number of arguments. Patch by Walker@M*U*S*H. + * Using @chan/quiet to control the quiet flag on a channel no longer works + (Actually, it never did). Use @chan/priv instead. [SW] + * The NO_WARN flag now prevents disconnected room warnings, too. + Suggested by several people. Patch by Philip Mak. + * @sitelock/name !name still unlocks a reserved name, but no longer + removes that name from names.cnf. Suggested by Nymeria. [SW] + * Some cleanup of fopen() calls. [SW] + * The reference to channel Creator is now Owner in @chan/decomp. + Suggested by Howie@NFTrekMUSH. [SW] + * The name of the channel being tested is passed as %0 in channel locks. + Suggested by Philip Mak. [SW] + * help for @chownall mentions the /preserve switch. Warnings from @chown + and @chownall tell which objects they're for. Suggested by + Mordie@M*U*S*H. [SW] + * Home wrecking is allowed again. Suggested by Philip Mak. +Fixes: + * Puppets in containers with @listen container=* now hear the + outside world correctly. Patch by Philip Mak. + * The email sent on player registration now double-quotes the + player name in the example connect statement. Suggested by + David Kali. + * Two rooms should never be nearby() each other. Fix by Philip Mak. + * can_look_at() now handles the look/out case, too. Fix by Philip Mak. + * Help fixes by Viila@M*U*S*H, MetBoy@M*U*S*H, Cheetah@M*U*S*H. + * @flag/alias or @flag/add without giving an alias no longer crashes + the MUSH. Report by Wildfire. + * Correctly retrieve user full name from /etc/passwd fields under + Linux in Configure. Record it in config.sh. Reported by Vadiv@M*U*S*H. + * Debian package changes. [EEH] + * As the help promises, XCH_CMD and SEND attributes don't work + for non-Wizards. Really. + + +Version 1.7.7 patchlevel 25 October 30, 2003 + +Fixes: + * Crash bug in the interaction between parents and attr trees + fixed. Report by Walker@M*U*S*H. + * Improvements to how locks are decompiled. Built-in locks with the + no_inherit flag cleared are handled better. If the object doing + the @decompile is referenced in a lock key, it's decompiled as 'me' + rather than by dbref, to make it easier to port between games. + Report by Cerekk@bDv. [SW] + * The error typically logged by info_slave on a mush crash is worded + better. [SW] + * panic() renamed mush_panic() as the Mach kernel now has a public + system call panic(). Report by Jeff Ferrell. + + +Version 1.7.7 patchlevel 24 October 19, 2003 + +Minor Changes: + * The puppet flag can now apply to rooms. Suggested by Philip Mak. + * @tel/inside allows priv'd players to teleport into another player's + inventory (instead of to their location). Suggested by Philip Mak. +Fixes: + * Startups from a created minimal.db did not properly initialize + the objdata htab, so subsequent use of that htab (e.g. adding + players to channels) would crash. Report by [LdW]. + * Help fixes by BladedThoth@M*U*S*H and Philip Mak. + * Attempting to clear a branch attribute when it has leaves now + gives a better message. Also better message for inability to + write an attribute due to tree issues. Patch by Luke@M*U*S*H. + * Bug in @debugforwardlist fixed by Luke@M*U*S*H. + + +Version 1.7.7 patchlevel 23 October 10, 2003 + +Major Changes: + * Forking dumps now work with the chunk memory manager. [TAP] +Minor Changes: + * Chunk allocator improvements in partial read/writes and for + Win32. [TAP] + * Use the SHA0 algorithm from OpenSSL instead of our own when possible. [SW] +Functions: + * New digest() function for generating checksums via a variety of + algorithms. [SW] + * cowner() returns the dbref of a channel's owner. Suggested by + Sholevi@M*U*S*H. [SW] + * Added baseconv(), for converting numbers from one base to another. + Useful for tweaking things like Myrddin's bboard code. Suggested + by many people. [SW] +Fixes: + * Remove warnings in set.c and pcre.c. Report by Nymeria@M*U*S*H + * @power messages now show the canonical name of the power. + Suggested by Cheetah@M*U*S*H. + * Adding DARK players to channels produced a duplicated message. + Reported by Mystery8@ST:AW. + * Players set WIZARD and ROYALTY would get double notification + of some GAME: messages. Fixed now. [SW] + * Chatdb corruption possible when admin add players to channels. + Reported by several folks, diagnosed by Mordie@M*U*S*H. + + +Version 1.7.7 patchlevel 22 September 30, 2003 + +Minor Changes: + * When possible, sockets are now set SO_KEEPALIVE and TCP_KEEPIDLE. + This may help prevent disconnections of idle players behind + poorly designed NAT routers and the like, and make the use of + the IDLE command unnecessary. Patch by Philip Mak. + * Better failure messages for 'get blah's blah', especially when + the container or contained object is ambiguous. Suggested by + Philip Mak. +Fixes: + * Attempting to unset attribute flags actually set them. + Report by Ambrosia@M*U*S*H. [SW] + + +Version 1.7.7 patchlevel 21 September 23, 2003 + +Major Changes: + * Attribute trees. Attributes may now be organized hierarchically + like files and directories in a filesystem, using the backtick (`) + character as the branch separator. Attribute access restrictions + propagate down trees. New wildcard ** is introduced to match + all attributes at all tree levels. Suggested by Tabbifli. [TAP] +Locks: + * New framework for performing lock failure activities in hardcode. + As a proof-of-concept, the attributes FOLLOW_LOCK`FAILURE, + FOLLOW_LOCK`OFAILURE, FOLLOW_LOCK`AFAILURE do what you'd expect + when set on a potential leader. Suggested by Sholevi@M*U*S*H. +Channels: + * New per-channel flags NoTitles, NoNames, and NoCemit do what you'd + expect. Set them with @chan/privs. Based on suggestion by + Saturn@M3. + * @chan/recall/quiet omits timestamps. Suggested by Vadiv@M*U*S*H. +Commands: + * 'help ' now lists all help topics that match that + pattern. By popular request. [MUX,SW] + * @flag/letter can be used to change or clear the one-letter alias for a + flag. Suggested by Nymeria@M*U*S*H. [SW] + * @flag/list by God notes disabled flags. Suggested by Nymeria@M*U*S*H. [SW] +Functions: + * rand() now comes in a two-argument (low,high) flavor, and randword() + selects a random word from a list. The latter is aliased to + pickrand() to match Mux's name. Patch by Luke@M*U*S*H. +Minor Changes: + * Although we're Pueblo 2.50 compliant, go back to sending Pueblo 1.10 + as the server version until everyone upgrades their clients so + they can handle the 2.50 string. Suggested by Shirow. + * The locate() function is no longer noisy (no longer notifies + the executor in addition to returning a value). Suggested by + Mystery8@ST:AW. + * @lock/interact now has a higher priority than other interaction + checks, so it will work for Wizards. Suggested by Viila@M*U*S*H. + * Tweaks to facilitate a Debian package of PennMUSH. [EEH] +Fixes: + * max descriptor could get stomped in some cases. [SW] + * Removed extra struct def in hdrs/mushtype.h. Suggested by Kyle. + * Help tweak by Kevin@M*U*S*H. + * Fix to locks on players messing up their connection failure counts. + Reported by Luke@M*U*S*H. + * Fix to @entrances by Luke@M*U*S*H. + * Fix to Win32 not handling a missing minimal.db by Luke@M*U*S*H. + * The confirmation message for setting/clearing attribute flags would use + the flag name given as an argument, not neccessarily the the full name of + the flag. Reported by Vadiv@M*U*S*H. [SW] + * Fix a potential memory leak in ident.c [SW] + +Version 1.7.7 patchlevel 20 September 4, 2003 + +Major Changes: + * 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 + on the fly. Feel free to delete your coopy of minimal.db. [SW] + (In related news, the default OSUCC on #0 in minimal.db is gone. + Suggested by Cheetah@M*U*S*H. So much for the mists.) +Minor Changes: + * SSL connections are now ended before the dump when rebooting, + but their descriptor information sticks around to ensure that + their @adisconnect is run after the reboot. Based on suggestions + by Vadiv@M*U*S*H and [TAP]. + * When _DEBUG is defined in a win32 build, don't copy pennmush.exe + to pennmush_run.exe. Makes debugging easier. Patch by Luke@M*U*S*H. + * In pueblo mode, no longer clear past images after each room look. + Patch by Konstantine Shirow. + * In pueblo mode, we no longer render ansi attributes or colors with + HTML tags; we assume the client will correctly handle them as ansi + intermixed with Pueblo. This solves a variety of problems. + Based on a discussion with Konstantine Shirow. + * When matching $commands and ^listens, insure that a matching attribute + exists before testing locks. This may break some strange locks using + %c, but hopefully won't. Suggested by Cheetah@M*U*S*H. + * The @scan command temporarily sets %c to the command to be scanned + (without "@scan" prefixed) so that it can detect commands that use + %c-matching. Based on ideas from Cheetah and Walker@M*U*S*H. + * Added support for Pueblo's md5 checksum. We track it on each + descriptor, though we don't do anything with it currently. + * Speed-up to fun_merge. Patch by Walker@M*U*S*H. + * Internal cleanup of flags in channel_broadcast. + * Wizards may @name themselves to names forbidden in names.cnf. + Patch by LeeLaLimaLLama@M*U*S*H. + * We are now forgiving of stupid non-RFC-compliant telnet clients + that send CR only even when they claim to be sending CRLF + (Read: MS Windows XP telnet). MS bug reported first by + Intrevis@M*U*S*H. + * Misleading restrict_command on @clone removed from restrict.cnf, + as @dig/@open/@create permissions already control @clone. + Suggested by Philip Mak. +Functions: + * lstats() and quota() now allow objects to see stats/quota on other + objects they control (e.g., on their owners, perhaps). Suggested + by Philip Mak. + * hastype() can now test for type GARBAGE. Suggested by Tanaku@M*U*S*H. +Commands: + * The new ']' command prefix causes the rest of the command-line + not to be evaluated by the expression parser. Try: ]think [add(1,1)] + Inspired by Elendor. + * @hook/ignore. [mux] + * @hook/override [Rhost, though they don't call it that] +Attributes: + * @debugforwardlist forwards DEBUG output to dbrefs on the list. + Suggested by Balerion@M*U*S*H. +Tests: + * 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! (If you can't, don't + ask about it, please :) +Locks: + * @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). It doesn't control + page (use @lock/page) or @mail (use @lock/mail). You still + hear 'presence' messages (connects/disconnects/arrivals/leaves) + so you can have a sense of who can hear you but you can't hear. + Patch by Philip Mak. +Fixes: + * Configure script no longer keeps adding -lssl -lcrypto over and + over to the Makefile. Report by Sholevi@M*U*S*H. + * Portability fixes for compiling with MSVC5 by Luke@M*U*S*H. + * The behavior of spaces inside parentheses that aren't part of a + function has been improved. Report by Jason Newquist. [TAP] + * txt/*.html files were being improperly escaped before being + sent to Pueblo connections. Report by Konstantine Shirow. + * mushdb.h includes flags.h, as it relies on constants from there. + Suggested by Philip Mak. + * Better error reporting on some failure messages in chunk allocator. + Patch by Philip Mak. + * @config/set with an invalid option now returns an error. + Report by Sholevi@M*U*S*H. + * Fix to interaction checking in notify_anything that could result + in the wrong check being performed. Report by Philip Mak. + * Help fixes by LeeLaLimaLLama@M*U*S*H, Sunny@M*U*S*H, Sketch@M*U*S*H. + + +Version 1.7.7 patchlevel 19 August 19, 2003 + +Fixes: + * When SSL connections are dropped on reboot, other players weren't + seeing disconnect messages. Now they are. + * Two calls to flaglist_check_long didn't get converted to the new + abstraction layer, making flag_broadcast not work right. + Report by Luminar@M*U*S*H. + + +Version 1.7.7 patchlevel 18 August 19, 2003 + +Major Changes: + * The flag handling code has been additionally abstracted to + allow, in a future patchlevel, @powers to be handled in the + same way that flags are now. +Minor Changes: + * Wrap the OS-dependant code for making sure the mush always has a free + file descriptor available for use in a pair of functions. [SW] +Fixes: + * Linted some ssl-related warnings. Reported by Cheetah@M*U*S*H. + * Compile failed in timer.c unless USE_MAILER was defined. + Reported by Sunny@M*U*S*H. + * Bug allowing players to view internal and mortal_dark attributes + introduced in p17 has been fixed. [TAP] + + +Version 1.7.7 patchlevel 17 August 11, 2003 + +Major changes: + * SSL support, including server and client authentication as options. + This should be considered experimental. New ssl() function returns 1 + if a player/descriptor is using SSL, 0 otherwise. New file README.SSL + documents how to set up SSL. Two things to note: + - SSL connections are dropped on @shutdown/reboot, so SSL users may + wish to write client triggers to reconnect. + - Output flushing behaves slightly differently for SSL connections. + * The way lock keys are handled internally has been rewritten to allow + them to be tracked by the same chunk-management code that handles + attributes. [SW] + * @mail message texts are now stored with the chunk-management code. [SW] + * The new code can no longer read databases created by versions of Penn + before 1.7.5p0. If you need to do this, load it in 1.7.6, shutdown, + and use that database. [SW] +Minor changes: + * A new minimal.db is distributed (older ones probably won't work, + and this one probably won't work with older versions). [TAP] + * Contents/exits lists and functions that use first_visible (like + lcon, lexits, etc.) are now affected by INTERACT_SEE. Suggested by + Prospero@Metro. + * @chan/recall now displays the last 10 lines by default. Use + @chan/recall =0 to get the full buffer. Suggested by [TAP]. + * Various boolexp tweaks. [SW] + * @power provides more verbose feedback. Suggested by Mordie@M*U*S*H. [SW] + * Additional chunk tweaks, including limiting migrations to one + per second. [TAP] + * PROFILING #define for use when profiling the code (surprise). This + just disables the CPU timer. + * When matching $-commands, only call the slower capturing wildcard match + function when we already know it succeeds, since it won't most of the time. + The faster non-capturing function is checked first to find a match. [SW] + * PCRE is initialized once, at startup, rather than testing to see if it has + to be done before each place regular expressions are used. [SW] + * The TERSE flag now applies to objects, not just players. Suggested + by Aur@M*U*S*H. + * The terminfo() function now returns SSL status as well. + * help-like commands without arguments now use the command name + as the argument. E.g. 'news' now looks for topic 'news', instead of + 'help'. If not found, we fall back on help. Patch by Mike Griffiths. + * When an object is zoned to an unlocked ZMO, the ZMO is now autolocked + to =me instead of $me, because it's probably less confusing. + Suggested by Luke@M*U*S*H. + * @name now automatically trims leading and trailing spaces from its + newname argument, to avoid confusing people who use edit() to + generate new names and leave in spaces. Report by [TAP], patch by [SW]. +Commands: + * New 'logargs' and 'logname' restrictions in restrict.cnf allow + per-command logging. Suggested by Saturn @ M3. +Functions: + * The sha1() function has been renamed sha0(), since that's what it + really does. [TAP] + * trimtiny() and trimpenn() work like trim(), but force the TM or + Penn argument style. + * New 'logargs' and 'logname' restrictions in restrict.cnf allow + per-function logging. Suggested by Saturn @ M3. +Fixes: + * The side-effect version of name() was producing a weird return + value. Reported by Saturn@M3. + * Problems with restrict_command and restrict_function with multiple + restrictions now fixed. Report by Sholevi@M*U*S*H. + * stddef.h now included in src/extchat.c. Report by [EEH]. [SW] + * INFO output now includes a missing newline. Report by [EEH]. [SW] + * help BUILDER updated. Report by Laura Langland-Shula. + * down.txt message wasn't being sent. Report by Sholevi@M*U*S*H. [SW] + * New Win32 project files that include the chunk code. [EEH] + * @chan/what no longer highlights the channel's name, as this is + confusing if you use ansified channel names. Suggested by + Oriens@Alexandria. + * ex/mortal now operates more correctly. Report by Amy Kou'ai. + * Fixes from 1.7.6p13. + +Version 1.7.7 patchlevel 16 June 23, 2003 + +Commands: + * New switch /room for 'with' to run a $command available in a remote + location. Suggested by Mike Griffiths. [SW] +Functions: + * Added the terminfo() function, which returns information about a + client's name and capabilities for a particular connection. [SW] + * New lports() function. Like lwho() but returns port descriptors. + For mux2 compatibility. [SW] + * Functions that return information about a connected player now treat + integer arguments as a port descriptor to look up, rather than using + the least-idle connection of a player. To force a player name to + be treated as such even when it's a number, prefix it with a * in + softcode. For mux2 compatibility. [SW] + * Players can use ports() on themselves and use the descriptors + they're connected to as arguments to the information functions. + For mux2 compatibility. [SW] +Minor Changes: + * Compute various chunk stats (total used, total free space, etc.) + on demand instead of keeping running totals. [TAP] + * @chan/what displays information about a channel's recall buffer, if any. + [SW] + * @chan/recall'ed lines are more clearly marked as such. Suggested by + Oriens@Alexandria. [SW] + * Consolidation of a common idiom used to format times throughout the source + into a simple function call. [SW] + * The time a @mail was sent was stored, unusually, as a string. + No longer. Now it's handled the same way as all other times. [SW] +Fixes: + * Bug in resizing @chan/recall buffers fixed. Reported by Oriens@Alexandria. + [SW] + * Objects with user-defined locks had problems with finding built-in locks + on the object. Reported by Walker@M*U*S*H. [SW] + * Unregistered() macro was checking wrong flag name. Report by + Matt Kirby. + * Help fix by Adu@M*U*S*H. + * Potential problem with ambigious names in the information functions fixed. + + +Version 1.7.7 patchlevel 15 June 1, 2003 + +Fixes: + * Problem with checking command flag masks when the number of + flags was an even multiple of 8. Reported by Nymeria and + Mordie@M*U*S*H. + * Tweak to improve efficiency of ancestor checking code and delint + warning reported by Cheetah@M*U*S*H. + * SESSION output no longer misaligned with 5-digit dbrefs. + Reported by Cheetah@M*U*S*H. [TAP]. + * Fixes from 1.7.6p11. + * game/txt/index-files.pl now uses locale information in the + environment to, e.g., correctly lowercase accented characters. + Report by Krad@M*U*S*H. + * Modified several Makefile.SH targets to prevent Javelin from + releasing patches that don't have the autogenerated files + up-to-date for Windows folks. + * Removed some dependence on typedefs that may or may not be in system + header files. [SW] + * Patch compiler warnings. [SW,EEH] + * Help fixes by Mike Griffiths and Oriens@Alexandria. + + +Version 1.7.7 patchlevel 14 May 22, 2003 + +Major changes: + * Ancestors: an object can be configured to serve as an 'ultimate + parent' of every room, exit, thing, or player, and attributes + that are not found on an object or any of its parents may be inherited + from the ancestor for that object type. The ORPHAN flag prevents + ancestors from being used on an object. Patch by Walker@M*U*S*H. + * Mail messages now track not only the dbref of the sender but the + sender's creation time, so messages from dbrefs that have been + nuked and recreated can be distinguished from messages from the + original sender. This modifies the maildb and make it not usable + with older versions. All existing @mail is grandfathered in, and + can't be tracked this way. Suggested by Philip Mak. + * New chunk memory allocator can be used to greatly reduce process + memory requirements by swapping little-used attribute texts out + to disk and caching often-used attribute texts in memory. + This is incompatible with forking dumps, so if you use it, + you'll do nonforking dumps. Configurable in mush.cnf, see comments + there. [TAP] + * Hardcode: new interaction type INTERACT_PRESENCE marks the + arrival/departure/connection/disconnection/grows ears/loses ears + messages. Many message types that used to be considered auditory + (like most @verb-style messages) are now marked as visual instead. +Functions: + * strreplace() works like replace() for strings. [SW] + * fraction(), for turning floating-point numbers into fractions. [SW] + * root(), for finding roots higher than the square root. [SW] +Minor changes: + * We now use wrapper functions atr_value and safe_atr_value instead of + uncompress(AL_STR(...)) or safe_uncompress(AL_STR(...)), so we + can do future work with attribute storage cleanly. [TAP] + * @*payment attributes now receive the amount of money paid in + as %0. Suggested by Sholevi and Time@M*U*S*H. [SW] + * Config options that take times now accept a notation describing what kind + of units to use. For example, 3600s, 60m, 30m1800s, and 1h all refer to + the same period of time. Suggested by Time@M*U*S*H. [SW] + * Doxygen commenting of non-static members is essentially complete! + Pennhacks see: http://www.pennmush.org/docs/1.7.7/html/ + * The mail() function no longer matches non-player objects by name. + * Several additional messages (locks, parents, etc.) are now quieted by + the QUIET flag. Patch by [EEH]. + * New config option default_home sets the room to send homeless things + to. [TAP] + * Added visual progress indicators for utils/mkcmds.sh so that slow + systems won't think they're hung. Suggested by Cheetah@M*U*S*H. +Fixes: + * Fixes from 1.7.6p10. + * The 'i' sort type was not properly implemented. Reported by + Noltar and BlaZE@M*U*S*H. + * Cleanup of all accesses to ATTR values to use AL_STR() in preparation + for future work on attribute storage. [TAP] + * The 'any' string for specifying flag types didn't work properly. + Reported by Krad@M*U*S*H. + * The connect screen may now appear correctly under windows telnet. [SW] + * The more efficient channel buffer shifting code now handles + pathological cases correctly. + * The tag*() functions could leave tags open at the end of full + buffers. No longer. + * Code cleanup in src/notify.c. + * @rejectmotd and @wizmotd set the wrong messages. Report by + Konstantine Shirow. [SW] + * Using @chan/buffer to resize a recall buffer gives feedback. Reported by + Sholevi@M*U*S*H. [SW] + * Help fix for grab() by Adu@AbryssMUSH. + * You can no longer destroy the base_room (or default_home). Suggested + by Philip Mak. [TAP] + +Version 1.7.7 patchlevel 13 April 9, 2003 + +Major changes: + * Interactions (something like "realms" in mux2). Two functions + in local.c can now be used to control conditions under which + objects can see, hear, or match each other. Possibly useful for + implementing umbral worlds, etc. Patch by Vadiv@M*U*S*H. +Functions: + * children(), syntactic sugar for lsearch(all,parent,). + Suggested by Kyieren@M*U*S*H. Patch by BlaZe@M*U*S*H. + * powers() can now take a second argument to set an @power. + Suggested by Rob@BtFMUSH. +Minor changes: + * @config/set can now set null strings. Suggested by Cheetah@M*U*S*H. + * In restart, set LC_ALL as well as LANG from the given LANG value, + in case the user's got an LC_ALL in their shell. + * The channel buffer shifting code has gotten much more efficient. + Suggested by [TAP]. + * @function/restrict can accept arguments of the form '!' + to clear a restriction. Suggested by Saturn@M3. + * Most of the asterisk lines between different login message files + have been removed. Suggested by Vadiv@M*U*S*H most recently. +Fixes: + * Fixes from 1.7.6p9. + * Win32 portability fixes. [EEH] + * deny_silent in access.cnf was ignored in several cases, and no + longer is. Patch by Cloud@Sci-Fi Chat + * Help fixes by Cheetah@M*U*S*H and LeeLaLimaLLama@M*U*S*H. + + +Version 1.7.7 patchlevel 12 March 21, 2003 + +Commands: + * @channel/buffer creates a buffer for a channel to store the most + recent messages broadcast on the channel. @channel/recall can be + used to recall them. These are not stored across reboots and should + be set up by #1's @startup. +Functions/Substitutions: + * accname() gives the accented name of an object (applying @nameaccent). + * %~ gives the accented name of the enactor. +Minor Changes: + * The chat-related commands and functions have been moved out + of bsd.c and funmisc.c and into extchat.c. Patch by Vadiv@M*U*S*H. + * The notification stuff has been moved out of bsd.c and into a new + notify.c file. + * @name no longer requires a password for changing player names, + and ignores one if given. Suggested by Ambrosia@M*U*S*H (and others). + * @hook can not be used on the @password or @newpassword commands. + * The dump_complete message is also shown after a forking dump, + if one is defined. Suggested by Nathan Schuette. + * @lock/leave on a room now prevents people within it from leaving + via exits or via @tel. Suggested by Peter Bengtson, patch by + BlaZe@M*U*S*H. +Fixes: + * Fixes from 1.7.6p8 + * Cleanup of a few new db[x] mentions in the source to use dbdefs.h + macros. Inspired by Vadiv@M*U*S*H. + * @command/restrict didn't work properly for most flags, especially + new ones. Reported by Caesar and Sholevi@M*U*S*H. + * @pemit/list didn't honor NOSPOOF. Patch by Cheetah@M*U*S*H. + + +Version 1.7.7 patchlevel 11 February 22, 2003 + +Commands: + * New IDLE command (socket-level) does nothing, and does not update + the socket's last_time (so it doesn't change idle times). Useful + for people behind lame NAT firewalls that timeout their connections if + nothing is sent for 5 minutes. Suggested by Bolt and BladedThoth@M*U*S*H. +Fixes: + * Win32 (and other OS) portability fixes. [EEH] + * Fixed the openssl Configure thing again. The right way, this time. + +Version 1.7.7 patchlevel 10 February 22, 2003 + +Fixes: + * Fix to stupid typo in Configure script that breaks on systems + without openssl. Argh. + +Version 1.7.7 patchlevel 9 February 20, 2003 + +Functions: + * New function scan() works like @scan. Suggested by Viila@M*U*S*H. +Flags: + * New flag, MISTRUST, prevents an object from controlling anything + but itself. +Configuration: + * mush.cnf directives ansi_justify, globals, and global_connects have + been removed (they are now always on). + * New unconnected_idle_timeout directive in mush.cnf controls + timeouts for connections idle at the connect screen. + * New max_guests directive in mush.cnf can limit the number of + guests allowed to connect at once. Suggested by Sholevi@M*U*SH. +Minor Changes: + * New lflags search class takes a list of flag names. + * Improved connection failure messages. + * Somewhat more informative message when you @chan/gag,hide,mute + all channels at once. Suggested by Tanaku and Kevin@M*U*S*H. + * Began commenting files using doxygen. + * Internal code cleanup. Mostly converting some magic numbers to + #define'd symbols, and some #define'd symbols to enums for better + debugging and improved readability. Also some conversion of old + K&R style functions. [SW] + * sort() and the set functions understand all the same comparison + types as comp(). [SW] + * Case-sensitive comparison currently isn't always possible, depending + on the locale the mush is running on. Help files reflect this. [SW] + * @uptime shows the time of the last successful database save, and + the time of future events like saves, not just the time until them. + Suggested by Cheetah@M*U*S*H. [SW] + * Improvements to reporting of failed saves. [SW] + * Code cleanup. [SW] + * tel() now takes a third argument that makes it function like + @tel/silent. Suggested by Cheetah@M*U*S*H. [SW] + * @idescformat operates like @descformat for internal descriptions. + Suggested by Tanya@M*U*S*H. +Fixes: + * local_startup() was getting run earlier than in the past due to + changes in the startup sequence. This has been rectified, so + local_startup() again runs after all other initialization (and + just before all object startups are triggered). Report by + BladedThoth and grapenut@M*U*S*H. + * Improved testing for openssl libraries in Configure. The old + approach used to cause problems on systems with runtime-only + openssl installations without development libraries. + * help opaque mentions that opaque blocks look/outside. Suggested + by Cheetah@M*U*S*H. + * itext() and inum() now generate an error on a null argument, + regardless of tiny_math and null_eq_zero settings. Reported by + Intrevis@M*U*S*H. + * Another fix to the new matcher. Bug report by Kyieren@M*U*S*H. + * @flag/alias was broken. Fixed. Reported by Kevin@M*U*S*H. + + +Version 1.7.7 patchlevel 8 January 27, 2003 + +Minor Changes: + * command_add now expects to receive the flag list and the + switch list as strings. Folks who hack into cmdlocal.c should + take note and read example in the new cmdlocal.dst +Fixes: + * Players were not created with all the player_flags. In a related + bug, checking of command flag restrictions wouldn't work with + all flags. Reported by Cory Descoteau. + * Flagmasks on commands weren't grown properly when flags were added. + + +Version 1.7.7 patchlevel 7 January 25, 2003 + +Fixes: + * Crash bug in zone-checking during @dbck fixed. + + +Version 1.7.7 patchlevel 6 January 23, 2003 + +Major changes: + * Rewrite of the flag system. The new system allows for any number + of flags, which may apply to any set of object types (the flags/toggles + distinction has been eliminated). Flags without single-character + abbreviations are better supported. Flags are stored in the object + database, and are referenced in hardcode and the db by the name + of the flag rather than bit positions. Older databases will be + automatically converted to the new format on load, but can not be + converted back (so make backups!). New flaglocal.dst file for + hardcode patch hackers to add custom flags. + * Rewrite of the matcher code (src/match.c). Some semantics of the + matching have changed: matching adjectives are parsed earlier and + restrict the match for greater efficiency; they also behave more + close as described in the help with respect to object ordering. + In addition, you can now do things by dbref without controlling + the object in many cases that previously required control. + Provoked by bug reports by Intrevis@M*U*S*H and Philip Mak. +Commands: + * @flag allows God to manipulate flags within the game, including + adding new flags. Flags additions/changes are maintained across + reboots, so this command does not need to be run at every startup. +Functions: + * lflags(), orlflags(), andlflags() return or test flag lists. +Minor changes: + * New NUMVERSION macro defined in hdrs/version.h that can be tested + by hardcode hacks to add code conditional on version. + * Much cleanup of @wall. Minimally-user-visible changes: + The @rwallemit, @rwallpose, @wallemit, @wallpose, @wizemit and + @wizpose commands have been removed. @wall no longer accepts the + /wizard, /royalty, and /pose switches, and @rwall and @wizwall accept + the /emit switch. Suggested by Vadiv@M*U*S*H, though he'd really + rather see @wall removed. + * @lock and @unlock now show which type of lock was set/cleared. + @lset now specifically notes that lock flags are being changed. + Suggested by Tanaku@M*U*S*H. +Fixes: + * @boot/me will no longer boot a connection if it is the sole + connection the player, even if it's technically inactive. + Suggested by Ambrosia@M*U*S*H. + * @boot'ing an active self (by descriptor) crashes the MUSH. + Discovered by Ashlynn@ChicagoMUSH. + * The thorn and eth characters generated with accent() would + convert to 'th' when stripped or viewed under NOACCENT, which + could be very confusing in object names. Same for the German sharp + s, which converted to 'ss'. Until we can cleverly set up separate + tables for object name unparsing, these have been reverted to their + old behavior so that stripaccents(accent(X,Y)) should return X for + any X and Y. Reported by DeeJee, Intrevis, and Time (@M*U*S*H). + + +Version 1.7.7 patchlevel 5 January 7, 2003 + +Fixes: + * Fixes from 1.7.6p5. + + +Version 1.7.7 patchlevel 4 January 2, 2003 + +Minor Changes: + * When room_connects is on, @aconnect and @adisconnect also + functions on things when players (dis)connect inside them. + Suggested by Philip Mak. [SW] + * Parser-enforced argument counts for user-defined @functions, + as an option to @function. +Config: + * New mush.cnf option max_global_fns allows increasing the number + of @functions allowed without editing source code. If you change + this, you should reboot the MUSH or bad things can happen. + Suggested by hilikiradi@Dardalani. +Fixes: + * mkcmds.sh doesn't always regenerate every file, only what's + needed. Speeds up compiles. Suggested by Philip Mak. [SW] + * Fixes from 1.7.6p4. + + +Version 1.7.7 patchlevel 3 December 25, 2002 + +Commands: + * @sitelock/check tells you which rule, if any, would match. +Fixes: + * The objdata hashtable routines had a serious bug that could + cause crashes. + + +Version 1.7.7 patchlevel 2 December 22, 2002 + +Major Changes: + * The LOCAL_DATA define has been removed along with the pointer + in the object structure. The local functions called on creation, + destruction, and cloning are now always called. Objects can + now store data in a single hashtable using the set_objdata() + and get_objdata() functions. As a proof of concept, the transitory + channel lists on objects are now stored here, and the "channels" + pointer has been removed from the object structure. Design + and much of the implementation by Vadiv@M*U*S*H. +Powers: + * can_nspemit power can be used to provide access to @nspemit + without a Wizard bit. [SW] +Functions: + * lpos from Mux, TM3. [SW] +Fixes: + * Fix to some gcc-specific macros reported by Peter Bengston and + Michael Holbrook. [SW] + * Improvements to stripaccents/noaccents conversions. [SW] + * Fixes from 1.7.6p3. + + +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: + * Clients that understand telnet NAWS (See RFC 1073) can tell the mush + what dimensions a given connection's display is. Added the + width() and height() functions, and SCREENWIDTH and SCREENHEIGHT + psuedo-commands for getting/setting this information from the mush. + This changes the reboot.db format and requires a full shutdown. [SW] + * Two new atoms for locks. "#true" in a lock is always evaluated as true + (anyone can pass), and "#false" is always evaluated as false (no one + can pass). Suggested by Vadiv@M*U*S*H. +Internationalization: + * The pronoun sets are no longer hardcoded. If you're running in a + locale other than C or en*, you'll see weird looking pronoun descriptions + for things like %s until a translation team translates them to your + locale's language. Suggested by Dandy@M*U*S*H. +Attributes: + * @DESCFORMAT can be used to separate description contents from formatting. + Suggested by Philip Mak. + * VEILED attribute flag causes attribute value not to be displayed + on default examine, but otherwise accessible as usual. Good for spammy + data attributes. See 'help attribute flags'. Suggested by Cheetah@M*U*S*H. +Commands: + * examine/all shows contents of veiled attributes. Suggested by + Intrevis@M*U*S*H. +Flags: + * The FIXED and ROYALTY flags are no longer optional. +Minor Changes: + * Object creation times are no longer optional. + * Warnings are no longer a compile-time option; they're turned on. + You can stop automatic warnings in mush.cnf, as before. + * Cleanup of the telnet-option code in general. [SW] + * Consolidation of much of the code for functions that return information + about the least-idle connection of a given player. [SW] + * The tiny_attrs configuration option has been removed. + * Removed a lot of preprocessor checks for conditionally including header + files that always succeed because they're standard C headers. [SW] + * Removed the Size_t typedef in favor of the standard size_t. [SW] + * Some optimization hints for the GCC and VS.NET compilers. [SW] + * We try to be more conservative about when we show lines of + asterisks around motd-type messages, to avoid showing them when + there's no message. + * Continued ansi-C-ification of function declarations. diff --git a/CHANGES.OLD b/CHANGES.OLD new file mode 100644 index 0000000..93b2499 --- /dev/null +++ b/CHANGES.OLD @@ -0,0 +1,4302 @@ +This is the old changes file for PennMUSH. Changes are reported in reverse +chronological order (more recent first) + +[TN] is Thorvald Natvig, a PennMUSH developer (aka Trivian) +[TAP] is T. Alexander Popiel, a PennMUSH developer (aka Talek) +[SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos) +[LdW] is Luuk de Waard, a PennMUSH developer (aka Halatir) +[RLM] is Ralph Melton, a former PennMUSH developer +[NJG] is Nick Gammon, the Win32 porter +[DW] is Dan Williams, the MacOS porter +[2.2] refers to code which originated with the TinyMUSH 2.2 developers +[3] refers to code by (or inspired by) TinyMUSH 3.0 +[Rhost] refers to code by (or inspired by) RhostMUSH + +========================================================================== + +Version 1.7.3 patchlevel 14 January 29, 2001 + +Major Changes: + * Commands and functions can now be aliased to other names + in mush.cnf, so you can provide translated command names + as well as the english one, etc. Suggested at various times + by Krad@M*U*S*H and David@M*U*S*H. New file aliases.cnf + in game/ is created to put these command_alias and function_alias + directives (as well as reserve_alias). [SW] +Minor Changes: + * smalloc and bigram compression options are no longer supported. [SW] + * Internal improvements to @search/lsearch, which are now more + consistent with one another. [SW] + * mush.cnf options that refer to dbrefs now understand # as + well as just . They are also formatted as dbrefs in @config + and config(). [SW] + * Much longer game/names.cnf file contributed by Kyieren@M*U*S*H. + * New internal function notify_format() to replace notify+tprintf + more safely. [SW] + * Tweaks to network activity timeout code. [SW] + * @stat and lstats no longer needs to scan the entire database. [SW] +Commands: + * @switch and @select can now take a /notify switch, like @dolist. + * Players may @chown by dbref, but they must still be carrying + the object if it's a thing. Suggested by Kyieren@M*U*S*H. + * @clone can now clone rooms. Suggested by Kyieren@M*U*S*H. + * @verb's matching of the argument has been relaxed so + non-privileged objects can use it on remote actors, if the normal + permission checks succeed. This makes @verb much more useful for zones + and master room objects. [SW] +Attributes: + * @forwardlist [2.2,SW] +Functions: + * itemize() takes a list "a b c" and produces "a, b, and c" and + similar tricks. Also callable as elist() for Rhost compatibility. + * ilev() returns the current iter nesting level. [Rhost,SW] +Fixes: + * When indexing help files, ones that aren't in the right format + weren't being properly closed. Report by Nammyung@M*U*S*H. [SW] + * We're much more forgiving about help files that start with + blank lines now. + * Help updates by Kyieren@M*U*S*H, [SW] + * Games w/o MAIL_ALIAS couldn't load maildbs that had mail aliases. + Reported by Nymeria. [SW] + * max_pennies had a limit of 10,000 in conf.c, even though it + has always defaulted to 100,000. Reported by Intrevis@M*U*S*H. + * src/filecopy.c didn't include hdrs/log.h. Fixed by Noltar@Korongil. + * MacOS portability fixes. [DW] + * vsnprintf used in place of vsprintf everywhere when available. [SW] + * Cleanup of @atrlock code. [SW] + * '#' without any trailing numbers was treated as #0 when used as a + dbref. [SW] + * Added explicit checking for lower-case letters in good_atr_name(). [SW] + * Trying to set an attribute with a bad name now gives a better + error message. [SW] + * Fix to potential overflow bug in revwords. [SW] + * Fix to potential overflow bug in @grep. [SW] + * Configure checks for snprintf. Systems unfortunate enough not to + have this (Solaris 2.5.1, for example) are stuck with sprintf. + Report by Broncalo@DuneIII. + * CHARGES were decremented whenever an A-attribute would be + executed, *even if the attribute wasn't set on the object*. + Reported by Kyieren@M*U*S*H. + +Version 1.7.3 patchlevel 13 January 9, 2001 + +Major Changes: + * Semaphores may use attributes other than SEMAPHORE. These + "named semaphores" make it easier to have multiple semaphores + waiting on the same object. [SW] + * New attribute flag AF_NODUMP prevents attributes from being + dumped to the db. It applies to QUEUE, SEMAPHORE, and attributes + used as named SEMAPHORES. [SW] +Commands: + * @wait/until can be used to put commands on the wait queue until + some absolute time (in secs) is reached. [SW] + * @cpattr/noflagcopy copies attribute data without flags. + Same for @mvattr. Suggested by Noltar@Korongil. +Functions: + * foreach() takes start and end arguments like TM3/MUX2. [3,SW] + * locate() has a new option to force matching the preferred type, + and an undocumented option to eliminate ambiguous matching is now + documented. [SW] +Minor Changes: + * Experimental support for translating 8-bit accented characters to HTML + entities for Pueblo. [SW] + * Objects without a @lock/zone that are used as zones are noticed and + warned about during dbcks. [SW] + * Some people prefer that +channel "foo now cause you to say "foo + on the channel, instead of stripping the initial quote. Now + it's a mush.cnf option (chat_strip_quote). Suggested by Dave Milford. + * isint() now ignores tiny_math, so isint(foo) will always return 0. [SW] +Fixes: + * Hopefully fixed a problem with puppets doing look for non-Pueblo + players with Pueblo support turned on. The line after the look + could appear to come from the puppet even if it didn't. [SW] + * If you disabled a command with a one-character token (like say), + then running the command with the token ("hi!) would fail, but + wouldn't return the right thing for $command matching. Now it + returns the canoncalized raw command (SAY hi!) so you can trap + it in softcode. Reported by Mackenzie@SWGT Mush + * General linting [SW] + * Help fixes by Eratl@M*U*S*H. + * make customize doesn't try to link mkindx any more. And README and + os2/Makefile don't refer to it either. By Bobby Bailey (Chil@M*U*S*H). + * The internal tprintf() function is safer. [SW] + * Crash bug in @edit fixed, and @edit code is cleaned up. [SW] + * max_pennies documented in mush.cnf. Noted by Oriens@Alexandria + * cmdlocal.dst now includes cmds.h. Reported by David@M*U*S*H. + + +Version 1.7.3 patchlevel 12 January 4, 2001 + +Locks: + * A new @lock/chzone, set on a ZMO, controls who may @chzone + objects to the ZMO. This can simplify multi-player building + using ZMOs. Suggested by David@M*U*S*H +Commands: + * @wcheck/me checks all of a player's objects for them. +Functions: + * cflags() function gets channel flags. + * ctitle() gets channel title for an object. Suggested by Luke@M*U*S*H. + * strinsert() function does insert() on strings. Suggested by + Reagan@M*U*S*H. [SW] + * channels() on an object you can't examine now shows you channels + that you have in common with it. Suggested by Trispis@M*U*S*H +Minor changes: + * Runaway objects are now logged, along with the command that + pushed them over the edge. Suggested by Trispis@M*U*S*H. + * All instances of fprintf(stderr,...) after logging is started + are now handled through do_rawlog(LT_ERR,...). By David@M*U*S*H. + * @atrchown works more reasonably. [SW] + * @lock/link on an unlinked exit restricts who may link it. + * Everyone (even mortals) sees object names at the top of + their descriptions when they look at them. Suggested by Jeff + Ferrell most recently. + * New reserve_alias mush.cnf directive makes run-time command + alias reservation possible. Suggested by Jeff Ferrell. + * Mortals may use @command to get info about commands. Suggested by + Chili@M*U*S*H. + * Messages logged during help file indexing distinguish indexing + of admin topics. Suggested by mith@M*U*S*H +Fixes: + * Help fixes by [SW], Jeff Ferrell, mith@M*U*S*H, Mirth@AtheneuMUSH. + * Help update to @cpattr based on behavior noted by Noltar@Korongil. + * cwho and @chan/who behave better with hidden (@hide) players. + Reported by Reagan@M*U*S*H. + * MUSHes with no @functions crashed on @list calls due to a + problem with the hashtable code. Reported by Whiskey. [SW] + * A bug in handling of errors under debug in process_expression + was reported by Reagan@M*U*S*H. [SW] + * Rare memory leak in process_expression fixed. [SW] + * Inconsistencies in the handling of destroyed objects/players + and their locations fixed. [SW] + * The QUEUE attribute was not properly cleared on restart + for non-player objects. It was buggy in other ways, too. [SW] + * The AF_SAFE attribute flag couldn't be reset. Reported by + Pegasus@StarQuest. + * @teleporting into garbage could cause crashes. Reported by Howie + * The help_command and ahelp_command directives now look for + whitespace generally, not spaces specifically. + Suggested by Krad@M*U*S*H + * SIGHUP once again re-reads the config file. [SW] + * If an exit @created an object, that object would be inside the exit + until the next dbck. Now it is created in the exit's source room. [SW] + * Turning the lowest possible integer number into a string could + result in garbage output. [SW] + * Solaris needed arpa/nameser.h before resolv.h in mysocket.c + +Version 1.7.3 patchlevel 11 December 4, 2000 + +Minor changes: + * Added 'comsys' as help alias for 'chat'. Suggested by David@M*U*S*H + * New win32 project files and MSVC build instructions by Jenny Lind. +Fixes: + * Improved test for non-broken getdate and getnameinfo. + * Loading panic dumps does better on chatdb. By Maverick@M*U*S*H + * You may leave a channel even if you're the wrong type + to get onto it. Suggested by Cheetah@M*U*S*H. + * Typo in the win32 strcasecmp code fixed [NJG] + * stddev's algorithm improved. [TAP] + * If the go command is restricted, other commands produce spurious + errors during the exit-matching phase of command parsing. + Reported by Jamie@M*U*S*H + +Version 1.7.3 patchlevel 10 November 20, 2000 + +Major Changes: + * Improved detection of errors saving the game. If any problems + are encountered, the save is aborted, and online admins notified so + they can fix the problem before finding out about it too late. [SW] +Flags: + * The INHERIT flag has been renamed TRUST, which better describes + its function. INHERIT remains as an alias. +Commands: + * @chan now takes /ungag, /unhide, and /unmute as well as the + usual @chan/gag =no. By David@M*U*S*H. +Minor Changes: + * money() called on a no_pay player returns the value of + MAX_PENNIES to ease softcode checks. Suggested by Oriens@Alexandria. + * Removed help and &help entries from the distributed pennmush.nws + because people will generally want to override them anyway + and we shouldn't introduce problems. Suggested by Jeff Heinen. + * safe_str and friends optimize trivial 0 and 1 letter strings. [SW] + * A version of word-based compression that's almost 8-bit clean + is now included. [SW] + * We now use stricmp and friends for strcasecmp and friends on + Win32, rather than roll our own. [SW] +Fixes: + * @mail aliases couldn't be used by players who didn't have + permissions to see the alias members, which is wrong. + Fixed now. Report by Grinna@M*U*S*H. + * lnum(1) and lnum(0,0) were broken. Report by Jeff Ferrell + * Help updates. [SW] + * @set obj/notanattribute=flag now returns a 'No such attribute' error. + Reported by David@M*U*S*H. [SW] + * Help file indexing tries to detect files that aren't in the right + format. [SW] + * function restrictions were checking the wrong object. [SW] + * objmem and playermem counted eval-locks and atr-locks incorrectly. + Reported by Javin@DynamixMUSH. [SW] + * Fixes to win32 NT_TCP stuff. [NJG] + * Rare memory leak in do_page fixed by David@M*U*S*H. + +Version 1.7.3 patchlevel 9 November 20, 2000 + +Major Changes: + * Help files and their associated commands are now defined with + the 'help_command' (or 'ahelp_command') directive + in mush.cnf. So you can translate the help to french and + add an "aidez-moi" command if you like. [SW] + * Help file indexes are now kept in memory and built by the + server. The mkindx program is no longer used. [SW] + * Added restrict_function and @function/restrict, like the versions + for commands. [SW] + * User @functions can now override built-in functions, if you + @function/delete the built-in first. You can also @function/restore + the built-in back. [SW] +Attributes: + * @[oa]zenter and @[oa]zleave on ZMOs are triggered when someone + enters or leaves a given zone. Motion between rooms in the same + zone doesn't trigger these. "Zone" is based on the mover's + absolute room (outermost container) so that entering and leaving + an unzoned object in a zoned room doesn't trigger these either. + Suggested by Michael Kurtz. +Commands: + * New /silent switch for @teleport without @[o|a|ox]tport msgs. +Minor Changes: + * Still less allocation involved in outputting text to connections. [SW] + * @scan has better output when multiple attribs match. [SW] + * Added internal absolute_room function for use by fun_room + and move.c and wiz.c, etc. + * MEM_CHECK now uses a sorted linked list and is faster. [SW] +Fixes: + * References to kill_timer removed from win32 sections. [SW] + * conf.c reports error via logging routines, not fprintf. [SW] + * Assorted minor bug and warning fixes. [SW] + * Fix to example in help regedit by Amberyl. + * @wait and other timing functions were broken under win32. + Fixed now. [LdW] + + +Version 1.7.3 patchlevel 8 November 12, 2000 + +Major Changes: + * Objects' names are stored in a string tree like attributes, so + we don't have hundreds of copies of 'West ;west;w' and such + taking up memory. Attribute name "hash table" is now a strtree. [SW] + * We no longer use alarm() to know when to run stuff on the queue. [SW] + * @shutdown/reboot is now supported on Windows builds. This is + slightly experimental. By Revian. +Minor Changes: + * %qa-%qz now operate as global registers like %q0-%q9. + Suggested by Trispis@M*U*S*H and probably others. + * Hashtable lookups are faster (collision chains are sorted) [SW] + * @uptime/mortal suppresses the extra process information [SW] + * Wizard @uptime prints better process information on linux. [SW] + * @listen, @filter and @infilter respect the REGEXP and CASE attribute + flags. Suggested by Maestro@M*U*S*H [SW] + * Having many @waits or semaphores is more efficient, because we + sort those queues by time and we stop looking sooner. [SW] + * User-defined lock names must follow the same rules as attribute + names. The name part of attrib and eval locks have to also. [SW] + * @chan/title's confirmation message is nicer. [SW] + * Minor optimizations related to strcpy() and malloc() overhead. [SW] + * safe_format uses vsnprintf if your system has it. By Luke@M*U*S*H. + * replace_string is safer. By Luke@M*U*S*H. +Fixes: + * iter() is smarter about quitting when the function invocation + limit is reached or the buffer is filled. [TAP] + * lnum() has been greatly sped up. [TAP] + * RWHO references removed from game/mushcnf.dst, game/restart, + etc. by mith@M*U*S*H. + * Fix to help filter by Revian. + * COMPRESSION_TYPE 0 didn't compile. Report by David@M*U*S*H. + * Clarification of @lock/teleport in help @elock by Envinyatar@M*U*S*H + * Compiling w/o MAIL_ALIASES didn't declare load_maliases. + Reported by Envinyatar@M*U*S*H + * clone() was stomping %0-%9. Report by Revian. + * @dol with an empty list now does the right thing (nothing) + instead of running the command once. Report by Linda Naughton [SW] + * spname cleanup by mith@M*U*S*H. + * Fixed a bug in @function function-name [SW] + * make update should finally handle CHAT_TOKEN_ALIAS right. + It's also smarter with mush.cnf + * isword() on a null string now returns 0. Suggested by Ashen-Shugar. + * channels(object) returns a better error when object isn't matched. + Suggested by Trispis. + * Fix to help rand() to reflect actual error return value. Reported + by Philip Mak. + * More translated strings noted by Krad. + * Problems with encrypt()'s logic fixed by Ashen-Shugar. [Rhost] + * Other encrypt() sillyness fixed by Brazil. + * Potential crashers around DEBUG and other buffer overruns + have been fixed. Report by Tajan and Rimnar. [SW] + * notify_anything allocates less memory. [SW] + * Fixed mistagged memcheck "restart.descriptor". + * MacOS portability changes. Should build on MacOS X public beta + (Darwin) systems nearly straightaway. [DW] + * Restart script test for already-running MUSH condensed to one + line. Suggested most recently by Cory Albrecht. + * Serious crash bug in page fixed. Reported by Revian. + * Win32 bugs fixed by Luke@M*U*S*H: problems with dumping + compression suffixes, problems with @uptime + * MUSH no longer crashes if a player alias is > 32 chars in length. + It truncates names that are too long instead. By Luke@M*U*S*H. + * We don't check AF_PRIVATE attributes for $/^commands on children. + By Luke@M*U*S*H. + * Under win32, the MUSH would often start ignoring commands from + players after the first 98 per connection. Fixed by Revian. + +Version 1.7.3 patchlevel 7 October 12, 2000 + +Functions: + * filterbool(), for TM3 compatibility. Like filter(), + but tests for any true value, not just 1. [3,SW] + * case(), for TM3 compatibility, and caseall(). Like switch() + and switchall(), but does an exact match, not wildcard. [3,SW] + * valid() takes more categories. [SW] + * localize(), for TM3 compatibility. Like a cross between + s() and ulocal(). [3,SW] +Commands: + * @break, for Rhost compatibility. Stops processing the + current action list. [Rhost,SW] + * @enable and @disable can be used on any boolean config option. [SW] + * @function/enable and @function/disable for built-ins + * @function function-name reports some information on the function, + like @command command-name. +Flags: + * New attribute flag 'safe' prevents accidental modification. + Suggested by Stephen Viscido. [TAP] +Minor Changes: + * The daytime config option is no more. Do a few @searches in + its honor. [SW] + * lsearch() permission is controlled by @search, and entrances() + by @entrances, for consistency with other functions that have + a corresponding command. [SW] + * The number of reboots is tracked, and the restarts() function + added, for TM3 compatibility. [3,SW] + * Rearranged some compile flags to suit systems that have + /usr/local/include/ident.h. By Luiz Claudio Duarte. + * More strings marked for translation. By Krad@M*U*S*H + * :, [, ], (, and ) are no longer legal in attribute names + due to ambiguities and security issues. [TAP,SW] + * Ranges in @search, lsearch() and @find can be either #dbrefs or + (for backwards compatibility), integers. Inspired by ElendorMUSH. [SW] + * Broadcast messages in bsd.c replaced with GAME prefix. + Suggested by Krad@M*U*S*H. +Fixes: + * Fixed a bug in filter() where it only looked + at the first character of the evaluated attribute. [SW] + * Some more noise from info_slave was removed. [SW] + * do_pcreate and do_chownall now live in game.h and not + externs.h. Reported by Maestro@M*U*S*H. + * Clean-up of atr_add calls in void context. [TAP] + * IPv6 buglet fixed. Report by Vexon@M*U*S*H. [SW] + * @config/set can no longer be used to set options in the files + and messages categories, as this has icky consequences. [SW] + * Fixed a logic bug in letters_to_privs where not all the letters + were being turned into privs properly. Report by Bolt@M*U*S*H [SW] + * Fix to isint() so that isint(1a) is 0. [SW] + * Added safe_boolean internal function, and fixed a hang bug + in edit() reported by Walker@M*U*S*H. [SW] + * Fixed problems in panic dumps/reads of maildb and chatdb. [SW] + * @edit is a bit more efficient. [SW] + * Assorted lock structures are allocated in big chunks like + attribute structures, to save malloc overhead. [SW] + * User-defined lock names are stored in the attribute name tree. [SW] + * Various help fixes [SW, Javelin] + * LASTLOGOUT time now forces two-digit day for convtime niceness. [SW] + * Very large malias names or member lists could cause buffer + overruns. [SW] + * Buffer overrun fix, fix to str_chr. [TAP] + * tprintfs removed from DEBUG output so DEBUG doesn't mess up + messages in ^-commands anymore. [TAP] + +Version 1.7.3 patchlevel 6 September 20, 2000 + +Minor Changes: + * Translation files are now archived separately on the ftp site. + * A variety of options.h settings have been removed. + EXTENDED_ANSI, DUMP_EMPTY_ATTRS, DUMP_LESS_GARBAGE and the *_LOCK + defines are totally gone. [SW] + OLD_NEWLINES, DELETE_ATTRS and VISIBLE_EMPTY_ATTRS have been + moved out of options.h as they're special-purpose. [SW] + * More common function error messages were made into variables + rather than being hardcoded in as string literals. [SW] + * If a player is set HALT, their queued commands will not run. + * Speedup in process_expression. [TAP]. +Functions: + * The regedit(?:all)?i? family of functions, like perl's s///. [SW] + * Case-insenstive versions of regrab() and regraball(). [SW] + * etimefmt(), which is to timestring() as timefmt() is to time(). [SW] +Fixes: + * Error messages that were already variables are now translated. [SW] + * Fixes to various metaconfig rules. [SW] + * Open_Anywhere and Link_Anywhere were sharing the same + bitmask. Fixed. [SW] + * You can escape : in $command patterns that are being regexp- + matched now. [SW] + * Rewrites of the regexp functions so that, say, regrab() and + regraball() point to the same actual code, using called_as to + know when to stop. They also use PCRE's match optimizing + pcre_study() function when appropriate. [SW] + * Buglets in game/restart and game/mushcnf.dst fixed. + Reported by Krad and Nymeria at M*U*S*H. + * page_aliases directive in mush.cnf works now. Report by Nymeria. + * Same for float_precision. Report by Oleo@M*U*S*H. + * mushtype.h now included in compress.c. [DW] + * Less noise in log/netmush.log from failed ident queries. + * More strings marked for translation. + * Fixes to problems with @search reported by Oleo@M*U*S*H. + * Weird evaluation of functions in softcoded commands fixed. [TAP] + * Cleanup of typos here and there by Padraic@M*U*S*H. + + +Version 1.7.3 patchlevel 5 September 7, 2000 + +Minor Changes: + * FLOATING_POINT is no longer an option (it's always on). [SW] + * EXTENDED_ANSI defaults to enabled. [SW] +Attributes: + * @receive/@oreceive/@areceive triggered on the recipient + after a get or give, so you've got access to who caused + you to acquire the object and the object's dbref now. + * @give/@ogive/@agive triggered on the giver with object's + dbref in %0. Suggested by Oriens@Alexandria. +Fixes: + * Fixes for systems with broken or incomplete IPv6 support. [SW] + * Uses of index() changed to strchr() for consistency. [SW] + * Much removal of duplicate function prototypes and rearranging + of headers. hdrs/globals.h is now hdrs/case.h. hdrs/intrface.h is + no more, and hdrs/boolexp.h, hdrs/log.h were added. [SW] + * @search supports "quoted player names". + * We no longer report failed connect to ident servers in the log. + +Version 1.7.3 patchlevel 4 August 8, 2000 + +Major Changes: + * Internationalization: + * Support for international time formats via LC_TIME locale [SW] + * Support for message translation + * Support for locale-sensitive ordering of strings (LC_COLLATE) [SW] + To take advantage of the new features, you should have your + LANG environment variable set to an appropriate locale + before you 'make install' (which will cause the right message + catalog to be compiled), and you should see the section + in game/restart for setting it there (which will actually cause + the server to use it). + * IPv6 support [SW] +Commands: + * @dolist/delim and @map/delim [SW] + * @stats/tables [SW] + * SESSION command displays session statistics (experimental) [SW] +Functions: + * uldefault(), like udefault but saves registers like ulocal() [SW] + * switchall(), for Tiny compatibility. [SW] + * cemit() with an option to act like @cemit/noisy [SW] + * vmin() and vmax(), for returning the min and max of each pair in two + vectors. [SW] + * utctime(), convutcsecs() for UTC/GMT time instead of server-local. [SW] + * convtime() uses getdate() if present, along with a variety of templates + * that it can accept. [SW] + * timefmt() - like the strftime() C function. [SW] + * pcreate() side effect function suggested by Adamas and Padraic@M*U*S*H + * starttime() now returns the first startup time, and + restarttime() returns the time of the last @shutdown/reboot [SW] +Minor Changes: + * +help is mentioned in help help. Suggested by Trispis@M*U*S*H. + * include directive for config files, with an example moving all + the restrict_command's to another file. [SW] + * make indent runs expand, then indent, because indent doesn't seem to + handle tabs very well. [SW] + * index-files.pl sorts patchlevels correctly. Patch by Jeff + Heinen. + * LASTLOGOUT attribute records logout time, like LAST, but not + visual. Suggested by Oriens@Alexandria, and others. + * Internal cleanup by David@M*U*S*H. New @config category 'messages', + no more OBJECT_ENDOWMENT or OBJECT_DEPOSIT macros, etc. + * Internal functions safe_integer(), safe_number(), and safe_dbref() + to replace safe_str(unparse_FOO(data), buff, bp) calls [SW] + * You can now @trigger an attribute containing a $command or + ^listen and it'll work (skipping the $...: or ^...: parts). + So you can now do this: + &DO_WHO obj=$who *: @pemit %#=[u(who,%0)] + &DO_+WHO obj=$+who *: @tr me/do_who=%0 + (But you can do this much more efficiently with regexp...) +Fixes: + * table() is less CPU-intensive in extreme cases. [SW] + * Hopefully, Configure now determines pagesize on FreeBSD. + Method suggested by Matt Harris. + * CHAT_TOKEN_ALIAS comment clarification by Oleo@M*U*S*H. + * pcre regexp engine updated to version 3.4. + * Typo in @chan/who fixed by Vexon@M*U*S*H. + * @attribute/access won't modify AF_INTERNAL attributes now. + * Additional win32 portability fixes. [NJG] + * con() was buggy in a bad way. Fixed now. + * Configure -d should now work on linux systems that don't have + crypt libraries. Reports by mith and Inek@M*U*S*H. + * Fix to Z_TEL on things. + * Help fix to @lock5 by Datron@SW2. +Languages: + * Swedish and Hungarian translations for most strings are + included in this patchlevel. + + +Version 1.7.3 patchlevel 3 July 12, 2000 + +Major Changes: + * Restrictions to the 7-bit ascii charset have largely been removed + except in attribute names, to help international users. [SW] + * If available, we now use setlocale to support international + charsets (and eventually other conventions, though this should + be considered experimental). If you set your LC_CTYPE environment + variable to, say, 'fr_FR', french-accented characters should work. + Wide (multibyte) charsets are not supported. +Minor Changes: + * Internal cleanup of page/whisper code by David@M*U*S*H. + * New mush.cnf directive, page_aliases, for showing alias of + paging player. Supported by code by David@M*U*S*H. + Requested by many. A contrib version by Flame dates to 1996. + * @chat on a non-existant channel returns an error message. [SW] + * Two new CRYPT_SYSTEM options. One checks both SHS and crypt(3) + for passwords, and saves them back using SHS. The other does + the same for plaintext passwords. These should encourage folks + who currently use crypt(3) to make a painless move to SHS. [SW] +Commands: + * @remit can take /silent and /noisy switches now. Suggested by + Philip Mak. + * @lemit and @emit can take /silent switch. [SW] + * @config/set can set configuration parameters at runtime. [SW] +Functions: + * The set algebra functions can be given a sort order for output. [SW] +Fixes: + * CHAT_TOKEN_ALIAS could get defined w/o a character value. + Added a better explanation of CHAT_TOKEN_ALIAS in options.h.dist. + and fixed utils/update.pl to handle commented defines that take + values a bit better. Report by Nymeria@M*U*S*H. + * You can no longer initiate following a disconnected player. + Report by Dave@Galactic. + * CHANGES for 1.7.1 and 1.7.0 were missing. Back now. + * Typo in options.h.dist corrected. Report by Padraic@M*U*S*H. + * Small Configure portability improvements. + * Better handling of cases where the maildb has messages from + dbrefs that are out of range (due to truncating a db to remove + corruption, for example). Suggested by Ashen-Shugar. + * We now check for sitelocked sites before asking info_slave to + do ident lookups. + * Many help clarifications. [SW] + * linux Configure can use nm to find symbols, finally. + * help locate() now includes the z flag. + + +Version 1.7.3 patchlevel 2 June 3, 2000 + +Commands: + * New @sitelock options to control access to god, wizards, admin + by site. [SW] + * @force can now take /noeval [SW] + +Functions: + * squish() can take a second argument to squish non-spaces. [SW] + * div(), floordiv(), modulo(), and remainder(), a set of functions + jointly adopted by MUSH and MUX servers for compatibility. [TAP] + * @@() and null() functions suggested by [LdW]. + +Minor Changes: + * @uptime now shows initial restart time, not just time since + last reboot. + * Each player now has a limit to the number of @mail messages + in their inbox (folder 0), configurable in mush.cnf. + Suggested by Edwin@M*U*S*H. + +Fixes: + * More linting and improved indenting [SW] + * PARANOID works right for broadcast messages (like @cemit) now + too. Report by Vexon@M*U*S*H. + * You can no longer follow what you can't see. + * CHAT_TOKEN_ALIAS info appears in options.h now. Report by + Rhysem@M*U*S*H. + * Mac portability changes. [DW] + * Disconnected players don't follow any more. Suggested by Don Burks. + * Various fixes to better resist crashing due to attacks involving + overwhelming connections. + * @mail/stats for all was broken. Fixed now. + * Clearer message after failed @pemit. Suggested by Eratl@M*U*S*H + * Destroyed things stop following/leading. Report by Ashen-Shugar. + * follow didn't properly set up the followers as enactors. + We no longer short-circuit process_command. Report by Moe@Chicago. + +Version 1.7.3 patchlevel 1 May 18, 2000 + +Commands: + * @oemit now takes a list of players. Adapted from patch by Philip Mak. + +Minor Changes: + * Reconnecting is less spammy - we don't show motds again + to players already connected. Suggested by Trispis@M*U*S*H. + +Fixes: + * Configure problem that resulted in weird compile failures on + bind/accept in src/bsd.c fixed. + * Further linting. [SW] + * FreeBSD getrlimit problem diagnosed by [SW] is worked around. + * Couldn't compile w/o FLOATING_POINTS defined. Fixed. + * Fixed a few dependencies in the Makefiles to insure that + hdrs/patches.h and hdrs/switches.h are rebuilt properly. + * Indentation cleanup. + * We now recognize egcs as if it were gcc 2, and set ccflags + accordingly. + * Increased size of some hash tables for performance. [SW] + * Help fixes. [SW] + * flags(obj/attrib) behaved badly unless attrib was CAPITALIZED. + Fixed now. Reported by Vexon@M*U*S*H. + +Version 1.7.3 patchlevel 0 April 20, 2000 + +Major Changes: + * If you create a 'patches' subdirectory and keep any user-contrib + patches you apply in there, and if the patches are properly + formatted, i.e., they include these lines: + # Patch name: + # Patch version: + your MUSH's @version and INFO output will report them. + In addition to being helpful for you, this will help the + developers when you send us a bug report including your + @version. [TN] + * As @cemit doesn't override @chan/gag and allows + NOSPOOF notification, it basically now operates just like + @pemit/list (you can protect yourself from spoofing, and you can + silence it). Accordingly, the cemit power is no longer + necessary. It's now a runtime option. + * @malias (@mailing lists) by Daniel Peters. + * Attribute names are now stored in a single string tree, + so we don't have thousands of copies of the string + "FINGER_NOTE", etc., taking up memory. [TAP] + * As a consequence of the attribute name tree, the STARTUP flag + is no longer needed, and will be automatically removed from + dbs. + * Attributes are now inserted in alphabetical order, which + speeds lookup. [TAP] + * Panic dumps now dump the maildb and chatdb, appended to the + end of PANIC.db. The MUSH handles breaking them up on restart. + * New link_anywhere power allows @link'ing to any destination. + * Mortals may create VARIABLE exits. At the time the destination + is computed, the exit is check to see if it has permission to + link there (i.e., the exit controls the destination or the + exit is link_anywhere or the destination is link_ok). + To keep old code from breaking, all existing variable exits are + given the link_anywhere power at first db read in this patch. + Suggested by David@M*U*S*H. + * The follow command is implemented! + * Nested iter is now useful. The itext(n) function returns + the value of ## for the nth innermost iteraction, where + 0 is the most inner, and inum(n) does the same for #@. [TN] + * New regexp library, pcre, now allows perl 5.005 compatible + regular expressions! Suggested by [SW]. + * Objects are now limited in the number of attributes that may + be set on them. This prevents a DoS attack. Suggested by + Ashen-Shugar. + * Some more english-style matching (look my 2nd box). [TN] + +Functions: + * config() returns a list of config option names. + config(