Commit Graph

217 Commits

Author SHA1 Message Date
ftilde 2f97c69a5c Add EventsAndRaw iter and implement it for Read
- In addition to Events it preserves the byte sequence that created an event. This
  is useful, e.g., for implementing a terminal multiplexer where the raw input
  should in some cases be passed on to another tty.
- In order to ensure backwards compatibility, the function that creates the trait
  is implemented in a separate extension trait.
2017-07-13 01:30:44 +02:00
ticki e07cae2a14
Bump to 1.4.0. 2017-06-10 15:00:39 +02:00
ticki 3ea95e10c4 Merge pull request #109 from jackpot51/patch-1
Fix raw mode on Redox
2017-06-10 10:18:11 +02:00
Jeremy Soller 75b28bab55 Fix raw mode on Redox 2017-06-08 18:47:12 -06:00
ticki caa5b3b6c8 Merge pull request #108 from mcgoo/master
run travis builds on osx also
2017-06-03 23:34:43 +02:00
Jim McGrath bd04d82e5d run travis builds on osx also 2017-06-01 12:48:02 -05:00
ticki be864ee0e7
Fix version in README.md 2017-04-25 20:25:14 +02:00
ticki d86a6b2d9b Merge pull request #100 from IGI-111/linux-function-keys
fix #99
2017-03-29 16:11:35 +02:00
IGI-111 bd9e4eb8e1 fix #99
Add support for F1-F5 in the linux tty.
2017-03-28 10:06:04 +02:00
ticki 7401830c4f
Bump to 1.3.0 2017-03-24 21:53:40 +01:00
ticki 15c65dc5f9
Run rustfmt on the code. 2017-03-24 21:53:05 +01:00
ticki 7351aa3f16 Merge pull request #93 from IGI-111/cursor_pos
added cursor position detection
2017-03-24 21:50:57 +01:00
IGI-111 fa2e86a558 fix for #94 (#95)
parse_utf8_char() makes the assumption that at least four bytes or one UTF-8 glyph are still to read in the input.
2017-03-24 21:50:09 +01:00
IGI-111 5e336e10a1 add support for xterm mouse release code (#97)
Codes of the form `ESC [ < 3 ; Cx ; Cy` were not supported before.
2017-03-24 21:48:55 +01:00
Greg 11a0ee178a Fix terminal size ioctl number on *BSD (#98)
At least on FreeBSD and OpenBSD, TIOCGWINSZ == 0x40087468 just like on
macOS, so change the definition from not-macOS/macOS to Linux/non-Linux.
2017-03-24 21:48:36 +01:00
IGI-111 8760faca15 no need for templating 2017-03-13 11:49:24 +01:00
IGI-111 0758c07ab7 added cursor position detection
This solves #85 in a similar fashion as the color amount detection: the
cursor module now provides a trait that adds a `cursor_pos()` method to
an instance of `Write`. It also corrects that previous implementation
somewhat by making the `CONTROL_SEQUENCE_TIMEOUT` a member of the raw
module and implementing `DetectColors` for any instance of `Write`
rather than just `RawTerminal` (`MouseTerminal` for instance works as
well).
2017-03-12 20:18:32 +00:00
ftilde 95233e9e5c Add support for alternate screen (#88)
* Add (optional) support for alternate screen (#77)

The user can manually switch between main and alternate screen or
(preferably) use the wrapper struct for automatic screen restoration.

* Add two examples for screen switching

* Improve screen module documentation
2017-02-27 13:42:55 +01:00
ticki c676cb43e7 Bump to 1.2.0. 2017-02-26 09:37:35 +01:00
IGI-111 ba72d0bcec Added color support detection (#91)
* Added color support detection

Color support is inferred by using either OSC 4 escape codes or the
value of TERM.

* minor refactor and cosmetic changes
2017-02-26 09:35:39 +01:00
Loïc Damien 23ef0260dd Fix 64 bit build for musl and android (#90) 2017-02-25 20:17:54 +01:00
Alexandre Bury 04f6bcd677 Remove vertical spacing from Readme 2017-01-13 14:19:47 -08:00
Alexandre Bury c9c91292e5 Replace most `std::io::Write::write` with `write_all` (#82)
`std::io::Write` doesn't guarantees that it will write everything,
and could even return a non-fatal `ErrorKind::Interrupted` error.
`write_all` has exactly the code required to deal with this.
2016-12-21 14:20:48 +01:00
ticki c04fd7f263 Optimize SVG.
thx svgo
2016-12-19 19:56:49 +01:00
ticki 38fbf1200e Remove the excessive '['. 2016-12-19 17:39:41 +01:00
ticki 66603eead6 Move the badges outside the table. 2016-12-19 17:39:05 +01:00
ticki 064cfdd5f1 Correct the link. 2016-12-19 17:35:14 +01:00
ticki 461ed46ae0 Fix the Markdown syntax in the README. 2016-12-19 17:34:09 +01:00
ticki dda2b18386 Introducing the Termion logo. 2016-12-19 17:33:09 +01:00
Alexandre Bury 92cbd50c41 Fix typo in Readme 2016-12-19 16:59:28 +01:00
Alexandre Bury de016ae6ce Add travis & crates.io badges
Shamelessly copying Serde's style
2016-12-19 16:51:48 +01:00
Alexandre Bury 0395780f25 Add travis integration (#81)
* Add travis integration

* Update examples/rainbow to work on stable
2016-12-19 16:45:11 +01:00
Alexandre Bury 32ff8ba96e Replace UnknownCsi with generalized Event::Unsupported (#80) 2016-12-19 16:40:44 +01:00
ticki f9eaf6d0bc Merge branch 'master' of github.com:Ticki/libterm 2016-12-18 19:29:18 +01:00
ticki 7047acbabf Add `Color` implementation for `&Color`
Fix #53
2016-12-18 19:28:25 +01:00
Alexandre Bury c2df3d7edd Discard leftover input when consumed (#76)
* Discard leftover input when consumed

The iterator given to `parse_event` now `take()` the value from
`leftover`.

* Always save leftover

`parse_event` will consume it when required.

* Remove OptionIterator, directly uses std::option::Iter
2016-12-18 00:49:40 +01:00
Alexandre Bury 00ca758d45 Add `UnknownCSI` event type (#73)
* Add `UnknownCSI` event type.

* Compile test from `raw` module

But don't run it.

* Fix unused import warning in doc-test

* Rename UnknownCSI -> UnknownCsi
2016-12-16 18:20:17 +01:00
ticki e67128f795 Fix wrapping width. 2016-11-10 09:25:20 +01:00
ticki 56b3deaf27 Merge branch 'master' of github.com:Ticki/libterm 2016-11-08 08:44:13 +01:00
ticki be5fcb1f4f Add link to tutorial in README. 2016-11-08 08:43:51 +01:00
Felix Obenhuber dd3df793dc Fixed build for android targets (#72)
Bionic needs signed ioctrl arguments.
2016-11-06 20:29:39 +01:00
ticki 1d63c9cd28 Bump to next version. 2016-11-06 10:35:13 +01:00
ticki 2f008188e3 Add @gycos to the author list. 2016-11-06 10:26:45 +01:00
Alexandre Bury 8c82c461f9 Handles CSI `~` sequences with multiple values (#70)
* Handles CSI `~` sequences with multiple values

Fixes #62

* Fix doc typo
2016-11-06 10:23:02 +01:00
Alexandre Bury 786001f095 Fix CSI sequence detection (#69)
Properly detects CSI sequence termination.

Fixes #47, #68.
2016-11-06 10:22:12 +01:00
ticki f49a6e501b Merge branch 'master' of github.com:Ticki/libterm 2016-11-02 18:47:37 +01:00
ticki a3ad019010 Yes.
No.
2016-11-02 18:47:24 +01:00
ticki bb8d1704cd Revert "True terminal restoration" (#67) 2016-10-27 22:09:41 +02:00
IGI-111 0e0b5be856 Added true terminal restoration (#66)
Using the "alternate screen" capability, the RawTerminal trait restores
the terminal in its previous state by sending the proper escape codes.
2016-10-27 22:03:29 +02:00
Alexandre Bury 09d31132e2 Protects AsyncReader::read against empty buffer. (#65)
Move the check to the beginning of the loop to protect against empty buffer.
2016-10-27 22:02:29 +02:00