about summary refs log tree commit diff
path: root/src/lib
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2011-04-28 14:53:23 -0700
committerPatrick Walton <pcwalton@mimiga.net>2011-04-28 14:54:00 -0700
commit660c742902e0f41898e329703a3f0c413b2016cf (patch)
tree55e7db85038e3a0dce7ee74fdf54800c47cb42c0 /src/lib
parentf0e1bb75d138522b3c64dfd2c16645cc45041d69 (diff)
downloadrust-660c742902e0f41898e329703a3f0c413b2016cf.tar.gz
rust-660c742902e0f41898e329703a3f0c413b2016cf.zip
stdlib: Add a color_supported() function to Term
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/GenericOS.rs4
-rw-r--r--src/lib/Term.rs4
-rw-r--r--src/lib/std.rc4
3 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/GenericOS.rs b/src/lib/GenericOS.rs
new file mode 100644
index 00000000000..2d375652140
--- /dev/null
+++ b/src/lib/GenericOS.rs
@@ -0,0 +1,4 @@
+fn getenv(str n) -> str {
+    ret _str.str_from_cstr(os.libc.getenv(_str.buf(n)));
+}
+
diff --git a/src/lib/Term.rs b/src/lib/Term.rs
index 9bf90b1cdb0..0d925d7d024 100644
--- a/src/lib/Term.rs
+++ b/src/lib/Term.rs
@@ -30,6 +30,10 @@ fn reset(io.buf_writer writer) {
     writer.write(vec('0' as u8, 'm' as u8));
 }
 
+fn color_supported() -> bool {
+    ret _str.eq(GenericOS.getenv("TERM"), "xterm-color");
+}
+
 fn set_color(io.buf_writer writer, u8 first_char, u8 color) {
     check (color < 16u8);
 
diff --git a/src/lib/std.rc b/src/lib/std.rc
index 8a9ee42d0da..4efff14bb8c 100644
--- a/src/lib/std.rc
+++ b/src/lib/std.rc
@@ -42,6 +42,9 @@ auth rand.mk_rng = unsafe;
 
 // Target-OS module.
 
+// TODO: Have each OS module re-export everything from GenericOS.
+mod GenericOS;
+
 alt (target_os) {
     case ("win32") {
         mod os = "win32_os.rs";
@@ -54,6 +57,7 @@ alt (target_os) {
         mod os_fs = "posix_fs.rs";
     }
 }
+
 mod run = "run_program.rs";
 mod fs;