From: Thomas E. Dickey Date: Sun, 12 Mar 2023 00:49:59 +0000 (+0000) Subject: ncurses 6.4 - patch 20230311 X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff_plain;h=87c2c84cbd2332d6d94b12a1dcaf12ad1a51a938 ncurses 6.4 - patch 20230311 + improve manpage description for addch versus unctrl format used for non-printable characters. + modify version-check for gcc/g++, now works for msys2. + modify check in _nc_write_entry() for multiply defined aliases to report problems within the current runtime of tic rather than for conflicts with pre-existing terminal descriptions. + allow for MinGW32-/64-bit configurations to use _DEFAULT_SOURCE + clarify interaction of -R option versus -C, -I and -r in infocmp manpage. + build-fix in lib_win32con.c (cf: 20230211). + add/use configure check for clock_gettime(), to supersede --- diff --git a/NEWS b/NEWS index 381da49d..bc5be49f 100644 --- a/NEWS +++ b/NEWS @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3914 2023/02/25 22:58:50 tom Exp $ +-- $Id: NEWS,v 1.3919 2023/03/12 00:14:16 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,9 +46,21 @@ See the AUTHORS file for the corresponding full names. Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20230311 + + improve manpage description for addch versus unctrl format used for + non-printable characters. + + modify version-check for gcc/g++, now works for msys2. + + modify check in _nc_write_entry() for multiply defined aliases to + report problems within the current runtime of tic rather than for + conflicts with pre-existing terminal descriptions. + + allow for MinGW32-/64-bit configurations to use _DEFAULT_SOURCE + + clarify interaction of -R option versus -C, -I and -r in infocmp + manpage. + + build-fix in lib_win32con.c (cf: 20230211). + 20230225 + build-fixes for rpm test-packages. - + add/user configure check for clock_gettime(), to supersede + + add/use configure check for clock_gettime(), to supersede gettimeofday(). 20230218 diff --git a/VERSION b/VERSION index 485074ee..2565b033 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.4 20230225 +5:0:10 6.4 20230311 diff --git a/aclocal.m4 b/aclocal.m4 index 7116d86e..9a53f26b 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -29,7 +29,7 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: aclocal.m4,v 1.1032 2023/02/25 13:45:56 tom Exp $ +dnl $Id: aclocal.m4,v 1.1037 2023/03/05 19:30:13 tom Exp $ dnl Macros used in NCURSES auto-configuration script. dnl dnl These macros are maintained separately from NCURSES. The copyright on @@ -3049,7 +3049,7 @@ rm -rf ./conftest* fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GCC_VERSION version: 8 updated: 2019/09/07 13:38:36 +dnl CF_GCC_VERSION version: 9 updated: 2023/03/05 14:30:13 dnl -------------- dnl Find version of gcc, and (because icc/clang pretend to be gcc without being dnl compatible), attempt to determine if icc/clang is actually used. @@ -3058,7 +3058,7 @@ AC_REQUIRE([AC_PROG_CC]) GCC_VERSION=none if test "$GCC" = yes ; then AC_MSG_CHECKING(version of $CC) - GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[[^)]]*) //' -e 's/^.*(Debian[[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" + GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^[[^(]]*([[^)]][[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" test -z "$GCC_VERSION" && GCC_VERSION=unknown AC_MSG_RESULT($GCC_VERSION) fi @@ -3641,7 +3641,7 @@ if test "$GXX" = yes; then fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_GXX_VERSION version: 8 updated: 2017/02/11 14:48:57 +dnl CF_GXX_VERSION version: 9 updated: 2023/03/05 14:30:13 dnl -------------- dnl Check for version of g++ AC_DEFUN([CF_GXX_VERSION],[ @@ -3649,7 +3649,7 @@ AC_REQUIRE([AC_PROG_CPP]) GXX_VERSION=none if test "$GXX" = yes; then AC_MSG_CHECKING(version of ${CXX:-g++}) - GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" + GXX_VERSION="`${CXX:-g++} --version 2>/dev/null | sed -e '2,$d' -e 's/^[[^(]]*([[^)]][[^)]]*) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" if test -z "$GXX_VERSION" then GXX_VERSION=unknown @@ -9940,7 +9940,7 @@ fi AC_SUBST(no_x11_rgb) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_XOPEN_SOURCE version: 64 updated: 2023/02/18 17:41:25 +dnl CF_XOPEN_SOURCE version: 65 updated: 2023/03/05 13:14:56 dnl --------------- dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions, dnl or adapt to the vendor's definitions to get equivalent functionality, @@ -9988,7 +9988,7 @@ case "$host_os" in cf_xopen_source="-D_SGI_SOURCE" cf_XOPEN_SOURCE= ;; -(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys) +(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys|mingw*) CF_GNU_SOURCE($cf_XOPEN_SOURCE) ;; (minix*) diff --git a/configure b/configure index 6664a8aa..412e5af2 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Revision: 1.756 . +# From configure.in Revision: 1.757 . # Guess values for system-dependent variables and create Makefiles. # Generated by Autoconf 2.52.20230114. # @@ -2317,7 +2317,7 @@ GCC_VERSION=none if test "$GCC" = yes ; then echo "$as_me:2318: checking version of $CC" >&5 echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 - GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC[^)]*) //' -e 's/^.*(Debian[^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" + GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^[^(]*([^)][^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" test -z "$GCC_VERSION" && GCC_VERSION=unknown echo "$as_me:2322: result: $GCC_VERSION" >&5 echo "${ECHO_T}$GCC_VERSION" >&6 @@ -3623,7 +3623,7 @@ GXX_VERSION=none if test "$GXX" = yes; then echo "$as_me:3624: checking version of ${CXX:-g++}" >&5 echo $ECHO_N "checking version of ${CXX:-g++}... $ECHO_C" >&6 - GXX_VERSION="`${CXX:-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" + GXX_VERSION="`${CXX:-g++} --version 2>/dev/null | sed -e '2,$d' -e 's/^[^(]*([^)][^)]*) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" if test -z "$GXX_VERSION" then GXX_VERSION=unknown @@ -10418,7 +10418,7 @@ case "$host_os" in cf_xopen_source="-D_SGI_SOURCE" cf_XOPEN_SOURCE= ;; -(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys) +(linux*gnu|linux*gnuabi64|linux*gnuabin32|linux*gnueabi|linux*gnueabihf|linux*gnux32|uclinux*|gnu*|mint*|k*bsd*-gnu|cygwin|msys|mingw*) cf_gnu_xopen_source=$cf_XOPEN_SOURCE diff --git a/dist.mk b/dist.mk index 909f7256..e8161fec 100644 --- a/dist.mk +++ b/dist.mk @@ -26,7 +26,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.1528 2023/02/25 12:58:46 tom Exp $ +# $Id: dist.mk,v 1.1530 2023/03/11 12:02:16 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -38,7 +38,7 @@ SHELL = /bin/sh # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 6 NCURSES_MINOR = 4 -NCURSES_PATCH = 20230225 +NCURSES_PATCH = 20230311 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/doc/html/man/adacurses6-config.1.html b/doc/html/man/adacurses6-config.1.html index 90587e45..b699b0b5 100644 --- a/doc/html/man/adacurses6-config.1.html +++ b/doc/html/man/adacurses6-config.1.html @@ -126,7 +126,7 @@

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index ab99a7cf..d7c30af4 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -199,7 +199,7 @@
 

