ncurses 6.2 - patch 20200906

+ merge/adapt in-progress work by Juergen Pfeifer for new version of
  win32-driver.
+ correct description of vt330/vt340 (Ross Combs).
This commit is contained in:
Thomas E. Dickey 2020-09-06 23:50:45 +00:00
parent 2a3e5b0949
commit 2b7c2fd2f9
36 changed files with 1345 additions and 1133 deletions

View File

@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: INSTALL,v 1.225 2020/08/08 23:38:33 tom Exp $
-- $Id: INSTALL,v 1.226 2020/09/06 23:41:16 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
@ -582,6 +582,9 @@ CONFIGURE OPTIONS:
For testing, generate functions for certain macros to make them visible
as such to the debugger. See also the --disable-macros option.
--enable-exp-win32
When configuring for MinGW, use the experimental Windows 10 driver.
--enable-ext-colors
Extend the cchar_t structure to allow more than 16 colors to be
encoded. This applies only to the wide-character (--enable-widec)

7
NEWS
View File

@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: NEWS,v 1.3552 2020/09/01 00:21:01 tom Exp $
-- $Id: NEWS,v 1.3556 2020/09/06 20:05:44 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@ -46,6 +46,11 @@ See the AUTHORS file for the corresponding full names.
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
20200906
+ merge/adapt in-progress work by Juergen Pfeifer for new version of
win32-driver.
+ correct description of vt330/vt340 (Ross Combs).
20200831
+ build-fix for awk-scripts modified for win32-driver (report by Werner
Fink).

View File

@ -26,112 +26,123 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: README.MinGW,v 1.11 2020/07/11 13:31:30 juergen Exp $
-- $Id: README.MinGW,v 1.14 2020/09/06 22:22:44 tom Exp $
-- Author: Juergen Pfeifer
-------------------------------------------------------------------------------
This is work in progress, but it's in an state where one can see it
This is work in progress, but it is in an state where one can see it
works at least on the Windows Console.
You should install the MSYS package, so that you've a shell environment that
allows you to run the scripts, especially configure etc. You can get that
from http://www.mingw.org
You should install the MSYS2 package, so that you have a shell environment that
allows you to run scripts, especially configure, etc. You can get that
from
https://www.msys2.org/
To build ncurses for native Windows, you need the MinGW toolchain. The
original MinGW toolchain from the above site is only for 32-Bit Windows. As
Windows Server - and also regular workstations - are moving to 64-Bit, it
seems to be reasonable to have a toolchain that supports both architectures.
I recommend to use the TDM gcc toolchain which you can find at
http://tdm-gcc.tdragon.net/download. Go to the download section and select
the bundle installer for tdm64 (MinGW-w64). This installs a multilib version
of the gcc toolchain that can compile for native 32- and 64-Bit Windows
versions. It also comes with a working pthread implementation.
or the individual packages from
The latest config and build scripts we use for MinGW have only been tested
for the gcc-4.6.1 compiler toolchain (or better).
https://sourceforge.net/projects/msys2/files/
Using MinGW is a pragmatic decision, it's the easiest way to port this
You may also use a hosted MinGW cross-compile toolchain, e.g., on Ubuntu or
ArchLinux to build the libraries and tools.
To build ncurses for native Windows with support for the new Windows 10 Virtual
Terminal and PseudoConsole support, you should install at least version 8.0 of
the mingw-w64-x86_64-headers package as it appears to have support for the
required Windows SDK level. Please note that some of the Linux distributions
are a bit behind with respect to the required MinGW header versions and you may
not be able to properly build the libraries for current Windows 10 using these
toolchains. Although it is a bit slow, MSYS2 on Windows 10 64-Bit is the
authoritative build environment for the MinGW version of ncurses.
Using MinGW is a pragmatic decision, it is the easiest way to port this
heavily UNIX based sourcebase to native Windows. The goal is of course
to provide the includes, libraries and DLLs to be used with the more
common traditional development environments on Windows, mainly with
Microsoft Visual Studio.
The TERM environment variable must be set specially to active the Windows
The TERM environment variable must be set especially to activate the Windows
console-driver. The driver checks if TERM is set to "#win32con" (explicit
use) or if TERM is unset or empty (implicit).
Please also make sure that MSYS links to the correct directory containing
your MinGW toolchain. For TDM this is usually C:\MinGW64. In your Windows
CMD.EXE command shell go to the MSYS root directory (most probably
C:\MSYS or C:\MSYS\1.0) and verify, that there is a junction point mingw
that points to the MinGW toolchain directory. If not, delete the mingw
directory and use the mklink command (or the linkd.exe utility on older
Windows) to create the junction point.
Beginning with build 17763 (Fall 2018 update), Windows 10 supports ANSI escape
sequences (Virtual Terminal support). If ncurses detects this or a later
Windows 10 version, the interpretation of the implicit TERM setting (which
means: TERM is not set or empty) changes. In this case, TERM is to be assumed
to be "ms-terminal" and ncurses acts using the regular terminfo based driver,
thus acting like a regular Terminal we all know from UNIX like environments.
This code requires WindowsNT 5.1 or better, which means on the client
Windows XP or better, on the server Windows Server 2003 or better.
This code requires WindowsNT 6.0 or better, which means on the client
Windows Vista or better, on the server Windows Server 2008 or better.
I recommend using libtool to build ncurses on MinGW, because libtool
knows exactly how to build dll's on Windows for use with MinGW.
If running on Windows 10 Build 17763 or later is detected, any program
spawning a subprocess running a ncurses program should use the new
PseudoConsole support, which provides what we know as pty from the UNIX
world also for Windows. Using the CreatePseudoConsole API
(see https://docs.microsoft.com/en-us/windows/console/createpseudoconsole)
in the calling process, it is guaranteed that the called ncurses program has
a console that is required by its implementation, even if the calling program
is NOT a console program, e.g., MSYS2's own mintty Terminal emulator.
In the current MSYS2/minGW setup, building MinGW shared libraries with
libtool for ncurses seems to be broken, so I recommend NOT to use libtool.
To build a modern but still small footprint ncurses that provides
hooks for interop, I recommend using these options:
--with-libtool
--disable-home-terminfo
--enable-database
--disable-termcap
--enable-sp-funcs
--enable-term-driver
--enable-interop
--without-libtool
--disable-home-terminfo
--enable-database
--disable-termcap
--enable-sp-funcs
--enable-term-driver
--enable-interop
This is the configuration commandline as I'm using it at the moment (assuming
environment variable MINGW_ROOT to hold the root directory name of your MinGW
build):
This is the configuration command line which I am using at the moment
(assuming environment variable MINGW_ROOT holds the root directory name of
your MinGW build):
./configure \
--prefix=$MINGW_ROOT \
--with-cxx \
--prefix=/mingw64 \
--without-cxx \
--without-ada \
--enable-warnings \
--enable-assertions \
--enable-exp-win32 \
--enable-ext-funcs \
--disable-home-terminfo \
--disable-echo \
--disable-getcap \
--disable-hard-tabs \
--disable-leaks \
--disable-macros \
--disable-overwrite \
--enable-opaque-curses \
--enable-opaque-panel \
--enable-opaque-menu \
--enable-opaque-form \
--enable-database \
--enable-sp-funcs \
--enable-term-driver \
--enable-interop \
--disable-termcap \
--enable-database \
--with-progs \
--with-libtool \
--without-libtool \
--enable-pc-files \
--mandir=$MINGW_ROOT/share/man
--with-shared \
--with-normal \
--without-debug \
--with-fallbacks=ms-terminal \
--without-manpages
Please note that it is also necessary to set this environment variable:
export PATH_SEPARATOR=";"
in order to parse the terminfo paths correctly. Terminfo paths should
always be separated by a seeeemicolon,even when running under MSYS.
always be separated by a semicolon, even when running under MSYS2.
All the options above are - like the whole Windows support -
experimental.
A lot is still TODO, e.g.:
- Wide Character support (display is workable, but input untested)
The Win32Con driver should actually only use Unicode in the
future.
- Thread support (locking). If using TDM toolchain this is done by
configuring pthreads.
- A GUI console driver
- Support for Terminals attached via a serial port (via terminfo)
- Support for networked Terminal connections (via terminfo)
- Workarounds for MinGW's filesystem access are necessary to make infocmp
work (though tic works).
Recent Windows 10 releases have a new Console implementation that supports
ANSI-style terminal emulation. Also, there is a new "Windows Terminal" App
from Microsoft that hosts the new Console in a tabbed user interface. With
this, it is possble to try using terminfo, the TERM environment varianle
should be set to ms-terminal.
-- vile:txtmode

