PennMUSH Community

Changeset 335

Show
Ignore:
Timestamp:
08/12/06 02:27:53 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.7.5p0 Archival

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.7.5/CHANGES

    r287 r335  
    1818========================================================================== 
    1919 
    20 Version 1.7.3 patchlevel 14                    January 29, 2001 
     20Version 1.7.5 patchlevel 0                     November 14, 2001 
    2121 
    2222Major Changes: 
    23       * Commands and functions can now be aliased to other names 
    24         in mush.cnf, so you can provide translated command names 
    25         as well as the english one, etc. Suggested at various times 
    26         by Krad@M*U*S*H and David@M*U*S*H. New file aliases.cnf 
    27         in game/ is created to put these command_alias and function_alias 
    28         directives (as well as reserve_alias). [SW] 
     23  * This is now the development minor version. This first release includes 
     24    relatively few changes, to make converting to it easier. 
     25  * Internal changes to the lock system. This requires a new minimal.db, 
     26    which is now distributed. [SW] 
     27  * Locale-based string collation throughout. 
     28  * Only ANSI C compilers are still supported; no more K&R. Files are 
     29    gradually going to be converted to ANSI C only. 
     30  * There is now an option to make ZMOs and ZMRs not count for 
     31    control of objects, only ZMPs. [SW] 
     32Flags: 
     33  * The ZONE player flag has been renamed SHARED, to help seperate the 
     34    ZMP control-only meaning from the command-matching of ZMOs and ZMRs. [SW] 
     35Commands: 
     36  * /preserve switch for @link prevents @chowning. Suggested by Vexon@M*U*S*H 
     37  * Admin WHO and SESSION now includes unconnected descriptors. [SW] 
     38  * Unconnected descriptors can now be booted. Patch by Bellemore@M*U*S*H. 
     39  * Unconnected descriptors can now be paged by admin with page/port. [SW] 
     40Functions: 
     41  * mix() can take more than 10 lists and of unequal length. [3,SW] 
     42  * iname() returns the name of an object from inside (honoring nameformat) 
     43    Idea by Jeff Heinin. 
     44  * lplayers() returns a list of players in the location. Handy for 
     45    room parents. By Vexon@M*U*S*H. 
     46  * lvplayers(), lvcon(), lvexits() are like lplayers/lcon/lexits, but 
     47    leave out dark things (and disconnected players). Handy for room 
     48    parents. By Vexon@M*U*S*H. 
    2949Minor Changes: 
    30       * smalloc and bigram compression options are no longer supported. [SW] 
    31       * Internal improvements to @search/lsearch, which are now more 
    32         consistent with one another. [SW] 
    33       * mush.cnf options that refer to dbrefs now understand #<number> as  
    34         well as just <number>. They are also formatted as dbrefs in @config  
    35         and config(). [SW] 
    36       * Much longer game/names.cnf file contributed by Kyieren@M*U*S*H. 
    37       * New internal function notify_format() to replace notify+tprintf 
    38         more safely. [SW] 
    39       * Tweaks to network activity timeout code. [SW] 
    40       * @stat and lstats no longer needs to scan the entire database. [SW] 
    41 Commands: 
    42       * @switch and @select can now take a /notify switch, like @dolist. 
    43       * Players may @chown by dbref, but they must still be carrying 
    44         the object if it's a thing. Suggested by Kyieren@M*U*S*H. 
    45       * @clone can now clone rooms. Suggested by Kyieren@M*U*S*H. 
    46       * @verb's matching of the <actor> argument has been relaxed so 
    47         non-privileged objects can use it on remote actors, if the normal 
    48         permission checks succeed. This makes @verb much more useful for zones 
    49         and master room objects. [SW] 
    50 Attributes: 
    51       * @forwardlist [2.2,SW] 
    52 Functions: 
    53       * itemize() takes a list "a b c" and produces "a, b, and c" and  
    54         similar tricks. Also callable as elist() for Rhost compatibility. 
    55       * ilev() returns the current iter nesting level. [Rhost,SW] 
     50  * munge() now passes its delimiter as %1 to make generic sorting easier. [SW] 
     51  * Word-based attribute compression is faster than before, for both 
     52    compression and decompression. [SW] 
     53  * Windows memory-usage information for wizards is now in @uptime, not 
     54    @stats [SW] 
     55  * Word-based attribute compression stats can be viewed on non-Windows 
     56    mushes as well, by defining COMP_STATS. See externs.h for details. [SW] 
     57  * Setting of the internal QUEUE and semaphore attributes does not modify 
     58    an object's last-modified timestamp. [SW] 
     59  * Speaking on a channel that you're gagging is now treated like 
     60    speaking on a channel that you're not on. Suggested by rodregis@M*U*S*H 
     61  * You can use @exitto in place of &DESTINATION to set the destinatino 
     62    for variable exits, though DESTINATION is checked first. [3] 
     63  * WATCHER is another name for the MONITOR flag. [3] 
     64  * max_guest_pennies and guest_paycheck config options. Inspired by [SW] 
     65  * Lock and unlock messages now show object name and dbref, and tell 
     66    you if you unlock an already unlocked object. Suggested by Jamie Warren. 
     67  * A version of portmsg for Win32 is in the win32 directory. 
     68    Donated by CU5@WCX 
     69  * Tweaks to info_slave, which now uses readv/writev. [SW] 
     70  * Lots of code cleanup. [SW] 
     71  * CHAT_SYSTEM, INFO_SLAVE, and FUNCTION_SIDE_EFFECTS are now #define'd 
     72    by default. [TAP] 
    5673Fixes: 
    57       * When indexing help files, ones that aren't in the right format 
    58         weren't being properly closed. Report by Nammyung@M*U*S*H. [SW] 
    59       * We're much more forgiving about help files that start with 
    60         blank lines now. 
    61       * Help updates by Kyieren@M*U*S*H, [SW] 
    62       * Games w/o MAIL_ALIAS couldn't load maildbs that had mail aliases. 
    63         Reported by Nymeria. [SW] 
    64       * max_pennies had a limit of 10,000 in conf.c, even though it 
    65         has always defaulted to 100,000. Reported by Intrevis@M*U*S*H. 
    66       * src/filecopy.c didn't include hdrs/log.h. Fixed by Noltar@Korongil. 
    67       * MacOS portability fixes. [DW] 
    68       * vsnprintf used in place of vsprintf everywhere when available. [SW] 
    69       * Cleanup of @atrlock code. [SW] 
    70       * '#' without any trailing numbers was treated as #0 when used as a  
    71          dbref. [SW] 
    72       * Added explicit checking for lower-case letters in good_atr_name(). [SW] 
    73       * Trying to set an attribute with a bad name now gives a better  
    74         error message. [SW]  
    75       * Fix to potential overflow bug in revwords. [SW] 
    76       * Fix to potential overflow bug in @grep. [SW] 
    77       * Configure checks for snprintf. Systems unfortunate enough not to 
    78         have this (Solaris 2.5.1, for example) are stuck with sprintf. 
    79         Report by Broncalo@DuneIII. 
    80       * CHARGES were decremented whenever an A-attribute would be  
    81         executed, *even if the attribute wasn't set on the object*. 
    82         Reported by Kyieren@M*U*S*H. 
     74  * Indentation fixes [SW] 
     75  * Fixes up to 1.7.4p12 merged in. 
    8376 
    84 Version 1.7.3 patchlevel 13                    January 9, 2001 
    85  
    86 Major Changes: 
    87       * Semaphores may use attributes other than SEMAPHORE. These  
    88         "named semaphores" make it easier to have multiple semaphores 
    89         waiting on the same object. [SW] 
    90       * New attribute flag AF_NODUMP prevents attributes from being 
    91         dumped to the db. It applies to QUEUE, SEMAPHORE, and attributes 
    92         used as named SEMAPHORES. [SW] 
    93 Commands: 
    94       * @wait/until can be used to put commands on the wait queue until 
    95         some absolute time (in secs) is reached. [SW] 
    96       * @cpattr/noflagcopy copies attribute data without flags. 
    97         Same for @mvattr. Suggested by Noltar@Korongil. 
    98 Functions: 
    99       * foreach() takes start and end arguments like TM3/MUX2. [3,SW] 
    100       * locate() has a new option to force matching the preferred type,  
    101         and an undocumented option to eliminate ambiguous matching is now 
    102         documented. [SW]  
    103 Minor Changes: 
    104       * Experimental support for translating 8-bit accented characters to HTML 
    105         entities for Pueblo. [SW] 
    106       * Objects without a @lock/zone that are used as zones are noticed and  
    107         warned about during dbcks. [SW] 
    108       * Some people prefer that +channel "foo now cause you to say "foo  
    109         on the channel, instead of stripping the initial quote. Now 
    110         it's a mush.cnf option (chat_strip_quote). Suggested by Dave Milford. 
    111       * isint() now ignores tiny_math, so isint(foo) will always return 0. [SW]  
    112 Fixes: 
    113       * Hopefully fixed a problem with puppets doing look for non-Pueblo 
    114         players with Pueblo support turned on. The line after the look 
    115         could appear to come from the puppet even if it didn't. [SW] 
    116       * If you disabled a command with a one-character token (like say), 
    117         then running the command with the token ("hi!) would fail, but  
    118         wouldn't return the right thing for $command matching. Now it 
    119         returns the canoncalized raw command (SAY hi!) so you can trap 
    120         it in softcode. Reported by Mackenzie@SWGT Mush   
    121       * General linting [SW] 
    122       * Help fixes by Eratl@M*U*S*H. 
    123       * make customize doesn't try to link mkindx any more. And README and 
    124         os2/Makefile don't refer to it either. By Bobby Bailey (Chil@M*U*S*H). 
    125       * The internal tprintf() function is safer. [SW] 
    126       * Crash bug in @edit fixed, and @edit code is cleaned up. [SW]  
    127       * max_pennies documented in mush.cnf. Noted by Oriens@Alexandria 
    128       * cmdlocal.dst now includes cmds.h. Reported by David@M*U*S*H. 
    129  
    130  
    131 Version 1.7.3 patchlevel 12                    January 4, 2001 
    132  
    133 Locks: 
    134       * A new @lock/chzone, set on a ZMO, controls who may @chzone 
    135         objects to the ZMO. This can simplify multi-player building 
    136         using ZMOs. Suggested by David@M*U*S*H 
    137 Commands: 
    138       * @wcheck/me checks all of a player's objects for them. 
    139 Functions: 
    140       * cflags() function gets channel flags. 
    141       * ctitle() gets channel title for an object. Suggested by Luke@M*U*S*H. 
    142       * strinsert() function does insert() on strings. Suggested by 
    143         Reagan@M*U*S*H. [SW] 
    144       * channels() on an object you can't examine now shows you channels  
    145         that you have in common with it. Suggested by Trispis@M*U*S*H 
    146 Minor changes: 
    147       * Runaway objects are now logged, along with the command that 
    148         pushed them over the edge. Suggested by Trispis@M*U*S*H. 
    149       * All instances of fprintf(stderr,...) after logging is started 
    150         are now handled through do_rawlog(LT_ERR,...). By David@M*U*S*H. 
    151       * @atrchown works more reasonably. [SW] 
    152       * @lock/link on an unlinked exit restricts who may link it. 
    153       * Everyone (even mortals) sees object names at the top of 
    154         their descriptions when they look at them. Suggested by Jeff 
    155         Ferrell most recently. 
    156       * New reserve_alias mush.cnf directive makes run-time command 
    157         alias reservation possible. Suggested by Jeff Ferrell. 
    158       * Mortals may use @command to get info about commands. Suggested by 
    159         Chili@M*U*S*H. 
    160       * Messages logged during help file indexing distinguish indexing 
    161         of admin topics. Suggested by mith@M*U*S*H 
    162 Fixes: 
    163       * Help fixes by [SW], Jeff Ferrell, mith@M*U*S*H, Mirth@AtheneuMUSH. 
    164       * Help update to @cpattr based on behavior noted by Noltar@Korongil. 
    165       * cwho and @chan/who behave better with hidden (@hide) players. 
    166         Reported by Reagan@M*U*S*H. 
    167       * MUSHes with no @functions crashed on @list calls due to a  
    168         problem with the hashtable code. Reported by Whiskey. [SW] 
    169       * A bug in handling of errors under debug in process_expression 
    170         was reported by Reagan@M*U*S*H. [SW] 
    171       * Rare memory leak in process_expression fixed. [SW]  
    172       * Inconsistencies in the handling of destroyed objects/players 
    173         and their locations fixed. [SW] 
    174       * The QUEUE attribute was not properly cleared on restart 
    175         for non-player objects. It was buggy in other ways, too. [SW] 
    176       * The AF_SAFE attribute flag couldn't be reset. Reported by 
    177         Pegasus@StarQuest. 
    178       * @teleporting into garbage could cause crashes. Reported by Howie 
    179       * The help_command and ahelp_command directives now look for 
    180         whitespace generally, not spaces specifically.  
    181         Suggested by Krad@M*U*S*H 
    182       * SIGHUP once again re-reads the config file. [SW] 
    183       * If an exit @created an object, that object would be inside the exit  
    184         until the next dbck. Now it is created in the exit's source room. [SW] 
    185       * Turning the lowest possible integer number into a string could  
    186         result in garbage output. [SW] 
    187       * Solaris needed arpa/nameser.h before resolv.h in mysocket.c 
    188  
    189 Version 1.7.3 patchlevel 11                    December 4, 2000 
    190  
    191 Minor changes: 
    192       * Added 'comsys' as help alias for 'chat'. Suggested by David@M*U*S*H 
    193       * New win32 project files and MSVC build instructions by Jenny Lind. 
    194 Fixes: 
    195       * Improved test for non-broken getdate and getnameinfo. 
    196       * Loading panic dumps does better on chatdb. By Maverick@M*U*S*H 
    197       * You may leave a channel even if you're the wrong type 
    198         to get onto it. Suggested by Cheetah@M*U*S*H. 
    199       * Typo in the win32 strcasecmp code fixed [NJG] 
    200       * stddev's algorithm improved. [TAP] 
    201       * If the go command is restricted, other commands produce spurious 
    202         errors during the exit-matching phase of command parsing. 
    203         Reported by Jamie@M*U*S*H 
    204  
    205 Version 1.7.3 patchlevel 10                    November 20, 2000 
    206  
    207 Major Changes: 
    208       * Improved detection of errors saving the game. If any problems  
    209         are encountered, the save is aborted, and online admins notified so 
    210         they can fix the problem before finding out about it too late. [SW]  
    211 Flags: 
    212       * The INHERIT flag has been renamed TRUST, which better describes 
    213         its function. INHERIT remains as an alias. 
    214 Commands: 
    215       * @chan now takes /ungag, /unhide, and /unmute as well as the 
    216         usual @chan/gag <channel>=no. By David@M*U*S*H. 
    217 Minor Changes: 
    218       * money() called on a no_pay player returns the value of 
    219         MAX_PENNIES to ease softcode checks. Suggested by Oriens@Alexandria. 
    220       * Removed help and &help entries from the distributed pennmush.nws 
    221         because people will generally want to override them anyway 
    222         and we shouldn't introduce problems. Suggested by Jeff Heinen. 
    223       * safe_str and friends optimize trivial 0 and 1 letter strings. [SW] 
    224       * A version of word-based compression that's almost 8-bit clean 
    225         is now included. [SW] 
    226       * We now use stricmp and friends for strcasecmp and friends on 
    227         Win32, rather than roll our own. [SW] 
    228 Fixes: 
    229       * @mail aliases couldn't be used by players who didn't have 
    230         permissions to see the alias members, which is wrong. 
    231         Fixed now. Report by Grinna@M*U*S*H. 
    232       * lnum(1) and lnum(0,0) were broken. Report by Jeff Ferrell  
    233       * Help updates. [SW] 
    234       * @set obj/notanattribute=flag now returns a 'No such attribute' error. 
    235         Reported by David@M*U*S*H. [SW] 
    236       * Help file indexing tries to detect files that aren't in the right  
    237         format. [SW] 
    238       * function restrictions were checking the wrong object. [SW]  
    239       * objmem and playermem counted eval-locks and atr-locks incorrectly.  
    240         Reported by Javin@DynamixMUSH. [SW] 
    241       * Fixes to win32 NT_TCP stuff. [NJG] 
    242       * Rare memory leak in do_page fixed by David@M*U*S*H.  
    243  
    244 Version 1.7.3 patchlevel 9                    November 20, 2000 
    245  
    246 Major Changes: 
    247       * Help files and their associated commands are now defined with 
    248         the 'help_command' (or 'ahelp_command') directive  
    249         in mush.cnf. So you can translate the help to french and 
    250         add an "aidez-moi" command if you like. [SW] 
    251       * Help file indexes are now kept in memory and built by the 
    252         server. The mkindx program is no longer used. [SW] 
    253       * Added restrict_function and @function/restrict, like the versions  
    254         for commands. [SW] 
    255       * User @functions can now override built-in functions, if you 
    256         @function/delete the built-in first. You can also @function/restore 
    257         the built-in back. [SW] 
    258 Attributes: 
    259       * @[oa]zenter and @[oa]zleave on ZMOs are triggered when someone 
    260         enters or leaves a given zone. Motion between rooms in the same 
    261         zone doesn't trigger these. "Zone" is based on the mover's 
    262         absolute room (outermost container) so that entering and leaving 
    263         an unzoned object in a zoned room doesn't trigger these either. 
    264         Suggested by Michael Kurtz. 
    265 Commands: 
    266       * New /silent switch for @teleport without @[o|a|ox]tport msgs. 
    267 Minor Changes: 
    268       * Still less allocation involved in outputting text to connections. [SW] 
    269       * @scan has better output when multiple attribs match. [SW] 
    270       * Added internal absolute_room function for use by fun_room 
    271         and move.c and wiz.c, etc. 
    272       * MEM_CHECK now uses a sorted linked list and is faster. [SW] 
    273 Fixes: 
    274       * References to kill_timer removed from win32 sections. [SW] 
    275       * conf.c reports error via logging routines, not fprintf. [SW] 
    276       * Assorted minor bug and warning fixes. [SW] 
    277       * Fix to example in help regedit by Amberyl. 
    278       * @wait and other timing functions were broken under win32. 
    279         Fixed now. [LdW] 
    280  
    281  
    282 Version 1.7.3 patchlevel 8                    November 12, 2000 
    283  
    284 Major Changes: 
    285       * Objects' names are stored in a string tree like attributes, so 
    286         we don't have hundreds of copies of 'West <W>;west;w' and such 
    287         taking up memory. Attribute name "hash table" is now a strtree. [SW] 
    288       * We no longer use alarm() to know when to run stuff on the queue. [SW] 
    289       * @shutdown/reboot is now supported on Windows builds. This is 
    290         slightly experimental. By Revian. 
    291 Minor Changes: 
    292       * %qa-%qz now operate as global registers like %q0-%q9.  
    293         Suggested by Trispis@M*U*S*H and probably others. 
    294       * Hashtable lookups are faster (collision chains are sorted) [SW] 
    295       * @uptime/mortal suppresses the extra process information [SW] 
    296       * Wizard @uptime prints better process information on linux. [SW] 
    297       * @listen, @filter and @infilter respect the REGEXP and CASE attribute  
    298         flags.  Suggested by Maestro@M*U*S*H [SW] 
    299       * Having many @waits or semaphores is more efficient, because we 
    300         sort those queues by time and we stop looking sooner. [SW] 
    301       * User-defined lock names must follow the same rules as attribute  
    302         names. The name part of attrib and eval locks have to also. [SW] 
    303       * @chan/title's confirmation message is nicer. [SW] 
    304       * Minor optimizations related to strcpy() and malloc() overhead. [SW] 
    305       * safe_format uses vsnprintf if your system has it. By Luke@M*U*S*H. 
    306       * replace_string is safer. By Luke@M*U*S*H. 
    307 Fixes: 
    308       * iter() is smarter about quitting when the function invocation 
    309         limit is reached or the buffer is filled. [TAP] 
    310       * lnum() has been greatly sped up. [TAP] 
    311       * RWHO references removed from game/mushcnf.dst, game/restart, 
    312         etc. by mith@M*U*S*H. 
    313       * Fix to help filter by Revian. 
    314       * COMPRESSION_TYPE 0 didn't compile. Report by David@M*U*S*H. 
    315       * Clarification of @lock/teleport in help @elock by Envinyatar@M*U*S*H 
    316       * Compiling w/o MAIL_ALIASES didn't declare load_maliases. 
    317         Reported by Envinyatar@M*U*S*H 
    318       * clone() was stomping %0-%9. Report by Revian. 
    319       * @dol with an empty list now does the right thing (nothing) 
    320         instead of running the command once. Report by Linda Naughton [SW] 
    321       * spname cleanup by mith@M*U*S*H. 
    322       * Fixed a bug in @function function-name [SW] 
    323       * make update should finally handle CHAT_TOKEN_ALIAS right. 
    324         It's also smarter with mush.cnf 
    325       * isword() on a null string now returns 0. Suggested by Ashen-Shugar. 
    326       * channels(object) returns a better error when object isn't matched. 
    327         Suggested by Trispis. 
    328       * Fix to help rand() to reflect actual error return value. Reported 
    329         by Philip Mak. 
    330       * More translated strings noted by Krad. 
    331       * Problems with encrypt()'s logic fixed by Ashen-Shugar. [Rhost] 
    332       * Other encrypt() sillyness fixed by Brazil. 
    333       * Potential crashers around DEBUG and other buffer overruns 
    334         have been fixed. Report by Tajan and Rimnar. [SW] 
    335       * notify_anything allocates less memory. [SW] 
    336       * Fixed mistagged memcheck "restart.descriptor".  
    337       * MacOS portability changes. Should build on MacOS X public beta 
    338         (Darwin) systems nearly straightaway. [DW] 
    339       * Restart script test for already-running MUSH condensed to one 
    340         line. Suggested most recently by Cory Albrecht. 
    341       * Serious crash bug in page fixed. Reported by Revian. 
    342       * Win32 bugs fixed by Luke@M*U*S*H: problems with dumping 
    343         compression suffixes, problems with @uptime 
    344       * MUSH no longer crashes if a player alias is > 32 chars in length. 
    345         It truncates names that are too long instead. By Luke@M*U*S*H. 
    346       * We don't check AF_PRIVATE attributes for $/^commands on children. 
    347         By Luke@M*U*S*H. 
    348       * Under win32, the MUSH would often start ignoring commands from 
    349         players after the first 98 per connection. Fixed by Revian. 
    350          
    351 Version 1.7.3 patchlevel 7                    October 12, 2000 
    352  
    353 Functions: 
    354       * filterbool(), for TM3 compatibility. Like filter(), 
    355         but tests for any true value, not just 1. [3,SW] 
    356       * case(), for TM3 compatibility, and caseall().  Like switch()  
    357         and switchall(), but does an exact match, not wildcard. [3,SW] 
    358       * valid() takes more categories. [SW] 
    359       * localize(), for TM3 compatibility. Like a cross between 
    360         s() and ulocal(). [3,SW] 
    361 Commands: 
    362       * @break, for Rhost compatibility. Stops processing the 
    363         current action list. [Rhost,SW] 
    364       * @enable and @disable can be used on any boolean config option. [SW] 
    365       * @function/enable and @function/disable for built-ins 
    366       * @function function-name reports some information on the function, 
    367         like @command command-name. 
    368 Flags: 
    369       * New attribute flag 'safe' prevents accidental modification. 
    370         Suggested by Stephen Viscido. [TAP] 
    371 Minor Changes: 
    372       * The daytime config option is no more. Do a few @searches in 
    373         its honor. [SW] 
    374       * lsearch() permission is controlled by @search, and entrances() 
    375         by @entrances, for consistency with other functions that have 
    376         a corresponding command. [SW] 
    377       * The number of reboots is tracked, and the restarts() function 
    378         added, for TM3 compatibility. [3,SW] 
    379       * Rearranged some compile flags to suit systems that have 
    380         /usr/local/include/ident.h. By Luiz Claudio Duarte. 
    381       * More strings marked for translation. By Krad@M*U*S*H 
    382       * :, [, ], (, and ) are no longer legal in attribute names 
    383         due to ambiguities and security issues. [TAP,SW] 
    384       * Ranges in @search, lsearch() and @find can be either #dbrefs or  
    385         (for backwards compatibility), integers. Inspired by ElendorMUSH. [SW] 
    386       * Broadcast messages in bsd.c replaced with GAME prefix. 
    387         Suggested by Krad@M*U*S*H. 
    388 Fixes: 
    389       * Fixed a bug in filter() where it only looked 
    390         at the first character of the evaluated attribute. [SW] 
    391       * Some more noise from info_slave was removed. [SW] 
    392       * do_pcreate and do_chownall now live in game.h and not 
    393         externs.h. Reported by Maestro@M*U*S*H. 
    394       * Clean-up of atr_add calls in void context. [TAP] 
    395       * IPv6 buglet fixed. Report by Vexon@M*U*S*H. [SW] 
    396       * @config/set can no longer be used to set options in the files    
    397         and messages categories, as this has icky consequences. [SW] 
    398       * Fixed a logic bug in letters_to_privs where not all the letters  
    399         were being turned into privs properly. Report by Bolt@M*U*S*H [SW] 
    400       * Fix to isint() so that isint(1a) is 0. [SW] 
    401       * Added safe_boolean internal function, and fixed a hang bug 
    402         in edit() reported by Walker@M*U*S*H. [SW] 
    403       * Fixed problems in panic dumps/reads of maildb and chatdb. [SW] 
    404       * @edit is a bit more efficient. [SW] 
    405       * Assorted lock structures are allocated in big chunks like  
    406         attribute structures, to save malloc overhead. [SW] 
    407       * User-defined lock names are stored in the attribute name tree. [SW] 
    408       * Various help fixes [SW, Javelin] 
    409       * LASTLOGOUT time now forces two-digit day for convtime niceness. [SW] 
    410       * Very large malias names or member lists could cause buffer  
    411         overruns. [SW] 
    412       * Buffer overrun fix, fix to str_chr. [TAP] 
    413       * tprintfs removed from DEBUG output so DEBUG doesn't mess up 
    414         messages in ^-commands anymore. [TAP] 
    415  
    416 Version 1.7.3 patchlevel 6                    September 20, 2000 
    417  
    418 Minor Changes: 
    419       * Translation files are now archived separately on the ftp site. 
    420       * A variety of options.h settings have been removed. 
    421         EXTENDED_ANSI, DUMP_EMPTY_ATTRS, DUMP_LESS_GARBAGE and the *_LOCK  
    422         defines are totally gone. [SW] 
    423         OLD_NEWLINES, DELETE_ATTRS and VISIBLE_EMPTY_ATTRS have been  
    424         moved out of options.h as they're special-purpose. [SW] 
    425       * More common function error messages were made into variables  
    426         rather than being hardcoded in as string literals. [SW] 
    427       * If a player is set HALT, their queued commands will not run. 
    428       * Speedup in process_expression. [TAP]. 
    429 Functions: 
    430       * The regedit(?:all)?i? family of functions, like perl's s///. [SW] 
    431       * Case-insenstive versions of regrab() and regraball(). [SW] 
    432       * etimefmt(), which is to timestring() as timefmt() is to time(). [SW] 
    433 Fixes: 
    434       * Error messages that were already variables are now translated. [SW] 
    435       * Fixes to various metaconfig rules. [SW] 
    436       * Open_Anywhere and Link_Anywhere were sharing the same 
    437         bitmask. Fixed. [SW] 
    438       * You can escape : in $command patterns that are being regexp- 
    439         matched now. [SW] 
    440       * Rewrites of the regexp functions so that, say, regrab() and 
    441         regraball() point to the same actual code, using called_as to  
    442         know when to stop. They also use PCRE's match optimizing  
    443         pcre_study() function when appropriate. [SW] 
    444       * Buglets in game/restart and game/mushcnf.dst fixed. 
    445         Reported by Krad and Nymeria at M*U*S*H. 
    446       * page_aliases directive in mush.cnf works now. Report by Nymeria. 
    447       * Same for float_precision. Report by Oleo@M*U*S*H. 
    448       * mushtype.h now included in compress.c. [DW] 
    449       * Less noise in log/netmush.log from failed ident queries. 
    450       * More strings marked for translation. 
    451       * Fixes to problems with @search reported by Oleo@M*U*S*H.  
    452       * Weird evaluation of functions in softcoded commands fixed. [TAP] 
    453       * Cleanup of typos here and there by Padraic@M*U*S*H. 
    454  
    455  
    456 Version 1.7.3 patchlevel 5                    September 7, 2000 
    457  
    458 Minor Changes: 
    459       * FLOATING_POINT is no longer an option (it's always on). [SW] 
    460       * EXTENDED_ANSI defaults to enabled. [SW] 
    461 Attributes: 
    462       * @receive/@oreceive/@areceive triggered on the recipient 
    463         after a get or give, so you've got access to who caused 
    464         you to acquire the object and the object's dbref now. 
    465       * @give/@ogive/@agive triggered on the giver with object's 
    466         dbref in %0. Suggested by Oriens@Alexandria.  
    467 Fixes: 
    468       * Fixes for systems with broken or incomplete IPv6 support. [SW] 
    469       * Uses of index() changed to strchr() for consistency. [SW] 
    470       * Much removal of duplicate function prototypes and rearranging 
    471         of headers.  hdrs/globals.h is now hdrs/case.h. hdrs/intrface.h is  
    472         no more, and hdrs/boolexp.h, hdrs/log.h were added. [SW] 
    473       * @search supports "quoted player names". 
    474       * We no longer report failed connect to ident servers in the log. 
    475  
    476 Version 1.7.3 patchlevel 4                    August 8, 2000 
    477  
    478 Major Changes: 
    479       * Internationalization: 
    480         * Support for international time formats via LC_TIME locale [SW] 
    481         * Support for message translation 
    482         * Support for locale-sensitive ordering of strings (LC_COLLATE) [SW] 
    483         To take advantage of the new features, you should have your 
    484         LANG environment variable set to an appropriate locale  
    485         before you 'make install' (which will cause the right message 
    486         catalog to be compiled), and you should see the section  
    487         in game/restart for setting it there (which will actually cause 
    488         the server to use it). 
    489       * IPv6 support [SW] 
    490 Commands: 
    491       * @dolist/delim and @map/delim [SW] 
    492       * @stats/tables [SW] 
    493       * SESSION command displays session statistics (experimental) [SW] 
    494 Functions: 
    495       * uldefault(), like udefault but saves registers like ulocal() [SW] 
    496       * switchall(), for Tiny compatibility. [SW] 
    497       * cemit() with an option to act like @cemit/noisy [SW] 
    498       * vmin() and vmax(), for returning the min and max of each pair in two 
    499         vectors. [SW] 
    500       * utctime(), convutcsecs() for UTC/GMT time instead of server-local. [SW] 
    501       * convtime() uses getdate() if present, along with a variety of templates 
    502       * that it can accept. [SW] 
    503       * timefmt() - like the strftime() C function. [SW] 
    504       * pcreate() side effect function suggested by Adamas and Padraic@M*U*S*H 
    505       * starttime() now returns the first startup time, and  
    506         restarttime() returns the time of the last @shutdown/reboot [SW] 
    507 Minor Changes: 
    508       * +help is mentioned in help help. Suggested by Trispis@M*U*S*H. 
    509       * include directive for config files, with an example moving all 
    510         the restrict_command's to another file. [SW] 
    511       * make indent runs expand, then indent, because indent doesn't seem to 
    512         handle tabs very well. [SW] 
    513       * index-files.pl sorts patchlevels correctly. Patch by Jeff 
    514         Heinen. 
    515       * LASTLOGOUT attribute records logout time, like LAST, but not 
    516         visual. Suggested by Oriens@Alexandria, and others. 
    517       * Internal cleanup by David@M*U*S*H. New @config category 'messages', 
    518         no more OBJECT_ENDOWMENT or OBJECT_DEPOSIT macros, etc. 
    519       * Internal functions safe_integer(), safe_number(), and safe_dbref() 
    520         to replace safe_str(unparse_FOO(data), buff, bp) calls  [SW] 
    521       * You can now @trigger an attribute containing a $command or 
    522         ^listen and it'll work (skipping the $...: or ^...: parts). 
    523         So you can now do this: 
    524          &DO_WHO obj=$who *: @pemit %#=[u(who,%0)] 
    525          &DO_+WHO obj=$+who *: @tr me/do_who=%0 
    526         (But you can do this much more efficiently with regexp...) 
    527 Fixes: 
    528       * table() is less CPU-intensive in extreme cases. [SW] 
    529       * Hopefully, Configure now determines pagesize on FreeBSD. 
    530         Method suggested by Matt Harris. 
    531       * CHAT_TOKEN_ALIAS comment clarification by Oleo@M*U*S*H. 
    532       * pcre regexp engine updated to version 3.4. 
    533       * Typo in @chan/who fixed by Vexon@M*U*S*H. 
    534       * @attribute/access won't modify AF_INTERNAL attributes now. 
    535       * Additional win32 portability fixes. [NJG] 
    536       * con() was buggy in a bad way. Fixed now. 
    537       * Configure -d should now work on linux systems that don't have 
    538         crypt libraries. Reports by mith and Inek@M*U*S*H. 
    539       * Fix to Z_TEL on things. 
    540       * Help fix to @lock5 by Datron@SW2. 
    541 Languages: 
    542       * Swedish and Hungarian translations for most strings are 
    543         included in this patchlevel. 
    544  
    545  
    546 Version 1.7.3 patchlevel 3                    July 12, 2000 
    547  
    548 Major Changes: 
    549       * Restrictions to the 7-bit ascii charset have largely been removed 
    550         except in attribute names, to help international users. [SW] 
    551       * If available, we now use setlocale to support international 
    552         charsets (and eventually other conventions, though this should 
    553         be considered experimental). If you set your LC_CTYPE environment 
    554         variable to, say, 'fr_FR', french-accented characters should work. 
    555         Wide (multibyte) charsets are not supported. 
    556 Minor Changes: 
    557       * Internal cleanup of page/whisper code by David@M*U*S*H. 
    558       * New mush.cnf directive, page_aliases, for showing alias of 
    559         paging player. Supported by code by David@M*U*S*H. 
    560         Requested by many. A contrib version by Flame dates to 1996. 
    561       * @chat on a non-existant channel returns an error message. [SW] 
    562       * Two new CRYPT_SYSTEM options. One checks both SHS and crypt(3) 
    563         for passwords, and saves them back using SHS. The other does  
    564         the same for plaintext passwords. These should encourage folks 
    565         who currently use crypt(3) to make a painless move to SHS. [SW] 
    566 Commands: 
    567       * @remit can take /silent and /noisy switches now. Suggested by 
    568         Philip Mak. 
    569       * @lemit and @emit can take /silent switch. [SW] 
    570       * @config/set can set configuration parameters at runtime. [SW] 
    571 Functions: 
    572       * The set algebra functions can be given a sort order for output. [SW] 
    573 Fixes: 
    574       * CHAT_TOKEN_ALIAS could get defined w/o a character value. 
    575         Added a better explanation of CHAT_TOKEN_ALIAS in options.h.dist. 
    576         and fixed utils/update.pl to handle commented defines that take  
    577         values a bit better. Report by Nymeria@M*U*S*H. 
    578       * You can no longer initiate following a disconnected player. 
    579         Report by Dave@Galactic. 
    580       * CHANGES for 1.7.1 and 1.7.0 were missing. Back now. 
    581       * Typo in options.h.dist corrected. Report by Padraic@M*U*S*H. 
    582       * Small Configure portability improvements. 
    583       * Better handling of cases where the maildb has messages from 
    584         dbrefs that are out of range (due to truncating a db to remove 
    585         corruption, for example). Suggested by Ashen-Shugar. 
    586       * We now check for sitelocked sites before asking info_slave to 
    587         do ident lookups. 
    588       * Many help clarifications. [SW] 
    589       * linux Configure can use nm to find symbols, finally. 
    590       * help locate() now includes the z flag. 
    591  
    592  
    593 Version 1.7.3 patchlevel 2                    June 3, 2000 
    594  
    595 Commands: 
    596       * New @sitelock options to control access to god, wizards, admin 
    597         by site. [SW] 
    598       * @force can now take /noeval [SW] 
    599  
    600 Functions: 
    601       * squish() can take a second argument to squish non-spaces. [SW] 
    602       * div(), floordiv(), modulo(), and remainder(), a set of functions 
    603         jointly adopted by MUSH and MUX servers for compatibility. [TAP] 
    604       * @@() and null() functions suggested by [LdW]. 
    605  
    606 Minor Changes: 
    607       * @uptime now shows initial restart time, not just time since 
    608         last reboot. 
    609       * Each player now has a limit to the number of @mail messages 
    610         in their inbox (folder 0), configurable in mush.cnf. 
    611         Suggested by Edwin@M*U*S*H. 
    612  
    613 Fixes: 
    614       * More linting and improved indenting [SW] 
    615       * PARANOID works right for broadcast messages (like @cemit) now 
    616         too. Report by Vexon@M*U*S*H. 
    617       * You can no longer follow what you can't see. 
    618       * CHAT_TOKEN_ALIAS info appears in options.h now. Report by  
    619         Rhysem@M*U*S*H. 
    620       * Mac portability changes. [DW] 
    621       * Disconnected players don't follow any more. Suggested by Don Burks. 
    622       * Various fixes to bet