Commit Graph

41 Commits

Author SHA1 Message Date
Daniel Mueller 047cbc0cab Remove unused 'mut' qualifier in src/input.rs (#143)
This change removes an unused 'mut' qualifier of the 'source' variable
in src/input.rs.

> warning: variable does not need to be mutable
>   --> src/input.rs:52:13
>    |
> 52 |         let mut source = &mut self.source;
>    |             ----^^^^^^
>    |             |
>    |             help: remove this `mut`
>    |
>    = note: #[warn(unused_mut)] on by default
2018-05-08 17:30:31 -07:00
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 15c65dc5f9
Run rustfmt on the code. 2017-03-24 21:53:05 +01: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
Alexandre Bury 32ff8ba96e Replace UnknownCsi with generalized Event::Unsupported (#80) 2016-12-19 16:40:44 +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
Matthew Nicholson ea06c6fd56 Modify Keys and Events to detect Esc key presses (#45)
* modify Keys and Events to detect Esc key presses

The strategy used here is to read two bytes at a time, going on the
assumption that escape sequences will consist of multi byte reads and
solitary Esc key presses will consist of single byte reads.

Tests had to be modified to account for these new multi byte reads by
including dummy bytes when a single byte was previously expected.

Fixes ticki/termion#43

* expand keys example to include Esc key presses

* add test for Esc key press
2016-10-26 11:53:36 +02:00
ticki e63b645859 Update the documentation. 2016-09-07 11:39:32 +02:00
llogiq 21716b2f93 fixed a few clippy warnings (#44) 2016-08-04 22:37:03 +02:00
ticki 5634d5d082 Fix Goto 2016-07-24 20:22:47 +02:00
ticki 9bd833a663 Fix the tests 2016-07-23 20:41:43 +02:00
ticki 5b94db9663 Merge 2016-07-23 17:49:52 +02:00
ticki e36ff1c71b Termion 1.0.0: Complete overhaul of how escape codes are handled, add truecolor support.
This commit is a major semver bump. Every progra utilizing escape codes generated by Termion is likely broken. The main change is to make each escape has their own type implementing the Display trait.

- Use formatters, mainly Display for escapes.

- Add Truecolor support (`color::Rgb`).

- Put each primitive into distinct modules.

- Add is_tty for checking if some stream is a TTY.

- Add multiple new examples.
2016-07-23 16:40:27 +02:00
IGI-111 1c50a795f8 added some tests 2016-07-20 13:06:04 +02:00
IGI-111 206c61de9e made mouse optional and fixed small issues 2016-07-20 01:13:03 +02:00
IGI-111 cc9c32b981 added mouse input
The event system has been reworked to allow the detection of mouse
events as well as key presses.
Xterm, rxvt and X10 emulated escape codes are supported, they are
enabled and disabled by sending the right escape codes when creating a
RawTerminal.

To allow for byte manipulation, which was necessary to implement those
features, the backend iterator has been changed from chars() to bytes()
(with specific treatment of unicode sequences), making the whole crate
not require nightly rustc.
2016-07-19 18:17:12 +02:00
IGI-111 2f6ebb8669 added tests 2016-07-16 22:46:29 +02:00
IGI-111 4402ebd8b3 fix wrong range used 2016-07-16 19:21:51 +02:00
IGI-111 5eae7cf732 function keys now use ranges for detection 2016-07-16 19:10:04 +02:00
IGI-111 70c12b20d6 added doc for function keys 2016-07-16 18:51:33 +02:00
IGI-111 3552c6eae0 added rxvt Home and End escape codes 2016-07-15 12:19:02 +02:00
IGI-111 0e74a7672f added more special keys
Key now supports Home, End, PageUp, PageDown, Delete, Insert and
Function keys. All this is done through the detection of both VT100
escape codes and more modern standard counterparts.
For instance, F2 can be both
    ESC OQ
on VT100, screen, and some versions of xterm and
    ESC [12~
on rxvt and other xterm versions depending on your terminal
2016-07-15 07:41:31 +02:00
ticki 11225e561d Fix #24, make use of Result instead 2016-06-14 14:24:07 +02:00
Ticki 6a792cd86d Add unit tests for read_line 2016-04-02 19:20:47 +02:00
Ticki b5c4f2512d Merge pull request #14 from untitaker/refactor-read-passwd
Refactor read_passwd
2016-04-02 18:32:39 +02:00
Ticki b288548756 Fix #18 2016-04-02 18:05:31 +02:00
Markus Unterwaditzer cdd7a302b2 Refactor read_passwd
Line-reading logic is now in its own method
2016-03-20 16:15:05 +01:00
Ticki b10a24e112 Remove 'into_async', use 'async_stdin' instead 2016-03-17 17:12:47 +01:00
Ticki 6ca81b2ec0 Fix nightly feature 2016-03-15 20:56:53 +01:00
Ticki b65328c304 Asynchronous key events 2016-03-15 20:32:25 +01:00
Ticki 73ae06124a Add Key::Null for null bytes 2016-03-15 18:01:33 +01:00
Ticki 32d8ccfa24 Use IO error, instead of a custom one 2016-03-13 11:55:24 +01:00
Ticki 7145651a83 Fix bug in Keys 2016-03-10 21:57:42 +01:00
Ticki 9efbb4e227 Fix ctrl input 2016-03-10 15:21:11 +01:00
Ticki d8e5ea3262 CTRL modified input 2016-03-10 15:12:59 +01:00
Ticki 08746c0d2a Add tests to 'terminal_size' 2016-03-09 19:17:00 +01:00
Ticki 5d4826d4ff Add test to _everything_ 2016-03-09 17:18:31 +01:00
Ticki 7269b5f07d Add restore() method for restoring the defaults 2016-03-09 13:07:38 +01:00
Ticki 0efce912d0 Minor cosmetic changes 2016-03-09 11:38:43 +01:00
Ticki 6f1621d2d0 Introduce 'Key', which can decode special key input 2016-03-09 09:39:22 +01:00
Ticki a16cc84ea3 Rename WriteExt to TermWrite 2016-03-08 21:39:24 +01:00
Renamed from src/extra.rs (Browse further)