View File

@ -1 +1 @@
5:0:10 6.2 20200831
5:0:10 6.2 20200906

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.126 2020/08/29 18:35:49 tom Exp $
# $Id: Makefile.in,v 1.127 2020/09/05 19:01:14 tom Exp $
##############################################################################
# Copyright 2018,2020 Thomas E. Dickey #
# Copyright 1998-2015,2016 Free Software Foundation, Inc. #
@ -190,7 +190,7 @@ realclean :: distclean
###############################################################################
HEADER_DEPS = \
HEADER_DEPS = @INTERNALS_HDR@ \
etip.h \
../include/curses.h \
../include/eti.h \
@ -201,9 +201,7 @@ HEADER_DEPS = \
../include/ncurses_dll.h \
../include/panel.h \
../include/unctrl.h \
$(INCDIR)/nc_mingw.h \
$(INCDIR)/nc_string.h \
$(INCDIR)/nc_win32.h \
$(srcdir)/cursesp.h \
$(srcdir)/cursesw.h \
$(srcdir)/cursslk.h \

1946
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -29,7 +29,7 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
dnl $Id: configure.in,v 1.721 2020/08/29 22:40:49 tom Exp $
dnl $Id: configure.in,v 1.724 2020/09/06 22:23:32 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl For additional information, see
@ -38,7 +38,7 @@ dnl https://invisible-island.net/autoconf/my-autoconf.html
dnl
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.52.20200111)
AC_REVISION($Revision: 1.721 $)
AC_REVISION($Revision: 1.724 $)
AC_INIT(ncurses/base/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
@ -1553,13 +1553,27 @@ case $cf_cv_system_name in
(*mingw32*|*mingw64*|*-msvc*)
AC_MSG_CHECKING(if you want experimental-Windows driver)
AC_ARG_ENABLE(exp-win32,
[ --enable-exp-win32 compile with experimental-Windows],
[ --enable-exp-win32 compile with experimental-Windows driver],
[with_exp_win32=$enableval],
[with_exp_win32=no])
AC_MSG_RESULT($with_exp_win32)
test "x$with_exp_win32" = xyes && AC_DEFINE(EXP_WIN32_DRIVER,1,[Define to 1 to compile with experimental win32 driver])
if test "x$with_exp_win32" = xyes
then
AC_DEFINE(EXP_WIN32_DRIVER,1,[Define to 1 to compile with experimental win32 driver])
EXP_WIN32_DRIVER=1
INTERNALS_HDR='[$](INCDIR)/nc_win32.h'
else
INTERNALS_HDR='[$](INCDIR)/nc_mingw.h'
EXP_WIN32_DRIVER=0
fi
;;
(*)
EXP_WIN32_DRIVER=0
INTERNALS_HDR=
;;
esac
AC_SUBST(EXP_WIN32_DRIVER)
AC_SUBST(INTERNALS_HDR)
###############################################################################
CF_HELP_MESSAGE(Testing/development Options:)

View File

@ -26,7 +26,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: dist.mk,v 1.1371 2020/08/31 19:51:51 tom Exp $
# $Id: dist.mk,v 1.1373 2020/09/06 20:05:44 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
@ -38,7 +38,7 @@ SHELL = /bin/sh
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 2
NCURSES_PATCH = 20200831
NCURSES_PATCH = 20200906
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)

View File

