/****************************************************************************
- * Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. *
+ * Copyright 2018-2019,2020 Thomas E. Dickey *
+ * Copyright 1998-2015,2016 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_getch.c,v 1.135 2016/06/11 21:52:23 tom Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.139 2020/02/02 23:34:34 tom Exp $")
#include <fifo_defs.h>
NCURSES_SP_NAME(set_escdelay) (NCURSES_SP_DCLx int value)
{
int code = OK;
-#if USE_REENTRANT
- if (SP_PARM) {
- SET_ESCDELAY(value);
- } else {
+ if (value < 0) {
code = ERR;
- }
+ } else {
+#if USE_REENTRANT
+ if (SP_PARM) {
+ SET_ESCDELAY(value);
+ } else {
+ code = ERR;
+ }
#else
- (void) SP_PARM;
- ESCDELAY = value;
+ (void) SP_PARM;
+ ESCDELAY = value;
#endif
+ }
return code;
}
set_escdelay(int value)
{
int code;
+ if (value < 0) {
+ code = ERR;
+ } else {
#if USE_REENTRANT
- code = NCURSES_SP_NAME(set_escdelay) (CURRENT_SCREEN, value);
+ code = NCURSES_SP_NAME(set_escdelay) (CURRENT_SCREEN, value);
#else
- ESCDELAY = value;
- code = OK;
+ ESCDELAY = value;
+ code = OK;
#endif
+ }
return code;
}
#endif
}
#ifdef USE_TERM_DRIVER
-# ifdef __MINGW32__
+# ifdef _WIN32
static HANDLE
_nc_get_handle(int fd)
{
#ifdef USE_TERM_DRIVER
TERMINAL_CONTROL_BLOCK *TCB = TCBOf(sp);
rc = TCBOf(sp)->drv->td_testmouse(TCBOf(sp), delay EVENTLIST_2nd(evl));
-# ifdef __MINGW32__
+# ifdef _WIN32
/* if we emulate terminfo on console, we have to use the console routine */
if (IsTermInfoOnConsole(sp)) {
HANDLE fd = _nc_get_handle(sp->_ifd);
if (tail < 0)
return ERR;
-#ifdef HIDE_EINTR
- again:
- errno = 0;
-#endif
-
#ifdef NCURSES_WGETCH_EVENTS
if (evl
#if USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE
{ /* Can block... */
#ifdef USE_TERM_DRIVER
int buf;
-#ifdef __MINGW32__
+#ifdef _WIN32
if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && sp->_cbreak)
n = _nc_mingw_console_read(sp,
_nc_get_handle(sp->_ifd),
#endif
}
-#ifdef HIDE_EINTR
- /*
- * Under System V curses with non-restarting signals, getch() returns
- * with value ERR when a handled signal keeps it from completing.
- * If signals restart system calls, OTOH, the signal is invisible
- * except to its handler.
- *
- * We don't want this difference to show. This piece of code
- * tries to make it look like we always have restarting signals.
- */
- if (n <= 0 && errno == EINTR
-# if USE_PTHREADS_EINTR
- && (_nc_globals.have_sigwinch == 0)
-# endif
- )
- goto again;
-#endif
-
if ((n == -1) || (n == 0)) {
TR(TRACE_IEVENT, ("read(%d,&ch,1)=%d, errno=%d", sp->_ifd, n, errno));
ch = ERR;