From fe6d6863b20495995924e6dd328746df617571d5 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 8 Apr 2013 21:37:38 -0500 Subject: use unstable::finally::Finally instead of reimplementing it --- Makefile | 2 +- src/guard.rs | 14 -------------- src/ios.rs | 6 ++++-- src/term.rs | 1 - 4 files changed, 5 insertions(+), 18 deletions(-) delete mode 100644 src/guard.rs diff --git a/Makefile b/Makefile index 1254cd0..1315c93 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ RUSTC = rustc MAIN_SOURCE = src/term.rs -OTHER_SOURCES = src/hexes.rs src/ios.rs src/info.rs src/util.rs src/trie.rs src/guard.rs +OTHER_SOURCES = src/hexes.rs src/ios.rs src/info.rs src/util.rs src/trie.rs TESTS = bin/termios bin/termios2 bin/termios3 bin/rl bin/password bin/attrs bin/tput all: build tests diff --git a/src/guard.rs b/src/guard.rs deleted file mode 100644 index 75a28aa..0000000 --- a/src/guard.rs +++ /dev/null @@ -1,14 +0,0 @@ -pub fn guard (finally: ~fn (), body: &fn () -> T) -> T { - let _guard = Guard { finally: finally }; - body() -} - -struct Guard { - priv finally: ~fn (), -} - -impl Drop for Guard { - fn finalize (&self) { - (self.finally)(); - } -} diff --git a/src/ios.rs b/src/ios.rs index f1e6e80..6f57a51 100644 --- a/src/ios.rs +++ b/src/ios.rs @@ -1,5 +1,5 @@ use core::libc::{c_int,c_void}; -use guard::guard; +use core::unstable::finally::Finally; /** * Put the terminal into cooked mode. @@ -46,8 +46,10 @@ pub fn echo (enable: bool) -> int { */ pub fn preserve (body: &fn () -> T) -> T { let orig = unsafe { c::get() }; - do guard(|| { unsafe { c::set(orig) } }) { + do(|| { body() + }).finally { + unsafe { c::set(orig) }; } } diff --git a/src/term.rs b/src/term.rs index 3f9690e..e876dfa 100644 --- a/src/term.rs +++ b/src/term.rs @@ -12,4 +12,3 @@ pub mod info; pub mod ios; mod trie; mod util; -mod guard; -- cgit v1.2.3