diff options
| author | Jonas Maier <> | 2026-04-20 10:27:04 +0200 |
|---|---|---|
| committer | Jonas Maier <> | 2026-04-20 10:27:04 +0200 |
| commit | 97a6a281fd9780ecdccfcf30079f339e305fdc78 (patch) | |
| tree | 7a8ef069e742bd36f287bd4b8244d65bb9d2e296 /src/run/builtin.rs | |
| parent | 8fa52302ae6d0cb15daff9384f43744d4201d8ee (diff) | |
| download | pish-97a6a281fd9780ecdccfcf30079f339e305fdc78.tar.gz | |
move ansi escape code parsing into own module
Diffstat (limited to 'src/run/builtin.rs')
| -rw-r--r-- | src/run/builtin.rs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/run/builtin.rs b/src/run/builtin.rs index 7ca1e5e..c080c93 100644 --- a/src/run/builtin.rs +++ b/src/run/builtin.rs @@ -487,7 +487,8 @@ impl Builtin for alias { let mut parse_fail = false; let mut alias_args = Vec::new(); for arg in args { - match <Vec<crate::parse::ExpString> as crate::parse::Parse>::parse_from_bytes(&arg[..]) { + match <Vec<crate::parse::ExpString> as crate::parse::Parse>::parse_from_bytes(&arg[..]) + { Ok(mut parsed) => { alias_args.append(&mut parsed); } @@ -539,3 +540,27 @@ impl Builtin for unalias { Ok(()) } } + +pub struct debug; +impl Builtin for debug { + fn name(&self) -> &str { + "debug" + } + + fn io( + &self, + session: Arc<Mutex<Session>>, + args: &[BString], + _stdin: &mut dyn Read, + stdout: &mut dyn Write, + ) -> Result { + let mut se = session.lock().unwrap(); + for arg in args { + match &arg[..] { + b"keys" | b"keystrokes" => se.debug_keystrokes = !se.debug_keystrokes, + _ => writeln!(stdout, "debug: unknown option {}", arg.escape_ascii())?, + } + } + Ok(()) + } +} |
