diff options
author | Thijs <thijs@thijsschreijer.nl> | 2024-05-22 23:57:00 +0200 |
---|---|---|
committer | Thijs <thijs@thijsschreijer.nl> | 2024-05-22 23:57:00 +0200 |
commit | e1a8aede05d3217882cf2de426f0a87a659e4308 (patch) | |
tree | a2793677c06c450a7fcd48c81c9031eea28fb5fd | |
parent | c08ea611759407b0e0c8dbea384c4f5273d27d3f (diff) | |
download | luasystem-e1a8aede05d3217882cf2de426f0a87a659e4308.tar.gz luasystem-e1a8aede05d3217882cf2de426f0a87a659e4308.tar.bz2 luasystem-e1a8aede05d3217882cf2de426f0a87a659e4308.zip |
fix windows (manual) tests
-rw-r--r-- | spec/04-term_spec.lua | 2 | ||||
-rw-r--r-- | src/term.c | 23 |
2 files changed, 11 insertions, 14 deletions
diff --git a/spec/04-term_spec.lua b/spec/04-term_spec.lua index c649579..3dc4660 100644 --- a/spec/04-term_spec.lua +++ b/spec/04-term_spec.lua | |||
@@ -8,7 +8,7 @@ describe("Terminal:", function() | |||
8 | 8 | ||
9 | setup(function() | 9 | setup(function() |
10 | wincodepage = system.getconsoleoutputcp() | 10 | wincodepage = system.getconsoleoutputcp() |
11 | assert(system.setconsoleoutputcp(65001)) | 11 | assert(system.setconsoleoutputcp(65001)) -- set to UTF8 |
12 | end) | 12 | end) |
13 | 13 | ||
14 | teardown(function() | 14 | teardown(function() |
@@ -361,26 +361,17 @@ static int lst_setconsoleflags(lua_State *L) | |||
361 | } | 361 | } |
362 | LSBF_BITFLAG new_console_mode = lsbf_checkbitflags(L, 2); | 362 | LSBF_BITFLAG new_console_mode = lsbf_checkbitflags(L, 2); |
363 | 363 | ||
364 | DWORD prev_console_mode; | 364 | if (!SetConsoleMode(console_handle, new_console_mode)) { |
365 | if (GetConsoleMode(console_handle, &prev_console_mode) == 0) | ||
366 | { | ||
367 | termFormatError(L, GetLastError(), "failed to get console mode"); | ||
368 | return 2; | ||
369 | } | ||
370 | |||
371 | int success = SetConsoleMode(console_handle, new_console_mode) != 0; | ||
372 | if (!success) | ||
373 | { | ||
374 | termFormatError(L, GetLastError(), "failed to set console mode"); | 365 | termFormatError(L, GetLastError(), "failed to set console mode"); |
375 | return 2; | 366 | return 2; |
376 | } | 367 | } |
377 | 368 | ||
378 | #else | 369 | #else |
379 | get_console_handle(L); // to validate args | 370 | get_console_handle(L); // to validate args |
380 | lua_pushboolean(L, 1); // always return true on Posix | ||
381 | return 1; | ||
382 | |||
383 | #endif | 371 | #endif |
372 | |||
373 | lua_pushboolean(L, 1); | ||
374 | return 1; | ||
384 | } | 375 | } |
385 | 376 | ||
386 | 377 | ||
@@ -657,6 +648,9 @@ static int lst_setnonblock(lua_State *L) | |||
657 | } | 648 | } |
658 | 649 | ||
659 | #else | 650 | #else |
651 | if (lua_gettop(L) > 1) { | ||
652 | lua_settop(L, 1); // use one argument, because the second boolean will fail as get_console_flags expects bitflags | ||
653 | } | ||
660 | HANDLE console_handle = get_console_handle(L, 1); | 654 | HANDLE console_handle = get_console_handle(L, 1); |
661 | if (console_handle == NULL) { | 655 | if (console_handle == NULL) { |
662 | return 2; // error message is already on the stack | 656 | return 2; // error message is already on the stack |
@@ -697,6 +691,9 @@ static int lst_getnonblock(lua_State *L) | |||
697 | } | 691 | } |
698 | 692 | ||
699 | #else | 693 | #else |
694 | if (lua_gettop(L) > 1) { | ||
695 | lua_settop(L, 1); // use one argument, because the second boolean will fail as get_console_flags expects bitflags | ||
696 | } | ||
700 | HANDLE console_handle = get_console_handle(L, 1); | 697 | HANDLE console_handle = get_console_handle(L, 1); |
701 | if (console_handle == NULL) { | 698 | if (console_handle == NULL) { |
702 | return 2; // error message is already on the stack | 699 | return 2; // error message is already on the stack |