aboutsummaryrefslogtreecommitdiffstats
path: root/src/util.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.rs')
-rw-r--r--src/util.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/util.rs b/src/util.rs
index 43a1a69..1a4e1c3 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -1,4 +1,4 @@
-use core::libc::c_int;
+use core::libc::{c_int,c_uint};
pub fn guard<T> (finally: ~fn (), body: &fn () -> T) -> T {
let _guard = Guard { finally: finally };
@@ -40,6 +40,19 @@ extern mod io_helper {
fn timed_read (timeout: c_int) -> c_int;
}
+pub fn size() -> (uint, uint) {
+ let cols: c_uint = 0;
+ let rows: c_uint = 0;
+ unsafe {
+ termios_wrapper::size(&cols, &rows)
+ }
+ (cols as uint, rows as uint)
+}
+
+extern mod termios_wrapper {
+ fn size(cols: *c_uint, rows: *c_uint);
+}
+
pub fn isatty() -> bool {
unsafe { c_isatty(0) as bool }
}