1
0
mirror of https://github.com/janet-lang/janet synced 2024-06-26 07:03:16 +00:00

Add feature check for windows version shell.c

Tried to get console working on windows 7 and below
This commit is contained in:
Calvin Rose 2023-04-30 10:36:42 -05:00
parent 440af9fd64
commit 6e9cde8ac1

View File

@ -146,10 +146,14 @@ static void setup_console_output(void) {
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
DWORD dwMode = 0; DWORD dwMode = 0;
GetConsoleMode(hOut, &dwMode); GetConsoleMode(hOut, &dwMode);
if (IsWindows10OrGreater()) {
dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING; dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
}
SetConsoleMode(hOut, dwMode); SetConsoleMode(hOut, dwMode);
if (IsValidCodePage(65001)) {
SetConsoleOutputCP(65001); SetConsoleOutputCP(65001);
} }
}
/* Ansi terminal raw mode */ /* Ansi terminal raw mode */
static int rawmode(void) { static int rawmode(void) {
@ -160,8 +164,10 @@ static int rawmode(void) {
dwMode &= ~ENABLE_LINE_INPUT; dwMode &= ~ENABLE_LINE_INPUT;
dwMode &= ~ENABLE_INSERT_MODE; dwMode &= ~ENABLE_INSERT_MODE;
dwMode &= ~ENABLE_ECHO_INPUT; dwMode &= ~ENABLE_ECHO_INPUT;
if (IsWindows10OrGreater()) {
dwMode |= ENABLE_VIRTUAL_TERMINAL_INPUT; dwMode |= ENABLE_VIRTUAL_TERMINAL_INPUT;
dwMode &= ~ENABLE_PROCESSED_INPUT; dwMode &= ~ENABLE_PROCESSED_INPUT;
}
if (!SetConsoleMode(hOut, dwMode)) return 1; if (!SetConsoleMode(hOut, dwMode)) return 1;
gbl_israwmode = 1; gbl_israwmode = 1;
return 0; return 0;
@ -176,8 +182,10 @@ static void norawmode(void) {
dwMode |= ENABLE_LINE_INPUT; dwMode |= ENABLE_LINE_INPUT;
dwMode |= ENABLE_INSERT_MODE; dwMode |= ENABLE_INSERT_MODE;
dwMode |= ENABLE_ECHO_INPUT; dwMode |= ENABLE_ECHO_INPUT;
if (IsWindows10OrGreater()) {
dwMode &= ~ENABLE_VIRTUAL_TERMINAL_INPUT; dwMode &= ~ENABLE_VIRTUAL_TERMINAL_INPUT;
dwMode |= ENABLE_PROCESSED_INPUT; dwMode |= ENABLE_PROCESSED_INPUT;
}
SetConsoleMode(hOut, dwMode); SetConsoleMode(hOut, dwMode);
gbl_israwmode = 0; gbl_israwmode = 0;
} }