| TinTin++ 1.99.8 |
|
- Updated #forall and #foreach to support the semicolon ; as a list separator. Braces are still valid as well, but spaces are no longer a valid separator. Example: #foreach {bli;bla;blo blu} {var} {#showme $var}
- Fixed client side crash when sending large amounts of data to a MUD.
- Fixed client side crash when pasting large amounts of text.
- Added support for $variable[%*] to return a list, other regular expressions are valid as well.
- Fixed displaying bug with semi-colons in echos.
|
| TinTin++ 1.99.7 |
|
- Updated #map list to use the same arguments as #map goto.
- Added the #map color <field> <color> option to globally set the default room and exit colors.
- $variable[] returns an empty string rather than 0 if the variable exists but has no nests.
- #foreach will no longer execute when calling the statement with an empty list.
- Added support for a desc, area, and note field to the #map set and #map get commands.
- Added the option to provide additional arguments to #map goto and #map find, in order these options are exits, desc, area, and note.
-
- #echo now supports the #echo {{format} {row}} syntax to print a line on the specified row.
- Added %i and %I to toggle case insensitive matching in triggers.
- When setting a trigger variables are substituted, if you want to use an actual variable so the trigger changes whenever you change the variable use $$variable.
- Fixed a formatting error in #write.
- Replaced #cursor {echo} {on|off} with #cursor {echo on} and #cursor {echo off}
- #loop {min max} {commands} has been changed to #loop {min} {max} {variable} {commands}, the variable must be used instead of &0
- #parse {string} {commands} has been changed to #parse {string} {variable} {commands}, the variable must be used instead of &0.
- #forall {list} {commands} has been replaced with #foreach {list} {variable} {commands}
- #format {variable} {syntax} {{arg1}{arg2}} has been changed to #format {variable} {syntax} {arg1} {arg2}
- #echo {syntax} {{arg1}{arg2}} has been changed to #echo {syntax} {arg1} {arg2}
- #replacestring has been changed to #replace
- All commands require tintin regular expressions instead of wildcards, so instead of * use %*, other regex options are available as well.
- The #REGEX command now uses tintin regular expressions, making the command behave similar to actions.
- The #SWITCH, #CASE, #DEFAULT, #FOREACH, #BREAK, #CONTINUE, #ELSE, and #ELSEIF statements have been added and should work more or less as expected.
- Variables can be nested using brackets and for all intents and purposes behave like associative arrays. Non existant nested variables report 0 if the base variable exists and always report 0 when the name is encapsulated in braces.
- Using & instead of $ will report the index of a variable.
- Using $variable[+1] will report the first nest, and $variable[-1] will report the last nest, $variable[-2] the second last nest, etc.
- To display all nests of a variable use $variable[]
- To check if a variable exists use: #if {&{variable}} which will report 0 if non existent. If existant it will report the index of the variable.
- #LIST now works exclusively with nested variables. Also read #HELP VARIABLE.
- #if {"$var" == "?var"} checks should be replaced with #if {&{var}} or #if {"$var" == "%.var"}
- Old lists need to be converted as following: #var {friends} {{Alicia} {Bubba} {Cathie} {Kayla} {Zorro}} to #var {friends} {{Alicia}{1} {Bubba}{1}{Cathie}{1}{Kayla}{1}{Zorro}{1}}
- Added MAP EXIT ROOM event.
- #kill allows an optional second argument to kill specific triggers.
- Spaces are no longer stripped in verbatim mode.
- Improved just in time compilation, which combined with O(LogN) instead of O(N) lookup times for variables should make tintin noticably faster.
|
| TinTin++ 1.99.6 |
|
- Added a patch that adds forkpty to systems that lack it.
- Added a patch that significantly improves tab handling.
|
| TinTin++ 1.99.5 |
|
- Made sourcecode c++ compatible.
- Added an optional 2nd argument to textin to add a cumulative per line delay.
- Added event handlers for MSDP, NEW-ENVIRON, and ZMP.
- #sub {trigger} {.} no longer gags text, use #gag instead.
- Substitutions now work like highlights, allowing multiple substitutions per line which are automatically substring substitutions. Strictly avoid using %0 in both subs and highlights.
|
| TinTin++ 1.99.4 |
|
- Fixed 100 move map crash bug.
- Now sending \r on enter when using #run instead of \r\n, which seems to give the best behavior.
- Added xterm 256 color html logging.
- Disabled default ctrl-s and ctrl-q behavior.
|
| TinTin++ 1.99.3 |
|
- Highlights should work properly now.
- Now possible to #ignore aliases.
- Fixed verbatim mode, aliases can now be used in verbatim mode and are executed non verbatim.
- %%w %%*, etc, should escape properly for nested triggers.
- Can use #regex on an empty string now.
- Possible to send NUL bytes using \x00 or \c@ using #send. This is as far as the support for non strings will go.
- Added variables to events, see #help event for details.
- Added a generic IAC event for telnet negotiations.
- Now possible to use escape codes with #replace.
- Triggers are once again properly inherited from the startup session.
|
| TinTin++ 1.99.2 |
|
- Triggers are now pre-compiled, increasing execution speed significantly.
- Aliases can now contain regular expressions as described in #help action.
- Fixed several crash bugs introduced in version 1.99.1.
- #map create now takes an argument to set the size of the map. If you want to resize an existing map, change the C value in the map file from 15000 to something else.
|
| TinTin++ 1.99.1 |
|
- Added the \0xx escape code, where xx is an octal number.
- Added the \cx escape code, where x is a control character. For example: \c[ is the same as \e.
- Switched from POSIX regular expressions to PCRE (Perl Compatible Regular Expressions).
- Updated actions, highlights, and substitutions to use PCRE. Their new syntax is:
^ force match of start of line.
$ force match of end of line.
%1-%99 lazy match of any text, available at %xx (%1-%99).
%0 should be avoided in triggers, and if left alone lists all matches.
{ } embed a regular expression, available at %xx + 1.
[ ] . + | ( ) ? * are treated as normal text unlessed used within braces. Keep in mind that { } is replaced with ( ) when using braces.
Of the following the (lazy) match is available at %xx + 1
%w match zero to any number of letters.
%W match zero to any number of non letters.
%d match zero to any number of digits.
%D match zero to any number of non digits.
%s match zero to any number of spaces.
%S match zero to any number of non spaces.
%? match zero or one character.
%. match one character.
%+ match one to any number of characters.
%* match zero to any number of characters.
- The following incompatibilities exist:
[his|her] is no longer valid, use {his|her}
%{variable} is no longer valid, no alternative available.
^ can no longer be used as end of line marker.
unnumbered arguments like %w and {his|her} have the match start at %1 instead of %0.
|
| TinTin++ 1.99 |
|
- #showme and #echo now take a // as a suffix to stop a linefeed from being added.
- Added the END OF PATH event.
- #debug should give more detailed debugging information.
- Added support for auto tab completion based on the scroll back buffer.
- Added auto tab config option to set the amount of scroll back lines used for auto tab completion.
- The 'd' format option is now used to print an integer, mainly to enable the + option for standard digit formatting.
- Added <g00> to <g23> xterm 256 color codes to support the greyscale colors.
- Added #while {var} {command} to run while loops.
- The #loop command used with one argument no longer works like a while loop.
- The $loop, $parse, and $forall variables are no longer automatically set.
- The #write command now partly formats.
- Changed the %t #format option to use a strftime format to create time stamps.
- When leaving a map the last room is set, which can be returned to with #map return. The last room is stored when saving a map, and #map return will work as well after reading in a map.
- The echo command will no longer trigger actions.
- #map map now takes an optional (x)x(y) size argument, ie 80x25. It also takes an optinal filename argument to log the map output to file, useful for people who want to use tail -f -s 0.1 to have the map in another window.
- Added the static roomflag which makes it easier to deal with overlapping rooms.
- Added breadth first support for the map drawing routine, based on code by Bryan Turner.
- Added support for 3 letter room symbols.
- Variables passed along as an alias argument now go by value instead of by reference.
- Added the asciivnums flag to toggle displaying room vnums in the ascii map.
- Added #map jump {x} {y} to goto rooms using coordinates relative to the user's current room.
- Added #script {var} {command} option, should speak for itself.
- Can now escape variables using 2 or more dollar signs.
- When using #map find, run, and goto and there are multiple matching rooms the nearest room will be returned.
- Added the #map exitcmd and #map exitdir commands.
- ctrl-c now clears the input instead of exiting the program.
- ctrl-d will now exit tintin++ when used with no input.
- Changed #config {echo command} to #config {command echo}
- Added the #config {command color} {<000>} option.
- #map insert now allows adding a roomflag as the 2nd argument.
- It's now possible to use strings in the map legenda, mainly for terminals supporting UTF-8.
- Void rooms now work with unusual exits as well.
- Added some unlisted map commands to the #map and #help listing.
- Verbatim mode now only works on manual input, actions and macros will have their commands processed normally.
- #map map now accepts a given radius.
- #config packet patch now takes a floating point seconds argument instead of milli seconds. The valid input range is between 0.00 and 10.00 seconds.
- Added the {RECEIVED INPUT} event.
- alt-d will now delete one word forwards.
- Added #path zip, to compress a created path into a speedwalk.
- \[ and \] no longer work, use the \x codes provided in #help escape.
- Rewrote the tintin19.txt file, now holds a brief introduction to tintin.
- The home and end key are now used for cursor movement instead of the scrollback buffer.
- It's now possible to use \x codes and \b (backspace) in macros.
- Pressing ctrl-r (history search) while searching will place the found command in the input field.
- alt-b and alt-f should now have the proper readline behavior.
- The command history is no longer automatically saved to file.
- Added the #history read, and #history write options.
- Braces in trigger arguments are now translated to \x codes.
- Added the #line {gag|log} option to replace #gagline and #logline commands.
- Added the 'program termination' and 'received line' events.
|
| TinTin++ 1.98 |
|
- Added the #cursor enter option.
- Fixed a bug that allowed erasing files with #chat.
- Fixed a crash bug in the chat negotiation routine.
- Lowered the maximum chat read size to avoid buffer overflows.
- Fixed a bug with alias parsing and several other issues.
- Added 'dark' as a valid color name in highlights.
- Added the 'color patch' config option for muds with awkward color handling.
- Added the option to use %00 to %99.
- You must now escape using %%0 rather than %%90.
- Added the #path run {delay} option.
- Highlight now colors all matches on a line.
- Functions now only use %00 to %90, &0 to &9 no longer works. Keep in mind to replace &0 with %1, &1 with %2, since %0 holds all arguments passed to a function.
- Macros no longer trigger with config convert meta enabled.
- Added the regexp command to use regexp string comparisons.
- Text is no longer line wrapped when word wrap is disabled. This should make pasting easier with hopefully no downsides.
- Added prefix history searching when using page-up/down with something typed in the command line.
- Added the %w option for the format command to wordwrap the given line, which is stored as a list.
- Added the #run command which allows running applications from within TinTin++ and subsequently add most TinTin++ functionality such as triggers.
- Added packet defragmentation at the socket level.
- Added the #script command that works much like the #system command except that all output, generally created with an echo or print command, is parsed as TinTin++ commands. This allows enhancing TinTin++ with php, python, perl, ruby, and various other scripting languages. Some basic examples are given in #help script.
- Added #map explore and #map travel options.
- Added #map insert command to easily insert a (void) room.
|
| TinTin++ 1.97 |
|
- Improved telnet negotiations to allow logging in on ISCA BBS and globalvillage BBS.
- Commas are now stripped from numbers in the math commands
- Added support for 64 bit floating point math.
- Can now use dice rolls and other math operations in delays
- Added -e as a startup option to launch TinTin++ with a command
- Added #config {log level} {low|high} which is a hidden config option. Defaults to high, when set to low TinTin++ will log raw mud output.
- Added #buffer find option, which works much like grep but instead places the scrollback buffer at the given search string.
- Can now add lists of keywords between square brackets divided by seperators in actions, for example [his|her|its]. The actual text is stored in the next %0-9. Cannot be used for highlights.
- Added #list fnd option to search a list, returns the index if found, otherwise zero.
- Added automapping support which primarily uses the #map command. An introduction to using the automapper is available at the online map help file.
- Wrote a custom input handler, it emulates readline with a couple of improvements.
- Added the #cursor command to be used in combination with macros.
- Added a history command and a command history.
- ctrl-v will now meta convert the next input character. Useful for writing macros.
- Added 256 xterm color support. Simply use <aaa> to <fff> with RGB values. Background colors are set with <AAA>> to <FFF>
- Can no longer use commas in #loop, when using #loop with one argument it will be treated as a while loop
- Highlight now allows <###> color codes for 256 color support.
- Pathdirs for ne se sw and nw are now set by default. #pathdir now uses a 3rd argument for its spatial coordinates. If you have any pathdirs in you command files its best to remove them and redo them based on the new default pathdirs.
- Added a basic event system, check #event
- Seperated gags and subs, #sub {line} {.} will eventually no longer gag text. People using #write will have to update their scripts.
- Merged all path commands into one generic #path command. Anyone using paths will have to update their scripts.
- WinTin++ now uses putty instead of rxvt as its terminal emulator.
- Added ./tt++ [-t title] option to set the title bar.
- Added IPv6 support.
- You can now display a list item with $variable[index].
- You can now update a list item with #variable {variable[index]} {text}. The #math and #replace commands will work as well.
- Added the {clr} and {srt} options to #list.
- #session now correctly uses the : #session {name} {host} {port} syntax.
- Can now use %0 (all args) and %1 to %9 in functions. I'll likely obsolete &0 to &9 eventually which wasn't as good an idea as it seemed at the time.
- Increased the maximum internal buffer size from 10KB to 50KB.
- Set the maximum recursive level from 50 to 10000 iterations.
- Delay can now be used with 3 arguments, in which case the #tick syntax needs to be used.
- Added the #undelay command to remove pending delays.
|
| TinTin++ 1.96 |
|
- Added #session {-|+|number} option to switch between sessions.
- Added #return which used in an #if check allows bailing out of a semicolon separated command string. If used in a #function you can also add an argument to it to set the $result variable.
- Ending an output command with \ will escape the EOL which won't be appended. Same for #showme.
- Added negotiating of EOR (end of record) You can use #config {debug telnet} {on} to see if your mud supports it.
- IAC GA and EOR will now be seen as prompt markers. Most merc muds allow turning on the GO AHEAD option. This is useful with #config {packet patch} set to somewhere between 500 and 1000.
- Added better support for chinese characters, use ./configure --enable-big5 to enable.
- Pressing ctrl-c while connecting will abort the connection instead of the program.
- Rewrote the original mud master aka zChat p2p support and added it back in. Use #chat init <port> to launch it, #chat help for a list of commands.
- Added a command to manage lists, see #help list.
- Added protection from infinite loops, won't work on all systems.
- You can now use \x?? where ?? is a hexadecimal number. This is useful for inserting special characters.
- #debug {list} log will write debugging information to the log file without spamming you. Useful to track down crash bugs.
- Added %D %M %Y to #format to print the day month year.
- Added the #parse command to parse strings.
- The body of a by braces surrounded variable name will be parsed first, allowing variables as variable names.
- Now matching arguments in triggers like the old TinTin++ did. %0 to %9 will capture the smallest possible amount of text instead of the biggest.
- Can now better capture prompts on muds sending GA with #config {debug telnet} enabled.
- Added a #buffer lock option which is bound to the scroll lock key on startup.
- Removed old code allowing to use " " instead of braces. Might break some scripts
- TinTin++ now enables character mode with local echo off and SGA enabled allowing it to be used on bbs systems
- Added #send to send data directly to the mud.
- Can now chat message people using their ip.
- Added support for complex multi word aliasses which work the same as substitutions.
- #kill now accepts additional arguments to kill a specific list.
#kill actions for example.
- Added #chat send command. Allows sending raw data for custom scripted chat functionality.
|
| TinTin++ 1.95 |
|
- The last command, mostly quit or #end, is cleared when starting TinTin++
- Replaced the #debugtelnet command with a hidden #config {DEBUG TELNET} option.
- Added another hidden config option: CONVERT META. If you type: #config convert on, key presses will be translated into macro readable input. It's should be a piece of cake to create macros now. Don't forget to type #config convert off once done because macro's won't work with this option enabled.
- Added the #class command, see the help file for details.
- If a trigger starts with a tilda (better known as: ~) color codes must be matched.
- The #writebuffer command has been removed, #buffer {write} {filename} is the new way to go about it.
- With #config {CONVERT META} set to ON incoming text will have it's meta characters translated, this to aid in making color triggers.
- #split 0 0 will create an input line without the split line. Useful for people who don't use #prompt.
- #delay now works in the startup session.
- #class <classname> read <filename>, now only reads in stuff that belongs to the given class name. This change requires you to have #class {name} {open} and #class {name} {close} in the file you want to read, but allows keeping all the class stuff in one file.
- Removed excessive color usage when displaying triggers which was resulting in crashes.
- Added the #scan <filename> command. Useful to read in ansi logs. #config log is now set to RAW (ansi) per default.
- Added basic prompt handling for macro's
- Can now use #showme {text} {row}, with a row number given. The {row} works the same as in #prompt.
- Can use #echo {{format} {row}} {{arguments}} as well.
- Got rid of the code seperating high and low priority actions, gagged lines have been triggering anyways for a while. All actions are executed first.
- Removed antisubstitutions since there seems little reason to ever need them. Mainly to keep the interface as clean as possible.
|
| TinTin++ 1.94 |
|
- fixed bug with #split for non xterm terminals
- added telopts to login on *nix servers, code by J. Longtin
- TinTin++ tries to enable keypad and ESC 0 mode on startup
- Added the option to comment out triggers in script files using /* #command */
- #replacestring command added, see #help replacestring
- Made 'END OF PATH' message triggerable.
- Can now set empty variables with #format and #replacestring
- Variables set by triggers no longer give messages
- Can now use variables in highlights
- TinTin++ now tries to reset the terminal when exiting
- Now possible to make triggers on SESSION 'name' DIED message
- No longer possible to #read directories
- Fixed the key binding of the home/end key for scrolling
- Upped the buffer sizes
- Added scroll lock to the config menu, on by default
- Removed connect delay from #config. Connect retry holds the seconds TinTin++ tries to reconnect
- Added #delay command, syntax: #delay {seconds} {command}
- #ticker and #delay accept floating point precision for the seconds field
- #sleep command removed, obsolete with the #delay command. Can still use #system sleep.
- #gagline command added, when called within an action it will gag the current line, otherwise the next one.
- Improved how macro's work quite a bit. You must remove the \n at the end or a macro won't work. You can also use macro's while typing something else now.
- Added packet patch config option, it waits the given amount of milli seconds before displaying possibly broken lines
- Added %n (name) to #format, it capitalizes the first letter of the given string
- Added the $loop and $forall variables which can be used in the #loop and #forall commands.
- If a bracket is missing #read will give a hint where the error might be
- Added the option to surround a variable with brackets: ${some variable}
- Added a check to ignore a trailing ';'.
- #logline command added to log single lines.
- Added %G to #format. Adds thousands grouping to a given number
- Internal messages are now printed to the logfile and scrollback buffer
|
| TinTin++ 1.93 |
|
- Escape behavior altered slightly
- \n sends a new line (smile\ngrin equals: smile;grin)
- \e sends an ESC code (#showme \e[2J to clear screen)
- \a sends a beep (same as #bell)
- \t sends a tap, might make some formatting stuff easier.
- \r sends a carriage return, not that useful, but who knows
- #format will need %+4s instead of %4s in the format part if used in an alias or action.
|
| TinTin++ 1.92 |
|
- removed the #speedwalk command, it's in the #config menu
- unknown telnet codes no longer print a #IAC message
|
| TinTin++ 1.91 |
|
- repeat on enter #config option added
- fixed bug with variables used as TinTin++ commands not working
|
| TinTin++ 1.90 |
|
- TinTin++ script parsing changed to work like normal script engines. This takes care of old script bugs, but results in odd constructions and work arounds to no longer work. %% and $$ are no longer valid.
- #read now allows multi line commands.
- improved speed, v1.9 is 2 times faster than v1.5, making TinTin++ the fastest mud client in existence. I know other mud client developers make this claim as well, I simply didn't want to stay behind =]
|
| TinTin++ 1.89 |
|
- TinTin++ expression code rewritten, ? added as a regexp wildcard
- complete C style mathematical expression parsing for the #math and #if commands
- can use #if {"%0" == "bla*"} to compare strings. Only the second argument can use regexp.
- alphabetic priority string comparison added for < and >
- internal color code support added, see #help color
- a ^ can be used at the end of a trigger, if you want the end of the string to match exactly
- #ignore, #debug, #message commands added for changing list behavior
- the ! command no longer works with history numbers, but instead allows adding an abbreviation match. !w would execute the last command starting with a 'w'
- highlight command rewritten, color code is in the second argument now, color names code rewritten as well
- rewrote #function code, the result must be stored in the special 'result' variable.
- #forall command now uses space instead of comma seperation
- defaults are now set within TinTin++ upon startup
- help files are now internal instead of using an external file
- prompt code rewritten, multiple prompt triggers are possible
- wordwrap added, linewrap rewritten and fixed to wrap correctly
- session configurations are now inherited from the startup session
|
| TinTin++ 1.88 |
|
- NAWS (negotiate about windows size) telnet negotiation
- MCCP (mud client compression protocol)
- TTYPE (terminal type) telnet negotiation
- VT102 scroll back buffer and grep command
- plain data logging
- tick code rewritten, works different as well
- macro code added, allows walking with the keypad, etc
- zombi code removed, blocking connection retry added
- config command added for session configuration
- walk code almost completely rewritten
- ';' character found in a trigger is replaced with '\;' making $0 obsolete
- #format command added which allows complex text formatting
- #prepad, #postpad, #tolower, #toupper removed, #format support added for those and other commands
- split code cleaned up to fix the room description color bug
|
|
|
|
|