@ -60,7 +60,7 @@ BEGIN {
print "/* and: Thomas E. Dickey 1995-on */"
print "/****************************************************************************/"
print ""
print "/* $Id: MKterm.h.awk.in,v 1.76 2020/05/30 19:24:03 tom Exp $ */"
print "/* $Id: MKterm.h.awk.in,v 1.77 2020/09/05 23:08:27 tom Exp $ */"
print ""
print "/*"
print "** term.h -- Definition of struct term"
@ -127,9 +127,14 @@ BEGIN {
print ""
print "#else /* !HAVE_TERMIO_H */"
print ""
print "#if _WIN32"
print "# include <ncurses_mingw.h>"
print "# define TTY struct termios"
print "#if (defined(_WIN32) || defined(_WIN64))"
print "#if @EXP_WIN32_DRIVER@"
print "#include <win32_curses.h>"
print "#define TTY struct winconmode"
print "#else"
print "#include <ncurses_mingw.h>"
print "#define TTY struct termios"
print "#endif"
print "#else"
print "#undef TERMIOS"
print "#include <sgtty.h>"
@ -143,6 +148,9 @@ BEGIN {
print "#ifdef TERMIOS"
print "#define GET_TTY(fd, buf) tcgetattr(fd, buf)"
print "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)"
print "#elif @EXP_WIN32_DRIVER@ && (defined(_WIN32) || defined(_WIN64))"
print "#define GET_TTY(fd, buf) _nc_console_getmode(_nc_console_fd2handle(fd),buf)"
print "#define SET_TTY(fd, buf) _nc_console_setmode(_nc_console_fd2handle(fd),buf)"
print "#else"
print "#define GET_TTY(fd, buf) gtty(fd, buf)"
print "#define SET_TTY(fd, buf) stty(fd, buf)"

View File

@ -31,7 +31,7 @@
* Author: Thomas Dickey, 2008-on *
****************************************************************************/
/* $Id: nc_win32.h,v 1.3 2020/08/29 20:56:43 tom Exp $ */
/* $Id: nc_win32.h,v 1.7 2020/09/06 20:53:55 tom Exp $ */
#ifndef NC_WIN32_H
#define NC_WIN32_H 1
@ -82,7 +82,7 @@ extern "C" {
#undef HAVE_GETTIMEOFDAY
#define HAVE_GETTIMEOFDAY 1
extern NCURSES_EXPORT(int) _nc_gettimeofday(struct timeval *, void *);
#undef wcwidth
#define wcwidth(ucs) _nc_wcwidth((wchar_t)(ucs))
extern NCURSES_EXPORT(int) _nc_wcwidth(wchar_t);
@ -102,16 +102,20 @@ extern NCURSES_EXPORT(int) _nc_console_keyok(int keycode,int flag);
extern NCURSES_EXPORT(bool) _nc_console_keyExist(int keycode);
extern NCURSES_EXPORT(bool) _nc_console_checkinit(bool initFlag, bool assumeTermInfo);
extern NCURSES_EXPORT(int) _nc_console_vt_supported(void);
#ifdef _NC_CHECK_MINTTY
extern NCURSES_EXPORT(int) _nc_console_checkmintty(int fd, LPHANDLE pMinTTY);
#endif
#undef CHECK_TERM_ENV
#define MS_TERMINAL "ms-terminal"
#define CHECK_TERM_ENV(env,isNull,NOTERM) (isNull = ((env==0)||(*env==0)), \
(env = (isNull ? \
_nc_console_vt_supported() ? MS_TERMINAL: NOTERM : env) , \
(isNull = ((env==0)||(*env==0)))))
#define CHECK_TERM_ENV(term_env, no_terminal) \
(term_env = (NonEmpty(term_env) \
? term_env \
: (_nc_console_vt_supported() \
? MS_TERMINAL \
: no_terminal)), \
!NonEmpty(term_env))
/*
* Various Console mode definitions
@ -129,7 +133,7 @@ extern NCURSES_EXPORT(int) _nc_console_checkmintty(int fd, LPHANDLE pMinTTY);
#define CONMODE_NORAW (ENABLE_PROCESSED_INPUT|ENABLE_LINE_INPUT)
#define CONMODE_NOCBREAK (ENABLE_LINE_INPUT)
#if defined(USE_TERM_DRIVER) && defined(USE_WIN32CON_DRIVER)
extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER;
#endif
@ -161,7 +165,7 @@ typedef struct {
TTY originalMode;
} ConsoleInfo;
extern NCURSES_EXPORT_VAR(ConsoleInfo) _nc_CONSOLE;
extern NCURSES_EXPORT_VAR(ConsoleInfo) _nc_CONSOLE;
#define WINCONSOLE _nc_CONSOLE
#define TypeAlloca(type,count)(type*) _alloca(sizeof(type)*(size_t)(count))

View File

@ -26,7 +26,7 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************/
/* $Id: ncurses_dll.h.in,v 1.16 2020/07/04 23:07:54 tom Exp $ */
/* $Id: ncurses_dll.h.in,v 1.17 2020/09/05 17:58:47 juergen Exp $ */
#ifndef NCURSES_DLL_H_incl
#define NCURSES_DLL_H_incl 1
@ -81,7 +81,7 @@
/*
* These symbols hide dllimport/dllexport, for compilers which care about it.
*/
#if defined(__CYGWIN__) || defined(_WIN32)
#if defined(__CYGWIN__) || (defined(_WIN32) || defined(_WIN64))
# if defined(NCURSES_STATIC) /* "static" here only implies "not-a-DLL" */
# define NCURSES_EXPORT_GENERAL_IMPORT
# define NCURSES_EXPORT_GENERAL_EXPORT

View File

@ -6,8 +6,8 @@
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
# $Revision: 1.811 $
# $Date: 2020/08/24 22:30:17 $
# $Revision: 1.812 $
# $Date: 2020/09/05 17:45:56 $
#
# The original header is preserved below for reference. It is noted that there
# is a "newer" version which differs in some cosmetic details (but actually
@ -2732,8 +2732,8 @@ vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
# host writable status line, yet another different DRCS matrix size,
# and such, but they add the DEC Technical character set, Multiple text
# pages, selectable length pages, and the like. The difference between
# the vt330 and vt340 is that the latter has only 2 planes and a monochrome
# monitor, the former has 4 planes and a color monitor. These terminals
# the vt330 and vt340 is that the former has only 2 planes and a monochrome
# monitor, the latter has 4 planes and a color monitor. These terminals
# support VT131 and ANSI block mode, but as with much of these things,
# termcap/terminfo doesn't deal with these features.
#
@ -2790,7 +2790,7 @@ vt420+lrmm|VT420 left/right margins,
# macros, and other features too numerous to remember right now. TERMCAP
# can only take advantage of a few of these added features.
#
# Note that this entry is are set up in what was the standard way for GNU
# Note that this entry is set up in what was the standard way for GNU
# Emacs v18 terminal modes to deal with the cursor keys in that the arrow
# keys were switched into application mode at the same time the numeric pad
# is switched into application mode. This changes the definitions of the
@ -2967,7 +2967,7 @@ dec-vt220|DOS tnvt200 terminal emulator,
# Zstem340 is an (IMHO) excellent VT emulator for PC's. I recommend it to
# anyone who needs PC VT340 emulation. (or anything below that level, for
# that matter -- DEC's ALL-in-1 seems happy with it, as does INFOPLUS's
# RDBM systems, it includes ReGIS and SiXel support! I'm impressed...
# RDBM systems, it includes ReGIS and Sixel support! I'm impressed...
# I can send the address if requested.
# (z340: changed garbled \E[5?l to \E[?5l, DEC smooth scroll off -- esr)
# From: Adam Thompson <athompso@pangea.ca> Sept 10 1995
@ -26623,4 +26623,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# + correct ti916 cup (report by Florian Weimer).
# + improve ndr9500 (report by Florian Weimer).
#
# 2020-09-05
# + correct description of vt330/vt340 (Ross Combs).
#
######## SHANTIH! SHANTIH! SHANTIH!

View File

@ -1,4 +1,4 @@
# $Id: Makefile.in,v 1.175 2020/08/29 18:43:21 juergen Exp $
# $Id: Makefile.in,v 1.176 2020/09/05 18:58:52 tom Exp $
##############################################################################
# Copyright 2018-2019,2020 Thomas E. Dickey #
# Copyright 1998-2017,2018 Free Software Foundation, Inc. #
@ -178,7 +178,7 @@ AUTO_SRC = \
init_keytry.h \
keys.list
HEADER_DEPS = \
HEADER_DEPS = @INTERNALS_HDR@ \
../include/ncurses_cfg.h \
../include/ncurses_def.h \
../include/ncurses_dll.h \
@ -186,7 +186,6 @@ HEADER_DEPS = \
../include/term.h \
../include/unctrl.h \
$(INCDIR)/nc_alloc.h \
$(INCDIR)/nc_mingw.h \
$(INCDIR)/nc_panel.h \
$(INCDIR)/nc_string.h \
$(INCDIR)/nc_termios.h \

View File

@ -44,7 +44,7 @@
#define NEED_KEY_EVENT
#include <curses.priv.h>
MODULE_ID("$Id: lib_getch.c,v 1.140 2020/07/18 20:02:24 tom Exp $")
MODULE_ID("$Id: lib_getch.c,v 1.141 2020/09/05 22:50:47 tom Exp $")
#include <fifo_defs.h>
@ -135,7 +135,7 @@ _nc_use_meta(WINDOW *win)
}
#ifdef USE_TERM_DRIVER
# ifdef _WIN32
# if defined(_NC_WINDOWS) && !defined(EXP_WIN32_DRIVER)
static HANDLE
_nc_get_handle(int fd)
{
@ -156,7 +156,14 @@ check_mouse_activity(SCREEN *sp, int delay EVENTLIST_2nd(_nc_eventlist * evl))
#ifdef USE_TERM_DRIVER
TERMINAL_CONTROL_BLOCK *TCB = TCBOf(sp);
rc = TCBOf(sp)->drv->td_testmouse(TCBOf(sp), delay EVENTLIST_2nd(evl));
# ifdef _WIN32
# if defined(EXP_WIN32_DRIVER)
/* 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);
@ -164,29 +171,36 @@ check_mouse_activity(SCREEN *sp, int delay EVENTLIST_2nd(_nc_eventlist * evl))
} else
# endif
rc = TCB->drv->td_testmouse(TCB, delay EVENTLIST_2nd(evl));
#else
#if USE_SYSMOUSE
#else /* !USE_TERM_DRIVER */
# if USE_SYSMOUSE
if ((sp->_mouse_type == M_SYSMOUSE)
&& (sp->_sysmouse_head < sp->_sysmouse_tail)) {
rc = TW_MOUSE;
} else
#endif
# endif
{
# if defined(EXP_WIN32_DRIVER)
rc = _nc_console_testmouse(sp,
_nc_console_handle(sp->_ifd),
delay
EVENTLIST_2nd(evl));
# else
rc = _nc_timed_wait(sp,
TWAIT_MASK,
delay,
(int *) 0
EVENTLIST_2nd(evl));
#if USE_SYSMOUSE
# endif
# if USE_SYSMOUSE
if ((sp->_mouse_type == M_SYSMOUSE)
&& (sp->_sysmouse_head < sp->_sysmouse_tail)
&& (rc == 0)
&& (errno == EINTR)) {
rc |= TW_MOUSE;
}
#endif
# endif
}
#endif
#endif /* USE_TERM_DRIVER */
return rc;
}
@ -291,31 +305,54 @@ fifo_push(SCREEN *sp EVENTLIST_2nd(_nc_eventlist * evl))
} else
#endif
{ /* Can block... */
#ifdef USE_TERM_DRIVER
#if defined(USE_TERM_DRIVER)
int buf;
#ifdef _WIN32
# if defined(EXP_WIN32_DRIVER)
if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && sp->_cbreak) {
# if USE_PTHREADS_EINTR
if ((pthread_self) && (pthread_kill) && (pthread_equal))
_nc_globals.read_thread = pthread_self();
# endif
n = _nc_console_read(sp,
_nc_console_handle(sp->_ifd),
&buf);
# if USE_PTHREADS_EINTR
_nc_globals.read_thread = 0;
# endif
} else
# elif defined(_NC_WINDOWS)
if (NC_ISATTY(sp->_ifd) && IsTermInfoOnConsole(sp) && sp->_cbreak)
n = _nc_mingw_console_read(sp,
_nc_get_handle(sp->_ifd),
&buf);
else
#endif
# endif /* EXP_WIN32_DRIVER */
n = CallDriver_1(sp, td_read, &buf);
ch = buf;
#else
#else /* !USE_TERM_DRIVER */
#if defined(EXP_WIN32_DRIVER)
int buf;
#endif
unsigned char c2 = 0;
# if USE_PTHREADS_EINTR
# if USE_WEAK_SYMBOLS
#if USE_PTHREADS_EINTR
#if USE_WEAK_SYMBOLS
if ((pthread_self) && (pthread_kill) && (pthread_equal))
# endif
#endif
_nc_globals.read_thread = pthread_self();
# endif
#endif
#if defined(EXP_WIN32_DRIVER)
n = _nc_console_read(sp,
_nc_console_handle(sp->_ifd),
&buf);
c2 = buf;
#else
n = (int) read(sp->_ifd, &c2, (size_t) 1);
#endif
#if USE_PTHREADS_EINTR
_nc_globals.read_thread = 0;
#endif
ch = c2;
#endif
#endif /* USE_TERM_DRIVER */
}
if ((n == -1) || (n == 0)) {

View File

@ -46,7 +46,7 @@
#include <sys/termio.h> /* needed for ISC */
#endif
MODULE_ID("$Id: lib_initscr.c,v 1.45 2020/02/02 23:34:34 tom Exp $")
MODULE_ID("$Id: lib_initscr.c,v 1.47 2020/09/06 20:48:55 tom Exp $")
NCURSES_EXPORT(WINDOW *)
initscr(void)
@ -66,10 +66,9 @@ initscr(void)
_nc_globals.init_screen = TRUE;
if ((env = getenv("TERM")) == 0
|| *env == '\0') {
env = "unknown";
}
env = getenv("TERM");
(void) CHECK_TERM_ENV(env, "unknown");
if ((name = strdup(env)) == NULL) {
fprintf(stderr, "Error opening allocating $TERM.\n");
ExitProgram(EXIT_FAILURE);

View File

@ -49,7 +49,7 @@
#include <tic.h>
MODULE_ID("$Id: lib_newterm.c,v 1.102 2020/02/02 23:34:34 tom Exp $")
MODULE_ID("$Id: lib_newterm.c,v 1.103 2020/09/05 21:34:04 tom Exp $")
#ifdef USE_TERM_DRIVER
#define NumLabels InfoOf(SP_PARM).numlabels
@ -88,6 +88,12 @@ _nc_initscr(NCURSES_SP_DCL0)
buf.c_oflag &= (unsigned) ~(ONLCR);
#elif HAVE_SGTTY_H
buf.sg_flags &= ~(ECHO | CRMOD);
#elif defined(EXP_WIN32_DRIVER)
buf.dwFlagIn = CONMODE_IN_DEFAULT;
buf.dwFlagOut = CONMODE_OUT_DEFAULT | VT_FLAG_OUT;
if (WINCONSOLE.isTermInfoConsole) {
buf.dwFlagIn |= VT_FLAG_IN;
}
#else
memset(&buf, 0, sizeof(buf));
#endif
@ -195,6 +201,11 @@ NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx
current = CURRENT_SCREEN;
its_term = (current ? current->_term : 0);
#if defined(EXP_WIN32_DRIVER)
_setmode(fileno(_ifp), _O_BINARY);
_setmode(fileno(_ofp), _O_BINARY);
#endif
INIT_TERM_DRIVER();
/* this loads the capability entry, then sets LINES and COLS */
if (

View File

@ -35,7 +35,7 @@
****************************************************************************/
/*
* $Id: curses.priv.h,v 1.634 2020/08/29 20:11:24 tom Exp $
* $Id: curses.priv.h,v 1.636 2020/09/06 20:53:41 tom Exp $
*
* curses.priv.h
*
@ -297,12 +297,11 @@ extern NCURSES_EXPORT(void *) _nc_memmove (void *, const void *, size_t);
#define NO_TERMINAL 0
#endif
#define CHECK_TERM_ENV(env, isNull, NOTERM) \
(isNull = ((env == 0) || (*env == 0)), \
(env = (isNull \
? NOTERM \
: env), \
(isNull = ((env == 0) || (*env == 0)))))
#define CHECK_TERM_ENV(term_env, no_terminal) \
(term_env = (NonEmpty(term_env) \
? term_env \
: no_terminal), \
!NonEmpty(term_env))
/*
* Note: ht/cbt expansion flakes out randomly under Linux 1.1.47, but only

View File

@ -84,7 +84,7 @@
#undef USE_OLD_TTY
#endif /* USE_OLD_TTY */
MODULE_ID("$Id: lib_baudrate.c,v 1.44 2020/02/02 23:34:34 tom Exp $")
MODULE_ID("$Id: lib_baudrate.c,v 1.45 2020/09/05 21:15:32 tom Exp $")
/*
* int
@ -99,6 +99,7 @@ struct speed {
int actual_speed; /* the actual speed */
};
#if !defined(EXP_WIN32_DRIVER)
#define DATA(number) { B##number, number }
static struct speed const speeds[] =
@ -188,10 +189,16 @@ static struct speed const speeds[] =
#endif
#endif
};
#endif /* !EXP_WIN32_DRIVER */
NCURSES_EXPORT(int)
_nc_baudrate(int OSpeed)
{
#if defined(EXP_WIN32_DRIVER)
/* On Windows this is a noop */
(void) OSpeed;
return (OK);
#else
#if !USE_REENTRANT
static int last_OSpeed;
static int last_baudrate;
@ -230,13 +237,16 @@ _nc_baudrate(int OSpeed)
#endif
}
return (result);
#endif /* !EXP_WIN32_DRIVER */
}
NCURSES_EXPORT(int)
_nc_ospeed(int BaudRate)
{
int result = 1;
#if defined(EXP_WIN32_DRIVER)
(void) BaudRate;
#else
if (BaudRate >= 0) {
unsigned i;
@ -247,6 +257,7 @@ _nc_ospeed(int BaudRate)
}
}
}
#endif
return (result);
}
@ -257,6 +268,9 @@ NCURSES_SP_NAME(baudrate) (NCURSES_SP_DCL0)
T((T_CALLED("baudrate(%p)"), (void *) SP_PARM));
#if defined(EXP_WIN32_DRIVER)
result = OK;
#else
/*
* In debugging, allow the environment symbol to override when we're
* redirecting to a file, so we can construct repeatable test-cases
@ -290,7 +304,7 @@ NCURSES_SP_NAME(baudrate) (NCURSES_SP_DCL0)
} else {
result = ERR;
}
#endif /* !EXP_WIN32_DRIVER */
returnCode(result);
}

