These are all part of the same idea:
- Backspacing
- Full-screen cursor addressing
- Clear screen
This is what the telnet protocol supports, however a MUD client is not really a telnet client. If you want a telnet client, go ahead and download one.
But you really want a telnet client which also has:
- Separate command window
- Triggers
- Aliases
- Timers etc.
- Logging
- Long scrollback buffer
- Word-wrap at edge of buffer
- MXP with hyperlinks etc.
- High speed
Some of these are quite tedious to do if you allow the user to willy-nilly move the cursor around (eg. clear screen, backspace, cursor address).
What happens with a triggered line, if the triggering text is changed by backspacing it, or cursor addressing into the middle of it?
Say I have something like this:
FOO\n\b\b\b\bBAR\n
If I have a trigger on FOO and one on BAR which one triggers? One? Both?
Some of these questions are going to come down to the word "compromise" - or maybe "user option" - or maybe "bug", if it doesn't work perfectly.
The point is, that for right or wrong reasons, it isn't easy to change now. For speed and space-saving reasons, internally things are stored in linked lists, style runs, cached MXP actions, and so on.
MXP for instance is parsed on-the-fly, not even at a newline.
So, imagine something like <b> (text is now bold) followed by \b\b\b <i> (text is now italic).
To allow this I have to not only handle the backspaces, but the effect of changing styles from bold to italic.
It just isn't cost effective to tackle things like this. I might spend many, many hours getting something like this coded, debugged, and go through maybe 5 release cycles whilst minor glitches are removed, and then it would only be for maybe a handful of users whose MUDs send backspaces.
Quote:
But if the server uses it incorrectly, MUSHclient makes no guarantees as to what will happen ...
Yes, but what will happen is that once a feature is added, you may not care if it isn't perfectly implemented, but 6 months later I will get a message (from someone else) saying "Your client claims to support backspace but here is some test data to prove it doesn't. I refer you to RFC xyz which shows your implementation is flawed. I suggest you fix it up straight away".
|