aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThijs <thijs@thijsschreijer.nl>2024-05-22 23:57:00 +0200
committerThijs <thijs@thijsschreijer.nl>2024-05-22 23:57:00 +0200
commite1a8aede05d3217882cf2de426f0a87a659e4308 (patch)
treea2793677c06c450a7fcd48c81c9031eea28fb5fd /src
parentc08ea611759407b0e0c8dbea384c4f5273d27d3f (diff)
downloadluasystem-e1a8aede05d3217882cf2de426f0a87a659e4308.tar.gz
luasystem-e1a8aede05d3217882cf2de426f0a87a659e4308.tar.bz2
luasystem-e1a8aede05d3217882cf2de426f0a87a659e4308.zip
fix windows (manual) tests
Diffstat (limited to 'src')
-rw-r--r--src/term.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/term.c b/src/term.c
index 704da80..2b44b12 100644
--- a/src/term.c
+++ b/src/term.c
@@ -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