From 1c41bcd1a45621804550e0d7b3558b412dffd40c Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Mon, 8 Apr 2024 08:44:16 +0200 Subject: [PATCH] fish_key_reader: minimize logic following recent changes --- src/bin/fish_key_reader.rs | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/src/bin/fish_key_reader.rs b/src/bin/fish_key_reader.rs index 9bbb3be8a..ce124ce5e 100644 --- a/src/bin/fish_key_reader.rs +++ b/src/bin/fish_key_reader.rs @@ -82,30 +82,10 @@ fn sequence_name(recent_chars: &mut Vec, c: char) -> Option { input_terminfo_get_name(&str2wcstring(recent_chars)) } -fn output_bind_command(bind_chars: &mut Vec<(Key, WString)>) { - if !bind_chars.is_empty() { - printf!("bind "); - for (key, _seq) in &*bind_chars { - printf!("%s", key); - } - printf!(" 'do something'\n"); - bind_chars.clear(); - } -} - -fn output_matching_key_name(recent_chars: &mut Vec, c: char) -> bool { - if let Some(name) = sequence_name(recent_chars, c) { - printf!("bind -k %ls 'do something'\n", name); - return true; - } - false -} - /// Process the characters we receive as the user presses keys. fn process_input(continuous_mode: bool) -> i32 { let mut first_char_seen = false; let mut queue = InputEventQueue::new(STDIN_FILENO); - let mut bind_chars = vec![]; let mut recent_chars1 = vec![]; let mut recent_chars2 = vec![]; eprintf!("Press a key:\n"); @@ -120,10 +100,9 @@ fn process_input(continuous_mode: bool) -> i32 { if c == key::Invalid { continue; } - bind_chars.push((kevt.key, kevt.seq)); - output_bind_command(&mut bind_chars); - if output_matching_key_name(&mut recent_chars1, c) { - output_bind_command(&mut bind_chars); + printf!("bind %s 'do something'\n", kevt.key); + if let Some(name) = sequence_name(&mut recent_chars1, c) { + printf!("bind -k %ls 'do something'\n", name); } if continuous_mode && should_exit(&mut recent_chars2, kevt.key) {