mirror of
https://github.com/Xyverle/neutuino.git
synced 2026-06-26 22:23:14 -04:00
snake_case-ify windows.rs
This commit is contained in:
@@ -1,14 +1,12 @@
|
|||||||
#![allow(non_snake_case)]
|
|
||||||
|
|
||||||
use std::io;
|
use std::io;
|
||||||
|
|
||||||
unsafe extern "system" {
|
unsafe extern "system" {
|
||||||
fn GetStdHandle(nStdHandle: u32) -> usize;
|
fn GetStdHandle(std_handle: u32) -> usize;
|
||||||
fn GetConsoleMode(hConsoleHandle: usize, dwMode: *mut u32) -> u32;
|
fn GetConsoleMode(console_handle: usize, mode: *mut u32) -> u32;
|
||||||
fn SetConsoleMode(hConsoleHandle: usize, dwMode: *mut u32) -> u32;
|
fn SetConsoleMode(console_handle: usize, mode: *mut u32) -> u32;
|
||||||
fn GetConsoleScreenBufferInfo(
|
fn GetConsoleScreenBufferInfo(
|
||||||
hConsoleOutput: usize,
|
console_output: usize,
|
||||||
lpConsoleScreenBufferInfo: *mut ConsoleScreenBufferInfo,
|
console_screen_buffer_info: *mut ConsoleScreenBufferInfo,
|
||||||
) -> u32;
|
) -> u32;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,17 +21,9 @@ const INVALID_HANDLE_VALUE: usize = usize::MAX - 1;
|
|||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
struct ConsoleScreenBufferInfo {
|
struct ConsoleScreenBufferInfo {
|
||||||
dwSizeX: u16,
|
x: u16,
|
||||||
dwSizeY: u16,
|
y: u16,
|
||||||
dwCursorPositionX: u16,
|
_unused: [u16; 9],
|
||||||
dwCursorPositionY: u16,
|
|
||||||
wAttributes: u16,
|
|
||||||
srWindowLeft: u16,
|
|
||||||
srWindowTop: u16,
|
|
||||||
srWindowRight: u16,
|
|
||||||
srWindowBottom: u16,
|
|
||||||
dwMaximumWindowSizeX: u16,
|
|
||||||
dwMaximumWindowSizeY: u16,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Enables ANSI support on Windows terminals
|
/// Enables ANSI support on Windows terminals
|
||||||
@@ -49,10 +39,10 @@ struct ConsoleScreenBufferInfo {
|
|||||||
/// if it cannot change terminal properties
|
/// if it cannot change terminal properties
|
||||||
pub fn enable_ansi() -> io::Result<()> {
|
pub fn enable_ansi() -> io::Result<()> {
|
||||||
let handle = get_std_handle(STD_OUTPUT_HANDLE)?;
|
let handle = get_std_handle(STD_OUTPUT_HANDLE)?;
|
||||||
let mut dwMode = 0;
|
let mut mode = 0;
|
||||||
get_console_mode(handle, &raw mut dwMode)?;
|
get_console_mode(handle, &raw mut mode)?;
|
||||||
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
|
mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
|
||||||
set_console_mode(handle, &raw mut dwMode)?;
|
set_console_mode(handle, &raw mut mode)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,8 +59,8 @@ pub fn get_terminal_size() -> io::Result<(u16, u16)> {
|
|||||||
let handle = get_std_handle(STD_OUTPUT_HANDLE)?;
|
let handle = get_std_handle(STD_OUTPUT_HANDLE)?;
|
||||||
let mut csbi = ConsoleScreenBufferInfo::default();
|
let mut csbi = ConsoleScreenBufferInfo::default();
|
||||||
if unsafe { GetConsoleScreenBufferInfo(handle, &mut csbi) != 0 } {
|
if unsafe { GetConsoleScreenBufferInfo(handle, &mut csbi) != 0 } {
|
||||||
let width = csbi.dwSizeX;
|
let width = csbi.x;
|
||||||
let height = csbi.dwSizeY;
|
let height = csbi.y;
|
||||||
return Ok((width, height));
|
return Ok((width, height));
|
||||||
}
|
}
|
||||||
Err(io::Error::last_os_error())
|
Err(io::Error::last_os_error())
|
||||||
@@ -87,10 +77,10 @@ pub fn get_terminal_size() -> io::Result<(u16, u16)> {
|
|||||||
/// if it fails to get or set terminal settings
|
/// if it fails to get or set terminal settings
|
||||||
pub fn enable_raw_mode() -> io::Result<()> {
|
pub fn enable_raw_mode() -> io::Result<()> {
|
||||||
let handle = get_std_handle(STD_INPUT_HANDLE)?;
|
let handle = get_std_handle(STD_INPUT_HANDLE)?;
|
||||||
let mut dwMode = 0;
|
let mut mode = 0;
|
||||||
get_console_mode(handle, &raw mut dwMode)?;
|
get_console_mode(handle, &raw mut mode)?;
|
||||||
dwMode &= !(ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT);
|
mode &= !(ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT);
|
||||||
set_console_mode(handle, &raw mut dwMode)?;
|
set_console_mode(handle, &raw mut mode)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,10 +95,10 @@ pub fn enable_raw_mode() -> io::Result<()> {
|
|||||||
/// if it fails to get or set terminal settings
|
/// if it fails to get or set terminal settings
|
||||||
pub fn disable_raw_mode() -> io::Result<()> {
|
pub fn disable_raw_mode() -> io::Result<()> {
|
||||||
let handle = get_std_handle(STD_INPUT_HANDLE)?;
|
let handle = get_std_handle(STD_INPUT_HANDLE)?;
|
||||||
let mut dwMode = 0;
|
let mut mode = 0;
|
||||||
get_console_mode(handle, &raw mut dwMode)?;
|
get_console_mode(handle, &raw mut mode)?;
|
||||||
dwMode |= ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT;
|
mode |= ENABLE_ECHO_INPUT | ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT;
|
||||||
set_console_mode(handle, &raw mut dwMode)?;
|
set_console_mode(handle, &raw mut mode)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,16 +111,16 @@ fn get_std_handle(handle: u32) -> io::Result<usize> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn set_console_mode(handle: usize, dwMode: *mut u32) -> io::Result<()> {
|
fn set_console_mode(handle: usize, mode: *mut u32) -> io::Result<()> {
|
||||||
if unsafe { SetConsoleMode(handle, dwMode) == 0 } {
|
if unsafe { SetConsoleMode(handle, mode) == 0 } {
|
||||||
Err(io::Error::last_os_error())
|
Err(io::Error::last_os_error())
|
||||||
} else {
|
} else {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_console_mode(handle: usize, dwMode: *mut u32) -> io::Result<()> {
|
fn get_console_mode(handle: usize, mode: *mut u32) -> io::Result<()> {
|
||||||
if unsafe { GetConsoleMode(handle, dwMode) == 0 } {
|
if unsafe { GetConsoleMode(handle, mode) == 0 } {
|
||||||
Err(io::Error::last_os_error())
|
Err(io::Error::last_os_error())
|
||||||
} else {
|
} else {
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
Reference in New Issue
Block a user