diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-04-01 04:27:40 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-04-01 04:27:40 -0500 |
commit | 86b9dfe417ea6098a14bc21a8e405f6820c4f1a3 (patch) | |
tree | 431ac325d95171c9ebfd58c881196294dd8c4f5d | |
parent | 0615ffe1cb999aaf0ef945b8be5763bfcce8d9d1 (diff) | |
download | rust-term-86b9dfe417ea6098a14bc21a8e405f6820c4f1a3.tar.gz rust-term-86b9dfe417ea6098a14bc21a8e405f6820c4f1a3.zip |
have a separate initialization for full-screen terminal apps
-rw-r--r-- | src/term.rs | 10 | ||||
-rw-r--r-- | 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(); } @@ -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); |