diff --git a/src/keymap.rs b/src/keymap.rs index 13307cdf443585213fc7e6f70f5394b02b26c96b..11e951e95ab32a0f129550753f2beba2d1c4f9f0 100644 --- a/src/keymap.rs +++ b/src/keymap.rs @@ -166,7 +166,7 @@ pub enum Anchor { } /// Vi character search -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Copy)] pub enum CharSearch { Forward(char), // until @@ -222,8 +222,8 @@ impl Movement { Movement::ForwardWord(previous, at, word) => { Movement::ForwardWord(repeat_count(previous, new), at, word) } - Movement::ViCharSearch(previous, ref char_search) => { - Movement::ViCharSearch(repeat_count(previous, new), char_search.clone()) + Movement::ViCharSearch(previous, char_search) => { + Movement::ViCharSearch(repeat_count(previous, new), char_search) } Movement::BackwardChar(previous) => Movement::BackwardChar(repeat_count(previous, new)), Movement::ForwardChar(previous) => Movement::ForwardChar(repeat_count(previous, new)), @@ -555,7 +555,7 @@ impl InputState { } KeyPress::Char(';') => { match self.last_char_search { - Some(ref cs) => Cmd::Move(Movement::ViCharSearch(n, cs.clone())), + Some(cs) => Cmd::Move(Movement::ViCharSearch(n, cs)), None => Cmd::Noop, } } @@ -709,7 +709,7 @@ impl InputState { } } KeyPress::Char(';') => match self.last_char_search { - Some(ref cs) => Some(Movement::ViCharSearch(n, cs.clone())), + Some(cs) => Some(Movement::ViCharSearch(n, cs)), None => None, }, KeyPress::Char(',') => match self.last_char_search { @@ -755,7 +755,7 @@ impl InputState { 'T' => CharSearch::BackwardAfter(ch), _ => unreachable!(), }; - self.last_char_search = Some(cs.clone()); + self.last_char_search = Some(cs); Some(cs) } _ => None, diff --git a/src/line_buffer.rs b/src/line_buffer.rs index f914d467451c09b5e03ebde82de5be981956220a..cc0d41d140408744d8cadc1c0753a15163f45d59 100644 --- a/src/line_buffer.rs +++ b/src/line_buffer.rs @@ -12,6 +12,7 @@ use unicode_segmentation::UnicodeSegmentation; pub static MAX_LINE: usize = 4096; /// Word's case change +#[derive(Clone, Copy)] pub enum WordAction { CAPITALIZE, LOWERCASE, diff --git a/src/tty/unix.rs b/src/tty/unix.rs index cd7fec625e4270320665553a04ccbfb8f3e61090..fb205f91922f62f7218c43a30376ecf95c0c2160 100644 --- a/src/tty/unix.rs +++ b/src/tty/unix.rs @@ -30,7 +30,7 @@ fn get_win_size() -> (usize, usize) { unsafe { let mut size: libc::winsize = zeroed(); - match libc::ioctl(STDOUT_FILENO, libc::TIOCGWINSZ.into(), &mut size) { + match libc::ioctl(STDOUT_FILENO, libc::TIOCGWINSZ.into(), &mut size) { // .into() for FreeBSD 0 => (size.ws_col as usize, size.ws_row as usize), // TODO getCursorPosition _ => (80, 24), } @@ -323,7 +323,7 @@ impl RawReader for PosixRawReader { let s = try!(std::str::from_utf8(&self.buf[..width])); Ok(s.chars().next().unwrap()) } else { - return Ok(first as char); + Ok(first as char) } } }