Released on 02 Jul 2001
(There are a couple of gaps in the numbers below, where changes were made and then removed after comments from beta-testers).
1. Changed the way MUSHclient stored hyperlinks internally, thus saving considerable amounts of memory, up to 100 bytes per line saved.
2. Fixed a bug where a blank line inside a <P> tag would be dropped. Now blank lines are retained.
3. Improved the way that the output window scrolls when using the mouse-wheel mouse. The new method is faster and smoother.
4. Fixed problem where a long input line (long enough to wrap around at the edge of the screen) would have the 2nd and subsequent lines treated as output from the MUD.
5. The flyover text for a hyperlink now defaults to the first of:
1. The extra "hint" text (ie. if you have 3 actions and 4 hints, the first one is the flyover text)
2. The first hint (ie. the hint for the first action)
3. The first action if there are no hints
6. MXP and Pueblo configuration has now been moved to a separate "MXP" configuration tab.
7. Fixed bug where an ANSI code 0 (reset colour to white on black) would also cancel any active hyperlink.
8. Added MXP options:
* Use custom hyperlink colour (which you can choose)
* MUD can change link colour (allows MUD to override your choice)
* Underline hyperlinks (underlining is now optional)
* MUD can remove underline (allows MUD to cancel the underline)
9. Fixed bug in versions 3.10 to 3.12 where printing part or all of a world output window would only print the first line.
10. You can now customise the terminal type string returned in response to "terminal type" telnet negotiation. The default string is now "mushclient". You can change that (eg. to "ANSI"). This lets servers detect the client type that has connected to it.
11. You can now specify that newlines in Pueblo mode, are to start a new line. This is because some Pueblo worlds need them, and some don't. If you get all the text running together into one huge paragraph, check this option. If you find everything is double-spaced, uncheck the option.
12. Now supports new negotiation tag for exchanging information with an MXP server. If the server sends the <support> tag it will reply with a list of all the tags it supports, eg.
Client: <SUPPORTS +head +body +title +version +br +italic [etc.] >
This is a list of all supported MXP/Pueblo tags.
If the server queries for particular tags, it will respond indicating with a "+" or "-" whether or not that tag is supported. eg.
Server: <support h1 h2 a color>
Client: <SUPPORTS -h1 -h2 +a +color >
You can also query tag arguments, like this:
Server: <support send.prompt>
Client: <SUPPORTS +send.prompt >
This means that it recognises the "prompt" argument for the "send" tag (and, by implication, that it supports the "send" tag itself).
You can also query all arguments for a particular tag, like this:
Server: <suupport "send.*" >
This would list all the options to "send" that the client supports. Note the quotes around "send.*".
14. Fixed bug where the default Telnet terminal type for existing worlds was "Custom256". It is now "mushclient".
15. Fixed bug where <img> hyperlinks would be underlined whether or not you checked "underline hyperlinks".
16. Implemented <IMAGE url="..."> tag to work the same as <IMG src="...">
17. Removed tests so that some tags only worked under Pueblo. Now Pueblo and MXP should be treated much the same.
20. Updated the colour picker to allow you to paste colours into it. Any of the three formats that it produces will be auto-detected if they are on the clipboard, and you can then paste them into it. This allows you to share colours via emails etc., and also to share them between the ANSI or Custom dialog boxes, and other places, such as hyperlink colour.
Example acceptable colours on the clipboard are:
21. Changed the ANSI and Custom colour configuration pages to allow you to paste (by RH mouse clicking) a colour in any of the three above formats. Previously only the VB version was accepted.
22. Added a "reset tags" button to the MXP/Pueblo configuration dialog. This lets you close and reset your world, in the event that (due to some server error) you start seeing (for example) everything underlined or bold. The effect of this is to close all outstanding tags, and reset colours to ANSI white on black.
23. Added a warning if we receive the "Pueblo initiate" string but choose not to start Pueblo up (eg. if it is already started, or we do not have it activated).
24. Closing a <UL> or <OL> now starts a new line if necessary to ensure that the next lot of text is not appended to the last item in the list.
25. MUSHclient now optionally displays "connected" and "disconnected" messages in the output window when you connect and disconnect, along with the date and time. This is so you can see when you connect/disconnect, if you do it multiple times in one session.
Also the length of time connected is shown (eg. "4 days 3 hours 2 minutes 1 second").
26. Fixed bug where doing an up or down arrow might delete something you had typed, even with the "confirm before replacing typing" option set.
28. Fixed bug where MUSHclient would crash when printing lines from a world that had RGB colour in them.
29. Changed MXP telnet negotiation to recognise IAC DO MXP (to which it responds IAC WILL MXP) in addition to IAC WILL MXP (to which it responds IAC DO MXP).
30. Changed the way MUSHclient sends back "version" responses, to eliminate a reported loop where it appeared to re-interpret the outgoing <version> as an incoming <version> request. Ditto with <supports>.
31. Fixed problem where MUSHclient would report "connection closed" even when you closed it yourself.
32. Fixed bug where input lines would not always be coloured as input if they spanned multiple lines, particularly if you had unchecked the "indent paragraphs" options.
33. Reworded the Pueblo options and changed Pueblo-initiation functionality a bit.
Now the "enable Pueblo" option is labelled "Detect Pueblo initiation string", which means that MUSHclient will react to the strings:
"This world is Pueblo 1.10 enhanced."
"This world is Pueblo 1.0 Enhanced"
These must be on their own on a single line. You might turn these off if you are not using Pueblo (but are using MXP) so that someone doesn't "spoof" Pueblo initiation by sending those strings.
However Pueblo will not be turned on if the "Use MXP/Pueblo" option is set to "No".
The "Use MXP" combo box is now labelled "Use MXP/Pueblo" to make it clearer that it also controls whether Pueblo is turned on.
34. Fixed problem with trigger matching, where if a trigger coloured a word that it matched on, and that word was already inverse/italic/hilite/underline, then the existing style attributes were retained (unlike earlier versions). Now a trigger match clears those styles.
36. You can now use <!ELEMENT> and <!ENTITY> definitions in Pueblo mode.
37. Fixed bugs where if a script callback routine for a start tag did a world.note, MUSHclient would probably crash.
38. Changed the "MXP error" callback routine so that you can now return a value - if the value (a number) is not zero, then the error message will not be displayed in the message window. This lets you fine-tune the messages that appear there - for example, omitting errors or warnings that you are not interested in. Here is an example:
function OnMXPError (level, number, line, message)
if number = 20001 then OnMXPError = true
39. Changed the "MXP start tag" callback routine so that you can now return a value - if the value (a number) is not zero, then the tag will not be acted on. This lets you customise the way MUSHclient reactions to MXP/Pueblo tags. For example, you might want to omit tags that change the font color, or tags that underline text. See (40) below for an example.
40. Changed the way that the "MXP start tag" is called. It is now called in two places:
a) For the actual tag which appears in the MUD output; and
b) If this tag is a server-defined tag (using <!ELEMENT>) then for each of the "built-in" tags that the server-defined tag calls.
For example, if you had this definition:
<!ELEMENT foo "<b><i>" >
And later on the MUD sent:
The opening "<foo>" would cause the "MXP start tag" routines to be called for the following *three* tags:
In other words, once for the actual tag sent (<foo>), and once each for the tags that are called *by* <foo>.
If the routine for "foo" returned true, then "foo" is cancelled and the following text is not set to italic, nor bold.
However if "foo" returns false, but "b" returns true and "i" returns false, then the text is merely made italic.
Here is an example of how you might write such a function:
function OnMXPStartTag (name, args, mylist)
if name = "foo" then OnMXPStartTag = false ' allow <foo>
if name = "b" then OnMXPStartTag = true ' disallow <b>
if name = "i" then OnMXPStartTag = false ' allow <i>
Note that if you cancel a tag sent by the server, then you will probably get a "closing tag with no opening tag" warning (warning number 5005). You might want to suppress that if it gets annoying - see (38) above for how to do that.
41. Added an option to "ignore colour changes". By setting this MUSHclient will ignore attempts by MXP/Pueblo tags to change your output window colour. This is intended for situations where, for one reason or another, you want to control the appearance of your text, and not let the MUD colour it for you. This does not affect ANSI colour codes, but you can always configure those in the ANSI colour configuration screen to show whatever colours you want.
42. Added a new error message if you called a script with the wrong number of arguments. For example, if a trigger called a script (in VBscript) and the script subroutine only had 2 arguments, and the trigger expects 3, previously you just got the error message "Unable to invoke script subroutine". Now you get the message "Wrong number of arguments for script subroutine ... we expected your subroutine to have 3 arguments".
43. Added new script function - "Reset". This closes all outstanding MXP tags, and resets the output window colour scheme to white on black. It is the same as receiving the MXP tag <reset> from the MUD, or the escape sequence ESC [3z.
44. If you have the "connect/disconnect" message option turned on, it now shows the duration of the connection (on disconnect) as well as the time disconnected.
45. MUSHclient now displays a blank line in the output window when you connect to a world. This stops the first line from the MUD being chopped off if you have a "pixel offset" set for the output window.
46. Changed the <support> tag to support wildcarding of sub-options (by using a single asterisk). eg. this will now work:
<support 'send.*' >
47. Added three new script functions to help with managing world configuration ...
a) world.getoptionlist - this gets a list of all configuration option names
b) world.setoption - sets an option to a new value
c) world.getoption - gets an option's current value
With a bit of scripting you can make a list of all options and their contents, here is a small example of the output of such a script:
auto_freeze = 1
auto_repeat = 0
auto_wrap_window_width = 0
confirm_before_replacing_typing = 1
history_lines = 1000
max_lines = 10000
wrap_column = 80
The first four are "true or false" where 0 is false and 1 is true. The others are examples of numeric options, such as the number of lines kept in the history list, the maximum lines in the world window, and the column to wrap at.
48. Fixed a bug where matching on a trigger, which sends something to the world, might send MUSHclient into a loop, and eventually a stack overflow (ie. a crash).
50. You can now choose between 6 styles of "activity buttons". This is in response to comments from various players who prefer red/green to indicate closed worlds/new activity. This setting is available from the File -> Global Preferences -> Activity tab.
51. In response to a number of requests (suggestions #350 and #390) plus various emails and forum message, this version now implements "default background/foreground colours". This means that by checking an option in the ANSI configuration screen, custom colour 16 (the last custom colour) is used as the default colour after an ANSI reset. What this means in practice is:
Default foreground colour: ANSI white
Default background colour: ANSI black
ESC [0m sets foreground to: ANSI white
ESC [0m sets background to: ANSI black
ESC [37m sets foreground to: ANSI white
ESC [40m sets background to: ANSI black
Default foreground colour: Custom 16 foreground
Default background colour: Custom 16 background
ESC [0m sets foreground to: Custom 16 foreground
ESC [0m sets background to: Custom 16 background
ESC [37m sets foreground to: ANSI white
ESC [40m sets background to: ANSI black
In other words, with this option set the MUD has to explicitly send down the codes for white and black, they are not set by default.
52. Fixed bug where if you had checked the option "Keep commands on prompt line", then world.note output would also be on the same line as the prompt.
54. Fixed a bug where if you closed a world, and then when asked if you wanted to save changes, replied "cancel", MXP would be turned off, even though it should have been left on.
Gammon Software support
Forum RSS feed ( https://gammon.com.au/rss/forum.xml )