View File

@ -49,7 +49,7 @@
#include <curses.priv.h>
MODULE_ID("$Id: lib_kernel.c,v 1.32 2020/02/02 23:34:34 tom Exp $")
MODULE_ID("$Id: lib_kernel.c,v 1.33 2020/09/05 21:37:57 tom Exp $")
static int
_nc_vdisable(void)
@ -92,6 +92,8 @@ NCURSES_SP_NAME(erasechar) (NCURSES_SP_DCL0)
result = termp->Ottyb.c_cc[VERASE];
if (result == _nc_vdisable())
result = ERR;
#elif defined(EXP_WIN32_DRIVER)
result = ERR;
#else
result = termp->Ottyb.sg_erase;
#endif
@ -127,6 +129,8 @@ NCURSES_SP_NAME(killchar) (NCURSES_SP_DCL0)
result = termp->Ottyb.c_cc[VKILL];
if (result == _nc_vdisable())
result = ERR;
#elif defined(EXP_WIN32_DRIVER)
result = ERR;
#else
result = termp->Ottyb.sg_kill;
#endif
@ -162,7 +166,11 @@ NCURSES_SP_NAME(flushinp) (NCURSES_SP_DCL0)
#else
errno = 0;
do {
#if defined(EXP_WIN32_DRIVER)
_nc_console_flush(_nc_console_fd2handle(termp->Filedes));
#else
ioctl(termp->Filedes, TIOCFLUSH, 0);
#endif
} while
(errno == EINTR);
#endif

