-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathChangeLog
592 lines (540 loc) · 21.1 KB
/
ChangeLog
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
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