MUSHclient version 2.16.7
-------------------------

Released: Thursday, 8 June 2000


CHANGES

1. When creating a new world, the default "chat channel" triggers now match on "^\<.+\>.*$" and "^\[.+\].*$" rather than "^\<\w*\>.*$" and "^\[\w*\].*$". This gives a better match on chat channels which have spaces in the channel name. Is this desirable I wonder? Do chat channels normally have non-alphabetic characters in them?

2. Corrected a bug where the log file preamble and postamble were not written out when you opened a log file automatically.

3. Date/time substitution for log files can now include "%n" for "new line", especially useful in the line preambles, in case you want to put a blank line before certain types of lines (eg. your input).

4. Fixed bug where log files would record a blank line after lines you had typed (command lines).

5. Fixed bug where if you typed a command of more than 500 characters, and then used the Command History window (Ctrl+H) to "Do" or "Recall" the command, then the command would be truncated to the first 500 characters, followed by "...". This was a side-effect of fixing an earlier bug.

6. Triggers can now match on an incoming *colour* or *style* as well as text. This is very handy in some MUDs where, for example, room descriptions might be in a different colour. This lets you match on when you have entered a new room. The match is done on the *first character* of the text matched by the trigger. In the case of regular expressions this is not necessarily the first character on the line.

7. To assist in matching triggers on incoming colours, there is now a function to establish the colour of incoming text. This is Display -> Text Attributes (Ctrl+Alt+A). By using this you can see the foreground and background colour, and then use that information to set up a suitable trigger. Because incoming lines may be coloured by triggers, you are warned if the colour shown is not the original colour. You may want to turn off all triggers if this is the case, while you are establishing the colour of the original line.

8. Added some beta-testing credits I had accidentally omitted in the previous version.

9. The trigger list now shows the trigger *label* instead of the sound name. My view is that it is more useful to see the labels "at-a-glance", especially as you may want to label the triggers to indicate what they do. For instance, a trigger "^\[\.+\].*$" is pretty cryptic. If you can label it "Chat_Channel" then it is more obvious what it is for. You may need to resize the label column (drag the dividing bar across) so that you can see it without having to scroll horizontally.

10. I have had a report that on some MUDs the ANSI colour handling doesn't "work properly" because the background colour stops where the text stops, rather than bleeding to the edge of the window, so-to-speak. There is now an option under File -> Global Preferences -> General, called "bleed background colour to edge" (defaulting to on) which controls whether or not this is done. The difference is most obvious if you set up a trigger which colours the line with a different background colour than the normal one. With the option checked, the line with the trigger will be drawn with the background colour right over to the right-hand edge of the window. With the option unchecked, the background colour stops when the text stops. I'm not absolutely sure I like the bleeding effect, which is why there is an option to turn it on and off.

11. Added script method "ResetTimer" - you can use this to reset an individual timer.

12. On the page where you set up default colours, triggers, fonts etc. it now shows the point size, and style, of your selected default fonts. Ditto for the input and output font on the appropriate world configuration screens.

13. Fixed minor memory leak when using Recall window.

14. Because I find it hard to read some of the triggers when they are in the default system font there is now an option for the edit trigger/edit alias dialogs to show the match and replacement strings in FixedSys instead. This makes distinguishing betweeen "." and ",", or "(" and "[" a lot easier. This option is in File -> Global Preferences -> General.

15. New trigger option - "send to status line". This is handy for triggers that match on (say) the room name, room exits, or your current stats. When you find them, you can place them in the status line for perusing, even after they have scrolled off the screen.

eg.
  Trigger: Exits: *
  Send:    %0
  Send to: Status

16. Changed keyboard accelerator for "send to all worlds" to Ctrl+Alt+S which is more mnemonic than Shift+Ctrl+Z.

17. Added "full screen mode" option to the View menu. This for MUSHclient users who have limited screen space (eg. a laptop). Full screen mode removes the title bar and menu bar. If you want to get rid of the status bars as well then you can close them yourself, or make them floating by detaching them. The keyboard equivalent is Ctrl+Alt+F.

18. When commencing manual logging, you can now choose whether to log notes or your input.

19. Worlds listed in File -> Global Preferences are now opened in the order listed (ie. the first will become world 1, and so on). There are now buttons to move worlds up or down the list.

20. There is now a "notepad" you can open for working on long pieces of text (eg. building) while you are doing other things. This is on the Edit Menu -> Notes workarea (Ctrl+Alt+W).

21. You can now save and load your variables, for sharing between worlds. Variables are saved as a straight text file, like this:

	name <tab> contents

22. When creating a trigger, alias or timer you can now send special characters to the MUD by using an "escape sequence", similar to the convention in C. See below for the equivalents. In particular, the "\x" sequence can be used to send any character whatsoever.

  Sequence	Represents
  \a	Bell (alert)
  \b	Backspace
  \f	Formfeed
  \n	New line
  \r	Carriage return
  \t	Horizontal tab
  \v	Vertical tab
  \'	Single quotation mark
  \"	Double quotation mark
  \\	Backslash
  \?	Literal question mark
  \xhh	ASCII character in hexadecimal notation

When processing triggers/aliases/timers from earlier versions, any backslashes are automatically converted to double-backslashes to avoid being confused with the new escape sequences.

For example, to send three "bell" characters, you could do this:

Send:  say Warning! \a\a\a

Alternatively, in hex:  say Warning! \x07\x07\x07

Warning - the sequence \x0  (null character) will terminate a string, so sending something like this:

Send:  Hello \x0  my old friend.

This would only send "Hello " because the \x0 terminates the string.

Note 1 - it is not really necessary to use backslash with quotes (eg. \" and " will be equivalent) however they have been left there for consistency with the C language.
Note 2 - the hex form (eg. \x05) is limited to two hex characters, as that is the most you need to represent one byte. Thus, \x071 will be the same as \x07\x31 not \x71.

23. When you get a script error there is now a more informative error message, and also an option to make a copy of the message onto the clipboard. This is for scripters who get error reports from others. I know how annoying it is to get an email that "there was an error message", so you can now ask for the exact error message to be pasted into the email.

24. You can now turn "trace" on, which logs a note to the output window when one of the following occurs:
  * Trigger match
  * Alias match
  * Timer fires
  * Script routine called

This is to help debugging scripts or complex sequences of triggers. You can see, for example, in what order triggers are evaluated, and whether they match or not.

25. When doing a "recall" you can now specify whether you want to recall MUD output, your commands, or world.notes (or a combination). For example, by only checking "commands" and matching on a regular expression of ".*" you could get a listing of all commands you entered in a session.

26. You now have the option to process "escape sequences" as described in (22) above, when sending ordinary commands. eg. you could type: say \a warning \a

27. There is a new scripting property - world.trace. This is the value of the trace flag. Thus, you can turn tracing on and off from a script.

28. Renamed the headings on the list boxes for triggers/aliases/timers from "Contents" to "Send" which is a bit more self-explanatory.
