aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/term.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/term.rs b/src/term.rs
index daef715..673bf2e 100644
--- a/src/term.rs
+++ b/src/term.rs
@@ -7,6 +7,7 @@ const CTRL_S: u8 = 19;
const CTRL_Y: u8 = 25;
const CTRL_Z: u8 = 26;
const BACKSPACE: u8 = 127;
+const OTHER_BACKSPACE: u8 = 8;
const ESC: u8 = 27;
pub fn size() -> Result<winsize, Box<dyn Error>> {
@@ -74,6 +75,7 @@ pub fn raw() -> Result<RawHandle, Box<dyn Error>> {
return Ok(RawHandle { old: old });
}
+#[derive(Debug)]
pub enum Key {
CtrlQ,
CtrlS,
@@ -107,7 +109,7 @@ pub fn read_key(stdin: &mut dyn BufRead) -> Result<Key, Box<dyn Error>> {
if buf[0] == CTRL_Z {
return Ok(Key::CtrlZ);
}
- if buf[0] == BACKSPACE {
+ if buf[0] == BACKSPACE || buf[0] == OTHER_BACKSPACE {
return Ok(Key::Backspace);
}
if buf[0] != ESC {