diff options
Diffstat (limited to 'ncurses/base/lib_getch.c')
| -rw-r--r-- | ncurses/base/lib_getch.c | 51 |
1 files changed, 14 insertions, 37 deletions
diff --git a/ncurses/base/lib_getch.c b/ncurses/base/lib_getch.c index 8e4767918bdd..e5f6c0041cc2 100644 --- a/ncurses/base/lib_getch.c +++ b/ncurses/base/lib_getch.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2018-2022,2023 Thomas E. Dickey * + * Copyright 2018-2024,2025 Thomas E. Dickey * * Copyright 1998-2015,2016 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -44,7 +44,7 @@ #define NEED_KEY_EVENT #include <curses.priv.h> -MODULE_ID("$Id: lib_getch.c,v 1.146 2023/04/29 18:57:12 tom Exp $") +MODULE_ID("$Id: lib_getch.c,v 1.154 2025/12/27 12:28:45 tom Exp $") #include <fifo_defs.h> @@ -134,17 +134,6 @@ _nc_use_meta(WINDOW *win) return (sp ? sp->_use_meta : 0); } -#ifdef USE_TERM_DRIVER -# if defined(_NC_WINDOWS) && !defined(EXP_WIN32_DRIVER) -static HANDLE -_nc_get_handle(int fd) -{ - intptr_t value = _get_osfhandle(fd); - return (HANDLE) value; -} -# endif -#endif - /* * Check for mouse activity, returning nonzero if we find any. */ @@ -153,22 +142,16 @@ check_mouse_activity(SCREEN *sp, int delay EVENTLIST_2nd(_nc_eventlist * evl)) { int rc; -#ifdef USE_TERM_DRIVER +#if USE_TERM_DRIVER TERMINAL_CONTROL_BLOCK *TCB = TCBOf(sp); rc = TCBOf(sp)->drv->td_testmouse(TCBOf(sp), delay EVENTLIST_2nd(evl)); -# if defined(EXP_WIN32_DRIVER) +# if USE_NAMED_PIPES || defined(_NC_WINDOWS_NATIVE) /* if we emulate terminfo on console, we have to use the console routine */ if (IsTermInfoOnConsole(sp)) { rc = _nc_console_testmouse(sp, _nc_console_handle(sp->_ifd), delay EVENTLIST_2nd(evl)); } else -# elif defined(_NC_WINDOWS) - /* if we emulate terminfo on console, we have to use the console routine */ - if (IsTermInfoOnConsole(sp)) { - HANDLE fd = _nc_get_handle(sp->_ifd); - rc = _nc_mingw_testmouse(sp, fd, delay EVENTLIST_2nd(evl)); - } else # endif rc = TCB->drv->td_testmouse(TCB, delay EVENTLIST_2nd(evl)); #else /* !USE_TERM_DRIVER */ @@ -179,7 +162,7 @@ check_mouse_activity(SCREEN *sp, int delay EVENTLIST_2nd(_nc_eventlist * evl)) } else # endif { -# if defined(EXP_WIN32_DRIVER) +# if USE_NAMED_PIPES rc = _nc_console_testmouse(sp, _nc_console_handle(sp->_ifd), delay @@ -289,7 +272,7 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) n = 1; } else #endif -#ifdef USE_TERM_DRIVER +#if USE_TERM_DRIVER if ((sp->_mouse_type == M_TERM_DRIVER) && (sp->_drv_mouse_head < sp->_drv_mouse_tail)) { sp->_mouse_event(sp); @@ -305,9 +288,9 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) } else #endif { /* Can block... */ -#if defined(USE_TERM_DRIVER) +#if USE_TERM_DRIVER int buf; -# if defined(EXP_WIN32_DRIVER) +# if USE_NAMED_PIPES || defined(_NC_WINDOWS_NATIVE) if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && IsCbreak(sp)) { _nc_set_read_thread(TRUE); n = _nc_console_read(sp, @@ -315,23 +298,17 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl)) &buf); _nc_set_read_thread(FALSE); } else -# elif defined(_NC_WINDOWS) - if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && IsCbreak(sp)) - n = _nc_mingw_console_read(sp, - _nc_get_handle(sp->_ifd), - &buf); - else -# endif /* EXP_WIN32_DRIVER */ +# endif /* USE_NAMED_PIPES */ n = CallDriver_1(sp, td_read, &buf); ch = buf; #else /* !USE_TERM_DRIVER */ -#if defined(EXP_WIN32_DRIVER) +#if USE_NAMED_PIPES int buf; #endif unsigned char c2 = 0; _nc_set_read_thread(TRUE); -#if defined(EXP_WIN32_DRIVER) +#if USE_NAMED_PIPES n = _nc_console_read(sp, _nc_console_handle(sp->_ifd), &buf); @@ -414,7 +391,7 @@ recur_wgetnstr(WINDOW *win, char *buf) SCREEN *sp = _nc_screen_of(win); int rc; - if (sp != 0) { + if (sp != NULL) { #ifdef USE_PTHREADS if (_nc_use_pthreads && sp != CURRENT_SCREEN) { SCREEN *save_SP; @@ -457,7 +434,7 @@ _nc_wgetch(WINDOW *win, *result = 0; sp = _nc_screen_of(win); - if (win == 0 || sp == 0) { + if (win == NULL || sp == NULL) { returnCode(ERR); } @@ -513,7 +490,7 @@ _nc_wgetch(WINDOW *win, recur_wrefresh(win); - if (win->_notimeout || (win->_delay >= 0) || (IsCbreak(sp) > 1)) { + if ((win->_delay >= 0) || (IsCbreak(sp) > 1)) { if (head == -1) { /* fifo is empty */ int delay; |
