Announcing ncurses 6.6

Overview

The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0 (SVr4), and more. It uses terminfo format, supports pads and color and multiple highlights and forms characters and function-key mapping, and has all the other SVr4-curses enhancements over BSD curses. SVr4 curses became the basis of X/Open Curses.

In mid-June 1995, the maintainer of 4.4BSD curses declared that he considered 4.4BSD curses obsolete, and encouraged the keepers of unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.

Since 1995, ncurses has been ported to many systems:

The distribution includes the library and support utilities, including

Full manual pages are provided for the library and tools.

The ncurses distribution is available at ncurses' homepage:

https://invisible-island.net/archives/ncurses/ or
https://invisible-mirror.net/archives/ncurses/ .

It is also available at the GNU distribution site

https://ftp.gnu.org/gnu/ncurses/ .

Release Notes

These notes are for ncurses 6.6, released December 30, 2025.

This release is designed to be source-compatible with ncurses 5.0 through 6.5; providing extensions to the application binary interface (ABI). Although the source can still be configured to support the ncurses 5 ABI, the reason for the release is to reflect improvements to the ncurses 6 ABI and the supporting utility programs.

There are numerous other improvements listed in this announcement.

The most important bug-fixes/improvements dealt with robustness issues. The release notes also mention some other bug-fixes, but are focused on new features and improvements to existing features since ncurses 6.5 release.

Library improvements

Terminal driver improvements

This release focuses on improvements to the MinGW/Windows terminal driver. The terminal driver for MinGW32 was introduced in 2009. A new version of the terminal driver to support Windows Terminal was begun in 2020. However, there were some differences:

These improvements have been made to the terminal driver:

Other improvements

These are improvements to existing features:

These are corrections to existing features:

Program improvements

Utilities

Several improvements were made to the utility programs.

infocmp
tic
tput

Examples

Along with the library and utilities, improvements were made to the ncurses-examples:

There is one new demo/test program:

ncurses/report_ctype.c

Shows a chart of the first 256 character codes, which are not as consistent across platforms for ctype versus wctype as some suppose.

Terminal database

There are several new terminal descriptions:

along with building blocks

There are many changes to existing terminal descriptions. Some were updates to several descriptions, using the infocmp-u” option in a script to determine which building-block entries could be used to replace multiple capability settings (and trim redundant information).

Other changes include:

Documentation

As usual, this release

In addition to providing background information to explain these features and show how they evolved, there are corrections, clarifications, etc.:

There are no new manual pages (all of the manual page updates are to existing pages).

Interesting bug-fixes

Configuration changes

Major changes

Improvements made to configure checks include

Configuration options

There are a few new configure options:

--enable-install-prefix

Modify behavior of $DESTDIR to merge or replace the value set by --prefix.

--enable-named-pipes

The Windows driver uses named pipes for communicating with a pseudo console, allowing it to use escape sequences rather than Console API. This works well with mintty. On the downside, this feature may not work well with the Windows Terminal due to a longstanding bug in conhost.exe (#9461).

These configure options are modified:

--enable-exp-win32

This option is obsolete, replaced by --enable-named-pipes.

--enable-term-driver

This is enabled by default on platforms where the Windows driver can be compiled, e.g., Cygwin, MinGW32 and MSYS2.

Package configuration scripts

The configure script and makefiles optionally generate a script which reports the compiler and linker options needed to build a program with ncurses, as well as a data file which is used via pkg-config for the same purpose. Several improvements were made for these scripts:

Portability

Many of the portability changes are implemented via the configure script:

Other portability fixes include:


Features of ncurses

The ncurses package is fully upward-compatible with SVr4 (System V Release 4) curses:

The ncurses package also has many useful extensions over SVr4: