on master help sign in
vty/CHANGELOG.md
861 lines 29 kB history raw
25.35.1
3------
5Bug fixes:
6 * Fixed a build issue with a test program.
85.35
9----
11New 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.
21API 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`.
33Other 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)
405.34
41----
43API 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.
695.33
70----
72API changes:
73* The `Cursor` type got a new `PositionOnly` constructor for cursor
74 placement without visibility.
76Package changes:
77* Relaxed upper bound for `random`
78* Updated `microlens` bounds to allow 0.4.12
80Other improvements:
81* Various hlint-driven improvements (thanks Willem Van Onsem)
82* The implementation of `color240` was improved (thanks (Willem Van
83 Onsem)
855.32
86----
88New 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
93Bug fixes:
94 * Detect utf-8 mode in `LANG` regardless of case (thanks Emeka
95 Nkurumeh)
975.31
98----
100New 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.
110Other changes:
111 * The C prototype for `vty_c_get_window_size` in `gwinsz.h` was fixed.
1135.30
114----
116New 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
1225.29
123----
125API 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.
137Other changes:
138 * attributeControl: explicitly enable the ICRNL terminal mode flag (see
139 #187 and c572ad).
1415.28.2
142------
144Bug fixes:
145 * Added a package dependency on `semigroups` for the
146 `vty-build-width-table` tool on older GHCs (#185)
1485.28.1
149------
151Bug fixes:
152 * `installUnicodeWidthTable`: use `throwIO`, not `throw`
1545.28
155----
157This release improves Vty's support for multi-column Unicode characters
158and provides greater compatibility with a wider array of terminal
159emulators. The following sections summarize the relevant changes, but an
160overview of the new functionality is motivated and detailed in the new
161"Multi-Column Character Support" README section. For
162historical context, please also consider reading over
163[#175](https://github.com/jtdaugherty/vty/issues/175).
165API 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.
175Configuration 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.
183Other 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.
1945.27
195----
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.
2025.26
203----
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`
2235.25.1
224------
226* Avoided a conflict with a Microlens 0.4.10 operator and added an
227 upper bound on Microlens of 0.4.11.
2295.25
230----
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.
2375.24.1
238------
240* The "shutdown" method of Vty handles is now idempotent (#159)
2425.24
243----
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)
2505.23.1
251------
253* Fixed a bug where italics did not combine properly with other display
254 modes (#155, thanks Eric Mertens)
2565.23
257----
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.
2665.22
267----
269* Added Graphics.Vty.Attributes.Color240.color240CodeToRGB function
270 (thanks Brent Carmer)
271* Added nextEventNonblocking function (field) to Vty type (#87)
2735.21
274----
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
2805.20
281----
283API changes:
284* Split up Monoid instances into Monoid and Semigroup for newer GHCs
285 (thanks Ryan Scott)
2875.19.1
288------
290API changes:
291* Cursor now provides an Eq instance (thanks Jaro Reinders)
2935.19
294----
296API changes:
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.
3035.18.1
304------
306Bug fixes:
307* Reset the hyperlink state on line endings to avoid run-on hyperlinks
3095.18
310----
312API changes:
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
3175.17.1
318------
320* withStyle now ignores zero arguments, leaving attribute styles
321 untouched if the input style is the null style
3235.17
324----
326API changes:
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)
3375.16
338----
340API changes:
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!
345Bug fixes:
346* charFill now clamps negative arguments to zero (thanks Eric Mertens!)
3485.15.1
349------
351Package changes:
352* Documentation files are now marked accordingly (thanks Michal
353 Suchánek)
355Bug fixes:
356* translateX/Y: fix negative translations
3585.15
359----
361Package changes:
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).
369API changes:
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.
3805.14
381----
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.
3915.13
392----
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
3995.12
400----
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.
4085.11.3
409------
411* Fix mouse event offsets in mouse-up events
4135.11.2
414------
416* Mouse events were modified so that the upper-left corner of the window
417 is (0,0) rather than (1,1).
4195.11.1
420------
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
4285.11
429----
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)
4365.10
437----
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)
4555.9.1
456-----
458* Vty now only emits UTF8 charset sequences in terminals without a
459 preexisting UTF8 declaration to avoid emitting garbage sequences
460 (fixes #89)
4625.9
463---
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)
4685.8.1
469-----
471* Fixed "refresh" to work as advertised (see #104)
4735.8
474---
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
4805.7.1
481-----
483* ModeDemo: added an explicit Control.Applicative import for older GHCs
4855.7
486---
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
5025.6
503---
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
5145.5.0
515-----
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
5235.4.0
524-----
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
5325.3.1
533-----
535* Reverted cabal file to depend on Cabal >= 1.18 instead of 1.20 due to
536 possibly breaking this on reasonable GHC versions
5385.3
539---
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.
5585.2.11
559------
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
5675.2.10
568------
570* "str" now returns EmptyImage for empty strings to match behavior of
571 other string-like Image constructors (fixes #74)
572 * Thanks Jonathan Daugherty
5745.2.9
575-----
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
5845.2.8
585-----
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
5935.2.7
594-----
596* lens and deepseq constraint bump + misc
597 * Thanks ethercrow
598 * https://github.com/coreyoconnor/vty/pull/66
6005.2.6
601-----
603* lens constraint bump
604 * Thanks alexander-b!
605 * https://github.com/coreyoconnor/vty/pull/64
6075.2.5
608-----
610* lens and random version constraint bump.
611 * Thanks RyanGlScott!
612 * https://github.com/coreyoconnor/vty/pull/62
6145.2.4
615-----
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!
6225.2.3
623-----
625* evaluate/compile the input parsing table once instead of each
626 keystroke.
627 * https://github.com/coreyoconnor/vty/pull/59
628 * Thanks ethercrow!
6305.2.2
631-----
633* When looking at input for an event, don't look too deep.
634 * https://github.com/coreyoconnor/vty/pull/57
635 * Thanks ethercrow!
6375.2.1
638-----
640* Bump upper version bound for lens to 4.5. Thanks markus1189!
6425.2.0
643-----
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
6595.1.4
660-----
662* merged https://github.com/coreyoconnor/vty/pull/51 thanks trofi!
6645.1.1
665-----
667* merged https://github.com/coreyoconnor/vty/pull/48 thanks sjmielke!
668* jtdaugherty resolved a number of compiler warnings. Thanks!
6705.1.0
671-----
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.
6775.0.0
678-----
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
7574.7.0.0
758-------
760API 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.
7684.2.1.0
769-------
771API 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
7864.0.0.1
787-------
789* binding for mk_wcswidth was incorrect. Most platforms just
790 magically worked due to coincidence.
7924.0.0
793-----
795API 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.
849Issues resolved:
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