summaryrefslogtreecommitdiff
path: root/ncurses/base/lib_getch.c
diff options
context:
space:
mode:
Diffstat (limited to 'ncurses/base/lib_getch.c')
-rw-r--r--ncurses/base/lib_getch.c51
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;