| 1 | The changes in this file begin with PennMUSH 1.50 patchlevel 1. |
|---|
| 2 | The change in the way of numbering versions was made to make it |
|---|
| 3 | easier to keep track of what MUSHes were running which code |
|---|
| 4 | releases, since subversions often had additional small patches. |
|---|
| 5 | |
|---|
| 6 | -- Amberyl (lwl@eniac.seas.upenn.edu) |
|---|
| 7 | |
|---|
| 8 | ========================================================================== |
|---|
| 9 | |
|---|
| 10 | Version 1.50 patchlevel 1 #1, June 16, 1992 |
|---|
| 11 | |
|---|
| 12 | --- Features --- |
|---|
| 13 | |
|---|
| 14 | * Parent objects! Checks for inherited attributes and $commands. |
|---|
| 15 | * @wipe command: clears all attributes from an object. |
|---|
| 16 | * Completely new @mail code. |
|---|
| 17 | * More than one connections reports "has reconnected" and |
|---|
| 18 | "has partially disconnected". |
|---|
| 19 | * Support for /switches in commands. |
|---|
| 20 | |
|---|
| 21 | --- Functions --- |
|---|
| 22 | |
|---|
| 23 | * CREATE() -- creates object, returns dbref. do_create now returns a dbref. |
|---|
| 24 | * DIG() -- digs a room and links two exits, returning room dbref. |
|---|
| 25 | do_dig now returns a dbref. |
|---|
| 26 | * OPEN() -- opens an exit and links it, returning dbref. |
|---|
| 27 | |
|---|
| 28 | * IDLESECS() -- returns the number of seconds a player has been idle |
|---|
| 29 | |
|---|
| 30 | * %L and v(L) substitution added. Gives the location of the |
|---|
| 31 | enactor. This doesn't violate security, since the enactor |
|---|
| 32 | has in effect "volunteered" his location by triggering |
|---|
| 33 | some sort of $command. |
|---|
| 34 | |
|---|
| 35 | --- Fixes --- |
|---|
| 36 | |
|---|
| 37 | Minor changes: |
|---|
| 38 | * Added a comment for the i386 config directive in config.h |
|---|
| 39 | * Note printed to log when restart is finished. |
|---|
| 40 | * Put comma where it should be in AUDIBLE for things. (Typo) |
|---|
| 41 | * @version prints last compile time. |
|---|
| 42 | * Disabled logins don't affect royalty. |
|---|
| 43 | * @clone now copies the template's zone and parent fields. |
|---|
| 44 | * @decompile prints zone and parent. |
|---|
| 45 | * match_controlled_absolute now also allows absolute matching on |
|---|
| 46 | "nearby" objects. This makes conflicts between object nmaing |
|---|
| 47 | easier to resolve. |
|---|
| 48 | * fixed all those references to "Marks" in the helptext. |
|---|
| 49 | |
|---|
| 50 | Bug fixes and other such stuff: |
|---|
| 51 | * db_read() can cope with hard newlines in objects |
|---|
| 52 | * Allow God to force himself |
|---|
| 53 | * Formatted the calls to sprintf for %N and %L substitution |
|---|
| 54 | correctly. Bleah. |
|---|
| 55 | * Fixed bug which only executed @move stuff when object was a Hearer. |
|---|
| 56 | * Fixed a really horrible memory leak in filter_found |
|---|
| 57 | * HPUX stuff - fixed typo in a declaration, rewrote my_random |
|---|
| 58 | so it copes with normal-sized integers (on many HP-UX machines, |
|---|
| 59 | numbers in excess of 10^6 were required to get it to work). |
|---|
| 60 | * @daytime on/off accurately reflects what the help says. |
|---|
| 61 | * There is no preferred type in calling matches for zone object names. |
|---|
| 62 | * Function table lookup is hashed. |
|---|
| 63 | * Fixed memory leak problem with use and enter locks not being properly |
|---|
| 64 | free()'d when objects are destroyed. |
|---|
| 65 | * Fixed minor problem with some db fields not being cleared when objects |
|---|
| 66 | are destroyed. |
|---|
| 67 | * do_empty now walks the database clearing out objects zoned/parented to |
|---|
| 68 | a destroyed object. |
|---|
| 69 | * The LASTSITE of a newly-created player is now correctly set. |
|---|
| 70 | * you can no longer "give" yourself. Not only is being able to |
|---|
| 71 | give yourself stupid, but it also defeats the enterlock check. |
|---|
| 72 | * Immortal objects also can't gain money. Whoops. |
|---|
| 73 | * popen check on @uptime |
|---|
| 74 | * fixed potential coredump bug in @doing |
|---|
| 75 | |
|---|
| 76 | ========================================================================== |
|---|
| 77 | |
|---|
| 78 | Version 1.50 patchlevel 2 #1, August 10, 1992 |
|---|
| 79 | |
|---|
| 80 | --- Features --- |
|---|
| 81 | |
|---|
| 82 | - New additions - |
|---|
| 83 | * Much-improved chat system. Adding, deleting, renaming, and |
|---|
| 84 | re-priv'ing channels on the fly. |
|---|
| 85 | * @verb command (create user-defined verb/overb/averb triplets). |
|---|
| 86 | * rpage capability added. |
|---|
| 87 | * dbstats capability added. Code for this and rpage available upon |
|---|
| 88 | request. |
|---|
| 89 | * Semaphores! Modified @wait, added @notify and @drain. |
|---|
| 90 | * AF_MDARK attribute flag (attribute only visible to wizards and royalty) |
|---|
| 91 | and @comment attribute. |
|---|
| 92 | * Ownership lock primitive '$' added. Page-locking no longer blocks |
|---|
| 93 | using ownership, since you can just lock explicitly. |
|---|
| 94 | |
|---|
| 95 | - Changes to commands - |
|---|
| 96 | * @dump/paranoid - database consistency checker. |
|---|
| 97 | * @uptime command now displays process usage and time until next dump. |
|---|
| 98 | * Wizard WHO shows descriptor numbers. |
|---|
| 99 | * You can @boot by descriptor number. |
|---|
| 100 | * @edit/@gedit does prepend and append. |
|---|
| 101 | * /silent switch added to @pemit (for 2.0 compatibility). |
|---|
| 102 | * Mail @stats can give a lot of details. |
|---|
| 103 | * look/outside allows you to look outside your location. |
|---|
| 104 | * @mail sanity checking via /debug switch. |
|---|
| 105 | * Attribute sets of the form @set <obj>=<new>:_<thing>/old now |
|---|
| 106 | set the contents of attrib <old> on <thing> into <new> on <obj> |
|---|
| 107 | and thus can be used to copy attributes. (This feature existed in |
|---|
| 108 | the code last year, evidently, but was never documented and |
|---|
| 109 | didn't work anyway.) |
|---|
| 110 | * @teleport failure triggers @efail/@oefail/@aefail. |
|---|
| 111 | * @entrances takes switches and output is more informative. |
|---|
| 112 | * @lock/@unlock/@chown modified to allow atrchown and atrlock to be |
|---|
| 113 | done using 2.0 syntax. |
|---|
| 114 | |
|---|
| 115 | - Maintenance changes - |
|---|
| 116 | * Completely revised logging facility. This is still in the process |
|---|
| 117 | of changing, but there are now several logfiles, and many log |
|---|
| 118 | messages are printed in a standardized format. |
|---|
| 119 | * Text files now have a directory of their own. |
|---|
| 120 | * Most configuration options are now read from a conf file instead |
|---|
| 121 | of hardcoded into config.h. Restart script modified. |
|---|
| 122 | |
|---|
| 123 | - Improvements - |
|---|
| 124 | * Players on channels hear disconnect/connect messages. |
|---|
| 125 | * Locked attributes have a + symbol next to the owner number. |
|---|
| 126 | * @oemit changed to work 2.0 style - if you @oemit with an exception |
|---|
| 127 | of yourself, you get no notification. |
|---|
| 128 | |
|---|
| 129 | --- Functions --- |
|---|
| 130 | |
|---|
| 131 | * CONVSECS() -- converts seconds to time. |
|---|
| 132 | * CONVTIME() -- converts time to seconds. |
|---|
| 133 | * SETUNION() -- find the elements that are in both lists. |
|---|
| 134 | * SETDIFF() -- find the elements that aren't in both lists. |
|---|
| 135 | * SETINTER() -- like CAT() without duplicates. |
|---|
| 136 | * CONN() -- returns number of seconds a player has been connected. |
|---|
| 137 | * REVWORDS() -- retverses a list of words. |
|---|
| 138 | * SWITCH() -- returns the text associated with a @switch-format list. |
|---|
| 139 | * EDIT() -- similar to @edit. |
|---|
| 140 | * STRMATCH() -- match entire wildcarded string. |
|---|
| 141 | |
|---|
| 142 | --- Other changes / bug fixes --- |
|---|
| 143 | |
|---|
| 144 | - Minor changes - |
|---|
| 145 | * idlesecs() is more efficient. |
|---|
| 146 | * mail.c #includes string.h |
|---|
| 147 | * strdup() function included in stringutil.c (some machines don't |
|---|
| 148 | have this in the standard libraries) |
|---|
| 149 | * OPTIM flags added for gcc 2.0 in Makefile |
|---|
| 150 | * Fixed some inappropriate uses of 0 where NOTHING should have been |
|---|
| 151 | used, in set.c |
|---|
| 152 | * Began general code cleanup. |
|---|
| 153 | * The Joarm mailer is no longer an option. |
|---|
| 154 | * do_flip recoded (slightly more efficient). |
|---|
| 155 | * Fixed some warnings. |
|---|
| 156 | * Fixed helptext for loc() (the function gives drop-tos for rooms) |
|---|
| 157 | * Some eval.c functions rewritten to be a bit cleaner. |
|---|
| 158 | * Size of tprintf() buffer increased. |
|---|
| 159 | * Queue quota displayed in @config. |
|---|
| 160 | * Fixed an error message in destroy.c |
|---|
| 161 | * Un-protoized some functions. |
|---|
| 162 | * version.h is now a standard file (no more version.h.dist, etc.) |
|---|
| 163 | |
|---|
| 164 | - Bug fixes - |
|---|
| 165 | * Fixed a serious security hole in the password checker. |
|---|
| 166 | * Fixed echo bug with @listen/audible |
|---|
| 167 | * Fixed memory leaks in attrib hashing scheme and mail. |
|---|
| 168 | * The CONNECTED flag is not player-settable, period. |
|---|
| 169 | * Fixed bug in boolexp code which allowed locking to a null attribute. |
|---|
| 170 | * LISTEN is no longer inheritable for the purposes of @ahear et.al. |
|---|
| 171 | (it was documented this way in the help text but not actually so). |
|---|
| 172 | * Going through an exit linked to home ALWAYS sends you to the correct |
|---|
| 173 | place. |
|---|
| 174 | * Cleanup of @tel code. Also, fixed bug that allowed non-priv'ed things |
|---|
| 175 | to @tel priv'ed ones. |
|---|
| 176 | * SPACE() does buffer length checking properly. |
|---|
| 177 | * locate() no longer reports errors when you specify a type. |
|---|
| 178 | * You must be INHERIT to set the INHERIT flag. |
|---|
| 179 | * Criterion for halting an object is now (as it should have been) |
|---|
| 180 | having the same owner, NOT being the actual owner. |
|---|
| 181 | * If a new command is provided as an argument to @halt, the object |
|---|
| 182 | is not set HALT. |
|---|
| 183 | * @toading a player wipes out his mail. |
|---|
| 184 | * Fixed case-sensitivity problem in matching @nuke command. |
|---|
| 185 | * match stuff for "use" now done properly. |
|---|
| 186 | * Examination of objects without descs whose parent objects have descs |
|---|
| 187 | no longer shows the parent's desc. |
|---|
| 188 | |
|---|
| 189 | - Improvements - |
|---|
| 190 | * @mail now compresses messages in memory. |
|---|
| 191 | * @wall/@wizwall/@rwall all covered by do_wall now. raw_broadcast |
|---|
| 192 | also changed. |
|---|
| 193 | * Hard newlines can now be used in mail and objects (although a |
|---|
| 194 | @dump/paranoid still regards them as bad and will strip them). |
|---|
| 195 | * You can start user-def'ed commands with + again (channels don't |
|---|
| 196 | clobber them). |
|---|
| 197 | * mkindx is more careful about clobbering files. |
|---|
| 198 | * atr_comm_match is vastly more efficient. |
|---|
| 199 | * do_doing strips out tabs as well as newlines. |
|---|
| 200 | * MATCH() now works like the 2.0 function (returns 0 instead of #-1 |
|---|
| 201 | on error). |
|---|
| 202 | * "goto" and "move" now check zone and global exits. |
|---|
| 203 | * SORT() takes an arbitrary number of arguments. |
|---|
| 204 | * Can shorten report trace stuff via config directive. |
|---|
| 205 | * Object destruction now uses clear_mail directly. |
|---|
| 206 | * Freeing of memory in queued commands now done by a single function. |
|---|
| 207 | * Added game.h header file for stuff just called from game.c |
|---|
| 208 | * Moved some stuff over from config.h to db.h |
|---|
| 209 | * @whereis done by Royalty or Wizards doesn't notify victim. |
|---|
| 210 | * Dump freeze message is now in config.h |
|---|
| 211 | * '#' ref in mail.c replaced with NUMBER_TOKEN |
|---|
| 212 | |
|---|
| 213 | - Compatibility - |
|---|
| 214 | * ULTRIX config directive added. |
|---|
| 215 | * Fixed SysV signal problems. |
|---|
| 216 | * Support (more or less) for compilers that only understand traditional |
|---|
| 217 | C has been added. |
|---|
| 218 | |
|---|
| 219 | ========================================================================== |
|---|
| 220 | |
|---|
| 221 | Version 1.50 patchlevel 3 #1, October 2, 1992 |
|---|
| 222 | |
|---|
| 223 | --- Features --- |
|---|
| 224 | |
|---|
| 225 | - New additions - |
|---|
| 226 | * REWRITTEN PARSER. It should now be 99.9% TinyMUSH 2.0 compatible. |
|---|
| 227 | A great deal of the code for this comes from the TinyMUSH 2.0 |
|---|
| 228 | parser originally written by JT Traub and Glenn Crocker. |
|---|
| 229 | * @tport/@otport/@atport/@oxtport attributes added. |
|---|
| 230 | * @kick command forces execution of commands from the queue. |
|---|
| 231 | * @cpattr command copies attributes. |
|---|
| 232 | * @fixdb command does within-the-game db repair. |
|---|
| 233 | * @grep command searches attributes for a specified pattern. |
|---|
| 234 | * Objects in an UNFINDABLE room cannot be located. |
|---|
| 235 | * @scan command checks for possible $-matches to a command. |
|---|
| 236 | |
|---|
| 237 | - Changes to commands - |
|---|
| 238 | * @uptime shows wizards the head of the object free list. |
|---|
| 239 | * examine can take a "debug" switch. |
|---|
| 240 | * @dig can take a "teleport" switch. |
|---|
| 241 | * @decompile works on any object type. |
|---|
| 242 | * @edit now takes wildcards, like @gedit does. @gedit is now simply |
|---|
| 243 | an alias for @edit. |
|---|
| 244 | * @find, @search, and @entrances can take a dbref range limit. |
|---|
| 245 | |
|---|
| 246 | - Maintenance changes - |
|---|
| 247 | * Crash database is now configurable. |
|---|
| 248 | * BUILDING_LIMIT config directive limits total database size. |
|---|
| 249 | |
|---|
| 250 | - Improvements - |
|---|
| 251 | * Hashed attribute table. Also, added attribute aliasing instead of |
|---|
| 252 | to replace the previous string_prefix grot. |
|---|
| 253 | * The UFUN() function can now take an object-attribute pair. Also, |
|---|
| 254 | it is aliased to U(), the 2.0 name of the function. |
|---|
| 255 | * Lookups on *player will now partial name-match to a connected player. |
|---|
| 256 | * PLAYER_LISTEN config directive allows @listen on players. |
|---|
| 257 | * LOCK() and ELOCK() functions can take a locktype switch. |
|---|
| 258 | * The LNUM() function will generate a list up to the buffer limit. |
|---|
| 259 | * You can @parent stuff to LINK_OK objects. |
|---|
| 260 | |
|---|
| 261 | --- Functions --- |
|---|
| 262 | * ITER() -- a function version of @map. |
|---|
| 263 | * ESCAPE() -- escapes out potentially dangerous characters. |
|---|
| 264 | * MERGE() -- merges two strings by character. |
|---|
| 265 | * SPLICE() -- merges two lists by word. |
|---|
| 266 | * REPEAT() -- repeats a string. |
|---|
| 267 | |
|---|
| 268 | --- Other changes / bug fixes --- |
|---|
| 269 | |
|---|
| 270 | - Minor changes - |
|---|
| 271 | * The recursion prevention check for @parent is more paranoid. |
|---|
| 272 | * Non-connected things are explicitly prevented from setting @doings. |
|---|
| 273 | * Fixed some "shadowed declaration" warnings with 'exit'. |
|---|
| 274 | * Logging of slays standardized. |
|---|
| 275 | * Math functions now return errors if their arguments are non-numeric. |
|---|
| 276 | * Checking for bad config options (PLAYER_START etc.) and fix_free_list |
|---|
| 277 | coded properly. |
|---|
| 278 | * parent() always works for royalty. |
|---|
| 279 | * You can drop by dbref number. |
|---|
| 280 | * @pcreate correctly sets Lastsite attribute to None. |
|---|
| 281 | * get() and eval() on non-existent attributes now returns a null string |
|---|
| 282 | instead of #-1 NO SUCH ATTRIBUTE. This is 2.0 compatible and easier |
|---|
| 283 | to deal with. |
|---|
| 284 | * atr_comm_match now correctly returns the number of commands matched. |
|---|
| 285 | * Typo in log.c which some compilers didn't like fixed. |
|---|
| 286 | |
|---|
| 287 | - Bug fixes - |
|---|
| 288 | * Name matching with @parent is fixed. |
|---|
| 289 | * A small typo bug in skip_space has been fixed. REST() and related |
|---|
| 290 | functions should no longer be returning an extra space. |
|---|
| 291 | * Wait and semaphore queue traversal is now consistent. Also fixed |
|---|
| 292 | a coredump bug in semaphores. |
|---|
| 293 | * Overflowing the page buffer causes a truncation of the message (and |
|---|
| 294 | thus prevents people from crashing the MUSH by spam-pages). |
|---|
| 295 | * @halt correctly handles semaphores. |
|---|
| 296 | * Coredump bug in SETUNION() fixed. |
|---|
| 297 | * @a-attributes on exits linked to home no longer cause a crash. |
|---|
| 298 | * Most of the quota-handling functions have been rewritten. Still ugly, |
|---|
| 299 | but usable. Hopefully these are much less buggy. |
|---|
| 300 | |
|---|
| 301 | - Compatibility - |
|---|
| 302 | * There is no indentation before preprocessor directives (traditional |
|---|
| 303 | C has problems with this). |
|---|
| 304 | * The ULTRIX config directive has been replaced by a SUN_OS one, since |
|---|
| 305 | it appears that Ultrix is a bit more standard. |
|---|
| 306 | * Wrote a version of the nchan() function in chat.c for systems that |
|---|
| 307 | don't have the log2() function. |
|---|