@@ -6,55 +6,66 @@ git clone git://github.com/coreyoconnor/vty.git
9+* Support for a large number of terminals. vt100, ansi, hurd, linux, screen etc
10+ etc. Anything with a sufficient terminfo entry.
9* Automatic handling of window resizes.
12* Automatic handling of window resizes.
11−* Supports Unicode characters on output, automatically setting and
14+* If the terminal support UTF-8 then vty supports Unicode output.
12− resetting UTF-8 mode for xterm. Other terminals are assumed to support
15+
16+* Handles multi-column glyphs. (Requires user to properly configure terminal.)
14−* Efficient output.
18+* Efficient output. Output buffering and terminal state changes are minimized.
16−* Minimizes repaint area, thus virtually eliminating the flicker
20+* Minimizes repaint area. Virtually eliminating the flicker problems that
17− problem that plagues ncurses programs.
21+ plagues ncurses programs.
19−* A pure, compositional interface for efficiently constructing display
23+* A pure, compositional interface for efficiently constructing display images.
22* Automatically decodes keyboard keys into (key,[modifier]) tuples.
25* Automatically decodes keyboard keys into (key,[modifier]) tuples.
24* Automatically supports refresh on Ctrl-L.
27* Automatically supports refresh on Ctrl-L.
26−* Automatically supports timeout after 50ms for lone ESC (a barely
29+* Automatically supports timeout after for lone ESC. The timeout is
27− noticable delay)
30+ customizable.
29−* Interface is designed for relatively easy compatible extension.
32+* Interface is designed for easy compatible extension.
31−* Supports all ANSI SGR-modes (defined in console_codes(4)) with
34+* Supports ANSI graphics modes (SGR as defined in console_codes(4)) with a
32− a type-safe interface.
35+ type-safe interface. Gracefull fallback for terminals that do not support, or
36+ partially support the standard ANSI graphics modes.
34* Properly handles cleanup, but not due to signals.
38* Properly handles cleanup, but not due to signals.
40+* Comprehensive test suite.
36# Known Issues
42# Known Issues
44+* Terminals have numerous quirks and bugs. vty picks what works best for the
45+ author in ambigious, or buggy situations.
38* Signal handling of STOP, TERM and INT are non existent.
47* Signal handling of STOP, TERM and INT are non existent.
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
42−* Terminfo is assumed to be correct unless the terminal (as declared by TERM) starts with xterm or
52+* Terminfo is assumed to be correct unless there is an override configured.
43− ansi. This means that some terminals will not have correct special key support (shifted F10 etc)
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.
45−* Uses the TIOCGWINSZ ioctl to find the current window size, which
56+* Uses the TIOCGWINSZ ioctl to find the current window size, which appears to be
46− appears to be limited to Linux and BSD.
57+ limited to Linux and BSD.
48# Platform Support
59# Platform Support
50## Posix Terminals
61## Posix Terminals
52−Uses terminfo to determine terminal protocol. Some special rules for Mac terminal applications. The
63+Uses terminfo to determine terminal protocol. With some special rules to handle
53−special rules might be invalid on newer Mac OS.
64+some omissions from terminfo.
59# Development Notes
70# Development Notes
@@ -70,8 +81,8 @@ LIBRARY_PATH=$HOME/.nix-profile/lib/ cabal test
71## Coverage
82## Coverage
84+As of last testing, profiling causes issues with coverage when enabled. To
73−Profiling appears to cause issues with coverage when enabled. To evaluate coverage configure as
85+evaluate coverage configure as follows:
77rm -rf dist ; cabal configure --enable-tests --enable-library-coverage \
88rm -rf dist ; cabal configure --enable-tests --enable-library-coverage \