]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ANNOUNCE
ncurses 6.1 - patch 20190504
[ncurses.git] / ANNOUNCE
index 513234e33caa431aec05182c38be2c74dd34ffb6..8bda60e2f074cc2ab7ca9afa82649525f969f0c5 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
+                            Announcing ncurses 6.1
 
-                            Announcing ncurses 5.4
+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.
+   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.
+   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 has been in use for
-   some  time  with  OpenBSD as the system curses library, and on FreeBSD
-   and  NetBSD  as  an  external  package.  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/gnu/ncurses/ .
-   It is also available at [2]ftp://invisible-island.net/ncurses/ .
-
-                                 Release Notes
-
-   This  release is designed to be upward compatible from ncurses 5.0 and
-   5.3;  very  few  applications will require recompilation, depending on
-   the  platform.  These  are  the  highlights  from the change-log since
-   ncurses 5.3 release.
-
-   Interface changes:
-     * add  the  remaining  functions  for  X/Open  curses wide-character
-       support.
-          + pecho_wchar()
-          + slk_wset()
-       These  are  only  available if the library is configured using the
-       --enable-widec option.
-     * write  getyx()  and related 2-return macros in terms of getcury(),
-       getcurx(), etc.
-     * simplify ifdef for bool declaration in curses.h
-     * modify  ifdef's  in  curses.h that disabled use of __attribute__()
-       for  g++,  since recent versions implement the cases which ncurses
-       uses.
-     * add  key_defined()  function,  to  tell  which keycode a string is
-       bound to.
-
-   New features and improvements:
-     * library
-          + implement  logic  in  lib_mouse.c  to handle position reports
-            which  are  generated  when XFree86 xterm is initialized with
-            private  modes  1002  or  1003.  These  are  returned  to the
-            application  as the REPORT_MOUSE_POSITION mask, which was not
-            implemented.
-          + modify soft-key initialization to use A_REVERSE if A_STANDOUT
-            would  not  be  shown when colors are used, i.e., if ncv#1 is
-            set in the terminfo as is done in "screen".
-          + add  configure  option for FreeBSD sysmouse, --with-sysmouse,
-            and implement library support for that.
-     * programs:
-          + tack:
-               o allow it to run from fallback terminfo data.
-               o reset  colors  after  each  color  test, correct a place
-                 where    exit_standout_mode    was   used   instead   of
-                 exit_attribute_mode.
-               o improve  bce  test  by  making  it set colors other than
-                 black on white.
-          + tic:
-               o handle  a  case  where  an entry has no description, and
-                 capabilities begin on the same line as the entry name.
-               o allow a terminfo entry with a leading 2-character name.
-               o improved  warnings  when  suppressing  items  to  fit in
-                 termcap's 1023-byte limit.
-               o add check for multiple "tc=" clauses in a termcap.
-               o correct logic for resolving "use=" clauses allow infocmp
-                 and tic to show cancelled capabilities.
-               o check for incomplete line-drawing character mapping.
-               o check for missing/empty/illegal terminfo name.
-          + tput:
-               o modify  tput  to  use  the  same  parameter  analysis as
-                 tparm() does, to provide for user-defined strings, e.g.,
-                 for  xterm  title,  a  corresponding capability might be
-                 title=\E]2;%p1%s^G,
-          + tset:
-               o use  the  system's  default  values  for CKILL and other
-                 default control characters.
-               o correct  interchanged  defaults  for  kill and interrupt
-                 characters, which caused it to report unnecessarily.
-
-   Major bug fixes:
-     * prevent  recursion  in  wgetch()  via wgetnstr() if the connection
-       cannot  be  switched  between cooked/raw modes because it is not a
-       TTY.
-     * correct  a  case  in _nc_remove_string(), used by define_key(), to
-       avoid  infinite loop if the given string happens to be a substring
-       of other strings which are assigned to keys.
-     * modify  logic  of acsc to use the original character if no mapping
-       is defined, rather than a null.
-     * several  improvements  for  handling  multi-cell  display  of wide
-       characters.
-          + modify  setcchar()  to allow converting control characters to
-            complex characters.
-          + correct  handling of multibyte characters in waddch_literal()
-            which force wrapping because they are started too late on the
-            line.
-          + modify  setcchar()  to  allow  for wchar_t input strings that
-            have more than one spacing character.
-     * other fixes for wide-character support:
-          + rewrote  lib_acs.c  to  allow  PutAttrChar() to decide how to
-            render alternate-characters, i.e., to work with Linux console
-            and UTF-8 locale.
-          + implement  a  workaround  so  that  line-drawing  works  with
-            screen's  crippled  UTF-8  support (tested with 3.9.13). This
-            only  works with the wide-character support (--enable-widec);
-            the  normal  library  will  simply suppress line-drawing when
-            running in a UTF-8 locale in screen.
-          + corrections to lib_get_wstr.c:
-               o null-terminate   buffer   passed  to  setcchar(),  which
-                 occasionally failed.
-               o map    special    characters    such   as   erase-   and
-                 kill-characters  into  key-codes  so  those will work as
-                 expected even if they are not mentioned in the terminfo.
-     * modify  setupterm()  to  check  if the terminfo and terminal-modes
-       have  already  been  read.  This ensures that it does not reinvoke
-       def_prog_mode()  when an application calls more than one function,
-       such as tgetent() and initscr().
-     * fix    form_driver()    cases    for   REQ_CLR_EOF,   REQ_CLR_EOL,
-       REQ_DEL_CHAR,  REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure
-       the   cursor   was   at   the   editing   position  before  making
-       modifications.
-     * correct keybound(), which reported definitions in the wrong table,
-       i.e., the list of definitions which are disabled by keyok().
-     * fixes related to safe_sprintf.c:
-          + correct  an  allocation  size  in  safe_sprintf.c for the "*"
-            format code.
-          + correct  safe_sprintf.c  to  not return a null pointer if the
-            format happens to be an empty string.
-          + make   return   value  from  _nc_printf_string()  consistent.
-            Before,  depending on whether --enable-safe-sprintf was used,
-            it might not be cached for reallocating.
-     * other low-level improvements to the optimization code include:
-          + if  the  output  is  a  socket or other non-tty device, use 1
-            millisecond  for  the  cost  in  mvcur;  previously  it was 9
-            milliseconds because the baudrate was not known.
-          + modify lib_getch.c to avoid recursion via wgetnstr() when the
-            input is not a tty and consequently mode-changes do not work.
-          + fix  several  places  in tack/pad.c which tested and used the
-            parameter- and parameterless strings inconsistently.
-          + change several tputs() calls in scrolling code to use putp(),
-            to enable padding which may be needed for some terminals.
-          + improve  mvcur() by checking if it is safe to move when video
-            attributes   are   set  (msgr),  and  if  not,  reset/restore
-            attributes   within   that  function  rather  than  doing  it
-            separately in the GoTo() function in tty_update.c.
-          + use tputs() rather than putp() in a few cases in tty_update.c
-            since the corresponding delays are proportional to the number
-            of       lines      affected:      repeat_char,      clr_eos,
-            change_scroll_region.
-     * correct  line/column  reference in adjust_window(), needed to make
-       special windows such as curscr track properly when resizing.
-     * fix a potential recursion between napms() and _nc_timed_wait()
-     * rewrote lib_insch.c, combining it with lib_insstr.c so both handle
-       tab and other control characters consistently.
-     * do  not  try  to open gpm mouse driver if standard output is not a
-       tty; the gpm library does not make this check.
-
-   Portability:
-     * configure script:
-          + new options:
-
-              --with-abi-version option.
-                      addresses  platforms  where packagers have diverged
-                      from ncurses ABI numbering.
-
-              --with-manpage-format=catonly
-                      addresses   behavior  of  BSDI,  allow  install  of
-                      man+cat   files   on  NetBSD,  whose  behavior  has
-                      diverged by requiring both to be present.
-
-              --with-manpage-aliases
-                      extends  "--with-manpage-aliases"  to  provide  the
-                      option   of  generating  ".so"  files  rather  than
-                      symbolic links for manpage aliases.
-
-              --with-rel-version
-                      workaround  to force libtool on Darwin generate the
-                      "same"  library  names  as with the "--with-shared"
-                      option.  The  Darwin  ld program does not work well
-                      with a zero as the minor-version value.
-
-              --with-trace
-                      simplifies defining TRACE to incorporate trace() in
-                      libraries.
-
-          + fixes/improvements for cross-compiling:
-               o allow BUILD_CC and related configure script variables to
-                 be overridden from the environment.
-               o use AC_CHECK_TOOL to get proper values for AR and LD for
-                 cross compiling.
-               o use $cross_compiling variable in configure script rather
-                 than  comparing  $host_alias  and  $target  alias, since
-                 "host"  is traditionally misused in autoconf to refer to
-                 the target platform.
-               o modify  run_tic.in to avoid using wrong shared libraries
-                 when cross-compiling.
-          + fixes for Mac OS X:
-               o fix  a  redefinition  of $RANLIB in the configure script
-                 when libtool is used.
-               o modify  MKlib_gen.sh to avoid passing "#" tokens through
-                 the  C  preprocessor.  This  works  around  Mac  OS  X's
-                 preprocessor,  which  insists  on adding a blank on each
-                 side of the token.
-          + workarounds for broken tools:
-               o add configure check for wchar_t and wint_t types, rather
-                 than  rely on preprocessor definitions. Also work around
-                 for  gcc  fixinclude  bug which creates a shadow copy of
-                 curses.h if it sees these symbols apparently typedef'd.
-               o modify  configure  script  to omit -Winline for gcc 3.3,
-                 since that feature is broken.
-               o several script fixes to work around the ironically named
-                 POSIXLY_CORRECT feature of GNU sed 4.0.
-               o modify  configure script to avoid using "head -1", which
-                 does not work if POSIXLY_CORRECT (sic) is set.
-               o update    configure    script   to   reflect   fix   for
-                 AC_PROG_GCC_TRADITIONAL,  which  is  broken  in autoconf
-                 2.5x for Mac OS X 10.2.3.
-               o repair  check  for missing C++ compiler, which is broken
-                 in autoconf 2.5x by hardcoding it to g++.
-          + corrected  ifdef's  relating  to configure check for wchar_t,
-            etc.
-          + remove configure script check to allow -Wconversion for older
-            versions of gcc
-          + modify  configure  script to accommodate libtool 1.5, as well
-            as  add an parameter to the "--with-libtool" option which can
-            specify the pathname of libtool.
-          + change  several  sed  scripts to avoid using "\+" since it is
-            not  a  BRE  (basic  regular expression). One instance caused
-            terminfo.5 to be misformatted on FreeBSD.
-          + use  '%'  as  sed  substitute  delimiter in run_tic script to
-            avoid problems with pathname delimiters such as ':' and '@'.
-          + add  -D_XOPEN_SOURCE=500  if  needed  when  configuring  with
-            "--enable-widec", to get mbstate_t declaration on HPUX 11.11.
-     * library:
-          + adjust  include-options  in  CF_ETIP_DEFINES to avoid missing
-            ncurses_dll.h,  fixing special definitions that may be needed
-            for etip.h.
-          + modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use
-            a ".so" suffix.
-          + improve  ifdef's to guard against redefinition of wchar_t and
-            wint_t in curses.h.
-          + remove  an  #undef for KEY_EVENT from curses.tail used in the
-            experimental   NCURSES_WGETCH_EVENTS   feature.   The  #undef
-            confuses Debian dpkg's build script.
-
-                              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).
+       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.
+     * 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.
        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.
