6 Changes since tio v1.31:
10 * Minor code style cleanups
12 * Cleanup print macros
16 Make sure output is transmitted immediately by flushing the output.
20 * add optional timestamps
22 with "-t" or "C-t T", toggle a timestamp prefix to each line.
30 * Added macOS compatibility
32 * Made O_NONBLOCK flag to open() call specific to macOS only.
34 * Added macOS-related details.
36 * Added O_NONBLOCK flag to open() call for macOS (10.13.6) compatibility.
40 Changes since tio v1.30:
48 * Clarify the input/output variable names (No-op change)
50 * Organize options the same sequence they are mentioned in cmdline help.
54 * Map CR->NL locally on output instead of using tio.c_oflag |= OCRNL.
56 This mostly is intended to have local echo output exactly what is sent
57 to the remote endpoint.
58 A nice side-effect is, that it also fixes tty-implementations, that can't
59 deal with the OCRNL flag on tio.c_oflag.
61 * Provide local-echo option.
63 Can be switched on with -e on the command line.
64 Can be toggled with Ctrl t e while program is running.
66 * Write to logfile as soon as we have the data, don't buffer.
68 Logfiles are important to see what happened, in particular if something
69 unexpected happened; so we want to make sure that the logfile is flushed
72 Before this change, the logfile was typically written at the end in
73 a large chunk as the default (large) buffering applied. Now, characters are
74 written out ASAP, so it is possible to get a live-view with a
79 Changes since tio v1.29:
83 * Update man page and bash completion
89 * ONLCRNL: change the method to map NL to CR-NL
93 Changes since tio v1.28:
95 * Add mapping flags INLCRNL and ODELBS
97 The following new mapping flags are added:
99 INLCRNL: Map NL to CR-NL on input.
100 ODELBS: Map DEL to BS on output.
102 Flags requested and tested by Jan Ciger (janoc).
106 Changes since tio v1.27:
112 * Add snap status to README.md
114 * Add README.md to prettify GitHub page
120 * Add missing header file under musl-libc
122 Musl's inclusion tree slightly differs from glibc, therefore TCGETS2 is
123 not reachable through sys/ioctl.h, so asm/ioctls.h needs to be included
128 * Fix grammar and typos
132 Changes since tio v1.26:
136 * Add support for setting non-standard baudrates
138 Support for non-standard baudrate settings will be automatically enabled
139 if the termios2 interface is detected available. However, to play it
140 safe, the old and widely supported termios interface will still be used
141 when setting standard baudrates.
149 Changes since tio v1.25:
153 Make stdin behave more raw'ish. In particular, don't
154 translate CR -> NL on input.
156 * Add special character map feature
158 Add a --map option which allows mapping special characters, in particular CR and
159 NL characters which are used in various combinations on various platforms.
173 Changes since tio v1.24:
175 * Fix error applying new stdout settings
177 On Fedora 26 tio will quit with the following error message:
179 "Error: Could not apply new stdout settings (Invalid argument)"
181 In case of Fedora, it turns out that the new stdout settings used are a
182 bit too aggressive because an empty termios structure is used. To remedy
183 this we reuse the existing stdout settings and only reconfigure the
184 specific options we need to make a "raw" stdout configuration.
186 * Remove unused pkgconfig in configure
190 Remove unused variable.
194 Changes since tio v1.23:
196 * Optimize clear screen command
198 Replaced system call with inline ANSI/VT100 clear screen code sequence
200 * Fix bash completion installation
202 Fixed the configure script to avoid that the bash completion script gets
203 installed outside of the prefix location. The default install location
204 is now $prefix/share/bash-completion/completions.
206 Use the configure option '--with-bash-completion-dir=PATH' if you need
207 to install the bash completion script elsewhere.
211 * Add missing commas in conditional sentences
215 Changes since tio v1.22:
217 * Update copyright headers
225 Changes since tio v1.21:
227 * Update man page date
229 * Update copyright year
233 * Update README and man page
237 Changes since tio v1.20:
239 * Add support for hexadecimal mode
241 A new key command 'ctrl-t h' is introduced which toggles between
242 hexadecimal mode and normal mode. When in hexadecimal mode data received
243 will be printed in hexadecimal.
245 * Do not distribute src/bash_completion/tio
247 Since the bash completion tio script is now autogenerated from tio.in it
248 should not be distributed in the tarball.
250 * Add missing forward flag
252 * Update AUTHORS file
256 * 'ctrl-t b' to send serial break.
260 * Removed git commit references from ChangeLog
262 ChangeLog is primary useful for users who don't have the git repository
265 Replace git commit references with version numbers; or if the change
266 only cleans up another change with no release in between, remove the
267 changelog item completely.
271 Changes since tio v1.19:
273 * Added more error handling of terminal calls
275 Also removed duplicate terminal flushing calls.
277 * Revert "Added support for non-standard baud rates"
279 This reverts a change made in v1.18.
281 Reverting because supporting non-standard or arbitrary baud rates is
282 troublesome because the c library provides no means of doing so and even
283 if bare metal linux kernel interface is used it will not work on all
284 Linux kernels version.
288 Changes since tio v1.18:
290 * Rearranged key commands
292 Rearranged the key commands:
294 ctrl-t c (clear screen) is now
295 ctrl-t l which is similar to the well known shell ctrl-l
297 ctrl-t i (show settings information) is now
298 ctrl-t c (show configuration)
300 Updated man page accordingly.
302 * Added "ctrl-t c" key command to clear screen
306 Changes since tio v1.17:
310 * Added support for non-standard baud rates
312 Only enabled when possible, that is, when the BOTHER definition is
315 It is untested but it should work as described here:
316 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683826
318 Some Cypress USB<->serial devices supposedly supports arbitrary speeds.
320 * Generate baudrate switch cases based on detection
322 Support a single source of baud rate configuration as discussed in
323 https://github.com/tio/tio/issues/45 .
325 To do so, autogeneration of the switch cases which do the baud rate
326 option value check and configuration/conversion in tty_configure() is
327 introduced via a single macro.
329 Just to be safe, this change also enables configure detection of all
330 baud rates, including the ones previously assumed supported by most/all
335 * Exit when not a tty device in autoconnect mode
339 * Added non-standard baud rates that are defined on FreeBSD
341 * Capitalized "GitHub" in README
345 Changes since tio v1.16:
347 * Compacted tty_configure() a bit
349 * Fixed automatic baud rate enablement
353 * Added autodetection of available baud rates
355 Various platforms support different baud rates.
357 To avoid adding platform specific handling generic baud rate detection
358 tests are introduced in the configure script. Successfully detected baud
359 rates are automatically enabled. This applies to both the C code and the
360 bash completion script.
363 Baud rates below 57600 are defined by POSIX-1 and supported by most
364 platforms so only baud rate 57600 and above are tested.
366 * Updated bash-completion
368 * Fixed printf() format type
370 * Added Travis build configuration
374 * Generated bash completion at configure time
376 * Reduce code duplication in baud rate detection
378 * Add support for baud rates 200 and 1800
380 * Fixed baudrate type
384 Changes since tio v1.15:
390 * Removed obsolete packaging files
392 * Removed use of deprecated bzero()
396 Changes since tio v1.14:
398 * Removed + to remove potential confusion
400 * Added input digit checks
402 * Fixed license string
404 * Introduced tty_configure()
406 Moved tty configuration actions to tty_configure() in tty.c. This way
407 options.c is strictly about parsing options nothing else.
409 * Function names cleanup
411 * Updated AUTHORS file
413 Added Nick who created the new tio package for Arch Linux.
415 * Fixed tx/rx counters type
419 * Include config.h before standard headers
421 Large file support was meant to be enabled in v1.11.
422 This change enables it for real.
426 Changes since tio v1.13:
428 * Fixed tio_printf macro
432 Fixed launch hints not being printed in no autoconnect mode.
434 * Added 'ctrl-t ?' to list available commands
436 * Fixed log mechanism
438 To avoid echoing only log what is received from tty device.
440 * Improved tio output
442 Added titles and indentation to commands output for clearer separation
443 when firing commands repeatedly.
445 Also added print of tio version and quit command hint at launch.
447 * Cleaned up tio print mechanism
453 "allow" is a transitive verb, which requires an object,
454 so "allow to <verb>" is ungrammatical.
460 Changes since tio v1.12:
462 * Fixed some error prints
464 * Fixed error printing for no autoconnect mode
466 Always print errors but only print silent errors when in no autoconnect
469 * Added key command for showing session settings
471 A new key command "ctrl-t i" is added to allow the user to display the
472 various session settings information (baudrate, databits, log file, etc.).
474 This is useful in case you have a running session but have forgotten
475 what the settings are.
479 Changes since tio v1.11:
481 * Consolidated command key handling
483 * Moved delay mechanism into separate function
485 * Retired obsolete usleep()
487 Replaced with nanosleep()
489 * Added simple tx/rx statistics command (ctrl-t s)
491 To display the total number of bytes transmitted/received simply perform the
492 'ctrl-t s' command sequence.
494 This feature can be useful when eg. trying to detect non-printable
497 * Further simplification of key handling
499 Changed so that the "ctrl-t ctrl-t" sequence is now simply "ctrl-t t" to
500 send the ctrl-t key code. This is inspired by screen which does similar
501 to send its command key code (ctrl-a a).
503 This change also eases adding new key commands if needed.
505 Updated man page accordingly.
507 * Cleaned up and simplified key handling
511 * Insert output delay only if something was output
515 Changes since tio v1.10:
517 * Enabled large file support (LFS)
519 Added autotools AC_SYS_LARGEFILE to support 64 bit file size handling.
525 Changes since tio v1.9:
527 * Introduced lock on device file
529 Tio will now test for and obtain an advisory lock on the tty device file
530 to prevent starting multiple sessions on the same tty device.
536 * Treat EOF on stdin as error
540 Changes since tio v1.8:
542 * Cleanup of error handling
544 Introduced consistent way of handling errors and printing error messages.
546 Also upgraded some warnings to errors.
548 * Updated localtime() error message
554 * Fix error handling for select()
556 Previously the error handling code for select() was unreachable.
558 * Removed unneeded quotes from AM_CFLAGS
562 * Fixed setting "tainted"
564 Set "tainted" if and only if any character was read from the device.
566 Ctrl-t is no longer sent to the device on exit, so the trick to avoid
567 its echo is not necessary.
569 Characters read from stdin don't directly affect output, so they
570 shouldn't enable "tainted".
572 * Used \r in color_printf()
574 \033[300D is an unusual way to move the cursor back to column 1.
575 Use straightforward \r instead.
577 * Added missing \r\n to warning messages
579 \n alone is not enough, because the terminal is in raw mode.
583 Changes since tio v1.7:
585 * Fixed enablement of compiler warnings
587 * Fixed log_open() prototype
589 * Fixed index error wrt ctrl-t detection
591 * Fixed handling of ctrl-t
593 Before, when exercising the quit key sequence (ctrl-t + q) the ctrl-t code
594 (0x14) would be sent.
596 This is now fixed so that it is not sent.
598 However, in case it is needed to send ctrl-t to the device it is possible by
599 simply repeating the ctrl-t.
601 Meaning, ctrl-t + ctrl-t = ctrl-t sent to device.
603 * Improved error handling
605 Fixes a memory leak and avoids aggressive busy looping when problems
606 accessing tty device.
608 * Removed redundant log_close() call
610 * Enabled compiler warnings
614 * Stopped copying arguments to fixed-size buffers
616 Don't needlessly copy command-line arguments into fixed-size buffers.
618 Previously the program crashed if an overlong pathname was provided on
619 the command line. Also, some systems (such as GNU Hurd) don't define
622 * Added const to log_open() prototype
624 * Completed the ^g to ^t transition
626 In v1.7 the escape key was changed from ^g to ^t, but some
627 code and comments still referred to the old key.
629 * Used HTTPS for tio.github.io
631 * Man page beautification
633 * Bumped date in man page
635 * Improve man page formatting
637 Use regular font for metacharacters such as "[]", "," or "|";
638 use italic font for metavariables.
640 * Fixed hyphen vs minus vs em-dash confusion in man page
643 \- prints as minus sign;
644 \em prints as em-dash.
648 Changes since tio v1.6:
650 * Changed escape key from ^g to ^t
652 After renaming to "tio" it makes sense to change the escape key
653 accordingly. Hence, the new escape key is ^t.
655 Meaning, in session, its now ctrl-t + q to quit.
659 * Fixed silly "tio or tio" in man page