use std::io;
use std::io::prelude::*;
-use crate::Attr;
use crate::color;
+use crate::Attr;
use crate::Terminal;
/// A Terminal implementation that uses the Win32 Console API.
_ => unreachable!(),
};
- if color >= 8 {
- bits | 0x8
- } else {
- bits
- }
+ if color >= 8 { bits | 0x8 } else { bits }
}
fn bits_to_color(bits: u16) -> color::Color {
_ => unreachable!(),
};
- color | (bits & 0x8) // copy the hi-intensity bit
+ color | (u32::from(bits) & 0x8) // copy the hi-intensity bit
}
impl<T: Write + Send + 'static> WinConsole<T> {
unsafe {
// Magic -11 means stdout, from
- // http://msdn.microsoft.com/en-us/library/windows/desktop/ms683231%28v=vs.85%29.aspx
+ // https://docs.microsoft.com/en-us/windows/console/getstdhandle
//
// You may be wondering, "but what about stderr?", and the answer
// to that is that setting terminal attributes on the stdout
let bg;
unsafe {
let mut buffer_info = MaybeUninit::<CONSOLE_SCREEN_BUFFER_INFO>::uninit();
- if GetConsoleScreenBufferInfo(
- GetStdHandle(-11i32 as DWORD),
- buffer_info.as_mut_ptr()
- ) != 0 {
- let buffer_info = buffer_info.assume_init() ;
+ if GetConsoleScreenBufferInfo(GetStdHandle(-11i32 as DWORD), buffer_info.as_mut_ptr())
+ != 0
+ {
+ let buffer_info = buffer_info.assume_init();
fg = bits_to_color(buffer_info.wAttributes);
bg = bits_to_color(buffer_info.wAttributes >> 4);
} else {
}
fn into_inner(self) -> T
- where Self: Sized
+ where
+ Self: Sized,
{
self.buf
}