]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ANNOUNCE
ncurses 6.4 - patch 20240414
[ncurses.git] / ANNOUNCE
index e09e73177a45557238edf8d979c8ac5a3b665a66..45b1a0ea025c0d9222aa3e39d66433549d8712e1 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
-                            Announcing ncurses 5.7
+                            Announcing ncurses 6.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 encouraged the keepers of Unix
+   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
+       MacOS.
+     * 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
-   through   5.6;  very  few  applications  will  require  recompilation,
-   depending   on  the  platform.  These  are  the  highlights  from  the
-   change-log since ncurses 5.6 release.
-
-   Interface changes:
-     * generate linkable stubs for some macros:
-       getattrs
-
-   New features and improvements:
-     * library
-          + new  flavor  of  the  ncurses  library  provides  rudimentary
-            support  for  POSIX threads. Several functions are reentrant,
-            but most require either a window-level or screen-level mutex.
-            (This  is  API-compatible,  but  not  ABI-compatible with the
-            normal library).
-          + add  NCURSES_OPAQUE  symbol  to  curses.h,  will  use to make
-            structs opaque in selected configurations.
-          + add   NCURSES_EXT_FUNCS  and  NCURSES_EXT_COLORS  symbols  to
-            curses.h to make it simpler to tell if the extended functions
-            and/or colors are declared.
-          + add wresize() to C++ binding
-          + eliminate fixed-buffer vsprintf() calls in C++ binding.
-          + add  several  functions to C++ binding which wrap C functions
-            that pass a WINDOW* parameter.
-          + adapt mouse-handling code from menu library in form-library
-          + improve  tracing  for  form  library,  showing created forms,
-            fields, etc.
-          + make $NCURSES_NO_PADDING feature work for termcap interface .
-          + add  check  to  trace-file  open,  if  the  given  name  is a
-            directory, add ".log" to the name and try again.
-          + several   new   manpages:  curs_legacy.3x,  curs_memleaks.3x,
-            curs_opaque.3x and curs_threads.3x
-     * programs:
-          + modified  three  test-programs  to  demonstrate the threading
-            support in this version: ditto, rain, worm.
-          + several    new    test-programs:   demo_panels,   dots_mvcur,
-            inch_wide,    inchs,    key_name,    key_names,   savescreen,
-            savescreen.sh    test_arrays,   test_get_wstr,   test_getstr,
-            test_instr, test_inwstr and test_opaque.
-          + add adacurses-config to the Ada95 install.
-          + modify  tic  -f option to format spaces as \s to prevent them
-            from  being  lost  when  that  is  read  back  in unformatted
-            strings.
-          + The tack program is now distributed separately from ncurses.
-     * terminal database
-          + added entries:
-               o Eterm-256color, Eterm-88color and rxvt-88color
-               o aterm
-               o konsole-256color
-               o mrxvt
-               o screen.mlterm
-               o screen.rxvt
-               o teraterm4.59  is now the primary primary teraterm entry,
-                 renamed original to teraterm2.3
-               o 9term terminal
-               o Newbury Data entries
-          + updated/improved entries:
-               o gnome to version 2.22.3
-               o h19, z100
-               o konsole to version 1.6.6
-               o mlterm, mlterm+pcfkeys
-               o xterm, and building-blocks for function-keys to [3]xterm
-                 patch #230.
-
-   Major bug fixes:
-     * add   logic   to   tic  for  cancelling  strings  in  user-defined
-       capabilities (this is needed for current konsole terminfo entry).
-     * modify  mk-1st.awk  so the generated makefile rules for linking or
-       installing  shared  libraries  do not first remove the library, in
-       case it is in use, e.g., libncurses.so by /bin/sh.
-     * correct check for notimeout() in wgetch().
-     * fix a sign-extension bug in infocmp's repair_acsc() function.
-     * change winnstr() to stop at the end of the line.
-     * make Ada95 demo_panels() example work.
-     * fix for adding a non-spacing character at the beginning of a line.
-     * fill   in   extended-color   pair   to   make   colors   work  for
-       wide-characters using extended-colors.
-     * improve  refresh  of  window  on  top  of multi-column characters,
-       taking   into   account  split  characters  on  left/right  window
-       boundaries.
-     * modify  win_wchnstr()  to ensure that only a base cell is returned
-       for each multi-column character.
-     * improve waddch() and winsch() handling of EILSEQ from mbrtowc() by
-       using  unctrl()  to  display  illegal  bytes rather than trying to
-       append further bytes to make up a valid sequence.
-     * restore curs_set() state after endwin()/refresh()
-     * modify  keyname() to use "^X" form only if meta() has been called,
-       or  if  keyname() is called without initializing curses, e.g., via
-       initscr() or newterm().
-     * modify  unctrl() to check codes in 128-255 range versus isprint().
-       If  they  are not printable, and locale was set, use a "M-" or "~"
-       sequence.
-     * improve  resizeterm()  by  moving ripped-off lines, and repainting
-       the soft-keys.
-     * modify  form  library to accept control characters such as newline
-       in set_field_buffer(), which is compatible with Solaris.
-     * use  NCURSES_MOUSE_MASK() in definition of BUTTON_RELEASE(), etc.,
-       to   make   those   work   properly  with  the  --enable-ext-mouse
-       configuration
-     * correct  some  functions  in Ada95 binding which were using return
-       value from C where none was returned.
-     * reviewed/fixed issues reported by Coverity and Klocwork tools.
-
-   Portability:
-     * configure script:
-          + new options:
-
-              --disable-big-strings
-                      control  whether static string tables are generated
-                      as   single   large  strings  (to  improve  startup
-                      performance), or as array of individual strings.
-
-              --disable-relink
-                      control   whether  shared  libraries  are  relinked
-                      (during install) when rpath is enabled.
-
-              --disable-tic-depends
-                      make   explicit  whether  tic  library  depends  on
-                      ncurses/ncursesw library.
-
-              --enable-mixed-case
-                      override   the  configure  script's  check  if  the
-                      filesystem   supports  mixed-case  filenames.  This
-                      allows  one  to  control  how the terminal database
-                      maps to the filesystem. For filesystems that do not
-                      support   mixed-case,  the  library  uses  generate
-                      2-character (hexadecimal) codes for the lower-level
-                      of the filesystem terminfo database
-
-              --enable-reentrant
-                      builds  a  different  flavor of the ncurses library
-                      (ncursest)  which  improves  reentrant  use  of the
-                      library  by  reducing  global  and static variables
-                      (see  the  "--with-pthread" option for the threaded
-                      support).
-
-              --enable-weak-symbols
-                      use  weak-symbols  for  linking to the POSIX thread
-                      library,  and  use  the same soname for the ncurses
-                      shared  library  as the normal library (caveat: the
-                      ABI is for the threaded library, which makes global
-                      data accessed via functions).
-
-              --with-pthread
-                      build  with  the  POSIX thread library (tested with
-                      AIX,   Linux,   FreeBSD,   OpenBSD,  HPUX,  IRIX64,
-                      Solaris, Tru64).
-
-              --with-ticlib
-                      build/install   the   tic-support  functions  in  a
-                      separate library
-
-          + improved options:
-
-              --enable-ext-colors
-                      requires the wide-character configuration.
-
-              --with-chtype
-                      ignore  option  value "unsigned" is always added to
-                      the   type   in   curses.h;   do   the   same   for
-                      --with-mmask-t.
-
-              --with-dmalloc
-                      build-fix for redefinition of strndup.
-
-              --with-hashed-db
-                      accepts  a parameter which is the install-prefix of
-                      a given Berkeley Database.
-
-              --with-hashed-db
-                      the $LIBS environment variable overrides the search
-                      for the db library.
-
-              --without-hashed-db
-                      assumed when "--disable-database" is used.
-
-     * other configure/build issues:
-          + build-fixes for LynxOS
-          + modify  shared-library  rules  to  allow  FreeBSD  3.x to use
-            rpath.
-          + build-fix for FreeBSD "contemporary" TTY interface.
-          + build-fixes for AIX with libtool.
-          + build-fixes for Darwin and libtool.
-          + modify BeOS-specific ifdef's to build on Haiku.
-          + corrected  gcc  options  for  building  shared  libraries  on
-            Solaris and IRIX64.
-          + change  shared-library  configuration for OpenBSD, make rpath
-            work.
-          + build-fixes for using libutf8, e.g., on OpenBSD 3.7
-          + add   "-e"  option  in  ncurses/Makefile.in  when  generating
-            source-files  to  force earlier exit if the build environment
-            fails unexpectedly.
-          + add support for shared libraries for QNX.
-          + change  delimiter  in  MKlib_gen.sh from '%' to '@', to avoid
-            substitution  by  IBM xlc to '#' as part of its extensions to
-            digraphs.
-     * library:
-          + rewrite  wrapper  for  wcrtomb(),  making it work on Solaris.
-            This  is  used in the form library to determine the length of
-            the buffer needed by field_buffer.
-          + add/use  configure  script  macro  CF_SIG_ATOMIC_T,  use  the
-            corresponding type for data manipulated by signal handlers.
-          + set locale in misc/ncurses-config.in since it uses a range
-          + disable  GPM  mouse  support  when  $TERM  does not happen to
-            contain  "linux",  since  Gpm_Open()  no  longer  limits  its
-            assertion  to  terminals  that  it might handle, e.g., within
-            "screen" in xterm.
-          + reset mouse file-descriptor when unloading GPM library.
-     * test programs:
-          + update  test  programs to build/work with various UNIX curses
-            for comparisons.
-
-                              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.
+     * captoinfo, a termcap conversion tool
+     * clear, utility for clearing the screen
+     * infocmp, the terminfo decompiler
+     * tabs, set tabs on a terminal
+     * tic, the terminfo compiler
+     * toe, list (table of) terminfo entries
+     * tput,  utility  for  retrieving  terminal  capabilities  in  shell
+       scripts
+     * tset, to initialize the terminal
+
+   Full manual pages are provided for the library and tools.
+
+   The ncurses distribution is available at ncurses' homepage:
+
+     https://invisible-island.net/archives/ncurses/ or
+     https://invisible-mirror.net/archives/ncurses/ .
+
+   It is also available at the GNU distribution site
+
+     https://ftp.gnu.org/gnu/ncurses/ .
+
+Release Notes
+
+   These notes are for ncurses 6.4, released December 31, 2022.
+
+   This  release  is  designed  to  be source-compatible with ncurses 5.0
+   through  6.3; providing extensions to the application binary interface
+   (ABI).  Although  the  source  can  still be configured to support the
+   ncurses  5  ABI, the reason for the release is to reflect improvements
+   to the ncurses 6 ABI and the supporting utility programs.
+
+   There  are,  of  course,  numerous  other improvements, listed in this
+   announcement.
+
+   The   most  important  bug-fixes/improvements  dealt  with  robustness
+   issues.  The  release notes also mention some other bug-fixes, but are
+   focused  on  new  features and improvements to existing features since
+   ncurses 6.3 release.
+
+  Library improvements
+
+    New features
+
+   There are no new features in this release.
+
+    Other improvements
+
+   These are improvements to existing features:
+     * modify  delscreen  to  more  effectively delete all windows on the
+       given screen.
+     * modify  wnoutrefresh  to  call  pnoutrefresh if its parameter is a
+       pad,  rather than treating it as an error, and modify new_panel to
+       permit its window-parameter to be a pad
+     * modify  curses_trace()  to  show  the trace-mask as symbols, e.g.,
+       TRACE_ORDINARY, DEBUG_LEVEL(3).
+     * improve  checks  for valid mouse events when an intermediate mouse
+       state is not part of the mousemask specified by the caller
+     * allow extended-color number in opts parameter of wattr_on.
+     * improve _tracecchar_t2 formatting of base+combining character.
+     * trim  out some unwanted linker options from ncurses*config and .pc
+       files seen in Fedora 36+.
+     * improve shell-scripts with shellcheck
+     * improve use of "trap" in shell scripts, using a script.
+     * modify make-tar.sh scripts to make timestamps more predictable.
+
+   These are corrections to existing features:
+     * modify  misc/gen-pkgconfig.in  to  allow  for  the  case where the
+       library  directory  does  not  yet  exist, since this is processed
+       before doing an install
+     * set trailing null on string passed from winsnstr to wins_nwstr.
+     * modify  waddch_literal  to  allow  for double-width base character
+       when merging a combining character
+
+  Program improvements
+
+   Several improvements were made to the utility programs:
+
+   infocmp
+
+          + rewrite  canonical_name  function of infocmp to ensure buffer
+            size
+          + improve  readability  of  long parameterized expressions with
+            the  infocmp  "-f"  option  by  allowing  split before a "%p"
+            marker.
+          + modify   verbose-option   of  infocmp,  tic,  toe  to  enable
+            debug-tracing if that is configured.
+
+   tabs
+          limit tab-stop values to max-columns
+
+   tic
+          add   consistency   check   in   tic  for  u6/u7/u8/u9  and  NQ
+          capabilities.
+
+   tput
+          corrected use of original tty-modes in init/reset subcommands
+
+    Examples
+
+   Along  with  the  library and utilities, improvements were made to the
+   ncurses-examples.  Most  of  this  activity  aimed  at  improving  the
+   test-packages:
+     * add  minimal  -h  (usage)  and  -V  (version)  getopt logic to all
+       ncurses-examples programs.
+     * fix an error in "@" command in test/ncurses.c F-menu
+     * add curses_trace to ifdef's for START_TRACE in test/test.priv.h
+     * improve pthread-configuration for test/worm.c
+     * add setlocale call to several test-programs.
+     * workaround  in  test/picsmap.c  for  use of floating point for rgb
+       values by ImageMagick 6.9.11, which appears to use the wrong upper
+       limit.
+     * use  static libraries for AdaCurses test-package for Mageia, since
+       no gprbuild package is available.
+     * install  Ada95  sample  programs  in  libexecdir, adding a wrapper
+       script to invoke those.
+     * install  ncurses-examples programs in libexecdir, adding a wrapper
+       script to invoke those.
+
+   There are other new demo/test programs and reusable examples:
+
+   test/combine
+          demonstrate combining characters
+
+   test/test_delwin
+          demonstrate deleting a window
+
+   test/test_mouse
+          observe  mouse  events  in  the  raw terminal or parsed ncurses
+          modes
+
+   test/test_unget_wch
+          demonstrate the unget_wch and unget functions
+
+  Terminal database
+
+   There are several new terminal descriptions:
+     * mosh
+     * mosh-256color
+     * teken-16color
+     * teken-sc
+     * teken-vt
+     * xgterm
+
+   There  are  many  changes to existing terminal descriptions. Some were
+   updates to several descriptions:
+     * make description-fields distinct
+     * fix errata in description fields
+     * add/use several building-blocks:
+          + aixterm+sl
+          + ansi+cpr
+          + apollo+vt132
+          + decid+cpr
+          + ncr260vp+sl
+          + wyse+sl
+          + x10term+sl
+          + xterm+acs
+          + xterm+alt47
+
+   while  others  affected specific descriptions. These were retested, to
+   take into account changes by their developers:
+     * kitty
+     * teken
+
+   while  these are specific fixes based on reviewing documentation, user
+   reports, or warnings from tic:
+
+   att610+cvis0
+          amended note as per documentation for att610, att620, att730
+
+   kon, kon2, jfbterm
+          revise to undo "linux2.6" change to smacs/rmacs/enacs
+
+   st-0.6
+          add dim, ecma+strikeout
+
+   foot+base
+          add xterm+sl-alt
+
+   dec+sl
+          correct dsl in dec+sl
+
+   mintty and tmux
+          correct setal in mintty/tmux entries, add to vte-2018
+
+   nsterm
+          modify nsterm to use xterm+alt1049
+
+   putty
+          modify putty to use xterm+alt1049
+
+   vte-2018
+          add blink and setal
+
+   A few entries use extensions (user-defined terminal capabilities):
+     * use  ansi+enq  and  decid+cpr in cases where the terminal probably
+       supported the u6-u9 extension
+     * remove u6-u9 from teken-2018
+     * use  NQ  to flag entries where the terminal does not support query
+       and response
+     * add/use bracketed+paste to help identify terminals supporting this
+       xterm feature
+     * modify  samples  for xterm mouse 1002/1003 modes to use 1006 mode,
+       and also provide for focus in/out responses
+     * xterm  patch  #371 supports DEC-compatible status-line. add dec+sl
+       to  xterm-new, per xterm #371, add xterm-p371, add xterm-p370, for
+       use  in  older  terminals, and set "xterm-new" to "xterm-p370" (to
+       ease adoption).
+
+  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 NEWS file but treated sketchily in manual pages.
+
+   In  addition  to  providing  background  information  to explain these
+   features   and   show   how   they  evolved,  there  are  corrections,
+   clarifications, etc.:
+     * Corrections:
+          + remove a stray '/' from description of %g in terminfo(5).
+          + correct/improve  font-formatting in curs_getch.3x, as well as
+            other manual pages.
+     * New/improved history and portability sections:
+          + add portability notes for delscreen and delwin in manual.
+          + improve curs_slk.3x discussion of extensions and portability
+     * Other improvements:
+          + improve  curs_bkgd.3x,  explaining  that  bkgdset  can affect
+            results for bkgd
+          + add note on portable memory-leak checking in curs_memleaks.3x
+          + expanded description in resizeterm.3x
+          + add  section  on  releasing  memory  to  curs_termcap.3x  and
+            curs_terminfo.3x manpages.
+          + add  clarification  of  the  scope  of  dynamic  variables in
+            terminfo(5).
+          + improve formatting of ncurses-intro.html and hackguide.html
+          + improve curs_clear.3x links to other pages
+          + update  ncurses-howto,  making documentation fixes along with
+            corrections to example programs.
+          + use  newer  version  1.36 of gnathtml for generating Ada html
+            files.
+          + update external links in Ada95.html
+
+   There  are  no new manual pages (all of the manual page updates are to
+   existing pages).
+
+  Interesting bug-fixes
+
+   While  there  were  many bugs fixed during development of ncurses 6.4,
+   only  a  few  (the  reason  for  this release) were both important and
+   interesting. Most of the bug-fixes were for local issues which did not
+   affect  compatibility across releases. Since those are detailed in the
+   NEWS file no elaboration is needed here.
+
+   The  interesting  bugs were those dealing with memory leaks and buffer
+   overflows.  Although  the utilities are designed for text files (which
+   they do properly), some choose to test them with non-text files.
+     * Text  files  contain  no  embedded  nulls.  Also,  they end with a
+       newline.  Feeding tic non-text files exposed a few cases where the
+       program  did  not  check  for  those  issues. As a result, further
+       processing  of the input found limit-checks whose assumptions were
+       invalid.
+     * Fixing  the limit-checks (first) found a problem with tic managing
+       the  list  of  strings  in  a terminal description. In merging two
+       terminal  descriptions  (i.e.,  the  "use="  feature), tic was not
+       allocating  a  complete copy. A quick repair for that introduced a
+       memory leak.
+     * The  checks  for non-text files are improved (i.e., embedded nulls
+       in  the  input  file  will  cause  tic  to  reject  it rather than
+       attempting to process it).
+     * The string allocations in tic are likewise improved.
+
+  Configuration changes
+
+    Major changes
+
+   There  are  no  major  changes.  No  new  options  were added. Several
+   improvements were made to configure checks.
+
+    Configuration options
+
+   There are a few new/modified configure options:
+
+   --with-abi-version
+          add ABI 7 defaults to configure script.
+
+   --with-caps
+          add   warning   in  configure  script  if  file  specified  for
+          "--with-caps" does not exist.
+
+   --with-manpage-format
+          bzip2 and xz compression are now supported
+
+   --with-xterm-kbs
+          add    check/warning    in    configure    script   if   option
+          "--with-xterm-kbs" is missing or inconsistent
+
+  Portability
+
+   Many  of  the  portability  changes  are implemented via the configure
+   script:
+     * amend  configure option's auto-search to account for systems where
+       none of the directories known to pkg-config exist
+     * corrected regex needed for older pkg-config used in Solaris 10
+     * improve  handling of --with-pkg-config-libdir option, allowing for
+       the case where either $PKG_CONFIG_LIBDIR or the option value has a
+       colon-separated list of directories
+     * if   the   --with-pkg-config-libdir   option  is  not  given,  use
+       ${libdir}/pkgconfig as a default
+     * improve search-path check for pkg-config, e.g., for Debian testing
+       which installs pkg-config with architecture-prefixes.
+     * build-fix for cross-compiling to MingW, conditionally add -lssp
+     * improve configure check for getttynam
+     * fixes to build with dietlibc:
+          + add configure check for fpathconf
+          + add   configure   check   for  math  sine/cosine,  needed  in
+            test/tclock, and eliminate pow() from test/hanoi
+          + use wcsnlen as an alternative to wmemchr if it is not found
+     * modify  configure macro CF_BUILD_CC to check if the build-compiler
+       works,  rather  than that it is different from the cross-compiler,
+       e.g.,  to  accommodate  a  compiler  which  can be used for either
+       purpose with different flags
+     * modify  configure/scripts  to work around interference by GNU grep
+       3.8
+
+   Here are some of the other portability fixes:
+     * change  man_db.renames  to  template,  to  handle  ncurses*-config
+       script with the --extra-suffix configure option.
+     * update   CF_XOPEN_SOURCE  macro,  adding  variants  "gnueabi"  and
+       "gnueabihf" to get _DEFAULT_SOURCE special case, as well as adding
+       GNU  libc  suffixes for "abi64", "abin32", "x32" to distinguish it
+       from other libc flavors.
+     * work  around  musl's  nonstandard  use  of  feature test macros by
+       adding  a  definition  for NCURSES_WIDECHAR to the generated ".pc"
+       and *-config files.
+     * use  "command  -v"  rather than "type" in Ada95/gen/Makefile.in to
+       fix a portability issue.
+     _________________________________________________________________
+
+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
      * 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  256-color  terminals,  such  as  modern  xterm, when
-       configured using the --enable-ext-colors option.
+     * 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 direct-color terminals, such as modern xterm.
+     * 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
        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
+     * The tic/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.
+     * A BSD-like 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 library meets the XSI requirement that every macro entry point
-       have  a  corresponding  function  which may be linked (and will be
+       has  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 Additional Reading
+       section of the 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
+   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):
+          https://wiki.debian.org/Aptitude
 
    cdk
           Curses Development Kit
-          [4]http://invisible-island.net/cdk/
-          [5]http://www.vexus.ca/products/CDK/
+
+          https://invisible-island.net/cdk/
 
    ded
           directory-editor
-          [6]http://invisible-island.net/ded/
+
+          https://invisible-island.net/ded/
 
    dialog
           the  underlying  application used in Slackware's setup, and the
-          basis for similar applications on GNU/Linux.
-          [7]http://invisible-island.net/dialog/
+          basis   for  similar  install/configure  applications  on  many
+          systems.
+
+          https://invisible-island.net/dialog/
 
    lynx
-          the character-screen WWW browser
-          [8]http://lynx.isc.org/release/
+          the text WWW browser
 
-   Midnight Commander
-          file manager
-          [9]http://www.ibiblio.org/mc/
+          https://lynx.invisible-island.net/
 
    mutt
           mail utility
