diff --git a/CHANGES.185 b/CHANGES.185 index 3cd433c1..e9fa58a2 100644 --- a/CHANGES.185 +++ b/CHANGES.185 @@ -1,10 +1,6 @@ -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) +This is the changes file for PennMUSH 1.8.5. 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) -[SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos), also - responsible for most unattributed changes. +[SW] is Shawn Wagner, a PennMUSH developer (aka Raevnos), also responsible for most unattributed changes. [GM] is Greg Millam, a PennMUSH developer (aka Walker) [MG] is Mike Griffiths, a PennMUSH developer (aka Talvo) [3] refers to code by (or inspired by) TinyMUSH 3.0 @@ -16,47 +12,29 @@ chronological order (most recent first) Version 1.8.5 patchlevel 7 Mar 16, 2015 Fixes: - * Bytes received by connections weren't being properly recorded for - things like SESSION and recv(). + * Bytes received by connections weren't being properly recorded for things like SESSION and recv(). * Fix some highly unlikely crash bugs/memory leaks in atr_tab.c [MG] * @attribute/delete now deletes all aliases for the deleted attr, too. [MG] * Help fixes. [MG] * SOCKSET didn't always send the corret lineendings. [MG] - * unsetq() and @include/clearregs were unpredictable, and hopefully now - function more reliably. Reported by spork, Mercutio and others. [MG] + * unsetq() and @include/clearregs were unpredictable, and hopefully now function more reliably. Reported by spork, Mercutio and others. [MG] * Remove compile warning when info_slave isn't used. [MG] - * %X now always returns the capitalized version of %x, even when the returned - value contains ANSI. [MG] - * Fixed a few niggly bugs in @include, registers() and similar things - making too many or too few registers available at the wrong time. From a - report by Paige. [MG] + * %X now always returns the capitalized version of %x, even when the returned value contains ANSI. [MG] + * Fixed a few niggly bugs in @include, registers() and similar things making too many or too few registers available at the wrong time. From a report by Paige. [MG] * lit(%) returned %) instead of %. Reported by Ashen-Shugar. [MG] - * PCRE's jit engine causes crashes when passed certain malicious regular - expressions. Disable it for all public-facing uses of REs. Reported by - Ashen-Shugar. [SW] - * align() would sometimes show extra column separators when columns were - merged. [MG] - * @lock/interact was wrongly checked when paging a player with an @pageformat - set. Reported by Odin. [MG] - * Channels you had both @chan/gagged and @chan/combined would still show - connect messages. Reported by Paige. [MG] - * Fix a memory leak in @dolist/inline when used with @break. From a report by - spork. [MG] - * @chan/decompile by a mortal didn't give an error message. - Reported by Paige. [MG] - * It was impossible to remove a thing from a channel which had been - restricted so only players could join. Reported by Paige. [MG] - * Players with an @pageformat which eval'd to an empty string wouldn't know - they were being paged. Reported by Ashen-Shugar. [MG] + * PCRE's jit engine causes crashes when passed certain malicious regular expressions. Disable it for all public-facing uses of REs. Reported by Ashen-Shugar. [SW] + * align() would sometimes show extra column separators when columns were merged. [MG] + * @lock/interact was wrongly checked when paging a player with an @pageformat set. Reported by Odin. [MG] + * Channels you had both @chan/gagged and @chan/combined would still show connect messages. Reported by Paige. [MG] + * Fix a memory leak in @dolist/inline when used with @break. From a report by spork. [MG] + * @chan/decompile by a mortal didn't give an error message. Reported by Paige. [MG] + * It was impossible to remove a thing from a channel which had been restricted so only players could join. Reported by Paige. [MG] + * Players with an @pageformat which eval'd to an empty string wouldn't know they were being paged. Reported by Ashen-Shugar. [MG] * Fix crash in named q-registers. Reported by Qon@M*U*S*H. [DC] - * Enabling the log_commands config option while a LOG`CMD event was set would - cause endless queueing, until the event handler was halted as a runaway - object. Reported by spork. [MG] - * Fix a potential overflow problem in the code that computes queue load - averages for @ps. [SW] + * Enabling the log_commands config option while a LOG`CMD event was set would cause endless queueing, until the event handler was halted as a runaway object. Reported by spork. [MG] + * Fix a potential overflow problem in the code that computes queue load averages for @ps. [SW] * @motd/down and @motd/full are actually shown now. [MG] - * Properly negotiate telnet with clients who spit out telnet codes instantly - upon connection like MUSHclient. Reported by Mercutio and AND. [MG] + * Properly negotiate telnet with clients who spit out telnet codes instantly upon connection like MUSHclient. Reported by Mercutio and AND. [MG] * Improved configure support for NetBSD. [SW] * Fix a compile error on non-Windows, non-BSD, non-Linux OSes. [SW] @@ -64,50 +42,34 @@ Hardcode: * Improvements to networking code; robustness on errors and portability. [SW] Functions: - * Added two new column modifiers to wrap(), x and X, to allow truncation of - fields instead of wrapping. Suggested by Qon, spork and others. [MG] + * Added two new column modifiers to wrap(), x and X, to allow truncation of fields instead of wrapping. Suggested by Qon, spork and others. [MG] Minor changes: - * @attribute/delete now displays the info for an attribute, as per @attrib - , prior to deleting it. [MG] - * The *div*() and *mod*() math functions now take an unlimited number of - args, instead of exactly 2 args. Suggested by Mercutio, patch by Luke. - * A SUSPECT player changing their name to the same thing doesn't trigger - an alert. Suggested by Rince. [SW] - * valid(attrvalue, , ) checks if & obj= is valid. - For @attrib/enum and /limit. [MG] - * Added @flag/decompile and @attribute/decompile, to decompile each table - to copy to another game. Suggested by spork. [MG] - * Newly set player passwords are salted to be more resistant to cracking via - rainbow tables by somebody with a copy of the database. You still shouldn't - be re-using a password for anything important, of course. Existing - passwords aren't automatically updated. [SW] + * @attribute/delete now displays the info for an attribute, as per @attrib , prior to deleting it. [MG] + * The *div*() and *mod*() math functions now take an unlimited number of args, instead of exactly 2 args. Suggested by Mercutio, patch by Luke. + * A SUSPECT player changing their name to the same thing doesn't trigger an alert. Suggested by Rince. [SW] + * valid(attrvalue, , ) checks if & obj= is valid. For @attrib/enum and /limit. [MG] + * Added @flag/decompile and @attribute/decompile, to decompile each table to copy to another game. Suggested by spork. [MG] + * Newly set player passwords are salted to be more resistant to cracking via rainbow tables by somebody with a copy of the database. You still shouldn't be re-using a password for anything important, of course. Existing passwords aren't automatically updated. [SW] * Added /clearregs to @trigger. Suggested by Volund. [MG] - * @motd with no args now acts like @motd/list, instead of clearing the MotD. - Use @motd/clear to clear the current one. Suggested by Bodin. [MG] + * @motd with no args now acts like @motd/list, instead of clearing the MotD. Use @motd/clear to clear the current one. Suggested by Bodin. [MG] * @command can now be used by non-players. From a gripe of Kitai's. [MG] * Update some configure macros to the latest versions. [SW] Version 1.8.5 patchlevel 6 Jul 29, 2014 Hardcode: - * Removed an old debugging variable to reduce memory usage. Suggested by - spork. [MG] - * ssl_slave now gets passed its settings via a pipe, instead of on the - command line. [SW] - * Rewritten the telnet handler, to make it more manageable/modifiable, - instead of it being a huge bunch of nested switch()es. [MG] + * Removed an old debugging variable to reduce memory usage. Suggested by spork. [MG] + * ssl_slave now gets passed its settings via a pipe, instead of on the command line. [SW] + * Rewritten the telnet handler, to make it more manageable/modifiable, instead of it being a huge bunch of nested switch()es. [MG] * Update the SFMT random number generator to 1.4.1. [SW] - * Built in and persistant uses of regular expressions are JIT compiled if the - host's PCRE version supports it, for faster matching. + * Built in and persistant uses of regular expressions are JIT compiled if the host's PCRE version supports it, for faster matching. * Better support for BSD systems. Functions: * valid() can now test for valid channel names. Suggested by Volund. [MG] - * valid() now takes an optional argument for some categories, - to see if is a valid name for . [MG] - * tan(90,d) now reports an error instead of a really big number. Suggested by - Peppel. [SW] + * valid() now takes an optional argument for some categories, to see if is a valid name for . [MG] + * tan(90,d) now reports an error instead of a really big number. Suggested by Peppel. [SW] * More math functions report errors. [SW] * Added reglmatch[all][i]() functions, regexp versions of match[all](). [MG] * isdaylight() now accepts time and timezone arguments. [SW] @@ -115,650 +77,357 @@ Functions: * foreach() is now ansi-aware. Reported by Ashen-Shugar. [MG] Minor changes: - * @channel/gag no longer persists across a full @shutdown. Suggested by - Trinsec. [MG] - * 'give' now gives more informative error messages when you try and give - pennies to someone who has the maximum, or take pennies from someone who - is broke. [MG] - * The message shown when you need to run 'make update' is now slightly - clearer about what to do and why. By Rince. + * @channel/gag no longer persists across a full @shutdown. Suggested by Trinsec. [MG] + * 'give' now gives more informative error messages when you try and give pennies to someone who has the maximum, or take pennies from someone who is broke. [MG] + * The message shown when you need to run 'make update' is now slightly clearer about what to do and why. By Rince. * Removed some 20 year old Sun OS workaround code. Suggested by Fraibert. * Slightly less confusing error message for @chan/buffer suggested by Sketch. - * 'HELP ENTRIES' is generated on the fly, and shows the total number of - pages. Suggested by [MG] and Trinsec. [SW] - * @success/@osuccess/@asuccess now get the old location of the moving object - in %0. Suggested by Riorgan. [SW] - * @mail/review with no args now lists all mail you've sent to everyone. - Suggested by Paige. [MG] - * @mail/review now shows the recipient in the message list, instead of the - sender. This is slightly more useful, since the person using the command - is always the sender. [MG] - * @mail/status now lets you twiddle the 'urgent' status of messages. From a - suggestion by Paige. [MG] - * You can now always see a channel if you've been joined to it and can speak - on it, even if you don't pass its @clock/see. Suggested by Rince. [MG] - * 'page foo=' now produces an error, instead of paging nothing. Suggested by - Paige. [MG] - * 'make localized' now ignores charset when building translation files, which - stops it throwing errors unnecessarily. [MG] + * 'HELP ENTRIES' is generated on the fly, and shows the total number of pages. Suggested by [MG] and Trinsec. [SW] + * @success/@osuccess/@asuccess now get the old location of the moving object in %0. Suggested by Riorgan. [SW] + * @mail/review with no args now lists all mail you've sent to everyone. Suggested by Paige. [MG] + * @mail/review now shows the recipient in the message list, instead of the sender. This is slightly more useful, since the person using the command is always the sender. [MG] + * @mail/status now lets you twiddle the 'urgent' status of messages. From a suggestion by Paige. [MG] + * You can now always see a channel if you've been joined to it and can speak on it, even if you don't pass its @clock/see. Suggested by Rince. [MG] + * 'page foo=' now produces an error, instead of paging nothing. Suggested by Paige. [MG] + * 'make localized' now ignores charset when building translation files, which stops it throwing errors unnecessarily. [MG] * Use a more robust configure check for timezone data files. [SW] - * Added a /spoof switch to @mapsql, to spoof the enactor a la @trigger/spoof. - Suggested by Mercutio. [MG] + * Added a /spoof switch to @mapsql, to spoof the enactor a la @trigger/spoof. Suggested by Mercutio. [MG] * Improved error reporting when info_slave or ssl_slave exits unexpectedly. [SW] - * hasflag(, connected) now returns 1 if the caller can see that the - player is online, instead of always returning 0 for mortal callers. Most - recently suggested by Odin@M*U*S*H. [MG] + * hasflag(, connected) now returns 1 if the caller can see that the player is online, instead of always returning 0 for mortal callers. Most recently suggested by Odin@M*U*S*H. [MG] Fixes: * Windows compile fixes by ChaosMageX. * Fix a crash when expanding the flagset size. Reported by spork. [DC] - * @attribute/access incorrectly cleared an @attribute/limit on the same - attr. Reported by Ton Kyrion. [MG] + * @attribute/access incorrectly cleared an @attribute/limit on the same attr. Reported by Ton Kyrion. [MG] * Help/translation fixes by spork, Riorgan and others. [MG] - * The 'give', 'take' and 'empty' commands displayed the wrong object names - when mogrifiers were used. Reported by Riorgan. [MG] - * Fix crash in ssl_slave when a connection drops in the middle of hostname - lookup. + * The 'give', 'take' and 'empty' commands displayed the wrong object names when mogrifiers were used. Reported by Riorgan. [MG] + * Fix crash in ssl_slave when a connection drops in the middle of hostname lookup. * Crashbug in SQL fixed. Reported by Mercutio. [MG] - * @mapsql/colnames cleared q-registers in the first (colnames) action list - queued. Reported by Mercutio. [MG] - * @channel/join would give an 'ambiguous' error, even if you couldn't see the - other potentially-matching channels. Reported by Mercutio. [MG] - * Penn negotiated charset as iso-8859-1 (latin1) even if the MUSH was - running using a different charset. Reported by Tyler. [MG] - * Better support for mixing IPv4 and IPv6 connections. FreeBSD and NetBSD - should not need the --disable-ipv6 option to configure any more. [SW] - * Fixed an obscure buffer-overwrite bug in the channel system. Reported by - Volund@M*U*S*H/Roll@Multiverse Crisis MUSH. [MG] + * @mapsql/colnames cleared q-registers in the first (colnames) action list queued. Reported by Mercutio. [MG] + * @channel/join would give an 'ambiguous' error, even if you couldn't see the other potentially-matching channels. Reported by Mercutio. [MG] + * Penn negotiated charset as iso-8859-1 (latin1) even if the MUSH was running using a different charset. Reported by Tyler. [MG] + * Better support for mixing IPv4 and IPv6 connections. FreeBSD and NetBSD should not need the --disable-ipv6 option to configure any more. [SW] + * Fixed an obscure buffer-overwrite bug in the channel system. Reported by Volund@M*U*S*H/Roll@Multiverse Crisis MUSH. [MG] Version 1.8.5 patchlevel 5 Nov 20, 2013 Commands: - * Added @moniker, to allow colored names. See 'help monikers' for more. - Requested by Mikoto Misaka. Idea from [MUX]. [MG] - * After a year of deprecation, @emit/room has been removed as an alias for - @lemit. [MG] - * @chan/list now takes /on and /off switches, to filter the channels shown, - and a /quiet switch to give a less verbose output. From a suggestion by - Fraibert. [MG] + * Added @moniker, to allow colored names. See 'help monikers' for more. Requested by Mikoto Misaka. Idea from [MUX]. [MG] + * After a year of deprecation, @emit/room has been removed as an alias for @lemit. [MG] + * @chan/list now takes /on and /off switches, to filter the channels shown, and a /quiet switch to give a less verbose output. From a suggestion by Fraibert. [MG] * @trigger now takes a /spoof switch, which preserves the enactor. [MG] - * New @hook/extend, which allows adding new functionality to built-in - commands via softcode, while preserving the original command. [MG] [Rhost] + * New @hook/extend, which allows adding new functionality to built-in commands via softcode, while preserving the original command. [MG] [Rhost] Major changes: - * Regexp $-commands can now used name captures. They can be accessed via - r(, args). Suggested by Mercutio. [MG] + * Regexp $-commands can now used name captures. They can be accessed via r(, args). Suggested by Mercutio. [MG] Hardcode: - * A number of changes have been made to accomodate monikers. Notably, a lot - of calls to the Name() macro now use the AName() macro. See the - HACKING.185 file for more info. [MG] - * wild_match_case_r(), regexp_match_case_r(), pe_regs_set_rx_context() - and pe_regs_set_rx_context_ansi() now take an extra argument, a PE_REGS* - flag to determine how matching subpatterns are stored in pe_regs. [MG] - * add_flag_generic() now returns an enum, and takes an additional final - pointer arg, where the new flag will be stored. add_flag() and add_power() - pass this pointer as NULL. [MG] + * A number of changes have been made to accomodate monikers. Notably, a lot of calls to the Name() macro now use the AName() macro. See the HACKING.185 file for more info. [MG] + * wild_match_case_r(), regexp_match_case_r(), pe_regs_set_rx_context() and pe_regs_set_rx_context_ansi() now take an extra argument, a PE_REGS* flag to determine how matching subpatterns are stored in pe_regs. [MG] + * add_flag_generic() now returns an enum, and takes an additional final pointer arg, where the new flag will be stored. add_flag() and add_power() pass this pointer as NULL. [MG] * Improve heuristics used for resizing the flagcache hash table. [DC] * Update hashing functions used by various hash table implementations. [DC] Fixes: - * Commands which take multiple right-hand-side arguments could only have - 8191-length arguments, instead of the usual 8192. Reported by Jules. [MG] - * It was possible to return non-printable characters from an SQL database, - which could cause undefined weirdness. Reported by spork. [MG] - * Many things which listed attributes from a parent, like lattrp() or - examine/parent, didn't respect no_inherit fully. [MG] + * Commands which take multiple right-hand-side arguments could only have 8191-length arguments, instead of the usual 8192. Reported by Jules. [MG] + * It was possible to return non-printable characters from an SQL database, which could cause undefined weirdness. Reported by spork. [MG] + * Many things which listed attributes from a parent, like lattrp() or examine/parent, didn't respect no_inherit fully. [MG] * Minor crashbug in @boot fixed. Reported by thomaswdyoung. [MG] * @grep now ignores ansi when looking for a value. Suggested by Mouvar. [MG] - * colors() now complains when the color is 'n', 'd' or 'D', since they - have no actual color value. Reported by spork. [MG] + * colors() now complains when the color is 'n', 'd' or 'D', since they have no actual color value. Reported by spork. [MG] * Buffer overflow bug in ansi() fixed. Reported by tsen. [MG] * Flag corruption issue due to incorrect flagset refcounts fixed. [DC] - * When a player was nuked, any @mail they had filed into another folder - would be retained, and visible to a new player created later with the - same dbref. Reported by Valkyrie. [MG] + * When a player was nuked, any @mail they had filed into another folder would be retained, and visible to a new player created later with the same dbref. Reported by Valkyrie. [MG] * Crashbug in @message. Reported by Yuriko. [MG] - * linsert(,1,foo) now returns "foo", like it always used to, instead of - returning an empty list. [MG] - * SSL connections which had not yet logged into a player weren't always - fully cleaned up. Patch by Fraibert. - * channels() could include an extra delimiter in some cases. Reported by - Mouvar. [MG] + * linsert(,1,foo) now returns "foo", like it always used to, instead of returning an empty list. [MG] + * SSL connections which had not yet logged into a player weren't always fully cleaned up. Patch by Fraibert. + * channels() could include an extra delimiter in some cases. Reported by Mouvar. [MG] * Translations weren't working in the chat system. Reported by Riorgan. [MG] Minor changes: - * strreplace() now works harder to keep existing ANSI intact, when you - replace an un-ansi'd string into an ansi'd one. [MG] - * colors(...,xterm256) can now return colors 0 to 15, to avoid confusion - when converting xterm -> hex -> xterm. Reported by Trinsec. [MG] + * strreplace() now works harder to keep existing ANSI intact, when you replace an un-ansi'd string into an ansi'd one. [MG] + * colors(...,xterm256) can now return colors 0 to 15, to avoid confusion when converting xterm -> hex -> xterm. Reported by Trinsec. [MG] * New substitution, %k, returns the enactor's monikered name. [MUX] [MG] * Help fixes and tweaks. [MG] - * PennMUSH can now read MUX-style passwords, to make moving dbs from MUX - to Penn less painful. Requested by Muse. [MG] - * Commands are no longer queued for HALTed non-players. (Since they'd be - dropped from the queue anyway, rather than being run, it saves us jumping - through a series of hoops for no good reason.) From a report by Muse and - Ashen-Shugar. [MG] - * The connect-screen WHO now shows moniker'd (ansi'd) names, if so - configured. Requested by Trinsec. [MG] - * @mapsql and mapsql()'s attributes now receives named arguments. That is, - '@mapsql me/foo=SELECT bar FROM table' receives the value of the 'bar' - field as both %1 and [r(bar,args)]. [MG] - * Wizards can now give players names with spaces, even when the - player_name_spaces option is off. Suggested by Paige. [MG] - * Removed the last traces of the 'events' help-style command. Noone ever - uses it, and we removed the helpfiles for it ages ago when the Event - System was added, anyway. [MG] - * Updated the README for adding help-style commands, with clearer examples. - Requested by AnnePearn. [MG] - * Per-player mail limits can be set with @mailquota, to override the - mail_limit @config option selectively. Suggested by Ricochet. [MG] - * Attempting to create a character (at the login screen or via @pcreate) - is now specific about whether the name is already in use or invalid, - rather than leaving you guessing. [MG] - * Likewise, when failing to connect, the login screen tells you whether - there is no such player, or whether the password is wrong. [MG] - * beep() now returns out of range, instead of permission denied, when given - an arg which is not between 1 and 5. [MG] - * When an evaluation @search hits the CPU limit, it will now tell you which - object it failed on, to make it easier for you to continue with a partial - search. [MG] - * Players are now warned when setting an unanchored regexp $-command, as - this is often an oversight which is problematic to track down later. [MG] - * More effort now goes into checking whether an attribute contains a valid - $-command when it's set, to avoid doing so unnecessarily during command - matching; the latter happens a lot more often. [MG] + * PennMUSH can now read MUX-style passwords, to make moving dbs from MUX to Penn less painful. Requested by Muse. [MG] + * Commands are no longer queued for HALTed non-players. (Since they'd be dropped from the queue anyway, rather than being run, it saves us jumping through a series of hoops for no good reason.) From a report by Muse and Ashen-Shugar. [MG] + * The connect-screen WHO now shows moniker'd (ansi'd) names, if so configured. Requested by Trinsec. [MG] + * @mapsql and mapsql()'s attributes now receives named arguments. That is, '@mapsql me/foo=SELECT bar FROM table' receives the value of the 'bar' field as both %1 and [r(bar,args)]. [MG] + * Wizards can now give players names with spaces, even when the player_name_spaces option is off. Suggested by Paige. [MG] + * Removed the last traces of the 'events' help-style command. Noone ever uses it, and we removed the helpfiles for it ages ago when the Event System was added, anyway. [MG] + * Updated the README for adding help-style commands, with clearer examples. Requested by AnnePearn. [MG] + * Per-player mail limits can be set with @mailquota, to override the mail_limit @config option selectively. Suggested by Ricochet. [MG] + * Attempting to create a character (at the login screen or via @pcreate) is now specific about whether the name is already in use or invalid, rather than leaving you guessing. [MG] + * Likewise, when failing to connect, the login screen tells you whether there is no such player, or whether the password is wrong. [MG] + * beep() now returns out of range, instead of permission denied, when given an arg which is not between 1 and 5. [MG] + * When an evaluation @search hits the CPU limit, it will now tell you which object it failed on, to make it easier for you to continue with a partial search. [MG] + * Players are now warned when setting an unanchored regexp $-command, as this is often an oversight which is problematic to track down later. [MG] + * More effort now goes into checking whether an attribute contains a valid $-command when it's set, to avoid doing so unnecessarily during command matching; the latter happens a lot more often. [MG] Functions: - * delete(), replace() and insert() have been renamed to strdelete(), - lreplace() and linsert(), respectively, for clarity and conformity. The - original names remain as aliases. [MG] + * delete(), replace() and insert() have been renamed to strdelete(), lreplace() and linsert(), respectively, for clarity and conformity. The original names remain as aliases. [MG] * moniker() returns an object's monikered name. [MUX] [MG] - * mapsql() only stored 10 columns, instead of the advertised 30. Reported - by Mercutio. [MG] - * fn() now takes an / prefix to its first arg, to evaluate the built-in - function as . Useful when overriding side-effect functions. [MG] - * r() now takes two arguments, allowing it to return the stack (%0-%9), - itext() and stext() values, as well as q-registers(). [MG] - * Mortals can now use playermem() and objmem() on their own objects. - Suggested by Paige. [MG] - * ljust() and rjust() now take an optional arg which, if true, - causes strings already longer than to be truncated. Suggested by - many people over the years, most recently Rince and Quasar. [MG] + * mapsql() only stored 10 columns, instead of the advertised 30. Reported by Mercutio. [MG] + * fn() now takes an / prefix to its first arg, to evaluate the built-in function as . Useful when overriding side-effect functions. [MG] + * r() now takes two arguments, allowing it to return the stack (%0-%9), itext() and stext() values, as well as q-registers(). [MG] + * Mortals can now use playermem() and objmem() on their own objects. Suggested by Paige. [MG] + * ljust() and rjust() now take an optional arg which, if true, causes strings already longer than to be truncated. Suggested by many people over the years, most recently Rince and Quasar. [MG] Version 1.8.5 patchlevel 4 Mar 17, 2013 Major changes: - * The player_name_len @config option is now the maximum length of a player - name, instead of the maximum length+1, because doing it that way was - rather silly. You may wish to lower yours by 1 now to compensate. - Suggested by Mercutio. [MG] - * Having unescaped commas in the final arg of a function call is now - deprecated, and will eventually become illegal. Any existing code which - does this will spam you with a warning until you change it. [MG] - * The stack (%0-%9) can now hold up to 30 arguments, with the additional 20 - available through v(10) to v(29). $-commands, @functions and many built-in - commands and functions (such as ufun(), @mapsql, etc) now make use of - these args. [MG] [MUX] [Rhost] + * The player_name_len @config option is now the maximum length of a player name, instead of the maximum length+1, because doing it that way was rather silly. You may wish to lower yours by 1 now to compensate. Suggested by Mercutio. [MG] + * Having unescaped commas in the final arg of a function call is now deprecated, and will eventually become illegal. Any existing code which does this will spam you with a warning until you change it. [MG] + * The stack (%0-%9) can now hold up to 30 arguments, with the additional 20 available through v(10) to v(29). $-commands, @functions and many built-in commands and functions (such as ufun(), @mapsql, etc) now make use of these args. [MG] [MUX] [Rhost] Commands: - * @dolist now accepts /inline and related switches, like @switch does. - Suggested by Reaver. [MG] - * @teleport/list teleports a list of objects to a single destination. - Suggested by Nyssa, [MUX]. [MG] + * @dolist now accepts /inline and related switches, like @switch does. Suggested by Reaver. [MG] + * @teleport/list teleports a list of objects to a single destination. Suggested by Nyssa, [MUX]. [MG] * @sockset and SOCKSET can now show/set PROMPT_NEWLINES. [MG] - * @halt now takes a /noeval switch, and will always strip curly braces when - run /noeval. [MG] - * Added @mail/cstats, which shows the mail stats you see on connection. - Patch by spork. - * Added a new switch for @command/add, /rsnoparse, which stops the rightside - arguments (after the '=') from being evaluated. Also clarified the help - to show that /noparse only affects leftside args. Suggested by spork. [MG] - * WHO, DOING and SESSION now take wildcard patterns for names, as well as - a prefix. [MG] - * New option for @sockset/SOCKSET, 'stripaccents', to strip accents for a - single connection as per the NOACCENTS flag. [MG] + * @halt now takes a /noeval switch, and will always strip curly braces when run /noeval. [MG] + * Added @mail/cstats, which shows the mail stats you see on connection. Patch by spork. + * Added a new switch for @command/add, /rsnoparse, which stops the rightside arguments (after the '=') from being evaluated. Also clarified the help to show that /noparse only affects leftside args. Suggested by spork. [MG] + * WHO, DOING and SESSION now take wildcard patterns for names, as well as a prefix. [MG] + * New option for @sockset/SOCKSET, 'stripaccents', to strip accents for a single connection as per the NOACCENTS flag. [MG] Functions: - * lpids()' second argument has been altered slightly, to allow you to list - the pids for one specific object only. Suggested by spork. [MG] - * The "player" field in pidinfo() has been renamed to "executor", for - clarity. "player" still works for backwards compatability. From a request - by tsen. [MG] - * stringsecs() can now handle the additional time periods that etime() can - return (years, weeks). [MG] + * lpids()' second argument has been altered slightly, to allow you to list the pids for one specific object only. Suggested by spork. [MG] + * The "player" field in pidinfo() has been renamed to "executor", for clarity. "player" still works for backwards compatability. From a request by tsen. [MG] + * stringsecs() can now handle the additional time periods that etime() can return (years, weeks). [MG] * colors(..., name) is much more efficient. [SW] * alias(object,) clears object's @alias. Suggested by spork. [MG] - * v() is no longer the same as get(me/). Instead, it - always the th stack entry. [MG] [Rhost] [MUX] - * It's now documented that replace() can alter multiple words at once. - Reported by Jules. [MG] - * Some terminfo() information can now be retrieved by mortals on other - players' connections. Suggested by spork. [MG] - * Added a new option to colors() to include ansi underline, invert and - flash from the input in the output. [MG] - * locate() takes a new flag, 's', which will only return objects - controlled by the looker. Suggested by spork. [MG] - * @@() now takes a huge number of arguments, instead of ignoring commas in - the final arg, to stop it giving the 'unescaped comma' warning. Requested - by everyone. [MG] - * terminfo() now tells you whether a connection is having accents stripped, - either via NOACCENTS or @sockset. [MG] + * v() is no longer the same as get(me/). Instead, it always the th stack entry. [MG] [Rhost] [MUX] + * It's now documented that replace() can alter multiple words at once. Reported by Jules. [MG] + * Some terminfo() information can now be retrieved by mortals on other players' connections. Suggested by spork. [MG] + * Added a new option to colors() to include ansi underline, invert and flash from the input in the output. [MG] + * locate() takes a new flag, 's', which will only return objects controlled by the looker. Suggested by spork. [MG] + * @@() now takes a huge number of arguments, instead of ignoring commas in the final arg, to stop it giving the 'unescaped comma' warning. Requested by everyone. [MG] + * terminfo() now tells you whether a connection is having accents stripped, either via NOACCENTS or @sockset. [MG] Minor changes: - * ansi() now accepts a space-separated list of color codes, with later - groups overriding earlier ones. Allows you to specify basic ANSI codes - after XTERM color codes. Suggested by spork, [Rhost]. [MG] + * ansi() now accepts a space-separated list of color codes, with later groups overriding earlier ones. Allows you to specify basic ANSI codes after XTERM color codes. Suggested by spork, [Rhost]. [MG] * Compiler warning fixed by ChaosMageX. * Help fixes by many, including spork, Wiggles and Bodin. [MG] - * The tables mapping color names and RGB values are now generated by a - script in utils/. [SW] - * Converting from named colors to the nearest xterm or ansi equivalent is - much more efficient. [SW] - * Converting from extended colors to ansi colors is smarter. Based on - work by Padraic. [SW] - * Email registration no longer pretends to work with really!old!addresses. - [SW]. - * Better error reporting in logs and event hooks on failed email - registration. Suggested by Padriac. [SW] - * @decompile now reports the exit's source room. Suggested by - telandra2. [MG] - * You now only need to control an object to change its zone, or to use it - as a zone. Previously, ownership was required. Suggested by Cheetah. [MG] - * The hardcode now always ANSIs a string (such as an object name or help - topic), even if the enactor isn't set ANSI. Fixes puppets, etc. [MG] - * When clients negotiate charset via telnet, US-ASCII and ASCII are now - presented as options. If the client picks one of them, that connection - will have accents stripped (as per the NOACCENTS flag). [MG] - * New attribute flag, quiet, suppresses the usual confirmation message - when an attribute's value or flags are changed. Suggested by Trinsec, - bribed by qa'toq. [MG] + * The tables mapping color names and RGB values are now generated by a script in utils/. [SW] + * Converting from named colors to the nearest xterm or ansi equivalent is much more efficient. [SW] + * Converting from extended colors to ansi colors is smarter. Based on work by Padraic. [SW] + * Email registration no longer pretends to work with really!old!addresses. [SW] + * Better error reporting in logs and event hooks on failed email registration. Suggested by Padriac. [SW] + * @decompile now reports the exit's source room. Suggested by telandra2. [MG] + * You now only need to control an object to change its zone, or to use it as a zone. Previously, ownership was required. Suggested by Cheetah. [MG] + * The hardcode now always ANSIs a string (such as an object name or help topic), even if the enactor isn't set ANSI. Fixes puppets, etc. [MG] + * When clients negotiate charset via telnet, US-ASCII and ASCII are now presented as options. If the client picks one of them, that connection will have accents stripped (as per the NOACCENTS flag). [MG] + * New attribute flag, quiet, suppresses the usual confirmation message when an attribute's value or flags are changed. Suggested by Trinsec, bribed by qa'toq. [MG] Fixes: - * %c contained the evaluated input (the same as %u), instead of the - unevaluated input. Reported by Ingwaz. [MG] - * repeat() could write partial ANSI tags, causing buffer overflows. From a - report by Ashen-Shugar. [MG] + * %c contained the evaluated input (the same as %u), instead of the unevaluated input. Reported by Ingwaz. [MG] + * repeat() could write partial ANSI tags, causing buffer overflows. From a report by Ashen-Shugar. [MG] * dbcks didn't reset corrupt exit's source room. Patch by Padriac. * lmath(and,) returned 1 instead of 0. Reported by Padriac. [SW]. * Mixing old-style ansi colors and xterm colors was broken. [MG] - * Players who couldn't see xterm colors would sometimes get a highlighted - foreground color by mistake. [MG] - * colors(, hex) and colors(*, 16color) were broken. - Reported by Kimiko. [MG] - * ANSI highlight would sometimes bleed when xterm colors were downgraded to - the basic 16-color ANSI palette. Reported by Kimiko. [MG] - * @entrances didn't correctly report the source of an exit. Reported by - spork. [MG] + * Players who couldn't see xterm colors would sometimes get a highlighted foreground color by mistake. [MG] + * colors(, hex) and colors(*, 16color) were broken. Reported by Kimiko. [MG] + * ANSI highlight would sometimes bleed when xterm colors were downgraded to the basic 16-color ANSI palette. Reported by Kimiko. [MG] + * @entrances didn't correctly report the source of an exit. Reported by spork. [MG] * Fix a crashbug in @command/delete. [MG] * Fix database corruption on @flag/add [SW] - * Attempting to @mail someone without permission failed silently. Reported - by Kimiko. [MG] - * Players connecting dark with 'cd' were hidden even if they shouldn't have - been. Patch by thomaswdyoung. + * Attempting to @mail someone without permission failed silently. Reported by Kimiko. [MG] + * Players connecting dark with 'cd' were hidden even if they shouldn't have been. Patch by thomaswdyoung. * Fixed a bug in colors(*,16color) with no ansi. [MG] Hardcode: - * The Builder() macro, which is unused in Penn but exists for backwards - compatability, used command_check_byname(), which spammed people who - could not build with "Permission denied." errors. It is now spam-free. - By spork. + * The Builder() macro, which is unused in Penn but exists for backwards compatability, used command_check_byname(), which spammed people who could not build with "Permission denied." errors. It is now spam-free. By spork. Version 1.8.5 patchlevel 3 Aug 23, 2012 Fixes: - * Fix a crash bug in new color code. Discovered by ChaosMageX, fixed by - Intrevis and [SW]. + * Fix a crash bug in new color code. Discovered by ChaosMageX, fixed by Intrevis and [SW]. Functions: - * name() with no arguments is now an error. It should always have been, but - previously returned nothing for backwards compatability. If you still have - code that relies on that behaviour, you are extremely lazy and should be - ashamed of yourself. [MG] + * name() with no arguments is now an error. It should always have been, but previously returned nothing for backwards compatability. If you still have code that relies on that behaviour, you are extremely lazy and should be ashamed of yourself. [MG] Version 1.8.5 patchlevel 2 Aug 18, 2012 Hardcode: - * render_string has been modified to work with multiple output formatters, - so it can display the appropriate color syntax for the client. [GM] + * render_string has been modified to work with multiple output formatters, so it can display the appropriate color syntax for the client. [GM] * Tweak the networking code to try to reduce output latency/queue size. [SW] Major changes: - * 256 Color support. Using 24 bit internally for representation and - downscaling to the client's possible output values. Use - SOCKSET colorstyle=xterm256 to see 256 color support, with - ansi(+colorname/+colorname,...) or ansi(#hexcode/#hexcode) for - extended color support, or @set me=xterm256. [GM] [MG] - * New SOCKSET socket command for changing socket options. Replaces the - @sockset command added in p1 for mortals, and can be used at the - login screen. Suggested by Sketch. [MG] - * @sockset is now @sockset [=,[,...]], to query current - options or set options for any descriptor. [MG] - * The old @doing command has now been removed, and replaced with the normal - standard-attribute command (@doing [=]). [MG] + * 256 Color support. Using 24 bit internally for representation and downscaling to the client's possible output values. Use SOCKSET colorstyle=xterm256 to see 256 color support, with ansi(+colorname/+colorname,...) or ansi(#hexcode/#hexcode) for extended color support, or @set me=xterm256. [GM] [MG] + * New SOCKSET socket command for changing socket options. Replaces the @sockset command added in p1 for mortals, and can be used at the login screen. Suggested by Sketch. [MG] + * @sockset is now @sockset [=,[,...]], to query current options or set options for any descriptor. [MG] + * The old @doing command has now been removed, and replaced with the normal standard-attribute command (@doing [=]). [MG] Commands: - * look now takes an /opaque switch, which hides contents listings. Suggested - by Wiggles. [MG] - * @break and @assert now take a /queued switch, which causes the new to be queued instead of run immediately, and an /inline switch which - gives default behaviour. For Rhost compatability. [MG] - * Two completely separate, but equally stupid, bugs made @nsprompt show - nospoof info just like @prompt. [MG] - * @open, open(), @dig, dig() accept specific garbage dbrefs to use - for the exits they make. [SW] + * look now takes an /opaque switch, which hides contents listings. Suggested by Wiggles. [MG] + * @break and @assert now take a /queued switch, which causes the new to be queued instead of run immediately, and an /inline switch which gives default behaviour. For Rhost compatability. [MG] + * Two completely separate, but equally stupid, bugs made @nsprompt show nospoof info just like @prompt. [MG] + * @open, open(), @dig, dig() accept specific garbage dbrefs to use for the exits they make. [SW] Functions: - * colors() returns a list of all known color names known by PennMUSH, and - info about a particular color. [GM] - * valid() has two new categories, for validating color names and color code - sequences for ansi(). [MG] + * colors() returns a list of all known color names known by PennMUSH, and info about a particular color. [GM] + * valid() has two new categories, for validating color names and color code sequences for ansi(). [MG] * etime() formats elapsed times using the same rules as in WHO. [SW] Minor changes: - * The meaning of the COLOR flag has been restored. ANSI flag once again - means only highlight is supported, while COLOR means all ANSI 8 colors - (8*2 including highlight), flash, invert, etc are supported. [GM] - * Charset negotiation didn't work on MSVC, and now forces iso-8859-1 when - compiled that way instead. Reported by Daniel Powell. [MG] - * @config/set and @config/save now log to the wizard_log. Suggested by - Israphel. [MG] - * The ICLOC attribute, which was set on newly created players but never used - in any way, is no longer set. Suggested by Paige. [MG] - * @destroy'ing, @undestroy'ing, and the actual destruction of players is - now logged. Suggested by Padraic. [MG] + * The meaning of the COLOR flag has been restored. ANSI flag once again means only highlight is supported, while COLOR means all ANSI 8 colors (8*2 including highlight), flash, invert, etc are supported. [GM] + * Charset negotiation didn't work on MSVC, and now forces iso-8859-1 when compiled that way instead. Reported by Daniel Powell. [MG] + * @config/set and @config/save now log to the wizard_log. Suggested by Israphel. [MG] + * The ICLOC attribute, which was set on newly created players but never used in any way, is no longer set. Suggested by Paige. [MG] + * @destroy'ing, @undestroy'ing, and the actual destruction of players is now logged. Suggested by Padraic. [MG] * Translation fixes by Stoko. - * round(4.5,0) behaved differently on Penn than it did on MUX, and - inconsistantly with rounding to more places on Penn. [SW] - * The 'On for' and 'Idle' time fields in WHO are smarter and won't overflow - their space. Suggested by Ari and Paige. [SW] + * round(4.5,0) behaved differently on Penn than it did on MUX, and inconsistantly with rounding to more places on Penn. [SW] + * The 'On for' and 'Idle' time fields in WHO are smarter and won't overflow their space. Suggested by Ari and Paige. [SW] * Add a few new test cases. Requested by Sketch. [MG] * It's now possible to clear/reset a prompt with @prompt . [MG] - * New Pick_Dbref @power for specifying specific garbage dbrefs to use in - @create and friends. [SW] + * New Pick_Dbref @power for specifying specific garbage dbrefs to use in @create and friends. [SW] Fixes: - * Reordered some checks in tz.c to compile on more distributions. Problem - reported by Zen@M*U*SH. [MG] - * Setting an exit Transparent didn't cause its destination's desc to get - shown as it should have. [MG] - * It became impossible in p1 to give a delimiter to wrap() without also - specifying a first line width. wrap(%0,%1,,%2) will now use the - normal arg for first line width, the same as wrap(%0,%1) does. - Reported by Kitai. [MG] - * Free PCRE-allocated memory with pcre_free() instead of free(). Reported - by ChaosMageX@M*U*S*H. [DC] + * Reordered some checks in tz.c to compile on more distributions. Problem reported by Zen@M*U*SH. [MG] + * Setting an exit Transparent didn't cause its destination's desc to get shown as it should have. [MG] + * It became impossible in p1 to give a delimiter to wrap() without also specifying a first line width. wrap(%0,%1,,%2) will now use the normal arg for first line width, the same as wrap(%0,%1) does. Reported by Kitai. [MG] + * Free PCRE-allocated memory with pcre_free() instead of free(). Reported by ChaosMageX@M*U*S*H. [DC] * Fix some potential memory leaks in timezone file reading code. [SW] * Off-by-one error in the helpfile index code. [MG] * Improve docmentation of ip_addr config option. [SW] - * Fix an edge case in ansi_string_replace that could cause an overflow. - Reported by Ton Kyrion@M*U*S*H. [DC] + * Fix an edge case in ansi_string_replace that could cause an overflow. Reported by Ton Kyrion@M*U*S*H. [DC] * Fix a memory leak in LOGOUT. [SW] Version 1.8.5 patchlevel 1 May 15, 2012 Hardcode: - * The local_data_clone() function now receives an additional argument, - which specifies whether @clone/preserve was used. You'll need to either - update the definition of local_data_clone in src/local.c from the one in - src/local.dst or, if you've made no changes to src/local.c, just remove - src/local.c and it'll be rebuilt automatically. [MG] - * The orator variable (defined in game.c), for tracking the last object - which made sound, has been deprecated, and may soon be removed; don't use - it. Just pass the correct dbrefs to the notify*() functions if something - talks. [MG] - * Several of the notify_*() family of functions, and the do_*emit() - functions now take an extra arg, for properly tracking both the executor - and the speaker when spoofing (@pemit/spoof, etc). [MG] + * The local_data_clone() function now receives an additional argument, which specifies whether @clone/preserve was used. You'll need to either update the definition of local_data_clone in src/local.c from the one in src/local.dst or, if you've made no changes to src/local.c, just remove src/local.c and it'll be rebuilt automatically. [MG] + * The orator variable (defined in game.c), for tracking the last object which made sound, has been deprecated, and may soon be removed; don't use it. Just pass the correct dbrefs to the notify*() functions if something talks. [MG] + * Several of the notify_*() family of functions, and the do_*emit() functions now take an extra arg, for properly tracking both the executor and the speaker when spoofing (@pemit/spoof, etc). [MG] Deprecation: - * @emit/room and @doing/header have been deprecated. Use @lemit and @poll, - respectively, instead. [MG] + * @emit/room and @doing/header have been deprecated. Use @lemit and @poll, respectively, instead. [MG] Major changes: - * Built-in attributes are now stored in the database. This means that - @attribute no longer needs to be in an @startup, as it will persist - across reboots and shutdowns. The attribute_alias option in .cnf - files is now deprecated as a result. [MG] - * The database now uses a new versioning scheme (alongside the old - one, for backwards compatability), using incrementing integers - instead of bitwise flags. Ideas by [GM] and Covenent. [MG] + * Built-in attributes are now stored in the database. This means that @attribute no longer needs to be in an @startup, as it will persist across reboots and shutdowns. The attribute_alias option in .cnf files is now deprecated as a result. [MG] + * The database now uses a new versioning scheme (alongside the old one, for backwards compatability), using incrementing integers instead of bitwise flags. Ideas by [GM] and Covenent. [MG] Minor changes: - * Logged messages now have events in the LOG tree. Suggested by - Padraic. [SW] - * Objects belonging to destroyed players now get chowned to a - configurable player (probate_judge in mush.cnf) instead of - God. [SW] - * Commands involving movement now check the enactor is a - player/thing, instead of just relying on the command's - restriction. [MG] - * @switch, switch(), @[in]filter and attribute @locks (foo:bar) now - do lte/gte wildcard matches on <=foo and >=foo patterns. Inspired - by Wiggles. [MG] - * New channel mogrifier, MOGRIFY`NOBUFFER, can be used to exclude - certain @chats from the channel's recall buffer. Suggested by - Wiggles. [MG] - * Nospoof players now see the nospoof header on @cemits, making - @nscemit actually have some use. Report by rimnar@M*U*S*H. [MG] - * The login screen WHO can now be overridden using the who_file - config option, which can be set as the path to a textfile or an - obj/attr, like connect_file et al. From suggestions by Paige, - Trelane and Mercutio. [MG] - * Talek's chunk attribute storage system, which pages attribute - contents to and from disk as needed, is now optional by popular - request. Controlled via options.h [SW] - * New lock, @lock/dropin, controls who can drop objects into that - location. [SW] - * @ps now shows a running average of the number of queue entries - executed per second. [SW] - * Try to discriminate between ssl_slave and other sources of - connections to the local unix socket. [SW] - * Repeating the PUEBOCLIENT socket command now causes PennMUSH to - re-send the 'start parsing HTML' codes, for when Pueblo-enabled - clients hiccough and show raw HTML. [MG] - * The DESTINATION attribute for variable exits now receives the exit - name/alias typed by the player as %0 when moving, to allow different - destinations based on the exit alias used to move. It also has access - to %c, %u, and other %-subs available when moving, Suggested by - Javelin and [GM]. [MG] + * Logged messages now have events in the LOG tree. Suggested by Padraic. [SW] + * Objects belonging to destroyed players now get chowned to a configurable player (probate_judge in mush.cnf) instead of God. [SW] + * Commands involving movement now check the enactor is a player/thing, instead of just relying on the command's restriction. [MG] + * @switch, switch(), @[in]filter and attribute @locks (foo:bar) now do lte/gte wildcard matches on <=foo and >=foo patterns. Inspired by Wiggles. [MG] + * New channel mogrifier, MOGRIFY`NOBUFFER, can be used to exclude certain @chats from the channel's recall buffer. Suggested by Wiggles. [MG] + * Nospoof players now see the nospoof header on @cemits, making @nscemit actually have some use. Report by rimnar@M*U*S*H. [MG] + * The login screen WHO can now be overridden using the who_file config option, which can be set as the path to a textfile or an obj/attr, like connect_file et al. From suggestions by Paige, Trelane and Mercutio. [MG] + * Talek's chunk attribute storage system, which pages attribute contents to and from disk as needed, is now optional by popular request. Controlled via options.h [SW] + * New lock, @lock/dropin, controls who can drop objects into that location. [SW] + * @ps now shows a running average of the number of queue entries executed per second. [SW] + * Try to discriminate between ssl_slave and other sources of connections to the local unix socket. [SW] + * Repeating the PUEBOCLIENT socket command now causes PennMUSH to re-send the 'start parsing HTML' codes, for when Pueblo-enabled clients hiccough and show raw HTML. [MG] + * The DESTINATION attribute for variable exits now receives the exit name/alias typed by the player as %0 when moving, to allow different destinations based on the exit alias used to move. It also has access to %c, %u, and other %-subs available when moving, Suggested by Javelin and [GM]. [MG] * Translation updates and messages fixes by Stoko. * Help fixes by Todd@M*U*S*H, Steve Varley, Wiggles and others. [MG] - * @message now takes a /silent and /noisy switch, the same as @pemit, with - the default controlled by the silent_pemit @config option. message() - is now silent, like pemit(). Suggested by Padraic. [MG] - * The MUSH can now negotiate its character set with clients. There's still - only one charset available, but now the client can know exactly what it's - receiving. Suggested by Sketch. [MG] Make sure your MUSH is running in the - right charset; see http://tinyurl.com/penn-charset for more information. + * @message now takes a /silent and /noisy switch, the same as @pemit, with the default controlled by the silent_pemit @config option. message() is now silent, like pemit(). Suggested by Padraic. [MG] + * The MUSH can now negotiate its character set with clients. There's still only one charset available, but now the client can know exactly what it's receiving. Suggested by Sketch. [MG] Make sure your MUSH is running in the right charset; see http://tinyurl.com/penn-charset for more information. * Additional test suite tests for setunion/setdiff/setinter() by Sketch. Fixes: - * When regexp matching an ansi'd string, named captures weren't set - at all. For non-ansi'd strings, non-named (numeric) captures were - sometimes overwritten with the values of named captures. Reported - by Sketch. [MG] - * The configure script incorrectly reported that ssl_slave was - unavailable when told to disable it via - --disable-ssl_slave. Reported by Cheetah. [MG] - * Sound from an AUDIBLE wagon object used to propagate into other - wagon objects in the same location with an @listen of *. It now - does so again. Reported by Xeero and Padraic. [MG] - * Sound will now also propagate through two @listens, instead of just - one, as it used to. Reported by Mac@M*U*S*H. [MG] + * When regexp matching an ansi'd string, named captures weren't set at all. For non-ansi'd strings, non-named (numeric) captures were sometimes overwritten with the values of named captures. Reported by Sketch. [MG] + * The configure script incorrectly reported that ssl_slave was unavailable when told to disable it via --disable-ssl_slave. Reported by Cheetah. [MG] + * Sound from an AUDIBLE wagon object used to propagate into other wagon objects in the same location with an @listen of *. It now does so again. Reported by Xeero and Padraic. [MG] + * Sound will now also propagate through two @listens, instead of just one, as it used to. Reported by Mac@M*U*S*H. [MG] * Loading a reboot db is more robust. Inspired by Padraic. [SW] * scan() couldn't be used by rooms. Reported by Padraic. [MG] - * Possible crashbug in the queue triggered by events reported by - Rince@Wing Commander: New Horizon. [MG] + * Possible crashbug in the queue triggered by events reported by Rince@Wing Commander: New Horizon. [MG] * @list attribute would show duplicates for aliases. [MG] * insert(,foo,-1) no longer appends an extra delimiter. [MG] - * @function/clone didn't work correctly, and could potentially cause - a crash. [MG] + * @function/clone didn't work correctly, and could potentially cause a crash. [MG] * @clone didn't respect Many_Attribs. [MG] - * Making a connection to a ssl port on a game not using ssl_slave - could hang the mush. Reported by Minion. [SW] - * @cemit and friends would notify you twice if you cemited to a channel - you weren't on. Reported by spork. [MG] + * Making a connection to a ssl port on a game not using ssl_slave could hang the mush. Reported by Minion. [SW] + * @cemit and friends would notify you twice if you cemited to a channel you weren't on. Reported by spork. [MG] * regrep() could try to read uninitialized memory. [SW] * Fix a possible DOS from a local attacker. [SW] * Fix a couple of possible memory leaks. [MG] * ordinal(12) now returns twelfth, not twelveth. Patch by Minion. * trunc() now ignores ANSI. Reported by Sketch. [MG] - * Evaluation @locks didn't receive %0-%9 args, even when they should. - Reported by Zen@M*U*S*H. [MG] - * @message/spoof now tracks both the object using @message and the object - being spoofed, allowing for more accurate priv checks when evaluating - the format messages. Reported by Mercutio. [MG] - * When spoofing (@pemit/spoof, etc), any errors for failed locks or bad - object names incorrectly went to the object being spoofed, not the object - doing the spoofing. [MG] + * Evaluation @locks didn't receive %0-%9 args, even when they should. Reported by Zen@M*U*S*H. [MG] + * @message/spoof now tracks both the object using @message and the object being spoofed, allowing for more accurate priv checks when evaluating the format messages. Reported by Mercutio. [MG] + * When spoofing (@pemit/spoof, etc), any errors for failed locks or bad object names incorrectly went to the object being spoofed, not the object doing the spoofing. [MG] * @lemit incorrectly ignored an = and anything after it in its arg. [MG] - * wrap(%0,strlen(%0)) would incorrectly wrap the string onto two lines. - Reported by Padraic. [MG] + * wrap(%0,strlen(%0)) would incorrectly wrap the string onto two lines. Reported by Padraic. [MG] Commands: - * @edit/regexp[/all][/nocase], command version of regedit[all][i](). - Suggested by Minion. [MG] - * The @sql command no longer uses UNIMPLEMENTED_COMMAND when SQL - support is not compiled into the MUSH. Instead, it just reports - that no SQL db is available, like @mapsql does. [MG] - * @slave, for restarting the info_slave and ssl_slave daemons from - within the game. [SW] + * @edit/regexp[/all][/nocase], command version of regedit[all][i](). Suggested by Minion. [MG] + * The @sql command no longer uses UNIMPLEMENTED_COMMAND when SQL support is not compiled into the MUSH. Instead, it just reports that no SQL db is available, like @mapsql does. [MG] + * @slave, for restarting the info_slave and ssl_slave daemons from within the game. [SW] * @sockset