View File

@ -50,7 +50,7 @@
#include <curses.priv.h>
MODULE_ID("$Id: lib_raw.c,v 1.24 2020/02/02 23:34:34 tom Exp $")
MODULE_ID("$Id: lib_raw.c,v 1.25 2020/09/05 21:29:10 tom Exp $")
#if HAVE_SYS_TERMIO_H
#include <sys/termio.h> /* needed for ISC */
@ -97,6 +97,8 @@ NCURSES_SP_NAME(raw) (NCURSES_SP_DCL0)
buf.c_iflag &= (unsigned) ~(COOKED_INPUT);
buf.c_cc[VMIN] = 1;
buf.c_cc[VTIME] = 0;
#elif defined(EXP_WIN32_DRIVER)
buf.dwFlagIn &= ~CONMODE_NORAW;
#else
buf.sg_flags |= RAW;
#endif
@ -152,6 +154,9 @@ NCURSES_SP_NAME(cbreak) (NCURSES_SP_DCL0)
buf.c_lflag |= ISIG;
buf.c_cc[VMIN] = 1;
buf.c_cc[VTIME] = 0;
#elif defined(EXP_WIN32_DRIVER)
buf.dwFlagIn |= CONMODE_NORAW;
buf.dwFlagIn &= ~CONMODE_NOCBREAK;
#else
buf.sg_flags |= CBREAK;
#endif
@ -231,6 +236,8 @@ NCURSES_SP_NAME(noraw) (NCURSES_SP_DCL0)
buf.c_lflag |= ISIG | ICANON |
(termp->Ottyb.c_lflag & IEXTEN);
buf.c_iflag |= COOKED_INPUT;
#elif defined(EXP_WIN32_DRIVER)
buf.dwFlagIn |= CONMODE_NORAW;
#else
buf.sg_flags &= ~(RAW | CBREAK);
#endif
@ -283,6 +290,8 @@ NCURSES_SP_NAME(nocbreak) (NCURSES_SP_DCL0)
#ifdef TERMIOS
buf.c_lflag |= ICANON;
buf.c_iflag |= ICRNL;
#elif defined(EXP_WIN32_DRIVER)
buf.dwFlagIn |= (CONMODE_NOCBREAK | CONMODE_NORAW);
#else
buf.sg_flags &= ~CBREAK;
#endif

