From e28033a794f70f0051c5d47651da90830dd6d1ad Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 14 May 2018 17:57:40 -0400 Subject: create terminal objects directly from a writer --- src/colors.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/colors.rs b/src/colors.rs index 15155cc..ab5e179 100644 --- a/src/colors.rs +++ b/src/colors.rs @@ -1,6 +1,8 @@ use std; use term; +use std::io::Write; + #[derive(Debug, Clone)] pub enum ShellType { Unknown, @@ -129,9 +131,16 @@ impl Colors { color: Option<&term::color::Color>, text: &str, ) { - let mut t = term::stdout().unwrap(); - self.print_color(&mut *t, color); + let mut t = term::TerminfoTerminal::new(std::io::stdout()).unwrap(); + self.print_color(&mut t, color); write!(t, "{}", text).unwrap(); + self.print_reset(&mut t); + } + + fn print_reset( + &self, + t: &mut term::Terminal, + ) { self.print_wrapped(|| { t.reset().unwrap(); }) -- cgit v1.2.3-54-g00ecf