]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - announce.html.in
ncurses 6.5 - patch 20240519
[ncurses.git] / announce.html.in
index 9651b06fd4f35cd1eb14dcf835c79ecd892e709c..9889ef1bfb6c6ac9dea91cd2e517403d0a4c5a06 100644 (file)
@@ -1,7 +1,7 @@
 <!--
-  $Id: announce.html.in,v 1.100 2021/06/17 21:30:22 tom Exp $
+  $Id: announce.html.in,v 1.107 2024/04/27 16:45:27 tom Exp $
   ****************************************************************************
-  * Copyright 2018-2020,2021 Thomas E. Dickey                                *
+  * Copyright 2018-2023,2024 Thomas E. Dickey                                *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * copy of this software and associated documentation files (the            *
   ****************************************************************************
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
-
 <html>
 <head>
   <meta name="generator" content=
-  "HTML Tidy for HTML5 for Linux version 5.2.0">
-
+  "HTML Tidy for HTML5 for Linux version 5.6.0">
   <title>Announcing ncurses @VERSION@</title>
   <link rel="author" href="mailto:bug-ncurses@gnu.org">
   <meta http-equiv="Content-Type" content=
@@ -57,7 +55,6 @@
   }
   </style>
 </head>
-
 <body>
   <h1 class="no-header">Announcing ncurses @VERSION@</h1>
 
 
   <blockquote>
     <p><a href=
-    "ftp://ftp.invisible-island.net/ncurses/">ftp://ftp.invisible-island.net/ncurses/</a>
+    "https://invisible-island.net/archives/ncurses/">https://invisible-island.net/archives/ncurses/</a>
     or<br>
     <a href=
     "https://invisible-mirror.net/archives/ncurses/">https://invisible-mirror.net/archives/ncurses/</a>&nbsp;.</p>
   </blockquote>
 
-  <p>It is also available via anonymous FTP at the GNU distribution
-  site</p>
+  <p>It is also available at the GNU distribution site</p>
 
   <blockquote>
     <p><a href=
-    "ftp://ftp.gnu.org/gnu/ncurses/">ftp://ftp.gnu.org/gnu/ncurses/</a>&nbsp;.</p>
+    "https://ftp.gnu.org/gnu/ncurses/">https://ftp.gnu.org/gnu/ncurses/</a>&nbsp;.</p>
   </blockquote>
 
   <h2><a name="h2-release-notes" id="h2-release-notes">Release
   Notes</a></h2>
 
   <p>These notes are for <span class="main-name">ncurses</span>
-  @VERSION@, released <strong>February 12, 2020</strong>.</p>
+  @VERSION@, released <strong>April 27, 2024</strong>.</p>
 
   <p>This release is designed to be source-compatible with
-  <span class="main-name">ncurses</span> 5.0 through 6.1; providing
+  <span class="main-name">ncurses</span> 5.0 through 6.4; providing
   extensions to the application binary interface (ABI). Although
   the source can still be configured to support the <span class=
   "main-name">ncurses</span> 5 ABI, the reason for the release is
   this announcement.</p>
 
   <p>The most <a href="#h3-bug-fixes">important
-  bug-fixes/improvements</a> 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 <span class="main-name">ncurses</span>
-  6.1 release.</p>
+  bug-fixes/improvements</a> dealt with robustness issues. The
+  release notes also mention some other bug-fixes, but are focused
+  on new features and improvements to existing features since
+  <span class="main-name">ncurses</span> 6.4 release.</p>
 
   <h3><a name="h3-library" id="h3-library">Library improvements</a></h3>
 
   <h4><a name="h4-new-library" id="h4-new-library">New features</a></h4>
 
-  <p>There are several new features:</p>
+  <p>These are new features:</p>
 
   <ul>
     <li>
-      <p><a href=
-      "@HOMEPAGE@/man/form_field_opts.3x.html">O_EDGE_INSERT_STAY</a>
-      tells the form library to optionally delay cursor movement on
-      a field edge/boundary</p>
-    </li>
+      <p>The low-level terminfo and termcap interfaces are used
+      both by the higher-level curses library, as well as by many
+      applications.</p>
 
-    <li>
-      <p><a href=
-      "@HOMEPAGE@/man/form_field_opts.3x.html">O_INPUT_FIELD</a>
-      extension to form library allows a dynamic field to shrink if
-      the new limit is smaller than the current field size.</p>
-    </li>
+      <p>The functions which convert parameterized terminal
+      capability strings for output to the terminal
+      (<code>tiparm</code> and <code>tparm</code>) analyze the
+      capability string to determine which parameters are strings
+      (i.e., addresses), versus numbers (not addresses).</p>
 
-    <li>
-      <p>added <a href=
-      "@HOMEPAGE@/man/curs_memleaks.3x.html">exit_curses</a> and
-      <a href=
-      "@HOMEPAGE@/man/curs_memleaks.3x.html">exit_terminfo</a> to
-      replace internal symbols for leak-checking.</p>
-    </li>
-
-    <li>
-      <p>added <a href=
-      "@HOMEPAGE@/man/curs_trace.3x.html#h3-Functions">curses_trace</a>,
-      to replace trace().</p>
-    </li>
-  </ul>
+      <p>The library's analysis of a capability string may differ
+      from the calling application's design if environment
+      variables are used to point to an invalid terminal database.
+      This is a longstanding problem with <em>all</em>
+      implementations of terminfo, dating from the early 1980s.</p>
 
-  <p>Additionally, to improve performance other changes (and
-  extensions) are provided in this release:</p>
+      <p>Two new functions address this problem: by providing a
+      function which allows the calling application to tell ncurses
+      how many string-parameters to expect:</p>
 
-  <ul>
-    <li>
-      <p>mouse decoding now handles shift/control/alt logic when
-      decoding xterm's 1006 mode</p>
-    </li>
-
-    <li>
-      <p>ncurses now defines a limit for <a href=
-      "@HOMEPAGE@/man/curs_getstr.3x.html">wgetnstr</a>, <a href=
-      "@HOMEPAGE@/man/curs_get_wstr.3x.html">wgetn_wstr</a> when
-      length is negative or &ldquo;too large&rdquo;.</p>
-    </li>
-
-    <li>reordered loop-limit checks in <a href=
-    "@HOMEPAGE@/man/curs_insstr.3x.html">winsnstr</a> in case the
-    string has no terminating null and only the number of
-    characters is used.</li>
-
-    <li>
-      <p>there is now no buffer-size limit when reading the
-      <a href="@HOMEPAGE@/man/ncurses.3x.html#h3-TERMCAP"><tt>$TERMCAP</tt></a>
-      variable.</p>
-    </li>
-
-    <li>
-      <p>the <a href=
-      "@HOMEPAGE@/man/ncurses.3x.html#h3-TERMCAP"><tt>$TERMCAP</tt></a>
-      variable may be interpreted as a fallback to a terminfo
-      entry</p>
-    </li>
+      <ul>
+        <li><code>tiscan_s</code> helps applications check
+        formatting capabilities that would be passed to
+        <code>tiparm_s</code>.</li>
 
-    <li>
-      <p><a href=
-      "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Output-Functions"><tt>
-      mvcur</tt></a> now decides whether to use hard-tabs, using
-      <strong><tt>xt</tt></strong>, <strong><tt>tbc</tt></strong>
-      and <strong><tt>hts</tt></strong> as clues.</p>
+        <li><code>tiparm_s</code> provides applications a way to
+        tell ncurses what the expected parameters are for a
+        capability.</li>
+      </ul>
     </li>
 
     <li>
-      <p>extended colors are improved by modifying an internal call
-      to <a href=
-      "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Output-Functions"><tt>
-      vid_puts</tt></a> to pass extended color pairs e.g., from
-      <tt>tty_update.c</tt> and <tt>lib_mvcur.c</tt></p>
-    </li>
+      <p>The ncurses library supports a compile-time feature
+      (enabled with the configure <code>--enable-check-size</code>
+      option) which simplifies initialization with terminals which
+      do not negotiate window (screen) size. This is done in
+      <code>setupterm</code>, by providing for using ANSI
+      cursor-position report (in user6/user7 terminfo capabilities)
+      to obtain the screen size if neither environment variables or
+      ioctl is used.</p>
 
-    <li>
-      <p id="getenv-fixes">the initialization functions now avoid
-      relying upon persistent data for the result from <a href=
-      "#getenv-check"><tt>getenv</tt></a></p>
+      <p>The ncurses test-program with options
+      &ldquo;<code>-E&nbsp;-T</code>&rdquo; demonstrates this
+      feature.</p>
     </li>
 
-    <li>
-      <p>scrolling is improved:</p>
-
-      <ul>
-        <li>a limit check in <tt>newline_forces_scroll</tt> handles
-        the case where the row is inside scroll-margins, but not at
-        the end.</li>
-
-        <li>
-          <p>improved loop limits in <tt>_nc_scroll_window</tt>
-          handle a case where the scrolled data is a pad which is
-          taller than the window.</p>
-        </li>
-      </ul>
-    </li>
+    <li>add functions to query tty-flags in
+    <code>SCREEN</code></li>
   </ul>
 
+  <p>This release drops compatibility with obsolete versions of
+  <a href="@HOMEPAGE@/tack/">tack</a>, e.g., pre-1.08</p>
+
   <h4><a name="h4-fixes-library" id="h4-fixes-library">Other
   improvements</a></h4>
 
-  <p>These are revised features:</p>
+  <p>These are improvements to existing features:</p>
 
   <ul>
     <li>