View File

@ -49,7 +49,7 @@
#include <locale.h>
#endif
MODULE_ID("$Id: lib_setup.c,v 1.207 2020/02/02 23:34:34 tom Exp $")
MODULE_ID("$Id: lib_setup.c,v 1.210 2020/09/06 21:03:33 tom Exp $")
/****************************************************************************
*
@ -305,11 +305,19 @@ _nc_get_screensize(SCREEN *sp,
bool useEnv = _nc_prescreen.use_env;
bool useTioctl = _nc_prescreen.use_tioctl;
#ifdef EXP_WIN32_DRIVER
/* If we are here, then Windows console is used in terminfo mode.
We need to figure out the size using the console API
*/
_nc_console_size(linep, colp);
T(("screen size: winconsole lines = %d columns = %d", *linep, *colp));
#else
/* figure out the size of the screen */
T(("screen size: terminfo lines = %d columns = %d", lines, columns));
*linep = (int) lines;
*colp = (int) columns;
#endif
#if NCURSES_SP_FUNCS
if (sp) {
@ -566,7 +574,7 @@ NCURSES_EXPORT(int)
_nc_unicode_locale(void)
{
int result = 0;
#if defined(_WIN32) && USE_WIDEC_SUPPORT
#if defined(_NC_WINDOWS) && USE_WIDEC_SUPPORT
result = 1;
#elif HAVE_LANGINFO_CODESET
char *env = nl_langinfo(CODESET);
@ -655,13 +663,15 @@ TINFO_SETUP_TERM(TERMINAL **tp,
if (tname == 0) {
tname = getenv("TERM");
if (tname == 0 || *tname == '\0') {
#ifdef USE_TERM_DRIVER
#if defined(USE_TERM_DRIVER) && !defined(EXP_WIN32_DRIVER)
if (!NonEmpty(tname))
tname = "unknown";
#else
if (!CHECK_TERM_ENV(tname, NO_TERMINAL)) {
T(("Failure with TERM=%s", tname));
ret_error0(TGETENT_ERR, "TERM environment variable not set.\n");
#endif
}
#endif
}
myname = strdup(tname);

View File

@ -52,7 +52,7 @@
#include <termcap.h> /* ospeed */
#include <tic.h>
MODULE_ID("$Id: lib_tputs.c,v 1.103 2020/02/02 23:34:34 tom Exp $")
MODULE_ID("$Id: lib_tputs.c,v 1.104 2020/09/05 18:08:11 tom Exp $")
NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */
NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */
@ -129,7 +129,6 @@ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_DCL0)
TR(TRACE_CHARPUT, ("flushing %ld bytes", (unsigned long) amount));
while (amount) {
ssize_t res = write(SP_PARM->_ofd, buf, amount);
if (res > 0) {
/* if the write was incomplete, try again */
amount -= (size_t) res;

View File

@ -42,7 +42,7 @@
#define CUR SP_TERMTYPE
#endif
MODULE_ID("$Id: lib_ttyflags.c,v 1.34 2020/02/02 23:34:34 tom Exp $")
MODULE_ID("$Id: lib_ttyflags.c,v 1.36 2020/09/05 22:54:47 tom Exp $")
NCURSES_EXPORT(int)
NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_DCLx TTY * buf)
@ -156,6 +156,8 @@ NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_DCL0)
#ifdef TERMIOS
if (termp->Ottyb.c_oflag & OFLAGS_TABS)
tab = back_tab = NULL;
#elif defined(EXP_WIN32_DRIVER)
/* noop */
#else
if (termp->Ottyb.sg_flags & XTABS)
tab = back_tab = NULL;
@ -193,6 +195,8 @@ NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_DCL0)
if (_nc_get_tty_mode(&termp->Nttyb) == OK) {
#ifdef TERMIOS
termp->Nttyb.c_oflag &= (unsigned) (~OFLAGS_TABS);
#elif defined(EXP_WIN32_DRIVER)
/* noop */
#else
termp->Nttyb.sg_flags &= (unsigned) (~XTABS);
#endif

View File

@ -35,7 +35,7 @@
#include <curses.priv.h>
MODULE_ID("$Id: lib_tracebits.c,v 1.28 2020/02/02 23:34:34 tom Exp $")
MODULE_ID("$Id: lib_tracebits.c,v 1.30 2020/09/05 22:54:47 tom Exp $")
#if HAVE_SYS_TERMIO_H
#include <sys/termio.h> /* needed for ISC */
@ -72,9 +72,15 @@ MODULE_ID("$Id: lib_tracebits.c,v 1.28 2020/02/02 23:34:34 tom Exp $")
#ifdef TRACE
#if defined(EXP_WIN32_DRIVER)
#define BITNAMELEN 36
#else
#define BITNAMELEN 8
#endif
typedef struct {
unsigned int val;
const char name[8];
const char name[BITNAMELEN];
} BITNAMES;
#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size)
@ -212,6 +218,36 @@ _nc_trace_ttymode(TTY * tty)
if (tty->c_lflag & ALLLOCAL)
lookup_bits(buf, lflags, "lflags", tty->c_lflag);
}
#elif defined(EXP_WIN32_DRIVER)
#define DATA(name) { name, { #name } }
static const BITNAMES dwFlagsOut[] =
{
DATA(ENABLE_PROCESSED_OUTPUT),
DATA(ENABLE_WRAP_AT_EOL_OUTPUT),
DATA(ENABLE_VIRTUAL_TERMINAL_PROCESSING),
DATA(DISABLE_NEWLINE_AUTO_RETURN),
DATA(ENABLE_LVB_GRID_WORLDWIDE)
};
static const BITNAMES dwFlagsIn[] =
{
DATA(ENABLE_PROCESSED_INPUT),
DATA(ENABLE_LINE_INPUT),
DATA(ENABLE_ECHO_INPUT),
DATA(ENABLE_MOUSE_INPUT),
DATA(ENABLE_INSERT_MODE),
DATA(ENABLE_QUICK_EDIT_MODE),
DATA(ENABLE_EXTENDED_FLAGS),
DATA(ENABLE_AUTO_POSITION),
DATA(ENABLE_VIRTUAL_TERMINAL_INPUT)
};
buf = _nc_trace_buf(0,
8 + sizeof(dwFlagsOut) +
8 + sizeof(dwFlagsIn));
if (buf != 0) {
lookup_bits(buf, dwFlagsIn, "dwIn", tty->dwFlagIn);
lookup_bits(buf, dwFlagsOut, "dwOut", tty->dwFlagOut);
}
#else
/* reference: ttcompat(4M) on SunOS 4.1 */
#ifndef EVENP

View File

@ -1,8 +1,8 @@
ncurses6 (6.2+20200831) unstable; urgency=low
ncurses6 (6.2+20200906) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Mon, 31 Aug 2020 15:51:51 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 06 Sep 2020 16:05:44 -0400
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.2+20200831) unstable; urgency=low
ncurses6 (6.2+20200906) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Mon, 31 Aug 2020 15:51:51 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 06 Sep 2020 16:05:44 -0400
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.2+20200831) unstable; urgency=low
ncurses6 (6.2+20200906) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Mon, 31 Aug 2020 15:51:51 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 06 Sep 2020 16:05:44 -0400
ncurses6 (5.9-20120608) unstable; urgency=low

