diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2024-01-07 15:26:04 -0800 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2024-01-07 15:26:04 -0800 |
| commit | 57f527f2a1d9bc4ed8c862b014867634803831ba (patch) | |
| tree | 869d88235adcbe9e28344c535b531ca363504320 /src | |
| parent | 21bff53c31973df9dfc9a5ee9bcee5b1c2004ea5 (diff) | |
| download | editor-57f527f2a1d9bc4ed8c862b014867634803831ba.tar.zst | |
Support backspace in xterm.
Backspace:
Cooler backspace:
Diffstat (limited to 'src')
| -rw-r--r-- | src/term.rs | 4 |
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 { |
