diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-06-09 13:34:01 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-06-09 13:34:01 -0400 |
commit | 54fa28994924803e2e4ead34521493e75286d1cc (patch) | |
tree | f8e92ded3f20dd6481c3c17eb852b8d46b8ce721 | |
parent | b96861eb9b3e43f8958dfbf395a167d8839b8e00 (diff) | |
download | nbsh-old-54fa28994924803e2e4ead34521493e75286d1cc.tar.gz nbsh-old-54fa28994924803e2e4ead34521493e75286d1cc.zip |
fix arrow key edge cases
-rw-r--r-- | src/readline.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/src/readline.rs b/src/readline.rs index eaf29ec..d8d24ba 100644 --- a/src/readline.rs +++ b/src/readline.rs @@ -130,17 +130,15 @@ impl ReadlineState { } } crossterm::KeyEvent::Left => { - let cursor = 0.max(self.cursor - 1); - if cursor != self.cursor { + if self.cursor != 0 { + self.cursor -= 1; self.write(b"\x1b[D").context(WriteToTerminal)?; - self.cursor = cursor; } } crossterm::KeyEvent::Right => { - let cursor = self.buffer.len().min(self.cursor + 1); - if cursor != self.cursor { + if self.cursor != self.buffer.len() { + self.cursor += 1; self.write(b"\x1b[C").context(WriteToTerminal)?; - self.cursor = cursor; } } _ => {} |