SEE ALSO

        infocmp(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 

AUTHOR

diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html
index 74f5198b..30ec2052 100644
--- a/doc/html/man/clear.1.html
+++ b/doc/html/man/clear.1.html
@@ -150,7 +150,7 @@
 

SEE ALSO

        tput(1), terminfo(5), xterm(1).
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 
diff --git a/doc/html/man/curs_add_wch.3x.html b/doc/html/man/curs_add_wch.3x.html
index 7a4ad423..dcf0f8ff 100644
--- a/doc/html/man/curs_add_wch.3x.html
+++ b/doc/html/man/curs_add_wch.3x.html
@@ -1,6 +1,6 @@
 
 
 
@@ -198,9 +198,9 @@
 
        The latter may be due to different causes:
 
-       o   If  scrollok is not enabled, writing a character at the lower right
-           margin succeeds.  However, an error is returned because it  is  not
-           possible to wrap to a new line
+       o   If  scrollok(3x)  is  not enabled, writing a character at the lower
+           right margin succeeds.  However, an error is returned because it is
+           not possible to wrap to a new line
 
        o   If  an error is detected when converting a multibyte character to a
            sequence of bytes, or if it is not  possible  to  add  all  of  the
diff --git a/doc/html/man/curs_addch.3x.html b/doc/html/man/curs_addch.3x.html
index 92f2c757..49fc983a 100644
--- a/doc/html/man/curs_addch.3x.html
+++ b/doc/html/man/curs_addch.3x.html
@@ -1,7 +1,7 @@
 
 
 
@@ -74,12 +74,12 @@
 
        o   The cursor automatically wraps to the beginning of the next line.
 
-       o   At  the  bottom of the current scrolling region, and if scrollok is
-           enabled, the scrolling region is scrolled up one line.
+       o   At  the bottom of the current scrolling region, and if scrollok(3x)
+           is enabled, the scrolling region is scrolled up one line.
 
-       o   If scrollok is not enabled, writing a character at the lower  right
-           margin  succeeds.   However, an error is returned because it is not
-           possible to wrap to a new line
+       o   If scrollok(3x) is not enabled, writing a character  at  the  lower
+           right margin succeeds.  However, an error is returned because it is
+           not possible to wrap to a new line
 
        If ch is a tab, newline, carriage return or backspace,  the  cursor  is
        moved appropriately within the window:
@@ -97,9 +97,19 @@
            may be altered by setting the TABSIZE variable.
 
        If  ch  is  any  other nonprintable character, it is drawn in printable
-       form, i.e., the ^X notation used by unctrl(3x).   Calling  winch  after
-       adding  a  nonprintable character does not return the character itself,
-       but instead returns the printable representation of the character.
+       form, using the same convention as unctrl(3x):
+
+       o   Control characters are displayed in the ^X notation.
+
+       o   Values above 128 are either meta characters (if the screen has  not
+           been  initialized,  or  if  meta(3x)  has been called with a TRUE E
+           parameter),  shown  in  the  M-X  notation,  or  are  displayed  as
+           themselves.   In  the latter case, the values may not be printable;
+           this follows the X/Open specification.
+
+       Calling winch after adding a nonprintable character does not return the
+       character  itself,  but instead returns the printable representation of
+       the character.
 
        Video attributes can be combined with a character  argument  passed  to
        addch  or  related  functions by logical-ORing them into the character.
@@ -178,9 +188,9 @@
        If it is not  possible  to  add  a  complete  character,  an  error  is
        returned:
 
-       o   If  scrollok is not enabled, writing a character at the lower right
-           margin succeeds.  However, an error is returned because it  is  not
-           possible to wrap to a new line
+       o   If  scrollok(3x)  is  not enabled, writing a character at the lower
+           right margin succeeds.  However, an error is returned because it is
+           not possible to wrap to a new line
 
        o   If  an error is detected when converting a multibyte character to a
            sequence of bytes, or if it is not  possible  to  add  all  of  the
diff --git a/doc/html/man/curs_addstr.3x.html b/doc/html/man/curs_addstr.3x.html
index 050c7a11..4ce1379b 100644
--- a/doc/html/man/curs_addstr.3x.html
+++ b/doc/html/man/curs_addstr.3x.html
@@ -1,6 +1,6 @@
 
 
 
@@ -101,8 +101,8 @@
        large enough, or an illegal byte sequence was detected)  only  part  of
        the  string  may be added.  Aside from that, there is a special case in
        waddch where an error may be  returned  after  successfully  writing  a
-       character  to  the lower-right corner of a window when scrollok is dis-
-       abled.
+       character  to  the  lower-right corner of a window when scrollok(3x) is
+       disabled.
 
 
 

NOTES

diff --git a/doc/html/man/curs_opaque.3x.html b/doc/html/man/curs_opaque.3x.html
index fd7017dd..6c1443ca 100644
--- a/doc/html/man/curs_opaque.3x.html
+++ b/doc/html/man/curs_opaque.3x.html
@@ -1,6 +1,6 @@
 
 
 
@@ -78,44 +78,44 @@
        ES_OPAQUE is defined:
 
        is_cleared
-            returns the value set in clearok
+            returns the value set in clearok(3x)
 
        is_idcok
