1.8.6p1

From The Fairy Garden MUSH
Jump to navigation Jump to search

Version 1.8.6 patchlevel 1 Mar 29, 2017

Major changes:

* Added some aliases for the MUX com system, including the addcom, delcom, comtitle, comlist and @clist commands. Enabled in mush.cnf. See 'help muxcomsys' for details. Requested by many people over the years. [MG]
* Move all remaining build-time settings out of options.h into mush.cnf and remove options.h. [SW]
* rjust(foobar,3,,1) previously returned "bar"; it now returns "foo", like the analogous functions on MUX and Rhost do. We won't be changing it again. Honest. [1092-MG]

Fixes:

* @clone'ing an old exit which had the alias built into the name incorrectly created a clone with no aliases. Reported by Qon. [MG]
* Fix compile errors in portmsg.c. Reported by mcgiwer. [SW]
* Disable SSLv2 support. [SW]
* Fixed a memory leak in @listens. [MG]
* Minor align() fixes when merging multiple columns. [MG]
* repeat() would sometimes fill the buffer with very large numbers of repetitions. Reported by Ashen-Shugar. [MG]
* SOCKET`CONNECT event caused a crash because cque expected a player to always be enactor. [GM]
* 'help entries' was broken. Reported by Viila@M*U*S*H. [MG]
* @if incorrectly evaluated both its action list arguments prior to queueing one of them. Reported by Qon and Ashen-Shugar. [1076-MG]
* The @mailquota standard attribute was missing from some dbs, for some unknown reason. It will be automatically be added back in when you first update to this version; if you aren't using the @mail system, you can @attribute/delete it once and it'll stay gone. Reported by Kimojuno. [1077-MG]
* Messages - such as an exit's own @osuccess - could be propagated through an audible exit when they shouldn't be. [1081-MG]
* Fix a crash if a particular file descriptor is -1. [SW]
* Fix a potential crash in @stats/tables [SW]
* controls(<obj>, <victim>/<attr>) would return 1 even if <obj> didn't control <victim>. [MG]
* Although json(object) would correctly return {}, an empty JSON object, other JSON functions would throw an error and say it was invalid. [MG]
* Fixed channel_send() incorrectly setting speaker to NOTHING for non-spoofed chat messages when adding text to the channel buffer. PR by Qon.
* extract(<list>) incorrectly returned the 2nd element of <list>, instead of the 1st. Reported by Jules@M*U*S*H. [MG]
* Several places which checked for unsigned integers didn't ignore Tiny_Math, but should have. Reported by Kitten, debugged by Ashen-Shugar. [MG]
* Paranoid dumps didn't use the latest db flags. [SW]
* Although they can't be destroyed directly, it was still possible to destroy some important objects like the player_start room by nuking their owner, with nasty consequences. Reported by Sistene@M*U*S*H. [MG]
* regrab(), reglmatch() and related functions didn't work if the <regexp> contained ansi. From a report by Riorgan@M*U*S*H. [MG]

Minor changes:

* PLAYER`CREATE event now passes the registered email if the player was created using 'register' at the login screen. PR by Qon.
* moniker() now returns accented names, for Rhost/MUX compatability. Reported by Qon. [1063-MG]
* Help fixes by Qon and others. [MG]
* The makefile warns if gperf is not installed but needed to regenerate some source files. Based on an idea by [TK].
* Work torwards supporting Windows via MSYS2. [SW]
* New option for align(), # stops a colsep being added after a column. Suggested by Ashen-Shugar. [MG]
* If you own an object and are in its DEBUGFORWARDLIST, you'll now only get the debug output once. Suggested by Qon. [1059-MG]
* Tweaks to 'help <wildcard>'s error messages, and the help for said syntax. Suggested by Wiggles. [1084-MG]
* The "monikers" config option now takes a list of words, rather than a bitflag - less confusing and more user-friendly. [1089-MG]
* @chownall now takes /things, /rooms and /exits switches, to limit the types of objects chowned. [MG,Rhost]
* @chown <obj>/<attr>=<owner> acts as an alias for @atrchown, for Rhost compatability. [MG]
* @grep/parent checks inherited attributes too. [MG,Rhost]
* Penn now understands XTERM when reading raw ansi tags. It essentially never does this, though. Requested by spork. [975-MG]
* Players that are See_All, Royaty or Wizard can see Hidden-connect messages on any channel. PR by Qon.
* Players hidden on a channel with @chan/hide will not show connect messages to players unless they are see_all or roy/wiz. PR by Qon.
* Hidden-connects/disconnects only show on @chan/recall and crecall() if you are see_all, roy or wizard, except for your own messages. PR by Qon.
* DARK-connect/disconnect/etc messages are no longer announced over channels. Dark and Hidden are two different things. PR by Qon.
* The Pueblo_Send power has been renamed Send_OOB, to reflect its new use for other, non-Pueblo-related, out of band messages. Pueblo_Send remains as an alias. (The hardcode macro checking for the power, Can_Pueblo_Send, has also changed to Can_Send_OOB.) [1041-MG]
* Mortals can now use oob() on themselves, and those with the Send_OOB power can use it to send to anyone. Suggested by Qon and Sketch. [1041-MG]
* Remove a duplicate message when @chzone'ing a priv'd player. [MG]
* @hooks now always have named registers for left-side args, even if the command isn't eqsplit (see 'help @hook7'). [MG] 
* Make SHA-0 dependency optional to support OpenSSL 1.1. [SW]
* Change the default hash for player passwords to SHA-512 from SHA-1. [SW]
* The default @poll message, "Doing", can now be translated. [MG]
* Clean up some of the shell scripts used in the build and startup processes. [SW]

Functions:

* Added setsymdiff() [SW]
* Added randextract(), a more powerful version of randword(). [MG,Rhost]
* randword() is now more ansi-aware. [MG]
* pgrep(), like grep() but also checks parents. [MG,Rhost]
* Added json_query(), for getting various information about JSON data. [MG]
* A number of functions are now more ANSI-friendly, including first(), last(), rest(), fold(), filter(), grab(). Report by Qon. [1048-MG]
* splice() no longer strips ANSI. [1045-MG]

Documentation:

* Improve documentation for required packages in some Linux distributions.
* Document how to get Penn running on the Windows 10 Bash For Ubuntu On Windows project.

Hardcode:

* safe_atr_value() now takes a second arg, for memory tracking (mem_check), and the returned value must be freed with mush_free() instead of just free(). [MG]
* ChanTitle(), CHAN_TITLE_LEN, and the "title" member of the channel struct - used for @channel/desc - have been renamed to ChanDesc, CHAN_DESC_LEN and "desc", respectively. Now I won't confuse them as being relevant with @channel/title. Every. Single. Time. [MG]
* etime_to_secs() now takes a third, boolean argument, default_minutes. If true, purely numerical values are treated as a number of minutes, not seconds. This allows using the function for parsing time-related config options instead of having a separate implimentation. [MG]