aboutsummaryrefslogtreecommitdiffstats
path: root/src/info.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-03-21 00:34:57 -0500
committerJesse Luehrs <doy@tozt.net>2013-03-21 00:34:57 -0500
commit6c64bd6b3e916e71afdd70f34cfb36f502dd147b (patch)
tree043eea6e529d0d4218a18a667febd7ab010e9c75 /src/info.rs
parent0297b0a14b7b0ff7cbdcda7c967e095089ce65cd (diff)
downloadrust-term-6c64bd6b3e916e71afdd70f34cfb36f502dd147b.tar.gz
rust-term-6c64bd6b3e916e71afdd70f34cfb36f502dd147b.zip
use the guard here too
Diffstat (limited to 'src/info.rs')
-rw-r--r--src/info.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/info.rs b/src/info.rs
index 3b71b1f..d785d1c 100644
--- a/src/info.rs
+++ b/src/info.rs
@@ -1,4 +1,5 @@
use core::libc::{c_char,c_int};
+use util::guard;
pub fn init () {
unsafe { c::setupterm(ptr::null(), 1, ptr::null()) };
@@ -27,10 +28,10 @@ pub fn cursor (enabled: bool) {
}
pub fn with_alternate_screen<T> (body: &fn () -> T) -> T {
- write_escape("smcup");
- let ret = body();
- write_escape("rmcup");
- ret
+ do guard(|| { write_escape("rmcup") }) {
+ write_escape("smcup");
+ body()
+ }
}
fn write_escape (name: &str) {