aboutsummaryrefslogtreecommitdiffstats
path: root/src/term.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/term.rs')
-rw-r--r--src/term.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/term.rs b/src/term.rs
index c23dc4e..8f44b23 100644
--- a/src/term.rs
+++ b/src/term.rs
@@ -65,12 +65,14 @@ pub enum Key {
Down,
Left,
Right,
+ Backspace,
Char(u8),
}
pub fn read_key(stdin: &mut Stdin) -> Result<Key, Box<dyn Error>> {
const CTRL_Q: u8 = 17;
const CTRL_S: u8 = 19;
+ const BACKSPACE: u8 = 127;
const ESC: u8 = 27;
loop {
@@ -82,6 +84,9 @@ pub fn read_key(stdin: &mut Stdin) -> Result<Key, Box<dyn Error>> {
if buf[0] == CTRL_S {
return Ok(Key::CtrlS);
}
+ if buf[0] == BACKSPACE {
+ return Ok(Key::Backspace);
+ }
if buf[0] != ESC {
return Ok(Key::Char(buf[0]));
}