I've done a fair amount of work so some beta testing is probably a good idea.

The most important changes are:

1) No longer possible to use math in nested variables, unless it's an index lookup. This because behavior was getting unpredictable. This will impact scripts that do stuff like #showme $test[$cnt / 10].

2) I added a #config CHARSET option which is either ASCII, UTF-8, OR BIG5. When set to UTF-8 it should enable full UTF-8 input handling, same story for BIG5. It'd be helpful if people on Chinese and UTF-8 capable MUDs would do some testing.

telopt.c Added MTTS support. On a third TTYPE request MTTS will be
reported followed by a bitvector that indicates whether ANSI,
VT100, UTF-8, and 256 colors are enabled. The UTF-8 and 256
color settings can be configured by the user. VT100 is reported
as disabled if #split mode is enabled - this because the split
screen mode needs to be disabled for server side VT100
interfaces to work.

system.c Added some extra security to the #script command.

system.c Changed the #script command to behave like a two argument
command in preperation of removing the rather awkward
single argument support.

line.c Added #line ignore option to execute a command without
checking any triggers.

config.c Added a 256 COLOR option. When called with auto it'll guess at
the terminal's 256 color capabilities.

variable.c When setting a variable the final variable definition is echoed.

variable.c Added support for BIG5 and UTF8 string formatting.

cursor.c Added support for BIG5 and UTF8 input handling.

config.c Added session based BIG5 and UTF8 #config CHARSET option.

substitute.c Fixed word boundary matching for substitutions.

highlight.c Fixed word boundary matching for highlights.

nest.c Math is no longer performed on table keys, mainly to reduce
annoying false positives, and because the behavior can be
scripted with math functions. Math is still performed when
looking up an index.

path.c Renamed #path map to #path show, #path map still works, but it
doesn't properly describe what the command does.

path.c With #config speedwalk enabled #path load will automatically
unzip zipped paths so they can be slow walked.

line.c #line logverbatim is now fully verbatim.

vt102.c Removed status reports for the \eZ, \e[c, and \e[x VT codes
due to complaints.

log.c Added a #log off option. #log append and overwrite can now be
called while logging is already enabled.

results:
can't see any difference between the two terminal environments

ansi:
works just as before, a chinese character need to backspace to clear.

utf-8 and big5:
same as above, but lets say i input something like
"abc三個字", 3 ansi chars follow by 3 big5 chars,
press backspace few(6) times, the "abc" will remain on the screen,
though if you press enter, nothing will be sent.

Keep in mind that tt++ parses data before your terminal does, so if the MUD sends BIG5 data you should use: #config CHARSET BIG5.

I'll have a look at the abc三個字 sequence and see if I can figure out what's going wrong.

Hm.. I see, will do some more test later.

and for the "abc三個字"
actually im talking about arbitrary big5 chars
for every big5 character, 2 backspace will clear it out
(natural behavior for dual byte word?),
but the input line will have some characters remaining there

It looks like the Chinese characters you posted are 3 byte UTF-8 sequences? It's possible they were automatically converted.

In addition it looks like the characters take up the space of two Western characters, which is something I hadn't taken into account.

I guess this explains why TinTin++ worked quite well with BIG5 as two-byte sequences were taking up two places, meaning that despite some oddities (like having to hit backspace twice) things worked fairly well.

I'll look at updating the BIG5 code to assume Chinese characters to take up two spaces so it can be tested, then I'll see if I can figure out how to distinguish single width UTF-8 characters from double width UTF-8 characters.

Hopefully it won't horribly complicate Chinese UTF-8 support, though from what I gathered Asian nations aren't going to adopt UTF-8 anytime soon, so I might get by with only supporting single width UTF-8 characters.

uh.. sorry if I made you confused.
but I'm only testing the big5 charset, so "三個字" should be all dual widths chars.
and the length should be 6.
in the current build, 2.00.6b5, some chinese characters only take 1 backspace to clear, which is good!!
but some takes 2 backspaces, couldn't they all clear just 2 widths?
oh, and now the backspaces can actually makes the cursor in front of the line
(I mean no more invisible chars prevent/block me to move the cursor in the beginning of the line)

uh.. sorry if I made you confused.
but I'm only testing the big5 charset, so "三個字" should be all dual widths chars.
and the length should be 6.
in the current build, 2.00.6b5, some chinese characters only take 1 backspace to clear, which is good!!
but some takes 2 backspaces, couldn't they all clear just 2 widths?
oh, and now the backspaces can actually makes the cursor in front of the line
(I mean no more invisible chars prevent/block me to move the cursor in the beginning of the line)