-            returns the value set in idcok
+            returns the value set in idcok(3x)
 
        is_idlok
-            returns the value set in idlok
+            returns the value set in idlok(3x)
 
        is_immedok
-            returns the value set in immedok
+            returns the value set in immedok(3x)
 
        is_keypad
-            returns the value set in keypad
+            returns the value set in keypad(3x)
 
        is_leaveok
-            returns the value set in leaveok
+            returns the value set in leaveok(3x)
 
        is_nodelay
-            returns the value set in nodelay
+            returns the value set in nodelay(3x)
 
        is_notimeout
-            returns the value set in notimeout
+            returns the value set in notimeout(3x)
 
        is_pad
-            returns TRUE if the window is a pad i.e., created by newpad
+            returns TRUE if the window is a pad i.e., created by newpad(3x)
 
        is_scrollok
-            returns the value set in scrollok
+            returns the value set in scrollok(3x)
 
        is_subwin
-            returns TRUE if the window is a subwindow, i.e., created by subwin
-            or derwin
+            returns  TRUE  if the window is a subwindow, i.e., created by sub-
+            win(3x) or derwin(3x)
 
        is_syncok
-            returns the value set in syncok
+            returns the value set in syncok(3x)
 
        wgetdelay
-            returns the delay timeout as set in wtimeout.
+            returns the delay timeout as set in wtimeout(3x).
 
        wgetparent
             returns the parent WINDOW pointer for subwindows, or NULL for win-
diff --git a/doc/html/man/curs_refresh.3x.html b/doc/html/man/curs_refresh.3x.html
index 7a81e03e..9a431956 100644
--- a/doc/html/man/curs_refresh.3x.html
+++ b/doc/html/man/curs_refresh.3x.html
@@ -1,6 +1,6 @@
 
 
 
@@ -71,9 +71,9 @@
        ly manipulate data structures.  The routine wrefresh copies  the  named
        window  to  the  physical  screen,  taking into account what is already
        there to do optimizations.  The refresh routine is the same, using std-
-       scr as the default window.  Unless leaveok has been enabled, the physi-
-       cal cursor of the terminal is left at the location of  the  cursor  for
-       that window.
+       scr  as  the  default window.  Unless leaveok(3x) has been enabled, the
+       physical cursor of the terminal is left at the location of  the  cursor
+       for that window.
 
 
 

wnoutrefresh/doupdate

diff --git a/doc/html/man/curs_scroll.3x.html b/doc/html/man/curs_scroll.3x.html
index 4b9fe872..3079d60d 100644
--- a/doc/html/man/curs_scroll.3x.html
+++ b/doc/html/man/curs_scroll.3x.html
@@ -1,6 +1,6 @@
 
 
 
@@ -70,7 +70,8 @@
        This involves moving the lines in the window character image structure.
        The current cursor position is not changed.
 
-       For these functions to work, scrolling must be enabled via scrollok.
+       For  these  functions  to  work,  scrolling  must be enabled via scrol-
+       lok(3x).
 
 
 

RETURN VALUE

@@ -79,20 +80,20 @@
 
        X/Open defines no error conditions.
 
-       This implementation returns an error if the window pointer is null,  or
-       if scrolling is not enabled in the window, e.g., with scrollok.
+       This  implementation returns an error if the window pointer is null, or
+       if scrolling is not enabled in the window, e.g., with scrollok(3x).
 
 
 

NOTES

        Note that scrl and scroll may be macros.
 
        The  SVr4  documentation  says  that  the  optimization  of  physically
-       scrolling immediately if the scroll region is the  entire  screen  "is"
-       performed,  not  "may  be" performed.  This implementation deliberately
-       does not guarantee that this will occur, to leave open the  possibility
+       scrolling  immediately  if  the scroll region is the entire screen "is"
+       performed, not "may be" performed.   This  implementation  deliberately
+       does  not guarantee that this will occur, to leave open the possibility
        of smarter optimization of multiple scroll actions on the next update.
 
-       Neither  the SVr4 nor the XSI documentation specify whether the current
+       Neither the SVr4 nor the XSI documentation specify whether the  current
        attribute or current color-pair of blanks generated by the scroll func-
        tion is zeroed.  Under this implementation it is.
 
diff --git a/doc/html/man/curs_termattrs.3x.html b/doc/html/man/curs_termattrs.3x.html
index bc8b9c1f..324373c3 100644
--- a/doc/html/man/curs_termattrs.3x.html
+++ b/doc/html/man/curs_termattrs.3x.html
@@ -1,6 +1,6 @@
 
 
 
@@ -91,7 +91,7 @@
        The has_il routine is true if the terminal has insert- and  delete-line
        capabilities, or can simulate them using scrolling regions.  This might
        be used to determine if it would be appropriate  to  turn  on  physical
-       scrolling using scrollok.
+       scrolling using scrollok(3x).
 
 
 

killchar, killwchar

diff --git a/doc/html/man/curs_util.3x.html b/doc/html/man/curs_util.3x.html
index cd4fefd0..e258d143 100644
--- a/doc/html/man/curs_util.3x.html
+++ b/doc/html/man/curs_util.3x.html
@@ -1,7 +1,7 @@
 
 
 
@@ -81,8 +81,10 @@
        The unctrl routine returns a character string which is a printable rep-
        resentation of the character c, ignoring attributes.   Control  charac-
        ters  are  displayed  in the ^X notation.  Printing characters are dis-
-       played as is.  The corresponding wunctrl returns a printable  represen-
-       tation of a wide character.
+       played as is.
+
+       The corresponding wunctrl returns a printable representation of a  wide
+       character.
 
 
 

keyname/key_name

@@ -177,11 +179,13 @@
 
            use_env   use_tioctl   Summary
            ----------------------------------------------------------------
+
+
+
            TRUE      FALSE        This is the default  behavior.   ncurses
                                   uses operating system calls unless over-
                                   ridden by $LINES or $COLUMNS environment
                                   variables.
-
            TRUE      TRUE         ncurses   updates  $LINES  and  $COLUMNS
                                   based on operating system calls.
            FALSE     TRUE         ncurses ignores $LINES and $COLUMNS, us-
diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
index 422171c8..baaadbd2 100644
--- a/doc/html/man/form.3x.html
+++ b/doc/html/man/form.3x.html
@@ -248,7 +248,7 @@
        curses(3x) and related pages whose names  begin  "form_"  for  detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 
diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
index 81b95ac5..f43fda34 100644
--- a/doc/html/man/infocmp.1m.html
+++ b/doc/html/man/infocmp.1m.html
@@ -1,7 +1,7 @@
 
 
 
@@ -392,18 +392,25 @@
                 "AIX"; see terminfo(5) for details.
 
             o   You  can  also  choose  the  subset  "BSD"  which selects only
-                capabilities with termcap equivalents  recognized  by  4.4BSD.
-                The -C option sets the "BSD" subset as a side-effect.
+                capabilities with termcap equivalents recognized by 4.4BSD.
 
-            o   If  you  select  any  other value for -R, it is the same as no
-                subset, i.e.,  all  capabilities  are  used.   The  -I  option
-                likewise selects no subset as a side-effect.
+            o   If you select any other value for -R, it is  the  same  as  no
+                subset, i.e., all capabilities are used.
+
+            A  few  options  override the subset selected with -R, if they are
+            processed later in the command parameters:
+
+            -C   sets the "BSD" subset as a side-effect.
+
+            -I   sets the subset to all capabilities.
+
+            -r   sets the subset to all capabilities.
 
        -s [d|i|l|c]
-            The  -s  option sorts the fields within each type according to the
+            The -s option sorts the fields within each type according  to  the
             argument below:
 
-            d    leave fields in  the  order  that  they  are  stored  in  the
+            d    leave  fields  in  the  order  that  they  are  stored in the
                  terminfo database.
 
             i    sort by terminfo name.
@@ -412,45 +419,45 @@
 
             c    sort by the termcap name.
 
-            If  the  -s  option  is  not given, the fields printed out will be
-            sorted alphabetically by  the  terminfo  name  within  each  type,
-            except  in  the  case of the -C or the -L options, which cause the
-            sorting to be done by the termcap name  or  the  long  C  variable
+            If the -s option is not given, the  fields  printed  out  will  be
+            sorted  alphabetically  by  the  terminfo  name  within each type,
+            except in the case of the -C or the -L options,  which  cause  the
+            sorting  to  be  done  by  the termcap name or the long C variable
             name, respectively.
 
-       -T   eliminates  size-restrictions  on  the  generated  text.   This is
+       -T   eliminates size-restrictions  on  the  generated  text.   This  is
             mainly  useful  for  testing  and  analysis,  since  the  compiled
             descriptions  are  limited  (e.g.,  1023  for  termcap,  4096  for
             terminfo).
 
-       -t   tells tic to discard commented-out  capabilities.   Normally  when
-            translating  from terminfo to termcap, untranslatable capabilities
+       -t   tells  tic  to  discard commented-out capabilities.  Normally when
+            translating from terminfo to termcap, untranslatable  capabilities
             are commented-out.
 
-       -U   tells infocmp to not  post-process  the  data  after  parsing  the
+       -U   tells  infocmp  to  not  post-process  the  data after parsing the
             source  file.   This  feature  helps  when  comparing  the  actual
-            contents of two source files, since  it  excludes  the  inferences
+            contents  of  two  source  files, since it excludes the inferences
             that infocmp makes to fill in missing data.
 
        -V   reports the version of ncurses which was used in this program, and
             exits.
 
-       -v n prints out tracing information on standard error  as  the  program
+       -v n prints  out  tracing  information on standard error as the program
             runs.
 
-            The  optional  parameter  n  is  a number from 1 to 10, inclusive,
+            The optional parameter n is a number  from  1  to  10,  inclusive,
             indicating the desired level of detail of information.  If ncurses
-            is  built  without  tracing  support,  the  optional  parameter is
+            is built  without  tracing  support,  the  optional  parameter  is
             ignored.
 