-      <p>used &ldquo;<tt>const</tt>&rdquo; in some prototypes
-      rather than <tt>NCURSES_CONST</tt> where X/Open Curses was
-      updated to do this, e.g., <tt>wscanw</tt>, <tt>newterm</tt>,
-      the terminfo interface. Also use &ldquo;<tt>const</tt>&rdquo;
-      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 &ldquo;<tt>const</tt>&rdquo; for certain
-      return values, e.g., <a href=
-      "@HOMEPAGE@/man/curs_util.3x.html#h3-keyname_key_name">keyname</a>.</p>
-    </li>
-
-    <li>
-      <p>modified <a href=
-      "@HOMEPAGE@/man/curs_bkgd.3x.html#h3-bkgd"><tt>wbkgd</tt></a>
-      and <a href=
-      "@HOMEPAGE@/man/curs_bkgrnd.3x.html#h3-bkgrnd"><tt>wbkgrnd</tt></a>
-      to improve compatibility with SVr4 curses, changing the way
-      the window rendition is updated when the background character
-      is modified</p>
-    </li>
-
-    <li>
-      <p>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 <a href=
-      "@HOMEPAGE@/man/term.5.html#h3-EXTENDED-STORAGE-FORMAT">term(5)</a>).</p>
-    </li>
-
-    <li>
-      <p>modified the initialization checks for mouse so that the
-      <a href=
-      "/ncurses/terminfo.src.html#tic-xterm_sm_1006"><tt>xterm+sm+1006</tt></a>
-      block will work with terminal descriptions not mentioning
-      <em>xterm</em>.</p>
-    </li>
-  </ul>
+      <p>In addition to the new, safer function
+      <code>tiparm_s</code>, ncurses adds checks to make the older
+      <code>tiparm</code>, <code>tparm</code> and
+      <code>tgoto</code> functions safer:</p>
 
-  <p>These were done to limit or ultimately deprecate features:</p>
+      <ul>
+        <li>
+          <p>the terminfo functions <code>tiparm</code> and
+          <code>tparm</code> ensure that the capability string
+          comes from the terminal description which ncurses loads,
+          rather than from random data which the application
+          happens to have.</p>
+        </li>
 
-  <ul>
-    <li>
-      <p>deprecated <a href=
-      "@HOMEPAGE@/NEWS.html#t970831">safe-sprintf</a>, since the
-      <tt>vsnprintf</tt> function, which does what was needed, was
-      standardized long ago.</p>
-    </li>
+        <li>
+          <p>the <code>tgoto</code> function disallows capabilities
+          which its analysis shows will attempt to use string
+          parameters.</p>
+        </li>
 
-    <li>
-      <p>marked <a href=
-      "@HOMEPAGE@/man/curs_printw.3x.html#h2-PORTABILITY"><tt>vwprintw</tt></a>
-      and <tt>vwscanw</tt> as deprecated; recommend using <a href=
-      "@HOMEPAGE@/man/curs_printw.3x.html"><tt>vw_printw</tt></a>
-      and <tt>vw_scanw</tt>, respectively.</p>
+        <li>
+          <p>ncurses uses internal functions which correspond to
+          <code>tiparm</code>, and <code>tgoto</code> which ensure
+          that the capability strings which are passed to these
+          functions come from the loaded terminal description.</p>
+        </li>
+      </ul>
     </li>
 
     <li>
-      <p>added deprecation warnings for internal functions called
-      by older versions of <a href=
-      "@HOMEPAGE@/tack.html">tack</a>.</p>
+      <p>improve check in <code>lib_tparm.c</code>, ensuring that a
+      char* fits into a <code>TPARM_ARG</code></p>
     </li>
 
     <li>
-      <p>removed unused <tt>_nc_import_termtype2</tt> function.</p>
+      <p>modify <code>_nc_syserr_abort</code> to use
+      <code>_nc_env_access</code>, rather than only checking root
+      uid</p>
     </li>
-  </ul>
 
-  <p>These are improvements to existing features:</p>
-
-  <ul>
     <li>
-      <p>check parameter of <a href=
-      "@HOMEPAGE@/man/curs_threads.3x.html">set_escdelay</a>,
-      return ERR if negative.</p>
+      <p>improve thread lock in <code>lib_trace.c</code></p>
     </li>
 
     <li>
-      <p>check parameter of <a href=
-      "@HOMEPAGE@/man/curs_threads.3x.html">set_tabsize</a>, return
-      ERR if not greater than zero</p>
+      <p>modify <code>flushinp</code> to use file descriptors in
+      <code>SCREEN</code>, rather than from <code>TERMINAL</code>,
+      and check if they are for a terminal, like SVr4</p>
     </li>
 
     <li>
-      <p>correct a status-check in _nc_read_tic_entry() so that if
-      reading a hex/b64 <a href=
-      "@HOMEPAGE@/man/ncurses.3x.html#h3-TERMINFO"><tt>$TERMINFO</tt></a>,
-      and the <a href=
-      "@HOMEPAGE@/man/ncurses.3x.html#h3-TERM"><tt>$TERM</tt></a>
-      does not match, fall-through to the compiled-in search
-      list.</p>
+      <p>modify <code>mcprint</code> to use file descriptor in
+      <code>SCREEN</code>, for consistency</p>
     </li>
 
     <li>
-      <p>amend check for <a href=
-      "@HOMEPAGE@/man/terminfo.5.html#h3-Predefined-Capabilities"><tt>
-      repeat_char</tt></a> to handle a case where setlocale() was
-      called after <a href=
-      "@HOMEPAGE@/man/curs_initscr.3x.html"><tt>initscr</tt></a></p>
+      <p>modify internal function <code>_nc_read_file_entry</code>
+      to show relevant filename in warnings</p>
     </li>
 
     <li>
-      <p>move macro for <a href=
-      "@HOMEPAGE@/man/curs_touch.3x.html"><tt>is_linetouched</tt></a>
-      inside <strong><tt>NCURSES_NOMACROS</tt></strong>
-      <em><tt>ifndef</tt></em>.</p>
+      <p>improve checks in internal function
+      <code>convert_string</code> for corrupt terminfo entry</p>
     </li>
 
     <li>
-      <p>use <tt>_nc_copy_termtype2</tt> rather than direct
-      assignment in <a href=
-      "@HOMEPAGE@/man/curs_terminfo.3x.html#h3-Initialization">setupterm</a>,
-      in case it is called repeatedly using fallback terminfo
-      descriptions</p>
+      <p>review/improve handling of out-of-memory conditions</p>
     </li>
 
     <li>
-      <p>improve workaround for Solaris wcwidth versus line-drawing
-      characters</p>
+      <p>limit delays to 30 seconds, i.e., padding delays in
+      terminfo, as well as <code>napms</code> and
+      <code>delay_output</code> functions</p>
     </li>
 
     <li>
-      <p>add checks in <a href=
-      "@HOMEPAGE@/man/resizeterm.3x.html"><tt>repair_subwindows</tt></a>
-      to keep the current position and scroll-margins inside the
-      resized subwindow.</p>
+      <p>fix reallocation loop for <code>vsnprintf</code> in
+      <code>_nc_sprintf_string</code> by copying the va_list
+      variable</p>
     </li>
 
     <li>
-      <p>correct a buffer-limit in <tt>write_entry.c</tt> for
-      systems that use caseless filenames.</p>
+      <p>modify <code>delscreen</code> to limit the windows which
+      it creates to just those associated with the screen</p>
     </li>
 
     <li>
-      <p>improved build-time utility <em>report_offsets</em>:</p>
-
-      <ul>
-        <li>
-          <p>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.</p>
-        </li>
-
-        <li>
-          <p>add <tt>NCURSES_GLOBALS</tt> and
-          <tt>NCURSES_PRESCREEN</tt> to report to show how similar
-          the different <em>libtinfo</em> configurations are.</p>
-        </li>
-      </ul>
+      <p>modify <code>endwin</code> to return an error if it is
+      called again without an intervening screen update</p>
     </li>
 
     <li>
-      <p>modified some header files to ensure that those include
-      necessary files except for the previously-documented
-      cases</p>
+      <p>modify <code>wenclose</code> to handle pads</p>
     </li>
 
     <li>
-      <p>added some traces in initialization to show whether a
-      fallback entry is used.</p>
+      <p>eliminate use of <code>PATH_MAX</code> in
+      <code>lib_trace.c</code></p>
     </li>
 
     <li>
-      <p>made minor optimization to reduce calls to
-      _nc_reserve_pairs</p>
+      <p>provide for any <code>CCHARW_MAX</code> greater than 1</p>
     </li>
   </ul>
 
 
   <ul>
     <li>
-      <p>fix a special case in <tt>PutAttrChar</tt> 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 <em>vt52</em>, which
-      lacks most line-drawing capability.</p>
+      <p>correct loop termination condition in
+      <code>waddnstr</code> and <code>waddnwstr</code></p>
     </li>
 
     <li>
-      <p>corrected flag for "seq" method of db 1.8.5 interface,
-      needed by toe on some of the BSDs.</p>
+      <p>improve parsing in internal function
+      <code>_nc_msec_cost</code>, allowing a single decimal
+      point</p>
     </li>
 
     <li>
-      <p>modify comparison in make_hash.c to correct a special case
-      in collision handling for Caps-hpux11</p>
+      <p>amend parameter check for entire string versus specific
+      length in <code>winsnstr</code> and <code>wins_nwstr</code>
+      to match Solaris; make similar correction to
+      <code>wins_nwstr</code></p>
     </li>
 
     <li>
