]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ANNOUNCE
ncurses 6.1 - patch 20191123
[ncurses.git] / ANNOUNCE
index 7b5f4efa69ae44ea29f14dc42e07bdc41dd5ca87..8bda60e2f074cc2ab7ca9afa82649525f969f0c5 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
+                            Announcing ncurses 6.1
 
-                            Announcing ncurses 5.2
+Overview
 
-   The ncurses (new curses) library is a free software emulation of
-   curses in System V Release 4.0, 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 SYSV-curses
-   enhancements over BSD curses.
+   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 is encouraging the keepers of
-   Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
-   ncurses.
+   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.
 
-   The ncurses code was developed under GNU/Linux. It should port easily
-   to any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2
-   Warp!
+   Since 1995, ncurses has been ported to many systems:
+     * It is used in almost every system based on the Linux kernel (aside
+       from some embedded applications).
+     * It  is  used  as the system curses library on OpenBSD, FreeBSD and
+       OSX.
+     * It  is used in environments such as Cygwin and MinGW. The first of
+       these was EMX on OS/2 Warp.
+     * It is used (though usually not as the system curses) on all of the
+       vendor  unix  systems,  e.g.,  AIX,  HP-UX,  IRIX64, SCO, Solaris,
+       Tru64.
+     * It should work readily on any ANSI/POSIX-conforming unix.
 
    The distribution includes the library and support utilities, including
-   a terminfo compiler tic(1), a decompiler infocmp(1), clear(1),
-   tput(1), tset(1), and a termcap conversion tool captoinfo(1). Full
-   manual pages are provided for the library and tools.
-
-   The ncurses distribution is available via anonymous FTP at the GNU
-   distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses.
-   It is also available at [2]ftp://dickey.his.com/ncurses.
-
-                                 Release Notes
-
-   This release is designed to be upward compatible from ncurses 5.0 and
-   5.1; very few applications will require recompilation, depending on
-   the platform. These are the highlights from the change-log since
-   ncurses 5.1 release.
-
-   Interface changes:
-     * change type of ospeed variable back to short to match its use in
-       legacy applications. It was altered after ncurses 4.2 to speed_t
-       to repair a type mismatch which was introduced after 1.9.4 in
-       1995. The principal users of termcap continued to use short, which
-       is not the same size.
-       NOTE: A few applications will have to be recompiled (about 1% of
-       the programs in a typical Linux distribution, 10% of the programs
-       that use ncurses). These are easy to identify with nm or strings.
-     * remove a private function _nc_can_clear_with(), which was built
-       with the configure --enable-expanded option but not used.
-     * add several private functions (prefixed with "_nc_") for tracing
-       chtype values in the debug library, and for better access and
-       buffer limit checking.
-
-   New features and improvements:
-     * rewrote tgoto() to make it better support existing termcap
-       applications which use hardcoded strings rather than obtain all of
-       their information from the termcap file. If the string does not
-       appear to be a terminfo string (i.e., does not refer to a "%p"
-       parameter, or terminfo-style padding), and termcap support is
-       configured, tgoto() will interpret it as termcap. Otherwise, as
-       before, it will use tparm().
-     * to ensure that the tgoto() changes work properly, added checks to
-       tic which report capabilities that do not reference the expected
-       number of parameters.
-     * new configure script options:
-          + option --disable-root-environ adds runtime checks which tell
-            ncurses to disregard $TERMINFO and similar environment
-            variables if the current user is root, or running
-            setuid/setgid.
-          + option --disable-assumed-color allows you to use the pre-5.1
-            convention of default colors used for color-pair 0 to be
-            configured (see assume_default_colors()).
-          + implement configure script options that transform installed
-            program names, e.g., --program-prefix, including the manpage
-            names and cross references.
-          + option --with-database allows you to specify a different
-            terminfo source-file to install. On OS/2 EMX, the default is
-            misc/emx.src, otherwise misc/terminfo.src
-          + option --with-default-terminfo-dir allows you to specify the
-            default terminfo database directory.
-          + option --with-libtool allows you to build with libtool.
-            NOTE: libtool uses a different notation for numbering shared
-            library versions from the existing ncurses configuration.
-          + option --with-manpage-tbl causes the manpages to be
-            preprocessed by tbl(1) prior to installation,
-          + option --without-curses-h causes the installation process to
-            install curses.h as ncurses.h and make appropriate changes to
-            headers and manpages.
-     * modified configure script options:
-          + change symbol used by the --install-prefix configure option
-            from INSTALL_PREFIX to DESTDIR (the latter has become common
-            usage although the name is misleading).
-          + modify ld -rpath options (e.g., Linux, and Solaris) to use an
-            absolute pathname for the build tree's lib directory,
-            avoiding confusion with directories relative to the current
-            one with the installed programs.
-          + modified misc/run_tic.in to use tic -o, to eliminate
-            dependency on $TERMINFO variable for installs.
-     * terminfo database:
-          + updated xterm terminfo entries to match XFree86 xterm patch
-            #146.
-          + added amiga-vnc, Matrix Orbital, and QNX qansi to
-            misc/terminfo.src.
-          + added os2 entry to misc/emx.src.
-          + add S0 and E0 extensions to screen's terminfo entry since
-            otherwise the FreeBSD port makes it pass termcap equivalents
-            to tgoto, which would be misinterpreted by older versions of
-            ncurses.
-     * improvements to program usability:
-          + modify programs to use curses_version() string to report the
-            version of ncurses with which they are compiled rather than
-            the NCURSES_VERSION string. The function returns the patch
-            level in addition to the major and minor version numbers.
-          + modify tput program so it can be renamed or invoked via a
-            link as 'reset' or 'init', producing the same effect as
-            tput reset or tput init.
-          + add error checking to infocmp's -v and -m options to ensure
-            that the option value is indeed a number.
-     * improved performance:
-          + replace a lookup table in lib_vidattr.c used to decode
-            no_color_video with a logic expression which is faster.
-
-   Major bug fixes:
-     * correct manlinks.sed script introduced in ncurses 5.1 to avoid
-       using ERE "\+", which is not understood by standard versions of
-       sed. This happens to work with GNU sed, but is not portable, and
-       was the initial motivation for this release.
-     * remove "hpux10.*" case from CF_SHARED_OPTS configure script macro.
-       This differed from the "hpux*" case by using reversed symbolic
-       links, which made the 5.1 version not match the configuration of
-       5.0 shared libraries.
-     * guard against corrupt terminfo data:
-          + modify tparm() to disallow arithmetic on strings, analyze the
-            varargs list to read strings as strings and numbers as
-            numbers.
-          + modify tparm()'s internal function spop() to treat a null
-            pointer as an empty string.
-          + modify parse_format() in lib_tparm.c to ignore precision if
-            it is longer than 10000.
-          + rewrote limit checks in lib_mvcur.c using new functions
-            _nc_safe_strcat(), etc. Made other related changes to check
-            lengths used for strcat() and strcpy().
-     * corrections to screen optimization:
-          + added special case in lib_vidattr.c to reset underline and
-            standout for devices that have no sgr0 defined.
-          + change handling of non_dest_scroll_region in tty_update.c to
-            clear text after it is shifted in rather than before shifting
-            out. Also correct row computation.
-          + modify rs2 capability in xterm-r6 and similar entries where
-            cursor save/restore bracketed the sequence for resetting
-            video attributes. The cursor restore would undo that.
-     * UTF-8 support:
-          + when checking LC_ALL, LC_CTYPE, and LANG environment
-            variables for UTF-8 locale, ignore those which are set to an
-            empty value, as per SUSV2.
-          + encode 0xFFFD in UTF-8 with 3 bytes, not 2.
-          + modify _nc_utf8_outch() to avoid sign-extension when checking
-            for out-of-range value.
-     * other library fixes:
-          + added checks for an empty $HOME environment variable, to
-            avoid retrieving terminfo descriptions from ./.terminfo .
-          + change functions _nc_parse_entry() and postprocess_termcap()
-            to avoid using strtok(), because it is non-reentrant.
-          + initialize fds[] array to 0's in _nc_timed_wait(); apparently
-            poll() only sets the revents members of that array when there
-            is activity corresponding to the related file.
-          + add a check for null pointer in Make_Enum_Type().
-          + fix a heap problem with the c++ binding.
-          + correct missing includes for <string.h> in several places,
-            including the C++ binding. This is not noted by gcc unless we
-            use the -fno-builtin option.
-     * several fixes for tic:
-          + add a check for empty buffers returned by fgets() in
-            comp_scan.c next_char() function, in case tic is run on a
-            non-text file (fixes a core dump).
-          + modify tic to verify that its inputs are really files, in
-            case someone tries to read a directory (or /dev/zero).
-          + correct an uninitialized parameter to open_tempfile() in
-            tic.c which made "tic -I" give an ambiguous error message
-            about tmpnam.
-          + correct logic in adjust_cancels(), which did not check both
-            alternatives when reclassifying an extended name between
-            boolean, number and string, causing an infinite loop in tic.
-     * using new checks in tic for parameter counts in capability
-       strings, found/fixed several errors both in the terminfo database
-       and in the include/Caps file.
-          + modified several terminfo capability strings, including the
-            definitions for setaf, setab, in include/Caps to indicate
-            that the entries are parameterized. This information is used
-            to tell which strings are translated when converting to
-            termcap. This fixes a problem where the generated termcap
-            would contain a spurious "%p1" for the terminfo "%p1%d".
-          + correct parameter counts in include/Caps for dclk as well as
-            some printer-specific capabilities: csnm, defc, scs, scsd,
-            smgtp, smglp.
-     * various fixes for install scripts used to support configure
-       --srcdir and --with-install-prefix.
-     * correct several mismatches between manpage filename and ".TH"
-       directives, renaming dft_fgbg.3x to default_colors.3x and
-       menu_attribs.3x to menu_attributes.3x.
-
-   Portability:
-     * configure script:
-          + newer config.guess, config.sub, including changes to support
-            OS/2 EMX. The configure script for OS/2 EMX still relies on a
-            patch since there is no (working) support for that platform
-            in the main autoconf distribution.
-          + make configure script checks on variables $GCC and $GXX
-            consistently compare against 'yes' rather than test if they
-            are nonnull, since either may be set to the corresponding
-            name of the C or C++ compiler.
-          + change configure script to use AC_CANONICAL_SYSTEM rather
-            than AC_CANONICAL_HOST, which means that configure --target
-            will set a default program-prefix.
-          + modify the check for big-core to force a couple of memory
-            accesses, which may work as needed for older/less-capable
-            machines (if not, there's still the explicit configure
-            option).
-          + modify configure test for tcgetattr() to allow for old
-            implementations, e.g., on BeOS, which only defined it as a
-            macro.
-          + add configure check for filesystems (such as OS/2 EMX) which
-            do not distinguish between upper/lowercase filenames, use
-            this to fix tags rules in makefiles.
-          + add MKncurses_def.sh to generate fallback definitions for
-            ncurses_cfg.h, to quiet gcc -Wundef warnings, modified
-            ifdef's in code to consistently use "#if" rather than
-            "#ifdef".
-          + change most remaining unquoted parameters of test in
-            configure script to use quotes, for instance fixing a problem
-            in the --disable-database option.
-          + modify scripts so that "make install.data" works on OS/2 EMX.
-          + modify scripts and makefiles so the Ada95 directory builds on
-            OS/2 EMX.
-     * library:
-          + replaced case-statement in _nc_tracebits() for CSIZE with a
-            table to simplify working around implementations that define
-            random combinations of the related macros to zero.
-          + improved OS/2 mouse support by retrying as a 2-button mouse
-            if code fails to set up a 3-button mouse.
-          + added private entrypoint _nc_basename(), used to consolidate
-            related code in progs, as well as accommodating OS/2 EMX
-            pathnames.
-          + alter definition of NCURSES_CONST to make it non-empty.
-          + redefine 'TEXT' in menu.h for AMIGA, since it is reported to
-            have an (unspecified) symbol conflict.
-     * programs:
-          + modified progs/tset.c and tack/sysdep.c to build with sgttyb
-            interface if neither termio or termios is available. Tested
-            this with FreeBSD 2.1.5 (which does have termios - but the
-            sgttyb does work).
-
-                              Features of Ncurses
-
-   The ncurses package is fully compatible with SVr4 (System V Release 4)
-   curses:
-     * All 257 of the SVr4 calls have been implemented (and are
-       documented).
-     * Full support for SVr4 curses features including keyboard mapping,
-       color, forms-drawing with ACS characters, and automatic
-       recognition of keypad and function keys.
-     * An emulation of the SVr4 panels library, supporting a stack of
-       windows with backing store, is included.
-     * An emulation of the SVr4 menus library, supporting a uniform but
-       flexible interface for menu programming, is included.
-     * An emulation of the SVr4 form library, supporting data collection
-       through on-screen forms, is included.
-     * Binary terminfo entries generated by the ncurses tic(1)
-       implementation are bit-for-bit-compatible with the entry format
-       SVr4 curses uses.
-     * The utilities have options to allow you to filter terminfo entries
-       for use with less capable curses/terminfo versions such as the
-       HP/UX and AIX ports.
+     * [1]captoinfo, a termcap conversion tool
+     * [2]clear, utility for clearing the screen
+     * [3]infocmp, the terminfo decompiler
+     * [4]tabs, set tabs on a terminal
+     * [5]tic, the terminfo compiler
+     * [6]toe, list (table of) terminfo entries
+     * [7]tput,  utility  for  retrieving  terminal capabilities in shell
+       scripts
+     * [8]tset, to initialize the terminal
+
+   Full manual pages are provided for the library and tools.
+
+   The ncurses distribution is available at ncurses' [9]homepage:
+
+     [10]ftp://ftp.invisible-island.net/ncurses/ or
+     [11]https://invisible-mirror.net/archives/ncurses/ .
+
+   It is also available via anonymous FTP at the GNU distribution site
+
+     [12]ftp://ftp.gnu.org/gnu/ncurses/ .
+
+Release Notes
+
+   These notes are for ncurses 6.1, released January 27, 2018.
+
+   This  release  is  designed  to  be source-compatible with ncurses 5.0
+   through  6.0; providing extensions to the application binary interface
+   (ABI).  Although  the  source  can  still be configured to support the
+   ncurses  5  ABI, the intent of the release is to provide extensions to
+   the ncurses 6 ABI:
+     * improve integration of tput and tset
+     * provide support for extended numeric capabilities.
+
+   There  are,  of  course,  numerous  other improvements, listed in this
+   announcement.
+
+   The  release notes also mention some bug-fixes, but are focused on new
+   features  and  improvements  to  existing  features  since ncurses 6.0
+   release.
+
+  Library improvements
+
+    New features
+
+   The  improved  integration of tput and tset made only small changes to
+   the  libraries.  However,  supporting  extended  numeric  capabilities
+   required a few changes:
+     * The  TERMINAL  structure  in  <term.h>  is  now opaque. Doing that
+       allowed  making the structure larger, to hold the extended numeric
+       data.
+       A   few   applications  required  changes  during  development  of
+       ncurses 6.1 because those applications misused the members of that
+       structure,   e.g.,   directly   modifying  it  rather  than  using
+       [13]def_prog_mode.
+     * Having  made  TERMINAL  opaque  (and  because  none of the library
+       functions  use  anything  except  a  pointer  to TERMINAL), it was
+       possible to increase the size of the structure, adding to the end.
+       Existing   applications  which  were  linked  to  the  ncurses 6.0
+       high-level   (ncurses,  ncursesw)  and  low-level  (tinfo,  tinfo)
+       libraries should not require re-linking since the binary interface
+       did  not  change,  nor  did  the  structure  offsets with TERMINAL
+       change.
+       A  few  applications use the inner TERMTYPE structure's offsets to
+       refer to terminfo capabilities within that structure. Again, those
+       do  not require modification because their offsets within TERMINAL
+       did not change.
+     * When configured for wide-characters, i.e., "ncursesw" the TERMINAL
+       structure is extended.
+       The  new  data in TERMINAL holds the same information as TERMTYPE,
+       but  with  larger  numbers  ("int"  versus  "short").  It is named
+       TERMTYPE2.
+       The  library  uses  this  structure  internally  in  preference to
+       TERMTYPE,   referring  to  TERMTYPE  only  to  initialize  it  for
+       applications that use the capabilities defined in <term.h>
+     * When  configured  for  8-bit  (narrow)  characters,  the TERMTYPE2
+       structure is not used.
+     * The updated application binary interface is 6.1.20171230 (used for
+       new  [14]versioned  symbols),  although the interface changes were
+       developed several months previously.
+
+   The  motivation  for  making  this  extension  came from noticing that
+   [15]termcap  applications  could  (though  not  [16]realistically) use
+   larger numbers than would fit in 16-bits, and the fact that the number
+   of  color  pairs  for  a  256-color  xterm  could  not be expressed in
+   terminfo  (i.e.,  32767  versus  65536). Also, a few terminals support
+   direct-colors, which could use the extension.
+
+   Generally  speaking,  applications  that  use  internal  details  of a
+   library  are unsupported. There was exactly one exception for ncurses:
+   the  tack  program  used  the internal details of TERMINAL, because it
+   provides  an  ncurses-specific  feature  for interactively modifying a
+   terminfo   description  and  writing  the  updated  description  to  a
+   text-file.  It  was  possible  to  not  only  separate tack from these
+   [17]internal  details  of  ncurses,  but  to generalize it so that the
+   program   works   with  Unix  curses  (omitting  the  ncurses-specific
+   feature). That was released as [18]tack 1.08 in July 2017.
+
+   While  making changes to tack to eliminate its dependency upon ncurses
+   internals,  the  publicly-visible  details  of  those  internals  were
+   reviewed,  and  some symbols were moved to private header files, while
+   others were marked explicitly as ncurses internals. Future releases of
+   ncurses  may  eliminate  some  of those symbols (such as those used by
+   tack 1.07) because they are neither part of the API or the ABI.
+
+   Using  the  TERMTYPE2 extended numeric capabilities, it is possible to
+   support  both  color  pair  values and color values past 32767. Taking
+   compatibility into account, developers readily understand that neither
+   function  signatures  nor  structure  offsets  change.  Also, existing
+   functions have to operate with the extended numbers. Most of that work
+   is  internal  to  the  library.  For the external interfaces, a hybrid
+   approach was used:
+     * X/Open  Curses  defined function prototypes such as wattr_set with
+       an  unused parameter, for "future" use. After 25 years, the future
+       is  here:  ncurses uses the parameter to augment color pair values
+       as described in the [19]manual page.
+     * Other  functions such as those defining color pairs did not have a
+       corresponding  reserved  parameter.  For  those,  ncurses  defines
+       extended  versions  such as init_extended_pair (versus init_pair),
+       init_extended_color (versus init_color).
+
+   Additionally,  to  improve  performance other changes (and extensions)
+   are provided in this release:
+     * Several  new  functions simplify management of large sets of color
+       pairs: reset_color_pairs, alloc_pair, find_pair and free_pair.
+     * New "RGB" extension capability for direct-color support is used to
+       improve performance of color_content.
+     * The  internal colorpair_t is now a struct, eliminating an internal
+       8-bit limit on colors
+     * Allocation  for  SCREEN's  color-pair table starts small, grows on
+       demand up to the limit given in the terminal description.
+     * setcchar and getcchar now treat a negative color-pair as an error.
+
+    Other improvements
+
+   These are new or revised features:
+     * modify  c++/etip.h.in  to  accommodate  deprecation  of  throw and
+       throws in c++17
+     * add new function unfocus_current_field
+     * add option to preserve leading whitespace in form fields
+     * add  a  macro  for is_linetouched and adjust the function's return
+       value  to  make  it possible for most applications to check for an
+       error-return.
+     * add  build-time  utility  report_offsets  to  help  show  when the
+       various configurations of tinfo library are compatible or not.
+
+   These were done to limit or ultimately deprecate features:
+     * drop  two  symbols  obsoleted  in  2004:  _nc_check_termtype,  and
+       _nc_resolve_uses
+     * move  _nc_tracebits,  _tracedump and _tracemouse to curses.priv.h,
+       since they are not part of the suggested ABI6.
+     * mark  some  structs  in  form/menu/panel  libraries as potentially
+       opaque without modifying API/ABI.
+     * ifdef'd     header-file    definition    of    mouse_trafo    with
+       NCURSES_NOMACROS
+     * remove  initialization-check  for calling napms in the term-driver
+       configuration; none is needed.
+     * modify trace to avoid overwriting existing file
+
+   These are improvements to existing features:
+     * modify   make_hash   to  allow  building  with  address-sanitizer,
+       assuming that --disable-leaks is configured.
+     * move  SCREEN field for use_tioctl data before the ncursesw fields,
+       and  limit  that  to the sp-funcs configuration to improve termlib
+       compatibility
+     * modify db-iterator:
+          + ignore zero-length files in db-iterator; these are useful for
+            instance to suppress $HOME/.terminfo when not wanted.
+          + modify  update_getenv  to  ensure  that environment variables
+            which  are  not  initially  set  will  be checked later if an
+            application happens to set them
+     * modify  _nc_outc_wrapper  to use the standard output if the screen
+       was not initialized, rather than returning an error.
+     * improve  checks for low-level terminfo functions when the terminal
+       has not been initialized.
+     * modify set_curterm to update ttytype[] data used by longname/p>
+     * modify  _nc_get_screensize  to  allow  for  use_env and use_tioctl
+       state  to  be  per-screen  when  sp-funcs  are  configured, better
+       matching the behavior when using the term-driver configuration.
+     * remove an early-return from _nc_do_color, which can interfere with
+       data  needed  by  bkgd  when  ncurses  is configured with extended
+       colors
+     * incorporate A_COLOR mask into COLOR_PAIR, in case user application
+       provides an out-of-range pair number
+     * modify  logic for endwin-state to be able to detect the case where
+       the screen was never initialized, using that to trigger a flush of
+       ncurses'  buffer for mvcur, e.g., in the sample program dots_mvcur
+       for the term-driver configuration.
+
+   These are corrections to existing features:
+     * fixes for writing extended color pairs in putwin.
+     * modify no-leaks code for lib_cur_term.c to account for the tgetent
+       cache.
+     * amend handling of the repeat_char capability in EmitRange to avoid
+       scope  creep:  translate  the character to the alternate character
+       set  when  the  alternate character set is enabled, and do not use
+       repeat_char for characters past 255.
+     * improve    wide-character    implementation    of   myADDNSTR   in
+       frm_driver.c,    which    was   inconsistent   with   the   normal
+       implementation.
+     * modify winnstr and winchnstr to return error if the output pointer
+       is  null,  as  well  as  adding a null pointer check of the window
+       pointer for better compatibility with other implementations.
+     * modify  setupterm  to  save  original  tty-modes so that erasechar
+       works  as expected. Also modify _nc_setupscreen to avoid redundant
+       calls to get original tty-modes.
+     * modify  wattr_set  and wattr_get to return ERR if win-parameter is
+       null, as documented.
+     * correct   order  of  initialization  for  traces  in  use_env  and
+       use_tioctl versus first _tracef calls.
+     * correct parameters for copywin call in _nc_Synchronize_Attributes
+     * flush  the  standard  output in _nc_flush for the case where SP is
+       zero,  e.g.,  when  called  via  putp. This fixes a scenario where
+       "tput flash" did not work after changes in 20130112.
+     * amend  internal  use  of  tputs  to consistently use the number of
+       lines  affected,  e.g.,  for  insert/delete  character operations.
+       While  merging terminfo source early in 1995, several descriptions
+       used  the "*" proportional delay for these operations, prompting a
+       change in doupdate.
+     * correct return-value of extended putwin.
+     * double-width  multibyte  characters  were  not counted properly in
+       winsnstr and wins_nwstr.
+     * amend  fix  for  _nc_ripoffline from 20091031 to make test/ditto.c
+       work in threaded configuration.
+     * modify _nc_viscbuf2 and _tracecchar_t2 to trace wide-characters as
+       a whole rather than their multibyte equivalents.
+     * minor  fix  in  wadd_wchnstr  to ensure that each cell has nonzero
+       width.
+     * move PUTC_INIT calls next to wcrtomb calls, to avoid carry-over of
+       error status when processing Unicode values which are not mapped.
+     * add missing assignment in lib_getch.c to make notimeout work
+
+  Program improvements
+
+   While reviewing user feedback, it became apparent that the differences
+   between [20]reset (an alias for tset) and "tput reset" were confusing:
+     * one  ([21]tset)  updated the terminal modes, but used only part of
+       the terminfo capabilities for initialization, while
+     * the  other  ([22]tput) used all of the terminal capabilities while
+       neglecting the terminal modes.
+
+   On  further  investigation,  it  turned  out that the differences were
+   largely an accident due to the way those programs had evolved.
+
+   This  release  eliminates  the unnecessary differences, using the same
+   approach  for tput's init (initialization), reset and clear operations
+   as  the separate [23]reset and [24]clear programs. Doing this does not
+   change the command-line options; existing scripts are unaffected.
+
+   These  are the user-visible changes for the three programs (tput, tset
+   and clear):
+     * add  the  terminal-mode  parts  of "reset" (aka tset) to the "tput
+       reset"  command,  making  the  two  almost  the  same  except  for
+       window-size.
+     * improve  tput's  check  for  being  called as "init" or "reset" to
+       allow for transformed names.
+     * add "clear" as a possible link/alias to tput.
+     * amend changes for tput to reset tty modes to "sane" if the program
+       is  run  as  "reset",  like tset. Likewise, ensure that tset sends
+       either reset- or init-strings.
+     * add -x option to clear/tput to make the E3 extension optional
+     * add functionality of "tset -w" to tput, like the "-c" feature this
+       is not optional in tput.
+     * add  options  -T  and  -V  to clear command for compatibility with
+       tput.
+     * drop long-obsolete "-n" option from tset.
+     * modify tset's assignment to TERM in its output to reflect the name
+       by  which  the  terminal  description  is  found,  rather than the
+       primary  name.  That  was  an  unnecessary  part  from the initial
+       conversion  of  tset from termcap to terminfo. The termcap library
+       in 4.3BSD did this to avoid using the short 2-character name
+     * remove  a  restriction  in  tput's support for termcap names which
+       omitted capabilities normally not shown in termcap translations
+     * add usage message to clear command
+     * improve usage messages for tset and tput.
+
+   Other user-visible improvements and new features include:
+     * modify  tic/infocmp  display  of numeric values to use hexadecimal
+       when  they  are  "close" to a power of two, making the result more
+       readable.
+     * add "-W" option to tic/infocmp to force long strings to wrap.
+          + This  is in addition to the "-w" option which attempts to fit
+            capabilities into a given line-length.
+          + If  "-f"  option  splits  line,  do not further split it with
+            "-W".
+          + Begin a new line when adding "use=" after a wrapped line.
+     * add  "-q"  option  to infocmp to suppress the "Reconstructed from"
+       comment  from  the  header,  and  a corresponding option to tic to
+       suppress all comments from the "tic -I" output.
+     * Sorted options in usage message for infocmp, to make it simpler to
+       see unused letters.
+     * Updated usage message for tic, adding "-0" option.
+     * add infocmp/tic "-Q" option, which allows one to dump the compiled
+       form of the terminal entry, in hexadecimal or base64:
+          + A  "b64:"  prefix in the TERMINFO variable tells the terminfo
+            reader  to  use  base64  according  to  RFC-3548  as  well as
+            RFC-4648 url/filename-safe format.
+          + A   "hex:"   prefix  tells  the  terminfo  reader  to  accept
+            hexadecimal data as generated by "infocmp -0qQ1".
+
+   Other less-visible improvements and new features include:
+     * modify  utility headers such as tic.h to make it clearer which are
+       externals that are used by tack.
+     * add  "reset"  to  list  of  programs  whose  names might change in
+       manpages due to program-transformation configure options.
+     * modify  "-T" option of clear and tput to call use_tioctl to obtain
+       the operating system's notion of the screensize if possible.
+     * add  check  in  tput for init/reset operands to ensure those use a
+       terminal.
+     * modify  programs clear, tabs, tput and tset to pass the actual tty
+       file  descriptor  to  setupterm rather than the standard output or
+       error, making padding work.
+     * change  tset's initialization to allow it to get settings from the
+       standard  input  as  well  as  /dev/tty, to be more effective when
+       output or error are redirected.
+     * amend  check  in  tput,  tabs  and clear to allow those to use the
+       database-only  features  in cron if a "-T" option gives a suitable
+       terminal name.
+     * improve  error message from tset/reset when both stderr/stdout are
+       redirected to a file or pipe.
+
+   Several  of  the  less  apparent  features  deal  with  translation of
+   terminfo  to  termcap  (and the reverse), with corresponding checks by
+   tic:
+     * modify check in fmt_entry to handle a cancelled reset string. Make
+       similar fixes in other parts of dump_entry.c and tput.c
+     * correct  read of terminfo entry in which all strings are absent or
+       explicitly  cancelled.  Before  this  fix, the result was that all
+       were treated as only absent.
+     * modify   infocmp   to   suppress   mixture   of   absent/cancelled
+       capabilities that would only show as "NULL, NULL", unless the "-q"
+       option is used, e.g., to show "-, @" or "@, -".
+     * correct  a warning from tic about keys which are the same, to skip
+       over missing/cancelled values.
+     * add  check  in  tic for use of bold, etc., video attributes in the
+       color  capabilities,  accounting  whether the feature is listed in
+       ncv.
+     * add  check  in  tic for unnecessary use of "2" to denote a shifted
+       special key.
+     * improve  check  in tic for delays by also warning about beep/flash
+       when  a  delay  is not embedded, or if those use the VT100 reverse
+       video escape without using a delay.
+     * improve  checks  in trim_sgr0, comp_parse.c and parse_entry.c, for
+       cancelled string capabilities.
+     * add  check in tic for some syntax errors of delays, as well as use
+       of proportional delays for non-line capabilities.
+     * add  check  in  tic  for  conflict between ritm, rmso, rmul versus
+       sgr0.
+     * add  check  in _nc_parse_entry for invalid entry name, setting the
+       name to "invalid" to avoid problems storing entries.
+     * improve _nc_tparm_analyze, using that to extend the checks made by
+       tic  for  reporting inconsistencies between the expected number of
+       parameters for a capability and the actual.
+     * remove  tic  warning  about "^?" in string capabilities, which was
+       marked  as  an extension; however all Unix implementations support
+       this  and  X/Open  Curses  does not address it. On the other hand,
+       [25]BSD   termcap   did   not  support  this  feature  (until  the
+       [26]mid-1990s).
+       in  _nc_infotocap,  added  a check to ensure that terminfo "^?" is
+       not written to termcap.
+     * modify  sscanf calls in _nc_infotocap for patterns "%{number}%+%c"
+       and "%'char'%+%c" to check that the final character is really "c",
+       avoiding a case in icl6404 which cannot be converted to termcap.
+     * in  _nc_tic_expand and _nc_infotocap, improved string-length check
+       when  deciding  whether  to  use "^X" or "\xxx" format for control
+       characters, to make the output of tic/infocmp more predictable.
+     * limited  termcap  "%d" width to 2 digits on input, and use "%2" in
+       preference to "%02" on output.
+     * correct  terminfo/termcap  conversion of "%02" and "%03" into "%2"
+       and "%3"; the result repeated the last character.
+
+    Examples
+
+   Along  with  the library and utilities, many improvements were made to
+   the [27]ncurses-examples.
+
+   These changes were made to demonstrate new extensions in ncurses:
+     * add   demo_new_pair   program,   to   demonstrate  [28]alloc_pair,
+       [29]find_pair and [30]free_pair functions.
+       This  program  iterates  over  the  possible  color  combinations,
+       allocating  or  initializing color pairs. For best results, choose
+       screen-width dividing evenly into the number of colors. e.g.,
+
+     32x64,32x128   256 colors
+     24x44,24x88    88 colors
+     32x64,24x128   16 colors
+
+     * add  extended_color program, like the older color_set program, but
+       using   the   extended  color  functions,  with  and  without  the
+       SP-functions interface.
+     * add  picsmap  program  to  fill  in some testing issues not met by
+       dots,  using  this  as  the  third  example in a comparison of the
+       [31]ncurses versus slang libraries.
+       The   program  can  directly  read  X  bitmap  and  pixmap  files,
+       displaying  a  picture.  It  can  read  other  image  files  using
+       ImageMagick's convert program to translate the image into text.
+       For 16-, 88- and 256-color terminal descriptions, picsmap can load
+       a  palette file which tells it which color palette entries to use.
+       For direct-colors, the terminal descriptions use the RGB extension
+       capability.
+
+   There are other new example programs and a few scripts:
+     * add  dots_xcurses  program to illustrate a different approach used
+       for extended colors which can be contrasted with dots_curses.
+     * add  list_keys program show function keys for one or more terminal
+       descriptions.  It  uses  ncurses's  convention  of  modifiers  for
+       special keys, based on xterm.
+     * add  padview  program,  to compare pads with direct updates in the
+       view program.
+     * add sp_tinfo program to exercise the SP-functions extension of the
+       low-level terminfo library.
+     * add test-programs for termattrs and term_attrs functions.
+     * add  test_sgr  program  to  exercise  all  combinations of the sgr
+       capability.
+     * add   tput-colorcube   demo  script,  imitating  xterm's  88-  and
+       256-color scripts using tput.
+     * add  tput-initc  script  to  demonstrate  how  tput may be used to
+       initialize a color palette from a data file.
+
+   A  variety  of  improvements  were made to existing programs, both new
+   features  as  well  as  options added to make the set of programs more
+   consistent.
+
+   The  ncurses program is the largest; a proportionately large number of
+   changes were made to it:
+     * modify  a/A  screens to make exiting on an escape character depend
+       on  the start of keypad and timeout modes, to allow better testing
+       of function-keys.
+       add "t" toggle for notimeout function.
+     * modify layout of b/B screens to allow for additional annotation on
+       the  right  margin;  some  terminals  with partial support did not
+       display well.
+     * modify c/C screens to allow for extended color pairs.
+       add z/Z zoom feature to make extended color pairs easier to test.
+       modify  test-screens  to  take advantage of wide screens, reducing
+       the number of lines used for 88- and 256-colors.
+     * modify  "d"  edit-color  screen  to  optionally  read  xterm color
+       palette directly from terminal, as well as handling KEY_RESIZE and
+       screen-repainting with control/L and control/R.
+     * add examples to "F" screen for WACS_D_PLUS and WACS_T_PLUS.
+     * improve  "g"  screen,  correcting  ifdef which made the legend not
+       reflect  changes  to  keypad-  and  scroll-modes.  Added check for
+       return-value of putwin.
+     * make "s" test easier to understand which subtests are available
+       add a corresponding "S" wide-character overlap test-screen.
+     * add "v" screen to show baudrate and other values.
+
+   These changes were made to the other examples:
+     * modify  blue  program  to  use Unicode values for card-glyphs when
+       available, as well as improving the check for CP437 and CP850.
+     * improve   demo_menus   program,   allowing   mouse-click   on  the
+       menu-headers  to  switch  the  active  menu.  This  requires a new
+       extension option O_MOUSE_MENU to tell the menu driver to put mouse
+       events  which  do not apply to the active menu back into the queue
+       so that the application can handle the event.
+     * correct logic in demo_terminfo program for "-f" option
+     * modify  ditto program to allow $XTERM_PROG environment variable to
+       override "xterm" as the name of the program to run in the threaded
+       configuration.
+     * add several options to the "dots" test-programs.
+     * modify filter program:
+          + illustrate  an  alternative  to getnstr, that polls for input
+            while  updating  a  clock  on  the  right  margin  as well as
+            responding to window size-changes.
+          + adapt  logic  used in [32]dialog [33]"--keep-tite" option for
+            filter  program as the "-a" option. When set, filter attempts
+            to suppress the alternate screen.
+     * modify  knight  program  to  provide the "slow" solution for small
+       screens  using  "R", noting that Warnsdorf's method is easily done
+       with "a".
+     * modify  the  savescreen program to add test patterns that exercise
+       88-, 256-, etc., colors.
+     * add  options  to  test_arrays,  for selecting termcap vs terminfo,
+       etc.
+     * modify the view program:
+          + expand  tabs  using  the  ncurses  library rather than in the
+            test-program.
+          + eliminate the "-n" option by simply reading the whole file.
+          + implement page up/down commands.
+          + remove the very old SIGWINCH example; just use KEY_RESIZE.
+     * improve  animation  in  xmas  program  by  adding  a time-delay in
+       blinkit.
+     * modify  several  test-programs  which  call  use_default_colors to
+       consistently do this only if the "-d" option is given.
+     * modify the install-rule for ncurses-examples to put the data files
+       in the data directory, e.g., /usr/share/ncurses-examples.
+     * modify  several  test  programs  to  use  new popup_msgs function,
+       adapted from the help-screen used in the edit_field program.
+     * modify   test   data   for   xterm   palettes  to  use  the  newer
+       color4/color12 values.
+     * improve the tracemunch script:
+          + show screenXX pointers and thread identifiers as names.
+          + chang   address-parameters   of  add_wch,  color_content  and
+            pair_content to dummy parameters.
+
+  Terminal database
+
+   There are several new terminal descriptions:
+
+     dumb-emacs-ansi,  dvtm,  dvtm-256color,  fbterm,  iterm2,  linux-m1
+     minitel    entries,    putty-noapp,    viewdata,   and   vt100+4bsd
+     building-block.
+
+     xterm+noalt,   xterm+titlestack,   xterm+alt1049,   xterm+alt+title
+     building  blocks  and  xterm+direct,  xterm+indirect, xterm-direct.
+     from [34]xterm patch #331.
+
+     several  other "-direct" descriptions to address the differences of
+     other terminal emulators versus xterm-direct.
+
+   There  are  many  changes to existing terminal descriptions. Some were
+   updates to several descriptions:
+     * use  xterm+sm+1006  in  several  terminal  descriptions which were
+       validated  as  supporting  the  extended  mouse  feature for their
+       respective terminal emulators.
+     * corrected  sgr/sgr0 strings in a few cases reported by tic, making
+       those  correspond  to  the non-sgr settings where they differ, but
+       otherwise use ECMA-48 consistently.
+     * add  0.1sec  mandatory delay to flash capabilities using the VT100
+       reverse-video control
+
+   while  others  affected specific descriptions. These were retested, to
+   take into account new/undocumented changes by their developers:
+
+     iterm, minitel, st, viewdata, nsterm
+
+   while these are specific fixes based on user reports, or warnings from
+   tic:
+
+   [35]ansi building blocks
+
+          + restored  rmir/smir  in  ansi+idc  to  better  match original
+            ansiterm+idc, add alias ansiterm
+
+   [36]icl6402
+
+          + corrected missing comma-separator between string capabilities
+            in icl6402 and m2-nam
+
+   [37]interix
+
+          + updated using tack and SFU with Windows 7 Ultimate.
+          + used ^? for kdch1
+
+   [38]linux
+
+          + made linux3.0 entry the default linux entry
+          + modify  linux2.6  entry  to  improve line-drawing so that the
+            linux3.0 entry can be used in non-UTF-8 mode
+          + omitted  selection  of  ISO-8859-1 for G0 in enacs capability
+            from  linux2.6 entry, to avoid conflict with the user-defined
+            mapping. The reset feature uses ISO-8859-1 in any case.
+          + modify flash capability for linux and wyse entries to put the
+            delay between the reverse/normal escapes rather than after
+          + modify  linux-16color  to  not  mask dim, standout or reverse
+            with the ncv capability
+
+   [39]pccon entries
+
+          + fixed some inconsistencies in the pccon* entries
+          + add bold to pccon+sgr+acs and pccon-base
+          + add keys f12-f124 to pccon+keys
+
+   [40]tmux
+
+          + corrected  sgr  string,  which  used screen's "standout" code
+            rather than the standard code.
+          + add  settings  corresponding  to xterm-keys option to reflect
+            upcoming change to make that option "on" by default
+          + uncanceled Ms
+
+   [41]vt100
+
+          + modify  vt100  rs2  string  to  reset vt52 mode and scrolling
+            regions
+          + corrected rs2 string for vt100-nam
+          + made  minor  fixes  for  vt100+4bsd,  e.g.,  delay in sgr for
+            consistency
+
+   [42]vte
+
+          + moved SGR 24 and 27 from vte-2014 to vte-2012
+          + add a few capabilities fixed in recent VTE development
+
+   [43]xterm
+
+          + add rep to xterm-new, available since [44]late 1996.
+          + modify  xterm+256color  and  xterm+256setaf  to  use  correct
+            number of color pairs.
+          + modify    rs1    for    xterm-16color,    xterm-88color   and
+            xterm-256color  to  reset palette using oc string as in linux
+            entry.
+          + add rs1 capability to xterm-256color
+          + add  oc  capability to xterm+256color, allowing palette reset
+            for xterm
+          + add op to xterm+256setaf
+          + modify xterm-r5, xterm-r6 and xterm-xf86-v32 to use xterm+kbs
+            to match [45]xterm #272, reflecting packager's changes
+          + used  ANSI  reply for u8 in xterm-new, to reflect vt220-style
+            responses that could be returned.
+          + made xterm-pcolor sgr consistent with other capabilities
+
+   A few entries use extensions (user-defined terminal capabilities):
+     * add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic
+     * used RGB capability in new *-direct entries to denote direct-color
+       feature.
+
+  Documentation
+
+   As usual, this release
+     * improves documentation by describing new features,
+     * attempts  to  improve the description of features which users have
+       found confusing
+     * fills  in overlooked descriptions of features which were described
+       in the [46]NEWS file but treated sketchily in manual pages.
+
+   In particular,
+     * Since   the   underlying  features  for  [47]tset,  [48]tput,  and
+       [49]clear  have  been  better  integrated,  the  documentation now
+       includes information on how those tools evolved.
+       In  addition  to explaining the improved integration of the tools,
+       the  manual  pages made it easier to see how the tools are similar
+       and how they are different.
+     * The    addch   manual   page   has   additional   information   on
+       [50]portability and differences from other implementations.
+     * The  discussion  of  color-pairs  in the attributes manual page is
+       improved in its [51]history section.
+     * The  documentation  of the chtype, cchar_t types and the attribute
+       values  which  can  be  stored  in  those types, in particular the
+       [52]history  and [53]portability sections of the attributes manual
+       page, has been improved.
+     * improve discussion of [54]portability in the mouse manual.
+     * The   pad  manual  page  has  a  section  on  the  [55]origin  and
+       portability of pads.
+     * Differences between SVr4 and X/Open Curses soft-keys are discussed
+       in a new section on [56]portability.
+     * There   are   updated/improved   notes   on   portability  in  the
+       [57]resizeterm and [58]wresize manual pages.
+
+   In  addition  to  providing  background  information  to explain these
+   features   and   show   how   they  evolved,  there  are  corrections,
+   clarifications, etc.:
+     * add  note  in  the  [59]addch  manual  about  line-drawing when it
+       depends upon UTF-8.
+     * improve  discussion  of line-drawing characters in the [60]add_wch
+       manual.
+     * explain  in [61]clear's manual page that it writes to the standard
+       output.
+     * improve description of [62]endwin.
+     * improve  discussion  of  field  validation  in the [63]form driver
+       manual page.
+     * clarify the use of wint_t vs wchar_t in [64]get_wstr manual page.
+     * clarify  in  the  [65]getch manual that the keypad mode affects an
+       application's ability to read KEY_MOUSE codes, but does not affect
+       KEY_RESIZE.
+       trim  some  obsolete/incorrect  wording about EINTR from the getch
+       manual page
+       improve  manual  pages  for [66]getch and [67]get_wch to point out
+       that   they   might  return  user-defined  values  which  have  no
+       predefined names in <curses.h>
+     * improve  description  of  the  -R option in the [68]infocmp manual
+       page
+     * clarify in the [69]resizeterm manual page how KEY_RESIZE is pushed
+       onto the input stream.
+     * document return value of [70]use_extended_names
+     * document  differences  in [71]ESCDELAY versus AIX's implementation
+       in the variables manual page.
+     * The   _nc_free_tinfo   function   is   now   documented   in   the
+       [72]memory-leaks manual page, because it could be used in tack for
+       memory-leak checking.
+     * add a note to the [73]tic manual page about -W versus -f options.
+     * improve terminfo manual description of [74]terminfo syntax.
+       improve  terminfo  manual  page  discussion  of  [75]control-  and
+       graphics- characters.
+       improve [76]color-handling section in terminfo manual page
+     * clarify  description in [77]tput manual page regarding support for
+       termcap names
+       update  [78]tput  manual  page  to  reflect  changes to manipulate
+       terminal modes by sharing functions with tset.
+     * clarify  in manual pages that the optional verbose option level of
+       [79]tic   and  [80]infocmp  is  available  only  when  ncurses  is
+       configured for tracing.
+     * improve   manual   page   description   of  [81]tset/reset  versus
+       window-size.
+     * improve description of [82]tgoto parameters
+
+   There are new manual pages:
+     * [83]user_caps documents the terminfo extensions used by ncurses.
+     * [84]scr_dump documents the screen-dump format.
+
+   Some  of  the  improvements  are  more subtle, relating to the way the
+   information is presented:
+     * Made minor fixes to manpage NAME/SYNOPSIS sections to consistently
+       use  rule  that  either  all  functions  which  are  prototyped in
+       SYNOPSIS  are  listed in the NAME section, or the manual-page name
+       is the sole item listed in the NAME section. The latter is used to
+       reduce  clutter,  e.g.,  for the top-level library manual pages as
+       well  as  for  certain  feature-pages  such  as  [85]SP-funcs  and
+       [86]threading.
+     * improve  manual  pages  for utilities with respect to POSIX versus
+       X/Open Curses.
+     * improve  organization  of  the [87]attributes and [88]color manual
+       pages.
+
+  Interesting bug-fixes
+
+     * modify  toe  to not exit if unable to read a terminal description,
+       e.g., if there is a permission problem.
+     * correct 20100515 change for weak signals versus sigprocmask
+     * work  around  Ada  tool-breakage in Debian 9 and later by invoking
+       gprconfig  to  specify  the C compiler to be used by gnatmake, and
+       conditionally   suppressing   Library_Options   line   for  static
+       libraries.
+     * There were, as well, several bug-fixes to handle illegal input for
+       tic.   Because   those  did  not  correspond  to  useful  terminal
+       descriptions, most users are unaffected.
+
+  Configuration changes
+
+    Major changes
+
+   This  release  provides  a new binary format for terminal descriptions
+   that  use  extended  numeric capabilities. Applications built with the
+   wide-character ncursesw library can use these extended numbers.
+     * This includes utilities such as tic and infocmp, because (as noted
+       in  [89]New features), the feature relies upon an extension to the
+       low-level tinfo library.
+     * A  few  software  packagers  use a configuration option of ncurses
+       which  allows the low-level tinfo library to be shared between the
+       high-level  ncurses  and  ncursesw libraries. This new feature was
+       designed to work in that configuration as well.
+
+   Other  applications (i.e., using the 8-bit ncurses library) which read
+   the  extended terminal descriptions see those numeric capabilities set
+   to the maximum value for a signed 16-bit number.
+
+   Older   versions   of   ncurses'   tic   accept  out-of-range  numeric
+   capabilities,  storing  those as the maximum value for a signed 16-bit
+   number.  Other  implementations of curses (mentioned in the discussion
+   of [90]picsmap) give zero for these out-of-range capabilities.
+
+    Configuration options
+
+   These  changes  provide  support  for  tack 1.08, released in [91]July
+   2017:
+     * add   --without-tack   configure  option  to  refine  --with-progs
+       configure option. Normally tack is built outside the ncurses tree,
+       but  a  few packagers combine it during the build. If term_entry.h
+       is installed, there is no advantage to in-tree builds.
+     * adjust   configure-script   to  define  HAVE_CURSES_DATA_BOOLNAMES
+       symbol  needed  for  tack  1.08  when  built  in-tree. Rather than
+       relying upon internal "_nc_" functions, tack now uses the boolean,
+       number  and  string capability name-arrays provided by ncurses and
+       SVr4  Unix  curses. It still uses term_entry.h for the definitions
+       of the extended capability arrays.
+     * add  dependency  upon  ncurses_cfg.h  to  tic's  header-files; any
+       program  using  tic-library  will have to supply this file. Legacy
+       tack  versions  supply  this  file;  ongoing  tack development has
+       dropped  the dependency upon tic-library and new releases will not
+       be affected.
+
+   Other changes to the configure-script and generated files include
+     * add  configure  options to disable checks for form, menu and panel
+       libraries  so  that  ncurses-examples  can  be built with non-SVr4
+       curses implementations.
+     * add  configure  option  --enable-opaque-curses for ncurses library
+       and similar options for the other libraries.
+     * add configure option --disable-wattr-macros for use in cases where
+       one   wants   to   use  the  same  headers  for  ncurses5/ncurses6
+       development,  by suppressing the wattr* macros which differ due to
+       the introduction of extended colors
+     * modify  configure macro for shared-library rules to use -Wl,-rpath
+       rather than -rpath to work around a bug in scons
+     * improve  ncurses-examples'  configure  script  to define as needed
+       NCURSES_WIDECHAR  for  platforms where _XOPEN_SOURCE_EXTENDED does
+       not  work.  Also  modified  the  test  program  to  ensure that if
+       building  with  ncurses,  that  the cchar_t type is checked, since
+       that  is  normally  (since [92]20111030) ifdef'd depending on this
+       test.
+     * modify  configure  script  to handle the case where tic-library is
+       renamed,  but  the  --with-debug  option is used by itself without
+       normal or shared libraries
+     * modify  editing  script which generates resulting.map to work with
+       the clang configuration on recent FreeBSD, which gives an error on
+       an empty "local" section.
+     * improve configure check for setting the WILDCARD_SYMS variable; on
+       ppc64 the variable is in the Data section rather than Text.
+     * correct  result  of  configure  option  --without-fallbacks, which
+       caused FALLBACK_LIST to be set to "no"
+     * modify  --with-pkg-config-libdir  option  to  make  it possible to
+       install  ".pc"  files  even if pkg-config is not found. Limit this
+       change,  to suppress the actual install if it is not overridden to
+       a valid directory at install time.
+     * disallow "no" as a possible value for --with-shlib-version option,
+       overlooked in cleanup-changes for [93]20000708.
+
+  Portability
+
+   Many  of  the  portability  changes  are implemented via the configure
+   script:
+     * improve  configure  script's  CF_CC_ENV_FLAGS  macro  to allow for
+       compiler  wrappers  such  as  ccache.  This  change moves only the
+       preprocessor,  optimization  and  warning  flags  to  CPPFLAGS and
+       CFLAGS,  leaving the residue in CC. That happens to work for gcc's
+       various   "model"  options,  but  may  require  tuning  for  other
+       compilers.
+     * modify  ncurses-examples'  configure  script to use pkg-config for
+       the  extra  form/menu/panel  libraries, to be more consistent with
+       the handling of the curses/ncurses library.
+     * add  configuration  checks  to build with [94]NetBSD curses, which
+       for example lacks [95]use_env.
+     * change  ncurses-examples  to use attr_t vs chtype to follow X/Open
+       documentation   more   closely   since  Solaris  xpg4-curses  uses
+       different  values for WA_xxx vs A_xxx that rely on attr_t being an
+       unsigned  short.  Tru64  aka  OSF1, HPUX, AIX did as ncurses does,
+       equating the two sets.
+     * modify  several  test  programs  to  reflect  that  ncurses honors
+       existing  signal  handlers in initscr, while other implementations
+       do not.
+     * add  configure  check  for  openpty to ncurses-examples' configure
+       script, for ditto.
+     * improve check for working poll function by using posix_openpt as a
+       fallback in case there is no valid terminal on the standard input
+     * modify  ncurses-examples'  configure  script  to check for pthread
+       dependency  of  ncursest  or  ncursestw  library when building the
+       ncurses examples, e.g., in case weak symbols are used.
+     * add   checks   in  ncurses-examples'  configure  script  for  some
+       functions neither in 4.3BSD curses, nor based on X/Open Curses:
+          + modify  a  loop limit in firework.c to work around absense of
+            limit checks in some libraries.
+          + fill the last row of a window with "?" in firstlast if waddch
+            does not return ERR on the lower-right corner.
+     * build-fixes for the Portland Group (PGI) compilers
+          + accept whitespace in sed expression for generating expanded.c
+          + modify  configure  check  that  g++ compiler warnings are not
+            used.
+          + add  configure  check  for  -fPIC  option  needed  for shared
+            libraries.
+     * modify  configure  script  for  clang  as used on FreeBSD, to work
+       around clang's differences in exit codes vs gcc.
+     * fixes for configure/build using clang on OSX
+          + do   not   redefine   "inline"  in  ncurses_cfg.h;  this  was
+            originally to solve a problem with gcc/g++, but is aggravated
+            by clang's misuse of symbols to pretend it is gcc.
+          + add  braces  to configure script to prevent unwanted addition
+            of "-lstdc++" option to the CXXLIBS symbol.
+          + improve/update  test-program  used  for checking existence of
+            stdc++ library.
+          + if $CXXLIBS is set, the linkage test uses that in addition to
+            $LIBS.
+     * fixes for OS/2:
+          + use  button  instead  of  kbuf[0]  in  EMX-specific  part  of
+            lib_mouse.c
+          + support building with libtool on OS/2
+          + use stdc++ library with OS/2 kLIBC
+          + clear  configure  script's  cf_XOPEN_SOURCE for OS/2, to work
+            with its header files
+     * add  "newer"  baudrate symbols to the [96]baudrate function in the
+       ncurses library as well as to a corresponding table in tset.
+     * modify ncurses-examples savescreen to work with AIX and HPUX.
+     * define WIN32_LEAN_AND_MEAN for MinGW port, making builds faster.
+     * add  a configure check for wcwidth versus the ncurses line-drawing
+       characters,  to  use  in  special-casing  systems such as Solaris.
+       Solaris,  however,  requires  a  special  case  that  maps Unicode
+       line-drawing  characters  into  the  acsc  string  for non-Unicode
+       locales.  Solaris also has a misconfigured wcwidth which marks all
+       of the line drawing characters as double-width.
+     * string-hacks (non-standard):
+          + fix  configure  script  to  record  when  strlcat is found on
+            OpenBSD.
+          + add   --enable-string-hacks   option   to   ncurses-examples'
+            configure script.
+          + completed  string-hacks  for  sprintf,  etc.,  including  the
+            ncurses-examples programs.
+          + make   --enable-string-hacks   option  work  with  Debian  by
+            checking   for   the   "bsd"   library   and  its  associated
+            "<bsd/string.h>" header.
+     * workaround for Debian's antique/unmaintained version of mawk:
+          + see  Debian  #65617,  which  was  fixed  in  mawk's  upstream
+            releases in [97]2009.
+          + related fixes when building link_test.
+     _________________________________________________________________
+
+Features of ncurses
+
+   The  ncurses  package  is  fully upward-compatible with SVr4 (System V
+   Release 4) curses:
+     * All of the SVr4 calls have been implemented (and are documented).
+     * ncurses  supports  all  of  the for SVr4 curses features including
+       keyboard  mapping,  color,  forms-drawing with ACS characters, and
+       automatic recognition of keypad and function keys.
+     * ncurses  provides  these SVr4 add-on libraries (not part of X/Open
+       Curses):
+          + the  panels  library,  supporting  a  stack  of  windows with
+            backing store.
+          + the   menus   library,  supporting  a  uniform  but  flexible
+            interface for menu programming.
+          + the   form   library,   supporting  data  collection  through
+            on-screen forms.
+     * ncurses's  terminal database is fully compatible with that used by
+       SVr4 curses.
+          + ncurses  supports user-defined capabilities which it can see,
+            but  which are hidden from SVr4 curses applications using the
+            same terminal database.
+          + It  can  be optionally configured to match the format used in
+            related systems such as AIX and Tru64.
+          + Alternatively,  ncurses  can  be  configured  to  use  hashed
+            databases  rather  than  the  directory of files used by SVr4
+            curses.
+     * The ncurses utilities have options to allow you to filter terminfo
+       entries for use with less capable curses/terminfo versions such as
+       the HP/UX and AIX ports.
 
    The ncurses package also has many useful extensions over SVr4:
-     * The API is 8-bit clean and base-level conformant with the X/OPEN
-       curses specification, XSI curses (that is, it implements all BASE
-       level features, but not all EXTENDED features). Most
-       EXTENDED-level features not directly concerned with wide-character
-       support are implemented, including many function calls not
-       supported under SVr4 curses (but portability of all calls is
-       documented so you can use the SVr4 subset only).
-     * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost
-       corner of the screen if your terminal has an insert-character
+     * The  API  is 8-bit clean and base-level conformant with the X/OPEN
+       curses  specification, XSI curses (that is, it implements all BASE
+       level  features,  and  most  EXTENDED  features). It includes many
+       function calls not supported under SVr4 curses (but portability of
+       all calls is documented so you can use the SVr4 subset only).
+     * Unlike  SVr3 curses, ncurses can write to the rightmost-bottommost
+       corner  of  the  screen  if  your terminal has an insert-character
        capability.
      * Ada95 and C++ bindings.
-     * Support for mouse event reporting with X Window xterm and OS/2
-       console windows.
+     * Support  for mouse event reporting with X Window xterm and FreeBSD
+       and OS/2 console windows.
      * Extended mouse support via Alessandro Rubini's gpm package.
-     * The function wresize() allows you to resize windows, preserving
+     * The  function  wresize  allows  you  to resize windows, preserving
        their data.
-     * The function use_default_colors() allows you to use the terminal's
+     * The  function  use_default_colors allows you to use the terminal's
        default colors for the default color pair, achieving the effect of
        transparent colors.
-     * The functions keyok() and define_key() allow you to better control
-       the use of function keys, e.g., disabling the ncurses KEY_MOUSE,
-       or by defining more than one control sequence to map to a given
-       key code.
-     * Support for 16-color terminals, such as aixterm and XFree86 xterm.
-     * Better cursor-movement optimization. The package now features a
+     * The functions keyok and define_key allow you to better control the
+       use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by
+       defining  more  than  one  control  sequence to map to a given key
+       code.
+     * Support for 256-color terminals, such as modern xterm.
+     * Support for 16-color terminals, such as aixterm and modern xterm.
+     * Better  cursor-movement  optimization.  The package now features a
        cursor-local-movement computation more efficient than either BSD's
        or System V's.
-     * Super hardware scrolling support. The screen-update code
-       incorporates a novel, simple, and cheap algorithm that enables it
-       to make optimal use of hardware scrolling, line-insertion, and
-       line-deletion for screen-line movements. This algorithm is more
-       powerful than the 4.4BSD curses quickch() routine.
-     * Real support for terminals with the magic-cookie glitch. The
-       screen-update code will refrain from drawing a highlight if the
-       magic- cookie unattributed spaces required just before the
-       beginning and after the end would step on a non-space character.
-       It will automatically shift highlight boundaries when doing so
-       would make it possible to draw the highlight without changing the
+     * Super   hardware   scrolling   support.   The  screen-update  code
+       incorporates  a novel, simple, and cheap algorithm that enables it
+       to  make  optimal  use  of hardware scrolling, line-insertion, and
+       line-deletion  for  screen-line  movements. This algorithm is more
+       powerful than the 4.4BSD curses quickch routine.
+     * Real  support  for  terminals  with  the  magic-cookie glitch. The
+       screen-update  code  will  refrain from drawing a highlight if the
+       magic-   cookie  unattributed  spaces  required  just  before  the
+       beginning  and  after the end would step on a non-space character.
+       It  will  automatically  shift  highlight boundaries when doing so
+       would  make it possible to draw the highlight without changing the
        visual appearance of the screen.
-     * It is possible to generate the library with a list of pre-loaded
-       fallback entries linked to it so that it can serve those terminal
-       types even when no terminfo tree or termcap file is accessible
-       (this may be useful for support of screen-oriented programs that
+     * It  is  possible to generate the library with a list of pre-loaded
+       fallback  entries linked to it so that it can serve those terminal
+       types  even  when  no  terminfo tree or termcap file is accessible
+       (this  may  be useful for support of screen-oriented programs that
        must run in single-user mode).
-     * The tic(1)/captoinfo utility provided with ncurses has the ability
-       to translate many termcaps from the XENIX, IBM and AT&T extension
-       sets.
-     * A BSD-like tset(1) utility is provided.
+     * The  [98]tic/[99]captoinfo  utility  provided with ncurses has the
+       ability  to  translate  many termcaps from the XENIX, IBM and AT&T
+       extension sets.
+     * A BSD-like [100]tset utility is provided.
      * The ncurses library and utilities will automatically read terminfo
-       entries from $HOME/.terminfo if it exists, and compile to that
-       directory if it exists and the user has no write access to the
-       system directory. This feature makes it easier for users to have
-       personal terminfo entries without giving up access to the system
+       entries  from  $HOME/.terminfo  if  it exists, and compile to that
+       directory  if  it  exists  and the user has no write access to the
+       system  directory.  This feature makes it easier for users to have
+       personal  terminfo  entries without giving up access to the system
        terminfo directory.
-     * You may specify a path of directories to search for compiled
-       descriptions with the environment variable TERMINFO_DIRS (this
-       generalizes the feature provided by TERMINFO under stock System
+     * You  may  specify  a  path  of  directories to search for compiled
+       descriptions  with  the  environment  variable TERMINFO_DIRS (this
+       generalizes  the  feature  provided by TERMINFO under stock System
        V.)
-     * In terminfo source files, use capabilities may refer not just to
+     * In  terminfo  source files, use capabilities may refer not just to
        other entries in the same source file (as in System V) but also to
-       compiled entries in either the system terminfo directory or the
+       compiled  entries  in  either the system terminfo directory or the
        user's $HOME/.terminfo directory.
-     * A script (capconvert) is provided to help BSD users transition
-       from termcap to terminfo. It gathers the information in a TERMCAP
-       environment variable and/or a ~/.termcap local entries file and
-       converts it to an equivalent local terminfo tree under
-       $HOME/.terminfo.
-     * Automatic fallback to the /etc/termcap file can be compiled in
-       when it is not possible to build a terminfo tree. This feature is
-       neither fast nor cheap, you don't want to use it unless you have
-       to, but it's there.
-     * The table-of-entries utility toe makes it easy for users to see
-       exactly what terminal types are available on the system.
+     * The  table-of-entries  utility [101]toe makes it easy for users to
+       see exactly what terminal types are available on the system.
      * The library meets the XSI requirement that every macro entry point
-       have a corresponding function which may be linked (and will be
-       prototype-checked) if the macro definition is disabled with
+       have  a  corresponding  function  which may be linked (and will be
+       prototype-checked)  if  the  macro  definition  is  disabled  with
        #undef.
-     * An HTML "Introduction to Programming with NCURSES" document
-       provides a narrative introduction to the curses programming
-       interface.
+     * Extensive  documentation  is  provided  (see  the  [102]Additional
+       Reading section of the [103]ncurses FAQ for online documentation).
+
+Applications using ncurses
 
-                             State of the Package
+   The  ncurses  distribution  includes  a  selection  of  test  programs
+   (including   a   few   games).   These  are  available  separately  as
+   [104]ncurses-examples
 
-   Numerous bugs present in earlier versions have been fixed; the library
-   is far more reliable than it used to be. Bounds checking in many
-   `dangerous' entry points has been improved. The code is now type-safe
-   according to gcc -Wall. The library has been checked for malloc leaks
-   and arena corruption by the Purify memory-allocation tester.
+   The   ncurses   library  has  been  tested  with  a  wide  variety  of
+   applications including:
 
-   The ncurses code has been tested with a wide variety of applications
-   including (versions starting with those noted):
+   aptitude
+          FrontEnd to Apt, the debian package manager
+
+          [105]https://wiki.debian.org/Aptitude
 
    cdk
           Curses Development Kit
-          [3]http://www.vexus.ca/CDK.html
-          [4]http://dickey.his.com/cdk.
+
+          [106]https://invisible-island.net/cdk/
 
    ded
           directory-editor
-          [5]http://dickey.his.com/ded.
+
+          [107]https://invisible-island.net/ded/
 
    dialog
-          the underlying application used in Slackware's setup, and the
-          basis for similar applications on GNU/Linux.
-          [6]http://dickey.his.com/dialog.
+          the  underlying  application used in Slackware's setup, and the
+          basis   for  similar  install/configure  applications  on  many
+          systems.
+
+          [108]https://invisible-island.net/dialog/
 
    lynx
-          the character-screen WWW browser
-          [7]http://lynx.isc.org/release.
+          the text WWW browser
 
-   Midnight Commander 4.1
-          file manager
-          [8]www.gnome.org/mc/.
+          [109]https://lynx.invisible-island.net/
 
    mutt
           mail utility
-          [9]http://www.mutt.org.
+
+          [110]http://www.mutt.org/
 
    ncftp
           file-transfer utility
-          [10]http://www.ncftp.com.
+
+          [111]https://www.ncftp.com/
 
    nvi
-          New vi versions 1.50 are able to use ncurses versions 1.9.7 and
-          later.
-          [11]http://www.bostic.com/vi/.
+          New vi uses ncurses.
+
+          [112]https://sites.google.com/a/bostic.com/keithbostic/vi
+
+   ranger
+          A console file manager with VI key bindings in Python.
+
+          [113]https://ranger.github.io/
 
    tin
           newsreader, supporting color, MIME
-          [12]http://www.tin.org.
 
-   taper
-          tape archive utility
-          [13]http://members.iinet.net.au/~yusuf/taper/.
+          [114]http://www.tin.org/
 
-   vh-1.6
-          Volks-Hypertext browser for the Jargon File
-          [14]http://www.bg.debian.org/Packages/unstable/text/vh.html.
+   vifm
+          File manager with vi like keybindings
+
+          [115]https://vifm.info/
 
    as well as some that use ncurses for the terminfo support alone:
 
    minicom
-          terminal emulator
-          [15]http://www.pp.clinet.fi/~walker/minicom.html.
+          terminal emulator for serial modem connections
+
+          [116]https://alioth.debian.org/projects/minicom/
+
+   mosh
+          a replacement for ssh.
+
+          [117]https://mosh.mit.edu/
+
+   tack
+          terminfo action checker
+
+          [118]https://invisible-island.net/ncurses/tack.html
+
+   tmux
+          terminal multiplexor
+
+          [119]https://github.com/tmux/tmux/wiki
 
    vile
-          vi-like-emacs
-          [16]http://dickey.his.com/vile.
+          vi-like-emacs  may  be  built  to  use the terminfo, termcap or
+          curses interfaces.
+
+          [120]https://invisible-island.net/vile/
+
+   and finally, those which use only the termcap interface:
 
-   The ncurses distribution includes a selection of test programs
-   (including a few games).
+   emacs
+          text editor
 
-Who's Who and What's What
+          [121]https://www.gnu.org/software/emacs/
 
-   The original developers of ncurses are [17]Zeyd Ben-Halim and [18]Eric
-   S. Raymond. Ongoing work is being done by [19]Thomas Dickey and
-   [20]Jürgen Pfeifer. [21]Thomas Dickey acts as the maintainer for the
-   Free Software Foundation, which holds the copyright on ncurses.
-   Contact the current maintainers at [22]bug-ncurses@gnu.org.
+   less
+          The  most  commonly  used  pager  (a program that displays text
+          files).
+
+          [122]http://www.greenwoodsoftware.com/less/
+
+   screen
+          terminal multiplexor
+
+          [123]https://www.gnu.org/software/screen/
+
+   vim
+          text editor
+
+          [124]https://www.vim.org/
+
+Development activities
+
+   Zeyd  Ben-Halim  started  ncurses  from  a  previous  package pcurses,
+   written  by  Pavel  Curtis.  Eric  S.  Raymond  continued development.
+   Juergen  Pfeifer  wrote  most  of the form and menu libraries. Ongoing
+   development  work  is  done  by [125]Thomas Dickey. Thomas Dickey also
+   acts  as  the maintainer for the Free Software Foundation, which holds
+   the [126]copyright on ncurses.
+
+   Contact the current maintainers at
+
+     [127]bug-ncurses@gnu.org
 
    To join the ncurses mailing list, please write email to
-   bug-ncurses-request@gnu.org containing the line:
-             subscribe <name>@<host.domain>
+
+     [128]bug-ncurses-request@gnu.org
+
+   containing the line:
+
+     subscribe <name>@<host.domain>
 
    This list is open to anyone interested in helping with the development
    and testing of this package.
 
-   Beta versions of ncurses and patches to the current release are made
-   available at [23]ftp://dickey.his.com/ncurses.
+   Beta  versions  of ncurses and patches to the current release are made
+   available at
+
+     [129]ftp://ftp.invisible-island.net/ncurses/ and
+     [130]https://invisible-mirror.net/archives/ncurses/ .
+
+   There is an archive of the mailing list here:
+
+     [131]http://lists.gnu.org/archive/html/bug-ncurses            (also
+     [132]https)
 
-Future Plans
+Related resources
 
-     * Extended-level XPG4 conformance, with internationalization
-       support.
-     * Ports to more systems, including DOS and Windows.
+   The  release notes make scattered references to these pages, which may
+   be interesting by themselves:
+     * [133]ncurses licensing
+     * [134]Symbol versioning in ncurses
+     * [135]Comments on ncurses versus slang (S-Lang)
+     * [136]tack - terminfo action checker
+     * [137]tctest - termcap library checker
+     * [138]Terminal Database
 
-   We need people to help with these projects. If you are interested in
-   working on them, please join the ncurses list.
+Other resources
 
-Other Related Resources
+   The  distribution  provides  a  newer  version  of the terminfo-format
+   terminal  description  file  once  maintained  by  [139]Eric Raymond .
+   Unlike  the  older version, the termcap and terminfo data are provided
+   in   the   same  file,  which  also  provides  several  user-definable
+   extensions beyond the X/Open specification.
 
-   The distribution includes and uses a version of the terminfo-format
-   terminal description file maintained by Eric Raymond.
-   [24]http://earthspace.net/~esr/terminfo.
+   You  can  find  lots  of  information  on  terminal-related topics not
+   covered in the terminfo file at [140]Richard Shuford's archive .
 
-   You can find lots of information on terminal-related topics not
-   covered in the terminfo file at [25]Richard Shuford's archive.
+     * [141]Overview
+     * [142]Release Notes
+          + [143]Library improvements
+               o [144]New features
+               o [145]Other improvements
+          + [146]Program improvements
+               o [147]Utilities
+               o [148]Examples
+          + [149]Terminal database
+          + [150]Documentation
+          + [151]Interesting bug-fixes
+          + [152]Configuration changes
+               o [153]Major changes
+               o [154]Configuration options
+          + [155]Portability
+     * [156]Features of ncurses
+     * [157]Applications using ncurses
+     * [158]Development activities
+     * [159]Related resources
+     * [160]Other resources
 
 References
 
-   1. ftp://ftp.gnu.org/pub/gnu/ncurses
-   2. ftp://dickey.his.com/ncurses
-   3. http://www.vexus.ca/CDK.html
-   4. http://dickey.his.com/cdk/cdk.html
-   5. http://dickey.his.com/ded/ded.html
-   6. http://dickey.his.com/dialog/dialog.html
-   7. http://lynx.isc.org/release/
-   8. file://localhost/usr/build/ncurses/ncurses-5.2-20001021/doc/html/www.gnome.org/mc/
-   9. http://www.mutt.org/
-  10. http://www.ncftp.com/
-  11. http://www.bostic.com/vi/
-  12. http://www.tin.org/
-  13. http://members.iinet.net.au/~yusuf/taper/
-  14. http://www.bg.debian.org/Packages/unstable/text/vh.html
-  15. http://www.pp.clinet.fi/~walker/minicom.html
-  16. http://dickey.his.com/vile/vile.html
-  17. mailto:zmbenhal@netcom.com
-  18. http://www.ccil.org/~esr/home.html
-  19. mailto:dickey@herndon4.his.com
-  20. mailto:juergen.pfeifer@gmx.net
-  21. mailto:dickey@herndon4.his.com
-  22. mailto:bug-ncurses@gnu.org
-  23. ftp://dickey.his.com/ncurses
-  24. http://earthspace.net/~esr/terminfo
-  25. http://www.cs.utk.edu/~shuford/terminal_index.html
+   1. https://invisible-island.net/ncurses/man/captoinfo.1m.html
+   2. https://invisible-island.net/ncurses/man/clear.1.html
+   3. https://invisible-island.net/ncurses/man/infocmp.1m.html
+   4. https://invisible-island.net/ncurses/man/tabs.1.html
+   5. https://invisible-island.net/ncurses/man/tic.1m.html
+   6. https://invisible-island.net/ncurses/man/toe.1m.html
+   7. https://invisible-island.net/ncurses/man/tput.1.html
+   8. https://invisible-island.net/ncurses/man/tset.1.html
+   9. https://invisible-island.net/ncurses/
+  10. ftp://ftp.invisible-island.net/ncurses/
+  11. https://invisible-mirror.net/archives/ncurses/
+  12. ftp://ftp.gnu.org/gnu/ncurses/
+  13. https://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-def_prog_mode_-def_shell_mode
+  14. https://invisible-island.net/ncurses/ncurses-mapsyms.html
+  15. https://invisible-island.net/ncurses/tctest.html#bsd42-numeric-caps
+  16. https://invisible-island.net/ncurses/ncurses-slang.html#cause_numbers
+  17. https://invisible-island.net/ncurses/tack.html#portable
+  18. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726
+  19. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-EXTENSIONS
+  20. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization
+  21. https://invisible-island.net/ncurses/man/tset.1.html
+  22. https://invisible-island.net/ncurses/man/tput.1.html
+  23. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization
+  24. https://invisible-island.net/ncurses/man/clear.1.html
+  25. https://invisible-island.net/ncurses/tctest.html#bsd42-ctl-question
+  26. https://invisible-island.net/ncurses/tctest.html#freebsd-ctl-question
+  27. https://invisible-island.net/ncurses/ncurses-examples.html
+  28. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-alloc_pair
+  29. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-find_pair
+  30. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-free_pair
+  31. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap
+  32. https://invisible-island.net/dialog/
+  33. https://invisible-island.net/dialog/manpage/dialog.html#h3-Common-Options
+  34. https://invisible-island.net/xterm/xterm.log.html#xterm_331
+  35. https://invisible-island.net/ncurses/terminfo.src.html#toc-_A_N_S_I__S_Y_S__I_S_O_6429__E_C_M_A-48__Capabilities
+  36. https://invisible-island.net/ncurses/terminfo.src.html#tic-icl6404
+  37. https://invisible-island.net/ncurses/terminfo.src.html#tic-interix
+  38. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Linux_consoles
+  39. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Open_B_S_D_consoles
+  40. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Tmux
+  41. https://invisible-island.net/ncurses/terminfo.src.html#toc-_D_E_C__V_T100_and_compatibles
+  42. https://invisible-island.net/ncurses/terminfo.src.html#toc-_G_N_O_M_E__V_T_E_
+  43. https://invisible-island.net/ncurses/terminfo.src.html#toc-_X_T_E_R_M
+  44. https://invisible-island.net/xterm/xterm.log.html#xterm_32
+  45. https://invisible-island.net/xterm/xterm.log.html#xterm_272
+  46. https://invisible-island.net/ncurses/NEWS.html
+  47. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
+  48. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
+  49. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
+  50. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h2-PORTABILITY
+  51. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY
+  52. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY
+  53. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-PORTABILITY
+  54. https://invisible-island.net/ncurses/man/curs_mouse.3x.html#h2-PORTABILITY
+  55. https://invisible-island.net/ncurses/man/curs_pad.3x.html#h2-PORTABILITY
+  56. https://invisible-island.net/ncurses/man/curs_slk.3x.html#h2-PORTABILITY
+  57. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-PORTABILITY
+  58. https://invisible-island.net/ncurses/man/wresize.3x.html#h2-PORTABILITY
+  59. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h3-ACS-Symbols
+  60. https://invisible-island.net/ncurses/man/curs_add_wch.3x.html
+  61. https://invisible-island.net/ncurses/man/clear.1.html#h2-DESCRIPTION
+  62. https://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-endwin
+  63. https://invisible-island.net/ncurses/man/form_driver.3x.html
+  64. https://invisible-island.net/ncurses/man/curs_get_wstr.3x.html#h2-RETURN-VALUE
+  65. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Predefined-key-codes
+  66. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Keypad-Mode
+  67. https://invisible-island.net/ncurses/man/curs_get_wch.3x.html#h2-DESCRIPTION
+  68. https://invisible-island.net/ncurses/man/infocmp.1m.html
+  69. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-NOTES
+  70. https://invisible-island.net/ncurses/man/curs_extend.3x#h2-RETURN-VALUE
+  71. https://invisible-island.net/ncurses/man/curs_variables.3x.html#h2-PORTABILITY
+  72. https://invisible-island.net/ncurses/man/curs_memleaks.3x.html
+  73. https://invisible-island.net/ncurses/man/tic.1m.html
+  74. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Terminfo-Capabilities-Syntax
+  75. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Line-Graphics
+  76. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Color-Handling
+  77. https://invisible-island.net/ncurses/man/tput.1.html#h2-PORTABILITY
+  78. https://invisible-island.net/ncurses/man/tput.1.html#h3-Aliases
+  79. https://invisible-island.net/ncurses/man/tic.1m.html#h2-OPTIONS
+  80. https://invisible-island.net/ncurses/man/infocmp.1m.html#h3-Other-Options
+  81. https://invisible-island.net/ncurses/man/tset.1.html
+  82. https://invisible-island.net/ncurses/man/curs_termcap.3x.html#h3-FORMATTING-CAPABILITIES
+  83. https://invisible-island.net/ncurses/man/user_caps.5.html
+  84. https://invisible-island.net/ncurses/man/scr_dump.5.html
+  85. https://invisible-island.net/ncurses/man/curs_sp_funcs.3x.html
+  86. https://invisible-island.net/ncurses/man/curs_threads.3x.html
+  87. https://invisible-island.net/ncurses/man/curs_attr.3x.html
+  88. file:///ncurses/man/curs_color.3x.html
+  89. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library
+  90. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap
+  91. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726
+  92. https://invisible-island.net/ncurses/NEWS.html#t20111030
+  93. https://invisible-island.net/ncurses/NEWS.html#t20000708
+  94. https://invisible-island.net/ncurses/ncurses-netbsd.html
+  95. https://invisible-island.net/ncurses/man/curs_util.3x.html#h3-use_env
+  96. https://invisible-island.net/ncurses/man/curs_termattrs.3x.html#h3-baudrate
+  97. https://invisible-island.net/mawk/CHANGES.html#t20090727
+  98. https://invisible-island.net/ncurses/man/tic.1m.html
+  99. https://invisible-island.net/ncurses/man/captoinfo.1m.html
+ 100. https://invisible-island.net/ncurses/man/tset.1.html
+ 101. https://invisible-island.net/ncurses/man/toe.1m.html
+ 102. https://invisible-island.net/ncurses/ncurses.faq.html#additional_reading
+ 103. https://invisible-island.net/ncurses/ncurses.faq.html
+ 104. https://invisible-island.net/ncurses/ncurses-examples.html
+ 105. https://wiki.debian.org/Aptitude
+ 106. https://invisible-island.net/cdk/
+ 107. https://invisible-island.net/ded/
+ 108. https://invisible-island.net/dialog/
+ 109. https://lynx.invisible-island.net/
+ 110. http://www.mutt.org/
+ 111. https://www.ncftp.com/
+ 112. https://sites.google.com/a/bostic.com/keithbostic/vi
+ 113. https://ranger.github.io/
+ 114. http://www.tin.org/
+ 115. https://vifm.info/
+ 116. https://alioth.debian.org/projects/minicom/
+ 117. https://mosh.mit.edu/
+ 118. https://invisible-island.net/ncurses/tack.html
+ 119. https://github.com/tmux/tmux/wiki
+ 120. https://invisible-island.net/vile/
+ 121. https://www.gnu.org/software/emacs/
+ 122. http://www.greenwoodsoftware.com/less/
+ 123. https://www.gnu.org/software/screen/
+ 124. https://www.vim.org/
+ 125. mailto:dickey@invisible-island.net
+ 126. https://invisible-island.net/ncurses/ncurses-license.html
+ 127. mailto:bug-ncurses@gnu.org
+ 128. mailto:bug-ncurses-request@gnu.org
+ 129. ftp://ftp.invisible-island.net/ncurses/
+ 130. https://invisible-mirror.net/archives/ncurses/
+ 131. http://lists.gnu.org/archive/html/bug-ncurses
+ 132. https://lists.gnu.org/archive/html/bug-ncurses
+ 133. https://invisible-island.net/ncurses/ncurses-license.html
+ 134. https://invisible-island.net/ncurses/ncurses-mapsyms.html
+ 135. https://invisible-island.net/ncurses/ncurses-slang.html
+ 136. https://invisible-island.net/ncurses/tack.html
+ 137. https://invisible-island.net/ncurses/tctest.html
+ 138. https://invisible-island.net/ncurses/ncurses.html#download_database
+ 139. http://www.catb.org/~esr/terminfo/
+ 140. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal
+ 141. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-overview
+ 142. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-release-notes
+ 143. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-library
+ 144. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library
+ 145. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-fixes-library
+ 146. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-programs
+ 147. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-utilities
+ 148. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-examples
+ 149. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-database
+ 150. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-documentation
+ 151. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-bug-fixes
+ 152. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-config-config
+ 153. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-major
+ 154. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-options
+ 155. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-portability
+ 156. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-features
+ 157. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-who-uses
+ 158. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-development
+ 159. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-this-stuff
+ 160. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-other-stuff