diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-04-01 02:53:16 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-04-01 02:53:16 -0500 |
commit | 832234a37913e64c5650bc549341dcecd2f6a659 (patch) | |
tree | 7963c4596f355fef75603a8907f708d7ec59055a /src | |
parent | 2c129f6533e319774be67ea4828190ee8213180a (diff) | |
download | rust-term-832234a37913e64c5650bc549341dcecd2f6a659.tar.gz rust-term-832234a37913e64c5650bc549341dcecd2f6a659.zip |
fix next_key
Diffstat (limited to 'src')
-rw-r--r-- | src/term.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/term.rs b/src/term.rs index 02a1306..ec45629 100644 --- a/src/term.rs +++ b/src/term.rs @@ -136,6 +136,17 @@ impl Reader { fn next_key (&mut self) -> Keypress { fail_unless!(str::len(self.buf) > 0); + for uint::range_rev(str::len(self.buf), 0) |i| { + match self.escapes.find(str::slice(self.buf, 0, i)) { + &Some(k) => { + for uint::range(0, i) |_| { + str::shift_char(&mut self.buf); + } + return k + } + &None => { } + } + } let next = str::shift_char(&mut self.buf); return KeyCharacter(next); } |