diff options
Diffstat (limited to 'vendor/anstyle-query/src/windows.rs')
-rw-r--r-- | vendor/anstyle-query/src/windows.rs | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/vendor/anstyle-query/src/windows.rs b/vendor/anstyle-query/src/windows.rs deleted file mode 100644 index a8ce404..0000000 --- a/vendor/anstyle-query/src/windows.rs +++ /dev/null @@ -1,78 +0,0 @@ -//! Windows-specific style queries - -#[cfg(windows)] -mod windows_console { - use std::os::windows::io::AsRawHandle; - use std::os::windows::io::RawHandle; - - use windows_sys::Win32::System::Console::CONSOLE_MODE; - use windows_sys::Win32::System::Console::ENABLE_VIRTUAL_TERMINAL_PROCESSING; - - fn enable_vt(handle: RawHandle) -> std::io::Result<()> { - unsafe { - let handle = std::mem::transmute(handle); - if handle == 0 { - return Err(std::io::Error::new( - std::io::ErrorKind::BrokenPipe, - "console is detached", - )); - } - - let mut dwmode: CONSOLE_MODE = 0; - if windows_sys::Win32::System::Console::GetConsoleMode(handle, &mut dwmode) == 0 { - return Err(std::io::Error::last_os_error()); - } - - dwmode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; - if windows_sys::Win32::System::Console::SetConsoleMode(handle, dwmode) == 0 { - return Err(std::io::Error::last_os_error()); - } - - Ok(()) - } - } - - pub fn enable_virtual_terminal_processing() -> std::io::Result<()> { - let stdout = std::io::stdout(); - let stdout_handle = stdout.as_raw_handle(); - let stderr = std::io::stderr(); - let stderr_handle = stderr.as_raw_handle(); - - enable_vt(stdout_handle)?; - if stdout_handle != stderr_handle { - enable_vt(stderr_handle)?; - } - - Ok(()) - } - - #[inline] - pub(crate) fn enable_ansi_colors() -> Option<bool> { - Some( - enable_virtual_terminal_processing() - .map(|_| true) - .unwrap_or(false), - ) - } -} - -#[cfg(not(windows))] -mod windows_console { - #[inline] - pub(crate) fn enable_ansi_colors() -> Option<bool> { - None - } -} - -/// Enable ANSI escape codes (ENABLE_VIRTUAL_TERMINAL_PROCESSING) -/// -/// For non-windows systems, returns `None` -pub fn enable_ansi_colors() -> Option<bool> { - windows_console::enable_ansi_colors() -} - -/// Raw ENABLE_VIRTUAL_TERMINAL_PROCESSING on stdout/stderr -#[cfg(windows)] -pub fn enable_virtual_terminal_processing() -> std::io::Result<()> { - windows_console::enable_virtual_terminal_processing() -} |