1May 2022 2.02.12 2------------------------------------------------------------------------------ 3input.c Added RECEIVED INPUT CHARACTER event that triggers on each 4 character added to the input buffer. %0 holds the character, 5 %1 the unicode index, %2 the byte size, %3 the character's 6 display width. 7 8cursor.c Added #cursor tab caseless option to make tab completion case 9 incensitive. 10 11dict.c Added #cursor tab dictionary option to tab through the 12 dictionary. 13 14log.c Added #log timestamp <format>. The format follows strftime as 15 described in #help time. Timestamps will be prepended to each 16 line of log output. 17 18log.c Added #log move <filename> <filename> to move files. 19 20log.c Added #log remove <filename> to remove files. 21 22variable.c #format %r now ignores color and escape codes. 23 24data.c Added the #info tokenizer option to have a peek at the stack 25 of the scripting engine. Use case example: 26 27 #event {RECEIVED ERROR} 28 { 29 #echo <118>%h { TOKENIZER }; 30 #info tokenizer -1; 31 #echo <118>%h 32 } 33 34path.c #path load now automatically adds reverse directions. 35 36map.c Added support for #map list {roomflag} {!void} etc. 37 38line.c Added #line substitute braces which will turn { and } into 39 \x7B and \x7D. 40 41map.c Added #map list {{distance}{5}} to list all rooms within a 42 weighted distance of 5. Keep in mind this goes by weight, 43 which starts at 1.0 and increases by 2.0 per room by default. 44 45cursor.c Added #cursor flag eol {cr|lf|crlf|crnul|off} to change the 46 default end of line character between \r \n \r\n and \r\0. 47 48log.c Changed logging to where it logs data before it's wrapped by 49 the client. 50 51map.c Added support for roomsymbol lengths up to 5 characters in 52 unicode, and 6 characters in ascii graphics mode. 53 54map.c Added the option to #map list/find to use * as a roomexit. 55 This will make the search ignore non-pathdir exits without 56 an exit direction. 57 58Mar 2021 2.02.11 59------------------------------------------------------------------------------ 60draw.c #draw BALIGN will push text to the bottom if there aren't 61 enough lines to fill the entire square. 62 63main.c Synchronized terminal resize handling which might fix some odd 64 crashes. 65 66variable.c Getting rid of #format %C for chronological formatting since 67 I'm abandoning chronological notation support. While it was 68 a cute feature it's more important to support the ? : ternary 69 operation. This frees up the %C argument for a more complex 70 column operation. 71 72mapper.c Added support to use #map list 1..6 to provide a vnum range. 73 74substitute.c Added \u{} which supports between 2 and 6 hexadecimals. 75 76data.c Added the #info input and #info input save option. 77 78data.c Added the #info environ and #info environ save option. 79 80main.c Added SIGUSR event. %0 will contain either 1 or 2. 81 #event {SIGUSR} {#showme RECEIVED SIGUSR %0} 82 #info system save 83 #system {kill -USR1 $info[SYSTEM][PID] 84 85main.c Added SIGHUB event which should trigger when the terminal is 86 closed with TinTin++ still running inside. You can use 87 #event {SIGHUB} {#end} to have tintin close normally. 88 89session.c Added #snoop {session} scroll {on|off} to snoop a session's 90 scroll region, which will be printed on top of the active 91 session's screen. 92 93math.c Made #math / #if about 3x faster. 94 95math.c Updated // to support powers other than 2 and 3. 96 97regex.c Changed %w to match any letter, number, or underscore instead 98 of just letters, to make it match \w. Same for %W. 99 100Nov 2020 2.02.10 101 102------------------------------------------------------------------------------ 103 104split.c Now allowing #showme {text} {-1} to place text on the input 105 line without #split being enabled. 106 107trigger.c Changed #tick to lazily get the second argument. 108 109files.c Added the READ FILE [NAME] event, triggers after a file has 110 been read. %0 holds the file name. 111 112draw.c Added color gradient support to #draw bar. To use it you 113 must specify two 256 color foreground codes for the color 114 field and based on the min;max value it will pick a color 115 somewhere in between. 116 117 #loop 1 9 i #draw <DDF> scroll bar 1 1 1 40 {$i;9;<faa><afa>} 118 119draw.c Added the BAR drawing type. Currently only horizontal bars 120 are supported, but for forward compatibility you should draw 121 bars using #draw horizontal bar {square} {<min>;<max>;[color]} 122 The width of the bar will be that of the square coordinate. 123 124trigger.c Added support for 10 digit precision delays. The main 125 utility of this is execution order. 126 127 #delay 0.00003 #show A;#delay 0.00002 #show B 128 129 Since delays are processed in 0.01 second intervals these will 130 both trigger within 0.01 seconds, but the display order will 131 be: B A rathern than A B. 132 133path.c Added MAPPING and RUNNING to #path get. 134 135 MAPPING returns 1 when path mapping, otherwise 0. 136 RUNNING returns the delay until the next run, otherwise 0.00. 137 138 #path get <variable> without an argument will store the 139 length, position, mapping, and running values in a table. 140 141trigger.c Storing the creation time of tickers and delays in arg4, can 142 be obtained using #info tickers/delays save. 143 144substitute.c Added support to call @function{} as @{function}{}. 145 146event.c The SCREEN FOCUS event no longer requires #config mouse to 147 be enabled. 148 149math.c % in #math now supports floating point modulo operations. 150 151data.c #info will save #info variables to $info[VARIABLES] rather 152 than $info[VARIABLE]. Same for other lists. 153 154list.c Added #list {var} filter {keep} {remove}. Keep and remove 155 must be a regex pattern, the keep regex is ignored if {} is 156 used, the remove regex is optional. #list indexate must be 157 used to filter tables. 158 159utf8.c Added #config charset cp949 for Korean. 160 161Oct 2020 2.02.05 162------------------------------------------------------------------------------ 163 164variables.c Added the #unlocal command. 165 166files.c Table variables are now written to file with indentation. 167 168utf8.c Decreased the memory footprint of BIG-5 / GBK-1 support. 169 170variable.c The VARIABLE UPDATE event now reports the path in the %2 171 argument. 172 173May 2020 2.02.04 174------------------------------------------------------------------------------ 175 176help.c Updated the MSLP helpfile. 177 178scan.c Added #scan forward, does the same as #textin. 179 180substitute.c Added a warning when using &variable on an undefined variable 181 in math operations. 182 183draw.c Updated the #draw line mode to behave more distinct from the 184 #draw side mode. When teed a horizontal line can have only 185 the left or right side teed when specified. Similarly a 186 vertical line can have the top or bot side teed. 187 188banner.c Added the tt++ -g startup option to startup tintin with a gui. 189 So far it only supports a connection manager. 190 191main.c Added the SYSTEM CRASH event, %0 holds the error message. 192 193screen.c #screen inputregion now takes a 5th argument to assign a 194 name, can be used with the RECEIVED INPUT [NAME] event. 195 196screen.c Added #screen swap, swaps the input and scroll region height. 197 198mapper.c The MAP ENTER ROOM and MAP EXIT ROOM events will store the 199 direction traveled in the %2 argument. 200 201draw.c #draw CALIGN will prune and center text. 202 203 #draw LALIGN will prune and left align text. 204 205 #draw RALIGN will prune and right align text. 206 207 #draw TALIGN will show the top of the text if it is too long 208 to fit the square, cutting off the bottom. The default is to 209 bottom align and cut off the top. 210 211 #draw UALIGN will unwrap and rewrap text. 212 213math.c Added very basic ? : ternary operator support in #math. It 214 currently only supports simple assignments like: 215 #math result $variable < 5 ? 0 : $variable 216 217screen.c Added several #screen get INPUT_ options. 218 219daemon.c Added DAEMON ATTACHED and DAEMON DETACHED events. 220 221mapper.c Added #map flag quiet, gets rid of build walk spam. 222 223event.c With mouse pixel mode enabled the %7 argument of a mouse 224 event will contain nw, n, ne, w, c, e, sw, s, se, depending 225 on where on a character you clicked. 226 227 You can, for example use #if {"%7" == "{nw|w|sw}"} to check 228 if the left side of a character was clicked. 229 230help.c Added #help edit and #help editing 231 232config.c Added the #config mouse pixels option for pixel precision. 233 Requires the latext xterm or mintty release to work. 234 235tokenize.z The default ! repeat character can now be used in scripts. 236 Use with caution. To repeat the last command when you press 237 ctrl-enter use: #macro {\e[13;5u} {!} 238 239tintin.h Increased BUFFER_SIZE from 30KB to 40KB. 240 241screen.c Added #screen scrollbar on/off, currently only works with 242 mintty / wintin++. Allows using the scrollbar with tintin's 243 own scrollback buffer. Works automatically once enabled. 244 245list.c Changed #list simplify to work in a similar manner as 246 #list sort and #list order. 247 248draw.c #draw now takes a second color argument. First color argument 249 sets the box color, the second sets the text color. 250 251split.c Updated #split to take a 5th argument to set the height of 252 the input region, #split without an argument defaults to 253 #split 0 1 0 0 1. 254 255event.c Added event group lookups, can use #event mouse to see all 256 mouse events. 257 258edit.c Added the [CATCH] EDIT FINISHED and EDIT STARTED events. 259 260cursor.c Added #cursor {page} which has several sub-options that can 261 be used in edit mode. 262 263 ctrl-home is bound by default to #cursor page home 264 ctrl-end is bound by default to #cursor page end 265 266cursor.c Added #cursor {soft enter} which allows inserting new lines 267 while in edit mode, it's bound to shift-enter by default. A 268 regular enter will exit edit mode. 269 270edit.c Added the #edit command, used to enter edit mode and perform 271 various edit buffer operations. 272 273cursor.c Added #cursor up and #cursor down, moves cursor up/down in 274 multiline input regions. 275 276event.c Added the INPUT MOUSE event, which triggers when using the 277 mouse in the input region. 278 279cursor.c Added multiline input support. Use #screen inputregion to 280 enable. For example: 281 282 #screen inputregion -3 1 -1 -1 283 #split 0 3 284 285cursor.c #cursor preserve macro and reset macro have been moved to 286 #cursor macro {preserve|reset} 287 288 #cursor echo and #cursor insert have been moved to 289 #cursor flag {echo|insert} {on|off} 290 291input.c Added infinite input support, TinTin++ will still crash 292 somewhere down the line until the rest of the engine has 293 infinite string support as well. When CHILD LOCKED the 294 input buffer is capped. 295 296class.c Added #event CLASS LOAD <NAME>, triggers after a class is 297 loaded. 298 Added #event CLASS CLEAR <NAME>, triggers before a class is 299 cleared. 300 301scan.c Added the #scan dir <dir> <variable> option, will scan the 302 given file or directory and store the info in the provided 303 variable. 304 305scan.c Modernized #scan, includes a warning when the old syntax is 306 used. 307 308variable.c #return now returns a local result, this should solve issues 309 with function nesting. 310 311list.c Added #list {<list>} index {nest} which can be used to index 312 a two dimensional table as a one dimensional list. After a 313 table has been indexed, #list find, order, sort, and reverse 314 will work. 315 316triggers.c Added the <900> color tag which can be used in substitutions 317 to restore the text color to the original text color. 318 319 #sub {\bsmurf\b} {<bdf>smurf<900>} 320 #showme {<afa>A smurf is smurfing here.} 321 322draw.c Added the SCALED drawing option. When used the size of the 323 square is increased depending on the size of the inputted 324 text. 325 326buffer.c #buffer find now places the found keyword at the top instead 327 of at the bottom of the page. 328 329path.c Added #path save {BOTH} <variable> to save both the forward 330 and backward path, as well as any given delays. Keep in mind 331 that delays will only work properly for forward going paths. 332 333path.c Added a third field to #path insert to specify the delay. 334 335mapper.c Added a delay field to #map exits, which will be used 336 when using #path run with a delay argument. 337 338data.c Added #info sessions save which will save the data on all 339 sessions to $info[SESSIONS]. 340 341data.c #info session save now saves the data to $info[SESSION][NAME] 342 rather than to $info[SESSION][SESSION_NAME] 343 344cursor.c Added #cursor position <column> to move the cursor to the 345 given column. 346 347show.c Added RECEIVED ERROR event. Example: 348 #event {RECEIVED ERROR} {#info stack} 349 350class.c Added #class {name} assign {argument} which will execute the 351 argument, assigning all newly created triggers to the given 352 class. 353 354draw.c Added #draw buffer, which draws the scrollback buffer based 355 on the scrolling state. 356 357draw.c Added #draw foreground flag, which allows inactive sessions 358 to draw. 359 360update.c Added END OF RUN event which triggers at the end of #map or 361 #path run. 362 363Mar 2020 2.02.03 364------------------------------------------------------------------------------ 365 366data.c Added SESSION_ACTIVE field to #info session save 367 368mapper.c Added MAP CREATE EXIT and MAP DELETE EXIT events. 369 370history.c Added #history get <variable> <start> <end> option. 371 372draw.c Added #draw map <square> option. 373 374event.c Added MAP ROOM and MAP REGION mouse events. MAP ROOM only 375 triggers when the mouse is above a room, MAP REGION triggers 376 anywhere in the map region, as defined by default or as 377 defined with #map offset. 378 379files.c #read will now warn if there is a possibly missing semicolon. 380 381config.c Can add non-colors in #config command_color by escaping the 382 characters. Example: #con command <178>\>\ <128> 383 384line.c Added #line multishot {number} {argument} which should make 385 all created triggers fire the given number of times before 386 expiring. 387 388line.c Added #line local {argument} which should make all indirectly 389 created variables local. 390 391variable.c Updated %h to allow #echo %+40h {some text} 392 393update.c Added the DISPLAY UPDATE event which is triggered right 394 before the final display update when new data has become 395 available. 396 397port.c Added PORT INITIALIZED and PORT UNINITIALIZED events, both 398 can be prefixed with GAG to suppress the default system 399 message. 400 401path.c Updated #path unzip to take the new speedwalk format. 402 403telopt_client.c Added IAC SB NAWS event, can be caught. 404 405split.c Added SCREEN SPLIT FILL event, which triggers on the 406 split line drawing routine, can be caught. 407 408memory.c Added a custom memory stack, still a work in progress. 409 410utf8.c Added #config charset CP1251TOUTF8 411 412cursor.c Added #cursor {preserve macro} which when called from within 413 a macro will preserve the macro state. Example: 414 415 #macro {\cg} {#showme e: end\nh: home;#cursor preserve macro} 416 #macro {\cge} {#showme end} 417 #macro {\cgh} {#showme home} 418 419cursor.c Added #cursor {reset macro} which when called from within 420 a macro will reset the macro state. 421 422path.c Added #path get {LENGTH|POSITION} <variable> 423 424Jan 2020 2.02.02 425------------------------------------------------------------------------------ 426 427config.c Added #config {packet patch} {auto} support which will 428 result in automatic telnet eor/ga handling and automatic 429 packet patching if #prompt is set correctly. 430 431help.c Added auto-link generation for #help when mouse tracking is 432 enabled. Still experimental. 433 434mapper.c Added #map get/set direction/pathdir to get/set the current 435 direction you are facing in numeric and alphabetic notation. 436 437tables.c Added italic and unitalic #highlight keywords. 438 439tables.c Pressing ctrl-delete will delete one word per default. 440 441mapper.c Fixed #map undo issues with #map insert and #map dig. 442 443mapper.c Now shows destination in #map exit <dir> 444 445base.c Added %+64b and %+64B support to #format to convert to and 446 from base 64 encoding. 447 448 Added %+64z and %+64Z support to #format to zip the string 449 and convert it to base 64. May not compress it much but may 450 have some utility to store passwords. Security through 451 obscurity. 452 453 Added experimental %+252b/z and %+252B/Z options for Base 454 252 encoding. 455 456draw.c Added FAT, CURSIVE, SCROLL, and SANSSERIF draw options. 457 458input.c ctrl-v will now correctly capture ctrl-alt-f and similar 459 combinations. ctrl-v will also allow pasting blocks of text. 460 Example added to the SCRIPTS file. 461 462event.c Added GAG SESSION CONNECTED, GAG SESSION CREATED, 463 GAG SESSION DISCONNECTED, and GAG SESSION TIMED OUT events. 464 465mapper.c Added #map roomflag fog. Works like #map roomflag hide but 466 the flag is auto cleared on entrance. 467 468line.c Added #line convert options. 469 470mapper.c Aded MAP CREATE ROOM and MAP DELETE ROOM events. 471 472utils.c Increased the entropy of the random number generator. 473 474list.c #list order sorts existing lists numerically. 475 476list.c #list sort sorts existing lists alphabetically. 477 478sort.c Added sorting routines utilizing quadsort. 479 480list.c Added #list reverse option. 481 482cursor.c Added default bindings for ctrl-left, ctrl-right, and 483 ctrl-backspace 484 485screen.c Added advanced link support. To create an advanced link 486 surround a keyword with the \e[4m keyword \e24m tags and 487 prefix it with \e]68; code \a. 488 489 #config mouse on 490 #showme {\e]68;;1;test\a\e[4mthis is a test\e[24m} 491 #event {SHORT-CLICKED LINK MOUSE BUTTON ONE} {#showme {[%4]}} 492 493screen.c Added basic link support. To create a basic link surround a 494 keyword with the \e[4m keyword \e[24m tags. When clicked with 495 mouse support enabled it'll spawn a LINK mouse event. 496 497map.c Added #map exitflag <dir> <option> GET <variable> support. 498 499event.c The %4 argument of mouse clicks once again reports the word 500 that has been clicked, with %5 reporting the line. Under 501 construction. 502 503screen.c Added #screen input <square> to define the input region. 504 Currently only 1 line input regions are supported. Example: 505 #screen input 1 1 1 -1 will put the input line at the top of 506 the screen instead of the bottom. Under construction. 507 508Dec 2019 2.02.01 509------------------------------------------------------------------------------ 510data.c Added CWD field to #info system to get the current working 511 directory. 512 513data.c Added the option to use #var var[\+1] to set and retrieve a 514 literal +1 instead of referencing the first index. This 515 behaves like the verbatim mode and the backslash is only 516 valid at the start of the line. 517 518data.c Added #info unicode <character> option to display 519 information about the provided character. 520 521Nov 2019 2.02.00 522------------------------------------------------------------------------------ 523 524regex.c Added support for using %+4s to match 4 spaces, or %+0..2d 525 to match between 0 and 2 digits. Only works with letter 526 arguments. 527 528regex.c Added %a regex as an alternative for %* because %+4* is 529 not valid. 530 531regex.c Added %p regex which will match printable characters. 532 533regex.c Added %u regex which should match whole unicode characters. 534 535utf8.c Added BIG5toUTF8, KOI8toUTF8, ISO1toUTF8, ISO2toUTF8 charset 536 config options. 537 538utf8.c Added GBK1TOUTF8 charset config option. When enabled 2 byte 539 GBK codes are translated to unicode. 540 541utf8.c Added GBK-1 charset config option which should be able to 542 handle GB18030. 543 544mapper.c Added a UNICODE GRAPHICS group to #map legend, this will 545 allow you to customize most of the unicodegraphics symbols. 546 547variable.c Added #format <variable> %S option to do a spell check. 548 Returns the number of errors found. Still a work in 549 progress. 550 551 People using %S to get the session name should switch to 552 using #info session save. 553 554data.c Added #info session option, this data can be saved. 555 556draw.c Added #draw RAIN {<VARIABLE>} {[SPAWN]} {[FADE]} {[LEGEND]} 557 558 Use tt++ -M for a default example. 559 560class.c Added #class clear, load, and save. See #help class. 561 562main.c Configurations and pathdirs are automatically assigned to 563 the CONFIG and PATHDIR class on startup. Somewhat 564 experimental as there may be unforseen complications. 565 566list.c Added #list <list> collapse and explode 567 568mapper.c Updated #map {} output. 569 570nest.c Added better #local support. 571 572variable.c Added #cat command. See #help cat. 573 574event.c Added SWIPED N/NE/E/SE/S/SW/W/NW events. These do not work 575 on Termux yet, but I've asked the Termux dev to enable 576 advanced mouse mode by default. 577 578draw.c Added #draw TABLE type which comes with the GRID option to 579 change the drawing behavior. Requires a nested string 580 argument. Under construction. 581 582mapper.c Added #map flag terrain on/off option to enable or disable 583 terrain displaying. Default for new maps is on. 584 585mapper.c Added #map terrain <name> <symbol> [flag] and #map unterrain 586 Creates a symbol, which can be colored, for the given 587 terrain type. Density flags are DENSE, AMPLE, SPARSE, SCANT, 588 omit for default density. Range flags are NARROW, STANDARD, 589 WIDE, and VAST, omit for default. 590 591 Decay flags are FADEIN and FADEOUT which speak for 592 themselves. DOUBLE will expect the terrain symbol to be 593 2 characters or a double-width unicode character. 594 595variable.c Added %C format option to store the given number using 596 chronological notation. 597 598 People using %C to get the screen width should switch to 599 using #screen get cols <var> and #screen get rows <var> 600 601mapper.c Added a 4th argument to landmarks which will indicate the 602 distance from which the landmark will be visible in a future 603 #map describe command. 604 605draw.c Added HUGE option to #draw. Only supports uppercase letters, 606 numbers, and a few punctuations for now. 607 608cursor.c Added #cursor tab <list|scrollback> <backward|forward> 609 option. Allows people with custom tab settings to upgrade 610 to the new format before I start messing with it. 611 612 list goes exclusively through the tab list, scrollback goes 613 exclusively through the scrollback buffer, use both list and 614 scrollback to go through both. 615 616line.c Added #line capture <variable> <command> option. 617 618mapper.c Added the MAP MOUSE LOCATION event to go along with the 619 SCREEN MOUSE LOCATION event. MAP MOUSE LOCATION is more 620 accurate than regular MAP click events. It needs to be 621 trigged with #screen raise mouse location, which is not 622 supported by all terminals. 623 624 You'll need to use ./configure --enable-dec-locator for xterm 625 to enable the MOUSE LOCATION events. 626 627 628list.c Added #list <var> shuffle 629 630mapper.c I'm working on a new speedwalk standard that will work with 631 diagonal exits. Initial support is added to the #map at, 632 #map goto, and the #map jump commands. Old speedwalk support 633 is going to be left unchanged. 634 635 The format is similar to old speed walks, except that 636 speedwalks like 2ene need to be changed to 2e1n1e. 637 638 #map jump and #map at will use virtual traversal, meaning you 639 can move through walls as long as the destination is an actual 640 location. 641 642 #map move and #map goto will use physical traversal, meaning 643 #map goto 10w only works if there is a straight line of 10 644 rooms leading west, while #map move 10w will create 10 rooms 645 if static mode is disabled. Keep in mind that #map move will 646 trigger map movements events while #map goto will not. 647 648 Regular #config SPEEDWALK speedwalks are unaffected. 649 650mapper.c Added MAP MOUSE LOCATION event which allows more accurate 651 mouse clicking reports in unicode mode on terminals which 652 support it. Appears to be some obscure compile time option 653 on xterm. 654 655mapper.c AsciiGraphics and UnicodeGraphics mapping modes now report 656 the exit that was clicked on MAP MOUSE click events in the 657 %2 argument. 658 659screen.c Added #screen raise SCREEN MOUSE LOCATION, the SCREEN MOUSE 660 LOCATION in turn will report row,col,-row,-col, as well as 661 the row,col,-row,-col for the pixel position of the mouse 662 within the character cell. %8 will report the pixel position 663 as a 3x3 cell using values 1 through 9. 664 665mapper.c Added the BLOCK exit flag and room flag. Works like AVOID, 666 but also prevents movement into the room. 667 668mapper.c Added #map landmark <name> <vnum> [desc] and #map unlandmark. 669 Landmarks work as fast lookup aliases and to give tintin an 670 idea of locations of interest to eventually describe the map 671 in words for screen readers. 672 673mapper.c Added #map exit <dir> color <code> option. 674 675mapper.c Added exit coloring for avoid/hide/invis flagged exits. 676 677main.c Added -V startup option to show version number. 678 679daemon.c Added better link lost handling to daemons. 680 681cursor.c Fixed #help event section on {SCREEN FOCUS}. 682 683math.c Added metric suffix support to #math, see #help metric. 684 685variable.c Added #echo %M to print numbers using the metric system, 686 supported suffixes are K M, m, and u. 687 688mapper.c Added #map sync <filename> which will try to synchronize the 689 currently loaded map with the file being read. Should be a 690 valid alternative to #map read at all times. 691 692Sep 2019 2.01.92 693------------------------------------------------------------------------------ 694 695mapper.c Added #map dig <exit> {{roomid}{<key>}} {NEW} support. 696 Added #map goto {{roomid}{<key>}} {DIG} support. 697 698mapper.c Added the roomid field to map rooms. When using #map goto or 699 #map run on a roomid regular expressions cannot be used. 700 Roomid's are case sensitive, must be matched exactly, and 701 are expected to be unique. 702 703daemon.c Added #daemon {kill|list}. See #help daemon. 704 705daemon.c Added #daemon {attach|detach}. See #help daemon. 706 707main.c Can launch tt++ with the -R argument to reattach. 708 709data.c Added #info MCCP option. 710 711draw.c Added TUBED drawing option. 712 713scan.c Added #scan FILE {commands} option. See #help scan. 714 715map.c Can provide multiple ; separated commands to #map move at 716 once. For example: #map move {n;e;s;w} 717 718main.c Added support for starting tintin with telnet://host:port 719 720draw.c Added ANSI, UNICODE, JEWELED and FILLED prefixes. 721 722tables.c Removed #forall command. 723 724mapper.c Added #map center <x> <y> <z> to set the center of the map 725 viewer, default is 0 0 0. 726 727split.c Added SCREEN SPLIT and SCREEN UNSPLIT events. 728 729nest.c Added VARIABLE UPDATED event. 730 731draw.c Added the BUMPED prefix to prefix a scroll region box with an 732 enter. You create a scroll region box by using 0 as the top 733 row argument. Treat the other arguments as if the top row 734 is set to 1. 735 736draw.c Finished rounded box drawing, to get the old behavior use 737 the CIRCLED prefix. 738 739config.c Added #config {mouse tracking} {on|off|debug|info|debug info} 740 to enable/disable info/debugging for all mouse clicks. 741 Use #config {mouse tracking} {on} to reset to normal. 742 743help.c Updated #help regex to state that %. and %+ should no longer 744 be used. This will allow future expansion of tintin's regex 745 syntax. Use {.} and {.+} and {.?+} instead. 746 747variable.c Added support for %+10w and %-10w to #format. Negative numbers 748 subtract the given value from the screen width when wrapping. 749 750text.c Added initial tab displaying support. 751 752config.c Added TAB WIDTH config option. 753 754nest.c Added a notice for people still using $variable[] instead of 755 *variable[]. I'll change $variable[] eventually to be 756 identical to $variable[%*]. 757 758math.c Added .. ellipsis support to define ranges in tables. It can 759 also be used in #math to join two 32 bit integers into a 64 760 bit integer. 761 762terminal.c Now initializing a more advanced keyboard mode upon startup, 763 if a macro stops working check if you have to redefine it to 764 a new sequence. 765 766math.c By default tintin does a string vs regex comparison when 767 using == and !=. Added === and !== to do string vs string 768 comparisons. 769 770config.c Made configurations less lazy, making it easier to detect 771 when settings aren't properly inherited or changed globally. 772 773screen.c Added #screen scroll option, similar to #split but uses square 774 notation to define the scroll region. 775 776screen.c Added #screen fill option. 777 778terminal.c Added SCREEN ROTATE PORTRAIT and SCREEN ROTATE LANDSCAPE 779 events. 780 781mapper.c #map offset will now rescale along with the window. 782 783split.c The #split command has been changed to where it sets the 784 number of top split lines if only one argument is given. 785 786 The 2nd argument sets the number of bottom split lines which 787 defaults to 1. The 3rd and 4th argument set the left and right 788 split lines and when used will automatically enable vertical 789 split mode. 790 791 Split initalization will use unicode if #config charset is 792 set to utf-8 793 794buffer.c The #buffer get syntax has been changed to treat 1 as the 795 oldest line in the buffer, and -1 as the most recent. 796 Unfortunately that's not backward compatible, but it's in 797 line with the other row behavior changes, so at least it 798 will be consistent. 799 800text.c With #split enabled and #config wordwrap set to a positive 801 value tintin++ will attempt a vertical split. 802 803draw.c More feature complete, see #help draw. 804 805vt100.c Added better cursor save/restore handling. 806 807update.c Added support for centisecond delays (0.01) and moved ticks to 808 deciseconds (0.1). 809 810 Reduced input and session polling lag from 25 ms to 5 ms, 811 which comes at a slight increase in cpu usage. 812 813draw.c Added TEED prefix for #draw, subsequently #draw middle and 814 #draw center have been removed as they did the same and 815 were somewhat confusing terms. 816 817misc.c Added some #bell options, see #help bell. 818 #bell {flash|focus|margin|ring|volume} {argument} 819 820variable.c #format %X now will also take unicode characters as input. 821 #echo %X ┓ displays 2513 and #showme \u2513 displays ┓ 822 823path.c #path run no longer uses delays but uses its own timer system, 824 you can use #path stop to stop running, and if you enter 825 #path run again you'll continue where you stopped. 826 827trigger.c Named delays are now automatically converted to one shot 828 triggers. #undelay will use #untick if the argument begins 829 with a letter. 830 831mapper.c Changed #map destroy to #map destroy {area|world} {arg} 832 833files.c Added {READ ERROR} and {WRITE ERROR} events. 834 835trigger.c Added #line oneshot support to all triggers and variables. 836 837line.c Added #line oneshot to create oneshot triggers. Right now 838 only works for #ticker. 839 840line.c Added #line debug to execute given line in debug mode. 841 842substitute.c #config color is now taken into account when displaying 843 color codes, downgrading colors as needed. 844 845tables.c When using color names in highlights all lowercase color names 846 will be dark by default, while capitalized color names 847 will be light. So 'blue' is dark while 'Blue' is light. This 848 allows using 'b Blue' for a light blue background. 849 850draw.c Added the ability to prefix a draw option with a color name 851 or color code to draw colored lines and boxes. 852 853Aug 2019 2.01.91 854------------------------------------------------------------------------------ 855vt100.c Added %2 rows %3 cols arguments to the VT100 SCROLL REGION 856 event to increase ease of use. 857 858mapper.c Changed #map at to also take an exit for the location. 859 860data.c No longer saving or displaying the priority of triggers which 861 are set to the default priority. 862 863mapper.c Added #map map <rows> <cols> draw <square> to draw the map at 864 the given location. This is no real alternative for using #map 865 offset as #map offset allows mouse map events. 866 867draw.c Added unicode drawing options. 868 869line.c Added #line logmode {html|plain|raw} {argument} Allows you 870 to execute a command with a temporary logging mode. 871 872mapper.c Now drawing + and - for muds using nu dn eu ed exits. 873 874macro.c Added ^ support to macros to make a macro only trigger at the 875 start of input. If you want to macro a literal ^ use \^ at 876 the start of the line. It behaves very similar to the ~ for 877 color triggers. 878 879mapper.c Improved exit drawing in unicode mode. 880 881draw.c Added #draw command and #help file. 882 883mapper.c Added #map update option to force an update of the vtmap. Keep 884 in mind the vtmap will only update once every 0.1 seconds. 885 886screen.c Added #screen clear {split|top|bottom} to clear split lines. 887 888config.c Added #config {wordwrap {on|off|number} when a number is given 889 tintin will wrap at the given width, and will also report the 890 given width to MUDs over TELNET. 891 892config.c Added #config {telnet} {on|off|debug} which allows enabling or 893 disabling telnet support. The debug option is the same as 894 #config {debug telnet} on and will eventually replace it. To 895 disable debug mode use #config telnet on. 896 897help.c Added #help button 898 899button.c Added #button. 900 901Jul 2019 2.01.90 902------------------------------------------------------------------------------ 903mapper.c Added MAP FOLLOWED MAP event which triggers on map movement. 904 %0 = new vnum %1 = old vnum %2 = exit name. Keep in mind 905 that this event isn't triggered when using #map goto. 906 907config.c Added #config {PACKET PATCH {AUTO} option which currently 908 only enables to 0.1 seconds when #split is enabled. 909 910msdp.c Added MAP_ROOM_INFO msdp event. 911 912math.c Strings in #if and #math can now be defined using {string} 913 instead of "string". The quote syntax will remain valid. 914 915mapper.c Added #map offset <row> <col> <row> <col> to define a square 916 within which the vt map will be printed. 917 918screen.c Added #screen clear option which allows clearing the screen, 919 the scrolling region, or a <row> <col> <row> <col> square. 920 For all square operations you must define the top left and 921 bottom right corner. Negative numbers are allowed which 922 behave identical to #showme. 923 924mapper.c #map map now allows a very large range and when logging will 925 use the configured log mode. This allows generating a large 926 html map. 927 928mapper.c Improved the #map legend interface and made it easier to 929 update by using the index number. I haven't added special 930 legends for ascii and unicode graphic modes yet. 931 932buffer.c Added #buffer up 1 and #buffer down 1 to scroll the buffer up 933 or down by one line. Values of 2 and higher are allowed as 934 well with the maximum set at the screen size. 935 936msdp.c Added some SCREEN based MSDP events to #port. Renamed a few 937 #screen arguments / events to something I was happier with. 938 939chat.c Added #chat accept <buddy> [boost] option for faster file 940 transfer. The boost value must be between 1 and 1000. 941 942screen.c Added #screen get <top_row|bot_row|top_split|bot_split> <var> 943 944vt100.c Added VT100 SCROLL REGION event. 945 946main.c Added SYSTEM ERROR and CATCH SYSTEM ERROR events. 947 948mapper.c Added #map color symbol option. 949 950files.c Added accidental overwrite protection when trying to write 951 a command file to a .map file. Use {force} to force. It's 952 suggested to use .tin files for command files. 953 954mapper.c Added accidental overwrite protection when trying to save a 955 map to a .tin file. Can add the {force} argument to force 956 writing anyways. It's suggested to use .map for map files. 957 958mapper.c Made all map search options require a perfect match. To look 959 for a sub string one needs to use #map find {text%*} or 960 #map find {%*text%*} 961 962mapper.c Exits created in the global room should now work without 963 needing to set a special alias that performs a #map goto. 964 This also means that if you set the exit command on an exit 965 in the global room it ought to work. 966 967mccp.c Enabled MCCP3 for #port which allows two-way compression. 968 This should be useful for people who send a lot of data back 969 and forth. It uses TELNET option code 87. 970 971port.c Added initial telnet support to #port. This still needs some 972 more work to get MSDP working, and I'm also working on 973 the ability to use JSON syntax with MSDP event handling. 974 975telopt_server.c Enabled. 976 977parse.c Added a debug call for incorrect abbreviation checks. 978 979mapper.c Added invisible exit flag. It's intended to make exits 980 invisible. If you want to make hidden rooms invisible try 981 #map color hide <208> 982 983mapper.c Added up/down exit flag colors in unicodegraphics mode. 984 985screen.c Added some more screen stuff, see #help screen. 986 987parse.c Added experimental change where in command lookups a space 988 can be substituted with a _ character. For example 989 #config {COMMAND ECHO} ON equals #config COMMAND_ECHO ON. 990 991 If this change causes unforseen problems it'll likely be 992 reverted. 993 994telopt_client.c No longer sending proper telnet replies for echo due to 995 infinite loop problems on a few muds that improperly 996 handle telnet negotiations. 997 998mapper.c Improved void room handling in unicodegraphics mode. 999 1000prompt.c Using #prompt or #showme without a column argument will 1001 clear the line. 1002 1003main.c Improved signal handling. 1004 1005update.c The %2 value of TIME events now holds the day of the week 1006 instead of the week of the year. The value is between 0 and 6 1007 and specific events for each week day are possible. 1008 1009update.c The %3 value of TIME events holds the day of the month. The 1010 value is between 0 and 31 and specific events for a day of the 1011 month are now possible. 1012 1013main.c Updated system error handling. 1014 1015mapper.c Improved #map color command. 1016 1017mapper.c Further improved unicodegraphics mode. 1018 1019mapper.c Further improved blockgraphics mode. 1020 1021mapper.c Added #map color avoid 1022 1023mapper.c Added #map color hide 1024 1025prompt.c Changed #prompt to use the new {row} {col} input. 1026 1027mapper.c Changed the #map map command which now has the syntax: 1028 1029 #map map {rows} {cols} {append|write|list|variable} {arg} 1030 1031terminal.c Changed WINDOW RESIZE %0 to list rows, and %1 to list cols. 1032 1033event.c Changed all MOUSE events to %0=row %1=col %2=-row %3=-row 1034 1035*.c Currently there are two big problems that need to be addressed 1036 to continue smooth development. 1037 1038 1. In VT100 row 1 is the top line, while in tintin row 1 is 1039 the split line. 1040 2. In VT100 row, col (y, x) notation is used, while I've been 1041 favoring col, row (x, y) notation. 1042 1043 While this may seem like a minor issue, I'm utilizing VT100 1044 more often using more complex operations, and TinTin++ is 1045 currently pretty much mirrored in the way it behaves. This 1046 results in relatively simple math becoming weird unintuitive 1047 math, making already complex code even more complex, resulting 1048 in bugs and unreadable code that requires a lot of mental 1049 gymnastics to figure out. 1050 1051 Subsequently I decided on a major interface change that will 1052 result in several compatibility issues. 1053 1054 #split will stay the way it is. 1055 1056 #showme {text} will stay the same 1057 #showme {text} {0} will become invalid. 1058 #showme {text} {1} will print on the top line. 1059 #showme {text} {-1} will print on the bottom line / input 1060 line. 1061 #showme {text} {-2} will print on the default split line. 1062 1063 #prompt {text} {substitution} will stay the same and print 1064 on the default split line. 1065 #prompt {text} {substitution} {0} will become invalid. 1066 #prompt {test] {substitution} {1} will write to the top line. 1067 #prompt {text} {substitution} {-1} will write to the bottom 1068 line / input line. 1069 #prompt {text} {substitution} {-2} will write to the 2nd line 1070 from the bottom, which is the default split line. 1071 1072 All code that takes {col} {row} as an argument will be changed 1073 to {row} {col}. The main reason for this change is consistency, 1074 and because I've repeatedly swapped row and col in VT100 which 1075 can be a tricky bug to track down. 1076 1077session.c Added the 'ats' keyword to the session find routine to return 1078 the active tintin session. 1079 1080mapper.c Fixed the #map map {<width> x <height>} calculations. 1081 1082buffer.c When using #snoop on a session #showme and a few other things 1083 were not displayed. This should be fixed now. 1084 1085nest.c Added basic syntax highlighting for variables, only works 1086 when using #var {variable> 1087 1088tokenize.c Added basic syntax highlight for lists, only works when 1089 using #<list> {list} 1090 1091help.c Added TIME help file. 1092 1093tokenize.c Fixed a bug with nested #while commands. 1094 1095port.c Changed #event {PORT MESSAGE} to {PORT RECEIVED MESSAGE} 1096 which triggers when a message is received from a connection. 1097 1098 Added #event {PORT MESSAGE} and {PORT LOG MESSAGE} which 1099 trigger on internal messages. 1100 1101 All these can be prefixed with CATCH. 1102 1103variable.c Fixed two crash bugs in #format, it remains a somewhat 1104 vulnerable command, so you should never allow a 3rd party 1105 argument to set the format string of #format or #echo, though 1106 parsing 3rd party arguments as a #format/echo argument is safe. 1107 1108 Safest is to use #line ignore #showme {text} if you want to 1109 print text that is ignored by triggers. 1110 1111telopt_server.c Added a TELNET server for #port, it's not hooked up yet, 1112 but the code merge may have caused some telnet bugs. Please 1113 report any unusual telnet behavior. 1114 1115mapper.c Fixed some issues with #map legend, should be able to use it 1116 to change the legend now. 1117 1118buffer.c Fixed some more scrolling issues. 1119 1120README Updated the README file and added the NEWS and docs/syntax.txt 1121 files. The NEWS file primarily contains a list of changes that 1122 impact compatibility between versions. 1123 1124tel_client.c Fixed CHARSET REQUEST handling. 1125 1126buffer.c Fixed longstanding issue with the handling of long lines. 1127 1128 1129 1130 1131Mar 2019 2.01.8 1132------------------------------------------------------------------------------ 1133 1134update.c Added MAP UPDATED VTMAP event, triggers right after each 1135 vtmap redraw. 1136 1137config.c Added CHILD LOCK config option to disable tintin command 1138 input. This is useful for people who want to give third 1139 parties remote access to a tintin++ session. 1140 1141line.c Enabled the #line substitute arguments option which has a few 1142 limited usecases. 1143 1144main.c Added better #! hashbang support, with %0 in the PROGRAM START 1145 event holding all unrecognized launch arguments. %1 holds the 1146 1st argument (program name), %2 the 2nd argument, etc. 1147 1148data.c Added #INFO SYSTEM option, with #INFO SYSTEM SAVE saving the 1149 data to the info[SYSTEM] variable. Current variables 1150 supported are CLIENT_NAME and CLIENT_VERSION. 1151 1152event.c Added %4 and %5 arguments to mouse click events which hold the 1153 word and line that was clicked. Under construction. 1154 1155net.c Slightly improved traditional prompt handling, but the code 1156 will need a proper update to work properly. 1157 1158parse.c Added UNKNOWN COMMAND event, triggers on #jklfdjl and other 1159 non-existent commands. 1160 1161screen.c Added the #screen command, still under development. 1162 1163telopt.c Added VT100 OSC en CATCH VT100 OSC events. 1164 1165port.c Fixed an issue with #port and #chat on Mac OS X. 1166 1167mapper.c Added #map global which allow setting the vnum of a room that 1168 contains exits for global transportation commands, like for 1169 example the recall location. 1170 1171mapper.c #added #map roomflag noglobal to indicate rooms that block 1172 global transportation commands, like norecall rooms. 1173 1174input.c Added CATCH RECEIVED INPUT event. 1175 Added RECEIVED KEYPRESS event. 1176 Added CATCH RECEIVED KEYPRESS event. 1177 1178mapper.c Added support for up/down displaying in blockgraphics mode. 1179 1180mapper.c Added #map flag direction to enable/disable the showing of the 1181 direction arrow in the mapper. Also includes a minor 1182 modification in the legend. 1183 1184utf8.c Added KOI-8 to UTF-8 conversion support, which is enabled with 1185 #config charset koi2utf 1186 1187mapper.c Added #map flag blockgraphics mode, still needs some more 1188 work. 1189 1190variable.c Updated %a to take a UTF-8 sequence and print the 1191 corresponding 21 bit decimal unicode value. This requires for 1192 #config CHARSET to be set to an UTF-8 mode to work. 1193 1194 Updated %A to take a 32 bit decimal value and print the 1195 corresponding unicode UTF-8 sequence. This requires for 1196 #config CHARSET to be set to an UTF-8 mode to work. 1197 1198 Added %x which takes a hexadecimal value and prints the 1199 corresponding unicode UTF-8 sequence. 1200 1201 Added %X which convers a 64 bit unsigned decimal value to 1202 a 64 bit hexadecimal value. 1203 1204 Added %D which converts a 64 bit hexadecimal value to 1205 a 64 bit unsigned decimal value. 1206 1207math.c Fixed an issue with 63-64 bit math. 1208 1209mapper.c Added #map flag unicodegraphics mode. 1210 1211utf8.c Added #config charset FANSI option that maps code page 437 to 1212 UTF-8. Requires an UTF-8 terminal to work and you can try out 1213 fansi art at 8bit.fansi.org 4201. 1214 1215main.c The -s startup option will start tt++ in screen reader mode. 1216 1217mapper.c Added support for direction displaying in mudfont mode. 1218 1219utf8.c UTF-8 character detection should be synched with xterm. 1220 1221mapper.c #map legend is now completely different and supports various 1222 default legends to choose from, namely: 1223 1224 [ASCII NESW ] [ 1] [ 32] 1225 [UNICODE NESW ] [ 1] [ 32] 1226 [UNICODE NESW LINE ] [ 1] [ 16] 1227 [UNICODE NESW MISC ] [ 17] [ 24] 1228 [UNICODE NESW DIRS ] [ 25] [ 32] 1229 [UNICODE NESW TUBE ] [ 1] [ 32] 1230 [MUDFONT BRAILLE TUBE] [ 33] [164] 1231 [MUDFONT BRAILLE LINE] [ 33] [164] 1232 [MUDFONT PRIVATE ] [ 33] [164] 1233 [MUDFONT CURVED ] [161] [164] 1234 [RESET ] [ 1] [164] 1235 1236 The legend exits of 164 characters and when setting for 1237 example UNICODE NESW DIRS you're only redefining 8 characters 1238 from position 17 to position 24. 1239 1240prompt.c #prompt and #showme now take a 3rd argument that sets the 1241 column number at which the text is printed. The column number 1242 must be between 1 and the maximum width of the screen. If a 1243 negative number is provided the distance is measured from the 1244 right. The line isn't automatically cleared when using 1245 #showme with a column argument. 1246 1247input.c Added support for fullwidth UTF-8 characters. This won't be 1248 working perfectly until unicode is better standardized. 1249 1250config.c Added #config CHARSET BIG2UTF. When enabled text you receive 1251 will be translated from BIG-5 to UTF-8, and data you send will 1252 be translated from UTF-8 to BIG-5. This should allow someone 1253 to play a BIG-5 mud using an UTF-8 capable terminal. 1254 1255path.c Added #path describe to give a basic description of the 1256 mapped path. Might be of interesting for anyone using a 1257 screen reader. 1258 1259utf8.c Added UTF-8 character width detection. 1260 1261mapper.c When #map list is used with a variable the variable is now 1262 properly cleared. In addition #map list will report the 1263 relative x y and z coordinates of the found rooms which can 1264 be used with #map jump. This update changes the table 1265 structure of the variable returned by #map list. 1266 1267mapper.c Added #map legend reset option and fixed legend saving. 1268 1269mapper.c Added new mudfont mode based on the braille unicode block. 1270 1271mapper.c Changed the RIVER map room flag to CURVED and added support 1272 for it in simple and mudfont mode. 1273 1274mapper.c Added click events that trigger when clicking a room on the 1275 vt map reporting the room vnum. 1276 1277session.c More properly terminating zombie processes after using #run. 1278 1279telopt.c Added support for the CHARSET telnet option. Currently 1280 supporting UTF-8, BIG-5, and FANSI. 1281 1282path.c Added #path save <length|position> <variable> options. 1283 1284 1285Feb 2019 1286------------------------------------------------------------------------------ 1287 There was a question regarding copyright and licensing 1288 recently so I made some changes and I'm writing this entry to 1289 clarify a few things. 1290 1291 1992 Peter Joachim Unold released TINTIN III with the implicit 1292 right to create derived works and the request for derived 1293 work to rename the client and clearly state the author. On 1294 usenet Peter Unold later confirmed that he considered his 1295 source code release to be public domain. 1296 1297 1995 Bill Reiss released TinTin++ 1.5 without a copyright notice, 1298 two mentions of authorship, and the implicit understanding 1299 that the work is considered public domain with the exception 1300 of the tintin15.txt manual which is explicitly copyrighted to 1301 Joann Ellsworth. It is also made clear that derived works 1302 should not use the name TinTin++. 1303 1304 2001 David Chan released TinTin++ 1.85 without a copyright notice 1305 just like all previous TinTin++ releases and 4 mentions of 1306 having made changes in the source code. 1307 1308 2001 David Chan and Robert Ellsworth released TinTin++ 1.86 under 1309 the GPL 2 or later with the 2002 copyright assigned to David 1310 Chan, Robert Ellsworth, and a reference to the CREDITS file 1311 on July 12th, 2001. 1312 1313 David Chan would have been unable to do so legally without the 1314 explicit permission of Bill Reiss and several other notable 1315 contributors unless TinTin++ 1.85 which was released without 1316 a copyright notice or license was considered by all parties to 1317 be public domain software. 1318 1319 Subsequently David Chan nor Robert Ellsworth could 1320 retroactively return copyright to previous authors. However, 1321 David Chan and Robert Ellsworth could consider themselves, 1322 and they in fact did, the copyright holders of the public 1323 domain TinTin++ 1.85 derived GPL 2 licensed software they 1324 titled TinTin++ 1.86. 1325 1326 The reason they did this can only be guessed at, but I assume 1327 they were tired of hosting, developing, and answering 1328 questions about TinTin++. The easiest way to get the source 1329 code permanently hosted was by debianizing it, which required 1330 licensing the code under GPL 2, which could only be done by the 1331 copyright holder. 1332 1333 2001 The TinTin++ 1.86 package was debianized by Jordi Mallach 1334 <jordi@debian.org> on 22 Aug 2001. 1335 1336 2001 Robert Ellsworth, aka Joann Ellsworth, as the copyright holder 1337 licensed the tintin15.txt manual under the GPL on 28 Aug 2001. 1338 1339 2004 Igor van den Hoven received permission from Bill Reiss to 1340 release TinTin++ derived code under the name TinTin++. 1341 1342 2004 Igor van den Hoven released TinTin++ 1.90 on March 13 under 1343 the GPL 2 or later with the 2004 copyright notice referring 1344 to the CREDITS file. Due to the inclusion of the tintin15.txt 1345 file the code could only be legally released under the GPL 1346 2 or later. 1347 1348 Version 1.90 featured a new mathematics engine and regular 1349 expression interpreter, telnet negotations, a scroll back 1350 buffer, enhanced VT102 interpretation, a more standardized 1351 TINTIN scripting language, a nifty string formatter, internal 1352 color manipulation, and a back to basics command structure. 1353 1354 TinTin++ 1.90 contained no source code from TinTin++ 1.86 and 1355 over 50% of the 1.85 code had been deleted or rewritten. 1356 1357 2008 Igor van den Hoven released TinTin++ 1.98.3 under the GPL 2 1358 or later with the copyrighted tintin15.txt manual removed. 1359 1360 At this point 90% of the code was rewritten and what remained 1361 was primarily heavily modified code originally written by 1362 Peter Unold and Bill Reiss. 1363 1364 2019 Igor van den Hoven released TinTin++ 2.01.8 under the GPL 3 1365 or later. The copyright of over 99% of the source code is 1366 held by Igor van den Hoven with minimal contributions from 1367 others, making him the sole copyright holder. 1368 1369 TinTin++, as of version 2.01.8, may not be distributed under 1370 GPL 2, and can only be distributed under GPL 3 or later. The 1371 reason for this is the exploitation of a serious loophole in 1372 the GPL 2 license. 1373 1374 The TinTin++ software as of version 1.87 is NOT public domain, 1375 as the GPL 2 & 3 licenses explicitly require a legal copyright 1376 holder in order to legally enforce the license. Nor do I 1377 desire to relinquish my rights to do as I please with software 1378 that I've worked on for close to 20 years. 1379 1380 If anything is unclear feel free to contact me. 1381 1382Feb 2019 2.01.7 1383------------------------------------------------------------------------------ 1384 1385class.c Added proper class nesting. When closing the active class, 1386 the last active class is activated. This change will cause 1387 trouble for scripts that don't properly close classes. 1388 1389class.c Added #class {class} SIZE {variable} option to store the size 1390 of a class in a given variable. 1391 1392event.c Added the SHORT-CLICKED mouse events. It triggers when the 1393 time between pressing and releasing the mouse button is 1394 less than 0.5 seconds. The event is not triggered when 1395 double or triple clicks occure, but will trigger on the 1396 first click of a double click, just like a triple click 1397 event will be preceded by a double click event. 1398 1399event.c All mouse events now report the inverse x and y position 1400 using the %2 and %3 arguments. 1401 1402event.c Added the LONG-CLICKED mouse event. It triggers when the time 1403 between pressing and releasing the mouse button is greater 1404 than 0.5 seconds. 1405 1406variable.c Added better support for wrapping escaped characters with 1407 #format %w. 1408 1409path.c Added #path create, destroy, goto, move start, stop, swap, undo 1410 which are somewhat document in #help path. 1411 1412 You can now have a position on a path, which is displayed 1413 with #path map. This allows using #path move backward when a 1414 #path walk forward is interrupted. 1415 1416 1417Jan 2019 2.01.6 1418------------------------------------------------------------------------------ 1419 1420tinexp.c Using $$variable in #action triggers is no longer valid. Use 1421 $variable instead. If the variable needs to be substituted 1422 right away use: 1423 1424 #line sub var {#action {$var} {#loop 1 3 cnt #showme $$cnt}} 1425 1426event.c Added {DOUBLE-CLICKED} and {TRIPLE-CLICKED} mouse events 1427 these events trigger on 2 and 3 clicks within 0.5 seconds. 1428 A triple click will reset the mouse state. 1429 1430event.c Added {MOVED }, {PRESSED }, {RELEASED } and {SCROLLED } mouse 1431 events. Use #INFO EVENT ON to see the full events. The row 1432 position is reported using the same method as with #prompt. 1433 1434 For each click three events are generated, one generic one, 1435 one with the row position as measured from the top, and one 1436 with the row position as measured from the bottom. 1437 1438 The MOVED event only triggers when the mouse is moved while a 1439 button is pressed. 1440 1441 %0 contains the column and %1 the row. 1442 1443config.c Added MOUSE TRACKING config option which enables mouse 1444 tracking events. While mouse tracking is 1445 enabled shift needs to be hold in order to select text with 1446 the mouse if you want to copy and paste text. 1447 1448cursor.c Added WINDOW FOCUS IN and WINDOW FOCUS OUT events. 1449 1450tick.c Fixed micro delays not getting properly sorted. 1451 1452event.c Added #info {events} {on} option to display messages when 1453 events are thrown. As this can get quite spammy these 1454 messages can be gagged as well. 1455 1456gag.c Added #debug and #info messages for gags. 1457 1458telopt.c Renamed all telnet events that prevent the execution of the 1459 default telnet handling code to CATCH IAC <TELNET CODE> adding 1460 several events that did not yet exist. 1461 1462 Telnet events without default handling code like MSDP and GMCP 1463 were not renamed. 1464 1465telopt.c Added better telnet loop protection for echo negotiations. 1466 1467scan.c Changed #scan syntax to #scan {ABORT|CSV|TSV|TXT} {filename} 1468 1469 CSV reads a comma separated file which triggers the 1470 SCAN CSV HEADER (first line) and SCAN CSV LINE (subsequent 1471 lines) events. Values containing spaces require quotes, and 1472 two quotes "" are required to escape a quote. 1473 1474 TSV reads a tab separated file which triggers the 1475 SCAN TSV HEADER and SCAN TSV LINE events. 1476 1477 TXT is an updated and faster version of the old #scan. 1478 1479 The old #scan syntax is no longer supported. 1480 1481config.c Changed the random number generator to 64 bit with each 1482 session having its own unique seed that can be set with 1483 #config {random seed}. 1484 1485 1486Jan 2018 2.01.5 1487------------------------------------------------------------------------------ 1488 1489math.c Fixed bug with floating point math. 1490 1491line.c Added #line verbatim option. 1492 1493cursor.c Added the #cursor brace open, and #cursor brace close 1494 commands. This to easily insert the { and } characters from 1495 within a macro, which currently is rather complicated. 1496 1497tinexp.c Added support for <Fxxxxxx> and <Bxxxxxx> 24 bit color codes. 1498 F stands for foreground, B for background, xxxxxx is a 1499 hexadecimal RGB value. The terminal must support truecolor 1500 for these to work. 1501 1502session.c Added on|off option to #snoop. 1503 1504data.c Added #info {list} {LIST|SAVE} option to list the content of a 1505 list or save it to a variable. 1506 1507tokenize.c Improved trailing space parsing. 1508 1509mapper.c Added exit weights. 1510 1511mapper.c Added #map get all <var> option. 1512 1513main.c Added the -a <argument> startup option, which is passed to the 1514 %2 variable of the PROGRAM start event. 1515 1516buffer.c Added #buffer lock {on|off} option. 1517 1518session.c Fixed #port session close being shown as a time out. 1519 1520tinexp.c Added \UXXXXXX escape code which takes 6 hexedecimal digits. 1521 1522tinexp.c Added \uXXXX escape code, XXXX must be a 4 digit hexadecimal 1523 unicode index, which is translated to a UTF-8 sequence. 1524 1525tinexp.c @ $ * and & characters send from the server are only escaped if 1526 the key matches an existing variable. Keep in mind that ${ *{ 1527 and &{ are always escaped. 1528 1529 1530tinexp.c Added support for <Fxxx> and <Bxxx> 12 bit color codes. F 1531 stands for foreground, B for background, xxx is hexadecimal RGB 1532 value. For example <F0F0> will print in bright green. The 1533 terminal must support truecolor for these to work. 1534 1535 To use 24 bit truecolor codes use \e[38;2;R;G;Bm where R G B 1536 are decimal values between 0 and 255. \e[48;2;R;G;Bm will print 1537 background colors. 1538 1539path.c Added support for multiple arguments to #unpathdir. 1540 1541line.c #line log {filename} {text} was extremely slow, at least on 1542 cygwin, because it was opening and closing a file descriptor 1543 for each log call. Multiple logs to the same file are much 1544 faster now, with each session having its own dedicated file 1545 descriptor to speed up consecutive writes to the same log 1546 file. 1547 1548config.c Added config RANDOM SEED option to set a custom seed for the 1549 random number generator. Useful for machine learning scripts 1550 and some other obscure stuff. 1551 1552system.c Added popen failure check for #script. 1553 1554mapper.c Fixed issue with #map undo not properly handling void rooms. 1555 1556nest.c Fixed memory issue causing a crash on very large variables. 1557 1558config.c Added #config INHERITANCE option. Default is on, set to off 1559 to prevent triggers from getting inherited. Configurations 1560 are still inherited from the startup session. 1561 1562config.c Added #config CHARSET AUTO option. TinTin++ will try to 1563 automatically detect UTF-8 and BIG5 encoding. 1564 1565session.c SESSION CREATED now triggers after the filename provided with 1566 #session, #ssl, #run, or #port has been read. 1567 1568parse.c Removed dot notation support for variables. #var bla.bli blo 1569 is no longer valid, nor is $bla.bli. The code didn't add any 1570 functionality while it was causing all kinds of issues. Sorry 1571 for the inconvenience, not one of my brightest ideas. 1572 1573 1574telopt.c Updated MTTS to report SCREEN READER setting. 1575 1576config.c Added SCREEN READER config option. 1577 1578telopt.c Updated MTTS to report the ANSI, 256, and TRUE color setting. 1579 1580config.c Replaced 256 COLOR config with COLOR MODE config option, 1581 options are AUTO, NONE, ANSI, 256, or TRUE. 1582 1583vt102.c Added truecolor COLOR PATCH support. Not well tested so far. 1584 1585log.c Added truecolor html logging. 1586 1587input.c No longer spawning blank lines with #config {command echo} 1588 off, if you want the old behavior you can set your command 1589 color to <008> or <aaa>. 1590 1591tinexp.c Added %! as a regular expression option to prevent the auto 1592 capturing of a match. For example %!*, %!w, %!d etc. 1593 1594 %!{ } can be used to the same effect to embed a regular 1595 expression without automatically adding paranthesis. 1596 1597tinexp.c Added an exception so %*{text} is treated as a regular 1598 expression instead of a variable. As of the last version 1599 *{text} is a valid variable. 1600 1601variable.c Added the %H #format option to generate a 32 bit hash for the 1602 given string. 1603 1604substitute.c Fixed argument substitution problem. 1605 1606main.c Can use #end {\} to terminate tintin silently. 1607 1608system.c Added #scan abort option 1609 1610 1611Oct 2017 2.01.4 1612-------------------------------------------------------------------------------- 1613 1614main.c Added proper greeting handling for narrow terminals, mainly for 1615 people using tt++ on an android phone. 1616 1617variable.c Added proper \ handling in string length calculations. 1618 1619variable.c #unvariable takes additional arguments to unvar several 1620 variables at once. 1621 1622tinexp.c Added support for *{variable} to show variable/table keys. This 1623 is useful when low level data processing is needed. 1624 1625 For example, *{+1} shows the key of the first variable. 1626 1627list.c Added #list {var} simplify {variable} option which saves a 1628 list (which internally is a table) as a semi-colon separated 1629 list to the provided destination variable. 1630 {{1}{bli}{2}{bla}{3}{blo}} becomes {bli;bla;blo} 1631 1632 1633May 2017 2.01.3 1634-------------------------------------------------------------------------------- 1635 1636mapper.c Added #map legend support to assign custom characters for 1637 the #map flag MUD FONT display mode. By default they're set 1638 to map to the unicode private use area. 1639 1640mapper.c By default an UTF-8 #map legend is created for those who do 1641 not use ASCII graphics. The ANSI legend was pretty much 1642 unusable and most terminals are supporting UTF-8 now. Windows 1643 does not support all box drawing characters, hopefully this 1644 will be fixed in the future. 1645 1646mapper.c Removed support for the vtgraphics drawing mode which worked 1647 on very few terminals. 1648 1649utils.c Verbosity is automatically enabled for debug mode to avoid 1650 logging inconsistencies. 1651 1652port.c Added #port command, similar to netcat. 1653 1654chat.c #chat prefix works now 1655 1656math.c Better #math debug through #debug VARIABLE on 1657 1658mapper.c Added map exit <dir> dir <number> option. 1659 1660action.c Fixed action crash bug that slipped in 1661 1662telopt.c Added telnet events for IAC GA and IAC EOR 1663 1664 1665Jun 2015 2.01.2 1666-------------------------------------------------------------------------------- 1667 1668mapper.c Added map <radius> <variable name> {v} option to save the map 1669 output to a variable. 1670 1671log.c html log files now correctly set the charset to UTF-8 or big5 1672 if applicable. 1673 1674tokenize.c Added support for local variables with the #LOCAL command. Most 1675 commands that manipulate variables will use a local variable 1676 if it has been declared. 1677 1678utils.c Fixed crash bug on substitutions on system messages. 1679 1680session.c Showing all connect retry attempts and seconds left. 1681 1682session.c Any manual input while connecting will cancel connect retry. 1683 1684main.c Can create macros for ctrl-d and ctrl-z again. 1685 1686mapper.c Added #map color background option to set a background color 1687 for the map display. 1688 1689variable.c Added optional width argument to #format %w. Also added UTF-8 1690 support to %w. 1691 1692variable.c Attempt to fix %p crash bug on OS X. 1693 1694 Fixed compilation issue for OS X. 1695 1696 1697Jan 2014 2.01.1 1698-------------------------------------------------------------------------------- 1699 1700chat.c Added CHAT MESSAGE event, %0 contains the chat color and prefix, 1701 %1 omits chat color and prefix. 1702 1703chat.c Added #chat prefix option. 1704 1705mapper.c Can now provide multiple flags at once when using 1706 #map roomflag and #map insert. 1707 1708line.c Added #line quiet option. 1709 1710cursor.c Fixed tab bug with multi-word tabs. 1711 1712event.c Fixed bug with events defined in multiple sessions. 1713 1714tinexp.c Added @<session name>{<substitution>} option to perform a 1715 function-like substitution in another session and retreive 1716 the result. Primarily useful for getting variables. 1717 1718highlight.c Added no-blink no-underscore and no-reverse #highlight options. 1719 1720highlight.c Added option to use escape codes in the #highlight color field. 1721 1722class.c Added #class {<class>} list {<list>} option. 1723 1724map.c Added #map list {roomflag} option. 1725 1726list.c Fixed bug with using #list clear on a nested variable. 1727 1728substitute.c Added patch by Nya to properly handle colored substitutions. 1729 1730math.c Added // operator to calculate sqrt // 2 or cbrt // 3 1731 1732math.c Added ** operator to calculate power 1733 1734tinexp.c Added IGNORE options to variables and functions. 1735 1736main.c The command history is automatically saved again. 1737 1738ssl.c Added SSL support based on KBTin code by Adam Borowski. 1739 1740tinex.c $ @ and & are now escaped when received as part of an action for 1741 added security. 1742 1743session.c Added SESSION CREATED event. 1744 1745parse.c Fixed command echoing when executing commands in another session. 1746 1747Mar 2013 2.01.0 1748-------------------------------------------------------------------------------- 1749 1750session.c #session takes a filename as an additional argument, if the 1751 session succesfully connects the file will be read. 1752 1753variable.c Fixed #echo {%f} {5 / 3} handling. 1754 1755cursor.c Added #cursor get and #cursor set options. 1756 1757parse.c Added support for nesting using the . argument. 1758 1759mapper.c Added map_search_compile option, increasing search speed. 1760 1761list.c Added #list TOKENIZE option. 1762 1763cursor.c Fixed the cursor PASTE BUFFER option. 1764 1765event.c Added the VARIABLE UPDATE <VAR> event. 1766 1767cursor.c Added stripping of semi-colons when auto tabbing. 1768 1769configure.in Better error handling by Slysven. 1770 1771Mar 2012 2.00.9 1772-------------------------------------------------------------------------------- 1773 1774line.c Added a #line strip option to strip color and escape codes. 1775 1776mapper.c Fixed the handling of colored symbols in the ascii map. 1777 1778input.c RECEIVED INPUT now triggers before input is parsed. 1779 1780mapper.c Fixed #map undo handling for #map insert. 1781 1782nest.c Fixed crash when using #var a[b]c x 1783 1784tokenize.c Fixed crash when using #case outside a #switch. 1785 1786cursor.c Added stripping of tailing dots and commas when auto tabbing. 1787 1788variables.c #format %A now properly handles BIG5 and UTF-8. 1789 1790session.c Added SESSION TIMED OUT event. 1791 1792variable.c Fixed substitution problem with #unvariable. 1793 1794mapper.c Added support for a {variable} argument to #map list to store 1795 the returned data into a variable. Using {roomname} and 1796 other keywords from #map set will work as well. 1797 1798mapper.c Added #map exit <dir> save to store exit data in a variable. 1799 1800mapper.c Added basic color compression support. 1801 1802mapper.c Fixed the #map legend display in vtgraphics mode. 1803 1804mapper.c Added automatic initialization of a UTF-8 based legend when 1805 creating a map with #config CHARSET set to UTF-8. 1806 1807mapper.c Fixed unnecessary redrawing of the VT map. 1808 1809list.c Now properly handles nested arguments. 1810 1811telopt.c Disabled telnet handling when using #run. 1812 1813mapper.c Added better UTF-8 handling for room symbols. 1814 1815net.c Added the RECEIVED PROMPT event. 1816 1817variable.c Fixed a bug in #format with left aligning meta text. 1818 1819mapper.c Fixed a bug with path finding related to weighted rooms. 1820 1821mapper.c Added #map flag symbolgraphics option to display the room symbol 1822 instead of a drawing symbol when in non asciigrahpics mode. 1823 1824mapper.c Added #map color here option to set the color of the current 1825 location. 1826 1827mapper.c Fixed a path finding issue related to the avoid flag. 1828 1829 1830Sep 2011 2.00.8 1831-------------------------------------------------------------------------------- 1832 1833main.c No more advertisements. 1834 1835mapper.c Back to void rooms only being allowed two exits, as handling 1836 multi-exit void rooms adds too much complexity. 1837 1838mapper.c Updated the fill_map routine to use breadth-first initialization 1839 which should significantly improve execution times. 1840 1841prompt.c Added proper UTF-8 string length checking for prompt drawing. 1842 1843mapper.c Room names are no longer automatically set on creation. 1844 1845mapper.c Added the #map vnum command to change the current vnum. 1846 1847mapper.c #map link now requires the 'both' argument for a two-way exit 1848 to be created. 1849 1850variable.c Added support to #format for %f to print floating point numbers. 1851 1852variable.c Fixed color spacing bug in #format's %s handling. 1853 1854mapper.c Added terrain as a searchable option to #map list, goto, find, 1855 and run. 1856 1857mapper.c Added roomweight to the #map get and #map set options. By 1858 default the weight of a room is set to 1.0 and can be anywhere 1859 from 0.001 to 1000. The path finder will favor rooms with a low 1860 weight. 1861 1862mapper.c Made the layout of #map info more aesthetically pleasing and 1863 added the listing of entrances. 1864 1865substitute.c Fixed bug where functions could overwrite the original 1866 substitution's arguments. 1867 1868highlight.c Added support for xterm 256 color names, dark azure, dark ebony, 1869 dark jade, dark lime, dark orange, dark tan, dark silver, dark 1870 violet, light azure, light ebony, light jade, light lime, light 1871 orange, light tan, light silver, light violet. 1872 1873variables.c Added the %A #format option which prints the corresponding ASCII 1874 value of the given character. Useful for low level string 1875 handling. 1876 1877 1878Apr 2011 2.00.7 1879-------------------------------------------------------------------------------- 1880 1881main.c Added -s option to launch tt++ with a custom seed, undocumented 1882 till I get to think it over. 1883 1884math.c Improvements to #switch. 1885 1886telopt.c Added basic low level VT100 stripping for answer back codes. 1887 1888telopt.c Added MSDP array support. 1889 1890mapper.c Added a set and get option to #map exit that stores and 1891 retrieves from a data field. 1892 1893mapper.c Added the terrain and data fields to #map set and #map get. The 1894 data field is intended to contain a table, eliminating the need 1895 for future extensions. 1896 1897system.c When using #run followed by #zap the created child process will 1898 be properly killed instead of left to hang as a zombie process. 1899 1900tick.c When setting a delay the final delay time is echoed. 1901 1902event.c Added some extra security to event triggers. 1903 1904telopt.c Added MTTS support. On a third TTYPE request MTTS will be 1905 reported followed by a bitvector that indicates whether ANSI, 1906 VT100, UTF-8, and 256 colors are enabled. The UTF-8 and 256 1907 color settings can be configured by the user. VT100 is reported 1908 as disabled if #split mode is enabled - this because the split 1909 screen mode needs to be disabled for server side VT100 1910 interfaces to work. 1911 1912system.c Added some extra security to the #script command. 1913 1914system.c Changed the #script command to behave like a two argument 1915 command in preperation of removing the rather awkward 1916 single argument support. 1917 1918line.c Added #line ignore option to execute a command without 1919 checking any triggers. 1920 1921config.c Added a 256 COLOR option. When called with auto it'll guess at 1922 the terminal's 256 color capabilities. 1923 1924variable.c When setting a variable the final variable definition is echoed. 1925 1926variable.c Added support for BIG5 and UTF8 string formatting. 1927 1928cursor.c Added support for BIG5 and UTF8 input handling. 1929 1930config.c Added session based BIG5 and UTF8 #config CHARSET option. 1931 1932substitute.c Fixed word boundary matching for substitutions. 1933 1934highlight.c Fixed word boundary matching for highlights. 1935 1936nest.c Math is no longer performed on table keys, mainly to reduce 1937 annoying false positives, and because the behavior can be 1938 scripted with math functions. Math is still performed when 1939 looking up an index. 1940 1941path.c Renamed #path map to #path show, #path map still works, but it 1942 doesn't properly describe what the command does. 1943 1944path.c Added #path unzip option that'll load a speedwalk. 1945 1946line.c #line logverbatim is now fully verbatim. 1947 1948log.c Added a #log off option. #log append and overwrite can now be 1949 called while logging is already enabled. 1950 1951 1952Jan 2011 2.00.6 1953-------------------------------------------------------------------------------- 1954 1955buffer.c Added better multi-line scroll back handling when word wrap is 1956 disabled. 1957 1958telopt.c Braces are now properly converted in raw gmcp data. 1959 1960highlight.c Fixed a bug causing only the first highlight on a line to 1961 trigger. 1962 1963line.c Added a #line {verbose} {<commands>} option which forces 1964 verbosity on the given commands. 1965 1966buffer.c The first match for #buffer find is now 1 instead of 0. 1967 1968buffer.c Added support for negative page numbers, causing #grep to search 1969 from the beginning to the end of the scroll back buffer. The 1970 first page is now page 1 instead of page 0. 1971 1972buffer.c Added a NULL check to prevent possible crashes, not ideal as it 1973 hides an underlying bug. 1974 1975net.c Added the RECEIVED OUTPUT event with %0 containing the received 1976 output from the server. Can be used to create multi-line 1977 triggers, though it wouldn't be very efficient. 1978 1979main.c No longer enabling DECCKM on startup so keypad mode works 1980 correctly with MinTTY, it should also result in more reliable 1981 cross-terminal behavior. This might change the sequence of key 1982 presses on some systems, so remap macros that stop working. 1983 1984mapper.c Added #map resize <size> option to increase the maximum number 1985 of rooms. 1986 1987mapper.c Added #map get worldsize option. 1988 1989mapper.c Added #map get worldflags option and fixed some displaying issues 1990 in the #map exit command. 1991 1992update.c Added several time events, YEAR, MONTH, WEEK, DAY, HOUR, MINUTE, 1993 SECOND, DATE mm-dd, DATE mm-dd hh:mm, TIME hh:mm, TIME hh:mm:ss. 1994 1995 Events like YEAR 2012, MONTH 04, HOUR 13, are valid as well. 1996 1997 %0 to %6 hold year, month, week, day, hour, minute, and second 1998 for each event. 1999 2000math.c Added support for automatic dd:hh:mm:ss time to second 2001 conversion. For example, #math test 1:12:32:17 would store 2002 131537 in test. #delay 10:00 #bell would ring the terminal bell 2003 after 10 minutes. This change will effect associative arrays 2004 consisting of numbers and colons. 2005 2006tinexp.c Updated #replace to support regular expressions. Like with the 2007 #regex command the &1..&99 arguments can be used. 2008 2009 2010Oct 2010 2.00.5 2011-------------------------------------------------------------------------------- 2012 2013session.c Fixed split settings not getting properly inherited from the 2014 startup session. 2015 2016advertise.c Updated with 2011 sponsors. 2017 2018system.c do_script() and do_system() now call refresh_terminal(), this 2019 due to php calls messing up the terminal settings. 2020 2021terminal.c Added the refresh_terminal() function which will reset the 2022 terminal settings to the tintin default. 2023 2024mapper.c Fixed the MAP EXIT ROOM event, it was reporting the next room 2025 rather than the current room for %0. %1 now holds the new room, 2026 and MAP ENTER ROOM will hold the old room in %1. 2027 2028mapper.c Added the option to make vnum specific events, like MAP EXIT ROOM 2029 42 or MAP ENTER ROOM 27. 2030 2031vt102.c Fixed bug in the VT102 state handler. 2032 2033mapper.c Added the option to provide a vnum for #map delete. 2034 2035tokenize.c Fixed a bug with the verbose state being lost when starting a 2036 new session using an alias. 2037 2038tinexp.c Fixed a bug with embedded variables not getting substituted when 2039 used in nested variables. 2040 2041 2042Aug 2010 2.00.4 2043-------------------------------------------------------------------------------- 2044 2045tokenize.c Added a better verbatim and verbosity handler to more 2046 generically deal with aliases and input triggered events. 2047 2048mapper.c Several mapper messages are no longer displayed when used in 2049 scripts. 2050 2051vt102.c Added proper \e[0;0r VT100 handling. 2052 2053telopt.c Added IAC DONT TTYPE handling, allowing servers to reset the 2054 TTYPE negotiation state. 2055 2056telopt.c Added support for cycling through terminal types. On the first 2057 TTYPE request TINTIN++ is reported, on the second request the 2058 TERM environment variable is reported. 2059 2060misc.c #zap now takes an optional argument to zap a specific session. 2061 2062text.c When UTF8 is defined in tintin.h UTF8 characters should get 2063 wordwrapped correctly. 2064 2065telopt.c Added support for module like MSDP events. 2066 2067mapper.c Added #map uninsert <direction> command which does the exact 2068 opposite of the insert command. 2069 2070mapper.c Added #map at <location> <command> command which executes the 2071 given commands at the given location. 2072 2073variable.c Allowing math in #format %t time seeds. 2074 2075path.c Fixed #path zip command. 2076 2077prompt.c Added better #prompt {line} {substitution} {0} support to print 2078 a mud prompt and pending input on the 0 line. 2079 2080mapper.c Added #map map 80x20 <filename> {a} option to log in append 2081 mode, by default an overwrite is performed. 2082 2083path.c Added the option to use #path load {n;e;s;w;u;d} 2084 2085path.c When using #path run {delay} you can remove pending run commands 2086 (fairly) safely using: #undelay PATH %d 2087 This will also work for #map run {location} {delay} 2088 2089 2090Jul 2010 2.00.3 2091-------------------------------------------------------------------------------- 2092 2093mapper.c When path finding the path will be highlighted on the map. 2094 2095telopt.c Added support for GMCP events and JSON to TINTIN conversion. 2096 2097mapper.c Merged the #map exit and #map exitdir into the #map exit command, 2098 adding options for COMMAND, DIRECTION, FLAG, NAME, and VNUM. 2099 2100mapper.c Added support for exit flags, no actual exit flags have been 2101 implemented yet. 2102 2103mapper.c Added #map goto {vnum} {dig} option to have goto dig a room 2104 if the room does not exist. 2105 2106mapper.c Added #map dig {dir} {<vnum>} option to dig an exit to the 2107 specified vnum. 2108 2109mapper.c Added NOFOLLOW flag support to stop auto following of the 2110 mapper. 2111 2112nest.c Fixed freeze bug caused by using a semi-colon between 2113 associative array elements. 2114 2115variables.c Statements like %+10s now ignore colors. 2116 2117variable.c Escapes are now handled correctly by %L in #format. 2118 2119input.c Fixed an issue in echo_command causing broken packets to 2120 be echoed without triggering any actions or events. 2121 2122mapper.c When setting an exit command it will work like an alias when 2123 in that room. 2124 2125list.c #list {var} add now allows semi-colon separated arguments. 2126 2127list.c #list {var} create now allows semi-colon separated arguments. 2128 2129variable.c #variable allows additional arguments which can be used to 2130 merge nested variables. 2131 2132nest.c Added add_nest_node function which is a copy of set_nest_node 2133 except that it doesn't clear the variable. 2134 2135telopt.c Added MSDP_OPEN and MSDP_CLOSE support. 2136 2137telopt.c MSDP arrays no longer generate an event for each item, instead 2138 a list is generated. 2139 2140tintin.h Lowered BUFFER_SIZE to 20000 because of crash reports. 2141 2142files.c #write now only saves triggers that do not belong to a class. 2143 2144mapper.c Added MAP ENTER MAP and MAP EXIT MAP events. 2145 2146split.c Redrawing the VTMAP whenever the split settings are reset, 2147 typically on session switch and screen resize. 2148 2149 2150Apr 2010 2.00.2 2151-------------------------------------------------------------------------------- 2152 2153line.c Added the #line substitute options which allows the 2154 substitution of variables, functions, colors, and 2155 escape codes in the given argument. 2156 2157config.c Added a config option to enable BIG5 support. 2158 2159mapper.c Added an optional vnum argument to #map get and #map set, 2160 calling #map get on an invalid vnum results in the variable 2161 being set to 0 while #map set calls on invalid vnums do 2162 nothing. 2163 2164terminal.c Added SCREEN RESIZE event. 2165 2166session.c Added SESSION ACTIVATED and SESSION DEACTIVATED events. 2167 2168nest.c Nested variable calls to non existing nests now return 2169 "" rather than "0", this to allow $var[%*] calls to work 2170 correctly with empty variables. I originally added the "0" 2171 response for if checks, but this is obsolete with the 2172 much more reliable &variable[] call. 2173 2174buffer.c Added a check to avoid a potential crash on displaying the 2175 scrollback buffer in show_buffer(), needs a better fix but I 2176 don't have the time and patience. 2177 2178tables.c Removed #suspend command, #cursor suspend is available instead. 2179 2180tokenize.c Added BIG5 handling for #parse 2181 2182tintin.h Fixed an error in the SCROLL macro that determines whether 2183 something is printed inside or outside of the scrolling region. 2184 2185tinexp.c Function arguments are no longer space but semicolon separated. 2186 2187mapper.c Updated messages to be non triggerable and to only echo on manual 2188 input. 2189 2190 2191Feb 2010 2.00.1 2192-------------------------------------------------------------------------------- 2193 2194help.c Added documentation for #map exitdir 2195 2196net.c Fixed a bug with color patch prepending the current line's color 2197 rather than the previous line's color. 2198 2199vt102.c Improved 256 color patching handling. 2200 2201vt102.c Added better \b handling, so muds using backspaces won't cause 2202 wrapping or scrollback issues. 2203 2204path.c #path load and #path save now load and save to variables, rather 2205 than aliases. 2206 2207mapper.c Added #map dig {<direction>} {new} option. 2208 2209mapper.c Added support for loading map files edited in Windows. 2210 2211tinexp.c Added support for separating function arguments using semicolons. 2212 2213buffer.c Now only stores a buffer line as a simple variable if no upper 2214 bound argument is given. Added support for dealing with a 2215 lower upper bound to store the lines in reverse. 2216 2217math.c Fixed floating point handling. 2218 2219data.c Fixed floating point associative array handling. 2220 2221 2222Jan 2010 2.00.0 2223-------------------------------------------------------------------------------- 2224 2225list.c Changed substitution order for #list add to substitute before 2226 breaking up the arguments. 2227 2228tinexp.c Added escaping of existing functions using @@ 2229 2230tokenize.c Added tokenization of #regex. 2231 2232data.c A trigger's priority can now be a floating point numbers. 2233 2234tinexp.c Fixed COMMAND_SEPARATOR related bug introduce in 1.99.9. 2235 2236misc.c Added escape substitutions to vt row echo calls. 2237 2238buffer.c Added #buffer get option. 2239 2240 2241Nov 2009 1.99.9 2242-------------------------------------------------------------------------------- 2243update.c Fixed crash bug with delays. 2244 2245math.c Fixed issue with negative numbers. 2246 2247main.c Fixed infinite reconnect trigger loop with #end. 2248 2249tintin.h Can now alter the COMMAND_SEPARATOR definition in tintin.h to 2250 change the command separator character. 2251 2252buffer.c Added #buffer clear option. 2253 2254math.c Fixed bug with ~ handling. 2255 2256tick.c Fixed a bug with delays not substituting variables right away. 2257 2258 2259Sep 2009 1.99.8 2260-------------------------------------------------------------------------------- 2261math.c Added check to bypass inf and nan in tintoi. 2262 2263update.c Fixed a potential memory overflow in the input parser. 2264 2265misc.c Fixed displaying bug with semi-colons in echos. 2266 2267nest.c Added support for $variable[regex] to return lists. For 2268 example $variable[%*] 2269 2270tinexp.c No longer required to escape literal ^ and $ signs. 2271 So #regex {A ^ B} {A ^ B} returns true now instead of false. 2272 2273net.c Instead of exiting, tintin tries for 1 second to write data 2274 to a session before closing the session. 2275 2276tinexp.c $$<string> only gets converted to $<string> if $<string> makes 2277 a valid variable. Same for &&<string>. 2278 2279tokenize.c Added support for using ; in #foreach. 2280 2281misc.c Added support for using ; in #forall. 2282 2283mapper.c Updated the map grid to allocate memory for a future 2284 #map dump 99x99 <file> command. 2285 2286 2287Jul 2009 1.99.7 2288-------------------------------------------------------------------------------- 2289mapper.c Added #map color <rooms|exits> <color> option. 2290 2291mapper.c #map list uses all location fields now, displays distance, and 2292 no longer displays exits. 2293 2294mapper.c Added desc, area, and note field to rooms. 2295 2296mapper.c Added checking for exits as well as desc, area, and note for 2297 the map goto and map find commands. 2298 2299tokenize.c Substituting the arguments of #return. 2300 2301nest.c $variable[] returns "" if the variable exists but has no nests 2302 2303*.c Updated triggers to substitute variables. 2304 2305tinexp.c Added %i and %I to toggle case in-sensitive matching. 2306 2307misc.c Added #echo {{spam}{row}} support. 2308 2309parse.c Yet another attempt to get verbatim mode working properly. 2310 2311variable.c Renamed #replacestring to #replace 2312 2313tinexp.c All commands now use tintin regular expressions. Instead of 2314 * and ? use %* and %? - for perfect matches uses ^string$. 2315 2316 This change affects the #regexp and #if commands. 2317 2318tokenize.c Added #write support for #loop and #foreach. 2319 2320tokenize.c Added #foreach {list} {variable} {commands} 2321 2322tokenize.c #loop syntax is now: #loop {min} {max} {variable} {commands} 2323 2324variables.c The argument list of #format and #echo are no longer nested, 2325 this probably requires many scripts to be updated. 2326 2327nest.c Now only showing non existing nested variables as 0, unnested 2328 variables will be shown as $variable if they do not exist. 2329 2330files.c Added support for saving nested variables. 2331 2332list.c Updated list support for nested variables. 2333 2334data.c The kill command now takes a 2nd argument allowing to kill 2335 specific items in the chosen list. 2336 2337nest.c Added support for math within brackets. 2338 2339math.c Added get_alnum routine. 2340 2341nest.c Added support for $variable[] showing all indices. 2342 2343nest.c Added support for $variable showing all nested variables. 2344 2345nest.c Can now assign nested variables directly nested pairs of braces. 2346 2347nest.c Added support for &variable reporting the variable's index. 2348 2349tokenize.c Added #else command. 2350 2351parse.c brackets now provide nesting so #var bla[bli bli] x will 2352 execute as #var {bla[bli bli]} instead of #var {bla[bli} 2353 2354data.c Accessing an variable index now requires +1 instead of 1. 2355 2356mapper.c Added MAP EXIT ROOM event. 2357 2358tokenize.c Added #switch #case and #default commands. 2359 2360math.c Fixed crash bug with #math. 2361 2362list.c Added list srt and ins support for nested list variables. 2363 2364data.c Sorting numeric variables as integers instead of as strings. 2365 2366text.c Fixed crash bug in wordwrap code. 2367 2368net.c Fixed double action triggering on prompts in split mode. 2369 2370variables.c $1 now references the first variable, $2 the second, etc. 2371 2372variable.c Uninitialized variables now return 0. 2373 2374data.c Added nested variables. As in #var $bla[this][that] 1 2375 2376data.c Changing from linked lists to sorted arrays. 2377 2378cursor.c Replaced #cursor echo with 'echo on' and 'echo off' 2379 2380cursor.c Modifying the input buffer while tabbing will reset the 2381 tab finder. 2382 2383 2384May 2009 1.99.6 2385-------------------------------------------------------------------------------- 2386cursor.c Added forward and backward tab completion patch by Ben Love. 2387 2388forkpty.c Added forkpty patch by David Champion. It allows tintin to 2389 run on Solaris and other systems that lack forkpty(). 2390 2391 2392April 2009 1.99.5 2393-------------------------------------------------------------------------------- 2394*.c Made code c++ compatible. 2395 2396system.c Added 2nd argument to textin for a cumulative per line delay. 2397 2398telopt.c Added event handlers for MSDP, NEW-ENVIRON, and ZMP. 2399 2400substitute.c #sub {trigger} {.} no longer gags text, use #gag instead. 2401 2402substitute.c Now allowing multiple substitutions per line which are 2403 automatically substring substitutions. 2404 2405 2406March 2009 1.99.4 2407-------------------------------------------------------------------------------- 2408utils.c Fixed 100 move map crash bug. 2409 2410input.c Now sending \r on enter when using #run, seems to give the best 2411 behavior. 2412 2413log.c Added xterm 256 color html logging. 2414 2415terminal.c Disabled default ctrl-s and ctrl-q behavior. 2416 2417 2418March 2009 1.99.3 2419-------------------------------------------------------------------------------- 2420data.c Now properly inheriting triggers from the startup session. 2421 2422net.c Now fetching IP address when connecting to a server. 2423 2424variable.c Now possible to use escape codes in #replace 2425 2426vt100.c Tabs are no longer stripped in the scrollback buffer. 2427 2428help.c Updated event helpfile with event arguments. 2429 2430telopt.c Added generic telnet subnegotiation event. 2431 2432telopt.c Added better broken packet support for telnet negotiations. 2433 2434variable.c now possible to use #var bla {} to set an empty variable. 2435 2436event.c Extended the event handler to easily accept additional arguments. 2437 2438tinexp.c Now possible to send NUL bytes with #send using \x00 or \c@. 2439 This is as far as the support for non strings goes though. 2440 2441tinexp.c Can use #regex on an empty string now. 2442 2443input.c Resetting command color at end of command. 2444 2445tinexp.c %%w, %%*, etc, should escape properly now. 2446 2447parse.c Fixed VERBATIM behavior, aliases can now be used in verbatim 2448 mode. 2449 2450alias.c Now possible to #ignore aliases. 2451 2452highlight.c Fixed highlights. 2453 2454 2455March 2009 1.99.2 2456-------------------------------------------------------------------------------- 2457tinexp.c Added pre-compiler for triggers, making them execute much faster. 2458 2459input.c Macros now default to \ca to \cz for control characters instead 2460 of readline's \C-a to \C-z. This because PCRE uses \c and it 2461 makes sense to use a universal system. Old control codes still 2462 work. 2463 2464mapper.c Can now use #map create {number of rooms}, by default the number 2465 of rooms is set to 15000. World size is stored as C <number> in 2466 map files. 2467 2468 2469February 2009 1.99.1 2470-------------------------------------------------------------------------------- 2471 2472telopt.c Added MSSP support, use: #config {debug telnet} on, to see the 2473 output from a MUD server supporting MSSP. 2474 2475tinexp.c Added pre-parser to convert tintin globs to regexps. 2476 2477tinexp.c Now using PCRE (Perl Compatible Regular Expressions) 2478 2479tinexp.c Added \cx "control-x", where x is any character. 2480 2481tinexp.c Added \0xx, where x is an octal number. 2482 2483 2484February 2009 1.99.0 2485-------------------------------------------------------------------------------- 2486 2487misc.c #showme and #echo now can have a / as a suffix to stop a 2488 linefeed from being added. 2489 2490vt100.c Added an extra measure to prevent losing track of the cursor 2491 position. 2492 2493documentation Updated the credits file and my mods file. 2494 2495tables.c Added a full telnet option table. 2496 2497tables.c Added END OF PATH event. 2498 2499tokenize.c Now shows debug info for triggers with #debug enabled. 2500 2501buffer.c No longer reprinting screen using page-up at the top of the 2502 scrollback buffer to stop refresh lag with slow terminals. 2503 2504tinexp.c Fixed incorrect displaying of xterm 256 background colors. 2505 2506config.c Removed timestamp config option, a scripted #event based 2507 alternative has been added to the SCRIPT file. 2508 2509cursor.c Added cursor option for auto tab. 2510 2511config.c Added auto tab option to set the amount of lines of the scroll 2512 back buffer used for auto tab completion. 2513 2514 2515January 2009 1.98.9 2516-------------------------------------------------------------------------------- 2517 2518variable.c Rewrote the 'd' format option to use a digit, mainly to enable 2519 the + option of normal digit formatting. 2520 2521parse.c Fixed speedwalk toggle bug. 2522 2523tinexp.c Added <g00> to <g23> xterm 256 color codes to support the 2524 greyscale colors. 2525 2526history.c Updated history command with the list, size and character 2527 options. 2528 2529tokenize.c Fixed ; issue sending out enters in the pre-parser. 2530 2531action.c Fixed ; issue in actions, which managed to unfixed itself. 2532 2533history.c Updated the history command, now takes #history list to view 2534 the command history. 2535 2536buffer.c Updated the buffer command to use generic command interface. 2537 2538 2539December 2008 1.98.8 2540-------------------------------------------------------------------------------- 2541 2542tokenize.c New pre-parser to deal with nesting issues. 2543 2544misc.c Added #while {var} {commands} command. 2545 2546misc.c #loop no longer works like a while loop. 2547 2548misc.c The $loop, $parse, and $forall variables are no longer 2549 automatically set. 2550 2551Makefile.in Added tokenize.o 2552 2553files.c #write now formats its output. 2554 2555tinexp.c Casting regex arguments to integers so it works properly on os x. 2556 2557config.c Added a config option to enable/disable MCCP support. 2558 2559variable.c Changed %t format option to use a strftime format instead to 2560 print the current time. 2561 2562telopt.c Streamlined telopt handling slightly to deal with MCCP errors. 2563 2564 2565October 2008 1.98.7 2566-------------------------------------------------------------------------------- 2567 2568alias.c Variables can be used in alias triggers, working pretty much 2569 the same way as they do in actions. 2570 2571mapper.c When leaving a map a last room is set, which can be returned 2572 to with #map return. The last room is stored when saving a map, 2573 and #map return will work as well after reading in a map. 2574 2575help.c Updated the math helpfile with available bit operations. 2576 2577misc.c #echo no longer triggers actions. 2578 2579help.c Updated the showme and echo help entries. 2580 2581mapper.c #map map now takes an optional <x>x<y> size argument and an 2582 optional filename argument to log the map output to file. 2583 Useful for people who want to tail -f -s 0.1 a map window. 2584 2585config.c Added a timestamp config option to add timestamps to log 2586 files using the strftime format. 2587 2588 2589September 2008 1.98.6 2590-------------------------------------------------------------------------------- 2591 2592mapper.c No longer need braces to use the delay option in map travel 2593 and map run. 2594 2595mapper.c Added static room flag. 2596 2597mapper.c Can now specify on/off for setting global flags and room flags. 2598 2599mapper.c Added breadth first support for the map drawing routine, based 2600 on code by Bryan Turner. 2601 2602mapper.c Added support for 3 letter room symbols. 2603 2604alias.c Variables passed along as an alias argument now go by value 2605 instead of by reference. 2606 2607mapper.c Added the asciivnums flag which displays room vnums in the ascii 2608 map. 2609 2610 2611August 2008 1.98.5 2612-------------------------------------------------------------------------------- 2613 2614mapper.c Added #map jump <x> <y> to goto rooms using coordinates 2615 relative to the user's current room. 2616 2617list.c Added #script {var} {command} option. 2618 2619input.c Fixed bug with the first input character being ignored in 2620 character mode. 2621 2622tinexp.c Can now escape variables using 2 or more dollar signs. 2623 2624cursor.c Fixed bug with ctrl-w 2625 2626cursor.c Fixed bug with ctrl-r's input offset. 2627 2628mapper.c When using #map find, run, and goto and there are multiple 2629 matching rooms the nearest room will be returned. 2630 2631 2632July 2008 1.98.4 2633-------------------------------------------------------------------------------- 2634 2635cursor.c Added glob/regex support to reverse history searches. 2636 2637tinexp.c wildcard searches should work as old again, and regexp searches 2638 work more like old wildcard searches. 2639 2640tick.c Can use variables for ticker names. 2641 2642mapper.c Changed #map exit to #map exitcmd 2643 2644mapper.c Added #map exitdir command, which allows setting a direction 2645 for unusual exits so they can be displayed on the map. 2646 2647mapper.c Changed #map walk to #map run, and fixed the optional delay 2648 argument. 2649 2650mapper.c Fixed optional delay argument for the #map travel command. 2651 2652mapper.c Void rooms can have more than two exits again if the exits form 2653 a straight line. 2654 2655mapper.c Fixed going through void rooms with #map travel. 2656 2657variable.c #format will use the current time if no time value is provided 2658 for the %M %Y %D %d and %t arguments. 2659 2660mapper.c asciigraphics is now the default map display setting. 2661 2662terminal.c Enabled the ISIG flag allowing ctrl-c to be mapped. 2663 2664cursor.c Updated ctrl-d to allow exiting tintin. 2665 2666cursor.c Updated ctrl-c to clear the line rather than exiting tintin. 2667 2668config.c Changed #config {echo command} to #config {command echo} 2669 2670config.c Added the #config {command color} {<000>} option. 2671 2672mapper.c #map insert now allows adding a roomflag as the 2nd argument. 2673 2674tinexp.c Can now use %{variable} besides %0 - %99 in actions. 2675 2676 2677June 2008 1.98.3 2678-------------------------------------------------------------------------------- 2679 2680mapper.c It's now possible to use strings in the map legenda, mainly for 2681 terminals supporting UTF-8. 2682 2683mapper.c Void rooms now work with unusual exits as well. 2684 2685mapper.c Added some unlisted map commands to the #map and #help listing. 2686 2687input.c Verbatim mode now only works on manual input, actions and macros 2688 will have their commands processed normally. 2689 2690mapper.c #map map now accepts a given radius. 2691 2692config.c #config packet patch now takes a floating point seconds argument 2693 instead of milli seconds. The valid input range is between 0.00 2694 and 10.00 seconds. 2695 2696config.c Added the #config regexp on/off option. 2697 2698input.c Added the RECEIVED INPUT event. 2699 2700tinexp.c Added the match function to work with #config regexp. 2701 2702cursor.c Added support for deleting words forwards using alt-d 2703 2704path.c Added #path zip option to format a created path into 2705 speedwalk notation. 2706 2707tinexp.c \[ and \] no longer escape to { and }, instead \x can 2708 be used, the values are shown in #help escape. 2709 2710tinexp.c All regexp's should substitute escape codes. 2711 2712tintin19.txt Rewrote the large manual file to contain a brief up to date 2713 manual instead. #help remains the primary help source. 2714 2715tintin15.cr Removed the tintin15.txt copyright notice as the documentation 2716 by Robert Ellsworth is no longer used. 2717 2718May 2008 1.98.2 2719-------------------------------------------------------------------------------- 2720 2721tables.c Home and End now use cursor home and end. 2722 2723input.c Added support for \x and \b in macros. 2724 2725net.c Fixed a bug with stacking prompts. 2726 2727cursor.c Pressing ctrl-r (history search) while searching will place 2728 the found search in the input field. 2729 2730cursor.c Added left_word and right_word for alt b and f behavior. 2731 2732 2733March 2008 1.98.1 2734-------------------------------------------------------------------------------- 2735 2736main.c Command history is no longer automatically saved and loaded. 2737 2738history.c Added history read and write option. 2739 2740cursor.c Fixed displaying of ctrl-r reverse command history search. 2741 2742*.c Added punctuation to most messages. 2743 2744*.c Fixed function arguments overwriting action arguments. 2745 2746tinexp.c { and } in triggers will be translated to \x codes. 2747 2748line.c Added the line command to group #gagline and #logline. 2749 2750tables.c Added the 'program termination' and 'received line' events. 2751 2752 2753February 2008 1.98.0 2754-------------------------------------------------------------------------------- 2755 2756cursor.c Added the #cursor enter option 2757 2758input.c Fixed #macro usage in character mode. 2759 2760chat.c Fixed an exploit to erase files with #chat. 2761 2762chat.c Fixed a crash bug in the negatiation routine, apparently 2763 sscanf doesn't check line feeds. 2764 2765chat.c Lowered the maximum read from socket size to half of 2766 BUFFER_SIZE to prevent buffer overflows. 2767 2768log.c Fixed a coloring bug with html logging. 2769 2770alias.c Fixed a bug with alias parsing. 2771 2772 2773December 2007 1.97.9 2774-------------------------------------------------------------------------------- 2775 2776highlight.c Added 'dark' as a valid color name. 2777 2778vt102.c Added get_color_codes function. 2779 2780text.c Now printing the previous color code on each new line. 2781 2782config.c Added a color patching option. 2783 2784log.c Fixed append logging in html mode for cygwin. 2785 2786parse.c Went back to the more robust old school memory usage with 2787 some changes to still allow for recursion. 2788 2789telopt.c re-enabled GA prompt handling. 2790 2791main.c Fixed a bug with the startup argument routine. 2792 2793 2794November 2007 1.97.8 2795-------------------------------------------------------------------------------- 2796 2797input.c Fixed some chinese character related issues. 2798 2799parse.c Fixed some chinese character related issues. 2800 2801tinexp.c Added the option to use %00 to %99 2802 2803tinexp.c Must now escape using %% rather than %%90 2804 2805path.c Added #path run <delay> option. 2806 2807highlights.c #highlight now colors all matches on a line. 2808 2809tinexp.c Functions now only use %0 to %99 rather than &* 2810 2811 2812October 2007 1.97.7 2813-------------------------------------------------------------------------------- 2814 2815variable.c Fixed some coloring issues with the %w format option. 2816 2817input.c Macros no longer trigger with config convert meta enabled. 2818 2819net.c Fixed prompt handling issue for triggers in split mode. 2820 2821tinexp.c Added the regexp command to use regexp string comparisons. 2822 2823 2824August 2007 1.97.6 2825-------------------------------------------------------------------------------- 2826 2827input.c Fixed some server side VT issues with command echoing. 2828 2829text.c Tintin no longer line wraps when word wrap is disabled, this to 2830 fix pasting issues, and assuming that most terminals will line 2831 wrap correctly. 2832 2833history.c No longer add input with less than 2 bytes to the history. 2834 2835cursor.c Added prefix history searching. 2836 2837files.c Fixed verbose behavior when reading a file which reads a file. 2838 2839net.c Fixed address reporting in #session. 2840 2841variable.c Added %w option to wrap text. 2842 2843 2844August 2007 1.97.5 2845-------------------------------------------------------------------------------- 2846 2847 Fixed some bugs in socket handling. 2848 2849 #run now shows the stderr when failing to run. 2850 2851 Fixed a bug with #config {packet patch}. 2852 2853 2854July 2007 1.97.4 2855-------------------------------------------------------------------------------- 2856 2857 Added the #run command to run various applications inside tintin. 2858 2859 Added packet defragmentation at the socket level. 2860 2861 Fixed a buffer overflow in the scrollback buffer's prompt 2862 handling. 2863 2864 2865July 2007 1.97.3 2866-------------------------------------------------------------------------------- 2867 2868 Added the #script command to run any kind of script client side. 2869 2870 Fixed a variety of minor bugs. 2871 2872 2873June 2007 1.97.2 2874-------------------------------------------------------------------------------- 2875 2876 Fixed buffer overflow with receiving several prompts. 2877 2878 Fixed bug with scrollback lines not being properly deleted. 2879 2880 Added #map explore and #map travel options. 2881 2882 2883May 2007 1.97.1 2884-------------------------------------------------------------------------------- 2885 2886 Added #map insert 2887 2888 Fixed bug with #list fnd 2889 2890 Fixed bug with prompts in buffer 2891 2892 Set #delay {name} {command} {delay} as alternative syntax 2893 opposed to #delay {delay} {command} 2894 2895 2896April 2007 1.97.0 2897-------------------------------------------------------------------------------- 2898 2899chat.c Configure now detects a missing pthread library. 2900 2901tick.c Delay now takes a name argument as the 3rd argument. 2902 2903tick.c Added #undelay command. 2904 2905cursor.c Added the option to paste deleted input with ctrl-y 2906 2907 2908March 2007 1.96.9 2909-------------------------------------------------------------------------------- 2910 2911list.c Added #list {list} clr option to empty a list. 2912 2913list.c Added #list {list} srt option to insert in alphabetic order. 2914 2915parse.c Defined a COMMAND_SEPARATOR variable instead of ';' checks. 2916 2917utils.c Fixed some display issues for #showme and untriggered prompts 2918 in split mode. 2919session.c Now uses #session {name} {host} {port} 2920 2921tinexp.c Can now use %0 (all args) and %1 to %9 in functions. 2922 2923memory.c Increased the maximum internal memory size from 10 to 50KB. 2924 2925debug.c Set the maximum number of iterations to 10K. 2926 2927 2928February 2007 1.96.7 2929-------------------------------------------------------------------------------- 2930 2931mapper.c Fixed fast forwarding shortest path searches through void rooms. 2932 2933mapper.c Fixed #map link not deleting old links. 2934 2935mapper.c Fixed drawing of void rooms. 2936 2937help.c Added a cleaned up version by Simon. 2938 2939cursor.c History next and prev now put the cursor at the end of the line. 2940 2941gag.c Seperated gags from substitutions. 2942 2943files.c Inproved accuracy of #read's error report. 2944 2945path.c Merged all path commands into one generic path command. 2946 2947 2948March 2007 1.96.8 2949-------------------------------------------------------------------------------- 2950 2951main.c Added getopt supported command-line argument handling. 2952 2953main.c Added [-t title] option to set the title bar. 2954 2955files.c Now stripping all trailing spaces and tabs in #read. 2956 2957utils.c Added show_debug command to display debug messages a bit easier. 2958 2959net.c Added IPv6 support. 2960 2961cursor.c Added cursor_echo function to toggle local echo. 2962 2963cursor.c Added cursor_insert function to toggle insert mode. 2964 2965tinexp.c Using $variable[index] now works with lists. 2966 2967variable.c Can set list indexes with #var {variable[index]} {text} 2968 2969 2970January 2007 1.96.6 2971-------------------------------------------------------------------------------- 2972 2973cursor.c Fixed behavior of ctrl-e for osx. 2974 2975log.c Fixed newly introduced crashbug with #logline 2976 2977highlight.c Now parses <###> color codes to allow for 256 colors. 2978 2979function.c Can now use undescores in function names. 2980 2981tables.c Added map list for #map undo and message handling. 2982 2983main.c Added pathdirs for diagonal exits and spatial coordinate info. 2984 2985mapper.c Now using spatial coordinates from pathdirs. This requires 2986 users to reset their saved pathdirs. If used correctly mapping 2987 should work for muds with a non standard exit system. 2988 2989mapper.c Added movement history for #map undo 2990 2991mapper.c Updated #map undo to use the map movement history 2992 2993cursor.c Fixed bug in ctrl-e behavior 2994 2995misc.c Removed old debug message in #send. 2996 2997mapper.c Added room symbols. 2998 2999mapper.c Added #map set to set various attributes 3000 3001mapper.c Added #map get to get various attributes and store them as 3002 variables. 3003 3004mapper.c #map walk {location} {0.5} will now run to the location with 3005 0.5 second delays between commands. 3006 3007input.c Added input_printf for consistent echo handling 3008 3009tables.c Added generic variable and function substitution for #map 3010 3011input.c Now checking for negative characters when converting meta 3012 characters. Should fix issues when creating macros with 3013 swedish and german characters. 3014 3015buffer.c Can now use #buffer f with negative numbers to find the first 3016 instead of last occurance of a string. Also made the no match 3017 found string triggerable. 3018 3019mapper.c Can now use case insenstive room finding with wildcards in 3020 #map find and other room search related commands. 3021 3022tintin.h Placed lists in alphabetical order. 3023 3024event.c Added a basic event system, check #event 3025 3026 3027December 2006 1.96.5 3028-------------------------------------------------------------------------------- 3029 3030buffer.c fixed up color handling of commands. 3031 3032*.c Put on my dirty boots and annihilated all lib readline related 3033 stuff. Readline sucks donkey balls. You can quote me on that. 3034 3035terminal.c Merger of echo.c and scrsize.c 3036 3037terminal.c Added init_terminal to force character mode for input handling. 3038 3039terminal.c Added custom screensize handling. 3040 3041rl.c Now forwarding data on stdin to input.c 3042 3043input.c Added basic command parsing options. 3044 3045history.c Added tintin-esque command history support. 3046 3047cursor.c Deals with cursor handling for input.c 3048 3049tables.c Added a command table for cursor.c 3050 3051cursor.c Added support for some readline-esque input handling. 3052 3053tab.c Added my own (improved) tab handling. 3054 3055tab.c Moved tab handling to cursor.c 3056 3057vt102.c Made some improvements to the VT102 support. 3058 3059cursor.c Added history browsing with up, down, ctrl-p and ctrl-n. Made 3060 some minor improvements over the readline version. 3061 3062utils.c Added ins_sprintf function that properly inserts a string 3063 within another strong. Has formatting capabilities. 3064 3065input.c Added process_input as the main input function. 3066 3067input.c Added read_line function for default command parsing. 3068 3069input.c Added read_key function for character mode. 3070 3071main.c Moved suspend and exit functions to main.c 3072 3073main.c Fixed #suspend handling. 3074 3075split.c Now adjusting NAWS when changing split screen. 3076 3077cursor.c Added do_cursor for using cursor features in macros. 3078 3079history.c Added do_history for history manipulation. 3080 3081rl.c Moved to update.c 3082 3083*.c Tintin is now officially lib readline free. Good riddance. 3084 The binaries are 40% smaller. 3085 3086tinexp.c Added 256 xterm color support using <aaa> to <fff> with rgb 3087 values. Background colors are set with <AAA> to <FFF> 3088 3089tintin.h Added gtd->flags for global flags instead of using cludgy 3090 flags on gts->flags. 3091 3092cursor.c Added cursor_redraw_line routine which adds readline input 3093 scrolling behavior. Tintin will probably work quite poorly on 3094 non VT100 terminals now. 3095 3096tables.c Added list flags to work around the fact that I use lists for 3097 stuff they weren't originally intended for. Updated list parsers 3098 throughout the source code. 3099 3100main.c Added a signal handler for SIG_TSTP to handle ctrl-z smoothly. 3101 3102input.c Escaped unmatched sequences are now automagically meta converted. 3103 3104cursor.c history prev and next can now be used in combination with the 3105 history search function. 3106 3107mapper.c Improved map drawing by using virtual coordinates. 3108 3109mapper.c Added a flag to enable vt graphics mode. A hopefully universal 3110 legenda is: 250 223 222 200 220 186 201 204 221 188 205 202 187 3111 185 203 206 246 3112 3113mapper.c Added a flag to draw 6x3 ascii graphics which allows displaying 3114 rooms going ne, nw, se, sw, u, and d. 3115 3116misc.c Can no longer use commas in #loop. When using 1 argument with 3117 #loop it's assumed 3118 3119misc.c Can now use math in delays, as in #delay 1d5 smile. 3120 3121mapper.c Added the void roomflag which can be used to turn rooms into 3122 links. This is mainly useful to fit overlapping areas on the 3123 same map without using the hide flag. 3124 3125 3126December 2006 1.96.4 3127-------------------------------------------------------------------------------- 3128 3129class.c classes are now properly inherited from the main session. 3130 3131misc.c fixed chinese character issue with #parse. 3132 3133parse.c fixed parsing issues introduced in 1.96.3. 3134 3135mapper.c debugged and updated alpha mapping code to beta. 3136 3137tables.c added a mapping related sub-command table. 3138 3139 3140November 2006 1.96.3 3141-------------------------------------------------------------------------------- 3142 3143telopt.c Updated telopts to login on globalvillage bbs. 3144 3145buffer.c Added buffer find option, which works much like grep but instead 3146 places the scrollback buffer at the given search string. 3147 3148tinexp.c Can now add lists of keywords between square brackets divided 3149 by seperators, for example [his|her|its] in actions. The actual 3150 text is stored in the next %0-9. Cannot be used for highlights. 3151 3152list.c array_fnd function allows searching for words in lists. 3153 3154path.c can now save loaded paths backward. 3155 3156 3157August 2006 1.96.2 3158-------------------------------------------------------------------------------- 3159 3160variables.c Removed #getitemnr, obsolete with the #list command. 3161 3162variables.c Removed #getlistlength, obsolete with the #list command. 3163 3164variables.c Removed #removestring, obsolete with the #replacestring command. 3165 3166math.c Added tineval to properly evaluate == and != 3167 3168chat.c Now setting NONBLOCK on the chat port due to reports about 3169 disconnects hanging tintin. 3170 3171config.c Added #config {log level} {low|high} which is a hidden config 3172 option. Defaults to high, when set to low tintin will log the 3173 raw mud output. 3174 3175 3176August 2006 1.96.1 3177-------------------------------------------------------------------------------- 3178 3179misc.c Fixed a spacing issue in do_showme. 3180 3181mapper.c Fixed map drawing. 3182 3183telopt.c Fixed telnet negotations to login on ISCA BBS. 3184 3185math.c Commas are now stripped from numbers. 3186 3187math.c Added support for floating point math. 3188 3189tick.c Can use 1d10 etc for the times in #delay. 3190 3191main.c Added -h and -e as startup options. 3192 3193 3194June 2006 1.96.0 3195-------------------------------------------------------------------------------- 3196 3197data.c Rewrote #killall to accept arguments to kill specific lists. 3198 3199chat.c Added #chat unitialize. 3200 3201chat.c Added basic support for group chats. 3202 3203chat.c Added support for colored names. 3204 3205highlight.c Fixed crash bug for invalid highlights. 3206 3207class.c Fixed crash bug with #killall related to classes. 3208 3209chat.c Added #chat send which allows sending custom chat commands. 3210 3211chat.c Fixed link lost crash bug. 3212 3213 3214April 2006 1.95.9 3215-------------------------------------------------------------------------------- 3216 3217input.c Fixed some bugs in the character mode support. 3218 3219misc.c Placed the functions in alphabetic order and added #SEND which 3220 will send the given argument directly to the mud. Useful for 3221 sending escape sequences because you cannot start a mud 3222 command with an escape sequence. 3223 3224scrsize.c If in character mode tintin depreps the terminal temporarily 3225 when sending NAWS. Yet another annoying readline bug. 3226 3227chat.c Added DND (do not disturb) feature. When enabled tintin will 3228 no longer accept new chat connections. 3229 3230 Fixed a bug in the DNS lookup routine for addresses starting 3231 with a number. 3232 3233 Can now chat to people by entering their ip address. Useful to 3234 deal with auto ip bans. 3235 3236parse.c Complex multi words aliasses are now possible. 3237 3238data.c Priority lists are now sorted alphabetically per priority level 3239class.c #class class read <file> no longer parses files for the given 3240 class. The code was too messy to maintain. Instead it'll open 3241 the class, read the file, and close the file. 3242 3243alias.c Added support for complex multi word aliasses. 3244 3245chat.c Added #chat public option, accepts the all argument. 3246 3247chat.c Added #forward all which included session output 3248chat.c Added #color which sets the default color 3249chat.c Added a boost option for #chat accept to quadruple download 3250 speeds, might cause file corruption on bad connections. 3251 3252class.c Rewrote some code, #unclass should work now. 3253 3254data.c Issueing #tick {name} twice will now reset the ticker. 3255 3256math.c Fixed invalid input handling. 3257 3258misc.c Snooping a non existant session no longer crashes tintin. 3259 3260 3261March 2006 1.95.8 3262-------------------------------------------------------------------------------- 3263 3264buffer.c While the concept works the code should be more solid. Fixed 3265 some bugs in the buffer code causing scrolling to crash 3266 on long help files. 3267 3268buffer.c Added a #buffer lock option which resembles scroll lock. 3269 3270log.c Fixed a bug in #log append which caused it to not generate 3271 html headers. 3272 3273chat.c Modified the threaded chat functions to minimize accessing 3274 global data. 3275 3276chat.c Fixed formatting bug causing chat messages containing %s to 3277 crash the client. 3278 3279chat.c #chat who now shows user flags 3280parse.c Removed old code that allowed using " " instead of { } in 3281 a couple of commands such as #format. While I used it in 3282 some example scripts the code is causing problems. 3283 3284data.c Can now use #unmacro by exactly matching the macro instead of 3285 having to use \\ for a single \. 3286 3287input.c TinTin now enables character mode with echo off and SGA enabled. 3288 3289 3290December 2005 1.95.7 3291-------------------------------------------------------------------------------- 3292 3293main.c Added a command reference table to speed up the processing of 3294 commands slightly. 3295 3296tinexp.c The body of a by braces surrounded variable name will be 3297 substituted now, allowing variables as variable names. 3298 3299parse.c No longer sending message spam when using an alias 3300buffer.c Fixed a long standing crash bug in the buffer cleanup routine. 3301 3302tinexp.c Now matching arguments in triggers like the old tintin did. This 3303 will interfere with a couple of triggers but shouldn't be too 3304 big a problem. %0 to %9 will capture the smallest possible 3305 amount of text instead of the biggest. 3306 3307telopt.c IAC EOR and GA spams are dealt with better with {debug telnet} 3308 enabled. 3309 3310telopt.c Dealing with packet fragmentation in the odd case an IAC EOR or 3311 GA code is split, not sure if it works since it's hard to test. 3312 3313 3314October 2005 1.95.6 3315-------------------------------------------------------------------------------- 3316 3317chat.c Added multi threading for opening new chat connections. 3318 3319parse.c Added protection for infinite loops. 3320 3321utils.c Added hex_number translation function. 3322 3323tinexp.c Can now use \x?? where ?? is a hexadecimal number. 3324 3325*.c Changed usage of \e with \033 since \e isn't supported on all 3326 systems. 3327 3328misc.c #debug all log, logs debug info without displaying it. 3329 3330Makefile.in make install now copies tt++ to /usr/bin 3331parse.c Can now disable verbatim mode after enabling it. 3332 3333tables.c Got rid of unneeded table size for the command, help, and 3334 config table. 3335 3336variable.c Added %D %M %Y options to print the day month year. 3337 3338misc.c Added parse command to parse strings. 3339 3340misc.c Fixed double variable substitution for #echo. 3341 3342 3343August 2005 1.95.5 3344-------------------------------------------------------------------------------- 3345 3346chat.c Added some extra chat functionality: paste, serve, forward, 3347 ignore and peek. 3348 3349tinexp.c Fixed parsing of function arguments some more. 3350 3351list.c Added #list command with basic list support. 3352 3353 3354August 2005 1.95.4 3355-------------------------------------------------------------------------------- 3356 3357tinexp.c Fixed some bugs in substitute that slipped in. 3358 3359tinexp.c Added skipping of chinese characters in regexp functions. 3360 3361data.c Fixed crash bug with killing classes 3362function.c Fixed an issue with #return in fuctions stopping the execution 3363 of multiple commands. 3364 3365rl.c pressing control-c while connecting will abort the connection 3366 instead of exiting the program. 3367 3368chat.c Added back the chat module that was originally included with 3369 version 1.86. I pretty much rewrote it while at it. 3370 3371configure BIG5 configuration was giving me issues on slackware. 3372 3373 Since I didn't feel like figuring out how the script works 3374 I changed it from --enable-big5 to --big5 and fiddled with 3375 the script till it seemed to work again. 3376 3377 3378July 2005 1.95.3 3379-------------------------------------------------------------------------------- 3380 3381tinexp.c Now substituting functions and arguments (if needed) in a 3382 function's argument list. 3383 3384tinexp.c Ending a command with \ will escape the EOL (\r\n) which won't 3385 be appended to the end of the line. Same story for #showme. 3386 3387telopt.c Added negotiating of EOR (end of record). 3388 3389telopt.c IAC GA and EOR will now be seen as prompt markers. 3390 3391files.c Now skipping chinese characters in #read 3392 3393 3394July 2005 1.95.2 3395-------------------------------------------------------------------------------- 3396 3397data.c Added option to use 'all' in #message, #ignore, and #debug to 3398 toggle everything at once. 3399 3400files.c Removed the #writesession command, it's obsolete with the new 3401 #class command. 3402 3403class.c #class write now adds #class open/close to the begin and end 3404 of the file. 3405 3406files.c Cleaned up a bunch of confirmation messages and made them 3407 gaggable. 3408 3409tab.c Variables and functions in a #tab are now substituted at 3410 evaluation time. 3411 3412 3413Juny 2005 1.95.1 3414-------------------------------------------------------------------------------- 3415 3416files.c If the bracing level is off in the last line tintin reports 3417 the correct line instead of 0. 3418 3419rl.c reading the default readline init file when leaving tintin. 3420 Should help with a couple of shells not handling this properly. 3421 3422echo.c removed some experimental code that ended up causing double 3423 echoing when switching between sessions. 3424 3425split.c fixed screen switching for muds with native vt102 interfaces. 3426 3427session.c added #session {-|+|number} options to switch between sessions. 3428 3429files.c no longer showing output while using #scan to speed things up 3430 for huge log files. 3431 3432misc.c Added #return which used in an #if check allows bailing out of 3433 a semicolon seperated command string. If used in a #function 3434 you can also add an argument to it to set the result, as 3435 opposed to setting the $result variable directly. 3436 3437 3438June 2005 1.95.0 3439-------------------------------------------------------------------------------- 3440 3441macro.c Added prompt handling for macro's. Still not perfect. 3442 3443scrsize.c Fixed resetting of split data when resizing the screen. 3444 3445split.c Now drawing split lines on all static regions to increase 3446 clarity for newbies. 3447 3448misc.c Can now use #showme {text} {row}, with a row number given 3449 #showme will act like #prompt. 3450 3451misc.c Can use #echo {{format} {row}} {{arguments}} as well. 3452 3453rl.c Fixed #snoop messing up in #split mode. 3454 3455parse.c Got rid of the code seperating high and low priority actions, 3456 no longer valid with the #gagline command. 3457 3458antisubstitute Removed antisubstitutions since there seems little reason to 3459 ever need them. 3460 3461rl.c Checking internal messages for prompt gags now 3462 3463 3464May 2005 1.94.9 3465-------------------------------------------------------------------------------- 3466 3467files.c Added #scan {filename} which will read in a file and send it to 3468 the screen as if it was send by a mud. This allows one to view 3469 raw color logs, turn on logging and save the file in a different 3470 format, as well as adding gags and other text filters to make 3471 things more readable. I set the default logging mode to raw 3472 since ansi log files can now be converted to html ones. 3473 3474data.c updatenode_list was acting odd, fiddled with it till it stopped 3475 crashing. Not sure what the problem was. 3476 3477 3478May 2005 1.94.8 3479-------------------------------------------------------------------------------- 3480 3481rl.c Fixed packet patch, and added a default patcher for split mode. 3482 Fixed the displaying of #alias, #action, etc. 3483 3484 3485May 2005 1.94.7 3486-------------------------------------------------------------------------------- 3487 3488main.c Fixed #split mode being handled correctly when suspending a 3489 session. 3490 3491data.c Removed excessive color usage when displaying triggers which was 3492 resulting in crashes. 3493 3494rl.c No longer clearing the screen when exiting tintin++. 3495 3496table.c Added flags for commands, so far only automatically substituting 3497 variables and functions for commands that have the sub flag. 3498 3499 3500May 2005 1.94.6 3501-------------------------------------------------------------------------------- 3502 3503rl.c Now adding all keyboard input to the scrollback buffer. 3504 3505rl.c When in #split mode with no #prompt defined tintin tries to 3506 mimic normal behavior, which includes placing input at the 3507 end of the prompt. 3508 3509prompt.c #prompt matched lines are now written to the scrollback buffer, 3510 to simulate the old behavior make an #action executing #gagline. 3511 3512 3513May 2005 1.94.5 3514-------------------------------------------------------------------------------- 3515 3516rl.c Fixed a bug that caused prompts to be printed twice. 3517 3518debug.c Fixed possible crash from overloading the debug stack. 3519 3520variable.c Added #debug messages for #replacestring and #format. 3521 3522split.c Fixed various #split bugs when creating or switching sessions. 3523 3524buffer.c #buffer {i} will now give some info about the scrollback buffer. 3525 3526tick.c #delay now works in the startup session. Tickers are still 3527 disabled. 3528 3529class.c #class <class> read <file>, now only reads in stuff that belongs 3530 to the given class name. Hence in order for this to work you 3531 need #class <class> open, and #class <class> close, calls in 3532 the file itself for this to work. 3533 3534help.c Removed David Chan from the credit screen shown when starting 3535 up TinTin++. I'm sure he had the best intentions, but he spend 3536 two years making insignificant changes, fiddling with variables, 3537 adding patches written by others, before vanishing into thin air. 3538 3539 3540April 2005 1.94.4 3541-------------------------------------------------------------------------------- 3542 3543tintin.h Now using strtoll instead of atoll since old platforms only 3544 support strtoll. 3545 3546telopt.c With #config {CONVERT META} set to ON mud output will have 3547 it's meta characters translated, this to aid in making color 3548 triggers. 3549 3550split.c Using #split 0 0 will create an input line without the split 3551 line. Useful for people who don't use #prompt. 3552 3553 3554April 2005 1.94.3 3555-------------------------------------------------------------------------------- 3556 3557log.c Now flushing the log stream after every call so tailing a log 3558 file is an option. 3559 3560class.c Finished the #class command. 3561 3562split.c placed #prompt stuff in prompt.c. 3563 3564tinexp.c Added option to start a trigger with ~ in which case colors 3565 are included in string comparisons and substitutions. 3566 3567buffer.c Removed the #writebuffer command, must now use: 3568 #buffer {write} {filename} 3569 3570 3571May 2005 1.94.2 3572-------------------------------------------------------------------------------- 3573 3574rl.c Internal messages are now printed to both the logfile and 3575 scrollback buffer. 3576 3577rl.c Fixed internal messages bumping the screen while scrolling in 3578 locked mode. 3579 3580rl.c Fixed a bug with displaying text that slipped in. 3581 3582buffer.c Added the option to use #buffer h/u/d/e for scrolling. 3583 3584tintin.h Removed unused macro DEFAULT_FILE_DIR. 3585 3586utils.c utime() function doesn't work correctly on cygwin, changed it's 3587 behavior to guarantee unique time stamps. 3588 3589buffer.c No longer writing #grep output the the scrollback buffer 3590main.c Now clearing last command (often quit) when starting up tintin++ 3591config.c Turned #debugtelnet command into a hidden config option. 3592 3593 Added a hidden config option named CONVERT META, which turns key 3594 presses into macro readable keyboard input. 3595 3596class.c Added basic support for classes, which is grouping for real. 3597tables.c Set substitute priority to save correctly. 3598 3599 3600May 2005 1.94.1 3601-------------------------------------------------------------------------------- 3602 3603log.c Added the option for a second argument to the #logline command. 3604 If second argument is used it will instead print the given line 3605 to file. 3606 3607variable.c Added %G thousandgroupingstring function to format to change 3608 for example 1000 into 1,000. 3609 3610 3611May 2005 1.94.0 3612-------------------------------------------------------------------------------- 3613 3614rl.c mainloop now uses a threaded call for the old mainloop. This 3615 because the readline() function is blocking and I'm too lazy 3616 to code the stuff readline takes care of. 3617 The new mainloop tries to go at 100 loops per second. 3618 3619session.c Got rid of connect_delay for connecting sessions. Now using 3620 1 timer. 3621 3622tick.c Changed #ticker to use floating point precision. 3623 3624 Added delay command: #delay {seconds delay} {command} 3625 3626variable.c #format, added %L to print the argument's string length, and 3627 %U to print the number of micro seconds since epoch, increased 3628 the number of arguments from 10 to 20. 3629 3630misc.c Removed the #sleep command, never worked well and should be 3631 obsolete with the #delay command. 3632 3633misc.c #gagline, when called within an action it will gag the line. 3634 3635rl.c The #snoop code wasn't working, fixed it up. 3636 3637data.c Increased the buffer of show_list a little to avoid an overflow 3638 3639macro.h Changed how macros work, fixing problems like needing a \n at 3640 the end, needing an empty line, macros being added to the 3641 command history. Still can't find a way to have rl erase macros. 3642 3643 Players can enter a command within a line of text using 3644 [[ command ]]. 3645 Example: tell bubba (long line) [[chat hi bibbi]] (more text) 3646 3647rl.c Added the option to delay displaying and parsing possibly broken 3648 packets. Delay in micro seconds can be set with the PACKET PATCH 3649 config option. By default it's set to 0 (disabled). 3650 3651variables.c Fixed #replacestring which got messed up while I added variable 3652 substitution to it. 3653 3654rl.c Fixed echoing of commands in split mode. 3655 3656split.c Changes split and prompt to work more logical, people might 3657 have to change their scripts, new syntax: 3658 #split {number of top lines} {number of bottom lines} 3659 default equals: #split {0} {1} 3660 Fixed possible color bleeding in the split line, this for noobs 3661 who don't know how to use tintin's color codes. 3662 3663files.c /* and */ now only work when used outside braces. 3664 3665rl.c No more threading, made tintin crashy as well. 3666 3667variable.c Added %n (name) to #format, which capitalizes the first letter 3668 of the given string. 3669 3670buffer.c No longer resetting the buffer if the new scrollback size 3671 is the same as the old one. 3672 3673rl.c prompts automatically get a newline added in split mode. 3674 3675session.c Fixed problem with aliasses changing focus. 3676 3677rl.c Made #snoop output non triggerable. 3678 3679misc.c Added the $loop and $forall variables set in the #loop and 3680 #forall commands. Avoids dodgy &0 behavior in #functions. 3681 3682telopt.c Added dynamic allocation of buffer space for mccp and the 3683 normal output buffer. 3684 3685rlhist.c 1 character long commands are once again added to the command 3686 history. 3687 3688files.c If a bracket is missing TinTin gives a hint at what line the 3689 error might be. 3690 3691tinexp.c Added option to surround a variable with brackets. 3692 3693variables.c Removed restrictions on variable names. 3694 3695math.c Fixed bug with #if returning the wrong session pointer. 3696 3697log.c Added #logline command for actions to log 1 line of text 3698rlhist.c If no repeat match is found an error message is printed. 3699 3700parse.c Added a check to ingore a trailing ';'. 3701 3702data.c Increased buffer size for displaying aliasses. 3703 3704config.c Changed packet patch config option from micro to milli seconds. 3705 3706files.c Changed calls to isblank() (GNU only) with isspace() 3707files.c Only stripping leading spaces now, so #var bla { } will work 3708 once again. 3709 3710files.c I got tired of confusing readnew and readold, so I removed 3711 readold. 3712 3713 3714February 2005 1.93.9 3715-------------------------------------------------------------------------------- 3716 3717split.c Fixed infinite loop in do_unprompt 3718 3719rl.c Added the option to call show_message() with a NULL argument 3720 for more generic usage. 3721 3722tintin.h Set BUFFER_SIZE to 10000 OUTPUT_SIZE to 65000 3723 and FILE_SIZE to 150000 3724 3725files.c Added option to #read and #write using a variable. 3726 3727buffer.c Fixed some dodgy behavior of the scroll back buffer, it should 3728 scroll ultra fast as well now. 3729 3730 The buffer command now only prints the last screen worth of 3731 text, too lazy to re-code floating screen indexes atm. 3732 Added scroll lock to the config menu, to freeze the screen 3733 while scrolling. 3734 3735 3736February 2005 1.93.8 3737-------------------------------------------------------------------------------- 3738 3739tick.c Took care of uninitalized tickers firing prematurely. 3740 3741session.c Added option to make a trigger on session termination. 3742 3743files.c Added a check for #read being used on a directory. 3744 3745rl.c Fixed home/end keys being bound correctly. 3746 3747split.c Allowing multiple prompt triggers to fire on the same line 3748 Fixed split line being 4 '-' short 3749 3750 3751December 2004 1.93.7 3752-------------------------------------------------------------------------------- 3753 3754tinexp.c Now only converting ; to : for actions, not for aliasses etc. 3755 3756path.c Made END OF PATH message triggerable. 3757 3758variable.c added the do_internal_variable command, which does the same 3759 as do_variable, but allows to set a blank variable. Used by 3760 do_format and do_replacestring. 3761 3762rl.c added the show_message function which only shows messages from 3763 setting aliasses, variables, etc when called from the command 3764 line, unless debug is enabled. 3765 3766rl.c Now using the more_output buffer previously only used by the 3767 scrollback buffer to double check actions. 3768 3769 3770December 2004 1.93.6 3771-------------------------------------------------------------------------------- 3772 3773net.c Fixed a crash bug that slipped in with hiding passwords. 3774 3775net.c Commands are now added to the buffer/log files while in split 3776 mode. 3777 3778highlight.c Fixed bug with variables and functions not being used. 3779 Finished highlight code, it no longer messes up old colors. 3780 3781 3782October 2004 1.93.5 3783-------------------------------------------------------------------------------- 3784 3785files.c Added the option to comment using /* comment */ in script files. 3786 3787math.c Upgraded to do 64 bit instead of 32 bit operations. 3788 3789variables.c Added the replacestring command. 3790 3791mapper.c Added the function find_coord, which tries to find a room at the 3792 given coordinate, starting room being 0,0,0 3793 3794 3795October 2004 1.93.4 3796-------------------------------------------------------------------------------- 3797 3798math.c Fixed a crash bug that slipped in. 3799 3800tinexp.c Set \[ to escape as { and \] to escape as }. 3801 3802main.c Now setting application keypad mode and ESC 0 prefix on startup. 3803 3804telopt.c Changed dont_oldenviron response to wont_oldenviron response, 3805 reported to fix the ability to login on some server types. 3806 3807 3808September 2004 1.93.3 3809-------------------------------------------------------------------------------- 3810 3811log.c Fixed a typo that broke the log command, as well as adding 3812 newlines to plain logging. 3813 3814rlhist.c one letter commands are no longer added to the history. 3815 3816 3817August 2004 1.93.2 3818-------------------------------------------------------------------------------- 3819 3820mapper.c added the redit command, for basic mapper manipulation, still 3821 needs a bit more work. 3822 3823telopts.c Added a telnet patch from Julia Longtin which adds the basic 3824 telopt negotiations to initialize a telnet session when 3825 connecting to port 23. 3826 3827rl.c Seeming the readline_echoing_p is reset to TRUE whenever 3828 something is written to the terminal, so I simply set it to 3829 whatever it should be several times a second now in the main 3830 loop. 3831 3832 3833July 2004 1.93.1 3834-------------------------------------------------------------------------------- 3835 3836tintin.h added a room and exit structure for an auto mapper. 3837 3838mapper.c added a creation functions for rooms and exits. 3839 3840files.c added the #readmap function to read in a map. 3841 3842mapper.c added a routine to display an ascii map. 3843 3844mapper.c added an algorithm to calculate the shortest path between two 3845 rooms. 3846 3847main.c the verbatimchar is set as \\ instead of \ as default, this to 3848 allow escaping braces at a later date with this config option 3849 causing trouble. 3850 3851 3852June 2004 1.93.0 3853-------------------------------------------------------------------------------- 3854 3855log.c added variable substitution to *arg. 3856 3857misc.c added variable substitution to *arg. 3858 3859parse.c changed escape character behavior, #format will need %+4s 3860 instead of %4s if used in an argument or action. Used to 3861 be possible to use \%4s but that's no good. 3862 3863tinexp.c \a \e \n \r \t are now translated to the according characters. 3864 (\a equals what #bell does, \r\n would equal #cr, \e is ESC) 3865 3866parse.c removed premature stripping of '\' character in the parsing 3867 routines. Escaped characters are dealt with when data is send 3868 to the mud or screen. 3869 3870 3871April 2004 1.92.0 3872-------------------------------------------------------------------------------- 3873 3874misc.c removed speedwalk command, it's a config option anyways. 3875 3876 3877March 2004 1.91.0 3878-------------------------------------------------------------------------------- 3879 3880parse.c made sure $variables are substituted in the parsing command, 3881 as well as $vars being substituted as session A passes a 3882 command to session B. Otherwise variables remain variable 3883 untill the final execution stage. 3884 3885data.c Added nesting syntax highlighting for lists. 3886 3887math.c Added support for "T" and "F" (feature was lost in rewrite) 3888 3889math.c Added the 'd' operator for a random dice roll 3890 3891config.c rewrote some basic stuff in the configuration routines, 3892 the original setup was a bit dodgy. 3893 3894highlight.c Added priorities to highlighting 3895 3896substitute.c Added priorities to substitutions 3897 3898split.c Added check so a prompt isn't shown for background sessions. 3899 3900variable.c Added %R and %C to #format for nr of rows and columns 3901 3902 3903March 2004 1.90.0 3904------------------------------------------------------------------------------- 3905 3906misc.c added a higher precision to the #sleep command, you can now 3907 enter #sleep 0.5 to sleep for half a second, precision is in 3908 miliseconds. Also using nanosleep now, with additional support 3909 to continue sleeping. 3910 3911variables.c added %t to #format, which will print the epoch time. 3912 added %T to #format, which will print the military time 3913 of the provided number as: hours:minuts 3914 added %d to #format, which will print the military data of the 3915 provided number as: day:month:year (if there's no such thing 3916 as a military date I hope you still know what I mean). 3917 3918rl.c set tintin to 100 loops per second, might seem too much, but 3919 it doesn't matter cpu wise, and it's always fun when tintin's 3920 triggers beat those of most other client. 3921 3922math.c added + - ! and ~ to the mathexp interpreter. 3923 3924regexp.c added color support. codes are entered as <abc> and is pretty 3925 much translated as : \e[a;b+30;c+40m with '8' counting as 3926 a skipped color code. People can write their own functions to 3927 make tintin display colors of their own choice. 3928 3929variables.c added %R to #format, which will print a number between 1 and 3930 the given number in the argument. Removed #random command. 3931 added %m to #format, which will do the same as #math 3932 3933regexp.c added option for end of line terminator ^ so adding ^ to the 3934 end of the line will make tintin return false if the regexp 3935 returns with an unfinished match string. 3936 3937main.c I update the credit screen, figured it would appropriate to 3938 put my own name on it after all this work. I turned it into 3939 a helpfile while at it, #help credits should show it. 3940 3941regexp.c made the substitute recursively double check variables and 3942 functions if they hold a variable of a different kind, useful 3943 for variables or functions holding color codes. 3944 3945misc.c added ignore and debug commands, debug won't do an aweful lot 3946 as of yet though. 3947 3948variable.c figured I should add some more color support, so added a way 3949 to format tintin color names, using #format %c {name} 3950 3951variable.c #format again, %h will create a tintin header line. 3952 3953variable.c fixed how variable assignment was being dealt with in triggers, 3954 can now change and display variables correctly on the fly. 3955 3956rlhist.c changed command repeation behavior. 3957 3958rlhist.c removed the history command, no longer needed to look up the 3959 index, just a working short memory. 3960 3961config.c added repeat on enter option in config. 3962 3963parse.c the command part of a line received by parse input 3964 has vars and functions substituted right away. 3965 3966 If passing a command to another session the functions and 3967 variables are substituted as well, setting the values of 3968 the controlling session. 3969 3970math.c Added the tintoi and tincmp functions, which are enhanced 3971 versions of atoi and strcmp. 3972 3973net.c Added some code to stop enters being written to the scrollback 3974 buffer, useful for people using #cr to bust a prompt. 3975 3976rl.c Got rid of the prompt saving stuff, now using brute force, 3977 refresh the prompt everytime the screen is updated. This to 3978 work around a bug in readline that gives odd behavior with 3979 cursor movement. 3980 3981 3982March 2004 1.89.0 3983------------------------------------------------------------------------------- 3984 3985math.c Added a close to complete mathematical expression routine. 3986 Needs some work still but it works. Also allows for comparing 3987 strings <= >= == != if you enclose the strings in " ". It's 3988 quite a bit better than the old one, though it's not supporting 3989 T, F, and '!' since it's string based, shouldn't be too hard 3990 adding some better string support. 3991 3992ivars.c stripped all the stuff that is now covered by math.c or 3993 variables.c only leaving #ifexits. And then it occured to me 3994 that #if {"$variable" != "$*"} {true} {false} would 3995 very well replace the 'ifexits' check. So ivars.c is no more. 3996 3997data.c deletenode_list now properly keeps track of a global update 3998 node. Can only use one noderoot->update per program state. 3999 4000session.c cleanup_session now properly keeps track of a global update 4001 node. Can only use one gtd->update per program state. 4002 4003rl.c fixed up the split screen behavior, should be a stable prompt 4004 and correct text presentation in split mode now. 4005 4006 4007February 2004 1.88.0 4008------------------------------------------------------------------------------- 4009net.c added telopt negotiations in net.c for naws, terminal type, 4010 and mccp (version 2) 4011 4012tintin.h added the zlib library and a session buffer for mccp 4013 4014tintin.h added a 64KB output buffer, I'll just asume that the mud 4015 output contains a linefeed before BUFFER_SIZE is reached. This 4016 should make output processing a bit smoother, and saves me 4017 from fiddling too much with chopped up data. 4018 4019rl.c added the tintin_printf and tintin_printf2 functions which 4020 format the argument list and pass the data on to tintin_puts 4021 or tintin_puts2 4022 4023tintin.h changed the node list struct to work with a head/tail pointer, 4024 and turned it into a double linked list, updated all .c files 4025 affected by this change. 4026 4027*.c cleaned up the code, using tabs instead of spaces and aligning 4028 the brackets. 4029 4030main.c switched from rand to rand48, it's seeded once upon startup 4031 which is sufficient. 4032 4033main.c added a global tintin session (gts) the idea is to get rid of 4034 most global variables. 4035 4036tintin.h added a bitvector to the session structure which will contain 4037 all session flags, various changes throughout the code changing 4038 global variables into flags. 4039 4040rl.c fixed up the cursor positioning for split mode and fixed the 4041 linewrap routine which was off by 1 character, resulting in 4042 extra lines on a perfect match. 4043 added a special flag for mud output for split mode, to avoid 4044 color loss when restoring the cursor (which also restores the 4045 cursor color, hence the color loss) 4046 4047tables.c new c file, which will contain some tables, the current setup 4048 is a bit tedious. 4049 4050tintin.h moved all header files into tintin.h cause the old setup with 4051 40 headerfiles was giving me a headache (literally). 4052 Grouped it into typedefs, globals, constants, macros, 4053 structures and functions 4054 4055tintin.h changed all commands to use the COMMAND typedef, as well as 4056 all commands now use universal arguments and naming, this to 4057 make a command table. 4058 4059*.c There's always a session now, with a few checks for gts (global 4060 tintin session) which cannot send or receive data. Passing 4061 session data along with a couple of functions which should 4062 make background sessions less spammy. 4063 4064strhash.c Added a simple string hash routines which I'll be using for a 4065 scroll back buffer. It uses a bit of memory, but should save a 4066 lot more for big scroll back buffers. 4067 4068main.c changed tstphandler to call kill with a null pid, otherwise it 4069 wouldn't work when tintin was started from a script 4070 4071ivars.c removed backwards compatibility for fixedmath 4072 4073buffer.c scroll back buffer and a grep command added 4074 4075rl.c made the init_readline function actually initilize readline, 4076 added 4 default keybinds for the scrollback buffer. 4077 4078tintin.h added a keymap to the tintin_data structure, which will be 4079 used for keybinding. 4080 4081text.c got rid of the linewrapper in rl.c and added a word wrap 4082 routine instead. 4083 4084log.c all vt102 codes cept the linefeed are stripped for logged data, 4085 the lowlog thingie can still be used. 4086 4087chat.c Removed this entirely, it's a mess and there are many stand 4088 alone p2p chat programs available. 4089 4090*.c moved some more global data to the session and data structures 4091 4092rltick.c removed entirely 4093 4094ticks.c removed entirely 4095 4096tick.c wrote a new ticker from scratch, uses alarm(1) to sleep 1 4097 second, the user can now define a list of tickers, pretty much 4098 like aliasses, they'll trigger when the timer expires. Added 4099 the 'tick' and 'untick' command for manipulation. 4100 4101macro.c added 'macro' and 'unmacro' commands for keybinding, I couldn't 4102 figure out how to actually undo the real macro's though 4103 without using a messy hack, so I just skipped that till later 4104 for now. 4105 4106session.c Got rid of the zombi code, will try to add a better connection 4107 handler at a later data, but the zombi code is not the answer. 4108 4109tintin.h Changed architecture further turning the lists from individual 4110 lists into an array of lists. Added an array in tables.c for 4111 additional data. 4112 4113substitute.c Changed the default #gag char from '.' to character 255, this 4114 to prevent weird behavior when a dot is displayed on an empty 4115 line for any kind of reason. 4116 4117config.c Added a configuration menu, defaults are loaded upon startup. 4118 4119walk.c Removed, didn't really look into it deeply, but I adjusted 4120 path.c to allow user progged walking using a ticker. 4121 4122parse.c Added 2 action checkers, first one checks priority 0 to 4, 4123 after that substitutions are checked, priority 5 to 9 is 4124 checked after substitutions. 4125 4126parse.c do_one_line now strips colors per default before passing the 4127 text on to check_one_action 4128 4129action.c rewrote the %0 - %9 check_one_action regexp routine, it's 4130 a bit cleaner and slightly faster now. 4131 4132action.c rewrote substitute_vars, ';' is changed to : per default 4133 4134variable.c rewrote subsitute_myvariables, no longer supporting $number 4135 variables. ';' is stripped per default. This also easily 4136 allows a change so variables can contain numbers. 4137 4138variable.c #format {variable} {format} {arguments} 4139 This allows string formatting, numbers are not supported. 4140 Added a format parser for further functionality, for now %l 4141 will lowercase, %u will upper, and %r will reverse the 4142 argument given. There's a maximum of 10 arguments. 4143 4144variable.c Due to the format command, prepad, postpad, tolower, and 4145 toupper are no longer required, so I removed the commands. 4146 I realise this generates a backward compatibility issue, but 4147 it's easier to find the new commands without 70 old commands 4148 spamming the help files and command lists. 4149 4150split.c moved the split screen stuff from rl.c to this new file, and 4151 placed the prompt commands/routines there as well. 4152 4153January 2004 1.87.0 4154------------------------------------------------------------------------------ 4155 After getting tired of seeing my favorite mud client being 4156 trashed on TMC or simply not having the required functionality 4157 that is expected nowadays to be worth mentioning, I figured it 4158 was time to see what I could do. So I downloaded the latest 4159 official tintin++ release v1.86b and started an evaluation. 4160 4161 It didn't take long to find out the main problems. Over 4162 functionality, inconsistant command syntax, total chaos, 4163 anarchistic implementation views, all in all enough to end up 4164 deleting about 33% of the code, and rewriting over 50% of what 4165 remained. Halfways during that process I ran into Bill on the 4166 wintin forum and I promptly asked him permission to release an 4167 official tintin++ derivative. And it was agreed that I could, 4168 if he liked what I came up with. To make a long story short, I 4169 finished a beta version several weeks later and got Bill's 4170 permission to name it tintin++. 4171 4172 The next step was getting permission for the manual, I googled 4173 up a notification from the authors which said the manual had 4174 been GPL'ed, see tintin15.cr, last issue fixed. 4175 4176August 2001 tintin15.cr 4177------------------------------------------------------------------------------ 4178 4179This package was debianized by Jordi Mallach <jordi@debian.org> on 4180Wed, 22 Aug 2001 03:23:36 +0200. 4181 4182It was downloaded from http://mail.newclear.net/tintin/archive.htm. 4183 4184Upstream Authors: Davin Chan <davinchan@earthlink.net> 4185 Robert Ellsworth <rse@newclear.net> 4186 See the CREDITS document for the full list of contributors. 4187 4188 4189Copyright: 4190 4191Tintin++ was relicensed under the GNU General Public License on 4192July 12th, 2001, when version 1.86 was released. The full text 4193of the GNU GPL can be found in /usr/share/common-licenses/GPL on 4194Debian systems. 4195 4196Additionally, the Tintin++ manual was placed under the GPL at my request 4197by Robert Ellsworth, it's author. The following is the mail in which he 4198granted me permission to publish it under the new license: 4199 4200> From: "Robert Ellsworth" <rellsworth@wattsup.com> 4201> Subject: RE: Tintin install mess 4202> To: "'Davin Chan'" <davinchan@earthlink.com>, 4203> "'Jordi Mallach'" <jordi@sindominio.net> 4204> Date: Tue, 28 Aug 2001 09:53:50 -0400 4205> In-Reply-To: <3B8AF5A5.557E35E0@earthlink.com> 4206> X-Mailer: Microsoft Outlook, Build 10.0.2627 4207> 4208> Well, 4209> 4210> RE #1) Well, being that I am the author, then yes, I have no problem 4211> with the changing of the manual to GPL. :-) 4212