+       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
        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
        other entries in the same source file (as in System V) but also to
        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
        #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
+
+   The  ncurses  distribution  includes  a  selection  of  test  programs
+   (including   a   few   games).   These  are  available  separately  as
+   [104]ncurses-examples
 
-                             State of the Package
+   The   ncurses   library  has  been  tested  with  a  wide  variety  of
+   applications including:
 
-   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.
+   aptitude
+          FrontEnd to Apt, the debian package manager
 
-   The  ncurses  code has been tested with a wide variety of applications
-   including (versions starting with those noted):
+          [105]https://wiki.debian.org/Aptitude
 
    cdk
           Curses Development Kit
-          [3]http://invisible-island.net/cdk/
-          [4]http://www.vexus.ca/products/CDK/
+
+          [106]https://invisible-island.net/cdk/
 
    ded
           directory-editor
-          [5]http://invisible-island.net/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://invisible-island.net/dialog/
+          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
-          file manager
-          [8]http://www.ibiblio.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.
 
-   pinfo
-          Lynx-like info browser.
-          [12]http://dione.ids.pl/~pborys/software/pinfo/
+          [113]https://ranger.github.io/
 
    tin
-          newsreader, supporting color, MIME [13]http://www.tin.org/
+          newsreader, supporting color, MIME
 
-   vh-1.6
-          Volks-Hypertext browser for the Jargon File
-          [14]http://www.debian.org/Packages/unstable/text/vh.html
+          [114]http://www.tin.org/
+
+   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.netsonic.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://invisible-island.net/vile/
+          vi-like-emacs  may  be  built  to  use the terminfo, termcap or
+          curses interfaces.
 
-   The  ncurses  distribution  includes  a  selection  of  test  programs
-   (including a few games).
+          [120]https://invisible-island.net/vile/
+
+   and finally, those which use only the termcap interface:
+
+   emacs
+          text editor
 
-Who's Who and What's What
+          [121]https://www.gnu.org/software/emacs/
 
-   Zeyd  Ben-Halim started it from a previous package pcurses, written by
-   Pavel  Curtis.  Eric  S. Raymond continued development. Jürgen Pfeifer
-   wrote  most of the form and menu libraries. Ongoing work is being done
-   by  [17]Thomas  Dickey.  Thomas  Dickey acts as the maintainer for the
-   Free  Software  Foundation,  which  holds  the  copyright  on ncurses.
-   Contact the current maintainers at [18]bug-ncurses@gnu.org.
+   less
+          The  most  commonly  used  pager  (a program that displays text
+          files).
 
-   To   join   the   ncurses   mailing   list,   please  write  email  to
-   bug-ncurses-request@gnu.org containing the line:
-             subscribe <name>@<host.domain>
+          [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
+
+     [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 [19]ftp://invisible-island.net/ncurses/ .
+   available at
 
-Future Plans
+     [129]ftp://ftp.invisible-island.net/ncurses/ and
+     [130]https://invisible-mirror.net/archives/ncurses/ .
 
-     * Extended-level   XPG4   conformance,   with   internationalization
-       support.
-     * Ports to more systems, including DOS and Windows.
+   There is an archive of the mailing list here:
 
-   We  need  people to help with these projects. If you are interested in
-   working on them, please join the ncurses list.
+     [131]http://lists.gnu.org/archive/html/bug-ncurses            (also
+     [132]https)
 
-Other Related Resources
+Related resources
+
+   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
+
+Other resources
 
    The  distribution  provides  a  newer  version  of the terminfo-format
-   terminal  description file maintained by [20]Eric Raymond . Unlike the
-   older  version, the termcap and terminfo data are provided in the same
-   file.
+   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.
 
    You  can  find  lots  of  information  on  terminal-related topics not
-   covered in the terminfo file at [21]Richard Shuford's archive .
+   covered in the terminfo file at [140]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/gnu/ncurses/
-   2. ftp://invisible-island.net/ncurses/
-   3. http://invisible-island.net/cdk/
-   4. http://www.vexus.ca/products/CDK/
-   5. http://invisible-island.net/ded/
-   6. http://invisible-island.net/dialog/
-   7. http://lynx.isc.org/release/
-   8. http://www.ibiblio.org/mc/
-   9. http://www.mutt.org/
-  10. http://www.ncftp.com/
-  11. http://www.bostic.com/vi/
-  12. http://dione.ids.pl/~pborys/software/pinfo/
-  13. http://www.tin.org/
-  14. http://www.debian.org/Packages/unstable/text/vh.html
-  15. http://www.netsonic.fi/~walker/minicom.html
-  16. http://invisible-island.net/vile/
-  17. mailto:dickey@invisible-island.net
-  18. mailto:bug-ncurses@gnu.org
-  19. ftp://invisible-island.net/ncurses/
-  20. http://www.catb.org/~esr/terminfo/
-  21. 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