TinTin++ Changelog

What's new in TinTin++ 2.01.1

Dec 29, 2014
  • Added #chat prefix option.
  • Added #line quiet option to silently execute commands.
  • Added @{} option to perform a function-like substitution in another session and retreive the result. Primarily useful for retreiving variables from another session.
  • Added the ** and // operator to #math to calculate the power and root.
  • The command history is automatically saved again.
  • Added SSL support based on KBTin code by Adam Borowski.
  • Added SESSION CREATED event.

New in TinTin++ 2.00.9 (Jan 3, 2013)

  • Added a #line strip option to strip color and escape codes.
  • Added SESSION TIMED OUT event.
  • Added #map exit
  • Save to store exit data in a variable.
  • Added the RECEIVED PROMPT event.
  • Added the #map flag symbolgraphics option to display the room symbol instead of a drawing symbol when in non asciigrahpics mode. Useful when mapping a wilderness world.

New in TinTin++ 2.00.5 (Jan 3, 2011)

  • Fixed a bug with embedded variables not getting properly substitued when used in nested variables.
  • Fixed a bug with the verbose state being lost when starting a new session using an alias.
  • Added the option to provide a vnum for #map delete.
  • Added the option to create vnum specific MAP events, like MAP EXIT ROOM 41 or MAP ENTER ROOM 27.
  • Fixed the MAP EXIT ROOM event, it was reporting the next room rather than the current room for %0. %1 now holds the new room, and MAP ENTER ROOM will hold the old room in %1.
  • Fixed split settings not getting properly inherited from the startup session.

New in TinTin++ 2.00.4 (Oct 25, 2010)

  • Added a better verbatim and verbosity handler to more generically deal with aliases and input triggered events.
  • Several mapper messages are no longer displayed when used in scripts.
  • #zap now takes an optional argument to zap a specific session.
  • When UTF8 is defined in tintin.h UTF8 characters should get wordwrapped correctly, still needs a #config option.
  • Added support for named MSDP events, for example IAC SB MSDP HEALTH would trigger on the HEALTH variable being updated, with %0 holding the value.
  • Added #map uninsert command which does the exact opposite of the #map insert command.
  • Added #map at command which executes the given commands at the given location.
  • Fixed the #path zip command.
  • Added better #prompt {line} {substitution} {0} support to print a mud prompt and pending input on the 0 line. Works well in combination with #split 0 0.
  • Added #map map 80x20 {a} option to log in append mode, by default an overwrite is performed.
  • Added the option to use #path load {n;e;s;w;u;d}
  • When using #path run {delay} you can remove pending run commands by using: #undelay PATH %d

New in TinTin++ 2.00.3 (Aug 2, 2010)

  • Added MAP ENTER MAP and MAP EXIT MAP events.
  • #write now only saves triggers that do not belong to a class.
  • Lowered the buffer size to 20,000 because of crash reports.
  • Added MSDP_OPEN and MSDP_CLOSE support, as well as support for arrays.
  • #variable allows additional arguments which can be used to merge tables.
  • #list {var} create/add now allow semi-colon separated arguments.
  • When using the auto mapper, an exit's exit command will behave like an alias when following the map.
  • Statements like %+10s now ignore colors.
  • Added NOFOLLOW flag support to stop auto following of the mapper.
  • Added #map dig {dir} {} option to dig an exit to the given vnum.
  • Added #map goto {} {dig} option to have goto dig a room if it doesn't exist.
  • Merged the #map exit and #map exitdir commands into the #map exit command, adding options for COMMAND, DIRECTION, FLAG, NAME, and VNUM.
  • Added support for GMCP events and JSON to TINTIN conversion.
  • When path finding the path will be highlighted on the ASCII map.

New in TinTin++ 2.00.2 (Jul 3, 2010)

  • Updated mapper messages to only show up on manual input.
  • Function arguments are no longer separated by spaces but by semicolons, strongly suggested to check your scripts for old functions, and update them.
  • Added BIG5 support to the parse command.
  • Removed the #suspend command, #cursor suspend is available instead.
  • Using $variable[%*] on a non existing nest now returns an empty string rather than 0 so they can be used in loops.
  • Added the PROGRAM_START, SCREEN_RESIZE, SESSION_ACTIVATED, and SESSION DEACTIVATED events.
  • Added an optional vnum argument to #map get and #map set commands so #map goto isn't required to loop through all rooms.
  • Added a #config option to enable BIG5 support.
  • Added the #line substitute options which allows the substitution of variables, functions, colors, and escape codes in the provided command argument.