View File

@ -1,4 +1,4 @@
; $Id: mingw-ncurses.nsi,v 1.415 2020/08/31 19:51:51 tom Exp $
; $Id: mingw-ncurses.nsi,v 1.417 2020/09/06 20:05:44 tom Exp $
; TODO add examples
; TODO bump ABI to 6
@ -10,7 +10,7 @@
!define VERSION_MAJOR "6"
!define VERSION_MINOR "2"
!define VERSION_YYYY "2020"
!define VERSION_MMDD "0831"
!define VERSION_MMDD "0906"
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
!define MY_ABI "5"

View File

@ -3,7 +3,7 @@
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.2
Release: 20200831
Release: 20200906
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz

View File

@ -1,7 +1,7 @@
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.2
Release: 20200831
Release: 20200906
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz

View File

@ -1,7 +1,7 @@
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.2
Release: 20200831
Release: 20200906
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz

View File

@ -31,7 +31,7 @@
* Author: Thomas E. Dickey 1997-on *
****************************************************************************/
/*
* $Id: progs.priv.h,v 1.51 2020/08/01 21:07:50 tom Exp $
* $Id: progs.priv.h,v 1.52 2020/09/05 19:35:06 tom Exp $
*
* progs.priv.h
*
@ -115,6 +115,11 @@ extern char *optarg;
extern int optind;
#endif /* HAVE_GETOPT_H */
#undef _NC_WINDOWS
#if (defined(_WIN32) || defined(_WIN64))
#define _NC_WINDOWS 1
#endif
#define NCURSES_INTERNALS 1
#define NCURSES_OPAQUE 0

