@@ -1,526 +1,861 @@
11
2+5.35.1
3+------
4+
5+Bug fixes:
6+ * Fixed a build issue with a test program.
7+
8+5.35
9+----
10+
11+New features:
12+ * Add support for 24-bit color (thanks @u-quark). This change
13+ updates Vty to look at the `COLORTERM` environment variable that is
14+ conventionally used to advertise support for truecolor escape
15+ sequences. The change also updates the Vty demo to demonstrate
16+ 24-bit colors. This change also adds a new data type, `ColorMode`,
17+ to represent the color mode in use, as well as an `Output` interface
18+ field, `outputColorMode`, to track the active color mode and use it
19+ to clamp emitted color escape sequences to the active color range.
20+
21+API changes:
22+ * All types in `Graphics.Vty.Input.Events` now have strict constructor
23+ fields.
24+ * Internal events are now wrapped in a new `InternalEvent` type to
25+ improve how signal handling is done. This change modifies the `Input`
26+ type's event channel API to produce `InternalEvents`, not `Events`.
27+ The new `InternalEvent` either wraps `Event` with the `InputEvent`
28+ constructor (the previous behavior) or indicates that Vty resumed
29+ after handling a signal using the `ResumeAfterSignal` constructor.
30+ This change avoids the previous use of `EvResize` with lazy exception
31+ arguments as a sentinel value for `ResumeAfterSignal`.
32+
33+Other enhancements:
34+ * Bracketed paste parsing performance has been greatly improved thanks
35+ to benchmarking and optimization work by @iphydf. As part of that
36+ work, Vty now uses bytestrings rather than Strings internally when
37+ parsing input to look for events.
38+ * The `\b` value is now interpreted as `KBS` (thanks @vglfr)
39+
40+5.34
41+----
42+
43+API changes:
44+ * Added an `NFData` instance for `Event` (thanks Mario Lang)
45+ * Removed `Monoid` and `Semigroup` instances for `Attr` and
46+ `MaybeDefault`. This change removed the instances because they were
47+ misbehaved; merging `Attr` and `MaybeDefault` values with these
48+ instances resulted in field value losses. For example, before this
49+ change,
50+```
51+(defAttr `withForeColor` blue) <> (defAttr `withBackColor` green)
52+```
53+ would result in just
54+```
55+ (defAttr `withBackColor` green)
56+```
57+ because the instances were designed to favor the right-hand
58+ arguments' fields even if they had not been explicitly set
59+ (a consequence of the `MaybeDefault` `Semigroup` instance).
60+ While that behavior was sensible specifically in the context of
61+ `Graphics.Vty.Inline`, it wasn't a useful user-facing API and it made
62+ for surprising instance behavior. Since there is actually no good way
63+ to handle this in a `Semigroup` instance for `Attr` -- some choices
64+ have to be made about how to merge two attributes' foreground colors,
65+ and that won't be much better than what we had -- the instance was
66+ just removed.
67+
68+
69+5.33
70+----
71+
72+API changes:
73+* The `Cursor` type got a new `PositionOnly` constructor for cursor
74+ placement without visibility.
75+
76+Package changes:
77+* Relaxed upper bound for `random`
78+* Updated `microlens` bounds to allow 0.4.12
79+
80+Other improvements:
81+* Various hlint-driven improvements (thanks Willem Van Onsem)
82+* The implementation of `color240` was improved (thanks (Willem Van
83+ Onsem)
84+
85+5.32
86+----
87+
88+New features:
89+ * Meta-PageUp and Meta-PageDown are now supported (#193)
90+ * Added `supportsItalics` and `supportsStrikethrough` functions to
91+ check for feature support in terminfo
92+
93+Bug fixes:
94+ * Detect utf-8 mode in `LANG` regardless of case (thanks Emeka
95+ Nkurumeh)
96+
97+5.31
98+----
99+
100+New features and API changes:
101+ * Added support for strikethrough mode. This change adds a new
102+ `strikethrough` `Style` value and uses the `smxx` and `rmxx`
103+ Terminfo capabilities to activate and deactivate strikethrough mode,
104+ respectively. If the terminfo does not report those capabilities,
105+ this style is ignored.
106+ * `Output`: added the `setDisplayBounds` field to set the output
107+ dimensions of the output handle; added an implementation of this for
108+ the `TerminfoBased` backend.
109+
110+Other changes:
111+ * The C prototype for `vty_c_get_window_size` in `gwinsz.h` was fixed.
112+
113+5.30
114+----
115+
116+New features:
117+ * Added `Graphics.Vty.setWindowTitle` to emit an escape
118+ sequence to set the window title, provide the terminal emulator
119+ accepts Xterm-style title sequences. For details, see:
120+ https://tldp.org/HOWTO/Xterm-Title-3.html
121+
122+5.29
123+----
124+
125+API changes:
126+ * The Input type got a new field, 'restoreInputState'. This field
127+ allows the end user to have direct access to the logic needed to
128+ restore the terminal's input state flags. Prior to having this field,
129+ this state restoration logic could only be invoked as part of calling
130+ 'shutdownInput', but since that function does other things (like
131+ killing threads) it is not advisable to call it repeatedly (which is
132+ necessary in the use case this change is intended to support). This
133+ can be called directly to restore the input state flags as needed,
134+ although this is not required if 'shutdown' (or 'shutdownInput') is
135+ called.
136+
137+Other changes:
138+ * attributeControl: explicitly enable the ICRNL terminal mode flag (see
139+ #187 and c572ad).
140+
141+5.28.2
142+------
143+
144+Bug fixes:
145+ * Added a package dependency on `semigroups` for the
146+ `vty-build-width-table` tool on older GHCs (#185)
147+
148+5.28.1
149+------
150+
151+Bug fixes:
152+ * `installUnicodeWidthTable`: use `throwIO`, not `throw`
153+
154+5.28
155+----
156+
157+This release improves Vty's support for multi-column Unicode characters
158+and provides greater compatibility with a wider array of terminal
159+emulators. The following sections summarize the relevant changes, but an
160+overview of the new functionality is motivated and detailed in the new
161+"Multi-Column Character Support" README section. For
162+historical context, please also consider reading over
163+[#175](https://github.com/jtdaugherty/vty/issues/175).
164+
165+API changes:
166+ * New modules were added:
167+ * `Graphics.Vty.UnicodeWidthTable.Types`
168+ * `Graphics.Vty.UnicodeWidthTable.IO`
169+ * `Graphics.Vty.UnicodeWidthTable.Query`
170+ * `Graphics.Vty.UnicodeWidthTable.Install`
171+ * The `Config` type got a new field, `allowCustomUnicodeWidthTables`,
172+ that controls whether `mkVty` will attempt to load a Unicode width
173+ table if specified in the configuration.
174+
175+Configuration file changes:
176+ * A new syntax was added to support specifying Unicode width tables on
177+ a per-`TERM` basis. The syntax is `widthMap <TERM> <PATH>`. See the
178+ documentation for `Graphics.Vty.Config` for details. Since prior
179+ versions of this library will silently ignore any configuration file
180+ lines they cannot parse, this change to user configuration files is
181+ at least non-breaking for older versions of Vty.
182+
183+Other changes:
184+ * The `mkVty` function now automatically attempts to load a custom
185+ Unicode width table if one is specified in the configuration,
186+ provided `allowCustomUnicodeWidthTables` is not set to `Just False`.
187+ See the documentation for `Graphics.Vty.mkVty` for details.
188+ * Vty now includes a command line tool, `vty-build-width-table`, that
189+ queries the terminal emulator to construct a custom Unicode width
190+ table and optionally update the Vty configuration file to use it.
191+ Programs that want to use that tool's functionality may also do so
192+ via the API exposed in the various modules listed above.
193+
194+5.27
195+----
196+
197+* Added `Graphics.Vty.Config.getTtyEraseChar` to support querying the
198+ kernel for the current terminal's settings to obtain the character
199+ assigned by the `stty erase` command. That can then be added to the
200+ Vty configuration's input map to map to `KBS` (backspace) if desired.
201+
202+5.26
203+----
204+
205+* Resolved various import warnings (thanks @glguy)
206+* Removed the `MonadIO` constraint from the Output type's fields and
207+ removed `MonadFail` uses (PR #177, thanks @glguy)
208+* Clarified documentation for ANSI colors (thanks Colby Jenn)
209+* `Graphics.Vty.Attributes` no longer re-exports
210+ `Graphics.Vty.Attributes.Color`
211+* The `Graphics.Vty.Attributes.Color` module is now exposed (thanks
212+ Colby Jenn)
213+* Raised upper bound for `microlens` to 0.4.12 (thanks Artyom Kazak)
214+* Changed from using `System.Posix.Env.getEnv` to
215+ `System.Environment.lookupEnv` (thanks Jonathan Osser)
216+* Added `Graphics.Vty.Image` functions for dealing with character width
217+ computations on `Text` values instead of `Strings`:
218+ * `safeWctwidth`
219+ * `safeWctlwidth`
220+ * `wctwidth`
221+ * `wctlwidth`
222+
223+5.25.1
224+------
225+
226+* Avoided a conflict with a Microlens 0.4.10 operator and added an
227+ upper bound on Microlens of 0.4.11.
228+
22295.25
3− - The Vty type got a new field, isShutdown, that returns whether the
4− Vty handle has had its 'shutdown' function called (thanks Ian
5− Jeffries)
6− - Vty's shutdown function is now thread-safe.
230+----
231+
232+* The Vty type got a new field, isShutdown, that returns whether the
233+ Vty handle has had its 'shutdown' function called (thanks Ian
234+ Jeffries)
235+* Vty's shutdown function is now thread-safe.
7236
82375.24.1
9− - The "shutdown" method of Vty handles is now idempotent (#159)
238+------
239+
240+* The "shutdown" method of Vty handles is now idempotent (#159)
10241
112425.24
12− - Add Generic and NFData instances for some types
13− - Image: remove custom Show instance, add derived Show and Read instances
14− - Updated Travis build settings (thanks Eric Mertens)
243+----
244+
245+* Add Generic and NFData instances for some types
246+* Image: remove custom Show instance, add derived Show and Read
247+ instances
248+* Updated Travis build settings (thanks Eric Mertens)
15249
162505.23.1
17− - Fixed a bug where italics did not combine properly with other
18− display modes (#155, thanks Eric Mertens)
251+------
252+
253+* Fixed a bug where italics did not combine properly with other display
254+ modes (#155, thanks Eric Mertens)
19255
202565.23
21− - Added support for italicized output when terminfo supports it. This
22− takes the form of a new Style, "italic". Note that most terminfo
23− descriptors do not report capabilities for italics, so support for
24− this will be very spotty.
25− - Updateed text/string function documentation to indicate that escapes
26− are not permitted in their inputs.
257+----
258+
259+* Added support for italicized output when terminfo supports it. This
260+ takes the form of a new Style, "italic". Note that most terminfo
261+ descriptors do not report capabilities for italics, so support for
262+ this will be very spotty.
263+* Updateed text/string function documentation to indicate that escapes
264+ are not permitted in their inputs.
27265
282665.22
29− - Added Graphics.Vty.Attributes.Color240.color240CodeToRGB function
30− (thanks Brent Carmer)
31− - Added nextEventNonblocking function (field) to Vty type (#87)
267+----
268+
269+* Added Graphics.Vty.Attributes.Color240.color240CodeToRGB function
270+ (thanks Brent Carmer)
271+* Added nextEventNonblocking function (field) to Vty type (#87)
32272
332735.21
34− - Picture and Background now provide Eq instances (thanks Jaro Reinders)
35− - #145: vty builds with microlens 0.4.9 (thanks Daniel Wagner)
36− - #142: note requirement of threaded RTS
274+----
275+
276+* Picture and Background now provide Eq instances (thanks Jaro Reinders)
277+* #145: vty builds with microlens 0.4.9 (thanks Daniel Wagner)
278+* #142: note requirement of threaded RTS
37279
382805.20
281+----
282+
39283API changes:
40− - Split up Monoid instances into Monoid and Semigroup for newer GHCs
41− (thanks Ryan Scott)
284+* Split up Monoid instances into Monoid and Semigroup for newer GHCs
285+ (thanks Ryan Scott)
42286
432875.19.1
288+------
289+
44290API changes:
45− * Cursor now provides an Eq instance (thanks Jaro Reinders)
291+* Cursor now provides an Eq instance (thanks Jaro Reinders)
46292
472935.19
294+----
295+
48296API changes:
49− - URL hyperlinking (via 'withURL') is now optional and disabled by
50− default due to poor support on some common terminals. A new 'Mode'
51− constructor, 'Hyperlink', has been added to enable this feature. To
52− change the hyperlinking mode, use 'setMode' on the 'outputIface' of a
53− Vty handle.
297+* URL hyperlinking (via 'withURL') is now optional and disabled by
298+ default due to poor support on some common terminals. A new 'Mode'
299+ constructor, 'Hyperlink', has been added to enable this feature. To
300+ change the hyperlinking mode, use 'setMode' on the 'outputIface' of a
301+ Vty handle.
54302
553035.18.1
304+------
305+
56306Bug fixes:
57− - Reset the hyperlink state on line endings to avoid run-on hyperlinks
307+* Reset the hyperlink state on line endings to avoid run-on hyperlinks
58308
593095.18
310+----
311+
60312API changes:
61− - Added support for hyperlinking attributes (thanks Getty Ritter). This
62− change adds a new Attr field for containing the hyperlink to apply,
63− as per https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
313+* Added support for hyperlinking attributes (thanks Getty Ritter). This
314+ change adds a new Attr field for containing the hyperlink to apply,
315+ as per https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
64316
653175.17.1
66− - withStyle now ignores zero arguments, leaving attribute styles
67− untouched if the input style is the null style
318+------
319+
320+* withStyle now ignores zero arguments, leaving attribute styles
321+ untouched if the input style is the null style
68322
693235.17
324+----
325+
70326API changes:
71− - Add support for terminal focus events. This change adds a new mode
72− usable with setMode, Focus, that requests that the terminal send
73− events on focus lose/gain. This change also adds two new Event
74− constructors, EvLostFocus and EvGainedFocus.
75− - No longer enable UTF8 mouse event encoding. This encoding was not
76− working properly with Terminal.app, and using the other modes (SGR,
77− etc.) work.
78− - Graphics.Vty.Attributes: escape backticks in Haddock comment (fixes
79− #131)
327+* Add support for terminal focus events. This change adds a new mode
328+ usable with setMode, Focus, that requests that the terminal send
329+ events on focus lose/gain. This change also adds two new Event
330+ constructors, EvLostFocus and EvGainedFocus.
331+* No longer enable UTF8 mouse event encoding. This encoding was not
332+ working properly with Terminal.app, and using the other modes (SGR,
333+ etc.) work.
334+* Graphics.Vty.Attributes: escape backticks in Haddock comment (fixes
335+ #131)
80336
813375.16
338+----
339+
82340API changes:
83− - Added support for mouse wheel events while in mouse mode. The Button
84− type got two new constructors as a result: BScrollUp and BScrollDown.
85− Thanks to doublescale@tutanota.com for this contribution!
341+* Added support for mouse wheel events while in mouse mode. The Button
342+ type got two new constructors as a result: BScrollUp and BScrollDown.
343+ Thanks to doublescale@tutanota.com for this contribution!
86344
87345Bug fixes:
88− - charFill now clamps negative arguments to zero (thanks Eric
89− Mertens!)
346+* charFill now clamps negative arguments to zero (thanks Eric Mertens!)
90347
913485.15.1
349+------
350+
92351Package changes:
93− - Documentation files are now marked accordingly (thanks Michal
94− Suchánek)
352+* Documentation files are now marked accordingly (thanks Michal
353+ Suchánek)
95354
96355Bug fixes:
97− - translateX/Y: fix negative translations
356+* translateX/Y: fix negative translations
98357
993585.15
359+----
360+
100361Package changes:
101− - Discontinued support for GHC versions prior to 7.10.1.
102− - Removed instructions and configuration for Stack builds since they
103− are no longer supported.
104− - Clarified README mention of (lack of) Windows support (contributors
105− wanted, though!)
106− - Removed dependency on data-default (see below).
362+* Discontinued support for GHC versions prior to 7.10.1.
363+* Removed instructions and configuration for Stack builds since they
364+ are no longer supported.
365+* Clarified README mention of (lack of) Windows support (contributors
366+ wanted, though!)
367+* Removed dependency on data-default (see below).
107368
108369API changes:
109− - Moved color definitions from Attributes to Color module.
110− - In lieu of data-default (Default) instances for Attr and Config, use
111− 'defAttr' and the new 'defaultConfig' (or 'mempty') instead of 'def'.
112− - Graphics.Vty.Output no longer re-exports
113− Graphics.Vty.Output.Interface.
114− - Removed Graphics.Vty.Prelude module and moved DisplayRegion and its
115− accessors to Graphics.Vty.Image.
116− - Graphics.Vty.Image no longer re-exports Graphics.Vty.Attributes.
117− - Graphics.Vty.Picture no longer re-exports Graphics.Vty.Image.
370+* Moved color definitions from Attributes to Color module.
371+* In lieu of data-default (Default) instances for Attr and Config, use
372+ 'defAttr' and the new 'defaultConfig' (or 'mempty') instead of 'def'.
373+* Graphics.Vty.Output no longer re-exports
374+ Graphics.Vty.Output.Interface.
375+* Removed Graphics.Vty.Prelude module and moved DisplayRegion and its
376+ accessors to Graphics.Vty.Image.
377+* Graphics.Vty.Image no longer re-exports Graphics.Vty.Attributes.
378+* Graphics.Vty.Picture no longer re-exports Graphics.Vty.Image.
118379
1193805.14
120− - addMaybeClippedJoin: instead of raising an exception when the join
121− is totally clipped, just reduce the clip amount and continue
122− - addMaybeClipped: skip blit of joins when their primary dimension is
123− zero
124− - 'string' and related text functions no longer treat an empty string
125− as an empty image (thanks Chris Penner). This means that now it is
126− possible to use 'str ""' as a non-empty image with height 1.
381+----
382+
383+* addMaybeClippedJoin: instead of raising an exception when the join
384+ is totally clipped, just reduce the clip amount and continue
385+* addMaybeClipped: skip blit of joins when their primary dimension is
386+ zero
387+* 'string' and related text functions no longer treat an empty string
388+ as an empty image (thanks Chris Penner). This means that now it is
389+ possible to use 'str ""' as a non-empty image with height 1.
127390
1283915.13
129− - Reverted changes in 5.12 due to disagreements between terminal
130− emulators and utf8proc; for more details, please see the ticket
131− discussion at
132− https://github.com/coreyoconnor/vty/issues/115
392+----
393+
394+* Reverted changes in 5.12 due to disagreements between terminal
395+ emulators and utf8proc; for more details, please see the ticket
396+ discussion at
397+ https://github.com/coreyoconnor/vty/issues/115
133398
1343995.12
135− - Replaced 'wcwidth' with a call to the utf8proc library's character
136− width function, which is much more up to date (by several Unicode
137− versions) and returns the right width for a much larger set of
138− characters.
139− - Added a bundled version of the utf8proc C library.
400+----
401+
402+* Replaced 'wcwidth' with a call to the utf8proc library's character
403+ width function, which is much more up to date (by several Unicode
404+ versions) and returns the right width for a much larger set of
405+ characters.
406+* Added a bundled version of the utf8proc C library.
140407
1414085.11.3
142− - Fix mouse event offsets in mouse-up events
409+------
410+
411+* Fix mouse event offsets in mouse-up events
143412
1444135.11.2
145− - Mouse events were modified so that the upper-left corner of the
146− window is (0,0) rather than (1,1).
414+------
415+
416+* Mouse events were modified so that the upper-left corner of the window
417+ is (0,0) rather than (1,1).
147418
1484195.11.1
149− - Add Generic instance for Image
150− - nextEvent: stop trying to refresh on a resize event (fixes segfault
151− on refresh with normal cursor positioning mode)
152− - Remove redundant clause from clipForCharWidth (thanks Eric Mertens)
153− - Update maintainer
420+------
421+
422+* Add Generic instance for Image
423+* nextEvent: stop trying to refresh on a resize event (fixes segfault
424+ on refresh with normal cursor positioning mode)
425+* Remove redundant clause from clipForCharWidth (thanks Eric Mertens)
426+* Update maintainer
154427
1554285.11
156− - Vty now raises a VtyConfigurationError exception when the TERM
157− evironment variable is missing (thanks Eric Mertens)
158− - Graphics.Vty.Config got an explicit export list to avoid accidentally
159− exporting internal types (thanks Eric Mertens)
429+----
430+
431+* Vty now raises a VtyConfigurationError exception when the TERM
432+ evironment variable is missing (thanks Eric Mertens)
433+* Graphics.Vty.Config got an explicit export list to avoid accidentally
434+ exporting internal types (thanks Eric Mertens)
160435
1614365.10
162− - Add absolute cursor positioning mode AbsoluteCursor to Cursor. This
163− mode provides greater control over cursor positioning by bypassing
164− the logical positioning provided by default. Rather than positioning
165− the cursor by looking at the widths of characters involved, this
166− constructor lets you provide a physical row and column instead. This
167− is useful in more sophisticated programs. (thanks Eric Mertens)
168− - Added a new Generic-derived config parser (thanks Eric Mertens)
169− - Fixed the MShift case in the configuration file parser (thanks Eric
170− Mertens)
171− - Fixed wcwidth import and matched safeWcswidth to its documented
172− behavior. Previously vty_mk_wcwidth was being imported with
173− the wrong type causing the -1 return value to be mapped to the
174− wrong Int value. Additionally safeWcswidth was using the unsafe
175− character width function and only ensuring that the final result was
176− non-negative. (thanks Eric Mertens)
437+----
438+
439+* Add absolute cursor positioning mode AbsoluteCursor to Cursor. This
440+ mode provides greater control over cursor positioning by bypassing
441+ the logical positioning provided by default. Rather than positioning
442+ the cursor by looking at the widths of characters involved, this
443+ constructor lets you provide a physical row and column instead. This
444+ is useful in more sophisticated programs. (thanks Eric Mertens)
445+* Added a new Generic-derived config parser (thanks Eric Mertens)
446+* Fixed the MShift case in the configuration file parser (thanks Eric
447+ Mertens)
448+* Fixed wcwidth import and matched safeWcswidth to its documented
449+ behavior. Previously vty_mk_wcwidth was being imported with the
450+ wrong type causing the -1 return value to be mapped to the wrong Int
451+ value. Additionally safeWcswidth was using the unsafe character width
452+ function and only ensuring that the final result was non-negative.
453+ (thanks Eric Mertens)
177454
1784555.9.1
179− - Vty now only emits UTF8 charset sequences in terminals without a
180− preexisting UTF8 declaration to avoid emitting garbage sequences
181− (fixes #89)
456+-----
457+
458+* Vty now only emits UTF8 charset sequences in terminals without a
459+ preexisting UTF8 declaration to avoid emitting garbage sequences
460+ (fixes #89)
182461
1834625.9
184− - Added new Output methods supportsBell and ringTerminalBell to find
185− out whether the output device has an audio bell and to ring it (see
186− #102)
463+---
464+
465+* Added new Output methods supportsBell and ringTerminalBell to find out
466+ whether the output device has an audio bell and to ring it (see #102)
187467
1884685.8.1
189− - Fixed "refresh" to work as advertised (see #104)
469+-----
470+
471+* Fixed "refresh" to work as advertised (see #104)
190472
1914735.8
192− - API change: EvPaste input event now provides paste data as a raw
193− ByteString rather than a String to allow the application to decode
194− how best to decode it
474+---
475+
476+* API change: EvPaste input event now provides paste data as a raw
477+ ByteString rather than a String to allow the application to decode how
478+ best to decode it
195479
1964805.7.1
197− - ModeDemo: added an explicit Control.Applicative import for older
198− GHCs
481+-----
482+
483+* ModeDemo: added an explicit Control.Applicative import for older GHCs
199484
2004855.7
201− - Mouse and paste modes are now off by default.
202− - The Config type got new fields: mouseMode and bracketedPasteMode.
203− These determine whether these modes are enabled initially (for
204− terminals that support them).
205− - Added a Mode type for modal terminal features (mouse events,
206− bracketed paste mode) that is used with new Output interface
207− functions:
208− * supportsMode :: Mode -> Bool tells whether the device supports a
209− mode
210− * setMode :: Mode -> Bool -> IO () turns a mode on or off
211− * getModeStatus :: Mode -> IO Bool tells you whether a mode is on or
212− off
213− - Added a new demo program, ModeDemo.hs, to demonstrate usage of modes
486+---
487+
488+* Mouse and paste modes are now off by default.
489+* The Config type got new fields: mouseMode and bracketedPasteMode.
490+ These determine whether these modes are enabled initially (for
491+ terminals that support them).
492+* Added a Mode type for modal terminal features (mouse events,
493+ bracketed paste mode) that is used with new Output interface
494+ functions:
495+ * supportsMode :: Mode -> Bool tells whether the device supports a
496+ mode
497+ * setMode :: Mode -> Bool -> IO () turns a mode on or off
498+ * getModeStatus :: Mode -> IO Bool tells you whether a mode is on or
499+ off
500+* Added a new demo program, ModeDemo.hs, to demonstrate usage of modes
214501
2155025.6
216− - Added support for normal and extended mouse modes in Xterm-like
217− terminals via the MouseDown and MouseUp Event constructors
218− - Added support for bracketed paste mode in Xterm-like terminals via
219− the EvPaste event constructor
220− - Added derived Show instances for Event and Button (thanks Felix
221− Hirn)
222− - Now TERM values containing "screen" will automatically use the
223− XtermColor driver rather than just TerminfoBased
503+---
504+
505+* Added support for normal and extended mouse modes in Xterm-like
506+ terminals via the MouseDown and MouseUp Event constructors
507+* Added support for bracketed paste mode in Xterm-like terminals via
508+ the EvPaste event constructor
509+* Added derived Show instances for Event and Button (thanks Felix
510+ Hirn)
511+* Now TERM values containing "screen" will automatically use the
512+ XtermColor driver rather than just TerminfoBased
224513
2255145.5.0
226− - Replaced lens dependency with microlens, microlens-mtl, microlens-th
227− dependencies. Issue #90
228− - Thanks Jonathan Daugherty
229− - Cabal corrections.
230− - Thanks Lennart Spitzner
515+-----
516+
517+* Replaced lens dependency with microlens, microlens-mtl, microlens-th
518+ dependencies. Issue #90
519+ * Thanks Jonathan Daugherty
520+* Cabal corrections.
521+ * Thanks Lennart Spitzner
231522
2325235.4.0
233− - Changed eventChannel of Graphics.Vty.Input from Chan to TChan.
234− This enables clients to query if there are no pending events. The
235− Graphics.Vty interface nextEvent is unchanged. Clients that use
236− eventChannel directly will require updating.
237− https://github.com/coreyoconnor/vty/issues/60
524+-----
525+
526+* Changed eventChannel of Graphics.Vty.Input from Chan to
527+ TChan. This enables clients to query if there are no pending
528+ events. The Graphics.Vty interface nextEvent is unchanged.
529+ Clients that use eventChannel directly will require updating.
530+ https://github.com/coreyoconnor/vty/issues/60
531+
2385325.3.1
239− - Reverted cabal file to depend on Cabal >= 1.18 instead of 1.20 due
240− to possibly breaking this on reasonable GHC versions
533+-----
534+
535+* Reverted cabal file to depend on Cabal >= 1.18 instead of 1.20 due to
536+ possibly breaking this on reasonable GHC versions
241537
2425385.3
243− - Upgraded QuickCheck dependency to 2.7
244− - The standard IO Config (standardIOConfig) was overriding any
245− provided application config. In addition, the inputFd and outputFd
246− could not be changed if mkVty was used. Fixed.
247− - Correct handling of display attributes at end of line. The output
248− attributes are set to default at the end of content for the line and
249− at the start of a new line. Previously the current attribute would
250− extend to the next start of content. This was odd to reason about
251− and was the cause of https://github.com/coreyoconnor/vty/issues/76
252− IIRC Yi requires the old behavior to display the selection region
253− correctly.
254− - shutdown of the input thread is now performed using killThread and
255− synchronization on an MVar. For correct handling of the terminal
256− read vmin and vtime the read must be a blocking read on an OS
257− thread. This places a threadWaitRead, which will be interrupted by
258− the killThread, prior to the uninterruptable read. An alternative
259− would be to re-import the read foreign call as interruptable.
539+---
540+
541+* Upgraded QuickCheck dependency to 2.7
542+* The standard IO Config (standardIOConfig) was overriding any provided
543+ application config. In addition, the inputFd and outputFd could not be
544+ changed if mkVty was used. Fixed.
545+* Correct handling of display attributes at end of line. The output
546+ attributes are set to default at the end of content for the line and
547+ at the start of a new line. Previously the current attribute would
548+ extend to the next start of content. This was odd to reason about and
549+ was the cause of https://github.com/coreyoconnor/vty/issues/76 IIRC Yi
550+ requires the old behavior to display the selection region correctly.
551+* shutdown of the input thread is now performed using killThread and
552+ synchronization on an MVar. For correct handling of the terminal read
553+ vmin and vtime the read must be a blocking read on an OS thread.
554+ This places a threadWaitRead, which will be interrupted by the
555+ killThread, prior to the uninterruptable read. An alternative would be
556+ to re-import the read foreign call as interruptable.
260557
2615585.2.11
262− - deepseq bounds increased for tests.
263− - Clean up warnings when compiling on 7.10
264− - Thanks Eric Mertens
265− - Avoid discarding input bytes after multi-byte encoded codepoint
266− - Thanks Eric Mertens
559+------
560+
561+* deepseq bounds increased for tests.
562+* Clean up warnings when compiling on 7.10
563+ * Thanks Eric Mertens
564+* Avoid discarding input bytes after multi-byte encoded codepoint
565+ * Thanks Eric Mertens
267566
2685675.2.10
269− - "str" now returns EmptyImage for empty strings to match behavior of
270− other string-like Image constructors (fixes #74)
271− - Thanks Jonathan Daugherty
568+------
569+
570+* "str" now returns EmptyImage for empty strings to match behavior of
571+ other string-like Image constructors (fixes #74)
572+ * Thanks Jonathan Daugherty
272573
2735745.2.9
274− - dependency version bumps
275− - https://github.com/coreyoconnor/vty/pull/71
276− - https://github.com/coreyoconnor/vty/pull/70
277− - Correct/Simplify the example code
278− - Thanks glguy
279− - https://github.com/coreyoconnor/vty/pull/69
575+-----
576+
577+* dependency version bumps
578+ * https://github.com/coreyoconnor/vty/pull/71
579+ * https://github.com/coreyoconnor/vty/pull/70
580+* Correct/Simplify the example code
581+ * Thanks glguy
582+ * https://github.com/coreyoconnor/vty/pull/69
280583
2815845.2.8
282− - blaze-builder, lens, utf8-string version constraint bump
283− - Thanks glguy
284− - https://github.com/coreyoconnor/vty/pull/67
285− - Do not differentiate based on TERM_PROGRAM
286− - https://github.com/coreyoconnor/vty/issues/68
585+-----
586+
587+* blaze-builder, lens, utf8-string version constraint bump
588+ * Thanks glguy
589+ * https://github.com/coreyoconnor/vty/pull/67
590+* Do not differentiate based on TERM_PROGRAM
591+ * https://github.com/coreyoconnor/vty/issues/68
287592
2885935.2.7
289− - lens and deepseq constraint bump + misc
290− - Thanks ethercrow
291− - https://github.com/coreyoconnor/vty/pull/66
594+-----
595+
596+* lens and deepseq constraint bump + misc
597+ * Thanks ethercrow
598+ * https://github.com/coreyoconnor/vty/pull/66
292599
2936005.2.6
294− - lens constraint bump
295− - Thanks alexander-b!
296− - https://github.com/coreyoconnor/vty/pull/64
601+-----
602+
603+* lens constraint bump
604+ * Thanks alexander-b!
605+ * https://github.com/coreyoconnor/vty/pull/64
297606
2986075.2.5
299− - lens and random version constraint bump.
300− - Thanks RyanGlScott!
301− - https://github.com/coreyoconnor/vty/pull/62
608+-----
609+
610+* lens and random version constraint bump.
611+ * Thanks RyanGlScott!
612+ * https://github.com/coreyoconnor/vty/pull/62
302613
3036145.2.4
304− - removed -fpic from cc-options. No longer required.
305− - https://github.com/coreyoconnor/vty/issues/61
306− - https://ghc.haskell.org/trac/ghc/ticket/9657
307− - Thanks Fuuzetsu!
615+-----
616+
617+* removed -fpic from cc-options. No longer required.
618+ * https://github.com/coreyoconnor/vty/issues/61
619+ * https://ghc.haskell.org/trac/ghc/ticket/9657
620+ * Thanks Fuuzetsu!
308621
3096225.2.3
310− - evaluate/compile the input parsing table once instead of each
311− keystroke.
312− - https://github.com/coreyoconnor/vty/pull/59
313− - Thanks ethercrow!
623+-----
624+
625+* evaluate/compile the input parsing table once instead of each
626+ keystroke.
627+ * https://github.com/coreyoconnor/vty/pull/59
628+ * Thanks ethercrow!
314629
3156305.2.2
316− - When looking at input for an event, don't look too deep.
317− - https://github.com/coreyoconnor/vty/pull/57
318− - Thanks ethercrow!
631+-----
632+
633+* When looking at input for an event, don't look too deep.
634+ * https://github.com/coreyoconnor/vty/pull/57
635+ * Thanks ethercrow!
319636
3206375.2.1
321− - Bump upper version bound for lens to 4.5. Thanks markus1189!
638+-----
639+
640+* Bump upper version bound for lens to 4.5. Thanks markus1189!
322641
3236425.2.0
324− - Config structure now specifies file descriptor to use. The default
325− is stdInput and stdOutput file descriptors. Previously Vty used
326− stdInput for input and the follow code for output:
327− - hDuplicate stdout >>= handleToFd >>= (`hSetBuffering`
328− NoBuffering)
329− - the difference was required by Vty.Inline. Now, Vty.Inline uses
330− the Config structure options to acheive the same effect.
331− - removed: derivedVtime, derivedVmin, inputForCurrentTerminal,
332− inputForNameAndIO, outputForCurrentTerminal, outputForNameAndIO
333− - added: inputForConfig, outputForConfig
334− - updates to vty-rogue from jtdaugherty. Thanks!
335− - the oldest version of GHC tested to support vty is 7.6.2.
336− - the oldest version of GHC that vty compiles under is 7.4.2
643+-----
644+
645+* Config structure now specifies file descriptor to use. The default
646+ is stdInput and stdOutput file descriptors. Previously Vty used
647+ stdInput for input and the follow code for output:
648+ * hDuplicate stdout >>= handleToFd >>= (`hSetBuffering`
649+ NoBuffering)
650+ * the difference was required by Vty.Inline. Now, Vty.Inline uses
651+ the Config structure options to acheive the same effect.
652+* removed: derivedVtime, derivedVmin, inputForCurrentTerminal,
653+ inputForNameAndIO, outputForCurrentTerminal, outputForNameAndIO
654+* added: inputForConfig, outputForConfig
655+* updates to vty-rogue from jtdaugherty. Thanks!
656+* the oldest version of GHC tested to support vty is 7.6.2.
657+* the oldest version of GHC that vty compiles under is 7.4.2
337658
3386595.1.4
339− - merged https://github.com/coreyoconnor/vty/pull/51 thanks trofi!
660+-----
661+
662+* merged https://github.com/coreyoconnor/vty/pull/51 thanks trofi!
340663
3416645.1.1
342− - merged https://github.com/coreyoconnor/vty/pull/48 thanks sjmielke!
343− - jtdaugherty resolved a number of compiler warnings. Thanks!
665+-----
666+
667+* merged https://github.com/coreyoconnor/vty/pull/48 thanks sjmielke!
668+* jtdaugherty resolved a number of compiler warnings. Thanks!
344669
3456705.1.0
346− - vmin and vtime can be specified however the application requires.
347− See Graphics.Vty.Config.
348− - fixed the processing of input when vmin is set > 1.
671+-----
672+
673+* vmin and vtime can be specified however the application requires.
674+ See Graphics.Vty.Config.
675+* fixed the processing of input when vmin is set > 1.
349676
3506775.0.0
351− - The naming convention now matches:
352− - http://www.haskell.org/haskellwiki/Programming_guidelines#Naming_Conventions
353− - all projects using vty for input must be compiled with -threaded.
354− Please notify vty author if this is not acceptable.
355− - mkVtyEscDelay has been removed. Use "mkVty def". Which initialized
356− vty with the default configuration.
357− - input handling changes
358− - KASCII is now KChar
359− - KPN5 is now KCenter
360− - tests exist.
361− - Applications can add to the input tables by setting inputMap of
362− the Config. See Graphics.Vty.Config
363− - Users can define input table extensions that will apply to all vty
364− applications. See Graphics.Vty.Config
365− - terminal timing is now handled by selecting an appropriate VTIME.
366− Previously this was implemented within Vty itself. This reduced
367− complexity in vty but provides a different meta key behavior and
368− implies a requirement on -threaded.
369− - The time vty will wait to verify an ESC byte means a single ESC
370− key is the singleEscPeriod of the Input Config structure.
371− - removed the typeclass based terminal and display context interface
372− in favor of a data structure of properties interface.
373− - renamed the Terminal interface to Output
374− - The default picture for an image now uses the "clear" background.
375− This background fills background spans with spaces or just ends the
376− line.
377− - Previously the background defaulted to the space character. This
378− causes issues copying text from a text editor. The text would end
379− up with extra spaces at the end of the line.
380− - Layer support
381− - Each layer is an image.
382− - The layers for a picture are a list of images.
383− - The first image is the top-most layer. The images are ordered from
384− top to bottom.
385− - The transparent areas for a layer are the backgroundFill areas.
386− backgroundFill is added to pad images when images of different
387− sizes are joined.
388− - If the background is clear there is no background layer.
389− - If there is a background character then the bottom layer is the
390− background layer.
391− - emptyPicture is a Picture with no layers and no cursor
392− - addToTop and addToBottom add a layer to the top and bottom of the
393− given Picture.
394− - compatibility improvements:
395− - terminfo based terminals with no cursor support are silently
396− accepted. The cursor visibility changes in the Picture will have
397− no effect.
398− - alternate (setf/setb) color maps supported. Though colors beyond
399− the first 8 are just a guess.
400− - added "rgbColor" for easy support of RGB specified colors.
401− - Both applications and users can add to the mapping used to
402− translate from input bytes to events.
403− - Additional information about input and output process can be
404− appended to a debug log
405− - Set environment variable VTY_DEBUG_LOG to path of debug log
406− - Or use "debugLog <path>" config directive
407− - Or set 'debugLog' property of the Config provided to mkVty.
408− - examples moved to vty-examples package. See test directory for cabal
409− file.
410− - vty-interactive-terminal-test
411− - interactive test. Useful for building a bug report for vty's
412− author.
413− - test/interactive_terminal_test.hs
414− - vty-event-echo
415− - view a input event log for vty. Example of interacting with
416− user.
417− - test/EventEcho.hs
418− - vty-rogue
419− - The start of a rogue-like game. Example of layers and image
420− build operations.
421− - test/Rogue.hs
422− - vty-benchmark
423− - benchmarks vty. A series of tests that push random pictures to
424− the terminal. The random pictures are generated using
425− QuickCheck. The same generators used in the automated tests.
426− - test/benchmark.hs
678+-----
679+
680+* The naming convention now matches:
681+ * http://www.haskell.org/haskellwiki/Programming_guidelines#Naming_Conventions
682+* all projects using vty for input must be compiled with -threaded.
683+ Please notify vty author if this is not acceptable.
684+* mkVtyEscDelay has been removed. Use "mkVty def". Which initialized
685+ vty with the default configuration.
686+* input handling changes
687+ * KASCII is now KChar
688+ * KPN5 is now KCenter
689+ * tests exist.
690+ * Applications can add to the input tables by setting inputMap of
691+ the Config. See Graphics.Vty.Config
692+ * Users can define input table extensions that will apply to all vty
693+ applications. See Graphics.Vty.Config
694+ * terminal timing is now handled by selecting an appropriate VTIME.
695+ Previously this was implemented within Vty itself. This reduced
696+ complexity in vty but provides a different meta key behavior and
697+ implies a requirement on -threaded.
698+ * The time vty will wait to verify an ESC byte means a single ESC
699+ key is the singleEscPeriod of the Input Config structure.
700+* removed the typeclass based terminal and display context interface
701+ in favor of a data structure of properties interface.
702+* renamed the Terminal interface to Output
703+* The default picture for an image now uses the "clear" background.
704+ This background fills background spans with spaces or just ends the
705+ line.
706+ * Previously the background defaulted to the space character. This
707+ causes issues copying text from a text editor. The text would end
708+ up with extra spaces at the end of the line.
709+* Layer support
710+ * Each layer is an image.
711+ * The layers for a picture are a list of images.
712+ * The first image is the top-most layer. The images are ordered from
713+ top to bottom.
714+ * The transparent areas for a layer are the backgroundFill areas.
715+ backgroundFill is added to pad images when images of different
716+ sizes are joined.
717+ * If the background is clear there is no background layer.
718+ * If there is a background character then the bottom layer is the
719+ background layer.
720+ * emptyPicture is a Picture with no layers and no cursor
721+ * addToTop and addToBottom add a layer to the top and bottom of the
722+ given Picture.
723+* compatibility improvements:
724+ * terminfo based terminals with no cursor support are silently
725+ accepted. The cursor visibility changes in the Picture will have
726+ no effect.
727+ * alternate (setf/setb) color maps supported. Though colors beyond
728+ the first 8 are just a guess.
729+ * added "rgbColor" for easy support of RGB specified colors.
730+ * Both applications and users can add to the mapping used to
731+ translate from input bytes to events.
732+* Additional information about input and output process can be
733+ appended to a debug log
734+ * Set environment variable VTY_DEBUG_LOG to path of debug log
735+ * Or use "debugLog <path>" config directive
736+ * Or set 'debugLog' property of the Config provided to mkVty.
737+* examples moved to vty-examples package. See test directory for cabal
738+ file.
739+ * vty-interactive-terminal-test
740+ * interactive test. Useful for building a bug report for vty's
741+ author.
742+ * test/interactive_terminal_test.hs
743+ * vty-event-echo
744+ * view a input event log for vty. Example of interacting with
745+ user.
746+ * test/EventEcho.hs
747+ * vty-rogue
748+ * The start of a rogue-like game. Example of layers and image
749+ build operations.
750+ * test/Rogue.hs
751+ * vty-benchmark
752+ * benchmarks vty. A series of tests that push random pictures to
753+ the terminal. The random pictures are generated using
754+ QuickCheck. The same generators used in the automated tests.
755+ * test/benchmark.hs
427756
4287574.7.0.0
429− - API changes:
430− - Added Graphics.Vty.Image.crop: Ensure an image is no larger
431− than the specified size.
432− - Added Graphics.Vty.Image.pad: Ensure an image is no smaller
433− than the specified size.
434− - Added Graphics.Vty.Image.translate: Offset an image.
435− - Thanks Ben Boeckel <MathStuf@gmail.com> for these features.
758+-------
436759
437−4.3.0.0
760+API changes:
761+* Added Graphics.Vty.Image.crop: Ensure an image is no larger
762+ than the specified size.
763+* Added Graphics.Vty.Image.pad: Ensure an image is no smaller
764+ than the specified size.
765+* Added Graphics.Vty.Image.translate: Offset an image.
766+* Thanks Ben Boeckel <MathStuf@gmail.com> for these features.
438767
4397684.2.1.0
440− - API changes:
441− - Attr record accessor fore_color changed to attr_fore_color
442− - Attr record accessor back_color changed to attr_back_color
443− - Attr record accessor style changed to attr_style
444− - Added an "inline" display attribute changing DSL:
445− - put_attr_change applies a display attribute change
446− immediately to a terminal
447− - For instance, can be used to change the display attrbiutes
448− of text output via putStrLn and putStr. EX:
449− "put_attr_change $ back_color red" will set the background
450− color to red.
451− - Changes do not apply to a Picture output via output_picture.
452− - See Graphics.Vty.Inline
453− - Moved all IO actions into any monad an instance of MonadIO
769+-------
770+
771+API changes:
772+* Attr record accessor fore_color changed to attr_fore_color
773+* Attr record accessor back_color changed to attr_back_color
774+* Attr record accessor style changed to attr_style
775+* Added an "inline" display attribute changing DSL:
776+ * put_attr_change applies a display attribute change
777+ immediately to a terminal
778+ * For instance, can be used to change the display attrbiutes
779+ of text output via putStrLn and putStr. EX:
780+ "put_attr_change $ back_color red" will set the background
781+ color to red.
782+ * Changes do not apply to a Picture output via output_picture.
783+ * See Graphics.Vty.Inline
784+* Moved all IO actions into any monad an instance of MonadIO
454785
4557864.0.0.1
456− - binding for mk_wcswidth was incorrect. Most platforms just
457− magically worked due to coincidence.
787+-------
788+
789+* binding for mk_wcswidth was incorrect. Most platforms just
790+ magically worked due to coincidence.
458791
4597924.0.0
460− - API changes:
461− - "getSize" has been removed. Use "terminal vty >>= display_bounds"
462− where "vty" is an instance of the Vty data structure.
463− - added a "terminal" field to the Vty data structure. Accesses the
464− TerminalHandle associated with the Vty instance.
465− - Graphics.Vty.Types has undergone a number of changes. Summary:
466− - Partitioned into Graphics.Vty.Attributes for display attributes.
467− Graphics.Vty.Image for image combinators. Graphics.Vty.Picture
468− for final picture construction.
469− - Graphics.Vty.Attributes:
470− - "setFG" and "setBG" are now "with_fore_color" and
471− "with_back_color"
472− - All other "set.." equations similarly replaced.
473− - "attr" is now "def_attr", short for "default display attributes"
474− Also added a "current_attr" for "currently applied display
475− attributes"
476− - Graphics.Vty.Image:
477− - "horzcat" is now "horiz_cat"
478− - "vertcat" is now "vert_cat"
479− - "renderBS" is now "utf8_bytestring"
480− - "renderChar" is now "char"
481− - "renderFill" is now "char_fill"
482− - added a "utf8_string" and "string" (AKA "iso_10464_string") for
483− UTF-8 encoded Strings and ISO-10464 encoded Strings. String
484− literals in GHC have an ISO-10464 runtime representation.
485− - Graphics.Vty.Picture:
486− - exports Graphics.Vty.Image
487− - "pic" is now "pic_for_image"
488− - added API for setting background fill pattern.
489− - Completely rewritten output backend.
490− - Efficient, scanline style output span generator. Has not been
491− fully optimized, but good enough.
492− - The details required to display the desired picture on a
493− terminal are well encapsulated.
494− - Terminfo based display terminal implementation. With specialized
495− derivitives for xterm, Terminal.app, and iTerm.app.
496− - Attempts to robustly handle even terminals that don't
497− support all display attributes.
498− - I've tested the following terminals with success: iTerm.app,
499− Terminal.app, xterm, rxvt, mlterm, Eterm, gnome-terminal,
500− konsole, screen, linux vty. Hopefully you will be as
501− successfull.
502− - Improved unicode support. Double wide characters will display as
503− expected.
504− - 256 color support. See Graphics.Vty.Attributes.Color240. The actual
505− output color is adjusted according to the number of colors the
506− terminal supports.
507− - The Graphics.Vty.Image combinators no longer require matching
508− dimensions to arguments. Unspecified areas are filled in with a
509− user-customizable background pattern. See Graphics.Vty.Picture.
510− - output images are always cropped to display size.
511− - Significant code coverage by QuickCheck tests. An interactive test
512− for those final properties that couldn't be automatically verified.
793+-----
794+
795+API changes:
796+* "getSize" has been removed. Use "terminal vty >>= display_bounds"
797+ where "vty" is an instance of the Vty data structure.
798+* added a "terminal" field to the Vty data structure. Accesses the
799+ TerminalHandle associated with the Vty instance.
800+* Graphics.Vty.Types has undergone a number of changes. Summary:
801+ * Partitioned into Graphics.Vty.Attributes for display attributes.
802+ Graphics.Vty.Image for image combinators. Graphics.Vty.Picture
803+ for final picture construction.
804+* Graphics.Vty.Attributes:
805+ * "setFG" and "setBG" are now "with_fore_color" and
806+ "with_back_color"
807+ * All other "set.." equations similarly replaced.
808+ * "attr" is now "def_attr", short for "default display attributes"
809+ Also added a "current_attr" for "currently applied display
810+ attributes"
811+* Graphics.Vty.Image:
812+ * "horzcat" is now "horiz_cat"
813+ * "vertcat" is now "vert_cat"
814+ * "renderBS" is now "utf8_bytestring"
815+ * "renderChar" is now "char"
816+ * "renderFill" is now "char_fill"
817+ * added a "utf8_string" and "string" (AKA "iso_10464_string") for
818+ UTF-8 encoded Strings and ISO-10464 encoded Strings. String
819+ literals in GHC have an ISO-10464 runtime representation.
820+* Graphics.Vty.Picture:
821+ * exports Graphics.Vty.Image
822+ * "pic" is now "pic_for_image"
823+ * added API for setting background fill pattern.
824+* Completely rewritten output backend.
825+ * Efficient, scanline style output span generator. Has not been
826+ fully optimized, but good enough.
827+ * The details required to display the desired picture on a
828+ terminal are well encapsulated.
829+ * Terminfo based display terminal implementation. With specialized
830+ derivitives for xterm, Terminal.app, and iTerm.app.
831+ * Attempts to robustly handle even terminals that don't
832+ support all display attributes.
833+ * I've tested the following terminals with success: iTerm.app,
834+ Terminal.app, xterm, rxvt, mlterm, Eterm, gnome-terminal,
835+ konsole, screen, linux vty. Hopefully you will be as
836+ successfull.
837+ * Improved unicode support. Double wide characters will display as
838+ expected.
839+* 256 color support. See Graphics.Vty.Attributes.Color240. The actual
840+ output color is adjusted according to the number of colors the
841+ terminal supports.
842+* The Graphics.Vty.Image combinators no longer require matching
843+ dimensions to arguments. Unspecified areas are filled in with a
844+ user-customizable background pattern. See Graphics.Vty.Picture.
845+* output images are always cropped to display size.
846+* Significant code coverage by QuickCheck tests. An interactive test
847+ for those final properties that couldn't be automatically verified.
513848
514849Issues resolved:
515− - "gnome terminal displays non-basic attributes as strikethrough"
516− - http://trac.haskell.org/vty/ticket/14
517− - "Multi-byte characters are not displayed correctly on update"
518− - http://trac.haskell.org/vty/ticket/10
519− - "Redraw does not handle rendering a line that extends beyond screen
520− width characters"
521− - http://trac.haskell.org/vty/ticket/13
522− - "The <|> and <-> combinators should be more forgiving of mismatched
523− dimensions"
524− - http://trac.haskell.org/vty/ticket/9
525− - "256-color support"
526− - http://trac.haskell.org/vty/ticket/19
850+* "gnome terminal displays non-basic attributes as strikethrough"
851+ * http://trac.haskell.org/vty/ticket/14
852+* "Multi-byte characters are not displayed correctly on update"
853+ * http://trac.haskell.org/vty/ticket/10
854+* "Redraw does not handle rendering a line that extends beyond screen
855+ width characters"
856+ * http://trac.haskell.org/vty/ticket/13
857+* "The <|> and <-> combinators should be more forgiving of mismatched
858+ dimensions"
859+ * http://trac.haskell.org/vty/ticket/9
860+* "256-color support"
861+ * http://trac.haskell.org/vty/ticket/19