fix windows build

This commit is contained in:
Andrew Gallant 2016-09-09 08:53:10 -04:00 committed by GitHub
parent 48878bbb8f
commit cc6b6dcf5b

View File

@ -9,25 +9,25 @@ use term::WinConsole;
use terminal::TerminfoTerminal; use terminal::TerminfoTerminal;
pub type StdoutTerminal = Box<Terminal<Output=io::BufWriter<io::Stdout>> + Send>; pub type StdoutTerminal = Box<Terminal<Output=io::Stdout> + Send>;
/// Gets a terminal that supports color if available. /// Gets a terminal that supports color if available.
#[cfg(windows)] #[cfg(windows)]
fn term_stdout(color: bool) -> StdoutTerminal { fn term_stdout(color: bool) -> StdoutTerminal {
let stdout = io::BufWriter::new(io::stdout()); let stdout = io::stdout();
WinConsole::new(stdout) WinConsole::new(stdout)
.ok() .ok()
.map(|t| Box::new(t)) .map(|t| Box::new(t) as StdoutTerminal)
.unwrap_or_else(|| { .unwrap_or_else(|| {
let stdout = io::BufWriter::new(io::stdout()); let stdout = io::stdout();
Box::new(NoColorTerminal::new(stdout)) Box::new(NoColorTerminal::new(stdout)) as StdoutTerminal
}) })
} }
/// Gets a terminal that supports color if available. /// Gets a terminal that supports color if available.
#[cfg(not(windows))] #[cfg(not(windows))]
fn term_stdout(color: bool) -> StdoutTerminal { fn term_stdout(color: bool) -> StdoutTerminal {
let stdout = io::BufWriter::new(io::stdout()); let stdout = io::stdout();
if !color || TERMINFO.is_none() { if !color || TERMINFO.is_none() {
Box::new(NoColorTerminal::new(stdout)) Box::new(NoColorTerminal::new(stdout))
} else { } else {