View File

@ -53,7 +53,7 @@
#include <sys/ptem.h>
#endif
MODULE_ID("$Id: reset_cmd.c,v 1.21 2020/05/27 23:46:20 tom Exp $")
MODULE_ID("$Id: reset_cmd.c,v 1.23 2020/09/05 22:54:47 tom Exp $")
/*
* SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
@ -363,6 +363,9 @@ default_erase(void)
void
set_control_chars(TTY * tty_settings, int my_erase, int my_intr, int my_kill)
{
#if defined(EXP_WIN32_DRIVER)
/* noop */
#else
if (DISABLED(tty_settings->c_cc[VERASE]) || my_erase >= 0) {
tty_settings->c_cc[VERASE] = UChar((my_erase >= 0)
? my_erase
@ -380,6 +383,7 @@ set_control_chars(TTY * tty_settings, int my_erase, int my_intr, int my_kill)
? my_kill
: CKILL);
}
#endif
}
/*
@ -389,6 +393,9 @@ set_control_chars(TTY * tty_settings, int my_erase, int my_intr, int my_kill)
void
set_conversions(TTY * tty_settings)
{
#if defined(EXP_WIN32_DRIVER)
/* FIXME */
#else
#ifdef ONLCR
tty_settings->c_oflag |= ONLCR;
#endif
@ -412,6 +419,7 @@ set_conversions(TTY * tty_settings)
tty_settings->c_oflag &= ~OXTABS;
#endif /* OXTABS */
tty_settings->c_lflag |= (ECHOE | ECHOK);
#endif
}
static bool
@ -551,15 +559,18 @@ show_tty_change(TTY * old_settings,
int which,
unsigned def)
{
unsigned older, newer;
unsigned older = 0, newer = 0;
char *p;
#if defined(EXP_WIN32_DRIVER)
/* noop */
#else
newer = new_settings->c_cc[which];
older = old_settings->c_cc[which];
if (older == newer && older == def)
return;
#endif
(void) fprintf(stderr, "%s %s ", name, older == newer ? "is" : "set to");
if (DISABLED(newer)) {
@ -603,9 +614,13 @@ reset_flush(void)
void
print_tty_chars(TTY * old_settings, TTY * new_settings)
{
#if defined(EXP_WIN32_DRIVER)
/* noop */
#else
show_tty_change(old_settings, new_settings, "Erase", VERASE, CERASE);
show_tty_change(old_settings, new_settings, "Kill", VKILL, CKILL);
show_tty_change(old_settings, new_settings, "Interrupt", VINTR, CINTR);
#endif
}
#if HAVE_SIZECHANGE

View File

@ -98,7 +98,7 @@
char *ttyname(int fd);
#endif
MODULE_ID("$Id: tset.c,v 1.123 2020/08/29 23:32:18 tom Exp $")
MODULE_ID("$Id: tset.c,v 1.125 2020/09/05 22:54:47 tom Exp $")
#ifndef environ
extern char **environ;
@ -231,8 +231,11 @@ typedef struct speeds {
int speed;
} SPEEDS;
#if (defined(_WIN32) || defined(_WIN64))
static const SPEEDS speeds[] = { { "0", 0 } };
#if defined(EXP_WIN32_DRIVER)
static const SPEEDS speeds[] =
{
{"0", 0}
};
#else
static const SPEEDS speeds[] =
{
@ -843,7 +846,7 @@ main(int argc, char **argv)
oldmode = mode;
#ifdef TERMIOS
ospeed = (NCURSES_OSPEED) cfgetospeed(&mode);
#elif (defined(_WIN32) || defined(_WIN64))
#elif defined(EXP_WIN32_DRIVER)
ospeed = 0;
#else
ospeed = (NCURSES_OSPEED) mode.sg_ospeed;

View File

@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey
*
* $Id: dots_termcap.c,v 1.25 2020/08/29 16:22:03 juergen Exp $
* $Id: dots_termcap.c,v 1.26 2020/09/05 17:58:47 juergen Exp $
*
* A simple demo of the termcap interface.
*/
@ -155,7 +155,7 @@ my_napms(int ms)
{
if (ms > 0) {
#if defined(_NC_WINDOWS) || !HAVE_GETTIMEOFDAY
Sleep((DWORD) ms);
Sleep((unsigned int) ms);
#else
struct timeval data;
data.tv_sec = 0;

View File

@ -30,7 +30,7 @@
/*
* Author: Thomas E. Dickey - 2000
*
* $Id: railroad.c,v 1.24 2020/02/02 23:34:34 tom Exp $
* $Id: railroad.c,v 1.25 2020/09/05 21:43:37 tom Exp $
*
* A simple demo of the termcap interface.
*/
@ -191,7 +191,11 @@ railroad(char **args)
int z;
if (name == 0)
#ifdef EXP_WIN32_DRIVER
name = "ms-terminal";
#else
name = "dumb";
#endif
InitAndCatch(z = tgetent(buffer, name), onsig);
if (z >= 0) {