1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602
|
2.3:
* reworked SSL security, requiring validly signed certs.
For the old model, append "save".
* time-based commands accept compound units like {1h 20m 10.5s}
* periodic #delay
* labelled #delay auto-removes previous instances
* #inputcolor allows configuring the input bar
* #ratelimit
* #stretch
2.2:
* #colorize/#highlight can apply partial changes (like, setting
background without altering foreground, underline, etc)
* remote charset defaults to #UTF-8
* tabs are allowed in places where spaces are expected
* .bz3 logging
* #deleteitems allows multiple patterns
* #unroute with a single argument to delete both ways
* display something in a new session before some text comes
* use MPTCP if available
* #strwidth (#strlen that ignores color codes)
* #info shows session duration
* #mudcolors ANSI
* bugfix: #mudcolors affected all sessions
* #colorize {} for canonicalizing color codes
* bugfix: file descriptor exhaustion if a session fails to connect
over a thousand times
* bugfix: some #substitute messaging
* bugfix: input bar was sometimes brightened
* bugfix: lock-up on unary minus
* #shift
2.1:
* bugfix: patterns with %1$ and matching an empty string
* reworked action matching code, speedup w/ many priorities
2.0:
* MASSIVE increase of speed of substs/actions/highlights
* [COMPAT BREAK] substs/actions apply variables immediately
* new optional dep: hyperscan/vectorscan
* new optional dep: valgrind
* (inline) #abs
* (inline) #round
* (command) #reverselist
* (command) #findevents
* (command) #findvariables
* (hook) logclose
* log files are locked while in use
* bugfix: promptactions were not saved
* #tickon can take an offset
* no limit on route locations
* control characters are caught and shown as Unicode symbols
1.0.26:
* fix tests on ancient cmake
* support key codes on Zutty
* #sqrt
* fix #condump
* bugfixes for math issues
1.0.25:
* CMake based build system
* #zap <session>
* #trim
* colors behave as attributes not text in #substr #prepad #postpad
* #stty
* avoid wasting a line if there's no partial-line prompt
* lots of bugfixes
* lots of code reorg to add new bugs
1.0.24:
* 256-color support (instead of shoehorning to 16)
* auto-set #char only on first read
* #ifaliasexists
* fractional math
* // for fractional division
* % for modulo
* sub-second time handling
* make $_time work as documented
* $TIME, $STARTTIME, $TIMETOTICK, $RANDOM, $LINENUM, $USERIFLE
* drop #profile
* free everything if running on valgrind
* use a faster data structure, for #antisub only for now
* trigonometry: #sin #cos #angle
* bugfix: an expression with >100 tokens
* #bold
* bugfix: key codes were misinterpreted inside "screen"
* #unvar on multiple variables
1.0.23:
* display error message for why a connection was dropped
* support bright background colors user-side
* protect against unpaired/underflowing {} in $1 type variables
* allow anchoring the end of an action/substitute match (^foo$)
* documentation improvements
* internal: don't replace malloc anymore (glib is actually slower now)
* internal: drop a lot of obsolete autoconfage
1.0.22:
* bugfix: user-after-free after #zap inside a hook
* bugfix: positional %vars were broken
1.0.21:
* logging to .zstd
* #hook tick, pretick
* #unvar {var1 var2 var3}
* #firstlower
* more keys recognized by #bind (esp. Alt-key)
* skip no-change statusbar updates
* drop #news
1.0.20:
* speed up some string operations
* fix accessing files via ~user
* recognize MidArrow on some terminals
* fix cross-building
* move the homepage from SourceForge to GitHub
1.0.19:
* fix way too bright handling of 256-color codes
* fix a crash on interrupted-by-signal writes
* don't bother advertising #news
* fix building from git on MacOS X
1.0.18:
* lots of internal cleanups
* idle/serveridle in #info
* assorted minor fixes
* password star-out doesn't stay for multiple lines
* log-handling tools have been split out
1.0.17:
* pipetty, a new tool to fool isatty()
* 256/24-bit color support, full in ansi2html, shoehorned to 16/8 colors
in KBtin
* ansi2html: massively improved support for other attributes
* ansi2html -n (headerless), -w (on white)
* ansi2html: unhandled control characters get Unicode placeholders
* support for overstrike as ~8::~
* #hook title
* #sendchar
* $SERVERIDLE pseudovar
* portability fixes on *BSD and Hurd
1.0.16:
* #initvar
* bugfix: xterm titles were ignored
* processing speed in #info
* bugfix: proper F1-F4 and KpadMinus on xterm/gnome-terminal/konsole
* TCP keepalives every 30 seconds rather than 5 minutes
* bugfix: ansi2html rendered white as black
* dropped support for non-GNU make
1.0.15:
* #loginputformat
* TCP keepalives
* bugfix: crashes when resizing the terminal window
1.0.14:
* logging to .xz
* proper handling of long lines when screen width changes
* don't include soft line wrapping in #condump
* omit the greeting message (credits, etc) in #condump
1.0.13:
* handle broken terminals which report screen size of 0x0 a bit better
* increase several fixed limits
* bugfix: crash if a session is closed from an event or tick
* drop support for single byte only compilation
* yTin's pseudovars: _random, _time, _clock, _msec, HOME
* #ctoi for Chinese numbers, taken from yTin
* start month and yday from 1, not 0 (#localtime, #gmtime)
* fix compilation without zlib. Fail such compilation with a help
message if --disable-mccp is not given.
* auto-remake function prototypes
* bugfix: UTF-8 chars split by a packet boundary were mangled in the
log.
* SSL support (#sslsession).
1.0.12:
* #localtime, #gmtime
* bugfix: segfault on MCCP end (not exploitable)
* bugfix: active session changes inside of compound commands didn't
propagate properly
* another stab at gnome-terminal and blue lines...
* ansi2html: skip a character on unknown codes
* necrocomputing -- support for BSD's iconv brain damage. Hey, guys,
it's 2008, even _SCO_ does basic POSIX.
* new BSD has grantpt() but no getpt() or /dev/ptmx, handle this
1.0.11:
* bugfix: don't double the asterisks when typing in a password
* turn PARTIAL_LINE_MARKER into a variable (not settable yet)
* bugfix: -r starting with a non-letter
* work around gnome-terminal's blue lines
1.0.10:
* more transliterations, mostly for line-drawing characters
* support for Form Feed and ANSI CLS
* support for CJK double-width chars (TTY driver)
* TTY driver: combining chars on output, still buggy on input
* CJK and combining chars in #substr, #postpad and #prepad
* bugfix: #prepad took the end not start of the string, as opposed to
what the documentation said
* use glib's g_slice instead of malloc if it's installed, it's
insanely faster
* allow "weeks" in #time
* re-written from scratch ansi2html, using CSS instead of tables
* bugfix: input and #logcomment were mangled in ttyrec logs
* new #mess type: logging
1.0.9:
* #ord as inline
* MCCP compression
* workaround for a gnome-terminal bug
* 'make bin' target
1.0.8:
* in the dumb terminal mode, "assphrase:" will trigger password
protection as well
* bare \r will turn the line into a draft, and thus cause it to be
cleared when some new text appears
* bugfix: pathologic action priorities were ordered wrong
* #doactions, #dopromptactions
* #chr, #ord, #hexord, bugfixes in UTF-8 parsing
* bugfix: #textin with an empty line
1.0.7:
* end-of-file ends KBtin when in non-fullscreen UI and no sessions are
left
* explicit -q or #verbose 0 hushes #read
* UTF-8 support; likely to be buggy and/or incomplete (massive change)
* IPv6 support
* UI drivers support (specify -p or -i on command line)
* some basic regression tests
* #read ignores #! on the first line
* history is no longer local to a session
1.0.6a:
* bugfix: variables were not resolved in #log
1.0.6:
* made commands case-insensitive, so #ALIAS works
* bugfix: the priority of "6a" is supposed to come before "60"
* made KBtin a more responsive to keyboard input when under a heavy load
* #gagthis
* made "#system something &" actually work
* intelligent use of TCP_NODELAY
* add a hook for closing KBtin for sessions started with -r/-s which
didn't make any use of #hook
* bugfix: #listlength
* logging by >, >> and |
* #condump won't insert unneeded background colour codes anymore
* logging to .bz2
* #logtype
* bugfix: highlights prevented prompts from being recognized as such
* moved to automake1.9
1.0.5:
* added a symlink kbtin -> KBtin to avoid mixed-case executable
name while retaining old name as well
* \e[39m, \e[49m
* manual.html (just a converted version of the online help)
* commands that don't work on an architecture are no longer accessible
* outgoing 0xff bytes are sent as IAC IAC telnet sequences
* the terminal string will cycle between "KBtin", "hardcopy",
"unknown" and "KBtin-1.0.4" (conforming to RFC 1091)
* if you undefine UI_FULLSCREEN in tintin.h, KBtin will be pipe-
friendly; for use as a scripting language or for regression tests
* telnet EOR sequences are allowed and treated as GAs
* bugfix: unterminated TELNET IAC SB subnegotiations no longer cause
a buffer overflow
* bugfix: sometimes TELNET sequences were not carried properly over
a packet boundary
* cleaned up command line parsing, added -q, -c, -s and -r
* a (too short) manpage added
* axed the old BSD license with advertising clause from acinclude.m4,
the only snippet we use is in public domain
* window title in xterms
* #undelay as an alias for #remove=#unevent
* bugfix: \e[K and \e[D used to swallow some text
* core dumps will now be properly generated when appropriate
* #pretick
* some tintin++ 1.86 compatibility:
* #ifexists
* #ifstrequal (=#strcmp)
* #show_pretick (=#pretick)
* bugfix: no more corrupted logs when KBtin gets killed by a SIGINT (^C)
or a SIGHUP (disconnect)
* \e[J clears the current line (\e[1J and \e[2J still don't work ok)
* bugfix: #grep's regexp can now contain variables
* terminal size data is now passed to the pseudo-terminals
* bugfix: hangup if >29 sessions (oh well... :p)
* bugfix: #act {blah} {#unact *} no longer causes an infinite loop
* inlines: #grep, #match, #strcmp
* pty handling code changed
* consider \r to be an end-of-line char in #read, for M$-DOS files
* workaround for dorky bg color handling in PuTTY and screen. Will
slow down innocent xterm users, too :(
* information about logging in #info
* the echo for player's input has its own color (#define ECHO_COLOR)
* #collate
* #expand
* #hook/#unhook
* all (?) flags are saved by #write and #writesession
* You can use #delay with a delay of 0.
* log only commands explicitly typed by the player
* #logcomment
* Use exec when invoking something using /bin/sh
1.0.4:
* changes needed to compile on Tru64:
* no "extern inline"
* \e -> \033
* autoconf checks to test whether the code for inlined
functions is actually generated
* changes needed to compile on Cygwin:
* checking for stropts.h
Note: As opposed to UNIX systems, which all enjoy the whole
functionality, KBtin is crippled on Win32 systems. Basically,
while the core functionality works, #run, #system, #shell,
#keypad, #suspend, gzip logging and COMPRESSED_HELP are broken.
Hell, it won't even compile from the sources without your
manipulation right now (no autoconf check to disable
COMPRESSED_HELP).
* #grep
* #retain
1.0.3:
* bugfix: color codes in programs spawned by #systems work correctly
once again
* removed Esc from editing keys
* made it possible to #bind sequences containing Alt
* added Alt-{<,>,B,F,L,U,C,Backspace,T} to the editing keys
* #gauge renamed to #timecommand, and documented
* bugfix: don't use pclose(), as we're not using real popen()
* bugfix: #reverse
1.0.2:
* bugfix: #send with no session
* #gauge
* #debuglog (not officially introduced as it's not finished yet)
* bugfix: some commands ignored variables
* proper handling of IAC IAC sequences
* bugfix: '#<sesname> {command}' sent verbatim {}s.
* bugfix: #message types were not propagated correctly to new
sessions, that could crash KBtin
* Nazi protection against too deep recursion.
* bugfix: #path did something completely different than the docs said
* added italic and underline as valid "colors"
* when a session is started, it will inherit all settings from the
currently active session instead of the null session
1.0.1:
* a slight change of the logic of highlights being suppressed
before/after alphanumeric characters
* don't disagree when a server tells us they want to turn on echo,
some MUDs take offense if we do
* IRIX64 has no snprintf, cope with that
1.0.0:
* first public release
* the message prompting to read #news is disabled for this version
0.4.5:
* man pages for ansi2txt and ansi2html
* added ^P, ^N and ^U to the editing keys
* $IDLETIME
* #change
* added tab as a valid separator between command and its arguments
* changed all(?) error messages to use tintin_eprintf() instead
of tintin_printf(). If "#message error" is on, eprintf will
pierce even the !#verbose gag.
* added ^A, ^E, ^F, ^B, ^T, ^K, ^W and ^Y, changed behavior of ^D
on non-empty lines
* bugfix: undefined non-alphabetic variables no longer cause
expressions to fail
* #send added in place of #verbatim <text>, so no #verbatim is not
overloaded any longer
* bugfix: resizing the window or using #status no longer screws up
the display on SunOS
* proper signal handling for systems where signals follow System V
semantics
* added support for BSD-style pseudoterminals, needed for run.c to
compile on BSD systems
0.4.4:
* #dogoto
* bugfix: #ticksize 0, #ticksize 123blah
* bugfix: #gag with invalid syntax was handled incorrectly
* removed #strip, it was completely useless
* bugfix: {* /}, {+ -}, {<= < > >=} evaluate correctly now
* renamed log2{html,txt} to ansi2{html,txt} and actually bundled
them with KBtin
0.4.3:
* action/promptaction priorities are sorted in a semi-lexicographic
order, so numbers sort properly
* new #message type: error (to show error messages even if they would
be otherwise hidden)
* #verbose
* the following flags are now local to sessions: verbose, verbatim,
blank, echo, speedwalk, togglesub, presub and the #message toggles
* shell-style "!!" history commands will now obey #verbatim
0.4.2:
* bugfix: #writeses doesn't forget about pathdirs anymore
* bugfix: #killall doesn't forget about binds (+plus a memory leak)
* hash tables instead of lists for: variables, aliases, binds and
pathdirs
* #unpathdir
* bugfix: lines of background color no longer appear on the screen
* the list of commands is no longer hardcoded as a looong list of
is_abrev()s; we use a generated hash table of code pointers instead
* KBtin_help is now distributed in uncompressed form
* protection against division by zero in #math and friends
0.4.1:
* bugfix: #cr doesn't send two lines instead of one any longer
* #atoi
* #verbatim <line>
* #strcmp
0.4.0:
* TELNET protocol support. KBtin understands the following options:
- ECHO (we attempt to turn off their echo)
- SUPPRESS GO AHEAD
- TERMINAL-TYPE (type sent is "KBtin")
- NAWS (window size updated every SIGWINCH)
* catching SIGCONT to redraw screen after being stopped
* --More-- kludge. We now hide the input line by default once the
remote end tells us to turn echo off, to protect passwords on
non-English MUDs.
* "make install" will install NEWS and KBtin_help.gz
* TERM environment option in #run passed as "KBtin"
0.3.9:
* multiple config files given from command-line when invoking KBtin
* #sub {a} {b} works as old #sub {%1a%2} {%1b%2}
* substitutes can trigger multiple times in a single line
(#sub {a} {b} on "hahahaha" -> "hbhbhbhb")
* bugfix: #action no longer segfaults
* bugfix: changing the routes while in #goto won't crash KBtin anymore
(we use the old data)
* we send \r\n instead of \n, for compatibility with the telnet
protocol (only for real sockets, of course)
* the NEWS file is statted to tell if KBtin was updated since the
last time you read it. BUG: the check will fail if several users
share the same copy of KBtin
0.3.8:
* changed tintin_puts2 to tintin_printf through the whole source
* more verbose error messages in most cases
* bugfix: #verbatim can be used in the middle of an alias
* incomplete lines are no longer considered prompts if the background
color is non-black at the end
* promptactions fire on "blank" with nothing but spaces and colorcodes
only if they're complete -- to prevent expensive processing of
highlights and substituties
* optimized set_variable
* buffer-overflow checks in most functions
* aborting commands in case of a buffer overflow (incomplete!)
* #match doesn't substitute old values of variables in its command
anymore (use $$1 to get them)
* bugfix: #delay can be called from events without events disappearing
* bugfix: write errors while logging no longer crash KBtin
* #condump can dump log to a .gz file
* changed configure.in to work with newer versions of autoconf
* ESC[m properly recognized as ESC[0m
* #shell
* bugfix: \line before creating a session was improperly echoed
* bugfix: tab (ASCII 09) characters no longer screw up linewrap
* help.c now uses mypopen instead of popen to hide "Broken pipe"
messages
* workaround for systems with no *n*printf
* ignoring errors on ioctl(TIOCSWINSZ)
0.3.7:
* & added to the list of possible prompt chars
* #sortlist
* bugfix: no more segfaults in #write
* #match
* messages from successful calls of #system can be disabled by #mess
#system
* lines are joined together in #read only in case of a tintin-command
* #decolorize
0.3.6:
* parse.c didn't check for #unpromptaction! Aargh!
* #char now accepts also ASCII characters >127
* all bindable keys scroll screen to the bottom of output
* #gag and #ungag no longer touch regular substitutes
* promptactions fire on complete lines as well
* a quirk in VT100 standard: \n as 81th character in line should be
ignored
* bugfix: ${varname} with positional variables in varname
* #dosubstitutes
* #dohighlights
* incomplete lines ending with one of: ?:>.*$#] are considered prompts
and left there if the user types something
* local echo shows color codes intact instead of changing color text
* #run now sets the pseudo-terminal modes correctly. This means no
double-echoing unless a stupid program like telnet changes the
modes.
* bugfix: #zap doesn't (hopefully) leave zombie processes anymore
* tilde conversion in filenames: "~/" = home dir, "~user/" = user's
home dir
* #if substituted variables in its command part too early
0.3.5:
* most commands substitute variables in their args
* #help checks also the dir where KBtin binary resides
* #removeevent can be used to remove #delays
* #event and #unevent as other names for #delay and #remove
* bugfix: #foreach no longer prepends space to implicit arguments
0.3.4:
* KBtin now compiles with -Wall with almost no warnings (save for those
related to ioctl and pseudo-terminals)
* delayed variable substitution - FINALLY!!!
* #foreach can now use positional parameters instead of simple append
* spaces between the command and first argument are not ignored if it's
a MUD command
* statistics from multiple #reads are combined into one
* split-line in #read
* #map works again only on #pathdirs
* bugfix: cannot delete the same action twice
* bugfix: deleting an alias being executed
0.3.3:
* $COLS and $LINES pseudovariables will give you the terminal size
* >place as a shortcut for $loc>place
* spaces before the command are no longer ignored
* #strlen command and inline
* #map now doesn't ignore commands which are not among #pathdirs
* #log <name> now works properly if already logging
* variable names can now contain digits and underscores
* events no longer ignore '#message events' turned off (duh!)
* #explode and #implode commands
* #substr instead of #index
* $PATH pseudovariable
* help file added
0.3.2:
* #index uses now 1-based indices (for consistency with other commands)
* #select and old #foreach removed - variable names shouldn't be used
for storing values!
* #foreach command: iterating through a list
* bugfix: #suspend now deals properly with terminal settings
* bugfix: #system no longer screws up display if the command writes
anything to the screen
* #boss - removed, the input line will give you away anyway
* #write and #writesession now write #gag instead of #substitute {-gag-}
* bugfix: ~~ is no longer considered a color code
0.3.1:
* ~fg:bg:blink~ color codes
* ESC[nC
* #promptaction command added
* splitting long lines coming from MUD to prevent buffer overflows
0.3.0:
* background and blink color codes (0..255)
* rewriting last line of output to make actions guaranteed
* more flexible time format
* portable implementation of run.c
0.2.9:
* #margin command added
* actions, delays and binds ignore #verbatim
* bugfix: ^D now works ok in #verbatim mode
* #bind command added
* bugfix: #blank should now work properly, fixing this bug improved
KBtin's speed about twice BTW :-)
* incoming ~n~ codes are changed to `n~ instead of working as a
colorcode
* unused listnode->pr fields now use 0 instead of allocating a string
just to put "0" there (that was a waste of memory)
0.2.8a:
* gz-logging
0.2.8:
* bugfix: [Esc] works again
* #write and #writesession now support routes
* #writesession now writes also changed aliases/actions/whatsoever
* multi-color highlights
0.2.7:
* KBtin no longer uses the ncurses library! (major rewrite of user.c)
0.2.6:
* fixed bug in simplify_list when an item is a single character
Ex.: #splitlist head tail {a b c d}
* fixed bug if an argument of an alias has embedded braces
Ex.: #alias aa {#showme $1}
aa {{a b} c d}
* bugfix: #verbatim no longer crashes KBtin
* no longer removing braces from the tail of the list in #splitlist
Ex.: iterating through list 'a {b c} d e {f g}'
* #deleteitems command added
|