]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ANNOUNCE
ncurses 6.4 - patch 20240420
[ncurses.git] / ANNOUNCE
index 7b5f4efa69ae44ea29f14dc42e07bdc41dd5ca87..45b1a0ea025c0d9222aa3e39d66433549d8712e1 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
-
-                            Announcing ncurses 5.2
-
-   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.
-
-   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.
-
-   The ncurses code was developed under GNU/Linux. It should port easily
-   to any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2
-   Warp!
+                            Announcing ncurses 6.4
+
+Overview
+
+   The  ncurses  (new  curses)  library  is  a free software emulation of
+   curses  in  System  V  Release  4.0 (SVr4), and more. It uses terminfo
+   format,  supports  pads  and  color  and multiple highlights and forms
+   characters and function-key mapping, and has all the other SVr4-curses
+   enhancements  over  BSD curses. SVr4 curses became the basis of X/Open
+   Curses.
+
+   In  mid-June  1995,  the  maintainer of 4.4BSD curses declared that he
+   considered  4.4BSD curses obsolete, and encouraged the keepers of unix
+   releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
+
+   Since 1995, ncurses has been ported to many systems:
+     * 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/pub/gnu/ncurses.
-   It is also available at [2]ftp://dickey.his.com/ncurses.
-
-                                 Release Notes
-
-   This release is designed to be upward compatible from ncurses 5.0 and
-   5.1; very few applications will require recompilation, depending on
-   the platform. These are the highlights from the change-log since
-   ncurses 5.1 release.
-
-   Interface changes:
-     * change type of ospeed variable back to short to match its use in
-       legacy applications. It was altered after ncurses 4.2 to speed_t
-       to repair a type mismatch which was introduced after 1.9.4 in
-       1995. The principal users of termcap continued to use short, which
-       is not the same size.
-       NOTE: A few applications will have to be recompiled (about 1% of
-       the programs in a typical Linux distribution, 10% of the programs
-       that use ncurses). These are easy to identify with nm or strings.
-     * remove a private function _nc_can_clear_with(), which was built
-       with the configure --enable-expanded option but not used.
-     * add several private functions (prefixed with "_nc_") for tracing
-       chtype values in the debug library, and for better access and
-       buffer limit checking.
-
-   New features and improvements:
-     * rewrote tgoto() to make it better support existing termcap
-       applications which use hardcoded strings rather than obtain all of
-       their information from the termcap file. If the string does not
-       appear to be a terminfo string (i.e., does not refer to a "%p"
-       parameter, or terminfo-style padding), and termcap support is
-       configured, tgoto() will interpret it as termcap. Otherwise, as
-       before, it will use tparm().
-     * to ensure that the tgoto() changes work properly, added checks to
-       tic which report capabilities that do not reference the expected
-       number of parameters.
-     * new configure script options:
-          + option --disable-root-environ adds runtime checks which tell
-            ncurses to disregard $TERMINFO and similar environment
-            variables if the current user is root, or running
-            setuid/setgid.
-          + option --disable-assumed-color allows you to use the pre-5.1
-            convention of default colors used for color-pair 0 to be
-            configured (see assume_default_colors()).
-          + implement configure script options that transform installed
-            program names, e.g., --program-prefix, including the manpage
-            names and cross references.
-          + option --with-database allows you to specify a different
-            terminfo source-file to install. On OS/2 EMX, the default is
-            misc/emx.src, otherwise misc/terminfo.src
-          + option --with-default-terminfo-dir allows you to specify the
-            default terminfo database directory.
-          + option --with-libtool allows you to build with libtool.
-            NOTE: libtool uses a different notation for numbering shared
-            library versions from the existing ncurses configuration.
-          + option --with-manpage-tbl causes the manpages to be
-            preprocessed by tbl(1) prior to installation,
-          + option --without-curses-h causes the installation process to
-            install curses.h as ncurses.h and make appropriate changes to
-            headers and manpages.
-     * modified configure script options:
-          + change symbol used by the --install-prefix configure option
-            from INSTALL_PREFIX to DESTDIR (the latter has become common
-            usage although the name is misleading).
-          + modify ld -rpath options (e.g., Linux, and Solaris) to use an
-            absolute pathname for the build tree's lib directory,
-            avoiding confusion with directories relative to the current
-            one with the installed programs.
-          + modified misc/run_tic.in to use tic -o, to eliminate
-            dependency on $TERMINFO variable for installs.
-     * terminfo database:
-          + updated xterm terminfo entries to match XFree86 xterm patch
-            #146.
-          + added amiga-vnc, Matrix Orbital, and QNX qansi to
-            misc/terminfo.src.
-          + added os2 entry to misc/emx.src.
-          + add S0 and E0 extensions to screen's terminfo entry since
-            otherwise the FreeBSD port makes it pass termcap equivalents
-            to tgoto, which would be misinterpreted by older versions of
-            ncurses.
-     * improvements to program usability:
-          + modify programs to use curses_version() string to report the
-            version of ncurses with which they are compiled rather than
-            the NCURSES_VERSION string. The function returns the patch
-            level in addition to the major and minor version numbers.
-          + modify tput program so it can be renamed or invoked via a
-            link as 'reset' or 'init', producing the same effect as
-            tput reset or tput init.
-          + add error checking to infocmp's -v and -m options to ensure
-            that the option value is indeed a number.
-     * improved performance:
-          + replace a lookup table in lib_vidattr.c used to decode
-            no_color_video with a logic expression which is faster.
-
-   Major bug fixes:
-     * correct manlinks.sed script introduced in ncurses 5.1 to avoid
-       using ERE "\+", which is not understood by standard versions of
-       sed. This happens to work with GNU sed, but is not portable, and
-       was the initial motivation for this release.
-     * remove "hpux10.*" case from CF_SHARED_OPTS configure script macro.
-       This differed from the "hpux*" case by using reversed symbolic
-       links, which made the 5.1 version not match the configuration of
-       5.0 shared libraries.
-     * guard against corrupt terminfo data:
-          + modify tparm() to disallow arithmetic on strings, analyze the
-            varargs list to read strings as strings and numbers as
-            numbers.
-          + modify tparm()'s internal function spop() to treat a null
-            pointer as an empty string.
-          + modify parse_format() in lib_tparm.c to ignore precision if
-            it is longer than 10000.
-          + rewrote limit checks in lib_mvcur.c using new functions
-            _nc_safe_strcat(), etc. Made other related changes to check
-            lengths used for strcat() and strcpy().
-     * corrections to screen optimization:
-          + added special case in lib_vidattr.c to reset underline and
-            standout for devices that have no sgr0 defined.
-          + change handling of non_dest_scroll_region in tty_update.c to
-            clear text after it is shifted in rather than before shifting
-            out. Also correct row computation.
-          + modify rs2 capability in xterm-r6 and similar entries where
-            cursor save/restore bracketed the sequence for resetting
-            video attributes. The cursor restore would undo that.
-     * UTF-8 support:
-          + when checking LC_ALL, LC_CTYPE, and LANG environment
-            variables for UTF-8 locale, ignore those which are set to an
-            empty value, as per SUSV2.
-          + encode 0xFFFD in UTF-8 with 3 bytes, not 2.
-          + modify _nc_utf8_outch() to avoid sign-extension when checking
-            for out-of-range value.
-     * other library fixes:
-          + added checks for an empty $HOME environment variable, to
-            avoid retrieving terminfo descriptions from ./.terminfo .
-          + change functions _nc_parse_entry() and postprocess_termcap()
-            to avoid using strtok(), because it is non-reentrant.
-          + initialize fds[] array to 0's in _nc_timed_wait(); apparently
-            poll() only sets the revents members of that array when there
-            is activity corresponding to the related file.
-          + add a check for null pointer in Make_Enum_Type().
-          + fix a heap problem with the c++ binding.
-          + correct missing includes for <string.h> in several places,
-            including the C++ binding. This is not noted by gcc unless we
-            use the -fno-builtin option.
-     * several fixes for tic:
-          + add a check for empty buffers returned by fgets() in
-            comp_scan.c next_char() function, in case tic is run on a
-            non-text file (fixes a core dump).
-          + modify tic to verify that its inputs are really files, in
-            case someone tries to read a directory (or /dev/zero).
-          + correct an uninitialized parameter to open_tempfile() in
-            tic.c which made "tic -I" give an ambiguous error message
-            about tmpnam.
-          + correct logic in adjust_cancels(), which did not check both
-            alternatives when reclassifying an extended name between
-            boolean, number and string, causing an infinite loop in tic.
-     * using new checks in tic for parameter counts in capability
-       strings, found/fixed several errors both in the terminfo database
-       and in the include/Caps file.
-          + modified several terminfo capability strings, including the
-            definitions for setaf, setab, in include/Caps to indicate
-            that the entries are parameterized. This information is used
-            to tell which strings are translated when converting to
-            termcap. This fixes a problem where the generated termcap
-            would contain a spurious "%p1" for the terminfo "%p1%d".
-          + correct parameter counts in include/Caps for dclk as well as
-            some printer-specific capabilities: csnm, defc, scs, scsd,
-            smgtp, smglp.
-     * various fixes for install scripts used to support configure
-       --srcdir and --with-install-prefix.
-     * correct several mismatches between manpage filename and ".TH"
-       directives, renaming dft_fgbg.3x to default_colors.3x and
-       menu_attribs.3x to menu_attributes.3x.
-
-   Portability:
-     * configure script:
-          + newer config.guess, config.sub, including changes to support
-            OS/2 EMX. The configure script for OS/2 EMX still relies on a
-            patch since there is no (working) support for that platform
-            in the main autoconf distribution.
-          + make configure script checks on variables $GCC and $GXX
-            consistently compare against 'yes' rather than test if they
-            are nonnull, since either may be set to the corresponding
-            name of the C or C++ compiler.
-          + change configure script to use AC_CANONICAL_SYSTEM rather
-            than AC_CANONICAL_HOST, which means that configure --target
-            will set a default program-prefix.
-          + modify the check for big-core to force a couple of memory
-            accesses, which may work as needed for older/less-capable
-            machines (if not, there's still the explicit configure
-            option).
-          + modify configure test for tcgetattr() to allow for old
-            implementations, e.g., on BeOS, which only defined it as a
-            macro.
-          + add configure check for filesystems (such as OS/2 EMX) which
-            do not distinguish between upper/lowercase filenames, use
-            this to fix tags rules in makefiles.
-          + add MKncurses_def.sh to generate fallback definitions for
-            ncurses_cfg.h, to quiet gcc -Wundef warnings, modified
-            ifdef's in code to consistently use "#if" rather than
-            "#ifdef".
-          + change most remaining unquoted parameters of test in
-            configure script to use quotes, for instance fixing a problem
-            in the --disable-database option.
-          + modify scripts so that "make install.data" works on OS/2 EMX.
-          + modify scripts and makefiles so the Ada95 directory builds on
-            OS/2 EMX.
-     * library:
-          + replaced case-statement in _nc_tracebits() for CSIZE with a
-            table to simplify working around implementations that define
-            random combinations of the related macros to zero.
-          + improved OS/2 mouse support by retrying as a 2-button mouse
-            if code fails to set up a 3-button mouse.
-          + added private entrypoint _nc_basename(), used to consolidate
-            related code in progs, as well as accommodating OS/2 EMX
-            pathnames.
-          + alter definition of NCURSES_CONST to make it non-empty.
-          + redefine 'TEXT' in menu.h for AMIGA, since it is reported to
-            have an (unspecified) symbol conflict.
-     * programs:
-          + modified progs/tset.c and tack/sysdep.c to build with sgttyb
-            interface if neither termio or termios is available. Tested
-            this with FreeBSD 2.1.5 (which does have termios - but the
-            sgttyb does work).
-
-                              Features of Ncurses
-
-   The ncurses package is fully compatible with SVr4 (System V Release 4)
-   curses:
-     * All 257 of the SVr4 calls have been implemented (and are
-       documented).
-     * Full support for SVr4 curses features including keyboard mapping,
-       color, forms-drawing with ACS characters, and automatic
-       recognition of keypad and function keys.
-     * An emulation of the SVr4 panels library, supporting a stack of
-       windows with backing store, is included.
-     * An emulation of the SVr4 menus library, supporting a uniform but
-       flexible interface for menu programming, is included.
-     * An emulation of the SVr4 form library, supporting data collection
-       through on-screen forms, is included.
-     * Binary terminfo entries generated by the ncurses tic(1)
-       implementation are bit-for-bit-compatible with the entry format
-       SVr4 curses uses.
-     * The utilities have options to allow you to filter terminfo entries
-       for use with less capable curses/terminfo versions such as the
-       HP/UX and AIX ports.
+     * 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
-       curses specification, XSI curses (that is, it implements all BASE
-       level features, but not all EXTENDED features). Most
-       EXTENDED-level features not directly concerned with wide-character
-       support are implemented, including many function calls not
-       supported under SVr4 curses (but portability of all calls is
-       documented so you can use the SVr4 subset only).
-     * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost
-       corner of the screen if your terminal has an insert-character
+     * The  API  is 8-bit clean and base-level conformant with the X/OPEN
+       curses  specification, XSI curses (that is, it implements all BASE
+       level  features,  and  most  EXTENDED  features). It includes many
+       function calls not supported under SVr4 curses (but portability of
+       all calls is documented so you can use the SVr4 subset only).
+     * Unlike  SVr3 curses, ncurses can write to the rightmost-bottommost
+       corner  of  the  screen  if  your terminal has an insert-character
        capability.
      * Ada95 and C++ bindings.
-     * Support for mouse event reporting with X Window xterm and OS/2
-       console windows.
+     * Support  for mouse event reporting with X Window xterm and FreeBSD
+       and OS/2 console windows.
      * Extended mouse support via Alessandro Rubini's gpm package.
-     * The function wresize() allows you to resize windows, preserving
+     * The  function  wresize  allows  you  to resize windows, preserving
        their data.
-     * The function use_default_colors() allows you to use the terminal's
+     * The  function  use_default_colors allows you to use the terminal's
        default colors for the default color pair, achieving the effect of
        transparent colors.
-     * The functions keyok() and define_key() allow you to better control
-       the use of function keys, e.g., disabling the ncurses KEY_MOUSE,
-       or by defining more than one control sequence to map to a given
-       key code.
-     * Support for 16-color terminals, such as aixterm and XFree86 xterm.
-     * Better cursor-movement optimization. The package now features a
+     * The functions keyok and define_key allow you to better control the
+       use of function keys, e.g., disabling the ncurses KEY_MOUSE, or by
+       defining  more  than  one  control  sequence to map to a given key
+       code.
+     * Support for 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
        or System V's.
-     * Super hardware scrolling support. The screen-update code
-       incorporates a novel, simple, and cheap algorithm that enables it
-       to make optimal use of hardware scrolling, line-insertion, and
-       line-deletion for screen-line movements. This algorithm is more
-       powerful than the 4.4BSD curses quickch() routine.
-     * Real support for terminals with the magic-cookie glitch. The
-       screen-update code will refrain from drawing a highlight if the
-       magic- cookie unattributed spaces required just before the
-       beginning and after the end would step on a non-space character.
-       It will automatically shift highlight boundaries when doing so
-       would make it possible to draw the highlight without changing the
+     * Super   hardware   scrolling   support.   The  screen-update  code
+       incorporates  a novel, simple, and cheap algorithm that enables it
+       to  make  optimal  use  of hardware scrolling, line-insertion, and
+       line-deletion  for  screen-line  movements. This algorithm is more
+       powerful than the 4.4BSD curses quickch routine.
+     * Real  support  for  terminals  with  the  magic-cookie glitch. The
+       screen-update  code  will  refrain from drawing a highlight if the
+       magic-   cookie  unattributed  spaces  required  just  before  the
+       beginning  and  after the end would step on a non-space character.
+       It  will  automatically  shift  highlight boundaries when doing so
+       would  make it possible to draw the highlight without changing the
        visual appearance of the screen.
-     * It is possible to generate the library with a list of pre-loaded
-       fallback entries linked to it so that it can serve those terminal
-       types even when no terminfo tree or termcap file is accessible
-       (this may be useful for support of screen-oriented programs that
+     * It  is  possible to generate the library with a list of pre-loaded
+       fallback  entries linked to it so that it can serve those terminal
+       types  even  when  no  terminfo tree or termcap file is accessible
+       (this  may  be useful for support of screen-oriented programs that
        must run in single-user mode).
-     * The tic(1)/captoinfo utility provided with ncurses has the ability
-       to translate many termcaps from the XENIX, IBM and AT&T extension
+     * 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
-       system directory. This feature makes it easier for users to have
-       personal terminfo entries without giving up access to the system
+       entries  from  $HOME/.terminfo  if  it exists, and compile to that
+       directory  if  it  exists  and the user has no write access to the
+       system  directory.  This feature makes it easier for users to have
+       personal  terminfo  entries without giving up access to the system
        terminfo directory.
-     * You may specify a path of directories to search for compiled
-       descriptions with the environment variable TERMINFO_DIRS (this
-       generalizes the feature provided by TERMINFO under stock System
+     * You  may  specify  a  path  of  directories to search for compiled
+       descriptions  with  the  environment  variable TERMINFO_DIRS (this
+       generalizes  the  feature  provided by TERMINFO under stock System
        V.)
-     * In terminfo source files, use capabilities may refer not just to
+     * In  terminfo  source files, use capabilities may refer not just to
        other entries in the same source file (as in System V) but also to
-       compiled entries in either the system terminfo directory or the
+       compiled  entries  in  either the system terminfo directory or the
        user's $HOME/.terminfo directory.
-     * A script (capconvert) is provided to help BSD users transition
-       from termcap to terminfo. It gathers the information in a TERMCAP
-       environment variable and/or a ~/.termcap local entries file and
-       converts it to an equivalent local terminfo tree under
-       $HOME/.terminfo.
-     * Automatic fallback to the /etc/termcap file can be compiled in
-       when it is not possible to build a terminfo tree. This feature is
-       neither fast nor cheap, you don't want to use it unless you have
-       to, but it's there.
-     * The table-of-entries utility toe makes it easy for users to see
+     * 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
-       prototype-checked) if the macro definition is disabled with
+       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
 
-                             State of the Package
+   The  ncurses  distribution  includes  a  selection  of  test  programs
+   (including   a   few   games).   These  are  available  separately  as
+   ncurses-examples
 
-   Numerous bugs present in earlier versions have been fixed; the library
-   is far more reliable than it used to be. Bounds checking in many
-   `dangerous' entry points has been improved. The code is now type-safe
-   according to gcc -Wall. The library has been checked for malloc leaks
-   and arena corruption by the Purify memory-allocation tester.
+   The   ncurses   library  has  been  tested  with  a  wide  variety  of
+   applications including:
 
-   The ncurses code has been tested with a wide variety of applications
-   including (versions starting with those noted):
+   aptitude
+          FrontEnd to Apt, the debian package manager
+
+          https://wiki.debian.org/Aptitude
 
    cdk
           Curses Development Kit
-          [3]http://www.vexus.ca/CDK.html
-          [4]http://dickey.his.com/cdk.
+
+          https://invisible-island.net/cdk/
 
    ded
           directory-editor
-          [5]http://dickey.his.com/ded.
+
+          https://invisible-island.net/ded/
 
    dialog
-          the underlying application used in Slackware's setup, and the
-          basis for similar applications on GNU/Linux.
-          [6]http://dickey.his.com/dialog.
+          the  underlying  application used in Slackware's setup, and the
+          basis   for  similar  install/configure  applications  on  many
+          systems.
+
+          https://invisible-island.net/dialog/
 
    lynx
-          the character-screen WWW browser
-          [7]http://lynx.isc.org/release.
+          the text WWW browser
 
-   Midnight Commander 4.1
-          file manager
-          [8]www.gnome.org/mc/.
+          https://lynx.invisible-island.net/
 
    mutt
           mail utility
-          [9]http://www.mutt.org.
+
+          http://www.mutt.org/
 
    ncftp
           file-transfer utility
-          [10]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.
-          [11]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.
+
+          https://ranger.github.io/
 
    tin
           newsreader, supporting color, MIME
-          [12]http://www.tin.org.
 
-   taper
-          tape archive utility
-          [13]http://members.iinet.net.au/~yusuf/taper/.
+          http://www.tin.org/
+
+   vifm
+          File manager with vi like keybindings
 
-   vh-1.6
-          Volks-Hypertext browser for the Jargon File
-          [14]http://www.bg.debian.org/Packages/unstable/text/vh.html.
+          https://vifm.info/
 
    as well as some that use ncurses for the terminfo support alone:
 
    minicom
-          terminal emulator
-          [15]http://www.pp.clinet.fi/~walker/minicom.html.
+          terminal emulator for serial modem connections
+
+          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://dickey.his.com/vile.
+          vi-like-emacs  may  be  built  to  use the terminfo, termcap or
+          curses interfaces.
+
+          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/
 
-   The ncurses distribution includes a selection of test programs
-   (including a few games).
+   screen
+          terminal multiplexor
 
-Who's Who and What's What
+          https://www.gnu.org/software/screen/
 
-   The original developers of ncurses are [17]Zeyd Ben-Halim and [18]Eric
-   S. Raymond. Ongoing work is being done by [19]Thomas Dickey and
-   [20]Jürgen Pfeifer. [21]Thomas Dickey acts as the maintainer for the
-   Free Software Foundation, which holds the copyright on ncurses.
-   Contact the current maintainers at [22]bug-ncurses@gnu.org.
+   vim
+          text editor
+
+          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 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>
+
+     bug-ncurses-request@gnu.org
+
+   containing the line:
+
+     subscribe <name>@<host.domain>
 
    This list is open to anyone interested in helping with the development
    and testing of this package.
 
-   Beta versions of ncurses and patches to the current release are made
-   available at [23]ftp://dickey.his.com/ncurses.
-
-Future Plans
-
-     * Extended-level XPG4 conformance, with internationalization
-       support.
-     * Ports to more systems, including DOS and Windows.
-
-   We need people to help with these projects. If you are interested in
-   working on them, please join the ncurses list.
-
-Other Related Resources
-
-   The distribution includes and uses a version of the terminfo-format
-   terminal description file maintained by Eric Raymond.
-   [24]http://earthspace.net/~esr/terminfo.
-
-   You can find lots of information on terminal-related topics not
-   covered in the terminfo file at [25]Richard Shuford's archive.
-
-References
-
-   1. ftp://ftp.gnu.org/pub/gnu/ncurses
-   2. ftp://dickey.his.com/ncurses
-   3. http://www.vexus.ca/CDK.html
-   4. http://dickey.his.com/cdk/cdk.html
-   5. http://dickey.his.com/ded/ded.html
-   6. http://dickey.his.com/dialog/dialog.html
-   7. http://lynx.isc.org/release/
-   8. file://localhost/usr/build/ncurses/ncurses-5.2-20001021/doc/html/www.gnome.org/mc/
-   9. http://www.mutt.org/
-  10. http://www.ncftp.com/
-  11. http://www.bostic.com/vi/
-  12. http://www.tin.org/
-  13. http://members.iinet.net.au/~yusuf/taper/
-  14. http://www.bg.debian.org/Packages/unstable/text/vh.html
-  15. http://www.pp.clinet.fi/~walker/minicom.html
-  16. http://dickey.his.com/vile/vile.html
-  17. mailto:zmbenhal@netcom.com
-  18. http://www.ccil.org/~esr/home.html
-  19. mailto:dickey@herndon4.his.com
-  20. mailto:juergen.pfeifer@gmx.net
-  21. mailto:dickey@herndon4.his.com
-  22. mailto:bug-ncurses@gnu.org
-  23. ftp://dickey.his.com/ncurses
-  24. http://earthspace.net/~esr/terminfo
-  25. http://www.cs.utk.edu/~shuford/terminal_index.html
+   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:
+
+     http://lists.gnu.org/archive/html/bug-ncurses (also https)
+
+Related resources
+
+   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 resources
+
+   The  distribution  provides  a  newer  version  of the terminfo-format
+   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  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