aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-04-01 04:27:40 -0500
committerJesse Luehrs <doy@tozt.net>2013-04-01 04:27:40 -0500
commit86b9dfe417ea6098a14bc21a8e405f6820c4f1a3 (patch)
tree431ac325d95171c9ebfd58c881196294dd8c4f5d
parent0615ffe1cb999aaf0ef945b8be5763bfcce8d9d1 (diff)
downloadrust-term-86b9dfe417ea6098a14bc21a8e405f6820c4f1a3.tar.gz
rust-term-86b9dfe417ea6098a14bc21a8e405f6820c4f1a3.zip
have a separate initialization for full-screen terminal apps
-rw-r--r--src/term.rs10
-rw-r--r--test/rl.rs8
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);