New in TinTin++ 2.00.1 (Apr 6, 2010)

  • Added better \b handling.
  • #path load and #path save now load and save to variables, rather than aliases.
  • Added #map dig {} {new} option.
  • Added documentation for #map exitdir
  • Added support for loading map files edited in Windows.
  • Updated #buffer get to store in reverse if the lower bound is higher than the upper bound.
  • Fixed floating point handling issues.

New in TinTin++ 2.00.0 (Feb 19, 2010)

  • Changed the substitution order of #list add so it'll work better with nested variables.
  • Added support for escaping functions using @@.
  • Trigger priorities can now have a floating point precision.
  • Added a #buffer get option to aid in creating multi-line triggers.

New in TinTin++ 1.99.9 (Dec 30, 2009)

  • Fixed a math bug with negative numbers.
  • Added #buffer clear option.
  • Added PROGRAM START event.

New in TinTin++ 1.99.8 (Oct 19, 2009)

  • 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.

New in TinTin++ 1.99.7 (Aug 28, 2009)

  • Updated #map list to use the same arguments as #map goto.
  • Added the #map 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 noticeably faster.

New in TinTin++ 1.99.6 (Jun 23, 2009)

  • Added a patch that adds forkpty to systems that lack it.
  • Added a patch that significantly improves tab handling.

New in TinTin++ 1.99.5 (May 15, 2009)

  • 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.

New in TinTin++ 1.99.3 (Mar 23, 2009)

  • 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.

New in TinTin++ 1.99.2 (Mar 9, 2009)

  • 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.

New in TinTin++ 1.99.1 (Mar 2, 2009)

  • Added the xx 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-� lazy match of any text, available at %xx (%1-�).
  • %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.

New in TinTin++ 1.99.0 (Feb 16, 2009)

  • #showme and #echo now take a // as a suffix to stop a linefeed from being added.
  • Added an extra measure to prevent losing track of the cursor position.
  • Added an END OF PATH event.
  • #debug should give more detailed debugging information.
  • Removed timestamp config option, a scripted #event based alternative has been added to the SCRIPT file.
  • 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.

New in TinTin++ 1.98.9 (Jan 29, 2009)

  • The 'd' format option is now used to print an integer, mainly to enable the + option for standard digit formatting.
  • Added to

New in TinTin++ 1.98.8 (Jan 12, 2009)

  • A pre-parser has been added that allows for deeping nesting with #if checks.
  • 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.
  • Fixed a bug with regular expression arguments for OS X.
  • Changed the %t format option to use a strftime format to create time stamps.
  • Fixed telopt handling to avoid MCCP errors.

New in TinTin++ 1.98.7 (Dec 8, 2008)

  • Variables can now be used in aliases.
  • 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.
  • Updated the math helpfile with available bit operations.
  • 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 a timestamp config option to add timestamps to log files using the strftime format.

New in TinTin++ 1.98.6 (Oct 24, 2008)

  • Fixed the requirement of braces to use the #map run option.
  • Added the static roomflag which makes it easier to deal with overlapping rooms.
  • Can now specify on/off for setting global flags and room flags.
  • 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.

New in TinTin++ 1.98.5 (Aug 29, 2008)

  • 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.
  • Fixed bug with the first input character being ignored in character mode.
  • 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.

New in TinTin++ 1.98.3 (Jul 16, 2008)

  • 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 #config regexp on/off option. If enabled actions, aliases, highlights, subs, and grep will use regex. Keep in mind that all regexp checks are inline (or whatever it's called), so if you make an alias you'd want to start it with a ^ so it matches the start of the input.
  • 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.
  • Regexp checks can now use e x and other escape codes.
  • Rewrote the tintin19.txt file, now holds a brief introduction to tintin.

New in TinTin++ 1.98.2 (May 29, 2008)

  • 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  (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.

New in TinTin++ 1.98.1 (Apr 7, 2008)

  • 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.

New in TinTin++ 1.98.0 (Mar 25, 2008)

  • 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.

New in TinTin++ 1.97.9 (Feb 2, 2008)

  • Added 'dark' as a valid color name in highlights.
  • Added the 'color patch' config option for muds with awkward color handling.

New in TinTin++ 1.97.8 (Nov 24, 2007)

  • Added the option to use to �.
  • You must now escape using %%0 rather than %�.
  • Added the #path run {delay} option.
  • Highlight now colors all matches on a line.
  • Functions now only use to �, &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.