From 86b9dfe417ea6098a14bc21a8e405f6820c4f1a3 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 1 Apr 2013 04:27:40 -0500 Subject: have a separate initialization for full-screen terminal apps --- src/term.rs | 10 +++++++++- test/rl.rs | 8 ++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/term.rs b/src/term.rs index 4754d7e..564eca7 100644 --- a/src/term.rs +++ b/src/term.rs @@ -15,11 +15,19 @@ struct Term { pub fn Term (cleanup: bool) -> Term { info::init(); - io::print(escape("smkx")); Term { r: Reader(cleanup), w: Writer(cleanup) } } impl Term { + pub fn init_term_app (&mut self) { + cbreak(); + echo(false); + self.write(escape("smkx")); + self.alternate_screen(true); + self.clear(); + self.flush(); + } + pub fn clear (&mut self) { self.w.clear(); } diff --git a/test/rl.rs b/test/rl.rs index 7c04629..ecf91ea 100644 --- a/test/rl.rs +++ b/test/rl.rs @@ -2,9 +2,9 @@ extern mod term; use term::{KeyCharacter,KeyEscape,KeyUp,KeyDown,KeyLeft,KeyRight}; fn term_app (body: &fn (r: &mut term::Term)) { - let mut term = term::Term(true); do term::ios::preserve { - term.alternate_screen(true); + let mut term = term::Term(true); + term.init_term_app(); body(&mut term); } } @@ -31,10 +31,6 @@ fn main () { let (cols, rows) = term::size(); do term_app |term| { - term::cbreak(); - term::echo(false); - term.clear(); - draw_map(term, rows, cols); let mut (x, y) = (0u, 0u); -- cgit v1.2.3