-       -W   By itself, the -w  option  will  not  force  long  strings  to  be
+       -W   By  itself,  the  -w  option  will  not  force  long strings to be
             wrapped.  Use the -W option to do this.
 
        -w width
             changes the output to width characters.
 
        -x   print information for user-defined capabilities (see user_caps(5).
-            These are extensions to  the  terminfo  repertoire  which  can  be
+            These  are  extensions  to  the  terminfo  repertoire which can be
             loaded using the -x option of tic.
 
 
@@ -459,48 +466,48 @@
 
 
 

HISTORY

-       Although  System  V  Release  2  provided a terminfo library, it had no
+       Although System V Release 2 provided a  terminfo  library,  it  had  no
        documented tool for decompiling the terminal descriptions.  Tony Hansen
        (AT&T) wrote the first infocmp in early 1984, for System V Release 3.
 
-       Eric  Raymond  used  the  AT&T  documentation  in  1995  to  provide an
-       equivalent infocmp for ncurses.   In  addition,  he  added  a  few  new
+       Eric Raymond  used  the  AT&T  documentation  in  1995  to  provide  an
+       equivalent  infocmp  for  ncurses.   In  addition,  he  added a few new
        features such as:
 
-       o   the   -e   option,   to  support  fallback  (compiled-in)  terminal
+       o   the  -e  option,  to  support   fallback   (compiled-in)   terminal
            descriptions
 
        o   the -i option, to help with analysis
 
-       Later, Thomas Dickey added the -x (user-defined  capabilities)  option,
-       and  the  -E  option  to  support  fallback  entries  with user-defined
+       Later,  Thomas  Dickey added the -x (user-defined capabilities) option,
+       and the  -E  option  to  support  fallback  entries  with  user-defined
        capabilities.
 
        For a complete list, see the EXTENSIONS section.
 
-       In 2010, Roy Marples provided an infocmp program  for  NetBSD.   It  is
-       less  capable  than  the  SVr4  or ncurses versions (e.g., it lacks the
-       sorting options documented in X/Open), but does include the  -x  option
+       In  2010,  Roy  Marples  provided an infocmp program for NetBSD.  It is
+       less capable than the SVr4 or ncurses  versions  (e.g.,  it  lacks  the
+       sorting  options  documented in X/Open), but does include the -x option
        adapted from ncurses.
 
 
 

PORTABILITY

-       X/Open  Curses,  Issue  7 (2009) provides a description of infocmp.  It
+       X/Open Curses, Issue 7 (2009) provides a description  of  infocmp.   It
        does not mention the options used for converting to termcap format.
 
 
 

EXTENSIONS

-       The -0, -1, -E, -F, -G, -Q, -R, -T, -V, -a, -e, -f, -g, -i, -l, -p,  -q
+       The  -0, -1, -E, -F, -G, -Q, -R, -T, -V, -a, -e, -f, -g, -i, -l, -p, -q
        and -t options are not supported in SVr4 curses.
 
-       SVr4   infocmp  does  not  distinguish  between  absent  and  cancelled
-       capabilities.  Also, it shows missing integer capabilities as  -1  (the
+       SVr4  infocmp  does  not  distinguish  between  absent  and   cancelled
+       capabilities.   Also,  it shows missing integer capabilities as -1 (the
        internal   value   used   to   represent   missing   integers).    This
-       implementation shows those as  "NULL",  for  consistency  with  missing
+       implementation  shows  those  as  "NULL",  for consistency with missing
        strings.
 
-       The  -r  option's  notion of "termcap" capabilities is System V Release
-       4's.  Actual BSD curses versions will have a more restricted  set.   To
+       The -r option's notion of "termcap" capabilities is  System  V  Release
+       4's.   Actual  BSD curses versions will have a more restricted set.  To
        see only the 4.4BSD set, use -r -RBSD.
 
 
@@ -514,7 +521,7 @@
 
        https://invisible-island.net/ncurses/tctest.html
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 

AUTHOR

diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
index 1ea690cb..37a5797a 100644
--- a/doc/html/man/infotocap.1m.html
+++ b/doc/html/man/infotocap.1m.html
@@ -91,7 +91,7 @@
 

SEE ALSO

        infocmp(1m), tic(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 

AUTHOR

diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
index a8f2c961..8ffaa3db 100644
--- a/doc/html/man/menu.3x.html
+++ b/doc/html/man/menu.3x.html
@@ -223,7 +223,7 @@
        curses(3x) and related pages whose names  begin  "menu_"  for  detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 
diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
index ab2b69d1..8cfe515b 100644
--- a/doc/html/man/ncurses.3x.html
+++ b/doc/html/man/ncurses.3x.html
@@ -60,7 +60,7 @@
        method of updating  character  screens  with  reasonable  optimization.
        This  implementation  is  "new  curses"  (ncurses)  and is the approved
        replacement for 4.4BSD classic curses,  which  has  been  discontinued.
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
        The  ncurses  library emulates the curses library of System V Release 4
        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
diff --git a/doc/html/man/ncurses6-config.1.html b/doc/html/man/ncurses6-config.1.html
index 0f64e3de..27bfb037 100644
--- a/doc/html/man/ncurses6-config.1.html
+++ b/doc/html/man/ncurses6-config.1.html
@@ -113,7 +113,7 @@
 

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 
diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
index 761a0fbd..a9e1976a 100644
--- a/doc/html/man/panel.3x.html
+++ b/doc/html/man/panel.3x.html
@@ -281,7 +281,7 @@
 

SEE ALSO

        curses(3x), curs_variables(3x),
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 

AUTHOR

diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
index 3e9f0f9d..5eb35247 100644
--- a/doc/html/man/tabs.1.html
+++ b/doc/html/man/tabs.1.html
@@ -252,7 +252,7 @@
 

SEE ALSO

        infocmp(1m), tset(1), curses(3x), terminfo(5).
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 
diff --git a/doc/html/man/term_variables.3x.html b/doc/html/man/term_variables.3x.html
index 6e930838..4dd4977d 100644
--- a/doc/html/man/term_variables.3x.html
+++ b/doc/html/man/term_variables.3x.html
@@ -1,6 +1,6 @@
 
 
 
@@ -119,7 +119,7 @@
        tions,  although the hash-tables used by the terminfo and termcap func-
        tions are not available.
 
-       The long terminfo capability names use a  "l"  (ell)  in  their  names:
+       The long terminfo capability names use a  "f"  (eff)  in  their  names:
        boolfnames, numfnames, and strfnames.
 
        These  are  the  short names for terminfo capabilities: boolnames, num-
diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
index 23b27bfb..d5ad0da3 100644
--- a/doc/html/man/terminfo.5.html
+++ b/doc/html/man/terminfo.5.html
@@ -106,7 +106,7 @@
        have, by specifying how to perform screen operations, and by specifying
        padding requirements and initialization sequences.
 
-       This manual describes ncurses version 6.4 (patch 20221231).
+       This manual describes ncurses version 6.4 (patch 20230311).
 
 
 

Terminfo Entry Syntax

diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
index cced3343..0fa0e3cb 100644
--- a/doc/html/man/tic.1m.html
+++ b/doc/html/man/tic.1m.html
@@ -469,7 +469,7 @@
        captoinfo(1m),   infocmp(1m),   infotocap(1m),   toe(1m),   curses(3x),
        term(5).  terminfo(5).  user_caps(5).
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 

AUTHOR

diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
index a9151184..430675c5 100644
--- a/doc/html/man/toe.1m.html
+++ b/doc/html/man/toe.1m.html
@@ -171,7 +171,7 @@
        captoinfo(1m),   infocmp(1m),   infotocap(1m),   tic(1m),   curses(3x),
        terminfo(5).
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 
diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
index 6a330a55..c4916439 100644
--- a/doc/html/man/tput.1.html
+++ b/doc/html/man/tput.1.html
@@ -545,7 +545,7 @@
 

SEE ALSO

        clear(1), stty(1), tabs(1), tset(1), curs_termcap(3x), terminfo(5).
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 
diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
index c610a8c8..efb6a189 100644
--- a/doc/html/man/tset.1.html
+++ b/doc/html/man/tset.1.html
@@ -391,7 +391,7 @@
        csh(1),   sh(1),   stty(1),   curs_terminfo(3x),  tty(4),  terminfo(5),
        ttys(5), environ(7)
 
-       This describes ncurses version 6.4 (patch 20221231).
+       This describes ncurses version 6.4 (patch 20230311).
 
 
 
diff --git a/man/curs_add_wch.3x b/man/curs_add_wch.3x
index ed84ece2..26d82e00 100644
--- a/man/curs_add_wch.3x
+++ b/man/curs_add_wch.3x
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2019-2020,2021 Thomas E. Dickey                                *
+.\" Copyright 2019-2021,2023 Thomas E. Dickey                                *
 .\" Copyright 2001-2015,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_add_wch.3x,v 1.31 2021/12/25 21:37:49 tom Exp $
+.\" $Id: curs_add_wch.3x,v 1.32 2023/03/11 20:40:45 tom Exp $
 .TH curs_add_wch 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -221,7 +221,7 @@ if it is not possible to add a complete character in the window.
 .PP
 The latter may be due to different causes:
 .bP
-If \fBscrollok\fP is not enabled,
+If \fBscrollok\fP(3X) is not enabled,
 writing a character at the lower right margin succeeds.
 However, an error is returned because
 it is not possible to wrap to a new line
diff --git a/man/curs_addch.3x b/man/curs_addch.3x
index fe591f9b..875f47f3 100644
--- a/man/curs_addch.3x
+++ b/man/curs_addch.3x
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright 2018-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
 .\" Copyright 1998-2015,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -28,7 +28,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addch.3x,v 1.59 2022/02/12 20:07:29 tom Exp $
+.\" $Id: curs_addch.3x,v 1.60 2023/03/11 20:39:26 tom Exp $
 .TH curs_addch 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -71,10 +71,10 @@ If the advance is at the right margin:
 The cursor automatically wraps to the beginning of the next line.
 .bP
 At the bottom of the current scrolling region,
-and if \fBscrollok\fP is enabled,
+and if \fBscrollok\fP(3X) is enabled,
 the scrolling region is scrolled up one line.
 .bP
-If \fBscrollok\fP is not enabled,
+If \fBscrollok\fP(3X) is not enabled,
 writing a character at the lower right margin succeeds.
 However, an error is returned because
 it is not possible to wrap to a new line
@@ -96,7 +96,16 @@ The tab interval may be altered by setting the \fBTABSIZE\fP variable.
 .PP
 If \fIch\fP is any other nonprintable character,
 it is drawn in printable form,
-i.e., the \fB^\fIX\fR notation used by \fBunctrl\fR(3X).
+using the same convention as \fBunctrl\fR(3X):
+.bP
+Control characters are displayed in the \fB^\fIX\fR notation.
+.bP
+Values above 128 are either meta characters (if the screen has not
+been initialized, or if \fBmeta\fP(3X) has been called with a \fBTRUE\fP E parameter),
+shown in the \fBM\-\fIX\fR notation, or are displayed as themselves.
+In the latter case, the values may not be printable;
+this follows the X/Open specification.
+.PP
 Calling \fBwinch\fP after adding a
 nonprintable character does not return the character itself,
 but instead returns the printable representation of the character.
@@ -180,7 +189,7 @@ or if the window pointer is null.
 If it is not possible to add a complete character,
 an error is returned:
 .bP
-If \fBscrollok\fP is not enabled,
+If \fBscrollok\fP(3X) is not enabled,
 writing a character at the lower right margin succeeds.
 However, an error is returned because
 it is not possible to wrap to a new line
diff --git a/man/curs_addstr.3x b/man/curs_addstr.3x
index 6820ce0c..cd8ce48d 100644
--- a/man/curs_addstr.3x
+++ b/man/curs_addstr.3x
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2019-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2019-2022,2023 Thomas E. Dickey                                *
 .\" Copyright 1998-2012,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_addstr.3x,v 1.26 2022/02/12 20:07:29 tom Exp $
+.\" $Id: curs_addstr.3x,v 1.27 2023/03/11 20:40:52 tom Exp $
 .TH curs_addstr 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -109,7 +109,7 @@ only part of the string may be added.
 Aside from that,
 there is a special case in \fBwaddch\fP where an error may be
 returned after successfully writing a character to the lower-right corner
-of a window when \fBscrollok\fP is disabled.
+of a window when \fBscrollok\fP(3X) is disabled.
 .SH NOTES
 All of these functions except \fBwaddnstr\fP may be macros.
 .SH PORTABILITY
diff --git a/man/curs_opaque.3x b/man/curs_opaque.3x
index 948d32da..2e57c0e2 100644
--- a/man/curs_opaque.3x
+++ b/man/curs_opaque.3x
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2020-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2020-2022,2023 Thomas E. Dickey                                *
 .\" Copyright 2007-2014,2015 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_opaque.3x,v 1.18 2022/02/12 20:05:11 tom Exp $
+.\" $Id: curs_opaque.3x,v 1.19 2023/03/11 20:40:58 tom Exp $
 .TH curs_opaque 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -92,45 +92,45 @@ set in the WINDOW structure, allowing it to be \*(``opaque\*('' if
 the symbol \fBNCURSES_OPAQUE\fP is defined:
 .TP 5
 \fBis_cleared\fP
-returns the value set in \fBclearok\fP
+returns the value set in \fBclearok\fP(3X)
 .TP 5
 \fBis_idcok\fP
-returns the value set in \fBidcok\fP
+returns the value set in \fBidcok\fP(3X)
 .TP 5
 \fBis_idlok\fP
-returns the value set in \fBidlok\fP
+returns the value set in \fBidlok\fP(3X)
 .TP 5
 \fBis_immedok\fP
-returns the value set in \fBimmedok\fP
+returns the value set in \fBimmedok\fP(3X)
 .TP 5
 \fBis_keypad\fP
-returns the value set in \fBkeypad\fP
+returns the value set in \fBkeypad\fP(3X)
 .TP 5
 \fBis_leaveok\fP
-returns the value set in \fBleaveok\fP
+returns the value set in \fBleaveok\fP(3X)
 .TP 5
 \fBis_nodelay\fP
-returns the value set in \fBnodelay\fP
+returns the value set in \fBnodelay\fP(3X)
 .TP 5
 \fBis_notimeout\fP
-returns the value set in \fBnotimeout\fP
+returns the value set in \fBnotimeout\fP(3X)
 .TP 5
 \fBis_pad\fP
 returns \fBTRUE\fP if the window is a pad
-i.e., created by \fBnewpad\fP
+i.e., created by \fBnewpad\fP(3X)
 .TP 5
 \fBis_scrollok\fP
-returns the value set in \fBscrollok\fP
+returns the value set in \fBscrollok\fP(3X)
 .TP 5
 \fBis_subwin\fP
 returns \fBTRUE\fP if the window is a subwindow,
-i.e., created by \fBsubwin\fP or \fBderwin\fP
+i.e., created by \fBsubwin\fP(3X) or \fBderwin\fP(3X)
 .TP 5
 \fBis_syncok\fP
-returns the value set in \fBsyncok\fP
+returns the value set in \fBsyncok\fP(3X)
 .TP 5
 \fBwgetdelay\fP
-returns the delay timeout as set in \fBwtimeout\fP.
+returns the delay timeout as set in \fBwtimeout\fP(3X).
 .TP 5
 \fBwgetparent\fP
 returns the parent WINDOW pointer for subwindows,
diff --git a/man/curs_refresh.3x b/man/curs_refresh.3x
index 32e08934..c2cd8468 100644
--- a/man/curs_refresh.3x
+++ b/man/curs_refresh.3x
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2018-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
 .\" Copyright 1998-2010,2016 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_refresh.3x,v 1.25 2022/02/12 20:05:11 tom Exp $
+.\" $Id: curs_refresh.3x,v 1.26 2023/03/11 20:41:02 tom Exp $
 .TH curs_refresh 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -73,7 +73,7 @@ the named window to the \fIphysical screen\fP,
 taking into account what is already there to do optimizations.
 The \fBrefresh\fP routine is the
 same, using \fBstdscr\fP as the default window.
-Unless \fBleaveok\fP has been
+Unless \fBleaveok\fP(3X) has been
 enabled, the physical cursor of the terminal is left at the location of the
 cursor for that window.
 .SS wnoutrefresh/doupdate
diff --git a/man/curs_scroll.3x b/man/curs_scroll.3x
index 9a99adfa..ee8288c9 100644
--- a/man/curs_scroll.3x
+++ b/man/curs_scroll.3x
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2018-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
 .\" Copyright 1998-2006,2010 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_scroll.3x,v 1.22 2022/02/12 20:05:11 tom Exp $
+.\" $Id: curs_scroll.3x,v 1.23 2023/03/11 20:41:05 tom Exp $
 .TH curs_scroll 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -65,7 +65,7 @@ This involves moving the lines in the
 window character image structure.
 The current cursor position is not changed.
 .PP
-For these functions to work, scrolling must be enabled via \fBscrollok\fP.
+For these functions to work, scrolling must be enabled via \fBscrollok\fP(3X).
 .SH RETURN VALUE
 These routines return \fBERR\fP upon failure, and \fBOK\fP (SVr4 only specifies
 "an integer value other than \fBERR\fP") upon successful completion.
@@ -74,7 +74,7 @@ X/Open defines no error conditions.
 .PP
 This implementation returns an error
 if the window pointer is null, or
-if scrolling is not enabled in the window, e.g., with \fBscrollok\fP.
+if scrolling is not enabled in the window, e.g., with \fBscrollok\fP(3X).
 .SH NOTES
 Note that \fBscrl\fP and \fBscroll\fP may be macros.
 .PP
diff --git a/man/curs_termattrs.3x b/man/curs_termattrs.3x
index 017dbe4b..8f20cde5 100644
--- a/man/curs_termattrs.3x
+++ b/man/curs_termattrs.3x
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2018-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
 .\" Copyright 1998-2010,2015 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_termattrs.3x,v 1.19 2022/02/12 20:05:11 tom Exp $
+.\" $Id: curs_termattrs.3x,v 1.20 2023/03/11 20:41:12 tom Exp $
 .TH curs_termattrs 3X ""
 .SH NAME
 \fBbaudrate\fP,
@@ -89,7 +89,7 @@ The \fBhas_il\fP routine is true if the terminal has insert- and delete-line
 capabilities, or can simulate them using scrolling regions.
 This might
 be used to determine if it would be appropriate to turn on physical
-scrolling using \fBscrollok\fP.
+scrolling using \fBscrollok\fP(3X).
 .SS killchar, killwchar
 .PP
 The \fBkillchar\fP routine returns the user's current line kill character.
diff --git a/man/curs_util.3x b/man/curs_util.3x
index 32b058f9..c5d64f20 100644
--- a/man/curs_util.3x
+++ b/man/curs_util.3x
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright 2018-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
 .\" Copyright 1998-2015,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -28,7 +28,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_util.3x,v 1.65 2022/02/12 20:06:41 tom Exp $
+.\" $Id: curs_util.3x,v 1.66 2023/03/11 20:28:02 tom Exp $
 .TH curs_util 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -89,6 +89,7 @@ The \fBunctrl\fP routine returns a character string which is a printable
 representation of the character \fIc\fP, ignoring attributes.
 Control characters are displayed in the \fB^\fIX\fR notation.
 Printing characters are displayed as is.
+.PP
 The corresponding \fBwunctrl\fP returns a printable representation of
 a wide character.
 .SS keyname/key_name
diff --git a/man/infocmp.1m b/man/infocmp.1m
index 2b5d98e3..cdd0806e 100644
--- a/man/infocmp.1m
+++ b/man/infocmp.1m
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright 2018-2021,2022 Thomas E. Dickey                                *
+.\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
 .\" Copyright 1998-2017,2018 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -28,7 +28,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: infocmp.1m,v 1.81 2022/02/12 20:02:20 tom Exp $
+.\" $Id: infocmp.1m,v 1.82 2023/03/05 00:05:39 tom Exp $
 .TH @INFOCMP@ 1M ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -487,11 +487,23 @@ see \fBterminfo\fP(\*n) for details.
 .bP
 You can also choose the subset \*(``BSD\*('' which selects only capabilities
 with termcap equivalents recognized by 4.4BSD.
-The \fB\-C\fP option sets the \*(``BSD\*('' subset as a side-effect.
 .bP
 If you select any other value for \fB\-R\fP,
 it is the same as no subset, i.e., all capabilities are used.
-The \fB\-I\fP option likewise selects no subset as a side-effect.
+.RE
+.IP
+A few options override the subset selected with \fB\-R\fP,
+if they are processed later in the command parameters:
+.RS
+.TP 5
+\fB\-C\fP
+sets the \*(``BSD\*('' subset as a side-effect.
+.TP 5
+\fB\-I\fP
+sets the subset to all capabilities.
+.TP 5
+\fB\-r\fP
+sets the subset to all capabilities.
 .RE
 .TP
 \fB\-s \fI[d|i|l|c]\fR
diff --git a/ncurses/tinfo/lib_win32con.c b/ncurses/tinfo/lib_win32con.c
index 3b2a7c4d..49b6cd6a 100644
--- a/ncurses/tinfo/lib_win32con.c
+++ b/ncurses/tinfo/lib_win32con.c
@@ -38,7 +38,7 @@
 
 #include 
 
-MODULE_ID("$Id: lib_win32con.c,v 1.11 2023/02/12 00:31:33 tom Exp $")
+MODULE_ID("$Id: lib_win32con.c,v 1.12 2023/02/26 19:55:10 tom Exp $")
 
 #ifdef _NC_WINDOWS
 
@@ -1193,7 +1193,7 @@ _nc_console_checkinit(bool initFlag, bool assumeTermInfo)
 	    for (i = 0; i < CON_NUMPAIRS; i++)
 		WINCONSOLE.pairs[i] = a;
 
-#define SaveConsoleMode(handle, data) \
+#define SaveConsoleMode(handle, value) \
             GetConsoleMode(WINCONSOLE.handle, &WINCONSOLE.originalMode.value)
 
 	    if (WINCONSOLE.isTermInfoConsole) {
diff --git a/ncurses/tinfo/write_entry.c b/ncurses/tinfo/write_entry.c
index e1baf9e2..002b117c 100644
--- a/ncurses/tinfo/write_entry.c
+++ b/ncurses/tinfo/write_entry.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2021,2022 Thomas E. Dickey                                *
+ * Copyright 2018-2022,2023 Thomas E. Dickey                                *
  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -51,7 +51,7 @@
 #define TRACE_NUM(n)		/* nothing */
 #endif
 
-MODULE_ID("$Id: write_entry.c,v 1.120 2022/04/23 19:59:10 tom Exp $")
+MODULE_ID("$Id: write_entry.c,v 1.121 2023/03/05 18:45:59 tom Exp $")
 
 static int total_written;
 static int total_parts;
@@ -473,7 +473,7 @@ _nc_write_entry(TERMTYPE2 *const tp)
 	if (strcmp(filename, linkname) == 0) {
 	    _nc_warning("self-synonym ignored");
 	} else if (stat(linkname, &statbuf) >= 0 &&
-		   statbuf.st_mtime < start_time) {
+		   statbuf.st_mtime > start_time) {
 	    _nc_warning("alias %s multiply defined.", ptr);
 	} else if (_nc_access(linkname, W_OK) == 0)
 #if HAVE_LINK
diff --git a/ncurses/tty/lib_twait.c b/ncurses/tty/lib_twait.c
index c698110a..407a7203 100644
--- a/ncurses/tty/lib_twait.c
+++ b/ncurses/tty/lib_twait.c
@@ -76,7 +76,7 @@
 #endif
 #undef CUR
 
-MODULE_ID("$Id: lib_twait.c,v 1.79 2023/02/25 21:59:30 tom Exp $")
+MODULE_ID("$Id: lib_twait.c,v 1.80 2023/03/04 23:47:00 tom Exp $")
 
 /*
  * Returns an elapsed time, in milliseconds (if possible).
@@ -100,8 +100,8 @@ _nc_gettime(TimeType * t0, int first)
 	    t1.sub_secs += TimeScale;
 	    t1.tv_sec--;
 	}
-	res = (t1.tv_sec - t0->tv_sec) * 1000L
-	    + (t1.sub_secs - t0->sub_secs) / (TimeScale / 1000L);
+	res = (long) ((t1.tv_sec - t0->tv_sec) * 1000L
+		      + (t1.sub_secs - t0->sub_secs) / (TimeScale / 1000L));
     }
 #else
     time_t t1 = time((time_t *) 0);
diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
index 4c2c0b23..858f4c86 100644
--- a/package/debian-mingw/changelog
+++ b/package/debian-mingw/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.4+20230225) unstable; urgency=low
+ncurses6 (6.4+20230311) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 25 Feb 2023 07:58:46 -0500
+ -- Thomas E. Dickey   Sun, 05 Mar 2023 13:16:04 -0500
 
 ncurses6 (5.9+20131005) unstable; urgency=low
 
diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
index 4c2c0b23..858f4c86 100644
--- a/package/debian-mingw64/changelog
+++ b/package/debian-mingw64/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.4+20230225) unstable; urgency=low
+ncurses6 (6.4+20230311) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 25 Feb 2023 07:58:46 -0500
+ -- Thomas E. Dickey   Sun, 05 Mar 2023 13:16:04 -0500
 
 ncurses6 (5.9+20131005) unstable; urgency=low
 
diff --git a/package/debian/changelog b/package/debian/changelog
index 890537bf..a38471b0 100644
--- a/package/debian/changelog
+++ b/package/debian/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.4+20230225) unstable; urgency=low
+ncurses6 (6.4+20230311) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 25 Feb 2023 07:58:46 -0500
+ -- Thomas E. Dickey   Sun, 05 Mar 2023 13:16:04 -0500
 
 ncurses6 (5.9+20120608) unstable; urgency=low
 
diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
index f88ca81f..6b00844d 100644
--- a/package/mingw-ncurses.nsi
+++ b/package/mingw-ncurses.nsi
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.567 2023/02/25 12:58:46 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.569 2023/03/05 18:16:04 tom Exp $
 
 ; TODO add examples
 ; TODO bump ABI to 6
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"
 !define VERSION_MINOR "4"
 !define VERSION_YYYY  "2023"
-!define VERSION_MMDD  "0225"
+!define VERSION_MMDD  "0311"
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
 
 !define MY_ABI   "5"
diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
index b0f04687..0fdb0614 100644
--- a/package/mingw-ncurses.spec
+++ b/package/mingw-ncurses.spec
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.4
-Release: 20230225
+Release: 20230311
 License: X11
 Group: Development/Libraries
 URL: https://invisible-island.net/ncurses/
diff --git a/package/ncurses.spec b/package/ncurses.spec
index 37c152b6..aa4ca9dc 100644
--- a/package/ncurses.spec
+++ b/package/ncurses.spec
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.4
-Release: 20230225
+Release: 20230311
 License: X11
 Group: Development/Libraries
 URL: https://invisible-island.net/ncurses/
diff --git a/package/ncursest.spec b/package/ncursest.spec
index 9f24ffd6..56c5bf02 100644
--- a/package/ncursest.spec
+++ b/package/ncursest.spec
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.4
-Release: 20230225
+Release: 20230311
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz