]> git.sur5r.net Git - tio/blob - ChangeLog
Upload 2.7-1 to unstable
[tio] / ChangeLog
1 === tio v1.42 ===
2
3
4
5 Changes since tio v1.41:
6
7  * Update man page
8
9 ZeroMemoryEx:
10
11  * Handle malloc failure
12
13 Sylvain LAFRASSE:
14
15  * Add missing 'string.h' include.
16
17
18
19 Changes since tio v1.40:
20
21  * Rename --hex-mode to --hexadecimal
22
23  * Enable buffered writing
24
25    Read block of bytes from input and process same block for output.  This
26    will speed things up by reducing I/O overhead.
27
28  * Enable buffered reading
29
30    Read block of bytes from input and process byte by byte for output. This
31    will speed things up by reducing I/O overhead.
32
33  * Refactoring
34
35  * Cleanup stdout flushing
36
37    Flushing is not needed since we disabled buffering of stdout.
38
39  * Simplify stdout_configure() code
40
41  * Simplify stdin_configure() code
42
43  * Update man page
44
45  * Update README
46
47
48
49 Changes since tio v1.39:
50
51  * Add config support for log-strip
52
53  * Add config support for hex-mode
54
55  * Rename --hex to --hex-mode
56
57  * Fix completion for -e, --local-echo
58
59  * Ignore newlines in hex output
60
61  * Fix newline in warning_printf()
62
63  * Fix ansi_printf_raw() in no color mode
64
65  * Enter non-interactive mode when piping to tio
66
67    Add support for a non interactive mode which allows other application to
68    pipe data to tio which then forwards the data to the connected serial
69    device.
70
71    Non ineractive means that tio does not react to interactive key commands
72    in the incoming stream. This allows users to pipe binary data directly
73    to the connected serial device.
74
75    Example use:
76
77    $ cat commands.txt | tio /dev/ttyUSB0
78
79  * Also strip backspace from log
80
81    To make log strip feature consistent so that we remove all unprintable
82    control characters and escape sequences.
83
84  * Socket code cleanup
85
86  * Cleanup man page
87
88  * Rename --log-filename to --log-file
89
90 Yin Fengwei:
91
92  * Allow strip escape sequence characters from log file
93
94    The log without escape key stripped is like:
95
96     ^M[12:47:17] ACRN:\>
97     ^M[12:47:17] ACRN:\>lasdfjklsdjf
98     ^M
99     ^M[12:47:18] Error: Invalid command.
100     ^M[12:47:19] ACRN:\>
101     ^M[12:47:26] ACRN:\>
102     ^M[12:47:26] ACRN:\>sdafkljsdkaljfklsadjflksdjafjsda^H ^H^H...
103     ^M
104     ^M[12:47:31] Error: Invalid command.
105
106    After strip escape key, the log is like:
107
108     [12:49:18] ACRN:\>
109     [12:49:19] ACRN:\>
110     [12:49:19] ACRN:\>ls
111
112     [12:49:19] Error: Invalid command.
113     [12:49:19] ACRN:\>
114     [12:49:19] ACRN:\>dfaslhj
115
116     [12:49:24] Error: Invalid command.
117
118    Beside escape key, it also handle backspace key as well.
119
120
121
122 Changes since tio v1.38:
123
124  * Improve key command response for local echo and timestamp
125
126  * Fix invalid hex character error message
127
128  * Make sure only matched config section is parsed
129
130  * Add support for "disable" keyword in config file
131
132  * Unify error message formating
133
134  * Cleanup list devices code
135
136  * Fix command-line tty-device|config parsing
137
138    Allow user to add options on both sides of the provided config argument.
139
140    For example:
141
142     $ tio -b 9600 am64-evm -e
143
144    Before, tio only allowed adding arguments after the config argument.
145
146    Implemented as simple as possible by introducing two stage option parsing.
147
148  * Update bash completion
149
150  * Add support for IPv4 and IPv6 network sockets
151
152    Add support for IPv4 and IPv6 network sockets via socket syntax
153    "inet:<port>" and "inet6:<port>" respectively.
154
155    For example, to listen and redirect serial device I/O to a host bound
156    IPv4 socket simply do:
157
158     $ tio /dev/ttyUSB0 --socket inet:4444
159
160    To connect do e.g.:
161
162     $ nc 127.0.0.1 4444
163
164    Likewise, for IPv6 do:
165
166     $ tio /dev/ttyUSB0 --socket inet6:4444
167
168    To connect do e.g.:
169
170     $ nc ::1 4444
171
172    If port is 0 or no port is provided default port 3333 is used.
173
174  * Fix tio deleting unix socket file
175
176    If tio has a unix file socket open, a second tio instance of tio may
177    delete the socket file. This change fixes so that it will not be deleted
178    and tio will instead error and complain about conflicting socket file.
179
180  * Rework color option
181
182    Rework the color option to support setting ANSI color code values
183    ranging from 0..255 or "none" for no color or "list" to print a list of
184    available ANSI colors codes.
185
186    Also, disables color when piping.
187
188  * Remove print of hex mode status at startup
189
190  * Remove newline option in hex mode
191
192  * Fix configfile memory leaks
193
194  * Remove command-line option inconsistencies
195
196    Optional arguments, as parsed by the getopt_long mechanism, are
197    inherently inconsistent with how you define required arguments.
198
199    To avoid confusion we decide to avoid this inconsistency by replacing
200    optional options with additional options with required argmuments.
201
202  * Replace '1' with 'enable' in config files
203
204  * Convert errors to warnings
205
206 g0mb4:
207
208  * Extended hexadecimal mode.
209
210    While in hex mode (ctrl-t h) you can output hexadecimal values.
211    E.g.: to send 0x0A you have to type 0A (always 2 characters).
212
213    Added option -x, --hex to start in hexadecimal mode.
214
215    Added option --newline-in-hex to interpret newline characters in hex mode.
216    This is disabled by default, because, in my opinion, hex stream is
217    fundamentally different from text, so a "new line" is meaningless in this
218    context.
219
220
221
222 Changes since tio v1.37:
223
224  * Redirect error messages to stderr
225
226  * Improve help and man page
227
228  * Mention config file in --help
229
230  * Fix running without config file
231
232  * Fix config file error messages
233
234  * Redirect error messages to stderr
235
236  * Add repology packaging status
237
238  * Fix parsing of default settings
239
240    Default configuration file settings were not parsed in case a section
241    was matched. Now we make sure that the default (unnamed) settings are
242    always parsed.
243
244  * Append to existing log file (no truncation)
245
246  * Add socket info to show configuration
247
248  * Print socket info at startup
249
250  * Fix socket option parsing
251
252 Peter Collingbourne:
253
254  * Match user input against config section names if pattern matching was unsuccessful.
255
256    This allows for better config file ergonomics if the user has a diverse
257    set of serial devices as the name does not need to be specified in
258    the config file twice.
259
260  * Add support for external control via a Unix domain socket.
261
262    This feature allows an external program to inject output into and
263    listen to input from a serial port via a Unix domain socket (path
264    specified via the -S/--socket command line flag, or the socket
265    config file option) while tio is running. This is useful for ad-hoc
266    scripting of serial port interactions while still permitting manual
267    control. Since many serial devices (at least on Linux) get confused
268    when opened by multiple processes, and most commands do not know
269    how to correctly open a serial device, this allows a more convenient
270    usage model than directly writing to the device node from an external
271    program.
272
273    Any input from clients connected to the socket is sent on the serial
274    port as if entered at the terminal where tio is running (except that
275    ctrl-t sequences are not recognized), and any input from the serial
276    port is multiplexed to the terminal and all connected clients.
277
278    Sockets remain open while the serial port is disconnected, and writes
279    will block.
280
281    Example usage 1 (issue a command):
282
283      echo command | nc -UN /path/to/socket > /dev/null
284
285    Example usage 2 (use the expect command to script an interaction):
286
287      #!/usr/bin/expect -f
288
289      set timeout -1
290      log_user 0
291
292      spawn nc -UN /path/to/socket
293      set uart $spawn_id
294
295      send -i $uart "command1\n"
296      expect -i $uart "prompt> "
297      send -i $uart "command2\n"
298      expect -i $uart "prompt> "
299
300 lexaone:
301
302  * fix for using option 'log' without 'log-filename' in config file
303
304
305
306 Changes since tio v1.36:
307
308  * Make libinih a fallback dependency
309
310    This means that in case meson does not find libinih it will
311    automatically clone libinih and include it in the build.
312
313    The libinih library is reconfigured to be statically built so that no
314    shared object will be installed.
315
316 Sylvain LAFRASSE:
317
318  * Fix timestamp parsing in INI conf
319
320  * Factorize timestamp parsing to be coherent with command line format in configuration file.
321
322
323
324 Changes since tio v1.35:
325
326  * Add support for defaults in config file
327
328    If no section name is specified the configuration will be considered the
329    default one.
330
331    This allows to set e.g. a default color code for sections which do not
332    configure a color code.
333
334  * Handle SIGHUP
335
336    Handle SIGHUP so that the registered exit handlers are called to restore
337    the terminal back to its orignal state.
338
339  * Add color configuration support
340
341  * Bypass unused result warnings
342
343  * Force dependency on libinih
344
345    Configuration file support is considered a mandatory feature.
346
347  * Update headers
348
349  * Update AUTHORS
350
351  * Update man page
352
353  * Move string_to_long() to misc.c
354
355  * Update CircleCI config
356
357  * Update tio gif
358
359  * Update README
360
361  * Update LICENSE date
362
363  * Remove redundant COPYING file
364
365 Liam Beguin:
366
367  * Document configuration file options
368
369  * Add support for a configuration file
370
371  * misc: add _unused macro
372
373    Some parameters are expected to be unused.
374    Add a basic macro to mute these compiler warnings.
375
376  * options: expose string_to_long()
377
378    Expose string_to_long() so that other source files can use it.
379
380
381
382 Changes since tio v1.34:
383
384  * Add support for automatically generated log filename
385
386    Automatically generate log filename if none is provided.
387
388    The auto generated file name is on the form:
389    "tio_DEVICE_YYYY-MM-DDTHH:MM:SS.log"
390
391  * Add support for configurable timestamp format
392
393    Also changes default timestamp format from ISO8601 to classic 24-hour
394    format as this is assumed to be the format that most users would prefer.
395
396    And reintroduces strict but optional ISO8601 format.
397
398    This feature allows to easily add more timestamp formats in the future.
399
400  * Reintroduce asm-generic/ioctls.h
401
402    It is needed for ppc builds.
403
404  * Add macro hack to workaround older buggy glibc
405
406 Robey Pointer:
407
408  * Add support for high bps on OS X
409
410
411
412 Changes since tio v1.33:
413
414  * Fix setspeed2 compilation
415
416  * Only apply color formatting when using color option
417
418    To help the color blind who may use custom terminal foreground /
419    background colors.
420
421  * Update README
422
423  * Add '-c, --color' option
424
425    Allow user to select which ANSI color code to use to colorize the tio
426    text. To successfully set the color the color code must be in the range
427    0..255.
428
429    If color code is negative tio will print all available ANSI colors.
430
431    The default color is changed to bold white to make tio defaults usable
432    for most users, including color blind users.
433
434  * Fix setspeed2 check
435
436  * Fix meson header check string
437
438  * Reintroduce long timestamp format
439
440    But make the timestamp format RFC3339 compliant instead. The RFC states:
441
442    NOTE: ISO 8601 defines date and time separated by "T".
443          Applications using this syntax may choose, for the sake of
444          readability, to specify a full-date and full-time separated by
445          (say) a space character.
446
447    This way we keep the information specified by ISO 8601 but make it more
448    human readable which is better for the console output.
449
450  * Update version year
451
452 Sylvain LAFRASSE:
453
454  * Fix TTY device listing on Darwin. (#136)
455
456  * Fix TCGETS2 search on Darwin.
457
458
459
460 Changes since tio v1.32:
461
462  * Show auto connect status in show configuration
463
464  * Use '#pragma once' in all headers
465
466  * Improve printed output
467
468    Get rid of inconsistencies in the printed output (error printing,
469    colors, etc.).
470
471    Prepare for user configurable color.
472
473  * Rename option -i to -L
474
475  * Shorten timestamp
476  
477  * Shorten timestamp description
478
479    We do not need the date part of the timestamp. It simply takes up too
480    much precious line space. In case of logging to file, one can easily
481    conclude the date from the file date information.
482
483  * Replace Travis with circleCI
484
485  * Replace autotools with meson
486
487    To introduce much simpler build configuration which is also easier to
488    maintain.
489
490  * Add list serial devices feature
491
492    For convenience, add a --list-devices option which lists the available
493    serial devices.
494
495  * Cleanup: Use dot notation for default options struct
496
497  * Update AUTHORS
498
499  * Add command to show version
500
501    The key sequence ctrl-t v will now show the version of tio.
502
503  * Align format of timestamps
504  
505  * Add Sylvain as official co-maintainer
506
507 Sylvain LAFRASSE:
508
509  * Add '-t' option description for time stamping.
510
511  * Add description for time stamping.
512
513  * Resolved tio/tio#84: Added timestamps in log file if enabled.
514
515 attila-v:
516
517  * Refine timestamps with milliseconds and ISO-8601 format (#129).
518
519    * Show milliseconds too in the timestamp (#114) and log file (#124)
520    * Change timestamp format to ISO-8601.
521
522 Yin Fengwei:
523
524  * Output newline on stdout with hex print mode
525
526    This is to fix the issue #104. The timestamp will always be
527    printed at the beginning of line:
528
529    [10:25:56] Switched to hexadecimal mode
530    0d 0a 0d [10:25:57] 41 43 52 4e 3a 5c 3e 0d 0a 0d [10:25:58] 41
531
532    is changed to:
533
534    [12:34:56] 45 72 72 6f 72 3a 20 49 6e 76 61 6c 69 64 20
535    [12:34:56] 41 43 52 4e 3a 5c 3e
536    [12:34:56] 41 43 52 4e 3a 5c 3e
537    [12:34:57] 41 43 52 4e 3a 5c 3e 6c 73
538
539 Jakob Haufe:
540
541  * Make comparison POSIX compliant
542
543    String comparison with == is not POSIX compliant and can fail with e.g.
544    dash.
545
546 Henrik Brix Andersen:
547
548  * Add bash completion of tty devices.
549
550  * Add -t/--timestamp to bash completion script.
551
552 Henner Zeller:
553
554  * Local echo: show character by character even if stdout buffered.
555
556 Björn Stenberg:
557
558  * Show error when failing to open a tty
559
560 Alban Bedel:
561
562  * Fix out of tree builds
563
564    Out of tree builds are currently broken because $(top_srcdir)src/include
565    is not in the search path. In tree builds are working because autconf add
566    $(top_builddir)/src/include to the search path for the generated config.h.
567    As $(top_builddir) and $(top_srcdir) are identical during in tree builds
568    the search path still end up beeing somehow correct.
569
570    To fix this add -I$(srcdir)/include to the CPPFLAGS in Makefile.am.
571
572 Fabrice Fontaine:
573
574  * src/setspeed2.c: fix redefinition of termio
575
576    Include ioctls.h and termbits.h from asm-generic instead of asm to avoid
577    build failures.
578
579 Erik Moqvist
580
581  * Exit if output speed cannot be set.
582
583 Lars Kellogg-Stedman:
584
585  * fflush() after putchar() for print_hex and print_normal
586
587    In order for local echo to work properly, we have to either call
588    fflush(stdout) after every character or just disable line buffering.
589    This change calls fflush() after putchar().
590
591  * Disable line buffering in stdout
592
593    In order for local echo to work properly, we have to either call
594    fflush(stdout) after every character or just disable line buffering.
595    This change uses setbuf(stdout, NULL) to do the latter.
596
597 George Stark:
598
599  * dont show line state if ioctl failed
600
601  * add serial lines manual control
602
603 arichi:
604
605  * Flush every local echo char
606
607    Flush stdout at every char in case it
608    happens to be buffered.
609
610 Mariusz Midor:
611
612  * Newline: handle booth NL and CR
613
614    Flag ONLCRNL expects code \n after press Enter, but on some systems \r is send instead.
615
616
617
618 Changes since tio v1.31:
619
620  * Update AUTHORS
621
622  * Minor code style cleanups
623
624  * Cleanup print macros
625
626  * Flush output
627
628    Make sure output is transmitted immediately by flushing the output.
629
630 Robey Pointer:
631
632  * add optional timestamps
633
634    with "-t" or "C-t T", toggle a timestamp prefix to each line.
635
636 Jakub Wilk:
637
638  * Fix typos
639
640 Sylvain Lafrasse:
641
642  * Added macOS compatibility
643
644  * Made O_NONBLOCK flag to open() call specific to macOS only.
645
646  * Added macOS-related details.
647
648  * Added O_NONBLOCK flag to open() call for macOS (10.13.6) compatibility.
649
650
651
652 Changes since tio v1.30:
653
654  * Update date
655
656  * Update AUTHORS
657
658 Henner Zeller:
659
660  * Clarify the input/output variable names (No-op change)
661
662  * Organize options the same sequence they are mentioned in cmdline help.
663
664  * Update README.
665
666  * Map CR->NL locally on output instead of using tio.c_oflag |= OCRNL.
667
668    This mostly is intended to have local echo output exactly what is sent
669    to the remote endpoint.
670    A nice side-effect is, that it also fixes tty-implementations, that can't
671    deal with the OCRNL flag on tio.c_oflag.
672
673  * Provide local-echo option.
674
675    Can be switched on with -e on the command line.
676    Can be toggled with Ctrl t e while program is running.
677
678  * Write to logfile as soon as we have the data, don't buffer.
679
680    Logfiles are important to see what happened, in particular if something
681    unexpected happened; so we want to make sure that the logfile is flushed
682    to disk.
683
684    Before this change, the logfile was typically written at the end in
685    a large chunk as the default (large) buffering applied. Now, characters are
686    written out ASAP, so it is possible to get a live-view with a
687    tail -f <logfile>
688
689
690
691 Changes since tio v1.29:
692
693  * Update README
694
695  * Update man page and bash completion
696
697  * Update AUTHORS
698
699 qianfan Zhao:
700
701  * ONLCRNL: change the method to map NL to CR-NL
702
703
704
705 Changes since tio v1.28:
706
707  * Add mapping flags INLCRNL and ODELBS
708
709    The following new mapping flags are added:
710
711    INLCRNL: Map NL to CR-NL on input.
712    ODELBS: Map DEL to BS on output.
713
714    Flags requested and tested by Jan Ciger (janoc).
715
716
717
718 Changes since tio v1.27:
719
720  * Update README
721
722  * Update AUTHORS
723
724  * Add snap status to README.md
725
726  * Add README.md to prettify GitHub page
727
728  * Add missing header
729
730 Petr VanÄ›k:
731
732  * Add missing header file under musl-libc
733
734    Musl's inclusion tree slightly differs from glibc, therefore TCGETS2 is
735    not reachable through sys/ioctl.h, so asm/ioctls.h needs to be included
736    too.
737
738 Jakub Wilk:
739
740  * Fix grammar and typos
741
742
743
744 Changes since tio v1.26:
745
746  * Update man page
747
748  * Add support for setting non-standard baudrates
749
750    Support for non-standard baudrate settings will be automatically enabled
751    if the termios2 interface is detected available. However, to play it
752    safe, the old and widely supported termios interface will still be used
753    when setting standard baudrates.
754
755  * Cleanup
756
757  * Update AUTHORS
758
759
760
761 Changes since tio v1.25:
762
763  * Reconfigure stdin
764
765    Make stdin behave more raw'ish. In particular, don't
766    translate CR -> NL on input.
767
768  * Add special character map feature
769
770    Add a --map option which allows mapping special characters, in particular CR and
771    NL characters which are used in various combinations on various platforms.
772
773  * Cleanup
774
775  * Update AUTHORS
776
777  * Update README
778
779  * Mention website
780
781  * Update man page
782
783
784
785 Changes since tio v1.24:
786
787  * Fix error applying new stdout settings
788
789    On Fedora 26 tio will quit with the following error message:
790
791    "Error: Could not apply new stdout settings (Invalid argument)"
792
793    In case of Fedora, it turns out that the new stdout settings used are a
794    bit too aggressive because an empty termios structure is used. To remedy
795    this we reuse the existing stdout settings and only reconfigure the
796    specific options we need to make a "raw" stdout configuration.
797
798  * Remove unused pkgconfig in configure
799
800  * Code cleanup
801
802    Remove unused variable.
803
804
805
806 Changes since tio v1.23:
807
808  * Optimize clear screen command
809
810    Replaced system call with inline ANSI/VT100 clear screen code sequence
811
812  * Fix bash completion installation
813
814    Fixed the configure script to avoid that the bash completion script gets
815    installed outside of the prefix location. The default install location
816    is now $prefix/share/bash-completion/completions.
817
818    Use the configure option '--with-bash-completion-dir=PATH' if you need
819    to install the bash completion script elsewhere.
820
821 Jakub Wilk:
822
823  * Add missing commas in conditional sentences
824
825
826
827 Changes since tio v1.22:
828
829  * Update copyright headers
830
831 Jakub Wilk:
832
833  * Fix typos
834
835
836
837 Changes since tio v1.21:
838
839  * Update man page date
840
841  * Update copyright year
842
843  * Code cleanup
844
845  * Update README and man page
846
847
848
849 Changes since tio v1.20:
850
851  * Add support for hexadecimal mode
852
853    A new key command 'ctrl-t h' is introduced which toggles between
854    hexadecimal mode and normal mode. When in hexadecimal mode data received
855    will be printed in hexadecimal.
856
857  * Do not distribute src/bash_completion/tio
858
859    Since the bash completion tio script is now autogenerated from tio.in it
860    should not be distributed in the tarball.
861
862  * Add missing forward flag
863
864  * Update AUTHORS file
865
866 Adam Borowski:
867
868  * 'ctrl-t b' to send serial break.
869
870 Jakub Wilk:
871
872  * Removed git commit references from ChangeLog
873
874    ChangeLog is primary useful for users who don't have the git repository
875    at hand.
876
877    Replace git commit references with version numbers; or if the change
878    only cleans up another change with no release in between, remove the
879    changelog item completely.
880
881
882
883 Changes since tio v1.19:
884
885  * Added more error handling of terminal calls
886
887    Also removed duplicate terminal flushing calls.
888
889  * Revert "Added support for non-standard baud rates"
890
891    This reverts a change made in v1.18.
892
893    Reverting because supporting non-standard or arbitrary baud rates is
894    troublesome because the c library provides no means of doing so and even
895    if bare metal linux kernel interface is used it will not work on all
896    Linux kernels version.
897
898
899
900 Changes since tio v1.18:
901
902  * Rearranged key commands
903
904    Rearranged the key commands:
905
906    ctrl-t c (clear screen) is now
907    ctrl-t l which is similar to the well known shell ctrl-l
908
909    ctrl-t i (show settings information) is now
910    ctrl-t c (show configuration)
911
912    Updated man page accordingly.
913
914  * Added "ctrl-t c" key command to clear screen
915
916
917
918 Changes since tio v1.17:
919
920  * Updated man page
921
922  * Added support for non-standard baud rates
923
924    Only enabled when possible, that is, when the BOTHER definition is
925    available.
926
927    It is untested but it should work as described here:
928    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683826
929
930    Some Cypress USB<->serial devices supposedly supports arbitrary speeds.
931
932  * Generate baudrate switch cases based on detection
933
934    Support a single source of baud rate configuration as discussed in
935    https://github.com/tio/tio/issues/45 .
936
937    To do so, autogeneration of the switch cases which do the baud rate
938    option value check and configuration/conversion in tty_configure() is
939    introduced via a single macro.
940
941    Just to be safe, this change also enables configure detection of all
942    baud rates, including the ones previously assumed supported by most/all
943    systems (POSIX).
944
945  * Minor cleanup
946
947  * Exit when not a tty device in autoconnect mode
948
949 Jakub Wilk:
950
951  * Added non-standard baud rates that are defined on FreeBSD
952
953  * Capitalized "GitHub" in README
954
955
956
957 Changes since tio v1.16:
958
959  * Compacted tty_configure() a bit
960
961  * Fixed automatic baud rate enablement
962
963  * Minor cleanups
964
965  * Added autodetection of available baud rates
966
967    Various platforms support different baud rates.
968
969    To avoid adding platform specific handling generic baud rate detection
970    tests are introduced in the configure script. Successfully detected baud
971    rates are automatically enabled. This applies to both the C code and the
972    bash completion script.
973
974    Note:
975    Baud rates below 57600 are defined by POSIX-1 and supported by most
976    platforms so only baud rate 57600 and above are tested.
977
978  * Updated bash-completion
979
980  * Fixed printf() format type
981
982  * Added Travis build configuration
983
984 Jakub Wilk:
985
986  * Generated bash completion at configure time
987
988  * Reduce code duplication in baud rate detection
989
990  * Add support for baud rates 200 and 1800
991
992  * Fixed baudrate type
993
994
995
996 Changes since tio v1.15:
997
998  * Updated man page
999
1000  * Updated README
1001
1002  * Removed obsolete packaging files
1003
1004  * Removed use of deprecated bzero()
1005
1006
1007
1008 Changes since tio v1.14:
1009
1010  * Removed + to remove potential confusion
1011
1012  * Added input digit checks
1013
1014  * Fixed license string
1015
1016  * Introduced tty_configure()
1017
1018    Moved tty configuration actions to tty_configure() in tty.c. This way
1019    options.c is strictly about parsing options nothing else.
1020
1021  * Function names cleanup
1022
1023  * Updated AUTHORS file
1024
1025    Added Nick who created the new tio package for Arch Linux.
1026
1027  * Fixed tx/rx counters type
1028
1029 Jakob Haufe:
1030
1031  * Include config.h before standard headers
1032
1033    Large file support was meant to be enabled in v1.11.
1034    This change enables it for real.
1035
1036
1037
1038 Changes since tio v1.13:
1039
1040  * Fixed tio_printf macro
1041
1042  * Fixed launch hints
1043
1044    Fixed launch hints not being printed in no autoconnect mode.
1045
1046  * Added 'ctrl-t ?' to list available commands
1047
1048  * Fixed log mechanism
1049
1050    To avoid echoing only log what is received from tty device.
1051
1052  * Improved tio output
1053
1054    Added titles and indentation to commands output for clearer separation
1055    when firing commands repeatedly.
1056
1057    Also added print of tio version and quit command hint at launch.
1058
1059  * Cleaned up tio print mechanism
1060
1061 Jakub Wilk:
1062
1063  * Fixed grammar
1064
1065    "allow" is a transitive verb, which requires an object,
1066    so "allow to <verb>" is ungrammatical.
1067
1068  * Fixed typo
1069
1070
1071
1072 Changes since tio v1.12:
1073
1074  * Fixed some error prints
1075
1076  * Fixed error printing for no autoconnect mode
1077
1078    Always print errors but only print silent errors when in no autoconnect
1079    mode.
1080
1081  * Added key command for showing session settings
1082
1083    A new key command "ctrl-t i" is added to allow the user to display the
1084    various session settings information (baudrate, databits, log file, etc.).
1085
1086    This is useful in case you have a running session but have forgotten
1087    what the settings are.
1088
1089
1090
1091 Changes since tio v1.11:
1092
1093  * Consolidated command key handling
1094
1095  * Moved delay mechanism into separate function
1096
1097  * Retired obsolete usleep()
1098
1099    Replaced with nanosleep()
1100
1101  * Added simple tx/rx statistics command (ctrl-t s)
1102
1103    To display the total number of bytes transmitted/received simply perform the
1104    'ctrl-t s' command sequence.
1105
1106    This feature can be useful when eg. trying to detect non-printable
1107    characters.
1108
1109  * Further simplification of key handling
1110
1111    Changed so that the "ctrl-t ctrl-t" sequence is now simply "ctrl-t t" to
1112    send the ctrl-t key code. This is inspired by screen which does similar
1113    to send its command key code (ctrl-a a).
1114
1115    This change also eases adding new key commands if needed.
1116
1117    Updated man page accordingly.
1118
1119  * Cleaned up and simplified key handling
1120
1121 Jakub Wilk:
1122
1123  * Insert output delay only if something was output
1124
1125
1126
1127 Changes since tio v1.10:
1128
1129  * Enabled large file support (LFS)
1130
1131    Added autotools AC_SYS_LARGEFILE to support 64 bit file size handling.
1132
1133  * Updated tio title
1134
1135
1136
1137 Changes since tio v1.9:
1138
1139  * Introduced lock on device file
1140
1141    Tio will now test for and obtain an advisory lock on the tty device file
1142    to prevent starting multiple sessions on the same tty device.
1143
1144  * Updated AUTHORS
1145
1146 Jakub Wilk:
1147
1148  * Treat EOF on stdin as error
1149
1150
1151
1152 Changes since tio v1.8:
1153
1154  * Cleanup of error handling
1155
1156    Introduced consistent way of handling errors and printing error messages.
1157
1158    Also upgraded some warnings to errors.
1159
1160  * Updated localtime() error message
1161
1162  * Cleanup
1163
1164 Jakub Wilk:
1165
1166  * Fix error handling for select()
1167
1168    Previously the error handling code for select() was unreachable.
1169
1170  * Removed unneeded quotes from AM_CFLAGS
1171
1172  * Expanded tabs
1173
1174  * Fixed setting "tainted"
1175
1176    Set "tainted" if and only if any character was read from the device.
1177
1178    Ctrl-t is no longer sent to the device on exit, so the trick to avoid
1179    its echo is not necessary.
1180
1181    Characters read from stdin don't directly affect output, so they
1182    shouldn't enable "tainted".
1183
1184  * Used \r in color_printf()
1185
1186    \033[300D is an unusual way to move the cursor back to column 1.
1187    Use straightforward \r instead.
1188
1189  * Added missing \r\n to warning messages
1190
1191    \n alone is not enough, because the terminal is in raw mode.
1192
1193
1194
1195 Changes since tio v1.7:
1196
1197  * Fixed enablement of compiler warnings
1198
1199  * Fixed log_open() prototype
1200
1201  * Fixed index error wrt ctrl-t detection
1202
1203  * Fixed handling of ctrl-t
1204
1205    Before, when exercising the quit key sequence (ctrl-t + q) the ctrl-t code
1206    (0x14) would be sent.
1207
1208    This is now fixed so that it is not sent.
1209
1210    However, in case it is needed to send ctrl-t to the device it is possible by
1211    simply repeating the ctrl-t.
1212
1213    Meaning, ctrl-t + ctrl-t = ctrl-t sent to device.
1214
1215  * Improved error handling
1216
1217    Fixes a memory leak and avoids aggressive busy looping when problems
1218    accessing tty device.
1219
1220  * Removed redundant log_close() call
1221
1222  * Enabled compiler warnings
1223
1224 Jakub Wilk:
1225
1226  * Stopped copying arguments to fixed-size buffers
1227
1228    Don't needlessly copy command-line arguments into fixed-size buffers.
1229
1230    Previously the program crashed if an overlong pathname was provided on
1231    the command line. Also, some systems (such as GNU Hurd) don't define
1232    MAXPATHLEN at all.
1233
1234  * Added const to log_open() prototype
1235
1236  * Completed the ^g to ^t transition
1237
1238    In v1.7 the escape key was changed from ^g to ^t, but some
1239    code and comments still referred to the old key.
1240
1241  * Used HTTPS for tio.github.io
1242
1243  * Man page beautification
1244
1245  * Bumped date in man page
1246
1247  * Improve man page formatting
1248
1249    Use regular font for metacharacters such as "[]", "," or "|";
1250    use italic font for metavariables.
1251
1252  * Fixed hyphen vs minus vs em-dash confusion in man page
1253
1254    - prints as hyphen;
1255    \- prints as minus sign;
1256    \em prints as em-dash.
1257
1258
1259
1260 Changes since tio v1.6:
1261
1262  * Changed escape key from ^g to ^t
1263
1264    After renaming to "tio" it makes sense to change the escape key
1265    accordingly. Hence, the new escape key is ^t.
1266
1267    Meaning, in session, its now ctrl-t + q to quit.
1268
1269 Jakub Wilk:
1270
1271  * Fixed silly "tio or tio" in man page
1272
1273  * Fixed typo
1274