Released on 07 Sep 2006
The major change in this release is to upgrade the script engine from Lua version 5.0.2 to Lua 5.1.1. (There are some other changes, see below).
1. Upgrade from Lua 5.0.2 to Lua 5.1.1:
See this web page for a detailed explanation about the differences:
This release is intended for scripters to check that their scripts run under Lua 5.1, so that any necessary changes (see link above) are made before being released to normal script users.
If you are a script *author* (or plugin author) you are encouraged to download this version and try it.
If you not familiar with scripting we suggest you stay in a previous version (eg. 3.79) until such time as script authors have had a chance to release upgraded scripts.
If you do not use Lua scripting (or plugins written in Lua) then this release does not have any relevant changes.
The documentation supplied with MUSHclient (as pertaining to Lua) has been changed to reflect the changes to the Lua libraries under Lua 5.1.
2. You can now "Reload script file" even if there is no script file defined. This is so that if you have scripts which purely do "send to script" scripting, you can re-initialize the script engine, if you want to.
3. The Lua sandbox dialog box in Global Preferences now has a checkbox "Allow DLLs to be loaded".
This is because the "loadlib" functionality has been moved in Lua 5.1 from the base library to the package library. However the default sandboxes that many users will have would not disable the package library, thus potentially allow the execution of malicious scripts. Also, "require" can now potentially load DLLs.
Now you will have to explicitly enable the loading of DLLs (via package.loadlib, or as a side-effect of using "require"), hopefully after amending your sandboxes to disable package.loadlib except for trusted worlds or plugins.
4. In the scripting configuration dialog there is now a button labelled "New..." that lets you create a new script file. This is adjacent to the "Browse..." button. Thus, if you want to make a new script, simply click on "New...", choose a file name, and an empty script file will be created for you.
5. Added new script function: ChangeDir
This lets you change the current working directory used by MUSHclient. This is useful for situations (like plugins) where you want to load files relative to the plugin location but are unsure if the working directory is at the plugin location. eg.
ChangeDir (GetInfo (66)) --> ensure directory is MUSHclient.exe directory
6. Changed the os.exit (Lua script) function so that it no longer immediately exits MUSHclient. This was not particularly useful behaviour, as it bypassed the normal checks for saving files, saving plugin states, and so on.
Now os.exit simply raises an error, saying it is not implemented.
7. Changed the debug.debug (Lua script) function so that it does something useful. The default implementation read from stdin and wrote to stderr, neither of which are visible to Windows programs.
Now it invokes a debug dialog box, filling in various fields by calling debug.getinfo (eg. name of function, current line number).
You can click on various buttons to show local variables, upvalues, and a traceback.
You can enter Lua commands into an edit box and hit <enter> to have those commands processed in the current script space (eg. do extra debugging, look at variables, change variables.
You can hit <Esc> to continue processing after the debug.debug () call.
You can click on "Abort script" if you wish to immediately terminate the script.
8. Various useful Lua script functions have been moved from the exampscript.lua file into their own files in a new "lua" subdirectory. This is intended for use with the Lua "require" statement. eg.
require "var" -- use the Lua to MUSHclient variable translator
9. Improved the defualt Lua "sandbox" code to put trusted plugins and worlds into a table rather than a long "if" statement. Also put in some displays to indicate whether or not the current world/plugin is trusted.
10. When opening the "edit multiple line" dialog (eg. the "send" box for triggers and aliases), if you resize the dialog box, MUSHclient will now remember the new size and restore it next time you open that or a similar box.
Gammon Software support
Forum RSS feed ( https://gammon.com.au/rss/forum.xml )