-      <p>add extended_slk_color{,_sp} symbols to the appropriate
-      package/*.{map,sym} files</p>
+      <p>correct internal function <code>wadd_wch_literal</code>
+      when adding a non-spacing character to a double-width
+      character</p>
     </li>
 
     <li>
-      <p>modify lib_setup to avoid calling pthread_self() without
-      first verifying that the address is valid, i.e., for weak
-      symbols</p>
-    </li>
-
-    <li>
-      <p>add a couple of broken-linker symbols to the list of
-      versioned symbols to help with link-time optimization versus
-      weak symbols.</p>
+      <p>correct definition of <code>Charable</code> macro for
+      non-wide ncurses library .</p>
     </li>
   </ul>
 
   <h3><a name="h3-programs" id="h3-programs">Program
   improvements</a></h3>
 
-  <p id="h4-utilities">Several improvements were made to the utility programs:</p>
+  <p id="h4-utilities">Several improvements were made to the
+  utility programs. Some were done to make the <code>infocmp</code>
+  option &ldquo;<tt>-u</tt>&rdquo; option help refactor the
+  terminal database.</p>
 
   <dl>
-    <dt><span class="part-name">clear</span>
+    <dt><span class="part-name"><a href=
+    "@HOMEPAGE@/man/infocmp.1m.html">infocmp</a></span>
     </dt>
 
     <dd>
       <ul>
-        <li>improved logic for clearing with the <em>E3</em>
-        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</li>
-      </ul>
-    </dd>
+        <li>
+          <p>add limit checks for processing extended capabilities
+          with the &ldquo;<code>-u</code>&rdquo; option</p>
+        </li>
 
-    <dt><span class="part-name">infocmp</span>
-    </dt>
+        <li>
+          <p>correct initial alignment of extended capabilities, so
+          that the &ldquo;<code>-u</code>&rdquo; option can be used
+          for more than two terminal types</p>
+        </li>
 
-    <dd>
-      <ul>
-        <li>omit filtering of &ldquo;<tt>OTxx</tt>&rdquo; 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.</li>
+        <li>
+          <p>modify &ldquo;<code>-u</code>&rdquo; option to not
+          report cancels for strings which were already cancelled
+          in a use'd chunk.</p>
+        </li>
+
+        <li>
+          <p>correct an assignment &ldquo;<code>-u</code>&rdquo;
+          for detecting if a boolean is unset in a base entry and
+          set in a use'd chunk, i.e., if it was cancelled.</p>
+        </li>
       </ul>
     </dd>
 
-    <dt><span class="part-name">tic</span>
+    <dt><span class="part-name"><a href=
+    "@HOMEPAGE@/man/tic.1m.html">tic</a></span>
     </dt>
 
     <dd>
       <ul>
-        <li>added check for consistent alternate character set
-        capabilities.</li>
-
-        <li>added check for paired <tt>indn</tt>/<tt>rin</tt>.</li>
-
-        <li>added check for terminals with <tt>parm_dch</tt> vs
-        <tt>parm_ich</tt>.</li>
-
-        <li>added check for the case where
-        <tt>setf</tt>/<tt>setb</tt> are given using different
-        strings, but provide identical results to
-        <tt>setaf</tt>/<tt>setab</tt>.</li>
-
-        <li>corrected check for <tt>ich1</tt>.</li>
+        <li>
+          <p>correct limit-check when dumping tc/use clause via
+          &ldquo;<code>-I</code>&rdquo;</p>
+        </li>
 
-        <li>changed a too-large terminal entry from a fatal error
-        to a warning.</li>
-      </ul>
-    </dd>
+        <li>
+          <p>check return value of <code>_nc_save_str</code>, in
+          special case where extended capabilities are processed
+          but the terminal description was not initialized</p>
+        </li>
 
-    <dt><span class="part-name">toe</span>
-    </dt>
+        <li>
+          <p>modify check for multiply defined aliases to report
+          problems within the current runtime rather than for
+          conflicts with pre-existing terminal descriptions.</p>
+        </li>
 
-    <dd>
-      <ul>
-        <li>ignores any hex/b64 <tt>$TERMINFO</tt> value in the
-        list of terminfo databases.</li>
+        <li>
+          <p>disallow using <code>$TERMINFO</code> or
+          <code>$HOME/.terminfo</code> when
+          &ldquo;<code>-o</code>&rdquo; option is used</p>
+        </li>
       </ul>
     </dd>
 
-    <dt><span class="part-name">tset</span>
-    </dt>
+    <dt><span class="part-name"><a href=
+    "@HOMEPAGE@/man/tput.1.html">tput</a></span> and <span class=
+    "part-name"><a href=
+    "@HOMEPAGE@/man/tset.1.html">tset</a></span></dt>
 
     <dd>
       <ul>
-        <li>replace check in <span class="part-name">reset</span>
-        command for obsolete &ldquo;<tt>pt</tt>&rdquo; capability
-        using <tt>tbc</tt> and <tt>hts</tt> capabilities as
-        clues</li>
-
-        <li>modify <span class="part-name">reset</span> to allow
-        for tabstops at intervals other than 8.</li>
-
-        <li>change <span class="part-name">reset</span>'s behavior
-        for margins to simply clear soft-margins if possible,
-        rather than clearing and then setting them according to the
-        terminal's width.</li>
-      </ul>
-    </dd>
+        <li>
+          <p>add &ldquo;<code>-v</code>&rdquo; option to tput, to
+          show warnings</p>
+        </li>
 
-    <dt><span class="part-name">tput</span>
-    </dt>
+        <li>
+          <p>modify <em>reset</em> command to avoid altering clocal
+          if the terminal uses a modem</p>
+        </li>
 
-    <dd>
-      <ul>
-        <li>add &ldquo;<tt>x</tt>&rdquo; to <tt>getopt</tt> string
-        so that &ldquo;<tt>tput&nbsp;-x&nbsp;clear</tt>&rdquo;
-        works.</li>
+        <li>
+          <p>modify <em>reset</em> feature to avoid 1-second sleep
+          if running in a pseudo-terminal</p>
+        </li>
       </ul>
     </dd>
   </dl>
 
-  <p>Several changes were made to the generated ncurses*config
-  scripts and the analogous &ldquo;<tt>.pc</tt>&rdquo; files to
-  reduce differences between the configurations they report:</p>
-
-  <ul>
-    <li>
-      <p>modified the ncurse*-config and pc-files to more closely
-      match for the <tt>-I</tt> and <tt>-l</tt> options.</p>
-    </li>
-
-    <li>
-      <p>filtered out linker-specs from the <tt>--libs</tt>
-      report.</p>
-    </li>
-
-    <li>
-      <p>amended the ncurses*-config and pc-files to take into
-      account the rpath hack which differed between those
-      files.</p>
-    </li>
-
-    <li>
-      <p>modified generated ncurses*config and ncurses.pc,
-      ncursesw.pc, etc., to list helper libraries such as gpm for
-      static linking.</p>
-    </li>
-  </ul>
-
   <h4><a name="h4-examples" id="h4-examples">Examples</a></h4>
 
   <p>Along with the library and utilities, improvements were made
   to the <a href=
-  "@HOMEPAGE@/ncurses-examples.html">ncurses-examples</a>. 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
-  <em>tracemunch</em> script:</p>
+  "@HOMEPAGE@/ncurses-examples.html">ncurses-examples</a>:</p>
 
   <ul>
     <li>
-      <p>improve recovery from error when reading command-character
-      in <tt>test/ncurses.c</tt>, showing the relevant error
-      message and not exiting on EINTR.</p>
+      <p>modify <code>test_tparm</code> to account for extended
+      capabilities</p>
     </li>
 
     <li>
-      <p>improve <em>tracemunch</em>, by keeping track of
-      <tt>TERMINAL*</tt> values, and if tracing was first turned on
-      after initialization, attempt to show distinct screen, window
-      and terminal names anyway.</p>
+      <p>corrected mouse mask in <code>test/testcurs.c</code></p>
     </li>
 
     <li>
-      <p>modify <em>tracemunch</em> to accept filename parameters
-      in addition to use as a pipe/filter.</p>
+      <p>modify <code>test/clip_printw.c</code> to optionally test
+      non-wrapped updates</p>
     </li>
 
     <li>
-      <p>update <em>tracemunch</em> to work with <em>perl
-      5.26.2</em>, which changed the rules for escaping regular
-      expressions.</p>
+      <p>modify <code>test/test_mouse.c</code> to use curses api
+      for raw/noraw</p>
     </li>
 
     <li>
-      <p>add some checks in <em>tracemunch</em> for undefined
-      variables.</p>
-    </li>
-
-    <li>
-      <p>modify <tt>TurnOn</tt>/<tt>TurnOff</tt> macros (in
-      lib_vidattr.c and lib_vid_attr.c) to avoid expansion of
-      &ldquo;<tt>CUR</tt>&rdquo; in trace.</p>
+      <p>modify <code>test/clip_printw.c</code> to optionally test
+      non-wrapped updates</p>
     </li>
   </ul>
 
-  <p>There are other new demo/test programs and reusable
-  examples:</p>
+  <p>There is one new demo/test programs:</p>
 
   <dl>
-    <dt><span class="part-name">color_content</span>
-    </dt>
-
-    <dd>Demonstrate the <tt>color_content</tt> and
-    <tt>extended_color_content</tt> functions.</dd>
-
-    <dt><span class="part-name">demo_tabs</span>
-    </dt>
-
-    <dd>A simple demo of tabs in curses.</dd>
-
-    <dt><span class="part-name">dump_window</span>
-    </dt>
-
-    <dd>A portable curses screen-dump, used to compare ncurses
-    screen contents with Solaris.</dd>
-
-    <dt><span class="part-name">pair_content</span>
-    </dt>
-
-    <dd>Demonstrate the <tt>pair_content</tt> and
-    <tt>extended_pair_content</tt> functions.</dd>
-
-    <dt><span class="part-name">report_hashing</span>
-    </dt>
-
-    <dd>Check hash-tables used for terminfo and termcap names.</dd>
-
-    <dt><span class="part-name">parse_rgb</span>
+    <dt><span class="part-name"><em>test/test_endwin.c</em></span>
     </dt>
 
-    <dd>Sample implementation of the ncurses RGB extension from
-    <a href="@HOMEPAGE@/man/user_caps.5.html">user_caps.5</a>, used
-    in <em>picsmap</em> and <em>savescreen</em> programs.</dd>
+    <dd>
+      <p>This program shows the return-status from
+      <code>endwin</code> with different combinations of
+      <code>endwin</code> (repeated), <code>initscr</code>,
+      <code>newterm</code>.</p>
+    </dd>
   </dl>
 
-  <p>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.</p>
+  <h3><a name="h3-database" id="h3-database">Terminal database</a></h3>
+
+  <p>There are several new terminal descriptions:</p>
 
   <ul>
     <li>
-      <p>add &ldquo;<tt>-l</tt>&rdquo; option to test/background,
-      to dump screen contents in a form that lets different curses
-      implementations be compared.</p>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-ansi_apparrows"><tt>ansi+apparrows</tt></a></p>
     </li>
 
     <li>
-      <p>add &ldquo;<tt>@</tt>&rdquo; command to test/ncurses
-      F-test, to allow rapid jump to different character pages.</p>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-contour"><tt>contour</tt></a></p>
     </li>
 
     <li>
-      <p>added enum, regex examples to test/demo_forms</p>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-linux_kbs"><tt>linux+kbs</tt></a>
+      for terminals which imitate xterm's behavior with Linux</p>
     </li>
 
     <li>
-      <p>amend Scaled256() macro in test/picsmap.c to cover the
-      full range 0..1000</p>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-rio"><tt>rio</tt></a>,
+      <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-rio-direct"><tt>rio-direct</tt></a></p>
     </li>
 
     <li>
-      <p>corrected pathname used in Ada95 sample programs for
-      <tt>explain.txt</tt>, 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.</p>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-mostlike"><tt>mostlike</tt></a></p>
     </li>
 
     <li>
-      <p>ignore interrupted system-call in test/ncurses's
-      command-line, e.g., if the terminal were resized.</p>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-ms-vt100-16color"><tt>ms-vt100-16color</tt></a>,
+      <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-winconsole"><tt>winconsole</tt></a></p>
     </li>
 
     <li>
-      <p>improved ifdef's for <tt>TABSIZE</tt> variable, to help
-      with AIX/HPUX ports.</p>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-vt100_noapp"><tt>vt100+noapp</tt></a>,
+      <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-vt100_noapp_pc"><tt>vt100+noapp+pc</tt></a>,
+      <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-xterm_app_pc"><tt>xterm+app+pc</tt></a>,
+      <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-xterm_decedit"><tt>xterm+decedit</tt></a>
+      from <a href="@WEBSITE@/xterm/xterm.log.html#xterm_389">xterm
+      #389</a></p>
     </li>
-  </ul>
 
-  <h3><a name="h3-database" id="h3-database">Terminal database</a></h3>
-
-  <p>There are several new terminal descriptions:</p>
-
-  <blockquote style="word-break:keep-all">
-    <p><tt>alacritty</tt>, <tt>domterm</tt>, <tt>kitty</tt>,
-    <tt>mintty</tt>, <tt>mintty-direct</tt>, <tt>ms-terminal</tt>,
-    <tt>n7900</tt>, <tt>nsterm-build309</tt>,
-    <tt>nsterm-direct</tt>, <tt>screen5</tt>, <tt>ti703</tt>,
-    <tt>ti707</tt>, <tt>ti703-w</tt>, <tt>ti707-w</tt>
-    <tt>vscode</tt>, <tt>vscode-direct</tt>, <tt>xterm-mono</tt>,
-    <tt>xterm.js</tt></p>
-  </blockquote>
-
-  <p>There are many changes to existing terminal descriptions. Some
-  were updates to several descriptions:</p>
-
-  <ul>
-    <li>use <a href=
-    "/ncurses/terminfo.src.html#tic-ansi_rep"><tt>ansi+rep</tt></a>
-    in a dozen places</li>
-
-    <li>add rs1 to konsole, mlterm</li>
-
-    <li>improve several flash capabilities with trailing mandatory
-    delays</li>
-
-    <li>drop <tt>ich1</tt> from <tt>rxvt-basic</tt>, <tt>Eterm</tt>
-    and <tt>mlterm</tt> to improve compatibility with old
-    non-curses programs</li>
-
-    <li>add/use <a href=
-    "/ncurses/terminfo.src.html#tic-xterm_keypad"><tt>xterm+keypad</tt></a>
-    in <tt>xterm-new</tt></li>
-
-    <li>use <a href=
-    "/ncurses/terminfo.src.html#tic-xterm_sl-twm"><tt>xterm+sl-twm</tt></a>
-    for consistency, nine places</li>
+    <li>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-putty_cursor"><tt>putty+cursor</tt></a>
+      to reflect amending of modified cursor-keys in 2021</p>
+    </li>
 
-    <li>improve <em>xm</em> example in <a href=
-    "/ncurses/terminfo.src.html#tic-xterm_x11mouse">xterm+x11mouse</a>
-    and <a href=
-    "/ncurses/terminfo.src.html#tic-xterm_sm_1006">xterm+sm_1006</a>.</li>
+    <li>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-wezterm"><tt>wezterm</tt></a></p>
+    </li>
   </ul>
 
-  <p>while others affected specific descriptions. These were
-  retested, to take into account changes by their developers:</p>
-
-  <blockquote>
-    <p><tt>terminator</tt>, <tt>st</tt></p>
-  </blockquote>
-
-  <p>while these are specific fixes based on reviewing
-  documentation, user reports, or warnings from <span class=
-  "part-name">tic</span>:</p>
-
-  <dl>
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-adds200">adds200</a>:</dt>
-
-    <dd>
-      <ul>
-        <li>fix typo</li>
-      </ul>
-    </dd>
-
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-gnome-256color">gnome-256color</a>
-    </dt>
-
-    <dd>
-      <ul>
-        <li>base entry on "gnome", not "vte", for consistency</li>
-      </ul>
-    </dd>
-
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-interix">interix</a>
-    </dt>
-
-    <dd>
-      <ul>
-        <li>trim unnecessary setf/setb</li>
-      </ul>
-    </dd>
-
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-linux-16color">linux-16color</a>
-    </dt>
-
-    <dd>
-      <ul>
-        <li>accommodate <a href=
-        "https://lists.gnu.org/archive/html/bug-ncurses/2019-10/msg00061.html">
-        Linux console driver</a> incompatibility introduced in
-        early 2018</li>
-      </ul>
-    </dd>
-
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-nsterm-256color">nsterm-256color</a>:</dt>
-
-    <dd>
-      <ul>
-        <li>add nsterm-build309 to replace nsterm-256color,
-        assigning the latter as an alias of nsterm, to make mouse
-        work with nsterm-256color</li>
-      </ul>
-    </dd>
-
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-regent40">regent40</a>:</dt>
-
-    <dd>
-      <ul>
-        <li>renumber function-keys to match manual</li>
-      </ul>
-    </dd>
-
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-regent60">regent60</a>:</dt>
-
-    <dd>
-      <ul>
-        <li>add cd (clr_eos)</li>
-
-        <li>corrected acsc</li>
-
-        <li>add shifted function-keys</li>
-      </ul>
-    </dd>
-
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-tvi950">tvi950</a>:</dt>
-
-    <dd>
-      <ul>
-        <li>added function-key definitions to agree with Televideo
-        950 manual</li>
-
-        <li>corrected acsc</li>
+  <p>There are many changes to existing terminal descriptions. Some
+  were updates to several descriptions, using the
+  <code>infocmp</code> &ldquo;<code>-u</code>&rdquo; option in a
+  script to determine which <em>building-block</em> entries could
+  be used to replace multiple capability settings (and trim
+  redundant information).</p>
 
-        <li>remove bogus kf0</li>
+  <p>Other changes include:</p>
 
-        <li>add bel</li>
-      </ul>
-    </dd>
+  <ul>
+    <li>
+      <p><a href=
+      "@HOMEPAGE@/terminfo.src.html#toc-_X_T_E_R_M__Extensions_">document</a>
+      XF, kxIN and kxOUT</p>
+    </li>
 
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-tvi955">tvi955</a>:</dt>
+    <li>
+      <p>add note on <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-sun"><tt>sun</tt></a>
+      regarding wscons/cmdtool/shelltool</p>
+    </li>
 
-    <dd>
-      <ul>
-        <li>fix typo</li>
-      </ul>
-    </dd>
+    <li>
+      <p>remove DECCOLM+DECSCLM from <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-foot"><tt>foot</tt></a></p>
+    </li>
 
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-vi200">vi200</a>:</dt>
+    <li>
+      <p>add xterm+focus to <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-foot_base"><tt>foot+base</tt></a></p>
+    </li>
 
-    <dd>
-      <ul>
-        <li>add acsc string, including right/down-arrow</li>
-      </ul>
-    </dd>
+    <li>
+      <p>add ecma+strikeout to <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-putty"><tt>putty</tt></a></p>
+    </li>
 
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-wy50">wy50</a>:</dt>
+    <li>
+      <p>use CSI 3J in <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-vte-2017"><tt>vte-2017</tt></a></p>
+    </li>
 
-    <dd>
-      <ul>
-        <li>corrected acsc</li>
-      </ul>
-    </dd>
+    <li>
+      <p>use oldxterm+sm+1006 in <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-vte-2014"><tt>vte-2014</tt></a></p>
+    </li>
 
-    <dt><a href="/ncurses/terminfo.src.html#tic-wy50">wy50</a> and
-    <a href="/ncurses/terminfo.src.html#tic-wy60">wy60</a>:</dt>
+    <li>
+      <p>modify <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-xgterm"><tt>xgterm</tt></a>
+      to work around line-drawing bug</p>
+    </li>
 
-    <dd>
-      <ul>
-        <li>add shifted function-keys as kF1 to kF16</li>
-      </ul>
-    </dd>
+    <li>
+      <p>add xterm focus mode 1004 to <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a>
+      as fe/fd capabilities, like vim.</p>
+    </li>
 
-    <dt><a href=
-    "/ncurses/terminfo.src.html#tic-xterm_x11hilite">xterm+x11hilite</a>:</dt>
+    <li>
+      <p>add xterm+focus to <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-alacritty_common"><tt>alacritty+common</tt></a></p>
+    </li>
 
-    <dd>
-      <ul>
-        <li>eliminate unused <em>p5</em> parameter.</li>
-      </ul>
-    </dd>
-  </dl>
+    <li>
+      <p>add XR/xr, to work with vim, and use RV/rv to denote DA2
+      and its response</p>
+    </li>
 
-  <p>A few entries use extensions (user-defined terminal
-  capabilities):</p>
+    <li>
+      <p>add XF flag to <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-xterm_focus"><tt>xterm+focus</tt></a>
+      so that termcap applications can be aware of terminals which
+      may support focus in/out</p>
+    </li>
 
-  <ul>
-    <li>use <a href=
-    "/ncurses/terminfo.src.html#tic-xterm_sm_1006"><tt>xterm+sm+1006</tt></a>
-    (aka &ldquo;SGR 1006 mouse&rdquo;) for konsole-base and
-    putty</li>
+    <li>
+      <p>use xterm+focus in <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-xterm-p370"><tt>xterm-p370</tt></a>
+      and <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p>
+    </li>
 
-    <li>add <em><tt>Smol/Rmol</tt></em> user-defined capability to
-    <tt>tmux</tt> and <tt>vte-2018</tt></li>
+    <li>
+      <p>remove xterm+sm+1006 from <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-tmux"><tt>tmux</tt></a></p>
+    </li>
 
-    <li>add <em><tt>Smulx</tt></em> user-defined capability to
-    <tt>tmux</tt>, <tt>vte-2018</tt></li>
+    <li>
+      <p>NetBSD-related fixes for <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-x68k"><tt>x68k</tt></a> and
+      <a href=
+      "@HOMEPAGE@/terminfo.src.html#tic-wsvt25"><tt>wsvt25</tt></a></p>
+    </li>
   </ul>
 
   <h3><a name="h3-documentation" id=
       <p>Corrections:</p>
 
       <ul>
-        <li>correct error-returns listed in manual pages for a few
-        form functions</li>
+        <li>
+          <p>add assignment in <code>CF_MAN_PAGES</code> to fill in
+          value for <code>TERMINFO_DIRS</code> in ncurses, terminfo
+          and tic manpages.</p>
+        </li>
 
-        <li>corrected prototypes in several manpages using script
-        to extract those in compilable form.</li>
+        <li>
+          <p>clarify interaction of <code>-R</code> option versus
+          <code>-C</code>, <code>-I</code> and <code>-r</code> in
+          <code>infocmp</code> manpage.</p>
+        </li>
 
-        <li>fix typo in <a href=
-        "@HOMEPAGE@/man/term.5.html#h3-EXTENDED-NUMBER-FORMAT">term.5</a>,
-        improve explanation of format</li>
-      </ul>
-    </li>
+        <li>
+          <p>correct manpage description of panel_hidden.</p>
+        </li>
 
-    <li>
-      <p>Clarify in manual pages that <a href=
-      "@HOMEPAGE@/man/curs_printw.3x.html#h2-PORTABILITY">vwprintw</a>
-      and <a href=
-      "@HOMEPAGE@/man/curs_scanw.3x.html#h2-PORTABILITY">vwscanw</a>
-      are obsolete.<br>
-      They have not been part of X/Open Curses since 2007.</p>
-    </li>
+        <li>
+          <p>improve manpage description for addch versus unctrl
+          format used for non-printable characters.</p>
+        </li>
 
-    <li>
-      <p>New/improved history and portability sections:</p>
+        <li>
+          <p>improve manpages discussing file descriptors in
+          low-level functions.</p>
+        </li>
 
-      <ul>
-        <li><a href=
-        "@HOMEPAGE@/man/curs_addch.3x.html#h3-ACS-Symbols">curs_addch.3x</a>
-        gives some background for ACS symbols.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/curs_getcchar.3x.html#h2-PORTABILITY">curs_getcchar.3x</a>
-        explains a difference between ncurses and X/Open
-        Curses.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/curs_getstr.3x.html#h2-PORTABILITY">curs_getstr.3x</a>
-        gives historical/portability background for the length
-        parameter of <tt>wgetnstr</tt>.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/curs_slk.3x.html">curs_slk.3x</a> lists a
-        few differences between SVr4 curses and X/Open Curses for
-        soft-keys.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/curs_terminfo.3x.html">curs_terminfo.3x</a>
-        explains that the initial implementation of terminfo in
-        SVr2 was mostly replaced by other developers in SVr3.</li>
-
-        <li><a href="@HOMEPAGE@/man/infocmp.1m.html">infocmp.1</a>
-        explains that the initial version of terminfo had no tool
-        for decompiling descriptions. That came later, with SVr3,
-        with a different developer.</li>
-
-        <li><a href="@HOMEPAGE@/man/tabs.1.html">tabs.1</a> tells more
-        than you wanted to know about the tool.</li>
-
-        <li><a href="@HOMEPAGE@/man/tic.1m.html">tic.1</a> 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.</li>
-
-        <li><a href="@HOMEPAGE@/man/toe.1m.html">toe.1</a> explains
-        the origin of this tool.</li>
+        <li>
+          <p>improve description of search rules for terminal
+          descriptions in terminfo manpage.</p>
+        </li>
+
+        <li>
+          <p>modify dist.mk to avoid passing developer's comments
+          in manpages into the generated html documentation.</p>
+        </li>
+
+        <li>
+          <p>modify test-package "ncurses6-doc" to use
+          manpage-aliases, which in turn required a change to the
+          configure script to factor in the extra-suffix option
+          when deriving alias names.</p>
+        </li>
       </ul>
     </li>
 
     <li>
-      <p>Improvements for <a href=
-      "@HOMEPAGE@/man/user_caps.5.html">user_caps.5</a>:</p>
+      <p>New/improved history and portability sections:</p>
 
       <ul>
-        <li>mention <tt>meml</tt>, <tt>memu</tt> and
-        <tt>box1</tt></li>
-
-        <li>expanded description of <tt>XM</tt></li>
+        <li>
+          <p>add information about "ttycap", termcap's forerunner,
+          to tset.1</p>
+        </li>
 
-        <li>add a clarification regarding the <tt>RGB</tt>
-        capability.</li>
+        <li>
+          <p>document limitations of tparm, and error-returns in
+          curs_terminfo.3x</p>
+        </li>
 
-        <li>mention user_caps.5 in the tic and infocmp manual
-        pages.</li>
+        <li>
+          <p>document limitations of tgoto, and error-returns in
+          curs_termcap.3x</p>
+        </li>
       </ul>
     </li>
 
       <p>Other improvements:</p>
 
       <ul>
-        <li><a href=
-        "@HOMEPAGE@/man/curs_add_wch.3x.html#h3-Line-Graphics">curs_add_wch.3x</a>
-        adds note about Unicode terminology for the line-drawing
-        characters.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/curs_color.3x.html#h2-RETURN-VALUE">curs_color.3x</a>
-        improves discussion of error returns and extensions.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/curs_mouse.3x.html">curs_mouse.3x</a>
-        explains how the <tt>kmous</tt> and <tt>XM</tt>
-        capabilities are used for xterm-mouse input.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/curs_refresh.3x.html#h3-wnoutrefresh_doupdate">
-        curs_refresh.3x</a> improves documentation regarding the
-        virtual and physical screens.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/curs_util.3x.html">curs_util.3x</a>
-        mentions a difference between SVr4 and X/Open Curses for
-        <tt>unctrl.h</tt></li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/curs_variables.3x.html#h2-PORTABILITY">curs_variables.3x</a>
-        improves description of the <em>init_tabs</em> capability
-        and <tt>TABSIZE</tt> variable.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/ncurses.3x.html#h2-ALTERNATE-CONFIGURATIONS">
-        ncurses.3x</a> improves documentation regarding
-        feature-test macros in curses.h</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/resizeterm.3x.html#h3-resize_term">resizeterm.3x</a>
-        about top-level windows which touch the screen's
-        borders.</li>
-
-        <li><a href=
-        "@HOMEPAGE@/man/tput.1.html#h3-Terminal-Size">tput.1</a>
-        clarifies how <em>tput</em> determines the terminal
-        size.</li>
+        <li>
+          <p>This release has many changes to improve the
+          formatting and style of the manpages.</p>
+        </li>
+
+        <li>
+          <p>Manpages now use consistent section-naming, page
+          headers and footers (including the modification date for
+          each page).</p>
+        </li>
+
+        <li>
+          <p>Table layout has been revised.</p>
+        </li>
       </ul>
     </li>
   </ul>
   <p>There are no new manual pages (all of the manual page updates
   are to existing pages).</p>
 
-  <p>Some of the improvements are more subtle, relating to the way
-  the 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.</p>
-
   <h3><a name="h3-bug-fixes" id="h3-bug-fixes">Interesting
   bug-fixes</a></h3>
 
-  <p>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.</p>
+  <p>The changes to <tt>tparm</tt>, <tt>tgoto</tt> which improve
+  the design of the low-level interfaces are <em>interesting</em>,
+  but are not bug-fixes <em>per se</em>.</p>
 
-  <p>The interesting bugs were in tic/infocmp's handling of
-  user-defined capabilities. These were not recent bugs. Initially
-  it was a simple problem:</p>
-
-  <ul>
-    <li>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&mdash;unless some special support for
-    a particular multi-typed name is built into ncurses.</li>
-
-    <li>
-      <p>One of simpleterm's contributors copied some definitions
-      for using <em>tmux</em>'s user-defined capabilities in
-      <a href=
-      "https://git.suckless.org/st/commit/06f8cf8ca87a81db15816658c40b2afcd1ad5332.html">
-      late in 2016</a>.</p>
+  <h3><a name="h3-config-config" id=
+  "h3-config-config">Configuration changes</a></h3>
 
-      <blockquote>
-        <pre class="demo-name">
-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,
+  <h4><a name="h4-config-major" id="h4-config-major">Major
+  changes</a></h4>
 
- st-256color| simpleterm with 256 colors,
-  use=st,
-</pre>
-      </blockquote>
-    </li>
+  <p>These are the major changes (aside from introducing <a href=
+  "#h4-new-library"><tt>tiparm_s</tt></a>):</p>
 
+  <ul>
     <li>
-      <p>Later, in (referring to a version from <a href=
-      "https://git.suckless.org/st/commit/c0882f2ed1d7a2dd0fa2efa52157e6fc6fde3652.html">
-      mid-2017</a>), a user asked to have it updated in
-      ncurses.</p>
+      <p>use wide-character (ncursesw) by default</p>
     </li>
 
     <li>
-      <p>However, it had an error from the change in late 2016. The
-      terminal description made what <em>tmux</em> expected to be
-      <strong>string</strong> actually a
-      <strong>boolean</strong>.</p>
-
-      <p>Over the years, there were problems with each of
-      simpleterm's terminal descriptions. I repaired those, and
-      usually dealt with the problem.</p>
+      <p>use opaque typedefs by default</p>
     </li>
+  </ul>
+
+  <p>However, most of the work on configure scripts was done to
+  reduce warnings within the configure script:</p>
 
+  <ul>
     <li>
-      <p>The difference in this case was that when compiling the
-      terminal database, <em>tic</em> may have in memory the
-      definitions for more than one terminal description (so that
-      it can resolve &ldquo;<tt>use=</tt>&rdquo; clauses). Seeing
-      two different types for the same name, in certain situations
-      it would incorrectly merge the symbol tables for the two
-      terminal descriptions.</p>
+      <p>intrusive warnings from GNU grep regarding fgrep and
+      egrep</p>
     </li>
 
     <li>
-      <p>On simpleterm's side, their bug was finally fixed in
-      <a href=
-      "https://git.suckless.org/st/commit/83866428de031300eab03fbb116bcf7d2b1d4f60.html">
-      late 2019</a>, three years after the bug was created.</p>
+      <p>fatal errors in compile-checks, arising from recent
+      &ldquo;Modern&nbsp;C&rdquo; efforts by some developers which
+      caused longstanding configure checks to fail.</p>
+
+      <p>After repairing the configure script, none of that
+      activity affected ncurses because stricter warnings are used
+      routinely in development.</p>
     </li>
   </ul>
 
-  <p>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 <a href=
-  "https://github.com/tmux/tmux/issues/1264">tmux #1264</a>), and
-  the terminal description was updated that week (ncurses patch
-  <a href="@HOMEPAGE@/NEWS.html#t20180224">20180224</a>):</p>
-
-  <blockquote>
-    <pre class="demo-name">
-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
-</pre>
-  </blockquote>
-
-  <p>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:</p>
+  <p>Other improvements made to configure checks include</p>
 
   <ul>
     <li>
-      <p>Was there a reliable way to manage terminal descriptions
-      which used the same extended name in different ways?</p>
+      <p>use <a href=
+      "@HOMEPAGE@/INSTALL.html#option:enable-string-hacks">string-hacks</a>
+      in alloc_entry.c, alloc_type.c and hardscroll.c, overlooked
+      due to compiler changes in recent OpenBSD releases</p>
     </li>
 
     <li>
-      <p>Should ncurses provide a registry of well-known extended
-      names, with their types?</p>
+      <p>revise progs.priv.h to provide for NC_ISATTY reuse</p>
     </li>
-  </ul>
-
-  <p>Since the correction to <a href=
-  "@HOMEPAGE@/ncurses.html#download_database"><tt>terminfo.src</tt></a>
-  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.</p>
 
-  <p>Nothing more (constructive) was mentioned with regard to
-  simpleterm. But a few problems were found in the handling of
-  user-defined capabilities:</p>
+    <li>
+      <p>configure check for MB_LEN_MAX provides warning as
+      needed</p>
+    </li>
 
-  <ul>
     <li>
-      <p>Forward-references to user-defined capabilities in a
-      &ldquo;<tt>use=</tt>&rdquo; clause did not allocate new data
-      for each use. In <em>tic</em>, successive compilation of
-      terminal entries could add user-defined capabilities to the
-      wrong terminal entry.</p>
+      <p>trim a space after some "-R" options, fixing builds for
+      applications built using clang and ncurses on Solaris</p>
+    </li>
 
-      <p>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.</p>
+    <li>
+      <p>work around misconfiguration of MacPorts gcc13, which
+      exposes invalid definition of <tt>MB_LEN_MAX</tt> in gcc's
+      fallback copy of <tt>limits.h</tt></p>
     </li>
 
     <li>
-      <p>There is one (documented) case where ncurses 6.1 supports
-      a user-defined capability that could be any type (i.e.,
-      &ldquo;RGB&rdquo;). The check added in February 2018 to guard
-      against mismatches did not handle all of the combinations
-      needed.</p>
+      <p>modified experimental Windows driver works with xterm
+      mouse protocol</p>
     </li>
   </ul>
 
-  <p>Both of these issues dated from the original implementation of
-  user-defined capabilities. Fixing them does not change the
-  terminal database, but a older <em>tic</em> 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.</p>
-
-  <p>The &ldquo;<tt>-c</tt>&rdquo; (check) option of <em>tic</em>
-  is not very useful if it cannot offer advice on parameters needed
-  for user-defined capabilities. The various <em>Caps</em> files
-  were reorganized to reduce redundancy, and in the common portion
-  (<a href=
-  "https://github.com/ThomasDickey/ncurses-snapshots/blob/master/include/Caps-ncurses">Caps-ncurses</a>),
-  a registry of user-defined capabilities is provided for use by
-  <em>tic</em>. While users can still define their own custom
-  capabilities, <em>tic</em> will not offer any advice when their
-  parameters do not match.</p>
-
-  <p>In ncurses 6.2, <em>tic</em> makes a special check to allow
-  any type for <em>RGB</em>, but its being able to do this relies
-  upon fixes made in the ncurses library in mid-2019.</p>
-
-  <h3><a name="h3-config-config" id=
-  "h3-config-config">Configuration changes</a></h3>
-
-  <h4><a name="h4-config-major" id="h4-config-major">Major
-  changes</a></h4>
-
-  <p>There are no major changes. Several new options were added to
-  ease integration of packages with systems using different
-  versions of <em>GNAT</em> and <em>ncurses</em>. Also,
-  improvements were made to configure checks.</p>
-
   <h4><a name="h4-config-options" id=
   "h4-config-options">Configuration options</a></h4>
 
-  <p>There are a few new/modified configure options:</p>
+  <p>There are a few new configure options:</p>
 
   <dl>
-    <dt><tt>--with-config-suffix</tt>
+    <dt><a href=
+    "@HOMEPAGE@/INSTALL.html#option:disable-setuid-environ"><tt>--disable-setuid-environ</tt></a>
     </dt>
 
     <dd>
-      <p>helps work around a filename conflict with Debian packages
-      versus test-packages.</p>
+      <p>Compile with environment restriction, so certain
+      environment variables are not available when running via a
+      setuid/setgid application. These are (for example
+      <tt>$TERMINFO</tt>) those that allow the search path for the
+      terminfo or termcap entry to be customized.</p>
+
+      <p>A setuid/setgid application inherits its environment
+      variables from the current user, in contrast to sudo which
+      may limit the environment variables that ncurses uses.</p>
     </dd>
 
-    <dt><tt>--with-ada-libname</tt>
+    <dt><a href=
+    "@HOMEPAGE@/INSTALL.html#option:enable-check-size"><tt>--enable-check-size</tt></a>
     </dt>
 
     <dd>
-      <p>allows one to rename the &ldquo;AdaCurses&rdquo; library
-      (at least one packager prefers a lowercase name).</p>
+      <p>Compile-in feature to detect screensize for terminals
+      which do not advertise their screensize, e.g., serial
+      terminals.</p>
     </dd>
 
-    <dt><tt>--with-fallbacks</tt>
+    <dt><a href=
+    "@HOMEPAGE@/INSTALL.html#option:with-abi-altered"><tt>--with-abi-altered=<em>NUM</em></tt></a>
     </dt>
 
     <dd>
-      <p>now ensures there is a value, and adds the fallback
-      information to top-level Makefile summary.</p>
+      <p>Override the displayed (rather than compiled-in) ABI. Only
+      packagers who have created configurations where the ABI
+      differs from ncurses should be interested in this option.</p>
     </dd>
 
-    <dt><tt>--with-pcre2</tt>
+    <dt><a href=
+    "@HOMEPAGE@/INSTALL.html#option:with-strip-program"><tt>--with-strip-program=<em>XXX</em></tt></a>
     </dt>
 
     <dd>
-      <p>check for pcre-posix library to help with MinGW port.</p>
+      <p>When stripping executables during install, use the
+      specified program rather than &ldquo;strip&rdquo; overriding
+      program chosen by the install program for stripping
+      executables.</p>
     </dd>
+  </dl>
 
-    <dt><tt>--with-tic-path</tt> and<br></dt>
+  <p>These configure options are modified:</p>
 
-    <dt><tt>--with-infocmp-path</tt>
+  <dl>
+    <dt><a href=
+    "@HOMEPAGE@/INSTALL.html#option:with-pkg-config-libdir"><tt>--with-pkg-config-libdir[=<em>DIR</em>]</tt></a>
     </dt>
 
     <dd>
-      <p>help work around problems building fallback source using
-      pre-6.0 tic/infocmp.</p>
+      <p>The optional <em>DIR</em> parameter can now be
+      &ldquo;auto&rdquo; to automatically use pkg-config's library
+      directory.</p>
+
+      <p>The default is <tt>$(libdir)</tt>.</p>
     </dd>
 
-    <dt><tt>--with-versioned-syms</tt>
+    <dt><a href=
+    "@HOMEPAGE@/INSTALL.html#option:with-xterm-kbs"><tt>--with-xterm-kbs[=<em>XXX</em>]</tt></a>
     </dt>
 
     <dd>
-      <p>option value can now be a relative pathname.</p>
+      <p>The default is &ldquo;auto&rdquo; which tells the
+      configure script to choose BS or DEL according to platform
+      defaults.</p>
     </dd>
   </dl>
 
@@ -1388,148 +974,117 @@ diff --git a/st.info b/st.info
 
   <ul>
     <li>
-      <p>ignore <a href=
-      "/ncurses/man/ncurses.3x.html#h3-TERMINFO"><tt>$TERMINFO</tt></a>
-      as a default value in configure script if it came from the
-      <tt>infocmp</tt> <strong><tt>-Q</tt></strong> option.</p>
+      <p>add/use configure check for <code>clock_gettime</code>, to
+      supersede <code>gettimeofday</code>.</p>
     </li>
 
     <li>
-      <p>distinguish gcc from icc and clang when the
-      <tt>--enable-warnings</tt> option is not used, to avoid
-      unnecessary warnings about unrecognized inline options</p>
+      <p>modify configure script check for pkg-config library
+      directory to take into account an older version 0.15.0 which
+      used PKG_CONFIG_PATH but not PKG_CONFIG_LIBDIR</p>
     </li>
 
     <li>
-      <p>consistently prepend new libraries as they are found
-      during configuration, rather than relying upon the linker to
-      resolve order dependencies of libraries.</p>
+      <p>allow for MinGW32-/64-bit configurations to use
+      _DEFAULT_SOURCE</p>
     </li>
 
     <li>
-      <p>modified configure scripts to reduce relinking/ranlib
-      during library install :</p>
-
-      <ul>
-        <li>use &ldquo;<tt>install -p</tt>&rdquo; when available,
-        to avoid need for ranlib of static libraries.</li>
-
-        <li>scripts which use
-        &ldquo;<tt>--disable-relink</tt>;&rdquo; add a 1-second
-        sleep to work around tools which use whole-second
-        timestamps, e.g., in <tt>utime</tt> rather than the actual
-        file system resolution.</li>
-      </ul>
+      <p>modify CF_XOPEN_SOURCE macro's amend default case to avoid
+      undefining _XOPEN_SOURCE if _POSIX_C_SOURCE is defined</p>
     </li>
 
     <li>
-      <p id="getenv-check">add configure check for <a href=
-      "#getenv-fixes"><tt>getenv</tt></a> to work around
-      implementation shown in Emscripten which overwrites the
-      previous return value on each call.</p>
-
-      <p>Use that to optionally suppress <tt>START_TRACE</tt>
-      macro, whose call to <tt>getenv</tt> may not work
-      properly</p>
+      <p>updated configure script macro CF_XOPEN_SOURCE, for
+      uClibc-ng</p>
     </li>
 
     <li>
-      <p>change target configure level for <tt>_XOPEN_SOURCE</tt>
-      to 600 to address use of <tt>vsscanf</tt> and
-      <tt>setenv</tt>.</p>
+      <p>modify version-check for gcc/g++, now works for msys2</p>
     </li>
 
     <li>
-      <p>reduce use of <tt>_GNU_SOURCE</tt> for current glibc where
-      <tt>_DEFAULT_SOURCE</tt> combines with
-      <tt>_XOPEN_SOURCE</tt></p>
+      <p>build-fixes related to configure-options and/or
+      platform:</p>
 
-      <p>Allow for Cygwin's newlib when checking for the
-      _DEFAULT_SOURCE symbol.</p>
+      <ul>
+        <li>fix for <tt>--enable-fvisibility</tt></li>
 
-      <p>MidnightBSD is now checked for the
-      <tt>_XOPEN_SOURCE</tt>-related definitions.</p>
-    </li>
+        <li>fix for unusual values of
+        <tt>--with-rel-version</tt></li>
 
-    <li>
-      <p>If the check for <tt>va_copy</tt> or <tt>__va_copy</tt>
-      fails,</p>
+        <li>fix for unusual values of
+        <tt>--with-abi-version</tt></li>
 
-      <ul>
-        <li>configure now tries copying the pointers for
-        <tt>va_list</tt>, or as an array.</li>
+        <li>fix for <tt>--disable-tcap-names</tt></li>
 
-        <li>alternatively, it checks for
-        <tt>__builtin_va_copy</tt>(), which could be used with AIX
-        <tt>xlc</tt> in <em>c89</em> mode.</li>
+        <li>fix for termcap in <tt>nc_access.h</tt></li>
       </ul>
     </li>
 
     <li>
-      <p>several changes to support a port to Ultrix 3.1:</p>
+      <p>other configure-script improvements:</p>
 
       <ul>
-        <li>check if "b" binary feature of fopen works</li>
+        <li>recent msys2 headers work with
+        <tt>_DEFAULT_SOURCE</tt>; amend check</li>
 
-        <li>check for missing feature of locale.h</li>
+        <li>use <tt>$ac_includes_default</tt> in most cases where
+        stdlib.h should work</li>
 
-        <li>add fallback for strstr() in test-programs</li>
+        <li>use <tt>#error</tt> consistently vs "make an
+        error"</li>
 
-        <li>add fallback for STDOUT_FILENO in test-programs</li>
+        <li>add configure macro for <tt>gettimeofday</tt> vs inline
+        check</li>
       </ul>
     </li>
+  </ul>
 
-    <li>
-      <p>The <em>test/configure</em> script (used for <a href=
-      "/ncurses/ncurses-examples.html"><em>ncurses-examples</em></a>)
-      is improved:</p>
-
-      <ul>
-        <li>work around non-ncurses termcap.h file, e.g., in
-        Slackware.</li>
+  <p>Here are some of the other portability fixes:</p>
 
-        <li>check for <a href=
-        "/ncurses/man/curs_variables.3x.html#h3-TABSIZE"><tt>TABSIZE</tt></a>
-        variable.</li>
+  <ul>
+    <li>
+      <p>modify configure scripts/makefiles to omit
+      <tt>KEY_RESIZE</tt> if the corresponding <tt>SIGWINCH</tt>
+      feature is disabled</p>
+    </li>
 
-        <li>checks for the X11/Intrinsic.h header, accommodate
-        recent MacOS changes which largely emptied
-        <tt>/usr/include</tt>.</li>
-      </ul>
+    <li>
+      <p>increase <tt>MB_CUR_MAX</tt> to 16, matching glibc's
+      <tt>MB_LEN_MAX</tt></p>
     </li>
-  </ul>
 
-  <p>Here are some of the other portability fixes:</p>
+    <li>
+      <p>add BSD <tt>erase2</tt> to characters handled by
+      tset/reset</p>
+    </li>
 
-  <ul>
     <li>
-      <p>added dummy "check" rule in top-level and test-Makefile to
-      simplify building test-packages for ArchLinux.</p>
+      <p>use <tt>getauxval</tt> when available, to improve
+      <tt>setuid</tt>/<tt>setgid</tt> checks</p>
     </li>
 
     <li>
-      <p>dropped library-dependency on psapi for MinGW port, since
-      win_driver.c defines <tt>PSAPI_VERSION</tt> to 2, making it
-      use <tt>GetProcessImageFileName</tt> from kernel32.dll</p>
+      <p>set <tt>dwShareMode</tt> in calls to
+      <tt>CreateConsoleScreenBuffer</tt></p>
     </li>
 
     <li>
-      <p>made build-fixes for configuration using --program-suffix
-      with Ada95, noticed with MacOS but applicable to other
-      platforms without libpanelw, etc.</p>
+      <p>use <tt>CreateFile</tt> with "<tt>CONIN$</tt>",
+      "<tt>CONOUT$</tt>" rather than <tt>GetStdHandle</tt> to
+      obtain a handle on the actual console, avoiding redirection
+      in the MinGW/Win32 configurations</p>
     </li>
 
     <li>
-      <p>modified ncurses/Makefile.in to fix a case where
-      Debian/testing changes to the ld --as-needed configuration
-      broke ncurses-examples test packages.</p>
+      <p>modify MinGW driver to return <tt>KEY_BACKSPACE</tt> when
+      an unmodified <tt>VK_BACK</tt> virtual key is entered</p>
     </li>
 
     <li>
-      <p>used <tt>_WIN32</tt>/<tt>_WIN64</tt> in preference to
-      <tt>__MINGW32__</tt>/<tt>__MINGW64__</tt> symbols to simplify
-      building with Microsoft Visual C++, since the former are
-      defined in both compiler configurations.</p>
+      <p>modify MinGW configuration to provide for running in
+      MSYS/MSYS2 shells, assuming ConPTY support</p>
     </li>
   </ul>
 
@@ -1548,30 +1103,31 @@ diff --git a/st.info b/st.info
     </li>
 
     <li>
-      <p><span class="main-name">ncurses</span> supports all of the
-      for SVr4 curses features including keyboard mapping, color,
-      forms-drawing with ACS characters, and automatic recognition
+      <p><span class="main-name">ncurses</span> supports the
+      features of SVr4 curses including keyboard mapping, color,
+      form drawing with ACS characters, and automatic recognition
       of keypad and function keys.</p>
     </li>
 
     <li>
-      <p><span class="main-name">ncurses</span> provides these SVr4
-      add-on libraries (not part of X/Open Curses):</p>
+      <p><span class="main-name">ncurses</span> provides work-alike
+      replacements of SVr4 supplemental libraries based on curses,
+      but which were not specified by X/Open Curses:</p>
 
       <ul>
         <li>
-          <p>the panels library, supporting a stack of windows with
-          backing store.</p>
+          <p>the panel library, supporting a stack of windows with
+          backing store</p>
         </li>
 
         <li>
-          <p>the menus library, supporting a uniform but flexible
-          interface for menu programming.</p>
+          <p>the menu library, supporting a uniform but flexible
+          interface for menu programming</p>
         </li>
 
         <li>
           <p>the form library, supporting data collection through
-          on-screen forms.</p>
+          on-screen forms</p>
         </li>
       </ul>
     </li>
@@ -1583,7 +1139,7 @@ diff --git a/st.info b/st.info
       <ul>
         <li>
           <p><span class="main-name">ncurses</span> supports
-          user-defined capabilities which it can see, but which are
+          user-defined capabilities that it can see, but which are
           hidden from SVr4 curses applications using the
           <em>same</em> terminal database.</p>
         </li>
@@ -1605,7 +1161,7 @@ diff --git a/st.info b/st.info
       <p>The <span class="main-name">ncurses</span> utilities have
       options to allow you to filter terminfo entries for use with
       less capable <em>curses</em>/<em>terminfo</em> versions such
-      as the HP/UX and AIX ports.</p>
+      as the HP-UX and AIX ports.</p>
     </li>
   </ul>
 
@@ -1615,11 +1171,11 @@ diff --git a/st.info b/st.info
   <ul>
     <li>
       <p>The API is 8-bit clean and base-level conformant with the
-      X/OPEN curses specification, XSI curses (that is, it
-      implements all BASE level features, and most EXTENDED
-      features). It includes many function calls not supported
-      under SVr4 curses (but portability of all calls is documented
-      so you can use the SVr4 subset only).</p>
+      X/Open Curses specification, XSI curses (that is, it
+      implements all <em>BASE</em> level features, and almost all
+      <em>EXTENDED</em> features). It includes many function calls
+      not supported under SVr4 curses (but portability of all calls
+      is documented so you can use the SVr4 subset only).</p>
     </li>
 
     <li>
@@ -1661,6 +1217,11 @@ diff --git a/st.info b/st.info
       than one control sequence to map to a given key code.</p>
     </li>
 
+    <li>
+      <p>Support for direct-color terminals, such as modern
+      xterm.</p>
+    </li>
+
     <li>
       <p>Support for 256-color terminals, such as modern xterm.</p>
     </li>
@@ -1751,10 +1312,27 @@ diff --git a/st.info b/st.info
     </li>
 
     <li>
-      <p>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 <code>#undef</code>.</p>
+      <p>X/Open Curses permits most functions it specifies to be
+      made available as macros as well. ncurses does this</p>
+
+      <ul>
+        <li>to improve performance, e.g., for operations composed
+        of simpler functions such as cursor movement following by
+        adding text to the screen,</li>
+
+        <li>to simplify the implementation by reusing functions
+        which use common parameters, e.g., the standard screen
+        <code>stdscr</code>, and</li>
+
+        <li>to provide functions that return values via their
+        parameters</li>
+      </ul>
+
+      <p>Except for the last case, ncurses provides a non-macro
+      implementation of the function. If the macro definition is
+      disabled with <code>#undef</code>, or by defining
+      <code>NCURSES_NOMACROS</code> the function may be linked (and
+      its calls will be checked against the prototype).</p>
     </li>
 
     <li>
@@ -1856,7 +1434,8 @@ diff --git a/st.info b/st.info
         <p>New vi uses ncurses.</p>
 
         <p><a href=
-        "https://sites.google.com/a/bostic.com/keithbostic/vi">https://sites.google.com/a/bostic.com/keithbostic/vi</a><br>
+        "https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page">
+        https://sites.google.com/a/bostic.com/keithbostic/the-berkeley-vi-editor-home-page</a><br>
 
         </p>
       </dd>
@@ -1904,7 +1483,7 @@ diff --git a/st.info b/st.info
         <p>terminal emulator for serial modem connections</p>
 
         <p><a href=
-        "https://alioth.debian.org/projects/minicom/">https://alioth.debian.org/projects/minicom/</a></p>
+        "https://salsa.debian.org/minicom-team/minicom">https://salsa.debian.org/minicom-team/minicom</a></p>
       </dd>
 
       <dt><span class="part-name">mosh</span>
@@ -1913,8 +1492,7 @@ diff --git a/st.info b/st.info
       <dd>
         <p>a replacement for <code>ssh</code>.</p>
 
-        <p><a href=
-        "https://mosh.mit.edu/">https://mosh.mit.edu/</a></p>
+        <p><a href="https://mosh.org/">https://mosh.org/</a></p>
       </dd>
 
       <dt><span class="part-name">tack</span>
@@ -2005,7 +1583,7 @@ diff --git a/st.info b/st.info
   <p>Ongoing development work is done by <a href=
   "mailto:dickey@invisible-island.net">Thomas E. Dickey</a>. Thomas
   E. Dickey has acted as the maintainer for the Free Software
-  Foundation, which holds a <a href=
+  Foundation, which held a <a href=
   "@HOMEPAGE@/ncurses-license.html">copyright on ncurses</a> 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
@@ -2026,7 +1604,6 @@ diff --git a/st.info b/st.info
     "mailto:bug-ncurses-request@gnu.org">bug-ncurses-request@gnu.org</a>
   </blockquote>
   containing the line:
-
   <blockquote>
     <p><code>subscribe</code>
     <em>&lt;name&gt;@&lt;host.domain&gt;</em></p>
@@ -2040,7 +1617,7 @@ diff --git a/st.info b/st.info
 
   <blockquote>
     <p><a href=
-    "ftp://ftp.invisible-island.net/ncurses/current/">ftp://ftp.invisible-island.net/ncurses/current/</a>
+    "https://invisible-island.net/archives/ncurses/current/">https://invisible-island.net/archives/ncurses/current/</a>
     and<br>
     <a href=
     "https://invisible-mirror.net/archives/ncurses/current/">https://invisible-mirror.net/archives/ncurses/current/</a>&nbsp;.</p>
@@ -2050,19 +1627,17 @@ diff --git a/st.info b/st.info
 
   <blockquote>
     <p><a href=
-    "ftp://ftp.invisible-island.net/ncurses/6.1/">ftp://ftp.invisible-island.net/ncurses/6.1/</a>
+    "https://invisible-island.net/archives/ncurses/6.4/">https://invisible-island.net/archives/ncurses/6.4/</a>
     and<br>
     <a href=
-    "https://invisible-mirror.net/archives/ncurses/6.1/">https://invisible-mirror.net/archives/ncurses/6.1/</a>&nbsp;.</p>
+    "https://invisible-mirror.net/archives/ncurses/6.4/">https://invisible-mirror.net/archives/ncurses/6.4/</a>&nbsp;.</p>
   </blockquote>
 
   <p>There is an archive of the mailing list here:</p>
 
   <blockquote>
     <p><a href=
-    "http://lists.gnu.org/archive/html/bug-ncurses">http://lists.gnu.org/archive/html/bug-ncurses</a>
-    (also <a href=
-    "https://lists.gnu.org/archive/html/bug-ncurses">https</a>)</p>
+    "https://lists.gnu.org/archive/html/bug-ncurses">https://lists.gnu.org/archive/html/bug-ncurses</a>&nbsp;.</p>
   </blockquote>
 
   <h2><a name="h2-this-stuff" id="h2-this-stuff">Related
@@ -2082,6 +1657,9 @@ diff --git a/st.info b/st.info
     <span class="main-name">ncurses</span> versus <span class=
     "main-name">slang</span> (S-Lang)</a></li>
 
+    <li><a href="@HOMEPAGE@/ncurses-openbsd.html">Comments on
+    <span class="main-name">OpenBSD</span></a></li>
+
     <li><a href="@HOMEPAGE@/tack.html">tack &ndash; terminfo action
     checker</a></li>
 
@@ -2101,14 +1679,15 @@ diff --git a/st.info b/st.info
   <a href="http://www.catb.org/~esr/terminfo/">Eric
   Raymond</a>&nbsp;. 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
+  several user-definable extensions beyond the X/Open Curses
   specification.</p>
 
   <p>You can find lots of information on terminal-related topics
-  not covered in the terminfo file at <a href=
-  "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">
-  Richard Shuford's archive</a>&nbsp;. The collection of computer
-  manuals at <a href=
+  not covered in the terminfo file in <a href=
+  "https://shuford.invisible-island.net/">Richard Shuford's
+  archive</a> (<a href=
+  "http://web.archive.org/web/*/http://www.cs.utk.edu/~shuford/terminal">original</a>).
+  The collection of computer manuals at <a href=
   "http://www.bitsavers.org/pdf/">bitsavers.org</a> has also been
   useful.</p>
 
@@ -2118,11 +1697,9 @@ diff --git a/st.info b/st.info
 
       <li>
         <a href="#h2-release-notes">Release Notes</a>
-
         <ul>
           <li>
             <a href="#h3-library">Library improvements</a>
-
             <ul>
               <li><a href="#h4-new-library">New features</a></li>
 
@@ -2133,7 +1710,6 @@ diff --git a/st.info b/st.info
 
           <li>
             <a href="#h3-programs">Program improvements</a>
-
             <ul>
               <li><a href="#h4-utilities">Utilities</a></li>
 
@@ -2149,7 +1725,6 @@ diff --git a/st.info b/st.info
 
           <li>
             <a href="#h3-config-config">Configuration changes</a>
-
             <ul>
               <li><a href="#h4-config-major">Major changes</a></li>