aboutsummaryrefslogtreecommitdiffstats
path: root/src/info.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/info.rs')
-rw-r--r--src/info.rs75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/info.rs b/src/info.rs
index 8252d2f..37e06b7 100644
--- a/src/info.rs
+++ b/src/info.rs
@@ -1,9 +1,84 @@
use core::libc::{c_char,c_int};
+#[deriving(Eq)]
+pub enum Color {
+ ColorBlack = 0,
+ ColorRed,
+ ColorGreen,
+ ColorYellow,
+ ColorBlue,
+ ColorMagenta,
+ ColorCyan,
+ ColorWhite,
+}
+
pub fn init () {
unsafe { c::setupterm(ptr::null(), 1, ptr::null()) };
}
+macro_rules! def_escape(
+ ($name:ident -> $escape:expr) => (
+ pub fn $name () -> ~str { escape($escape) }
+ );
+ ($name:ident -> $escape:expr, $ty1:ident) => (
+ pub fn $name (p1: $ty1) -> ~str { escape1($escape, p1 as int) }
+ );
+ ($name:ident -> $escape:expr, $ty1:ident, $ty2:ident) => (
+ pub fn $name (p1: $ty1, p2: $ty2) -> ~str {
+ escape2($escape, p1 as int, p2 as int)
+ }
+ );
+)
+
+def_escape!(clear_screen -> "clear")
+def_escape!(set_a_foreground -> "setaf", Color)
+def_escape!(set_a_background -> "setab", Color)
+def_escape!(orig_pair -> "op")
+def_escape!(exit_attribute_mode -> "sgr0")
+def_escape!(cursor_home -> "home")
+def_escape!(cursor_address -> "cup", uint, uint)
+def_escape!(enter_underline_mode -> "smul")
+def_escape!(exit_underline_mode -> "rmul")
+def_escape!(enter_standout_mode -> "smso")
+def_escape!(exit_standout_mode -> "rmso")
+def_escape!(enter_reverse_mode -> "rev")
+def_escape!(enter_bold_mode -> "bold")
+def_escape!(enter_blink_mode -> "blink")
+def_escape!(cursor_invisible -> "civis")
+def_escape!(cursor_normal -> "cnorm")
+def_escape!(enter_ca_mode -> "smcup")
+def_escape!(exit_ca_mode -> "rmcup")
+def_escape!(keypad_xmit -> "smkx")
+def_escape!(keypad_local -> "rmkx")
+
+def_escape!(key_backspace -> "kbs")
+def_escape!(carriage_return -> "cr")
+def_escape!(tab -> "ht")
+def_escape!(key_up -> "kcuu1")
+def_escape!(key_down -> "kcud1")
+def_escape!(key_left -> "kcub1")
+def_escape!(key_right -> "kcuf1")
+def_escape!(key_home -> "khome")
+def_escape!(key_end -> "kend")
+def_escape!(key_ic -> "kich1")
+def_escape!(key_dc -> "kdch1")
+def_escape!(key_f1 -> "kf1")
+def_escape!(key_f2 -> "kf2")
+def_escape!(key_f3 -> "kf3")
+def_escape!(key_f4 -> "kf4")
+def_escape!(key_f5 -> "kf5")
+def_escape!(key_f6 -> "kf6")
+def_escape!(key_f7 -> "kf7")
+def_escape!(key_f8 -> "kf8")
+def_escape!(key_f9 -> "kf9")
+def_escape!(key_f10 -> "kf10")
+def_escape!(key_f11 -> "kf11")
+def_escape!(key_f12 -> "kf12")
+
+pub fn key_f (n: uint) -> ~str {
+ escape(fmt!("kf%?", n))
+}
+
pub fn escape (name: &str) -> ~str {
do str::as_c_str(name) |c_name| {
unsafe {