diff options
| author | Jonas Maier <> | 2026-04-21 19:59:02 +0200 |
|---|---|---|
| committer | Jonas Maier <> | 2026-04-21 19:59:02 +0200 |
| commit | a9bf864158e67353f57047cdc4d6b0e325d73eae (patch) | |
| tree | ad6a1845ee3f695f066ba0caa0d01b87e86c8146 /src/run/builtin.rs | |
| parent | a8e3dcf526462d82402985d137402963b0b344de (diff) | |
| download | pish-a9bf864158e67353f57047cdc4d6b0e325d73eae.tar.gz | |
maybe soon better escape code parsing
Diffstat (limited to 'src/run/builtin.rs')
| -rw-r--r-- | src/run/builtin.rs | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/run/builtin.rs b/src/run/builtin.rs index c080c93..f5dff81 100644 --- a/src/run/builtin.rs +++ b/src/run/builtin.rs @@ -564,3 +564,40 @@ impl Builtin for debug { Ok(()) } } + +pub struct terminfo; +impl Builtin for terminfo { + fn name(&self) -> &str { + "terminfo" + } + + fn io( + &self, + _session: Arc<Mutex<Session>>, + _args: &[BString], + _stdin: &mut dyn Read, + f: &mut dyn Write, + ) -> Result { + let ti = crate::ansi::ti(); + + writeln!(f, "# Booleans")?; + for k in ti.booleans.iter() { + writeln!(f, "{k}")?; + } + writeln!(f)?; + + writeln!(f, "# Numbers")?; + for (k, v) in ti.numbers.iter() { + writeln!(f, "{k} {v}")?; + } + writeln!(f)?; + + writeln!(f, "# Strings")?; + for (k, v) in ti.strings.iter() { + writeln!(f, "{k} {}", v.escape_ascii())?; + } + writeln!(f)?; + + Ok(()) + } +} |