-          [10]http://www.mutt.org/
+
+          http://www.mutt.org/
 
    ncftp
           file-transfer utility
-          [11]http://www.ncftp.com/
+
+          https://www.ncftp.com/
 
    nvi
-          New vi versions 1.50 are able to use ncurses versions 1.9.7 and
-          later.
-          [12]http://www.bostic.com/vi/
+          New vi uses ncurses.
+
+          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.
-          [13]https://alioth.debian.org/projects/pinfo/
+          https://ranger.github.io/
 
    tin
-          newsreader, supporting color, MIME [14]http://www.tin.org/
+          newsreader, supporting color, MIME
+
+          http://www.tin.org/
+
+   vifm
+          File manager with vi like keybindings
+
+          https://vifm.info/
 
    as well as some that use ncurses for the terminfo support alone:
 
    minicom
-          terminal emulator
-          [15]http://alioth.debian.org/projects/minicom/
+          terminal emulator for serial modem connections
+
+          https://alioth.debian.org/projects/minicom/
+
+   mosh
+          a replacement for ssh.
+
+          https://mosh.org/
+
+   tack
+          terminfo action checker
+
+          https://invisible-island.net/ncurses/tack.html
+
+   tmux
+          terminal multiplexor
+
+          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).
+          https://invisible-island.net/vile/
+
+   and finally, those which use only the termcap interface:
+
+   emacs
+          text editor
+
+          https://www.gnu.org/software/emacs/
+
+   less
+          The  most  commonly  used  pager  (a program that displays text
+          files).
+
+          http://www.greenwoodsoftware.com/less/
+
+   screen
+          terminal multiplexor
+
+          https://www.gnu.org/software/screen/
+
+   vim
+          text editor
+
+          https://www.vim.org/
 
-Who's Who and What's What
+Development activities
 
-   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.
+   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.
 
-   To   join   the   ncurses   mailing   list,   please  write  email  to
-   bug-ncurses-request@gnu.org containing the line:
-             subscribe <name>@<host.domain>
+   Ongoing development work is done by Thomas E. Dickey. Thomas E. Dickey
+   has  acted  as  the maintainer for the Free Software Foundation, which
+   held  a  copyright  on ncurses for releases 4.2 through 6.1. Following
+   the release of ncurses 6.1, effective as of release 6.2, copyright for
+   ncurses  reverted  to  Thomas  E.  Dickey  (see  the  ncurses  FAQ for
+   additional information).
+
+   Contact the current maintainers at
+
+     bug-ncurses@gnu.org
+
+   To join the ncurses mailing list, please write email to
+
+     bug-ncurses-request@gnu.org
+
+   containing the line:
+
+     subscribe <name>@<host.domain>
 
    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/ .
+   Beta versions of ncurses are made available at
+
+     https://invisible-island.net/archives/ncurses/current/ and
+     https://invisible-mirror.net/archives/ncurses/current/ .
+
+   Patches to the current release are made available at
+
+     https://invisible-island.net/archives/ncurses/6.3/ and
+     https://invisible-mirror.net/archives/ncurses/6.3/ .
+
+   There is an archive of the mailing list here:
 
