diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-03-21 00:34:57 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-03-21 00:34:57 -0500 |
commit | 6c64bd6b3e916e71afdd70f34cfb36f502dd147b (patch) | |
tree | 043eea6e529d0d4218a18a667febd7ab010e9c75 /src/info.rs | |
parent | 0297b0a14b7b0ff7cbdcda7c967e095089ce65cd (diff) | |
download | rust-term-6c64bd6b3e916e71afdd70f34cfb36f502dd147b.tar.gz rust-term-6c64bd6b3e916e71afdd70f34cfb36f502dd147b.zip |
use the guard here too
Diffstat (limited to 'src/info.rs')
-rw-r--r-- | src/info.rs | 9 |
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) { |