-If you start a bash from the MSYS environment, please make sure that the
-Microsoft Development tools are in your PATH right after the MinGW
-tools. The LIB.EXE tool is the only one needed. You need this only if
-you want to build DLLs that work with native Windows programs. If you
-don't have any Microsoft Development tools on your machine, consider
-at least to get the free "Visual C++ 2010 Express Edition".
-It contains the LIB.EXE tool. You may also use this compiler to test
-writing native Windows programs using the ncurses DLLs without using
-MinGW then for writing apps.
-
-It is necessary to unset the TERM environment variable, to activate the
-Windows console-driver.
-
-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.
-
-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.
-
-In order to build ncurses for the planned interop layer with .NET, we
-recommend to use these options with configure
-
- --disable-home-terminfo
- --enable-reentrant
- --enable-sp-funcs
- --enable-term-driver
- --enable-interop
- --with-pthread (if using TDM toolchain as recommended)
-
-This is the configuration commandline as I'm using it at the moment:
+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).
+
+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 6.0 or better, which means on the client
+Windows Vista or better, on the server Windows Server 2008 or better.
+
+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:
+
+ --without-libtool
+ --disable-home-terminfo
+ --enable-database
+ --disable-termcap
+ --enable-sp-funcs
+ --enable-term-driver
+ --enable-interop
+
+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):