-Future Plans
+     http://lists.gnu.org/archive/html/bug-ncurses (also https)
 
-     * Extended-level   XPG4   conformance,   with   internationalization
-       support.
-     * Ports to more systems, including DOS and Windows.
+Related resources
 
-   We  need  people to help with these projects. If you are interested in
-   working on them, please join the ncurses list.
+   The  release notes make scattered references to these pages, which may
+   be interesting by themselves:
+     * ncurses licensing
+     * Symbol versioning in ncurses
+     * Comments on ncurses versus slang (S-Lang)
+     * Comments on OpenBSD
+     * tack - terminfo action checker
+     * tctest - termcap library checker
+     * Terminal Database
 
-Other Related Resources
+Other resources
 
    The  distribution  provides  a  newer  version  of the terminfo-format
-   terminal description file once maintained by [20]Eric Raymond . Unlike
-   the  older  version, the termcap and terminfo data are provided in the
-   same  file,  and provides several user-definable extensions beyond the
+   terminal description file once maintained by 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 .
-
-References
-
-   1. ftp://ftp.gnu.org/gnu/ncurses/
-   2. ftp://invisible-island.net/ncurses/
-   3. http://invisible-island.net/xterm/xterm.log.html#xterm_230
-   4. http://invisible-island.net/cdk/
-   5. http://www.vexus.ca/products/CDK/
-   6. http://invisible-island.net/ded/
-   7. http://invisible-island.net/dialog/
-   8. http://lynx.isc.org/release/
-   9. http://www.ibiblio.org/mc/
-  10. http://www.mutt.org/
-  11. http://www.ncftp.com/
-  12. http://www.bostic.com/vi/
-  13. https://alioth.debian.org/projects/pinfo/
-  14. http://www.tin.org/
-  15. http://alioth.debian.org/projects/minicom/
-  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
+   covered  in  the  terminfo  file  at  Richard  Shuford's archive . The
+   collection of computer manuals at bitsavers.org has also been useful.
+
+     * Overview
+     * Release Notes
+          + Library improvements
+               o New features
+               o Other improvements
+          + Program improvements
+               o Utilities
+               o Examples
+          + Terminal database
+          + Documentation
+          + Interesting bug-fixes
+          + Configuration changes
+               o Major changes
+               o Configuration options
+          + Portability
+     * Features of ncurses
+     * Applications using ncurses
+     * Development activities
+     * Related resources
+     * Other resources