aboutsummaryrefslogtreecommitdiffstats
path: root/src/run/builtin.rs
diff options
context:
space:
mode:
authorJonas Maier <>2026-04-21 19:59:02 +0200
committerJonas Maier <>2026-04-21 19:59:02 +0200
commita9bf864158e67353f57047cdc4d6b0e325d73eae (patch)
treead6a1845ee3f695f066ba0caa0d01b87e86c8146 /src/run/builtin.rs
parenta8e3dcf526462d82402985d137402963b0b344de (diff)
downloadpish-a9bf864158e67353f57047cdc4d6b0e325d73eae.tar.gz
maybe soon better escape code parsing
Diffstat (limited to 'src/run/builtin.rs')
-rw-r--r--src/run/builtin.rs37
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(())
+ }
+}