]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ANNOUNCE
ncurses 6.2 - patch 20200926
[ncurses.git] / ANNOUNCE
index 8bda60e2f074cc2ab7ca9afa82649525f969f0c5..e0603d622394c8420f71cd0465476b18b41749df 100644 (file)
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -1,4 +1,4 @@
-                            Announcing ncurses 6.1
+                            Announcing ncurses 6.2
 
 Overview
 
@@ -17,7 +17,7 @@ Overview
      * It is used in almost every system based on the Linux kernel (aside
        from some embedded applications).
      * It  is  used  as the system curses library on OpenBSD, FreeBSD and
-       OSX.
+       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
@@ -26,611 +26,374 @@ Overview
      * It should work readily on any ANSI/POSIX-conforming unix.
 
    The distribution includes the library and support utilities, including
-     * [1]captoinfo, a termcap conversion tool
-     * [2]clear, utility for clearing the screen
-     * [3]infocmp, the terminfo decompiler
-     * [4]tabs, set tabs on a terminal
-     * [5]tic, the terminfo compiler
-     * [6]toe, list (table of) terminfo entries
-     * [7]tput,  utility  for  retrieving  terminal capabilities in shell
+     * 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
-     * [8]tset, to initialize the terminal
+     * tset, to initialize the terminal
 
    Full manual pages are provided for the library and tools.
 
-   The ncurses distribution is available at ncurses' [9]homepage:
+   The ncurses distribution is available at ncurses' homepage:
 
-     [10]ftp://ftp.invisible-island.net/ncurses/ or
-     [11]https://invisible-mirror.net/archives/ncurses/ .
+     ftp://ftp.invisible-island.net/ncurses/ or
+     https://invisible-mirror.net/archives/ncurses/ .
 
    It is also available via anonymous FTP at the GNU distribution site
 
-     [12]ftp://ftp.gnu.org/gnu/ncurses/ .
+     ftp://ftp.gnu.org/gnu/ncurses/ .
 
 Release Notes
 
-   These notes are for ncurses 6.1, released January 27, 2018.
+   These notes are for ncurses 6.2, released February 12, 2020.
 
    This  release  is  designed  to  be source-compatible with ncurses 5.0
-   through  6.0; providing extensions to the application binary interface
+   through  6.1; providing extensions to the application binary interface
    (ABI).  Although  the  source  can  still be configured to support the
-   ncurses  5  ABI, the intent of the release is to provide extensions to
-   the ncurses 6 ABI:
-     * improve integration of tput and tset
-     * provide support for extended numeric capabilities.
+   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  release notes also mention some bug-fixes, but are focused on new
-   features  and  improvements  to  existing  features  since ncurses 6.0
-   release.
+   The  most  important  bug-fixes/improvements  dealt  with user-defined
+   capabilities  in terminal descriptions. The release notes also mention
+   some other bug-fixes, but are focused on new features and improvements
+   to existing features since ncurses 6.1 release.
 
   Library improvements
 
     New features
 
-   The  improved  integration of tput and tset made only small changes to
-   the  libraries.  However,  supporting  extended  numeric  capabilities
-   required a few changes:
-     * The  TERMINAL  structure  in  <term.h>  is  now opaque. Doing that
-       allowed  making the structure larger, to hold the extended numeric
-       data.
-       A   few   applications  required  changes  during  development  of
-       ncurses 6.1 because those applications misused the members of that
-       structure,   e.g.,   directly   modifying  it  rather  than  using
-       [13]def_prog_mode.
-     * Having  made  TERMINAL  opaque  (and  because  none of the library
-       functions  use  anything  except  a  pointer  to TERMINAL), it was
-       possible to increase the size of the structure, adding to the end.
-       Existing   applications  which  were  linked  to  the  ncurses 6.0
-       high-level   (ncurses,  ncursesw)  and  low-level  (tinfo,  tinfo)
-       libraries should not require re-linking since the binary interface
-       did  not  change,  nor  did  the  structure  offsets with TERMINAL
-       change.
-       A  few  applications use the inner TERMTYPE structure's offsets to
-       refer to terminfo capabilities within that structure. Again, those
-       do  not require modification because their offsets within TERMINAL
-       did not change.
-     * When configured for wide-characters, i.e., "ncursesw" the TERMINAL
-       structure is extended.
-       The  new  data in TERMINAL holds the same information as TERMTYPE,
-       but  with  larger  numbers  ("int"  versus  "short").  It is named
-       TERMTYPE2.
-       The  library  uses  this  structure  internally  in  preference to
-       TERMTYPE,   referring  to  TERMTYPE  only  to  initialize  it  for
-       applications that use the capabilities defined in <term.h>
-     * When  configured  for  8-bit  (narrow)  characters,  the TERMTYPE2
-       structure is not used.
-     * The updated application binary interface is 6.1.20171230 (used for
-       new  [14]versioned  symbols),  although the interface changes were
-       developed several months previously.
-
-   The  motivation  for  making  this  extension  came from noticing that
-   [15]termcap  applications  could  (though  not  [16]realistically) use
-   larger numbers than would fit in 16-bits, and the fact that the number
-   of  color  pairs  for  a  256-color  xterm  could  not be expressed in
-   terminfo  (i.e.,  32767  versus  65536). Also, a few terminals support
-   direct-colors, which could use the extension.
-
-   Generally  speaking,  applications  that  use  internal  details  of a
-   library  are unsupported. There was exactly one exception for ncurses:
-   the  tack  program  used  the internal details of TERMINAL, because it
-   provides  an  ncurses-specific  feature  for interactively modifying a
-   terminfo   description  and  writing  the  updated  description  to  a
-   text-file.  It  was  possible  to  not  only  separate tack from these
-   [17]internal  details  of  ncurses,  but  to generalize it so that the
-   program   works   with  Unix  curses  (omitting  the  ncurses-specific
-   feature). That was released as [18]tack 1.08 in July 2017.
-
-   While  making changes to tack to eliminate its dependency upon ncurses
-   internals,  the  publicly-visible  details  of  those  internals  were
-   reviewed,  and  some symbols were moved to private header files, while
-   others were marked explicitly as ncurses internals. Future releases of
-   ncurses  may  eliminate  some  of those symbols (such as those used by
-   tack 1.07) because they are neither part of the API or the ABI.
-
-   Using  the  TERMTYPE2 extended numeric capabilities, it is possible to
-   support  both  color  pair  values and color values past 32767. Taking
-   compatibility into account, developers readily understand that neither
-   function  signatures  nor  structure  offsets  change.  Also, existing
-   functions have to operate with the extended numbers. Most of that work
-   is  internal  to  the  library.  For the external interfaces, a hybrid
-   approach was used:
-     * X/Open  Curses  defined function prototypes such as wattr_set with
-       an  unused parameter, for "future" use. After 25 years, the future
-       is  here:  ncurses uses the parameter to augment color pair values
-       as described in the [19]manual page.
-     * Other  functions such as those defining color pairs did not have a
-       corresponding  reserved  parameter.  For  those,  ncurses  defines
-       extended  versions  such as init_extended_pair (versus init_pair),
-       init_extended_color (versus init_color).
+   There are several new features:
+     * O_EDGE_INSERT_STAY  tells  the  form  library  to optionally delay
+       cursor movement on a field edge/boundary
+     * O_INPUT_FIELD  extension to form library allows a dynamic field to
+       shrink if the new limit is smaller than the current field size.
+     * added  exit_curses  and  exit_terminfo to replace internal symbols
+       for leak-checking.
+     * added curses_trace, to replace trace().
 
    Additionally,  to  improve  performance other changes (and extensions)
    are provided in this release:
-     * Several  new  functions simplify management of large sets of color
-       pairs: reset_color_pairs, alloc_pair, find_pair and free_pair.
-     * New "RGB" extension capability for direct-color support is used to
-       improve performance of color_content.
-     * The  internal colorpair_t is now a struct, eliminating an internal
-       8-bit limit on colors
-     * Allocation  for  SCREEN's  color-pair table starts small, grows on
-       demand up to the limit given in the terminal description.
-     * setcchar and getcchar now treat a negative color-pair as an error.
+     * mouse  decoding  now handles shift/control/alt logic when decoding
+       xterm's 1006 mode
+     * ncurses  now  defines a limit for wgetnstr, wgetn_wstr when length
+       is negative or "too large".
+     * reordered  loop-limit checks in winsnstr in case the string has no
+       terminating null and only the number of characters is used.
+     * there  is  now  no  buffer-size  limit  when  reading the $TERMCAP
+       variable.
+     * the  $TERMCAP  variable  may  be  interpreted  as  a fallback to a
+       terminfo entry
+     * mvcur  now decides whether to use hard-tabs, using xt, tbc and hts
+       as clues.
+     * extended  colors  are  improved  by  modifying an internal call to
+       vid_puts  to pass extended color pairs e.g., from tty_update.c and
+       lib_mvcur.c
+     * the  initialization  functions  now  avoid relying upon persistent
+       data for the result from getenv
+     * scrolling is improved:
+          + a limit check in newline_forces_scroll handles the case where
+            the row is inside scroll-margins, but not at the end.
+          + improved loop limits in _nc_scroll_window handle a case where
+            the scrolled data is a pad which is taller than the window.
 
     Other improvements
 
-   These are new or revised features:
-     * modify  c++/etip.h.in  to  accommodate  deprecation  of  throw and
-       throws in c++17
-     * add new function unfocus_current_field
-     * add option to preserve leading whitespace in form fields
-     * add  a  macro  for is_linetouched and adjust the function's return
-       value  to  make  it possible for most applications to check for an
-       error-return.
-     * add  build-time  utility  report_offsets  to  help  show  when the
-       various configurations of tinfo library are compatible or not.
+   These are revised features:
+     * used  "const"  in  some prototypes rather than NCURSES_CONST where
+       X/Open  Curses  was updated to do this, e.g., wscanw, newterm, the
+       terminfo  interface.  Also  use  "const"  for  consistency  in the
+       termcap interface, which was withdrawn by X/Open Curses in Issue 5
+       (2007).  As  of  Issue  7,  X/Open  Curses still lacks "const" for
+       certain return values, e.g., keyname.
+     * modified  wbkgd  and  wbkgrnd  to  improve compatibility with SVr4
+       curses,  changing the way the window rendition is updated when the
+       background character is modified
+     * improved  terminfo  write/read by modifying the fourth item of the
+       extended  header  to  denote  the  number  of valid strings in the
+       extended string table (see term(5)).
+     * modified   the   initialization  checks  for  mouse  so  that  the
+       xterm+sm+1006  block  will  work  with  terminal  descriptions not
+       mentioning xterm.
 
    These were done to limit or ultimately deprecate features:
-     * drop  two  symbols  obsoleted  in  2004:  _nc_check_termtype,  and
-       _nc_resolve_uses
-     * move  _nc_tracebits,  _tracedump and _tracemouse to curses.priv.h,
-       since they are not part of the suggested ABI6.
-     * mark  some  structs  in  form/menu/panel  libraries as potentially
-       opaque without modifying API/ABI.
-     * ifdef'd     header-file    definition    of    mouse_trafo    with
-       NCURSES_NOMACROS
-     * remove  initialization-check  for calling napms in the term-driver
-       configuration; none is needed.
-     * modify trace to avoid overwriting existing file
+     * deprecated  safe-sprintf, since the vsnprintf function, which does
+       what was needed, was standardized long ago.
+     * marked   vwprintw  and  vwscanw  as  deprecated;  recommend  using
+       vw_printw and vw_scanw, respectively.
+     * added  deprecation warnings for internal functions called by older
+       versions of tack.
+     * removed unused _nc_import_termtype2 function.
 
    These are improvements to existing features:
-     * modify   make_hash   to  allow  building  with  address-sanitizer,
-       assuming that --disable-leaks is configured.
-     * move  SCREEN field for use_tioctl data before the ncursesw fields,
-       and  limit  that  to the sp-funcs configuration to improve termlib
-       compatibility
-     * modify db-iterator:
-          + ignore zero-length files in db-iterator; these are useful for
-            instance to suppress $HOME/.terminfo when not wanted.
-          + modify  update_getenv  to  ensure  that environment variables
-            which  are  not  initially  set  will  be checked later if an
-            application happens to set them
-     * modify  _nc_outc_wrapper  to use the standard output if the screen
-       was not initialized, rather than returning an error.
-     * improve  checks for low-level terminfo functions when the terminal
-       has not been initialized.
-     * modify set_curterm to update ttytype[] data used by longname/p>
-     * modify  _nc_get_screensize  to  allow  for  use_env and use_tioctl
-       state  to  be  per-screen  when  sp-funcs  are  configured, better
-       matching the behavior when using the term-driver configuration.
-     * remove an early-return from _nc_do_color, which can interfere with
-       data  needed  by  bkgd  when  ncurses  is configured with extended
-       colors
-     * incorporate A_COLOR mask into COLOR_PAIR, in case user application
-       provides an out-of-range pair number
-     * modify  logic for endwin-state to be able to detect the case where
-       the screen was never initialized, using that to trigger a flush of
-       ncurses'  buffer for mvcur, e.g., in the sample program dots_mvcur
-       for the term-driver configuration.
+     * check parameter of set_escdelay, return ERR if negative.
+     * check  parameter  of  set_tabsize,  return ERR if not greater than
+       zero
+     * correct  a status-check in _nc_read_tic_entry() so that if reading
+       a hex/b64 $TERMINFO, and the $TERM does not match, fall-through to
+       the compiled-in search list.
+     * amend check for repeat_char to handle a case where setlocale() was
+       called after initscr
+     * move macro for is_linetouched inside NCURSES_NOMACROS ifndef.
+     * use _nc_copy_termtype2 rather than direct assignment in setupterm,
+       in   case   it   is  called  repeatedly  using  fallback  terminfo
+       descriptions
+     * improve   workaround   for  Solaris  wcwidth  versus  line-drawing
+       characters
+     * add  checks  in repair_subwindows to keep the current position and
+       scroll-margins inside the resized subwindow.
+     * correct  a  buffer-limit  in  write_entry.c  for  systems that use
+       caseless filenames.
+     * improved build-time utility report_offsets:
+          + add categories, e.g., "w" for wide-character, "t" for threads
+            to  make the report more readable. Reorganized the structures
+            reported to make the categories more apparent.
+          + add  NCURSES_GLOBALS  and NCURSES_PRESCREEN to report to show
+            how similar the different libtinfo configurations are.
+     * modified  some header files to ensure that those include necessary
+       files except for the previously-documented cases
+     * added  some  traces  in  initialization to show whether a fallback
+       entry is used.
+     * made minor optimization to reduce calls to _nc_reserve_pairs
 
    These are corrections to existing features:
-     * fixes for writing extended color pairs in putwin.
-     * modify no-leaks code for lib_cur_term.c to account for the tgetent
-       cache.
-     * amend handling of the repeat_char capability in EmitRange to avoid
-       scope  creep:  translate  the character to the alternate character
-       set  when  the  alternate character set is enabled, and do not use
-       repeat_char for characters past 255.
-     * improve    wide-character    implementation    of   myADDNSTR   in
-       frm_driver.c,    which    was   inconsistent   with   the   normal
-       implementation.
-     * modify winnstr and winchnstr to return error if the output pointer
-       is  null,  as  well  as  adding a null pointer check of the window
-       pointer for better compatibility with other implementations.
-     * modify  setupterm  to  save  original  tty-modes so that erasechar
-       works  as expected. Also modify _nc_setupscreen to avoid redundant
-       calls to get original tty-modes.
-     * modify  wattr_set  and wattr_get to return ERR if win-parameter is
-       null, as documented.
-     * correct   order  of  initialization  for  traces  in  use_env  and
-       use_tioctl versus first _tracef calls.
-     * correct parameters for copywin call in _nc_Synchronize_Attributes
-     * flush  the  standard  output in _nc_flush for the case where SP is
-       zero,  e.g.,  when  called  via  putp. This fixes a scenario where
-       "tput flash" did not work after changes in 20130112.
-     * amend  internal  use  of  tputs  to consistently use the number of
-       lines  affected,  e.g.,  for  insert/delete  character operations.
-       While  merging terminfo source early in 1995, several descriptions
-       used  the "*" proportional delay for these operations, prompting a
-       change in doupdate.
-     * correct return-value of extended putwin.
-     * double-width  multibyte  characters  were  not counted properly in
-       winsnstr and wins_nwstr.
-     * amend  fix  for  _nc_ripoffline from 20091031 to make test/ditto.c
-       work in threaded configuration.
-     * modify _nc_viscbuf2 and _tracecchar_t2 to trace wide-characters as
-       a whole rather than their multibyte equivalents.
-     * minor  fix  in  wadd_wchnstr  to ensure that each cell has nonzero
-       width.
-     * move PUTC_INIT calls next to wcrtomb calls, to avoid carry-over of
-       error status when processing Unicode values which are not mapped.
-     * add missing assignment in lib_getch.c to make notimeout work
+     * fix  a  special  case  in  PutAttrChar  where  a cell is marked as
+       alternate-character  set,  but  the  terminal  does  not  actually
+       support the given graphic character. This would happen in an older
+       terminal such as vt52, which lacks most line-drawing capability.
+     * corrected  flag  for "seq" method of db 1.8.5 interface, needed by
+       toe on some of the BSDs.
+     * modify  comparison  in  make_hash.c  to  correct a special case in
+       collision handling for Caps-hpux11
+     * add    extended_slk_color{,_sp}   symbols   to   the   appropriate
+       package/*.{map,sym} files
+     * modify  lib_setup  to  avoid  calling pthread_self() without first
+       verifying that the address is valid, i.e., for weak symbols
+     * add  a  couple  of  broken-linker symbols to the list of versioned
+       symbols to help with link-time optimization versus weak symbols.
 
   Program improvements
 
-   While reviewing user feedback, it became apparent that the differences
-   between [20]reset (an alias for tset) and "tput reset" were confusing:
-     * one  ([21]tset)  updated the terminal modes, but used only part of
-       the terminfo capabilities for initialization, while
-     * the  other  ([22]tput) used all of the terminal capabilities while
-       neglecting the terminal modes.
-
-   On  further  investigation,  it  turned  out that the differences were
-   largely an accident due to the way those programs had evolved.
-
-   This  release  eliminates  the unnecessary differences, using the same
-   approach  for tput's init (initialization), reset and clear operations
-   as  the separate [23]reset and [24]clear programs. Doing this does not
-   change the command-line options; existing scripts are unaffected.
-
-   These  are the user-visible changes for the three programs (tput, tset
-   and clear):
-     * add  the  terminal-mode  parts  of "reset" (aka tset) to the "tput
-       reset"  command,  making  the  two  almost  the  same  except  for
-       window-size.
-     * improve  tput's  check  for  being  called as "init" or "reset" to
-       allow for transformed names.
-     * add "clear" as a possible link/alias to tput.
-     * amend changes for tput to reset tty modes to "sane" if the program
-       is  run  as  "reset",  like tset. Likewise, ensure that tset sends
-       either reset- or init-strings.
-     * add -x option to clear/tput to make the E3 extension optional
-     * add functionality of "tset -w" to tput, like the "-c" feature this
-       is not optional in tput.
-     * add  options  -T  and  -V  to clear command for compatibility with
-       tput.
-     * drop long-obsolete "-n" option from tset.
-     * modify tset's assignment to TERM in its output to reflect the name
-       by  which  the  terminal  description  is  found,  rather than the
-       primary  name.  That  was  an  unnecessary  part  from the initial
-       conversion  of  tset from termcap to terminfo. The termcap library
-       in 4.3BSD did this to avoid using the short 2-character name
-     * remove  a  restriction  in  tput's support for termcap names which
-       omitted capabilities normally not shown in termcap translations
-     * add usage message to clear command
-     * improve usage messages for tset and tput.
-
-   Other user-visible improvements and new features include:
-     * modify  tic/infocmp  display  of numeric values to use hexadecimal
-       when  they  are  "close" to a power of two, making the result more
-       readable.
-     * add "-W" option to tic/infocmp to force long strings to wrap.
-          + This  is in addition to the "-w" option which attempts to fit
-            capabilities into a given line-length.
-          + If  "-f"  option  splits  line,  do not further split it with
-            "-W".
-          + Begin a new line when adding "use=" after a wrapped line.
-     * add  "-q"  option  to infocmp to suppress the "Reconstructed from"
-       comment  from  the  header,  and  a corresponding option to tic to
-       suppress all comments from the "tic -I" output.
-     * Sorted options in usage message for infocmp, to make it simpler to
-       see unused letters.
-     * Updated usage message for tic, adding "-0" option.
-     * add infocmp/tic "-Q" option, which allows one to dump the compiled
-       form of the terminal entry, in hexadecimal or base64:
-          + A  "b64:"  prefix in the TERMINFO variable tells the terminfo
-            reader  to  use  base64  according  to  RFC-3548  as  well as
-            RFC-4648 url/filename-safe format.
-          + A   "hex:"   prefix  tells  the  terminfo  reader  to  accept
-            hexadecimal data as generated by "infocmp -0qQ1".
-
-   Other less-visible improvements and new features include:
-     * modify  utility headers such as tic.h to make it clearer which are
-       externals that are used by tack.
-     * add  "reset"  to  list  of  programs  whose  names might change in
-       manpages due to program-transformation configure options.
-     * modify  "-T" option of clear and tput to call use_tioctl to obtain
-       the operating system's notion of the screensize if possible.
-     * add  check  in  tput for init/reset operands to ensure those use a
-       terminal.
-     * modify  programs clear, tabs, tput and tset to pass the actual tty
-       file  descriptor  to  setupterm rather than the standard output or
-       error, making padding work.
-     * change  tset's initialization to allow it to get settings from the
-       standard  input  as  well  as  /dev/tty, to be more effective when
-       output or error are redirected.
-     * amend  check  in  tput,  tabs  and clear to allow those to use the
-       database-only  features  in cron if a "-T" option gives a suitable
-       terminal name.
-     * improve  error message from tset/reset when both stderr/stdout are
-       redirected to a file or pipe.
-
-   Several  of  the  less  apparent  features  deal  with  translation of
-   terminfo  to  termcap  (and the reverse), with corresponding checks by
-   tic:
-     * modify check in fmt_entry to handle a cancelled reset string. Make
-       similar fixes in other parts of dump_entry.c and tput.c
-     * correct  read of terminfo entry in which all strings are absent or
-       explicitly  cancelled.  Before  this  fix, the result was that all
-       were treated as only absent.
-     * modify   infocmp   to   suppress   mixture   of   absent/cancelled
-       capabilities that would only show as "NULL, NULL", unless the "-q"
-       option is used, e.g., to show "-, @" or "@, -".
-     * correct  a warning from tic about keys which are the same, to skip
-       over missing/cancelled values.
-     * add  check  in  tic for use of bold, etc., video attributes in the
-       color  capabilities,  accounting  whether the feature is listed in
-       ncv.
-     * add  check  in  tic for unnecessary use of "2" to denote a shifted
-       special key.
-     * improve  check  in tic for delays by also warning about beep/flash
-       when  a  delay  is not embedded, or if those use the VT100 reverse
-       video escape without using a delay.
-     * improve  checks  in trim_sgr0, comp_parse.c and parse_entry.c, for
-       cancelled string capabilities.
-     * add  check in tic for some syntax errors of delays, as well as use
-       of proportional delays for non-line capabilities.
-     * add  check  in  tic  for  conflict between ritm, rmso, rmul versus
-       sgr0.
-     * add  check  in _nc_parse_entry for invalid entry name, setting the
-       name to "invalid" to avoid problems storing entries.
-     * improve _nc_tparm_analyze, using that to extend the checks made by
-       tic  for  reporting inconsistencies between the expected number of
-       parameters for a capability and the actual.
-     * remove  tic  warning  about "^?" in string capabilities, which was
-       marked  as  an extension; however all Unix implementations support
-       this  and  X/Open  Curses  does not address it. On the other hand,
-       [25]BSD   termcap   did   not  support  this  feature  (until  the
-       [26]mid-1990s).
-       in  _nc_infotocap,  added  a check to ensure that terminfo "^?" is
-       not written to termcap.
-     * modify  sscanf calls in _nc_infotocap for patterns "%{number}%+%c"
-       and "%'char'%+%c" to check that the final character is really "c",
-       avoiding a case in icl6404 which cannot be converted to termcap.
-     * in  _nc_tic_expand and _nc_infotocap, improved string-length check
-       when  deciding  whether  to  use "^X" or "\xxx" format for control
-       characters, to make the output of tic/infocmp more predictable.
-     * limited  termcap  "%d" width to 2 digits on input, and use "%2" in
-       preference to "%02" on output.
-     * correct  terminfo/termcap  conversion of "%02" and "%03" into "%2"
-       and "%3"; the result repeated the last character.
+   Several improvements were made to the utility programs:
 
-    Examples
+   clear
 
-   Along  with  the library and utilities, many improvements were made to
-   the [27]ncurses-examples.
-
-   These changes were made to demonstrate new extensions in ncurses:
-     * add   demo_new_pair   program,   to   demonstrate  [28]alloc_pair,
-       [29]find_pair and [30]free_pair functions.
-       This  program  iterates  over  the  possible  color  combinations,
-       allocating  or  initializing color pairs. For best results, choose
-       screen-width dividing evenly into the number of colors. e.g.,
-
-     32x64,32x128   256 colors
-     24x44,24x88    88 colors
-     32x64,24x128   16 colors
-
-     * add  extended_color program, like the older color_set program, but
-       using   the   extended  color  functions,  with  and  without  the
-       SP-functions interface.
-     * add  picsmap  program  to  fill  in some testing issues not met by
-       dots,  using  this  as  the  third  example in a comparison of the
-       [31]ncurses versus slang libraries.
-       The   program  can  directly  read  X  bitmap  and  pixmap  files,
-       displaying  a  picture.  It  can  read  other  image  files  using
-       ImageMagick's convert program to translate the image into text.
-       For 16-, 88- and 256-color terminal descriptions, picsmap can load
-       a  palette file which tells it which color palette entries to use.
-       For direct-colors, the terminal descriptions use the RGB extension
-       capability.
+          + improved  logic  for  clearing with the E3 extension, in case
+            the  terminal  scrolls  content  onto  its saved-lines before
+            actually  clearing  the  display, by clearing the saved-lines
+            after clearing the display
 
-   There are other new example programs and a few scripts:
-     * add  dots_xcurses  program to illustrate a different approach used
-       for extended colors which can be contrasted with dots_curses.
-     * add  list_keys program show function keys for one or more terminal
-       descriptions.  It  uses  ncurses's  convention  of  modifiers  for
-       special keys, based on xterm.
-     * add  padview  program,  to compare pads with direct updates in the
-       view program.
-     * add sp_tinfo program to exercise the SP-functions extension of the
-       low-level terminfo library.
-     * add test-programs for termattrs and term_attrs functions.
-     * add  test_sgr  program  to  exercise  all  combinations of the sgr
-       capability.
-     * add   tput-colorcube   demo  script,  imitating  xterm's  88-  and
-       256-color scripts using tput.
-     * add  tput-initc  script  to  demonstrate  how  tput may be used to
-       initialize a color palette from a data file.
+   infocmp
+
+          + omit  filtering  of  "OTxx" names which are used for obsolete
+            capabilities,  when  the output is sorted by long-names. This
+            change helps when making a table of the short/long capability
+            names.
+
+   tic
+
+          + added   check   for   consistent   alternate   character  set
+            capabilities.
+          + added check for paired indn/rin.
+          + added check for terminals with parm_dch vs parm_ich.
+          + added  check  for  the  case  where setf/setb are given using
+            different   strings,   but   provide   identical  results  to
+            setaf/setab.
+          + corrected check for ich1.
+          + changed  a  too-large  terminal entry from a fatal error to a
+            warning.
+
+   toe
+
+          + ignores  any  hex/b64 $TERMINFO value in the list of terminfo
+            databases.
+
+   tset
+
+          + replace  check  in reset command for obsolete "pt" capability
+            using tbc and hts capabilities as clues
+          + modify reset to allow for tabstops at intervals other than 8.
+          + change   reset's   behavior   for  margins  to  simply  clear
+            soft-margins  if  possible,  rather  than  clearing  and then
+            setting them according to the terminal's width.
+
+   tput
+
+          + add "x" to getopt string so that "tput -x clear" works.
+
+   Several  changes were made to the generated ncurses*config scripts and
+   the   analogous   ".pc"   files  to  reduce  differences  between  the
+   configurations they report:
+     * modified the ncurse*-config and pc-files to more closely match for
+       the -I and -l options.
+     * filtered out linker-specs from the --libs report.
+     * amended  the ncurses*-config and pc-files to take into account the
+       rpath hack which differed between those files.
+     * modified  generated  ncurses*config  and  ncurses.pc, ncursesw.pc,
+       etc., to list helper libraries such as gpm for static linking.
+
+    Examples
+
+   Along  with  the  library and utilities, improvements were made to the
+   ncurses-examples.  Most  of  this  activity  aimed  at  improving  the
+   test-packages.  A few changes are more generally useful, e.g., for the
+   main   ncurses  test-program,  and  for  analyzing  traces  using  the
+   tracemunch script:
+     * improve  recovery  from  error  when  reading command-character in
+       test/ncurses.c, showing the relevant error message and not exiting
+       on EINTR.
+     * improve  tracemunch,  by keeping track of TERMINAL* values, and if
+       tracing  was first turned on after initialization, attempt to show
+       distinct screen, window and terminal names anyway.
+     * modify tracemunch to accept filename parameters in addition to use
+       as a pipe/filter.
+     * update  tracemunch  to  work  with  perl 5.26.2, which changed the
+       rules for escaping regular expressions.
+     * add some checks in tracemunch for undefined variables.
+     * modify TurnOn/TurnOff macros (in lib_vidattr.c and lib_vid_attr.c)
+       to avoid expansion of "CUR" in trace.
+
+   There are other new demo/test programs and reusable examples:
+
+   color_content
+          Demonstrate   the   color_content   and  extended_color_content
+          functions.
+
+   demo_tabs
+          A simple demo of tabs in curses.
+
+   dump_window
+          A  portable  curses screen-dump, used to compare ncurses screen
+          contents with Solaris.
+
+   pair_content
+          Demonstrate    the   pair_content   and   extended_pair_content
+          functions.
+
+   report_hashing
+          Check hash-tables used for terminfo and termcap names.
+
+   parse_rgb
+          Sample   implementation  of  the  ncurses  RGB  extension  from
+          user_caps.5, used in picsmap and savescreen programs.
 
    A  variety  of  improvements  were made to existing programs, both new
    features  as  well  as  options added to make the set of programs more
    consistent.
-
-   The  ncurses program is the largest; a proportionately large number of
-   changes were made to it:
-     * modify  a/A  screens to make exiting on an escape character depend
-       on  the start of keypad and timeout modes, to allow better testing
-       of function-keys.
-       add "t" toggle for notimeout function.
-     * modify layout of b/B screens to allow for additional annotation on
-       the  right  margin;  some  terminals  with partial support did not
-       display well.
-     * modify c/C screens to allow for extended color pairs.
-       add z/Z zoom feature to make extended color pairs easier to test.
-       modify  test-screens  to  take advantage of wide screens, reducing
-       the number of lines used for 88- and 256-colors.
-     * modify  "d"  edit-color  screen  to  optionally  read  xterm color
-       palette directly from terminal, as well as handling KEY_RESIZE and
-       screen-repainting with control/L and control/R.
-     * add examples to "F" screen for WACS_D_PLUS and WACS_T_PLUS.
-     * improve  "g"  screen,  correcting  ifdef which made the legend not
-       reflect  changes  to  keypad-  and  scroll-modes.  Added check for
-       return-value of putwin.
-     * make "s" test easier to understand which subtests are available
-       add a corresponding "S" wide-character overlap test-screen.
-     * add "v" screen to show baudrate and other values.
-
-   These changes were made to the other examples:
-     * modify  blue  program  to  use Unicode values for card-glyphs when
-       available, as well as improving the check for CP437 and CP850.
-     * improve   demo_menus   program,   allowing   mouse-click   on  the
-       menu-headers  to  switch  the  active  menu.  This  requires a new
-       extension option O_MOUSE_MENU to tell the menu driver to put mouse
-       events  which  do not apply to the active menu back into the queue
-       so that the application can handle the event.
-     * correct logic in demo_terminfo program for "-f" option
-     * modify  ditto program to allow $XTERM_PROG environment variable to
-       override "xterm" as the name of the program to run in the threaded
-       configuration.
-     * add several options to the "dots" test-programs.
-     * modify filter program:
-          + illustrate  an  alternative  to getnstr, that polls for input
-            while  updating  a  clock  on  the  right  margin  as well as
-            responding to window size-changes.
-          + adapt  logic  used in [32]dialog [33]"--keep-tite" option for
-            filter  program as the "-a" option. When set, filter attempts
-            to suppress the alternate screen.
-     * modify  knight  program  to  provide the "slow" solution for small
-       screens  using  "R", noting that Warnsdorf's method is easily done
-       with "a".
-     * modify  the  savescreen program to add test patterns that exercise
-       88-, 256-, etc., colors.
-     * add  options  to  test_arrays,  for selecting termcap vs terminfo,
-       etc.
-     * modify the view program:
-          + expand  tabs  using  the  ncurses  library rather than in the
-            test-program.
-          + eliminate the "-n" option by simply reading the whole file.
-          + implement page up/down commands.
-          + remove the very old SIGWINCH example; just use KEY_RESIZE.
-     * improve  animation  in  xmas  program  by  adding  a time-delay in
-       blinkit.
-     * modify  several  test-programs  which  call  use_default_colors to
-       consistently do this only if the "-d" option is given.
-     * modify the install-rule for ncurses-examples to put the data files
-       in the data directory, e.g., /usr/share/ncurses-examples.
-     * modify  several  test  programs  to  use  new popup_msgs function,
-       adapted from the help-screen used in the edit_field program.
-     * modify   test   data   for   xterm   palettes  to  use  the  newer
-       color4/color12 values.
-     * improve the tracemunch script:
-          + show screenXX pointers and thread identifiers as names.
-          + chang   address-parameters   of  add_wch,  color_content  and
-            pair_content to dummy parameters.
+     * add  "-l"  option to test/background, to dump screen contents in a
+       form that lets different curses implementations be compared.
+     * add  "@"  command  to  test/ncurses F-test, to allow rapid jump to
+       different character pages.
+     * added enum, regex examples to test/demo_forms
+     * amend  Scaled256() macro in test/picsmap.c to cover the full range
+       0..1000
+     * corrected  pathname used in Ada95 sample programs for explain.txt,
+       to  work  with  test-packages, and used an awk script to split the
+       resulting pathname when it would be too long for a single line.
+     * ignore  interrupted  system-call  in  test/ncurses's command-line,
+       e.g., if the terminal were resized.
+     * improved  ifdef's  for  TABSIZE  variable,  to  help with AIX/HPUX
+       ports.
 
   Terminal database
 
    There are several new terminal descriptions:
 
-     dumb-emacs-ansi,  dvtm,  dvtm-256color,  fbterm,  iterm2,  linux-m1
-     minitel    entries,    putty-noapp,    viewdata,   and   vt100+4bsd
-     building-block.
-
-     xterm+noalt,   xterm+titlestack,   xterm+alt1049,   xterm+alt+title
-     building  blocks  and  xterm+direct,  xterm+indirect, xterm-direct.
-     from [34]xterm patch #331.
-
-     several  other "-direct" descriptions to address the differences of
-     other terminal emulators versus xterm-direct.
+     alacritty,  domterm,  kitty,  mintty,  mintty-direct,  ms-terminal,
+     n7900,   nsterm-build309,  nsterm-direct,  screen5,  ti703,  ti707,
+     ti703-w, ti707-w vscode, vscode-direct, xterm-mono, xterm.js
 
    There  are  many  changes to existing terminal descriptions. Some were
    updates to several descriptions:
-     * use  xterm+sm+1006  in  several  terminal  descriptions which were
-       validated  as  supporting  the  extended  mouse  feature for their
-       respective terminal emulators.
-     * corrected  sgr/sgr0 strings in a few cases reported by tic, making
-       those  correspond  to  the non-sgr settings where they differ, but
-       otherwise use ECMA-48 consistently.
-     * add  0.1sec  mandatory delay to flash capabilities using the VT100
-       reverse-video control
+     * use ansi+rep in a dozen places
+     * add rs1 to konsole, mlterm
+     * improve several flash capabilities with trailing mandatory delays
+     * drop   ich1   from   rxvt-basic,   Eterm  and  mlterm  to  improve
+       compatibility with old non-curses programs
+     * add/use xterm+keypad in xterm-new
+     * use xterm+sl-twm for consistency, nine places
+     * improve xm example in xterm+x11mouse and xterm+sm_1006.
 
    while  others  affected specific descriptions. These were retested, to
-   take into account new/undocumented changes by their developers:
+   take into account changes by their developers:
 
-     iterm, minitel, st, viewdata, nsterm
+     terminator, st
 
-   while these are specific fixes based on user reports, or warnings from
-   tic:
+   while  these are specific fixes based on reviewing documentation, user
+   reports, or warnings from tic:
 
-   [35]ansi building blocks
+   adds200:
 
-          + restored  rmir/smir  in  ansi+idc  to  better  match original
-            ansiterm+idc, add alias ansiterm
+          + fix typo
 
-   [36]icl6402
+   gnome-256color
 
-          + corrected missing comma-separator between string capabilities
-            in icl6402 and m2-nam
+          + base entry on "gnome", not "vte", for consistency
 
-   [37]interix
+   interix
 
-          + updated using tack and SFU with Windows 7 Ultimate.
-          + used ^? for kdch1
+          + trim unnecessary setf/setb
 
-   [38]linux
+   linux-16color
 
-          + made linux3.0 entry the default linux entry
-          + modify  linux2.6  entry  to  improve line-drawing so that the
-            linux3.0 entry can be used in non-UTF-8 mode
-          + omitted  selection  of  ISO-8859-1 for G0 in enacs capability
-            from  linux2.6 entry, to avoid conflict with the user-defined
-            mapping. The reset feature uses ISO-8859-1 in any case.
-          + modify flash capability for linux and wyse entries to put the
-            delay between the reverse/normal escapes rather than after
-          + modify  linux-16color  to  not  mask dim, standout or reverse
-            with the ncv capability
+          + accommodate  Linux  console driver incompatibility introduced
+            in early 2018
 
-   [39]pccon entries
+   nsterm-256color:
 
-          + fixed some inconsistencies in the pccon* entries
-          + add bold to pccon+sgr+acs and pccon-base
-          + add keys f12-f124 to pccon+keys
+          + add nsterm-build309 to replace nsterm-256color, assigning the
+            latter  as  an  alias  of  nsterm,  to  make  mouse work with
+            nsterm-256color
 
-   [40]tmux
+   regent40:
 
-          + corrected  sgr  string,  which  used screen's "standout" code
-            rather than the standard code.
-          + add  settings  corresponding  to xterm-keys option to reflect
-            upcoming change to make that option "on" by default
-          + uncanceled Ms
+          + renumber function-keys to match manual
 
-   [41]vt100
+   regent60:
 
-          + modify  vt100  rs2  string  to  reset vt52 mode and scrolling
-            regions
-          + corrected rs2 string for vt100-nam
-          + made  minor  fixes  for  vt100+4bsd,  e.g.,  delay in sgr for
-            consistency
+          + add cd (clr_eos)
+          + corrected acsc
+          + add shifted function-keys
 
-   [42]vte
+   tvi950:
 
-          + moved SGR 24 and 27 from vte-2014 to vte-2012
-          + add a few capabilities fixed in recent VTE development
+          + added  function-key  definitions  to agree with Televideo 950
+            manual
+          + corrected acsc
+          + remove bogus kf0
+          + add bel
 
-   [43]xterm
+   tvi955:
 
-          + add rep to xterm-new, available since [44]late 1996.
-          + modify  xterm+256color  and  xterm+256setaf  to  use  correct
-            number of color pairs.
-          + modify    rs1    for    xterm-16color,    xterm-88color   and
-            xterm-256color  to  reset palette using oc string as in linux
-            entry.
-          + add rs1 capability to xterm-256color
-          + add  oc  capability to xterm+256color, allowing palette reset
-            for xterm
-          + add op to xterm+256setaf
-          + modify xterm-r5, xterm-r6 and xterm-xf86-v32 to use xterm+kbs
-            to match [45]xterm #272, reflecting packager's changes
-          + used  ANSI  reply for u8 in xterm-new, to reflect vt220-style
-            responses that could be returned.
-          + made xterm-pcolor sgr consistent with other capabilities
+          + fix typo
+
+   vi200:
+
+          + add acsc string, including right/down-arrow
+
+   wy50:
+
+          + corrected acsc
+
+   wy50 and wy60:
+
+          + add shifted function-keys as kF1 to kF16
+
+   xterm+x11hilite:
+
+          + eliminate unused p5 parameter.
 
    A few entries use extensions (user-defined terminal capabilities):
-     * add rmxx/smxx ECMA-48 strikeout extension to tmux and xterm-basic
-     * used RGB capability in new *-direct entries to denote direct-color
-       feature.
+     * use  xterm+sm+1006  (aka  "SGR  1006  mouse") for konsole-base and
+       putty
+     * add Smol/Rmol user-defined capability to tmux and vte-2018
+     * add Smulx user-defined capability to tmux, vte-2018
 
   Documentation
 
@@ -639,273 +402,279 @@ Release Notes
      * attempts  to  improve the description of features which users have
        found confusing
      * fills  in overlooked descriptions of features which were described
-       in the [46]NEWS file but treated sketchily in manual pages.
-
-   In particular,
-     * Since   the   underlying  features  for  [47]tset,  [48]tput,  and
-       [49]clear  have  been  better  integrated,  the  documentation now
-       includes information on how those tools evolved.
-       In  addition  to explaining the improved integration of the tools,
-       the  manual  pages made it easier to see how the tools are similar
-       and how they are different.
-     * The    addch   manual   page   has   additional   information   on
-       [50]portability and differences from other implementations.
-     * The  discussion  of  color-pairs  in the attributes manual page is
-       improved in its [51]history section.
-     * The  documentation  of the chtype, cchar_t types and the attribute
-       values  which  can  be  stored  in  those types, in particular the
-       [52]history  and [53]portability sections of the attributes manual
-       page, has been improved.
-     * improve discussion of [54]portability in the mouse manual.
-     * The   pad  manual  page  has  a  section  on  the  [55]origin  and
-       portability of pads.
-     * Differences between SVr4 and X/Open Curses soft-keys are discussed
-       in a new section on [56]portability.
-     * There   are   updated/improved   notes   on   portability  in  the
-       [57]resizeterm and [58]wresize manual pages.
+       in 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.:
-     * add  note  in  the  [59]addch  manual  about  line-drawing when it
-       depends upon UTF-8.
-     * improve  discussion  of line-drawing characters in the [60]add_wch
-       manual.
-     * explain  in [61]clear's manual page that it writes to the standard
-       output.
-     * improve description of [62]endwin.
-     * improve  discussion  of  field  validation  in the [63]form driver
-       manual page.
-     * clarify the use of wint_t vs wchar_t in [64]get_wstr manual page.
-     * clarify  in  the  [65]getch manual that the keypad mode affects an
-       application's ability to read KEY_MOUSE codes, but does not affect
-       KEY_RESIZE.
-       trim  some  obsolete/incorrect  wording about EINTR from the getch
-       manual page
-       improve  manual  pages  for [66]getch and [67]get_wch to point out
-       that   they   might  return  user-defined  values  which  have  no
-       predefined names in <curses.h>
-     * improve  description  of  the  -R option in the [68]infocmp manual
-       page
-     * clarify in the [69]resizeterm manual page how KEY_RESIZE is pushed
-       onto the input stream.
-     * document return value of [70]use_extended_names
-     * document  differences  in [71]ESCDELAY versus AIX's implementation
-       in the variables manual page.
-     * The   _nc_free_tinfo   function   is   now   documented   in   the
-       [72]memory-leaks manual page, because it could be used in tack for
-       memory-leak checking.
-     * add a note to the [73]tic manual page about -W versus -f options.
-     * improve terminfo manual description of [74]terminfo syntax.
-       improve  terminfo  manual  page  discussion  of  [75]control-  and
-       graphics- characters.
-       improve [76]color-handling section in terminfo manual page
-     * clarify  description in [77]tput manual page regarding support for
-       termcap names
-       update  [78]tput  manual  page  to  reflect  changes to manipulate
-       terminal modes by sharing functions with tset.
-     * clarify  in manual pages that the optional verbose option level of
-       [79]tic   and  [80]infocmp  is  available  only  when  ncurses  is
-       configured for tracing.
-     * improve   manual   page   description   of  [81]tset/reset  versus
-       window-size.
-     * improve description of [82]tgoto parameters
-
-   There are new manual pages:
-     * [83]user_caps documents the terminfo extensions used by ncurses.
-     * [84]scr_dump documents the screen-dump format.
+     * Corrections:
+          + correct  error-returns  listed in manual pages for a few form
+            functions
+          + corrected  prototypes  in  several  manpages  using script to
+            extract those in compilable form.
+          + fix typo in term.5, improve explanation of format
+     * Clarify in manual pages that vwprintw and vwscanw are obsolete.
+       They have not been part of X/Open Curses since 2007.
+     * New/improved history and portability sections:
+          + curs_addch.3x gives some background for ACS symbols.
+          + curs_getcchar.3x  explains  a  difference between ncurses and
+            X/Open Curses.
+          + curs_getstr.3x  gives  historical/portability  background for
+            the length parameter of wgetnstr.
+          + curs_slk.3x  lists  a few differences between SVr4 curses and
+            X/Open Curses for soft-keys.
+          + curs_terminfo.3x  explains that the initial implementation of
+            terminfo  in  SVr2 was mostly replaced by other developers in
+            SVr3.
+          + infocmp.1  explains  that the initial version of terminfo had
+            no  tool  for decompiling descriptions. That came later, with
+            SVr3, with a different developer.
+          + tabs.1 tells more than you wanted to know about the tool.
+          + tic.1  explains  that  the  initial version of terminfo had a
+            rudimentary  tool  (based  on termcap) for compiling entries.
+            The tool used with Unix was developed by others for SVr3.
+          + toe.1 explains the origin of this tool.
+     * Improvements for user_caps.5:
+          + mention meml, memu and box1
+          + expanded description of XM
+          + add a clarification regarding the RGB capability.
+          + mention user_caps.5 in the tic and infocmp manual pages.
+     * Other improvements:
+          + curs_add_wch.3x  adds  note about Unicode terminology for the
+            line-drawing characters.
+          + curs_color.3x   improves  discussion  of  error  returns  and
+            extensions.
+          + curs_mouse.3x  explains how the kmous and XM capabilities are
+            used for xterm-mouse input.
+          + curs_refresh.3x  improves documentation regarding the virtual
+            and physical screens.
+          + curs_util.3x  mentions  a  difference between SVr4 and X/Open
+            Curses for unctrl.h
+          + curs_variables.3x   improves  description  of  the  init_tabs
+            capability and TABSIZE variable.
+          + ncurses.3x   improves  documentation  regarding  feature-test
+            macros in curses.h
+          + resizeterm.3x   about   top-level  windows  which  touch  the
+            screen's borders.
+          + tput.1 clarifies how tput determines the terminal size.
+
+   There  are  no new manual pages (all of the manual page updates are to
+   existing pages).
 
    Some  of  the  improvements  are  more subtle, relating to the way the
-   information is presented:
-     * Made minor fixes to manpage NAME/SYNOPSIS sections to consistently
-       use  rule  that  either  all  functions  which  are  prototyped in
-       SYNOPSIS  are  listed in the NAME section, or the manual-page name
-       is the sole item listed in the NAME section. The latter is used to
-       reduce  clutter,  e.g.,  for the top-level library manual pages as
-       well  as  for  certain  feature-pages  such  as  [85]SP-funcs  and
-       [86]threading.
-     * improve  manual  pages  for utilities with respect to POSIX versus
-       X/Open Curses.
-     * improve  organization  of  the [87]attributes and [88]color manual
-       pages.
+   information  is presented. For instance, the generated terminfo.5 file
+   uses  a  different  table  layout,  allowing  it  to use space on wide
+   terminals more effectively.
 
   Interesting bug-fixes
 
-     * modify  toe  to not exit if unable to read a terminal description,
-       e.g., if there is a permission problem.
-     * correct 20100515 change for weak signals versus sigprocmask
-     * work  around  Ada  tool-breakage in Debian 9 and later by invoking
-       gprconfig  to  specify  the C compiler to be used by gnatmake, and
-       conditionally   suppressing   Library_Options   line   for  static
-       libraries.
-     * There were, as well, several bug-fixes to handle illegal input for
-       tic.   Because   those  did  not  correspond  to  useful  terminal
-       descriptions, most users are unaffected.
+   While  there  were  many bugs fixed during development of ncurses 6.2,
+   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 in tic/infocmp's handling of user-defined
+   capabilities.  These  were  not recent bugs. Initially it was a simple
+   problem:
+     * The  user-defined capabilities can be any type (boolean, number or
+       string),  but  once given a type all uses of the name must conform
+       to  that  type--unless  some  special  support  for  a  particular
+       multi-typed name is built into ncurses.
+     * One of simpleterm's contributors copied some definitions for using
+       tmux's user-defined capabilities in late in 2016.
+
+diff --git a/st.info b/st.info
+@@ -185,7 +185,10 @@ st| simpleterm,
+  tsl=\E]0;,
+  xenl,
+  vpa=\E[%i%p1%dd,
+-
++# Tmux unofficial extensions, see TERMINFO EXTENSIONS in tmux(1)
++ Se,
++ Ss,
++ Tc,
+
+ st-256color| simpleterm with 256 colors,
+  use=st,
+
+     * Later,  in (referring to a version from mid-2017), a user asked to
+       have it updated in ncurses.
+     * However,  it  had  an  error  from  the  change  in late 2016. The
+       terminal description made what tmux expected to be string actually
+       a boolean.
+       Over  the  years,  there  were  problems with each of simpleterm's
+       terminal  descriptions.  I  repaired those, and usually dealt with
+       the problem.
+     * The  difference  in this case was that when compiling the terminal
+       database, tic may have in memory the definitions for more than one
+       terminal  description  (so  that  it  can resolve "use=" clauses).
+       Seeing   two  different  types  for  the  same  name,  in  certain
+       situations  it  would  incorrectly merge the symbol tables for the
+       two terminal descriptions.
+     * On  simpleterm's  side,  their bug was finally fixed in late 2019,
+       three years after the bug was created.
+
+   For  ncurses,  the  elapsed  time  to fix this bug was less than three
+   years.  Someone reported a problem with the terminal description a few
+   weeks  after  releasing  ncurses 6.1 (in tmux #1264), and the terminal
+   description was updated that week (ncurses patch 20180224):
+
+20180224
+        + modify _nc_resolve_uses2() to detect incompatible types when merging
+          a "use=" clause of extended capabilities.  The problem was seen in a
+          defective terminfo integrated from simpleterm sources in 20171111,
+          compounded by repair in 20180121.
+        + correct Ss/Ms interchange in st-0.7 entry (tmux #1264) -TD
+
+   The larger part of that change added a check to prevent a simple merge
+   of  terminal  descriptions  where  the same user-defined name was used
+   with different types. But it raised some questions:
+     * Was  there  a  reliable  way to manage terminal descriptions which
+       used the same extended name in different ways?
+     * Should  ncurses  provide  a registry of well-known extended names,
+       with their types?
+
+   Since  the  correction to terminfo.src could have been readily adopted
+   by  packagers,  there  was  nothing  more  to  be  done  from ncurses'
+   standpoint  on that part. But improving ncurses to prevent issues like
+   that is the reason for making a release.
+
+   Nothing  more  (constructive) was mentioned with regard to simpleterm.
+   But  a  few  problems  were  found  in  the  handling  of user-defined
+   capabilities:
+     * Forward-references to user-defined capabilities in a "use=" clause
+       did  not  allocate  new  data  for  each  use.  In tic, successive
+       compilation   of   terminal   entries   could   add   user-defined
+       capabilities to the wrong terminal entry.
+       This  was  not noticed before, since xterm's terminal descriptions
+       were  the main users of the feature, and almost all of the uses of
+       the building-blocks which contained user-defined capabilities were
+       backward-references.
+     * There  is  one  (documented)  case  where  ncurses  6.1 supports a
+       user-defined  capability that could be any type (i.e., "RGB"). The
+       check  added  in February 2018 to guard against mismatches did not
+       handle all of the combinations needed.
+
+   Both  of  these  issues  dated  from  the  original  implementation of
+   user-defined  capabilities.  Fixing  them does not change the terminal
+   database, but a older tic without the fixes will not be able to handle
+   terminfo  sources  which rely upon those fixes. Starting in June 2019,
+   the  download  link  for  the  terminfo source file was capped at that
+   date. The development sources have an up-to-date copy of the file, for
+   people with a legitimate need for it.
+
+   The  "-c"  (check) option of tic is not very useful if it cannot offer
+   advice on parameters needed for user-defined capabilities. The various
+   Caps  files  were  reorganized to reduce redundancy, and in the common
+   portion  (Caps-ncurses),  a  registry  of user-defined capabilities is
+   provided for use by tic. While users can still define their own custom
+   capabilities,  tic  will not offer any advice when their parameters do
+   not match.
+
+   In  ncurses  6.2, tic makes a special check to allow any type for RGB,
+   but  its  being  able to do this relies upon fixes made in the ncurses
+   library in mid-2019.
 
   Configuration changes
 
     Major changes
 
-   This  release  provides  a new binary format for terminal descriptions
-   that  use  extended  numeric capabilities. Applications built with the
-   wide-character ncursesw library can use these extended numbers.
-     * This includes utilities such as tic and infocmp, because (as noted
-       in  [89]New features), the feature relies upon an extension to the
-       low-level tinfo library.
-     * A  few  software  packagers  use a configuration option of ncurses
-       which  allows the low-level tinfo library to be shared between the
-       high-level  ncurses  and  ncursesw libraries. This new feature was
-       designed to work in that configuration as well.
-
-   Other  applications (i.e., using the 8-bit ncurses library) which read
-   the  extended terminal descriptions see those numeric capabilities set
-   to the maximum value for a signed 16-bit number.
-
-   Older   versions   of   ncurses'   tic   accept  out-of-range  numeric
-   capabilities,  storing  those as the maximum value for a signed 16-bit
-   number.  Other  implementations of curses (mentioned in the discussion
-   of [90]picsmap) give zero for these out-of-range capabilities.
+   There  are  no  major  changes. Several new options were added to ease
+   integration  of packages with systems using different versions of GNAT
+   and ncurses. Also, improvements were made to configure checks.
 
     Configuration options
 
-   These  changes  provide  support  for  tack 1.08, released in [91]July
-   2017:
-     * add   --without-tack   configure  option  to  refine  --with-progs
-       configure option. Normally tack is built outside the ncurses tree,
-       but  a  few packagers combine it during the build. If term_entry.h
-       is installed, there is no advantage to in-tree builds.
-     * adjust   configure-script   to  define  HAVE_CURSES_DATA_BOOLNAMES
-       symbol  needed  for  tack  1.08  when  built  in-tree. Rather than
-       relying upon internal "_nc_" functions, tack now uses the boolean,
-       number  and  string capability name-arrays provided by ncurses and
-       SVr4  Unix  curses. It still uses term_entry.h for the definitions
-       of the extended capability arrays.
-     * add  dependency  upon  ncurses_cfg.h  to  tic's  header-files; any
-       program  using  tic-library  will have to supply this file. Legacy
-       tack  versions  supply  this  file;  ongoing  tack development has
-       dropped  the dependency upon tic-library and new releases will not
-       be affected.
-
-   Other changes to the configure-script and generated files include
-     * add  configure  options to disable checks for form, menu and panel
-       libraries  so  that  ncurses-examples  can  be built with non-SVr4
-       curses implementations.
-     * add  configure  option  --enable-opaque-curses for ncurses library
-       and similar options for the other libraries.
-     * add configure option --disable-wattr-macros for use in cases where
-       one   wants   to   use  the  same  headers  for  ncurses5/ncurses6
-       development,  by suppressing the wattr* macros which differ due to
-       the introduction of extended colors
-     * modify  configure macro for shared-library rules to use -Wl,-rpath
-       rather than -rpath to work around a bug in scons
-     * improve  ncurses-examples'  configure  script  to define as needed
-       NCURSES_WIDECHAR  for  platforms where _XOPEN_SOURCE_EXTENDED does
-       not  work.  Also  modified  the  test  program  to  ensure that if
-       building  with  ncurses,  that  the cchar_t type is checked, since
-       that  is  normally  (since [92]20111030) ifdef'd depending on this
-       test.
-     * modify  configure  script  to handle the case where tic-library is
-       renamed,  but  the  --with-debug  option is used by itself without
-       normal or shared libraries
-     * modify  editing  script which generates resulting.map to work with
-       the clang configuration on recent FreeBSD, which gives an error on
-       an empty "local" section.
-     * improve configure check for setting the WILDCARD_SYMS variable; on
-       ppc64 the variable is in the Data section rather than Text.
-     * correct  result  of  configure  option  --without-fallbacks, which
-       caused FALLBACK_LIST to be set to "no"
-     * modify  --with-pkg-config-libdir  option  to  make  it possible to
-       install  ".pc"  files  even if pkg-config is not found. Limit this
-       change,  to suppress the actual install if it is not overridden to
-       a valid directory at install time.
-     * disallow "no" as a possible value for --with-shlib-version option,
-       overlooked in cleanup-changes for [93]20000708.
+   There are a few new/modified configure options:
+
+   --with-config-suffix
+          helps  work  around  a  filename  conflict with Debian packages
+          versus test-packages.
+
+   --with-ada-libname
+          allows  one  to  rename  the  "AdaCurses" library (at least one
+          packager prefers a lowercase name).
+
+   --with-fallbacks
+          now ensures there is a value, and adds the fallback information
+          to top-level Makefile summary.
+
+   --with-pcre2
+          check for pcre-posix library to help with MinGW port.
+
+   --with-tic-path and
+
+   --with-infocmp-path
+          help  work  around  problems  building  fallback  source  using
+          pre-6.0 tic/infocmp.
+
+   --with-versioned-syms
+          option value can now be a relative pathname.
 
   Portability
 
    Many  of  the  portability  changes  are implemented via the configure
    script:
-     * improve  configure  script's  CF_CC_ENV_FLAGS  macro  to allow for
-       compiler  wrappers  such  as  ccache.  This  change moves only the
-       preprocessor,  optimization  and  warning  flags  to  CPPFLAGS and
-       CFLAGS,  leaving the residue in CC. That happens to work for gcc's
-       various   "model"  options,  but  may  require  tuning  for  other
-       compilers.
-     * modify  ncurses-examples'  configure  script to use pkg-config for
-       the  extra  form/menu/panel  libraries, to be more consistent with
-       the handling of the curses/ncurses library.
-     * add  configuration  checks  to build with [94]NetBSD curses, which
-       for example lacks [95]use_env.
-     * change  ncurses-examples  to use attr_t vs chtype to follow X/Open
-       documentation   more   closely   since  Solaris  xpg4-curses  uses
-       different  values for WA_xxx vs A_xxx that rely on attr_t being an
-       unsigned  short.  Tru64  aka  OSF1, HPUX, AIX did as ncurses does,
-       equating the two sets.
-     * modify  several  test  programs  to  reflect  that  ncurses honors
-       existing  signal  handlers in initscr, while other implementations
-       do not.
-     * add  configure  check  for  openpty to ncurses-examples' configure
-       script, for ditto.
-     * improve check for working poll function by using posix_openpt as a
-       fallback in case there is no valid terminal on the standard input
-     * modify  ncurses-examples'  configure  script  to check for pthread
-       dependency  of  ncursest  or  ncursestw  library when building the
-       ncurses examples, e.g., in case weak symbols are used.
-     * add   checks   in  ncurses-examples'  configure  script  for  some
-       functions neither in 4.3BSD curses, nor based on X/Open Curses:
-          + modify  a  loop limit in firework.c to work around absense of
-            limit checks in some libraries.
-          + fill the last row of a window with "?" in firstlast if waddch
-            does not return ERR on the lower-right corner.
-     * build-fixes for the Portland Group (PGI) compilers
-          + accept whitespace in sed expression for generating expanded.c
-          + modify  configure  check  that  g++ compiler warnings are not
-            used.
-          + add  configure  check  for  -fPIC  option  needed  for shared
-            libraries.
-     * modify  configure  script  for  clang  as used on FreeBSD, to work
-       around clang's differences in exit codes vs gcc.
-     * fixes for configure/build using clang on OSX
-          + do   not   redefine   "inline"  in  ncurses_cfg.h;  this  was
-            originally to solve a problem with gcc/g++, but is aggravated
-            by clang's misuse of symbols to pretend it is gcc.
-          + add  braces  to configure script to prevent unwanted addition
-            of "-lstdc++" option to the CXXLIBS symbol.
-          + improve/update  test-program  used  for checking existence of
-            stdc++ library.
-          + if $CXXLIBS is set, the linkage test uses that in addition to
-            $LIBS.
-     * fixes for OS/2:
-          + use  button  instead  of  kbuf[0]  in  EMX-specific  part  of
-            lib_mouse.c
-          + support building with libtool on OS/2
-          + use stdc++ library with OS/2 kLIBC
-          + clear  configure  script's  cf_XOPEN_SOURCE for OS/2, to work
-            with its header files
-     * add  "newer"  baudrate symbols to the [96]baudrate function in the
-       ncurses library as well as to a corresponding table in tset.
-     * modify ncurses-examples savescreen to work with AIX and HPUX.
-     * define WIN32_LEAN_AND_MEAN for MinGW port, making builds faster.
-     * add  a configure check for wcwidth versus the ncurses line-drawing
-       characters,  to  use  in  special-casing  systems such as Solaris.
-       Solaris,  however,  requires  a  special  case  that  maps Unicode
-       line-drawing  characters  into  the  acsc  string  for non-Unicode
-       locales.  Solaris also has a misconfigured wcwidth which marks all
-       of the line drawing characters as double-width.
-     * string-hacks (non-standard):
-          + fix  configure  script  to  record  when  strlcat is found on
-            OpenBSD.
-          + add   --enable-string-hacks   option   to   ncurses-examples'
-            configure script.
-          + completed  string-hacks  for  sprintf,  etc.,  including  the
-            ncurses-examples programs.
-          + make   --enable-string-hacks   option  work  with  Debian  by
-            checking   for   the   "bsd"   library   and  its  associated
-            "<bsd/string.h>" header.
-     * workaround for Debian's antique/unmaintained version of mawk:
-          + see  Debian  #65617,  which  was  fixed  in  mawk's  upstream
-            releases in [97]2009.
-          + related fixes when building link_test.
+     * ignore $TERMINFO as a default value in configure script if it came
+       from the infocmp -Q option.
+     * distinguish  gcc  from  icc  and  clang when the --enable-warnings
+       option   is   not   used,  to  avoid  unnecessary  warnings  about
+       unrecognized inline options
+     * consistently  prepend  new  libraries  as  they  are  found during
+       configuration,  rather  than  relying  upon  the linker to resolve
+       order dependencies of libraries.
+     * modified  configure  scripts  to  reduce  relinking/ranlib  during
+       library install :
+          + use  "install -p" when available, to avoid need for ranlib of
+            static libraries.
+          + scripts which use "--disable-relink;" add a 1-second sleep to
+            work around tools which use whole-second timestamps, e.g., in
+            utime rather than the actual file system resolution.
+     * add configure check for getenv to work around implementation shown
+       in  Emscripten  which overwrites the previous return value on each
+       call.
+       Use  that  to optionally suppress START_TRACE macro, whose call to
+       getenv may not work properly
+     * change  target configure level for _XOPEN_SOURCE to 600 to address
+       use of vsscanf and setenv.
+     * reduce  use of _GNU_SOURCE for current glibc where _DEFAULT_SOURCE
+       combines with _XOPEN_SOURCE
+       Allow  for  Cygwin's  newlib when checking for the _DEFAULT_SOURCE
+       symbol.
+       MidnightBSD   is   now   checked   for  the  _XOPEN_SOURCE-related
+       definitions.
+     * If the check for va_copy or __va_copy fails,
+          + configure  now  tries copying the pointers for va_list, or as
+            an array.
+          + alternatively, it checks for __builtin_va_copy(), which could
+            be used with AIX xlc in c89 mode.
+     * several changes to support a port to Ultrix 3.1:
+          + check if "b" binary feature of fopen works
+          + check for missing feature of locale.h
+          + add fallback for strstr() in test-programs
+          + add fallback for STDOUT_FILENO in test-programs
+     * The test/configure script (used for ncurses-examples) is improved:
+          + work around non-ncurses termcap.h file, e.g., in Slackware.
+          + check for TABSIZE variable.
+          + checks  for  the  X11/Intrinsic.h  header, accommodate recent
+            MacOS changes which largely emptied /usr/include.
+
+   Here are some of the other portability fixes:
+     * added  dummy  "check"  rule  in  top-level  and  test-Makefile  to
+       simplify building test-packages for ArchLinux.
+     * dropped   library-dependency   on  psapi  for  MinGW  port,  since
+       win_driver.c   defines   PSAPI_VERSION   to   2,   making  it  use
+       GetProcessImageFileName from kernel32.dll
+     * made  build-fixes  for  configuration  using --program-suffix with
+       Ada95,  noticed  with  MacOS  but  applicable  to  other platforms
+       without libpanelw, etc.
+     * modified  ncurses/Makefile.in  to  fix a case where Debian/testing
+       changes to the ld --as-needed configuration broke ncurses-examples
+       test packages.
+     * used   _WIN32/_WIN64   in  preference  to  __MINGW32__/__MINGW64__
+       symbols  to simplify building with Microsoft Visual C++, since the
+       former are defined in both compiler configurations.
      _________________________________________________________________
 
 Features of ncurses
@@ -982,10 +751,10 @@ Features of ncurses
        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  [98]tic/[99]captoinfo  utility  provided with ncurses has the
-       ability  to  translate  many termcaps from the XENIX, IBM and AT&T
-       extension sets.
-     * A BSD-like [100]tset utility is provided.
+     * The 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 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
@@ -1000,20 +769,20 @@ Features of ncurses
        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.
-     * The  table-of-entries  utility [101]toe makes it easy for users to
-       see exactly what terminal types are available on the system.
+     * 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
        #undef.
-     * Extensive  documentation  is  provided  (see  the  [102]Additional
-       Reading section of the [103]ncurses FAQ for online documentation).
+     * 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
-   [104]ncurses-examples
+   ncurses-examples
 
    The   ncurses   library  has  been  tested  with  a  wide  variety  of
    applications including:
@@ -1021,127 +790,131 @@ Applications using ncurses
    aptitude
           FrontEnd to Apt, the debian package manager
 
-          [105]https://wiki.debian.org/Aptitude
+          https://wiki.debian.org/Aptitude
 
    cdk
           Curses Development Kit
 
-          [106]https://invisible-island.net/cdk/
+          https://invisible-island.net/cdk/
 
    ded
           directory-editor
 
-          [107]https://invisible-island.net/ded/
+          https://invisible-island.net/ded/
 
    dialog
           the  underlying  application used in Slackware's setup, and the
           basis   for  similar  install/configure  applications  on  many
           systems.
 
-          [108]https://invisible-island.net/dialog/
+          https://invisible-island.net/dialog/
 
    lynx
           the text WWW browser
 
-          [109]https://lynx.invisible-island.net/
+          https://lynx.invisible-island.net/
 
    mutt
           mail utility
 
-          [110]http://www.mutt.org/
+          http://www.mutt.org/
 
    ncftp
           file-transfer utility
 
-          [111]https://www.ncftp.com/
+          https://www.ncftp.com/
 
    nvi
           New vi uses ncurses.
 
-          [112]https://sites.google.com/a/bostic.com/keithbostic/vi
+          https://sites.google.com/a/bostic.com/keithbostic/vi
 
    ranger
           A console file manager with VI key bindings in Python.
 
-          [113]https://ranger.github.io/
+          https://ranger.github.io/
 
    tin
           newsreader, supporting color, MIME
 
-          [114]http://www.tin.org/
+          http://www.tin.org/
 
    vifm
           File manager with vi like keybindings
 
-          [115]https://vifm.info/
+          https://vifm.info/
 
    as well as some that use ncurses for the terminfo support alone:
 
    minicom
           terminal emulator for serial modem connections
 
-          [116]https://alioth.debian.org/projects/minicom/
+          https://alioth.debian.org/projects/minicom/
 
    mosh
           a replacement for ssh.
 
-          [117]https://mosh.mit.edu/
+          https://mosh.mit.edu/
 
    tack
           terminfo action checker
 
-          [118]https://invisible-island.net/ncurses/tack.html
+          https://invisible-island.net/ncurses/tack.html
 
    tmux
           terminal multiplexor
 
-          [119]https://github.com/tmux/tmux/wiki
+          https://github.com/tmux/tmux/wiki
 
    vile
           vi-like-emacs  may  be  built  to  use the terminfo, termcap or
           curses interfaces.
 
-          [120]https://invisible-island.net/vile/
+          https://invisible-island.net/vile/
 
    and finally, those which use only the termcap interface:
 
    emacs
           text editor
 
-          [121]https://www.gnu.org/software/emacs/
+          https://www.gnu.org/software/emacs/
 
    less
           The  most  commonly  used  pager  (a program that displays text
           files).
 
-          [122]http://www.greenwoodsoftware.com/less/
+          http://www.greenwoodsoftware.com/less/
 
    screen
           terminal multiplexor
 
-          [123]https://www.gnu.org/software/screen/
+          https://www.gnu.org/software/screen/
 
    vim
           text editor
 
-          [124]https://www.vim.org/
+          https://www.vim.org/
 
 Development activities
 
    Zeyd  Ben-Halim  started  ncurses  from  a  previous  package pcurses,
    written  by  Pavel  Curtis.  Eric  S.  Raymond  continued development.
-   Juergen  Pfeifer  wrote  most  of the form and menu libraries. Ongoing
-   development  work  is  done  by [125]Thomas Dickey. Thomas Dickey also
-   acts  as  the maintainer for the Free Software Foundation, which holds
-   the [126]copyright on ncurses.
+   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
+   holds  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
 
-     [127]bug-ncurses@gnu.org
+     bug-ncurses@gnu.org
 
    To join the ncurses mailing list, please write email to
 
-     [128]bug-ncurses-request@gnu.org
+     bug-ncurses-request@gnu.org
 
    containing the line:
 
@@ -1150,219 +923,60 @@ Development activities
    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
+   Beta versions of ncurses are made available at
+
+     ftp://ftp.invisible-island.net/ncurses/current/ and
+     https://invisible-mirror.net/archives/ncurses/current/ .
+
+   Patches to the current release are made available at
 
-     [129]ftp://ftp.invisible-island.net/ncurses/ and
-     [130]https://invisible-mirror.net/archives/ncurses/ .
+     ftp://ftp.invisible-island.net/ncurses/6.1/ and
+     https://invisible-mirror.net/archives/ncurses/6.1/ .
 
    There is an archive of the mailing list here:
 
-     [131]http://lists.gnu.org/archive/html/bug-ncurses            (also
-     [132]https)
+     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:
-     * [133]ncurses licensing
-     * [134]Symbol versioning in ncurses
-     * [135]Comments on ncurses versus slang (S-Lang)
-     * [136]tack - terminfo action checker
-     * [137]tctest - termcap library checker
-     * [138]Terminal Database
+     * ncurses licensing
+     * Symbol versioning in ncurses
+     * Comments on ncurses versus slang (S-Lang)
+     * 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  [139]Eric Raymond .
-   Unlike  the  older version, the termcap and terminfo data are provided
-   in   the   same  file,  which  also  provides  several  user-definable
-   extensions beyond the X/Open specification.
+   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 [140]Richard Shuford's archive .
-
-     * [141]Overview
-     * [142]Release Notes
-          + [143]Library improvements
-               o [144]New features
-               o [145]Other improvements
-          + [146]Program improvements
-               o [147]Utilities
-               o [148]Examples
-          + [149]Terminal database
-          + [150]Documentation
-          + [151]Interesting bug-fixes
-          + [152]Configuration changes
-               o [153]Major changes
-               o [154]Configuration options
-          + [155]Portability
-     * [156]Features of ncurses
-     * [157]Applications using ncurses
-     * [158]Development activities
-     * [159]Related resources
-     * [160]Other resources
-
-References
-
-   1. https://invisible-island.net/ncurses/man/captoinfo.1m.html
-   2. https://invisible-island.net/ncurses/man/clear.1.html
-   3. https://invisible-island.net/ncurses/man/infocmp.1m.html
-   4. https://invisible-island.net/ncurses/man/tabs.1.html
-   5. https://invisible-island.net/ncurses/man/tic.1m.html
-   6. https://invisible-island.net/ncurses/man/toe.1m.html
-   7. https://invisible-island.net/ncurses/man/tput.1.html
-   8. https://invisible-island.net/ncurses/man/tset.1.html
-   9. https://invisible-island.net/ncurses/
-  10. ftp://ftp.invisible-island.net/ncurses/
-  11. https://invisible-mirror.net/archives/ncurses/
-  12. ftp://ftp.gnu.org/gnu/ncurses/
-  13. https://invisible-island.net/ncurses/man/curs_kernel.3x.html#h3-def_prog_mode_-def_shell_mode
-  14. https://invisible-island.net/ncurses/ncurses-mapsyms.html
-  15. https://invisible-island.net/ncurses/tctest.html#bsd42-numeric-caps
-  16. https://invisible-island.net/ncurses/ncurses-slang.html#cause_numbers
-  17. https://invisible-island.net/ncurses/tack.html#portable
-  18. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726
-  19. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-EXTENSIONS
-  20. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization
-  21. https://invisible-island.net/ncurses/man/tset.1.html
-  22. https://invisible-island.net/ncurses/man/tput.1.html
-  23. https://invisible-island.net/ncurses/man/tset.1.html#h3-reset---reinitialization
-  24. https://invisible-island.net/ncurses/man/clear.1.html
-  25. https://invisible-island.net/ncurses/tctest.html#bsd42-ctl-question
-  26. https://invisible-island.net/ncurses/tctest.html#freebsd-ctl-question
-  27. https://invisible-island.net/ncurses/ncurses-examples.html
-  28. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-alloc_pair
-  29. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-find_pair
-  30. https://invisible-island.net/ncurses/man/new_pair.3x.html#h3-free_pair
-  31. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap
-  32. https://invisible-island.net/dialog/
-  33. https://invisible-island.net/dialog/manpage/dialog.html#h3-Common-Options
-  34. https://invisible-island.net/xterm/xterm.log.html#xterm_331
-  35. https://invisible-island.net/ncurses/terminfo.src.html#toc-_A_N_S_I__S_Y_S__I_S_O_6429__E_C_M_A-48__Capabilities
-  36. https://invisible-island.net/ncurses/terminfo.src.html#tic-icl6404
-  37. https://invisible-island.net/ncurses/terminfo.src.html#tic-interix
-  38. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Linux_consoles
-  39. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Open_B_S_D_consoles
-  40. https://invisible-island.net/ncurses/terminfo.src.html#toc-_Tmux
-  41. https://invisible-island.net/ncurses/terminfo.src.html#toc-_D_E_C__V_T100_and_compatibles
-  42. https://invisible-island.net/ncurses/terminfo.src.html#toc-_G_N_O_M_E__V_T_E_
-  43. https://invisible-island.net/ncurses/terminfo.src.html#toc-_X_T_E_R_M
-  44. https://invisible-island.net/xterm/xterm.log.html#xterm_32
-  45. https://invisible-island.net/xterm/xterm.log.html#xterm_272
-  46. https://invisible-island.net/ncurses/NEWS.html
-  47. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
-  48. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
-  49. https://invisible-island.net/ncurses/man/clear.1.html#h2-HISTORY
-  50. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h2-PORTABILITY
-  51. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY
-  52. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-HISTORY
-  53. https://invisible-island.net/ncurses/man/curs_attr.3x.html#h2-PORTABILITY
-  54. https://invisible-island.net/ncurses/man/curs_mouse.3x.html#h2-PORTABILITY
-  55. https://invisible-island.net/ncurses/man/curs_pad.3x.html#h2-PORTABILITY
-  56. https://invisible-island.net/ncurses/man/curs_slk.3x.html#h2-PORTABILITY
-  57. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-PORTABILITY
-  58. https://invisible-island.net/ncurses/man/wresize.3x.html#h2-PORTABILITY
-  59. https://invisible-island.net/ncurses/man/curs_addch.3x.html#h3-ACS-Symbols
-  60. https://invisible-island.net/ncurses/man/curs_add_wch.3x.html
-  61. https://invisible-island.net/ncurses/man/clear.1.html#h2-DESCRIPTION
-  62. https://invisible-island.net/ncurses/man/curs_initscr.3x.html#h3-endwin
-  63. https://invisible-island.net/ncurses/man/form_driver.3x.html
-  64. https://invisible-island.net/ncurses/man/curs_get_wstr.3x.html#h2-RETURN-VALUE
-  65. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Predefined-key-codes
-  66. https://invisible-island.net/ncurses/man/curs_getch.3x.html#h3-Keypad-Mode
-  67. https://invisible-island.net/ncurses/man/curs_get_wch.3x.html#h2-DESCRIPTION
-  68. https://invisible-island.net/ncurses/man/infocmp.1m.html
-  69. https://invisible-island.net/ncurses/man/resizeterm.3x.html#h2-NOTES
-  70. https://invisible-island.net/ncurses/man/curs_extend.3x#h2-RETURN-VALUE
-  71. https://invisible-island.net/ncurses/man/curs_variables.3x.html#h2-PORTABILITY
-  72. https://invisible-island.net/ncurses/man/curs_memleaks.3x.html
-  73. https://invisible-island.net/ncurses/man/tic.1m.html
-  74. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Terminfo-Capabilities-Syntax
-  75. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Line-Graphics
-  76. https://invisible-island.net/ncurses/man/terminfo.5.html#h3-Color-Handling
-  77. https://invisible-island.net/ncurses/man/tput.1.html#h2-PORTABILITY
-  78. https://invisible-island.net/ncurses/man/tput.1.html#h3-Aliases
-  79. https://invisible-island.net/ncurses/man/tic.1m.html#h2-OPTIONS
-  80. https://invisible-island.net/ncurses/man/infocmp.1m.html#h3-Other-Options
-  81. https://invisible-island.net/ncurses/man/tset.1.html
-  82. https://invisible-island.net/ncurses/man/curs_termcap.3x.html#h3-FORMATTING-CAPABILITIES
-  83. https://invisible-island.net/ncurses/man/user_caps.5.html
-  84. https://invisible-island.net/ncurses/man/scr_dump.5.html
-  85. https://invisible-island.net/ncurses/man/curs_sp_funcs.3x.html
-  86. https://invisible-island.net/ncurses/man/curs_threads.3x.html
-  87. https://invisible-island.net/ncurses/man/curs_attr.3x.html
-  88. file:///ncurses/man/curs_color.3x.html
-  89. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library
-  90. https://invisible-island.net/ncurses/ncurses-slang.html#compare_picsmap
-  91. https://invisible-island.net/ncurses/tack/CHANGES.html#index-t20170726
-  92. https://invisible-island.net/ncurses/NEWS.html#t20111030
-  93. https://invisible-island.net/ncurses/NEWS.html#t20000708
-  94. https://invisible-island.net/ncurses/ncurses-netbsd.html
-  95. https://invisible-island.net/ncurses/man/curs_util.3x.html#h3-use_env
-  96. https://invisible-island.net/ncurses/man/curs_termattrs.3x.html#h3-baudrate
-  97. https://invisible-island.net/mawk/CHANGES.html#t20090727
-  98. https://invisible-island.net/ncurses/man/tic.1m.html
-  99. https://invisible-island.net/ncurses/man/captoinfo.1m.html
- 100. https://invisible-island.net/ncurses/man/tset.1.html
- 101. https://invisible-island.net/ncurses/man/toe.1m.html
- 102. https://invisible-island.net/ncurses/ncurses.faq.html#additional_reading
- 103. https://invisible-island.net/ncurses/ncurses.faq.html
- 104. https://invisible-island.net/ncurses/ncurses-examples.html
- 105. https://wiki.debian.org/Aptitude
- 106. https://invisible-island.net/cdk/
- 107. https://invisible-island.net/ded/
- 108. https://invisible-island.net/dialog/
- 109. https://lynx.invisible-island.net/
- 110. http://www.mutt.org/
- 111. https://www.ncftp.com/
- 112. https://sites.google.com/a/bostic.com/keithbostic/vi
- 113. https://ranger.github.io/
- 114. http://www.tin.org/
- 115. https://vifm.info/
- 116. https://alioth.debian.org/projects/minicom/
- 117. https://mosh.mit.edu/
- 118. https://invisible-island.net/ncurses/tack.html
- 119. https://github.com/tmux/tmux/wiki
- 120. https://invisible-island.net/vile/
- 121. https://www.gnu.org/software/emacs/
- 122. http://www.greenwoodsoftware.com/less/
- 123. https://www.gnu.org/software/screen/
- 124. https://www.vim.org/
- 125. mailto:dickey@invisible-island.net
- 126. https://invisible-island.net/ncurses/ncurses-license.html
- 127. mailto:bug-ncurses@gnu.org
- 128. mailto:bug-ncurses-request@gnu.org
- 129. ftp://ftp.invisible-island.net/ncurses/
- 130. https://invisible-mirror.net/archives/ncurses/
- 131. http://lists.gnu.org/archive/html/bug-ncurses
- 132. https://lists.gnu.org/archive/html/bug-ncurses
- 133. https://invisible-island.net/ncurses/ncurses-license.html
- 134. https://invisible-island.net/ncurses/ncurses-mapsyms.html
- 135. https://invisible-island.net/ncurses/ncurses-slang.html
- 136. https://invisible-island.net/ncurses/tack.html
- 137. https://invisible-island.net/ncurses/tctest.html
- 138. https://invisible-island.net/ncurses/ncurses.html#download_database
- 139. http://www.catb.org/~esr/terminfo/
- 140. http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal
- 141. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-overview
- 142. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-release-notes
- 143. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-library
- 144. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-new-library
- 145. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-fixes-library
- 146. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-programs
- 147. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-utilities
- 148. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-examples
- 149. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-database
- 150. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-documentation
- 151. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-bug-fixes
- 152. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-config-config
- 153. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-major
- 154. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h4-config-options
- 155. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h3-portability
- 156. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-features
- 157. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-who-uses
- 158. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-development
- 159. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-this-stuff
- 160. file:///usr/build/ncurses/ncurses-6.1-20180127/doc/html/announce.html#h2-other-stuff
+   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