@@ -6,55 +6,66 @@ git clone git://github.com/coreyoconnor/vty.git
66
77# Features
88
9+* Support for a large number of terminals. vt100, ansi, hurd, linux, screen etc
10+ etc. Anything with a sufficient terminfo entry.
11+
912* Automatic handling of window resizes.
1013
11−* Supports Unicode characters on output, automatically setting and
12− resetting UTF-8 mode for xterm. Other terminals are assumed to support
14+* If the terminal support UTF-8 then vty supports Unicode output.
15+
16+* Handles multi-column glyphs. (Requires user to properly configure terminal.)
1317
14−* Efficient output.
18+* Efficient output. Output buffering and terminal state changes are minimized.
1519
16−* Minimizes repaint area, thus virtually eliminating the flicker
17− problem that plagues ncurses programs.
20+* Minimizes repaint area. Virtually eliminating the flicker problems that
21+ plagues ncurses programs.
1822
19−* A pure, compositional interface for efficiently constructing display
20− images.
23+* A pure, compositional interface for efficiently constructing display images.
2124
2225* Automatically decodes keyboard keys into (key,[modifier]) tuples.
2326
2427* Automatically supports refresh on Ctrl-L.
2528
26−* Automatically supports timeout after 50ms for lone ESC (a barely
27− noticable delay)
29+* Automatically supports timeout after for lone ESC. The timeout is
30+ customizable.
2831
29−* Interface is designed for relatively easy compatible extension.
32+* Interface is designed for easy compatible extension.
3033
31−* Supports all ANSI SGR-modes (defined in console_codes(4)) with
32− a type-safe interface.
34+* Supports ANSI graphics modes (SGR as defined in console_codes(4)) with a
35+ type-safe interface. Gracefull fallback for terminals that do not support, or
36+ partially support the standard ANSI graphics modes.
3337
3438* Properly handles cleanup, but not due to signals.
3539
40+* Comprehensive test suite.
41+
3642# Known Issues
3743
44+* Terminals have numerous quirks and bugs. vty picks what works best for the
45+ author in ambigious, or buggy situations.
46+
3847* Signal handling of STOP, TERM and INT are non existent.
3948
40−* The character encoding of the terminal is assumed to be UTF-8.
49+* The character encoding of the terminal is assumed to be UTF-8 if
50+ unicode is used.
4151
42−* Terminfo is assumed to be correct unless the terminal (as declared by TERM) starts with xterm or
43− ansi. This means that some terminals will not have correct special key support (shifted F10 etc)
52+* Terminfo is assumed to be correct unless there is an override configured.
53+ Some terminals will not have correct special key support (shifted F10 etc).
54+ See Config for customizing vty's behavior for a particular terminal.
4455
45−* Uses the TIOCGWINSZ ioctl to find the current window size, which
46− appears to be limited to Linux and BSD.
56+* Uses the TIOCGWINSZ ioctl to find the current window size, which appears to be
57+ limited to Linux and BSD.
4758
4859# Platform Support
4960
5061## Posix Terminals
5162
52−Uses terminfo to determine terminal protocol. Some special rules for Mac terminal applications. The
53−special rules might be invalid on newer Mac OS.
63+Uses terminfo to determine terminal protocol. With some special rules to handle
64+some omissions from terminfo.
5465
5566## Windows
5667
57−None!
68+cygwin only.
5869
5970# Development Notes
6071
@@ -70,8 +81,8 @@ LIBRARY_PATH=$HOME/.nix-profile/lib/ cabal test
7081
7182## Coverage
7283
73−Profiling appears to cause issues with coverage when enabled. To evaluate coverage configure as
74−follows:
84+As of last testing, profiling causes issues with coverage when enabled. To
85+evaluate coverage configure as follows:
7586
7687~~~
7788rm -rf dist ; cabal configure --enable-tests --enable-library-coverage \