NEWS 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. Due to continuous improvements old tintin scripts aren't always compatible
  2. with new versions. This document tries to list most compatibility conflicts.
  3. TinTin++ 2.01.92
  4. ----------------
  5. 01) The #buffer get command has been changed to use the new row notation
  6. standard.
  7. 02) The #split command has been changed to where it sets the number of
  8. top split lines if only one argument is given.
  9. The 2nd argument sets the number of bottom split lines which defaults
  10. to 1. The 3rd and 4th argument set the left and right split lines.
  11. 03) #killall gives a warning that it should be changed to #kill all
  12. 04) #forall has been removed.
  13. 05) %. and %+ should no longer be used in regular expressions. This will
  14. allow expansion of tintin's make-shift regex syntax in the future.
  15. Use {.} and {.+} and {.?+} instead.
  16. 06) Added a notice for people still using $variable[] instead of
  17. *variable[]. I'll change $variable[] eventually to be identical to
  18. $variable[%*].
  19. TinTin++ 2.01.90
  20. ---------------
  21. 01) You'll have to issue #map color reset and #map legend reset to get
  22. your old map files straightened out. Once the map is saved again
  23. it should work without issues.
  24. 02) There were two big problems that needed to be addressed to continue
  25. smooth development.
  26. 1. In VT100 row 1 is the top line, while in tintin row 1 is the split
  27. line.
  28. 2. In VT100 row, col (y, x) notation is used, while tintin has been
  29. favoring col, row (x, y) notation.
  30. While this may seem like a minor issue, I'm utilizing VT100 more often
  31. using more complex operations, and TinTin++ is currently pretty much
  32. mirrored in the way it behaves opposed to VT100.
  33. This has resulted in relatively simple math becoming weird unintuitive
  34. math, making already complex code even more complex, resulting in bugs
  35. and unreadable code that requires a lot of mental gymnastics to figure
  36. out.
  37. Subsequently I decided on a major interface change that will result in
  38. several compatibility issues.
  39. #split will stay the way it is.
  40. #showme {text} will stay the same.
  41. #showme {text} {0} will become invalid.
  42. #showme {text} {1} will print on the top line.
  43. #showme {text} {2} will print on the second line from the top.
  44. #showme {text} {-1} will print on the bottom line / input line.
  45. #showme {text} {-2} will print on the default split line.
  46. #prompt {text} {substitution} will stay the same.
  47. #prompt {text} {substitution} {0} will become invalid.
  48. #prompt {test] {substitution} {1} will write to the top line.
  49. #prompt {text} {substitution} {-1} will write to the bottom / input line.
  50. #prompt {text} {substitution} {-2} will write to the 2nd line from the
  51. bottom, which is the default split line.
  52. All code that takes {col} {row} as an argument will be changed to instead
  53. use {row} {col}. The main reason for this change is consistency, and
  54. because I've repeatedly swapped row and col in VT100 which can be a tricky
  55. bug to track down.
  56. TinTin++ 2.01.8
  57. ---------------
  58. 01) Changed the software license from GPL2 to GPL3.
  59. 02) The SYSTEM START event will no longer report the client name and version
  60. as %0 and %1. Instead you can use #info system save, which will save
  61. CLIENT_NAME and CLIENT_VERSION to the $info[SYSTEM] variable.
  62. TinTin++ 2.01.7
  63. ---------------
  64. Added proper class nesting. When closing the active class, the last active
  65. class is activated. This change will cause trouble for scripts that don't
  66. properly close classes.
  67. TinTin++ 2.01.5
  68. ---------------
  69. 01) The #FORALL command has been removed and instead #FOREACH should be used.
  70. 02) Removed dot notation support for variables. #var bla.bli blo is no longer
  71. valid, nor is $bla.bli.
  72. TinTin++ 2.01.4
  73. ---------------
  74. Added support for *{variable} to show variable names.
  75. TinTin++ 2.00.2
  76. ---------------
  77. Removed the #suspend command, it's been moved to #cursor suspend.
  78. TinTin++ 1.99.7
  79. ---------------
  80. 01) #LOOP, #FOREACH, and #PARSE take an additional argument which contains
  81. the variable used for storing the intermediate values.
  82. #LOOP {min} {max} {variable} {commands}
  83. #FOREACH {list} {variable} {commands}
  84. #PARSE {string} {variable} {commands}
  85. 02) #format {variable} {syntax} {{arg1} {arg2}} has been changed to
  86. #format {variable} {syntax} {arg1} {arg2}
  87. 03) Renamed #replacestring to #replace
  88. 04) Variables can be nested using brackets. Non existent nested variables
  89. report 0 if the base variable exists and always report 0 when the name
  90. is encapsulated in braces.
  91. Using & instead of $ will report the index of a variable.
  92. Using $variable[+1] will report the first nest, and $variable[-1] will
  93. report the last nest, $variable[-2] the second last nest, etc.
  94. To display all nests use $variable[]
  95. To check if a variable exists use: #if {&{variable}} which will report
  96. 0 if non existent, and the numeric index if the variable is found.
  97. 05) #LIST now works with nested variables. Read #HELP VARIABLE.
  98. 06) The #SWITCH, #CASE, #DEFAULT, #FOREACH, #BREAK, #CONTINUE, #ELSE, #ELSEIF,
  99. and #RETURN statements have been added and should work more or less as
  100. expected.
  101. TinTin++ 1.99.1
  102. ---------------
  103. 01) The #regex command now uses the same regular expression syntax as triggers.
  104. 02) #if {"%0" == "?test*"} needs to be replaced with #if {"%0" == "%?test%*"}
  105. as per the regex syntax documented in #HELP ACTION, or use
  106. #if {&{test} != 0} to see if a variable exists.
  107. 03) old lists need to be converted as following:
  108. #var {friends} {{Alicia} {Bubba} {Cathie} {Kayla} {Zorro}}
  109. to
  110. #var {friends} {{1}{Alicia} {2}{Bubba} {3}{Cathie} {4}{Kayla} {5}{Zorro}}
  111. or
  112. #list friends create {{Alicia} {Bubba} {Cathie} {Kayla} {Zorro}}
  113. TinTin++ 1.99.1
  114. ---------------
  115. Triggers now use PCRE (Perl Compatible Regular Expressions).
  116. See #help regex for details.
  117. TinTin++ 1.96.6
  118. ---------------
  119. #PATHDIR is now specificly designed to hold a direction, the opposite
  120. direction, and the vector of said direction for the #MAP command.
  121. TinTin++ 1.95.0
  122. ---------------
  123. Removed #antisubsittute as its utility was too limited for inclusion.
  124. TinTin++ 1.94.4
  125. ---------------
  126. 01) #SPLIT supports 2 arguments to set the top and bottom row.
  127. 02) In order to make a color trigger start a trigger with a tilda. In order to see
  128. color codes the way tintin wants you to enter them type: #CONFIG convert on
  129. when done use: #CONFIG convert off.
  130. #action {~\0;32m%0 says '%1'} {say I don't like green says.}
  131. TinTin++ 1.94.0
  132. ---------------
  133. #SLEEP has been removed. The #DELAY command can be used instead.
  134. TinTin++ 1.91.0
  135. ---------------
  136. Removed the #speedwalk command, it's been moved to the #config menu.
  137. TinTin++ 1.90.0
  138. ---------------
  139. 01) !<argument> will repeat the last command starting with that argument.
  140. score
  141. who all
  142. area
  143. ! --> repeats area
  144. !w --> repeats who all
  145. !s --> repeats score
  146. !ll --> sends !ll as a command
  147. TinTin++ 1.89.0
  148. ---------------
  149. 01) #HIGHLIGHT is now parsed as: #HIGHLIGHT {string} {color}. You can
  150. combine several colors by separating them by semicolons. The color
  151. argument can be a color code. See #HELP COLORS.
  152. 02) $result is now a default variable that can be used in #FUNCTION.
  153. #function dosomething {#math result 1 + 1}
  154. say @dosomething{} will print 2, the #RESULT command has been removed.
  155. It's possible to use #return <value> to exit the function and at the same
  156. time set the result variable.
  157. 03) #MATH and #IF support 64 floating point arithmatic expressions. They also
  158. support strings, which must be enclosed in quotes. See #HELP MATH for more
  159. information.
  160. TinTin++ 1.88.0
  161. ---------------
  162. 01) #FORMAT has been introduced and replaces a wide variety of commands.
  163. 02) #MESSAGE, #CONFIG, #IGNORE, #DEBUG are all you need to configure tintin,
  164. changes made with #CONFIG are written to file with #WRITE.
  165. 03) The old walk code has been removed, instead you can use the #PATH command.
  166. 04) #TICK has been changed quite a bit, new commands: #TICK and #UNTICK, you
  167. can have as many tickers as you want. The old #TICK command is gone.
  168. Syntax: #TICK {name} {commands} {seconds to tick}
  169. The name is added so you can delete it. You will no longer receive spam,
  170. but with a little bit of creativity you can rebuild the old tintin ticker
  171. spam.
  172. Use #READ to load the following ticker which emulates old behavior:
  173. #tick {oldtick}
  174. {
  175. #delay 50 #showme #10 SECONDS TO TICK!!;
  176. #showme #TICK!!!
  177. }
  178. {60}
  179. 05) #READ now supports multiline triggers, it also checks the nesting level
  180. before doing anything so you don't end up with bogus, and trims leading
  181. spaces/tabs. Make sure to remove non matching { }'s from #NOP comments,
  182. cause it will (and should) create error messages. The error message
  183. will try to inform you on what line the error occured.
  184. 06) Added #MACRO for macro support.
  185. 07) Defaults are no longer in a default .rc file.
  186. 08) Can now have multiple prompt triggers, the 2nd argument is the substitution
  187. string that works the same as #SUBSTITUTE. the 3rd argument is the row the
  188. line should be printed on, if left blank it picks the default split line.
  189. 09) All settings are inherited from the startup session when creating a new
  190. session.
  191. 10) A scrollback buffer has been added, which can be browsed with page up,
  192. page down, and the #GREP and #BUFFER command.