From: Thomas E. Dickey Date: Sun, 5 Sep 2021 00:58:54 +0000 (+0000) Subject: ncurses 6.2 - patch 20210904 X-Git-Tag: v6.3~10 X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=commitdiff_plain;h=643ec2bf782cd02efafe3ccdeaea8920a404645e ncurses 6.2 - patch 20210904 + modify linux3.0 entry to reflect default mapping of shift-tab by kbd 1.14 (report by Jan Engelhardt) -TD + add historical note to tput, curses-terminfo and curses-color manpages based on source-code for SVr2, SVr3 and SVr4. + minor grammatical fixes for "it's" vs "its" (report by Nick Black). + amend fix for --disable-root-environ (report by Arnav Singh). + build-fix for compiling link_test + drop symbols GCC_PRINTF and GCC_SCANF from curses.h.in, to simplify use (Debian #993179). --- diff --git a/Ada95/TODO b/Ada95/TODO index 15323458..10354952 100644 --- a/Ada95/TODO +++ b/Ada95/TODO @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: TODO,v 1.7 2021/06/17 21:20:30 tom Exp $ +-- $Id: TODO,v 1.8 2021/09/01 23:22:33 tom Exp $ ------------------------------------------------------------------------------- -- Intensive testing @@ -41,7 +41,7 @@ Comfort purpose -- Sample program - Under continuous construction (and it's not a WEB page!!!) + Under continuous construction (and it is not a WEB page!!!) -- Make the binding objects a shared library They are rather large, so it would make sense, otherwise Ada95 diff --git a/Ada95/aclocal.m4 b/Ada95/aclocal.m4 index eac4de91..4ecec6dd 100644 --- a/Ada95/aclocal.m4 +++ b/Ada95/aclocal.m4 @@ -29,7 +29,7 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey dnl -dnl $Id: aclocal.m4,v 1.179 2021/08/28 20:29:28 tom Exp $ +dnl $Id: aclocal.m4,v 1.181 2021/09/04 10:47:55 tom Exp $ dnl Macros used in NCURSES Ada95 auto-configuration script. dnl dnl These macros are maintained separately from NCURSES. The copyright on @@ -189,9 +189,9 @@ AC_SUBST(EXTRA_CPPFLAGS) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42 +dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04 dnl ------------- -dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's +dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is dnl redundant. We don't normally need to add -I/usr/local/include for gcc, dnl but old versions (and some misinstalled ones) need that. To make things dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to @@ -994,9 +994,9 @@ dnl ---------- dnl "dirname" is not portable, so we fake it with a shell script. AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl dnl --------------------------------------------------------------------------- -dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57 +dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04 dnl --------------- -dnl You can always use "make -n" to see the actual options, but it's hard to +dnl You can always use "make -n" to see the actual options, but it is hard to dnl pick out/analyze warning messages when the compile-line is long. dnl dnl Sets: @@ -2498,10 +2498,10 @@ AC_SUBST(BROKEN_LINKER) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_MAKEFLAGS version: 20 updated: 2021/01/03 19:29:49 +dnl CF_MAKEFLAGS version: 21 updated: 2021/09/04 06:47:34 dnl ------------ dnl Some 'make' programs support ${MAKEFLAGS}, some ${MFLAGS}, to pass 'make' -dnl options to lower-levels. It's very useful for "make -n" -- if we have it. +dnl options to lower-levels. It is very useful for "make -n" -- if we have it. dnl (GNU 'make' does both, something POSIX 'make', which happens to make the dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-) AC_DEFUN([CF_MAKEFLAGS], @@ -3127,7 +3127,7 @@ esac ])dnl dnl --------------------------------------------------------------------------- -dnl CF_NCURSES_LIBS version: 20 updated: 2021/01/03 08:05:37 +dnl CF_NCURSES_LIBS version: 21 updated: 2021/09/04 06:37:12 dnl --------------- dnl Look for the ncurses library. This is a little complicated on Linux, dnl because it may be linked with the gpm (general purpose mouse) library. @@ -3156,7 +3156,7 @@ AC_CHECK_LIB(gpm,Gpm_Open, case "$host_os" in (freebsd*) # This is only necessary if you are linking against an obsolete - # version of ncurses (but it should do no harm, since it's static). + # version of ncurses (but it should do no harm, since it is static). if test "$cf_nculib_root" = ncurses ; then AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"]) fi @@ -3827,7 +3827,7 @@ do done ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SHARED_OPTS version: 106 updated: 2021/08/07 16:59:57 +dnl CF_SHARED_OPTS version: 107 updated: 2021/09/04 06:47:34 dnl -------------- dnl -------------- dnl Attempt to determine the appropriate CC/LD options for creating a shared @@ -3851,7 +3851,7 @@ dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library dnl version numbers are infix (ex: libncurses..dylib) or postfix dnl (ex: libncurses.so.). dnl -dnl Some loaders leave 'so_locations' lying around. It's nice to clean up. +dnl Some loaders leave 'so_locations' lying around. It is nice to clean up. AC_DEFUN([CF_SHARED_OPTS], [ AC_REQUIRE([CF_LD_RPATH_OPT]) @@ -4756,7 +4756,7 @@ else fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19 +dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04 dnl ------------ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just dnl defaulting to yes/no. @@ -4765,7 +4765,7 @@ dnl $1 = option name dnl $2 = help-text dnl $3 = environment variable to set dnl $4 = default value, shown in the help-message, must be a constant -dnl $5 = default value, if it's an expression & cannot be in the help-message +dnl $5 = default value, if it is an expression & cannot be in the help-message dnl AC_DEFUN([CF_WITH_PATH], [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),, diff --git a/Ada95/configure b/Ada95/configure index 27d681a8..4cc59891 100755 --- a/Ada95/configure +++ b/Ada95/configure @@ -6203,7 +6203,7 @@ fi case "$host_os" in (freebsd*) # This is only necessary if you are linking against an obsolete - # version of ncurses (but it should do no harm, since it's static). + # version of ncurses (but it should do no harm, since it is static). if test "$cf_nculib_root" = ncurses ; then echo "$as_me:6208: checking for tgoto in -lmytinfo" >&5 echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 @@ -8954,7 +8954,7 @@ fi case "$host_os" in (freebsd*) # This is only necessary if you are linking against an obsolete - # version of ncurses (but it should do no harm, since it's static). + # version of ncurses (but it should do no harm, since it is static). if test "$cf_nculib_root" = ncurses ; then echo "$as_me:8959: checking for tgoto in -lmytinfo" >&5 echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 @@ -11076,7 +11076,7 @@ fi case "$host_os" in (freebsd*) # This is only necessary if you are linking against an obsolete - # version of ncurses (but it should do no harm, since it's static). + # version of ncurses (but it should do no harm, since it is static). if test "$cf_nculib_root" = ncurses ; then echo "$as_me:11081: checking for tgoto in -lmytinfo" >&5 echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6 diff --git a/Ada95/samples/explain.txt b/Ada95/samples/explain.txt index d36d4ea7..f05eede3 100644 --- a/Ada95/samples/explain.txt +++ b/Ada95/samples/explain.txt @@ -61,7 +61,7 @@ You may leave the help with the Function Key labeled 'Quit'. #MAIN This is the main menu of the sample program for the ncurses Ada95 binding. The main intention of the demo is not to demonstrate or -test all the features of ncurses and it's subsystems, but to provide +test all the features of ncurses and its subsystems, but to provide to you some sample code how to use the binding with Ada95. You may select this options: @@ -91,7 +91,7 @@ flip between the non-spaced and a spaced version of the menu. Please note that this functionality is unique for ncurses and is not found in the SVr4 menu implementation. -This is a menu that sometimes does not fit into it's window and +This is a menu that sometimes does not fit into its window and therefore it becomes a scroll menu. You can also see here very nicely the pattern matching functionality @@ -109,7 +109,7 @@ With the Keys "O-Row" or "O-Col" (they occupy the same label and switch on selection) you can change the major order scheme for the menu. If "O-Col" is visible, the menu is currently major ordered by rows, you can switch to major column order by pressing -the key. If "O-Row" is visible, it's just the reverse situation. +the key. If "O-Row" is visible, it is just the reverse situation. This Key is not visible in "4x1" layout mode, because in this case the functionality makes no sense. @@ -160,7 +160,7 @@ In this demo you may use this keys: You may click the mouse buttons at any location at the screen and look at the protocol window ! #MOUSE00 -A rather simple use of a mouse as demo. It's there just to test the +A rather simple use of a mouse as demo. It is there just to test the code and to provide the sample source. It might be of interest, that the output into the protocol window is @@ -169,7 +169,7 @@ the button and state names is done by Ads's enumeration IO, which allows you to print the names of enumeration literals. That's really nice. #MOUSE-PAD00 -This is a very simple demo of the mouse features of ncurses. It's there +This is a very simple demo of the mouse features of ncurses. It is there just to test whether or not the generated code for the binding really works on the different architectures (seems so). #ATTRIBDEMO diff --git a/Ada95/samples/ncurses2-demo_forms.adb b/Ada95/samples/ncurses2-demo_forms.adb index 5c86af79..b2d72ba4 100644 --- a/Ada95/samples/ncurses2-demo_forms.adb +++ b/Ada95/samples/ncurses2-demo_forms.adb @@ -7,7 +7,7 @@ -- B O D Y -- -- -- ------------------------------------------------------------------------------ --- Copyright 2020 Thomas E. Dickey -- +-- Copyright 2020,2021 Thomas E. Dickey -- -- Copyright 2000-2011,2014 Free Software Foundation, Inc. -- -- -- -- Permission is hereby granted, free of charge, to any person obtaining a -- @@ -36,8 +36,8 @@ ------------------------------------------------------------------------------ -- Author: Eugene V. Melaragno 2000 -- Version Control --- $Revision: 1.8 $ --- $Date: 2020/02/02 23:34:34 $ +-- $Revision: 1.9 $ +-- $Date: 2021/09/04 10:52:55 $ -- Binding Version 01.00 ------------------------------------------------------------------------------ with ncurses2.util; use ncurses2.util; @@ -381,7 +381,7 @@ procedure ncurses2.demo_forms is Set_KeyPad_Mode (w, True); end if; - -- TODO if Post(f) /= Form_Ok then it's a procedure + -- TODO if Post(f) /= Form_Ok then it is a procedure declare begin Post (f); diff --git a/Ada95/samples/ncurses2-overlap_test.adb b/Ada95/samples/ncurses2-overlap_test.adb index 11a2d0be..c0fd6209 100644 --- a/Ada95/samples/ncurses2-overlap_test.adb +++ b/Ada95/samples/ncurses2-overlap_test.adb @@ -7,7 +7,7 @@ -- B O D Y -- -- -- ------------------------------------------------------------------------------ --- Copyright 2020 Thomas E. Dickey -- +-- Copyright 2020,2021 Thomas E. Dickey -- -- Copyright 2000-2014,2015 Free Software Foundation, Inc. -- -- -- -- Permission is hereby granted, free of charge, to any person obtaining a -- @@ -36,8 +36,8 @@ ------------------------------------------------------------------------------ -- Author: Eugene V. Melaragno 2000 -- Version Control --- $Revision: 1.8 $ --- $Date: 2020/02/02 23:34:34 $ +-- $Revision: 1.9 $ +-- $Date: 2021/09/04 10:52:55 $ -- Binding Version 01.00 ------------------------------------------------------------------------------ with ncurses2.util; use ncurses2.util; @@ -130,9 +130,9 @@ begin Refresh_Without_Update (win2); Refresh_Without_Update (win1); Update_Screen; - when 'c' => -- fill window A so it's visible + when 'c' => -- fill window A so it is visible fillwin (win1, 'A'); - when 'd' => -- fill window B so it's visible + when 'd' => -- fill window B so it is visible fillwin (win2, 'B'); when 'e' => -- cross test pattern in window A crosswin (win1, 'A'); diff --git a/INSTALL b/INSTALL index bef656cb..c265dc08 100644 --- a/INSTALL +++ b/INSTALL @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: INSTALL,v 1.232 2021/07/17 16:30:27 tom Exp $ +-- $Id: INSTALL,v 1.233 2021/09/01 23:29:12 tom Exp $ --------------------------------------------------------------------- How to install Ncurses/Terminfo on your system --------------------------------------------------------------------- @@ -2167,7 +2167,7 @@ FOR SYSTEM INTEGRATORS: Please pick a name unique to your console driver and set that up in the /etc/inittab table or local equivalent. Send the entry to the terminfo maintainer (listed in the misc/terminfo file) to be included - in the terminfo file, if it's not already there. See the + in the terminfo file, if it is not already there. See the term(7) manual page included with this distribution for more on conventions for choosing type names. diff --git a/NEWS b/NEWS index 340df56c..053ba571 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.3700 2021/08/28 22:32:19 tom Exp $ +-- $Id: NEWS,v 1.3704 2021/09/05 00:58:12 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,17 @@ 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. +20210904 + + modify linux3.0 entry to reflect default mapping of shift-tab by + kbd 1.14 (report by Jan Engelhardt) -TD + + add historical note to tput, curses-terminfo and curses-color + manpages based on source-code for SVr2, SVr3 and SVr4. + + minor grammatical fixes for "it's" vs "its" (report by Nick Black). + + amend fix for --disable-root-environ (report by Arnav Singh). + + build-fix for compiling link_test + + drop symbols GCC_PRINTF and GCC_SCANF from curses.h.in, to simplify + use (Debian #993179). + 20210828 + correct reversed check for --disable-root-environ (report/analysis by Arnav Singh, cf: 20210626). diff --git a/VERSION b/VERSION index 76298fe1..b4c73e20 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.2 20210828 +5:0:10 6.2 20210904 diff --git a/aclocal.m4 b/aclocal.m4 index 5f0b7a9e..c78c1383 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.974 2021/08/28 20:24:23 tom Exp $ +dnl $Id: aclocal.m4,v 1.975 2021/09/04 10:36:30 tom Exp $ dnl Macros used in NCURSES auto-configuration script. dnl dnl These macros are maintained separately from NCURSES. The copyright on @@ -264,9 +264,9 @@ CXXFLAGS="$CFLAGS" CFLAGS="$cf_save_CXXFLAGS" ])dnl dnl --------------------------------------------------------------------------- -dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42 +dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04 dnl ------------- -dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's +dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it is dnl redundant. We don't normally need to add -I/usr/local/include for gcc, dnl but old versions (and some misinstalled ones) need that. To make things dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to @@ -619,10 +619,10 @@ else AC_MSG_RESULT(no) fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_BOOL_SIZE version: 17 updated: 2020/10/24 19:48:55 +dnl CF_BOOL_SIZE version: 18 updated: 2021/09/04 06:35:04 dnl ------------ dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type). -dnl Don't bother looking for bool.h, since it's been deprecated. +dnl Don't bother looking for bool.h, since it has been deprecated. dnl dnl If the current compiler is C rather than C++, we get the bool definition dnl from . @@ -1108,10 +1108,10 @@ fi CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2])) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CHECK_EXTERN_DATA version: 4 updated: 2015/04/18 08:56:57 +dnl CF_CHECK_EXTERN_DATA version: 5 updated: 2021/09/04 06:35:04 dnl -------------------- dnl Check for existence of external data in the current set of libraries. If -dnl we can modify it, it's real enough. +dnl we can modify it, it is real enough. dnl $1 = the name to check dnl $2 = its type AC_DEFUN([CF_CHECK_EXTERN_DATA], @@ -1879,9 +1879,9 @@ done AC_SUBST(DIRS_TO_MAKE) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57 +dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04 dnl --------------- -dnl You can always use "make -n" to see the actual options, but it's hard to +dnl You can always use "make -n" to see the actual options, but it is hard to dnl pick out/analyze warning messages when the compile-line is long. dnl dnl Sets: @@ -5407,7 +5407,7 @@ AC_SUBST(MAKE_UPPER_TAGS) AC_SUBST(MAKE_LOWER_TAGS) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_MANPAGE_FORMAT version: 14 updated: 2021/01/02 17:09:14 +dnl CF_MANPAGE_FORMAT version: 15 updated: 2021/09/04 06:35:04 dnl ----------------- dnl Option to allow user to override automatic configuration of manpage format. dnl There are several special cases: @@ -5443,7 +5443,7 @@ case "$MANPAGE_FORMAT" in MANPATH="/usr/man:/usr/share/man" fi - # look for the 'date' man-page (it's most likely to be installed!) + # look for the 'date' man-page (it is most likely to be installed!) MANPAGE_FORMAT= cf_preform="no" cf_catonly="yes" @@ -7746,7 +7746,7 @@ AC_MSG_RESULT($cf_cv_sig_atomic_t) test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t,[Define to signal global datatype]) ])dnl dnl --------------------------------------------------------------------------- -dnl CF_SIZECHANGE version: 17 updated: 2021/01/01 13:31:04 +dnl CF_SIZECHANGE version: 18 updated: 2021/09/04 06:35:04 dnl ------------- dnl Check for definitions & structures needed for window size-changing dnl @@ -7777,7 +7777,7 @@ do #ifdef NEED_PTEM_H /* This is a workaround for SCO: they neglected to define struct winsize in - * termios.h -- it's only in termio.h and ptem.h + * termios.h -- it is only in termio.h and ptem.h */ #include #include @@ -9067,7 +9067,7 @@ else fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PATH version: 11 updated: 2012/09/29 15:04:19 +dnl CF_WITH_PATH version: 12 updated: 2021/09/04 06:35:04 dnl ------------ dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just dnl defaulting to yes/no. @@ -9076,7 +9076,7 @@ dnl $1 = option name dnl $2 = help-text dnl $3 = environment variable to set dnl $4 = default value, shown in the help-message, must be a constant -dnl $5 = default value, if it's an expression & cannot be in the help-message +dnl $5 = default value, if it is an expression & cannot be in the help-message dnl AC_DEFUN([CF_WITH_PATH], [AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),, @@ -9088,7 +9088,7 @@ eval $3="$withval" AC_SUBST($3)dnl ])dnl dnl --------------------------------------------------------------------------- -dnl CF_WITH_PATHLIST version: 12 updated: 2021/01/01 13:31:04 +dnl CF_WITH_PATHLIST version: 13 updated: 2021/09/04 06:35:04 dnl ---------------- dnl Process an option specifying a list of colon-separated paths. dnl @@ -9096,7 +9096,7 @@ dnl $1 = option name dnl $2 = help-text dnl $3 = environment variable to set dnl $4 = default value, shown in the help-message, must be a constant -dnl $5 = default value, if it's an expression & cannot be in the help-message +dnl $5 = default value, if it is an expression & cannot be in the help-message dnl $6 = flag to tell if we want to define or substitute dnl AC_DEFUN([CF_WITH_PATHLIST],[ diff --git a/c++/demo.cc b/c++/demo.cc index 6996097b..195e98a0 100644 --- a/c++/demo.cc +++ b/c++/demo.cc @@ -1,6 +1,6 @@ // * This makes emacs happy -*-Mode: C++;-*- /**************************************************************************** - * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 2018-2020,2021 Thomas E. Dickey * * Copyright 1998-2012,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -36,7 +36,7 @@ * Demo code for NCursesMenu and NCursesForm written by * Juergen Pfeifer * - * $Id: demo.cc,v 1.49 2020/09/13 00:47:00 tom Exp $ + * $Id: demo.cc,v 1.50 2021/09/04 10:52:55 tom Exp $ */ #include "internal.h" @@ -104,7 +104,7 @@ class SillyDemo } // A refresh to any valid panel updates all panels and refreshes - // the screen. Using mystd is just convenient - We know it's always + // the screen. Using mystd is just convenient - We know it is always // valid until the end of the program. mystd->refresh(); diff --git a/configure b/configure index 345d2437..4934ba05 100755 --- a/configure +++ b/configure @@ -14520,7 +14520,7 @@ case "$MANPAGE_FORMAT" in MANPATH="/usr/man:/usr/share/man" fi - # look for the 'date' man-page (it's most likely to be installed!) + # look for the 'date' man-page (it is most likely to be installed!) MANPAGE_FORMAT= cf_preform="no" cf_catonly="yes" @@ -22527,7 +22527,7 @@ do #ifdef NEED_PTEM_H /* This is a workaround for SCO: they neglected to define struct winsize in - * termios.h -- it's only in termio.h and ptem.h + * termios.h -- it is only in termio.h and ptem.h */ #include #include diff --git a/dist.mk b/dist.mk index c719b856..66e5ff35 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.1432 2021/08/28 11:20:53 tom Exp $ +# $Id: dist.mk,v 1.1433 2021/09/04 08:31:44 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 = 2 -NCURSES_PATCH = 20210828 +NCURSES_PATCH = 20210904 # 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/Ada95.html b/doc/html/Ada95.html index 7f4e9f90..8154c3e0 100644 --- a/doc/html/Ada95.html +++ b/doc/html/Ada95.html @@ -1,7 +1,7 @@ @@ -439,6 +439,50 @@ o Color RGB values are not settable. +

HISTORY

+       SVr3.2 introduced color support to curses in 1987.
+
+       SVr4 made internal changes, e.g., moving  the  storage  for  the  color
+       state  from  SP (the SCREEN structure) to cur_term (the TERMINAL struc-
+       ture), but provided the same set of library functions.
+
+       SVr4 curses limits the number of color pairs  to  64,  reserving  color
+       pair  zero  (0)  as the terminal's initial uncolored state.  This limit
+       arises because the color pair information is a bitfield in  the  chtype
+       data type (denoted by A_COLOR).
+
+       Other implementations of curses had different limits:
+
+       o   PCCurses (1987-1990) provided for only eight (8) colors.
+
+       o   PDCurses  (1992-present)  inherited the 8-color limitation from PC-
+           Curses, but changed this to 256 in version 2.5 (2001),  along  with
+           changing chtype from 16-bits to 32-bits.
+
+       o   X/Open Curses (1992-present) added a new structure cchar_t to store
+           the character, attributes and color-pair values, allowing increased
+           range  of  color-pairs.   Both  color-pairs and color-values used a
+           signed short, limiting values to 15 bits.
+
+       o   ncurses (1992-present) uses eight bits for A_COLOR in  chtype  val-
+           ues.
+
+           Version  5.3  provided  a wide-character interface (2002), but left
+           color-pairs as part of the attributes-field.
+
+           Since version 6 (2015), ncurses uses a separate int for color-pairs
+           in the cchar_t values.  When those color-pair values fit in 8 bits,
+           ncurses allows color-pairs to be manipulated via the functions  us-
+           ing chtype values.
+
+       o   NetBSD  curses  used  6 bits from 2000 (when colors were first sup-
+           ported) until 2004.  At that point, NetBSD changed to use 10  bits.
+           As of 2021, that size is unchanged.  Like ncurses before version 6,
+           the NetBSD color-pair information is stored in the attributes field
+           of  cchar_t,  limiting the number of color-pairs by the size of the
+           bitfield.
+
+
 

PORTABILITY

        This implementation satisfies XSI Curses's minimum maximums for  COLORS
        and COLOR_PAIRS.
@@ -511,6 +555,7 @@
 
 
  • RETURN VALUE
  • NOTES
  • +
  • HISTORY
  • PORTABILITY
  • SEE ALSO
  • diff --git a/doc/html/man/curs_terminfo.3x.html b/doc/html/man/curs_terminfo.3x.html index b54484cb..11c211d9 100644 --- a/doc/html/man/curs_terminfo.3x.html +++ b/doc/html/man/curs_terminfo.3x.html @@ -27,7 +27,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: curs_terminfo.3x,v 1.75 2021/06/17 21:11:08 tom Exp @ + * @Id: curs_terminfo.3x,v 1.76 2021/09/04 19:58:03 tom Exp @ * *************************************************************************** * *************************************************************************** * *************************************************************************** @@ -461,8 +461,15 @@ ters supported by tgoto). SVr3 introduced the functions for switching between terminal descrip- - tions, e.g., set_curterm. The various global variables such as bool- - names were mentioned in the programming manual at this point. + tions, e.g., set_curterm. Some of that was incremental improvements to + the SVr2 library: + + o The TERMINAL type definition was introduced in SVr3.01, for the + term structure provided in SVr2. + + o The various global variables such as boolnames were mentioned in + the programming manual at this point, though the variables were + provided in SVr2. SVr4 added the vid_attr and vid_puts functions. @@ -476,15 +483,15 @@

    Legacy functions

            X/Open notes that vidattr and vidputs may be macros.
     
    -       The  function setterm is not described by X/Open and must be considered
    +       The function setterm is not described by X/Open and must be  considered
            non-portable.  All other functions are as described by X/Open.
     
     
     

    Legacy data

    -       setupterm copies the terminal name to the array ttytype.  This  is  not
    +       setupterm  copies  the terminal name to the array ttytype.  This is not
            part of X/Open Curses, but is assumed by some applications.
     
    -       Other  implementions  may not declare the capability name arrays.  Some
    +       Other implementions may not declare the capability name  arrays.   Some
            provide them without declaring them.  X/Open does not specify them.
     
            Extended terminal capability names, e.g., as defined by tic -x, are not
    @@ -492,14 +499,14 @@
     
     
     

    Output buffering

    -       Older  versions  of  ncurses assumed that the file descriptor passed to
    +       Older versions of ncurses assumed that the file  descriptor  passed  to
            setupterm from initscr or newterm uses buffered I/O, and would write to
    -       the  corresponding stream.  In addition to the limitation that the ter-
    -       minal was left in block-buffered mode on exit (like System  V  curses),
    -       it  was  problematic  because  ncurses  did not allow a reliable way to
    +       the corresponding stream.  In addition to the limitation that the  ter-
    +       minal  was  left in block-buffered mode on exit (like System V curses),
    +       it was problematic because ncurses did not  allow  a  reliable  way  to
            cleanup on receiving SIGTSTP.
     
    -       The current version (ncurses6) uses output buffers managed directly  by
    +       The  current version (ncurses6) uses output buffers managed directly by
            ncurses.  Some of the low-level functions described in this manual page
            write to the standard output.  They are not signal-safe.  The high-lev-
            el functions in ncurses use alternate versions of these functions using
    @@ -508,69 +515,69 @@
     
     

    Function prototypes

            The X/Open Curses prototypes are based on the SVr4 curses header decla-
    -       rations,  which  were defined at the same time the C language was first
    +       rations, which were defined at the same time the C language  was  first
            standardized in the late 1980s.
     
    -       o   X/Open Curses uses const  less  effectively  than  a  later  design
    -           might,  in  some cases applying it needlessly to values are already
    -           constant, and in most cases overlooking parameters  which  normally
    -           would  use const.  Using constant parameters for functions which do
    +       o   X/Open  Curses  uses  const  less  effectively  than a later design
    +           might, in some cases applying it needlessly to values  are  already
    +           constant,  and  in most cases overlooking parameters which normally
    +           would use const.  Using constant parameters for functions which  do
                not use const may prevent the program from compiling.  On the other
                hand, writable strings are an obsolescent feature.
     
    -           As  an  extension,  this implementation can be configured to change
    -           the function prototypes to use the const keyword.  The ncurses  ABI
    +           As an extension, this implementation can be  configured  to  change
    +           the  function prototypes to use the const keyword.  The ncurses ABI
                6 enables this feature by default.
     
    -       o   X/Open  Curses  prototypes tparm with a fixed number of parameters,
    +       o   X/Open Curses prototypes tparm with a fixed number  of  parameters,
                rather than a variable argument list.
     
    -           This implementation uses a variable argument list, but can be  con-
    -           figured  to  use  the  fixed-parameter list.  Portable applications
    -           should provide 9 parameters after the format; zeroes are  fine  for
    +           This  implementation uses a variable argument list, but can be con-
    +           figured to use the  fixed-parameter  list.   Portable  applications
    +           should  provide  9 parameters after the format; zeroes are fine for
                this purpose.
     
    -           In  response  to review comments by Thomas E. Dickey, X/Open Curses
    +           In response to review comments by Thomas E. Dickey,  X/Open  Curses
                Issue 7 proposed the tiparm function in mid-2009.
     
     
     

    Special TERM treatment

            If configured to use the terminal-driver, e.g., for the MinGW port,
     
    -       o   setupterm interprets a missing/empty TERM variable as  the  special
    +       o   setupterm  interprets  a missing/empty TERM variable as the special
                value "unknown".
     
    -       o   setupterm  allows explicit use of the the windows console driver by
    -           checking if $TERM is set to "#win32con" or an abbreviation of  that
    +       o   setupterm allows explicit use of the the windows console driver  by
    +           checking  if $TERM is set to "#win32con" or an abbreviation of that
                string.
     
     
     

    Other portability issues

    -       In  System  V Release 4, set_curterm has an int return type and returns
    +       In System V Release 4, set_curterm has an int return type  and  returns
            OK or ERR.  We have chosen to implement the X/Open Curses semantics.
     
    -       In System V Release 4, the third argument of tputs  has  the  type  int
    +       In  System  V  Release  4, the third argument of tputs has the type int
            (*putc)(char).
     
    -       At  least one implementation of X/Open Curses (Solaris) returns a value
    -       other than OK/ERR from tputs.  That returns the length of  the  string,
    +       At least one implementation of X/Open Curses (Solaris) returns a  value
    +       other  than  OK/ERR from tputs.  That returns the length of the string,
            and does no error-checking.
     
    -       X/Open  notes  that after calling mvcur, the curses state may not match
    +       X/Open notes that after calling mvcur, the curses state may  not  match
            the actual terminal state, and that an application should touch and re-
            fresh the window before resuming normal curses calls.  Both ncurses and
    -       System V Release 4 curses implement mvcur using the SCREEN  data  allo-
    -       cated  in  either  initscr or newterm.  So though it is documented as a
    -       terminfo function, mvcur is really a curses function which is not  well
    +       System  V  Release 4 curses implement mvcur using the SCREEN data allo-
    +       cated in either initscr or newterm.  So though it is  documented  as  a
    +       terminfo  function, mvcur is really a curses function which is not well
            specified.
     
    -       X/Open  states that the old location must be given for mvcur.  This im-
    -       plementation allows the caller to use -1's for the old  ordinates.   In
    +       X/Open states that the old location must be given for mvcur.  This  im-
    +       plementation  allows  the caller to use -1's for the old ordinates.  In
            that case, the old location is unknown.
     
     
     

    SEE ALSO

    -       curses(3x),    curs_initscr(3x),   curs_kernel(3x),   curs_termcap(3x),
    +       curses(3x),   curs_initscr(3x),   curs_kernel(3x),    curs_termcap(3x),
            curs_variables(3x), term_variables(3x), putc(3), terminfo(5)
     
     
    diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
    index 839874f3..71187338 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.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     
    diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
    index c6963e2c..3ea177c4 100644
    --- a/doc/html/man/infocmp.1m.html
    +++ b/doc/html/man/infocmp.1m.html
    @@ -514,7 +514,7 @@
     
            https://invisible-island.net/ncurses/tctest.html
     
    -       This describes ncurses version 6.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     

    AUTHOR

    diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
    index 3cef10ba..fcfc4a68 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.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     

    AUTHOR

    diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
    index 8457dc57..43d05693 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.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     
    diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
    index d034a9bd..208269fd 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.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
            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 8fcafe00..0ccec263 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.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     
    diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
    index bf97ff8d..68c333d2 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.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     

    AUTHOR

    diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
    index 26d9678a..fe7bea60 100644
    --- a/doc/html/man/tabs.1.html
    +++ b/doc/html/man/tabs.1.html
    @@ -207,7 +207,7 @@
     

    SEE ALSO

            infocmp(1m), tset(1), curses(3x), terminfo(5).
     
    -       This describes ncurses version 6.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     
    diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
    index 82381c9d..27fb326a 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.2 (patch 20210828).
    +       This manual describes ncurses version 6.2 (patch 20210904).
     
     
     

    Terminfo Entry Syntax

    diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
    index ad48e0d5..608cf0f0 100644
    --- a/doc/html/man/tic.1m.html
    +++ b/doc/html/man/tic.1m.html
    @@ -461,7 +461,7 @@
            captoinfo(1m),   infocmp(1m),   infotocap(1m),   toe(1m),   curses(3x),
            term(5).  terminfo(5).  user_caps(5).
     
    -       This describes ncurses version 6.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     

    AUTHOR

    diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
    index 588e233e..bb79ece5 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.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     
    diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
    index 437568a2..504a66e4 100644
    --- a/doc/html/man/tput.1.html
    +++ b/doc/html/man/tput.1.html
    @@ -28,7 +28,7 @@
       * sale, use or other dealings in this Software without prior written       *
       * authorization.                                                           *
       ****************************************************************************
    -  * @Id: tput.1,v 1.67 2021/06/17 21:11:08 tom Exp @
    +  * @Id: tput.1,v 1.70 2021/09/04 19:02:50 tom Exp @
     -->
     
     
    @@ -387,51 +387,62 @@
            The  tput  command  was begun by Bill Joy in 1980.  The initial version
            only cleared the screen.
     
    -       AT&T System V provided a different tput command, whose init  and  reset
    -       subcommands  (more  than  half  the program) were incorporated from the
    -       reset feature of BSD tset written by Eric Allman.
    +       AT&T System V provided a different tput command:
     
    -       Keith Bostic  replaced  the  BSD  tput  command  in  1989  with  a  new
    -       implementation  based on the AT&T System V program tput.  Like the AT&T
    -       program, Bostic's version accepted some parameters named  for  terminfo
    -       capabilities  (clear,  init,  longname and reset).  However (because he
    -       had only termcap  available),  it  accepted  termcap  names  for  other
    -       capabilities.   Also, Bostic's BSD tput did not modify the terminal I/O
    +       o   SVr2 provided  a  rudimentary  tput  which  checked  the  parameter
    +           against  each  predefined capability and returned the corresponding
    +           value.  This  version  of  tput  did  not  use  tparm(3x)  for  the
    +           capabilities which are parameterized.
    +
    +       o   SVr3 replaced that, a year later, by a more extensive program whose
    +           init and reset  subcommands  (more  than  half  the  program)  were
    +           incorporated  from  the  reset  feature of BSD tset written by Eric
    +           Allman.
    +
    +       o   SVr4  added  color  initialization  using   the   orig_colors   and
    +           orig_pairs capabilities in the init subcommand.
    +
    +       Keith  Bostic  replaced  the  BSD  tput  command  in  1989  with  a new
    +       implementation based on the AT&T System V program tput.  Like the  AT&T
    +       program,  Bostic's  version accepted some parameters named for terminfo
    +       capabilities (clear, init, longname and reset).   However  (because  he
    +       had  only  termcap  available),  it  accepted  termcap  names for other
    +       capabilities.  Also, Bostic's BSD tput did not modify the terminal  I/O
            modes as the earlier BSD tset had done.
     
            At the same time, Bostic added a shell script named "clear", which used
            tput to clear the screen.
     
    -       Both   of   these   appeared  in  4.4BSD,  becoming  the  "modern"  BSD
    +       Both  of  these  appeared  in  4.4BSD,  becoming   the   "modern"   BSD
            implementation of tput.
     
    -       This implementation of tput began from a different source than AT&T  or
    -       BSD:  Ross  Ridge's  mytinfo package, published on comp.sources.unix in
    -       December 1992.  Ridge's program made  more  sophisticated  use  of  the
    -       terminal  capabilities  than  the  BSD program.  Eric Raymond used that
    -       tput program (and other parts of mytinfo)  in  ncurses  in  June  1995.
    -       Using  the  portions  dealing with terminal capabilities almost without
    -       change,  Raymond  made  improvements  to  the  way   the   command-line
    +       This  implementation of tput began from a different source than AT&T or
    +       BSD: Ross Ridge's mytinfo package, published  on  comp.sources.unix  in
    +       December  1992.   Ridge's  program  made  more sophisticated use of the
    +       terminal capabilities than the BSD program.   Eric  Raymond  used  that
    +       tput  program  (and  other  parts  of mytinfo) in ncurses in June 1995.
    +       Using the portions dealing with terminal  capabilities  almost  without
    +       change,   Raymond   made  improvements  to  the  way  the  command-line
            parameters were handled.
     
     
     

    PORTABILITY

    -       This  implementation  of  tput  differs from AT&T tput in two important
    +       This implementation of tput differs from AT&T  tput  in  two  important
            areas:
     
    -       o   tput capname writes to the standard output.  That  need  not  be  a
    -           regular   terminal.   However,  the  subcommands  which  manipulate
    +       o   tput  capname  writes  to  the standard output.  That need not be a
    +           regular  terminal.   However,  the  subcommands  which   manipulate
                terminal modes may not use the standard output.
     
    -           The AT&T implementation's init  and  reset  commands  use  the  BSD
    -           (4.1c)   tset   source,   which  manipulates  terminal  modes.   It
    -           successively tries standard output, standard error, standard  input
    +           The  AT&T  implementation's  init  and  reset  commands use the BSD
    +           (4.1c)  tset  source,  which  manipulates   terminal   modes.    It
    +           successively  tries standard output, standard error, standard input
                before falling back to "/dev/tty" and finally just assumes a 1200Bd
                terminal.  When updating terminal modes, it ignores errors.
     
    -           Until changes made after ncurses 6.0, tput did not modify  terminal
    +           Until  changes made after ncurses 6.0, tput did not modify terminal
                modes.  tput now uses a similar scheme, using functions shared with
    -           tset (and ultimately based on the 4.4BSD tset).  If it is not  able
    +           tset  (and ultimately based on the 4.4BSD tset).  If it is not able
                to open a terminal, e.g., when running in cron, tput will return an
                error.
     
    @@ -439,84 +450,84 @@
                of the characters are numeric, or not.
     
                Most implementations which provide support for capname operands use
    -           the tparm function to  expand  parameters  in  it.   That  function
    -           expects  a mixture of numeric and string parameters, requiring tput
    +           the  tparm  function  to  expand  parameters  in it.  That function
    +           expects a mixture of numeric and string parameters, requiring  tput
                to know which type to use.
     
    -           This implementation uses a table to determine the  parameter  types
    +           This  implementation  uses a table to determine the parameter types
                for the standard capname operands, and an internal library function
                to analyze nonstandard capname operands.
     
            This  implementation  (unlike  others)  can  accept  both  termcap  and
    -       terminfo  names for the capname feature, if termcap support is compiled
    -       in.  However, the  predefined  termcap  and  terminfo  names  have  two
    +       terminfo names for the capname feature, if termcap support is  compiled
    +       in.   However,  the  predefined  termcap  and  terminfo  names have two
            ambiguities in this case (and the terminfo name is assumed):
     
    -       o   The  termcap  name  dl corresponds to the terminfo name dl1 (delete
    +       o   The termcap name dl corresponds to the terminfo  name  dl1  (delete
                one line).
    -           The terminfo name dl corresponds to the termcap name DL  (delete  a
    +           The  terminfo  name dl corresponds to the termcap name DL (delete a
                given number of lines).
     
    -       o   The  termcap  name  ed  corresponds  to the terminfo name rmdc (end
    +       o   The termcap name ed corresponds to  the  terminfo  name  rmdc  (end
                delete mode).
    -           The terminfo name ed corresponds to the termcap name cd  (clear  to
    +           The  terminfo  name ed corresponds to the termcap name cd (clear to
                end of screen).
     
    -       The  longname  and  -S options, and the parameter-substitution features
    -       used in the cup example,  were  not  supported  in  BSD  curses  before
    +       The longname and -S options, and  the  parameter-substitution  features
    +       used  in  the  cup  example,  were  not  supported in BSD curses before
            4.3reno (1989) or in AT&T/USL curses before SVr4 (1988).
     
    -       IEEE   Std   1003.1/The   Open   Group   Base  Specifications  Issue  7
    -       (POSIX.1-2008) documents only the operands for clear, init  and  reset.
    +       IEEE  Std  1003.1/The  Open  Group    Base   Specifications   Issue   7
    +       (POSIX.1-2008)  documents  only the operands for clear, init and reset.
            There are a few interesting observations to make regarding that:
     
    -       o   In  this implementation, clear is part of the capname support.  The
    -           others  (init  and  longname)  do  not   correspond   to   terminal
    +       o   In this implementation, clear is part of the capname support.   The
    +           others   (init   and   longname)  do  not  correspond  to  terminal
                capabilities.
     
            o   Other  implementations  of  tput  on  SVr4-based  systems  such  as
    -           Solaris, IRIX64 and HPUX as well as others such as  AIX  and  Tru64
    +           Solaris,  IRIX64  and  HPUX as well as others such as AIX and Tru64
                provide support for capname operands.
     
            o   A few platforms such as FreeBSD recognize termcap names rather than
                terminfo capability names in their respective tput commands.  Since
    -           2010,  NetBSD's  tput  uses  terminfo names.  Before that, it (like
    +           2010, NetBSD's tput uses terminfo names.   Before  that,  it  (like
                FreeBSD) recognized termcap names.
     
    -           Beginning in 2021, FreeBSD uses the ncurses  tput,  configured  for
    +           Beginning  in  2021,  FreeBSD uses the ncurses tput, configured for
                both terminfo (tested first) and termcap (as a fallback).
     
            Because (apparently) all of the certified Unix systems support the full
    -       set of capability names, the reasoning for documenting only a  few  may
    +       set  of  capability names, the reasoning for documenting only a few may
            not be apparent.
     
    -       o   X/Open  Curses Issue 7 documents tput differently, with capname and
    +       o   X/Open Curses Issue 7 documents tput differently, with capname  and
                the other features used in this implementation.
     
    -       o   That is, there are two standards for tput:  POSIX  (a  subset)  and
    -           X/Open  Curses (the full implementation).  POSIX documents a subset
    -           to avoid the  complication  of  including  X/Open  Curses  and  the
    +       o   That  is,  there  are  two standards for tput: POSIX (a subset) and
    +           X/Open Curses (the full implementation).  POSIX documents a  subset
    +           to  avoid  the  complication  of  including  X/Open  Curses and the
                terminal capabilities database.
     
    -       o   While  it  is  certainly  possible  to write a tput program without
    -           using  curses,  none  of  the   systems   which   have   a   curses
    -           implementation  provide  a  tput utility which does not provide the
    +       o   While it is certainly possible to  write  a  tput  program  without
    +           using   curses,   none   of   the   systems  which  have  a  curses
    +           implementation provide a tput utility which does  not  provide  the
                capname feature.
     
            X/Open  Curses  Issue  7  (2009)  is  the  first  version  to  document
            utilities.  However that part of X/Open Curses does not follow existing
            practice (i.e., Unix features documented in SVID 3):
     
    -       o   It assigns exit code 4 to "invalid operand", which may be the  same
    -           as  unknown capability.  For instance, the source code for Solaris'
    +       o   It  assigns exit code 4 to "invalid operand", which may be the same
    +           as unknown capability.  For instance, the source code for  Solaris'
                xcurses uses the term "invalid" in this case.
     
    -       o   It assigns exit  code  255  to  a  numeric  variable  that  is  not
    +       o   It  assigns  exit  code  255  to  a  numeric  variable  that is not
                specified in the terminfo database.  That likely is a documentation
    -           error, confusing the -1 written  to  the  standard  output  for  an
    +           error,  confusing  the  -1  written  to  the standard output for an
                absent or cancelled numeric value versus an (unsigned) exit code.
     
    -       The  various  Unix systems (AIX, HPUX, Solaris) use the same exit-codes
    +       The various Unix systems (AIX, HPUX, Solaris) use the  same  exit-codes
            as ncurses.
     
            NetBSD curses documents different exit codes which do not correspond to
    @@ -526,7 +537,7 @@
     

    SEE ALSO

            clear(1), stty(1), tabs(1), tset(1), curs_termcap(3x), terminfo(5).
     
    -       This describes ncurses version 6.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     
    diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
    index 117d8053..4d3d0338 100644
    --- a/doc/html/man/tset.1.html
    +++ b/doc/html/man/tset.1.html
    @@ -385,7 +385,7 @@
            csh(1),   sh(1),   stty(1),   curs_terminfo(3x),  tty(4),  terminfo(5),
            ttys(5), environ(7)
     
    -       This describes ncurses version 6.2 (patch 20210828).
    +       This describes ncurses version 6.2 (patch 20210904).
     
     
     
    diff --git a/form/frm_driver.c b/form/frm_driver.c
    index 2e7b7b92..75656d69 100644
    --- a/form/frm_driver.c
    +++ b/form/frm_driver.c
    @@ -33,7 +33,7 @@
     
     #include "form.priv.h"
     
    -MODULE_ID("$Id: frm_driver.c,v 1.134 2021/03/27 23:49:58 tom Exp $")
    +MODULE_ID("$Id: frm_driver.c,v 1.135 2021/09/01 23:34:01 tom Exp $")
     
     /*----------------------------------------------------------------------------
       This is the core module of the form library. It contains the majority
    @@ -3556,7 +3556,7 @@ Upper_Neighbor_Field(FIELD *field)
     |   Function      :  static FIELD *Down_Neighbor_Field(FIELD * field)
     |
     |   Description   :  Because of the row-major nature of sorting the fields,
    -|                    it's more difficult to define what the down neighbor
    +|                    it is more difficult to define what the down neighbor
     |                    field really means. We define that it must be on a
     |                    'next' line (cyclic order!) and is the leftmost
     |                    field laying on the right side of the given field. If
    diff --git a/include/Caps b/include/Caps
    index 4528cffb..e848d34a 100644
    --- a/include/Caps
    +++ b/include/Caps
    @@ -1,5 +1,5 @@
     ##############################################################################
    -# Copyright 2019,2020 Thomas E. Dickey                                       #
    +# Copyright 2019-2020,2021 Thomas E. Dickey                                  #
     # Copyright 1998-2015,2016 Free Software Foundation, Inc.                    #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -30,7 +30,7 @@
     # Author: Zeyd M. Ben-Halim  1992,1995
     #    and: Eric S. Raymond 
     #
    -# $Id: Caps,v 1.46 2020/10/17 21:30:19 tom Exp $
    +# $Id: Caps,v 1.47 2021/09/04 10:52:55 tom Exp $
     #
     # This is the master termcap/terminfo capability table.
     #
    @@ -58,7 +58,7 @@
     #
     # The codes following [Y-] in column 7 describe the versions of termcap which
     # use the given capability.  This information is not used by the curses library
    -# proper; rather, it's there to help the terminfo maintainer avoid emitting
    +# proper; rather, it is there to help the terminfo maintainer avoid emitting
     # termcap entry translations that are more than 1023 bytes long (and tank a
     # lot of old termcap-using programs).  The codes read as follows:
     #	B = mentioned in the BSD man page for 4.4BSD curses
    @@ -98,8 +98,8 @@
     # 3. List it in the standard table.  You almost certainly do *not* want
     # to do this -- the capabilities in that one, and their order, have been
     # carefully chosen to be SVr4-binary-compatible when they're written out
    -# as a terminfo object, and breaking this would be bad.  It's up to the ncurses
    -# library what to do with the terminfo data after it's read in.
    +# as a terminfo object, and breaking this would be bad.  It is up to the ncurses
    +# library what to do with the terminfo data after it is read in.
     #
     # 4. List it in the aliases table with an IGNORE target field.  If you
     # do this, the capability will be ignored on input (though the user will
    @@ -108,7 +108,7 @@
     # 5. List it in the extensions table. If you do this, the compiler will
     # silently accept the capability, but the curses library proper will never
     # see it (because it won't be written out as part of the terminfo object
    -# format).  It's up to you what you have the compiler do with it.
    +# format).  It is up to you what you have the compiler do with it.
     #
     # There are two opposite reasons to choose option 5.  One is when you want
     # to eat the capability silently and discard it when doing translations
    @@ -883,7 +883,7 @@ has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
     return_does_clr_eol		OTxr	bool	xr	-		-	YB---	return clears the line
     # tek_4025_insert_line		OTxx	bool	xx	-		-	-BC--	Tektronix 4025 insert-line glitch
     #
    -# mytinfo described this as a termcap capability, but it's not listed in the
    +# mytinfo described this as a termcap capability, but it is not listed in the
     # 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
     # package, like System V, behaves as though it is always true.
     #
    diff --git a/include/Caps.aix4 b/include/Caps.aix4
    index a27f2699..e939f9da 100644
    --- a/include/Caps.aix4
    +++ b/include/Caps.aix4
    @@ -1,5 +1,5 @@
     ##############################################################################
    -# Copyright 2019,2020 Thomas E. Dickey                                       #
    +# Copyright 2019-2020,2021 Thomas E. Dickey                                  #
     # Copyright 2001-2015,2016 Free Software Foundation, Inc.                    #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -29,7 +29,7 @@
     #
     # Author: Thomas Dickey
     #
    -# $Id: Caps.aix4,v 1.18 2020/10/17 21:30:19 tom Exp $
    +# $Id: Caps.aix4,v 1.19 2021/09/04 10:52:55 tom Exp $
     #
     # This is an adaptation of ncurses' termcap/terminfo capability table, which
     # is designed to align with AIX 4.x's terminfo.
    @@ -58,7 +58,7 @@
     #
     # The codes following [Y-] in column 7 describe the versions of termcap which
     # use the given capability.  This information is not used by the curses library
    -# proper; rather, it's there to help the terminfo maintainer avoid emitting
    +# proper; rather, it is there to help the terminfo maintainer avoid emitting
     # termcap entry translations that are more than 1023 bytes long (and tank a
     # lot of old termcap-using programs).  The codes read as follows:
     #	B = mentioned in the BSD man page for 4.4BSD curses
    @@ -98,8 +98,8 @@
     # 3. List it in the standard table.  You almost certainly do *not* want
     # to do this -- the capabilities in that one, and their order, have been
     # carefully chosen to be SVr4-binary-compatible when they're written out
    -# as a terminfo object, and breaking this would be bad.  It's up to the ncurses
    -# library what to do with the terminfo data after it's read in.
    +# as a terminfo object, and breaking this would be bad.  It is up to the ncurses
    +# library what to do with the terminfo data after it is read in.
     #
     # 4. List it in the aliases table with an IGNORE target field.  If you
     # do this, the capability will be ignored on input (though the user will
    @@ -108,7 +108,7 @@
     # 5. List it in the extensions table. If you do this, the compiler will
     # silently accept the capability, but the curses library proper will never
     # see it (because it won't be written out as part of the terminfo object
    -# format).  It's up to you what you have the compiler do with it.
    +# format).  It is up to you what you have the compiler do with it.
     #
     # There are two opposite reasons to choose option 5.  One is when you want
     # to eat the capability silently and discard it when doing translations
    @@ -985,7 +985,7 @@ has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
     return_does_clr_eol		OTxr	bool	xr	-		-	YB---	return clears the line
     # tek_4025_insert_line		OTxx	bool	xx	-		-	-BC--	Tektronix 4025 insert-line glitch
     #
    -# mytinfo described this as a termcap capability, but it's not listed in the
    +# mytinfo described this as a termcap capability, but it is not listed in the
     # 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
     # package, like System V, behaves as though it is always true.
     #
    diff --git a/include/Caps.hpux11 b/include/Caps.hpux11
    index 712a7429..3aae4dd9 100644
    --- a/include/Caps.hpux11
    +++ b/include/Caps.hpux11
    @@ -1,5 +1,5 @@
     ##############################################################################
    -# Copyright 2019,2020 Thomas E. Dickey                                       #
    +# Copyright 2019-2020,2021 Thomas E. Dickey                                  #
     # Copyright 2002-2015,2016 Free Software Foundation, Inc.                    #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -29,7 +29,7 @@
     #
     # Author: Thomas Dickey
     #
    -# $Id: Caps.hpux11,v 1.16 2020/10/17 21:30:19 tom Exp $
    +# $Id: Caps.hpux11,v 1.17 2021/09/04 10:52:55 tom Exp $
     #
     # This is an adaptation of ncurses' termcap/terminfo capability table, which
     # is designed to align with HPUX 11.x's terminfo.
    @@ -58,7 +58,7 @@
     #
     # The codes following [Y-] in column 7 describe the versions of termcap which
     # use the given capability.  This information is not used by the curses library
    -# proper; rather, it's there to help the terminfo maintainer avoid emitting
    +# proper; rather, it is there to help the terminfo maintainer avoid emitting
     # termcap entry translations that are more than 1023 bytes long (and tank a
     # lot of old termcap-using programs).  The codes read as follows:
     #	B = mentioned in the BSD man page for 4.4BSD curses
    @@ -98,8 +98,8 @@
     # 3. List it in the standard table.  You almost certainly do *not* want
     # to do this -- the capabilities in that one, and their order, have been
     # carefully chosen to be SVr4-binary-compatible when they're written out
    -# as a terminfo object, and breaking this would be bad.  It's up to the ncurses
    -# library what to do with the terminfo data after it's read in.
    +# as a terminfo object, and breaking this would be bad.  It is up to the ncurses
    +# library what to do with the terminfo data after it is read in.
     #
     # 4. List it in the aliases table with an IGNORE target field.  If you
     # do this, the capability will be ignored on input (though the user will
    @@ -108,7 +108,7 @@
     # 5. List it in the extensions table. If you do this, the compiler will
     # silently accept the capability, but the curses library proper will never
     # see it (because it won't be written out as part of the terminfo object
    -# format).  It's up to you what you have the compiler do with it.
    +# format).  It is up to you what you have the compiler do with it.
     #
     # There are two opposite reasons to choose option 5.  One is when you want
     # to eat the capability silently and discard it when doing translations
    @@ -899,7 +899,7 @@ has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
     return_does_clr_eol		OTxr	bool	xr	-		-	YB---	return clears the line
     # tek_4025_insert_line		OTxx	bool	xx	-		-	-BC--	Tektronix 4025 insert-line glitch
     #
    -# mytinfo described this as a termcap capability, but it's not listed in the
    +# mytinfo described this as a termcap capability, but it is not listed in the
     # 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
     # package, like System V, behaves as though it is always true.
     #
    diff --git a/include/Caps.keys b/include/Caps.keys
    index 018f6847..fb88c94c 100644
    --- a/include/Caps.keys
    +++ b/include/Caps.keys
    @@ -1,5 +1,5 @@
     ##############################################################################
    -# Copyright 2019,2020 Thomas E. Dickey                                       #
    +# Copyright 2019-2020,2021 Thomas E. Dickey                                  #
     # Copyright 2001-2015,2016 Free Software Foundation, Inc.                    #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -30,7 +30,7 @@
     # Author: Thomas Dickey
     #    and: Ilya Zakharevich
     #
    -# $Id: Caps.keys,v 1.15 2020/10/17 21:30:19 tom Exp $
    +# $Id: Caps.keys,v 1.16 2021/09/04 10:52:55 tom Exp $
     #
     # This is an adaptation of ncurses' termcap/terminfo capability table, which
     # is illustrates an experimental extension to describe alt-, shift- and
    @@ -60,7 +60,7 @@
     #
     # The codes following [Y-] in column 7 describe the versions of termcap which
     # use the given capability.  This information is not used by the curses library
    -# proper; rather, it's there to help the terminfo maintainer avoid emitting
    +# proper; rather, it is there to help the terminfo maintainer avoid emitting
     # termcap entry translations that are more than 1023 bytes long (and tank a
     # lot of old termcap-using programs).  The codes read as follows:
     #	B = mentioned in the BSD man page for 4.4BSD curses
    @@ -100,8 +100,8 @@
     # 3. List it in the standard table.  You almost certainly do *not* want
     # to do this -- the capabilities in that one, and their order, have been
     # carefully chosen to be SVr4-binary-compatible when they're written out
    -# as a terminfo object, and breaking this would be bad.  It's up to the ncurses
    -# library what to do with the terminfo data after it's read in.
    +# as a terminfo object, and breaking this would be bad.  It is up to the ncurses
    +# library what to do with the terminfo data after it is read in.
     #
     # 4. List it in the aliases table with an IGNORE target field.  If you
     # do this, the capability will be ignored on input (though the user will
    @@ -110,7 +110,7 @@
     # 5. List it in the extensions table. If you do this, the compiler will
     # silently accept the capability, but the curses library proper will never
     # see it (because it won't be written out as part of the terminfo object
    -# format).  It's up to you what you have the compiler do with it.
    +# format).  It is up to you what you have the compiler do with it.
     #
     # There are two opposite reasons to choose option 5.  One is when you want
     # to eat the capability silently and discard it when doing translations
    @@ -973,7 +973,7 @@ has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
     return_does_clr_eol		OTxr	bool	xr	-		-	YB---	return clears the line
     # tek_4025_insert_line		OTxx	bool	xx	-		-	-BC--	Tektronix 4025 insert-line glitch
     #
    -# mytinfo described this as a termcap capability, but it's not listed in the
    +# mytinfo described this as a termcap capability, but it is not listed in the
     # 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
     # package, like System V, behaves as though it is always true.
     #
    diff --git a/include/Caps.osf1r5 b/include/Caps.osf1r5
    index 8a295548..0f77a452 100644
    --- a/include/Caps.osf1r5
    +++ b/include/Caps.osf1r5
    @@ -1,5 +1,5 @@
     ##############################################################################
    -# Copyright 2019,2020 Thomas E. Dickey                                       #
    +# Copyright 2019-2020,2021 Thomas E. Dickey                                  #
     # Copyright 2002-2015,2016 Free Software Foundation, Inc.                    #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -29,7 +29,7 @@
     #
     # Author: Thomas Dickey
     #
    -# $Id: Caps.osf1r5,v 1.14 2020/10/17 21:30:19 tom Exp $
    +# $Id: Caps.osf1r5,v 1.15 2021/09/04 10:52:55 tom Exp $
     #
     # This is an adaptation of ncurses' termcap/terminfo capability table, which
     # is designed to align with OSF/1 version 5 (Tru64) terminfo.
    @@ -58,7 +58,7 @@
     #
     # The codes following [Y-] in column 7 describe the versions of termcap which
     # use the given capability.  This information is not used by the curses library
    -# proper; rather, it's there to help the terminfo maintainer avoid emitting
    +# proper; rather, it is there to help the terminfo maintainer avoid emitting
     # termcap entry translations that are more than 1023 bytes long (and tank a
     # lot of old termcap-using programs).  The codes read as follows:
     #	B = mentioned in the BSD man page for 4.4BSD curses
    @@ -98,8 +98,8 @@
     # 3. List it in the standard table.  You almost certainly do *not* want
     # to do this -- the capabilities in that one, and their order, have been
     # carefully chosen to be SVr4-binary-compatible when they're written out
    -# as a terminfo object, and breaking this would be bad.  It's up to the ncurses
    -# library what to do with the terminfo data after it's read in.
    +# as a terminfo object, and breaking this would be bad.  It is up to the ncurses
    +# library what to do with the terminfo data after it is read in.
     #
     # 4. List it in the aliases table with an IGNORE target field.  If you
     # do this, the capability will be ignored on input (though the user will
    @@ -108,7 +108,7 @@
     # 5. List it in the extensions table. If you do this, the compiler will
     # silently accept the capability, but the curses library proper will never
     # see it (because it won't be written out as part of the terminfo object
    -# format).  It's up to you what you have the compiler do with it.
    +# format).  It is up to you what you have the compiler do with it.
     #
     # There are two opposite reasons to choose option 5.  One is when you want
     # to eat the capability silently and discard it when doing translations
    @@ -891,7 +891,7 @@ has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
     return_does_clr_eol		OTxr	bool	xr	-		-	YB---	return clears the line
     # tek_4025_insert_line		OTxx	bool	xx	-		-	-BC--	Tektronix 4025 insert-line glitch
     #
    -# mytinfo described this as a termcap capability, but it's not listed in the
    +# mytinfo described this as a termcap capability, but it is not listed in the
     # 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
     # package, like System V, behaves as though it is always true.
     #
    diff --git a/include/Caps.uwin b/include/Caps.uwin
    index de0d5b77..89c5ebe6 100644
    --- a/include/Caps.uwin
    +++ b/include/Caps.uwin
    @@ -1,5 +1,5 @@
     ##############################################################################
    -# Copyright 2019,2020 Thomas E. Dickey                                       #
    +# Copyright 2019-2020,2021 Thomas E. Dickey                                  #
     # Copyright 2001-2015,2016 Free Software Foundation, Inc.                    #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -29,7 +29,7 @@
     #
     # Author: Thomas Dickey
     #
    -# $Id: Caps.uwin,v 1.13 2020/10/17 21:30:19 tom Exp $
    +# $Id: Caps.uwin,v 1.14 2021/09/04 10:52:55 tom Exp $
     #
     # This is an adaptation of ncurses' termcap/terminfo capability table, which
     # is designed to align with U/Win's terminfo.
    @@ -58,7 +58,7 @@
     #
     # The codes following [Y-] in column 7 describe the versions of termcap which
     # use the given capability.  This information is not used by the curses library
    -# proper; rather, it's there to help the terminfo maintainer avoid emitting
    +# proper; rather, it is there to help the terminfo maintainer avoid emitting
     # termcap entry translations that are more than 1023 bytes long (and tank a
     # lot of old termcap-using programs).  The codes read as follows:
     #	B = mentioned in the BSD man page for 4.4BSD curses
    @@ -98,8 +98,8 @@
     # 3. List it in the standard table.  You almost certainly do *not* want
     # to do this -- the capabilities in that one, and their order, have been
     # carefully chosen to be SVr4-binary-compatible when they're written out
    -# as a terminfo object, and breaking this would be bad.  It's up to the ncurses
    -# library what to do with the terminfo data after it's read in.
    +# as a terminfo object, and breaking this would be bad.  It is up to the ncurses
    +# library what to do with the terminfo data after it is read in.
     #
     # 4. List it in the aliases table with an IGNORE target field.  If you
     # do this, the capability will be ignored on input (though the user will
    @@ -108,7 +108,7 @@
     # 5. List it in the extensions table. If you do this, the compiler will
     # silently accept the capability, but the curses library proper will never
     # see it (because it won't be written out as part of the terminfo object
    -# format).  It's up to you what you have the compiler do with it.
    +# format).  It is up to you what you have the compiler do with it.
     #
     # There are two opposite reasons to choose option 5.  One is when you want
     # to eat the capability silently and discard it when doing translations
    @@ -707,7 +707,7 @@ has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
     return_does_clr_eol		OTxr	bool	xr	-		-	YB---	return clears the line
     # tek_4025_insert_line		OTxx	bool	xx	-		-	-BC--	Tektronix 4025 insert-line glitch
     #
    -# mytinfo described this as a termcap capability, but it's not listed in the
    +# mytinfo described this as a termcap capability, but it is not listed in the
     # 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
     # package, like System V, behaves as though it is always true.
     #
    diff --git a/include/capdefaults.c b/include/capdefaults.c
    index 951a9ca4..0bdda14d 100644
    --- a/include/capdefaults.c
    +++ b/include/capdefaults.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2020 Thomas E. Dickey                                          *
    + * Copyright 2020,2021 Thomas E. Dickey                                     *
      * Copyright 1998-2000,2008 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -33,11 +33,11 @@
      *     and: Thomas E. Dickey                        1996-on                 *
      ****************************************************************************/
     
    -/* $Id: capdefaults.c,v 1.15 2020/02/02 23:34:34 tom Exp $ */
    +/* $Id: capdefaults.c,v 1.16 2021/09/04 10:52:55 tom Exp $ */
     
         /*
          * Compute obsolete capabilities.  The reason this is an include file is
    -     * that the two places where it's needed want the macros to generate
    +     * that the two places where it is needed require the macros to generate
          * offsets to different structures.  See the file Caps for explanations of
          * these conversions.
          *
    diff --git a/include/curses.h.in b/include/curses.h.in
    index 7cfb6fbb..3bf96952 100644
    --- a/include/curses.h.in
    +++ b/include/curses.h.in
    @@ -33,7 +33,7 @@
      *     and: Thomas E. Dickey                        1996-on                 *
      ****************************************************************************/
     
    -/* $Id: curses.h.in,v 1.274 2021/08/28 21:52:12 tom Exp $ */
    +/* $Id: curses.h.in,v 1.276 2021/08/29 09:30:34 tom Exp $ */
     
     #ifndef __NCURSES_H
     #define __NCURSES_H
    @@ -550,14 +550,10 @@ struct _win_st
     
     /*
      * We cannot define these in ncurses_cfg.h, since they require parameters to be
    - * passed (that is non-portable).  If you happen to be using gcc with warnings
    - * enabled, define
    - *	GCC_PRINTF
    - *	GCC_SCANF
    - * to improve checking of calls to printw(), etc.
    + * passed (that is non-portable).
      */
     #ifndef GCC_PRINTFLIKE
    -#if defined(GCC_PRINTF) && !defined(printf)
    +#ifndef printf
     #define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
     #else
     #define GCC_PRINTFLIKE(fmt,var) /*nothing*/
    @@ -565,7 +561,7 @@ struct _win_st
     #endif
     
     #ifndef GCC_SCANFLIKE
    -#if defined(GCC_SCANF) && !defined(scanf)
    +#ifndef scanf
     #define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
     #else
     #define GCC_SCANFLIKE(fmt,var)  /*nothing*/
    @@ -813,10 +809,14 @@ extern NCURSES_EXPORT(void) use_tioctl (bool);				/* implemented */
     extern NCURSES_EXPORT(int) vidattr (chtype);				/* implemented */
     extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC);		/* implemented */
     extern NCURSES_EXPORT(int) vline (chtype, int);				/* generated */
    -extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_PRINTFLIKE(2,0) GCC_DEPRECATED(use vw_printw);	/* implemented */
    -extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list) GCC_PRINTFLIKE(2,0);	/* implemented */
    -extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_SCANFLIKE(2,0) GCC_DEPRECATED(use vw_scanw);	/* implemented */
    -extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list) GCC_SCANFLIKE(2,0);	/* implemented */
    +extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_printw)	/* implemented */
    +		GCC_PRINTFLIKE(2,0);
    +extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *, va_list)	/* implemented */
    +		GCC_PRINTFLIKE(2,0);	
    +extern NCURSES_EXPORT(int) vwscanw (WINDOW *, const char *, va_list) GCC_DEPRECATED(use vw_scanw)	/* implemented */
    +		GCC_SCANFLIKE(2,0);
    +extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, const char *, va_list)	/* implemented */
    +		GCC_SCANFLIKE(2,0);
     extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype);		/* implemented */
     extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int);	/* implemented */
     extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *);		/* generated */
    diff --git a/include/term_entry.h b/include/term_entry.h
    index 18e4b87a..e2cf8380 100644
    --- a/include/term_entry.h
    +++ b/include/term_entry.h
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2018-2019,2020 Thomas E. Dickey                                *
    + * Copyright 2018-2020,2021 Thomas E. Dickey                                *
      * Copyright 1998-2015,2017 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -33,7 +33,7 @@
      *     and: Thomas E. Dickey                        1998-on                 *
      ****************************************************************************/
     
    -/* $Id: term_entry.h,v 1.60 2020/02/29 15:46:00 anonymous.maarten Exp $ */
    +/* $Id: term_entry.h,v 1.61 2021/09/04 10:52:55 tom Exp $ */
     
     /*
      *	term_entry.h -- interface to entry-manipulation code
    @@ -142,7 +142,7 @@ extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail;
     
     /*
      * Note that WANTED and PRESENT are not simple inverses!  If a capability
    - * has been explicitly cancelled, it's not considered WANTED.
    + * has been explicitly cancelled, it is not considered WANTED.
      */
     #define WANTED(s)	((s) == ABSENT_STRING)
     #define PRESENT(s)	(((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING))
    diff --git a/man/curs_color.3x b/man/curs_color.3x
    index 02f1a24b..2b8b6070 100644
    --- a/man/curs_color.3x
    +++ b/man/curs_color.3x
    @@ -27,7 +27,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: curs_color.3x,v 1.64 2021/06/17 21:30:22 tom Exp $
    +.\" $Id: curs_color.3x,v 1.66 2021/09/04 19:42:20 tom Exp $
     .TH curs_color 3X ""
     .ie \n(.g .ds `` \(lq
     .el       .ds `` ``
    @@ -467,6 +467,54 @@ Paradise and compatibles) do the wrong thing when you try to set a bright
     \*(``yellow\*('' background (you get a blinking yellow foreground instead).
     .bP
     Color RGB values are not settable.
    +.SH HISTORY
    +.PP
    +SVr3.2 introduced color support to curses in 1987.
    +.PP
    +SVr4 made internal changes,
    +e.g., moving the storage for the color state
    +from \fBSP\fP (the \fBSCREEN\fP structure)
    +to \fBcur_term\fP (the \fBTERMINAL\fP structure),
    +but provided the same set of library functions.
    +.PP
    +SVr4 curses limits the number of color pairs to 64,
    +reserving color pair zero (0) as the terminal's initial uncolored state.
    +This limit arises because the color pair information is a bitfield
    +in the \fBchtype\fP data type (denoted by \fBA_COLOR\fP).
    +.PP
    +Other implementations of curses had different limits:
    +.bP
    +PCCurses (1987-1990) provided for only eight (8) colors.
    +.bP
    +PDCurses (1992-present) inherited the 8-color limitation from PCCurses,
    +but changed this to 256 in version 2.5 (2001),
    +along with changing \fBchtype\fP from 16-bits to 32-bits.
    +.bP
    +X/Open Curses (1992-present)
    +added a new structure \fBcchar_t\fP to store the character,
    +attributes and color-pair values, allowing increased range of color-pairs.
    +Both color-pairs and color-values used a signed \fBshort\fP,
    +limiting values to 15 bits.
    +.bP
    +ncurses (1992-present) uses eight bits for \fBA_COLOR\fP in \fBchtype\fP values.
    +.IP
    +Version 5.3 provided a wide-character interface (2002),
    +but left color-pairs as part of the attributes-field.
    +.IP
    +Since version 6 (2015),
    +ncurses uses a separate \fBint\fP for color-pairs in the \fBcchar_t\fP values.
    +When those color-pair values fit in 8 bits,
    +ncurses allows color-pairs to be manipulated
    +via the functions using \fBchtype\fP values.
    +.bP
    +NetBSD curses used 6 bits from
    +2000 (when colors were first supported) until 2004.
    +At that point, NetBSD changed to use 10 bits.
    +As of 2021, that size is unchanged.
    +Like ncurses before version 6,
    +the NetBSD color-pair information is stored in
    +the attributes field of \fBcchar_t\fP, limiting the number of color-pairs
    +by the size of the bitfield.
     .SH PORTABILITY
     This implementation satisfies XSI Curses's minimum maximums
     for \fBCOLORS\fR and \fBCOLOR_PAIRS\fR.
    diff --git a/man/curs_terminfo.3x b/man/curs_terminfo.3x
    index fefd36ce..6bb5dc20 100644
    --- a/man/curs_terminfo.3x
    +++ b/man/curs_terminfo.3x
    @@ -27,7 +27,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: curs_terminfo.3x,v 1.75 2021/06/17 21:11:08 tom Exp $
    +.\" $Id: curs_terminfo.3x,v 1.76 2021/09/04 19:58:03 tom Exp $
     .TH curs_terminfo 3X ""
     .ie \n(.g .ds `` \(lq
     .el       .ds `` ``
    @@ -556,8 +556,14 @@ and handling functions such as \fBvidattr\fP
     .PP
     SVr3 introduced the functions for switching between terminal
     descriptions, e.g., \fBset_curterm\fP.
    +Some of that was incremental improvements to the SVr2 library:
    +.bP
    +The \fBTERMINAL\fP type definition was introduced in SVr3.01,
    +for the \fBterm\fP structure provided in SVr2.
    +.bP
     The various global variables such as \fBboolnames\fP were mentioned
    -in the programming manual at this point.
    +in the programming manual at this point,
    +though the variables were provided in SVr2.
     .PP
     SVr4 added the \fBvid_attr\fP and \fBvid_puts\fP functions.
     .PP
    diff --git a/man/tput.1 b/man/tput.1
    index fb27ae4c..f02ec533 100644
    --- a/man/tput.1
    +++ b/man/tput.1
    @@ -28,7 +28,7 @@
     .\" authorization.                                                           *
     .\"***************************************************************************
     .\"
    -.\" $Id: tput.1,v 1.67 2021/06/17 21:11:08 tom Exp $
    +.\" $Id: tput.1,v 1.70 2021/09/04 19:02:50 tom Exp $
     .TH @TPUT@ 1 ""
     .ds d @TERMINFO@
     .ds n 1
    @@ -436,10 +436,21 @@ T}
     The \fBtput\fP command was begun by Bill Joy in 1980.
     The initial version only cleared the screen.
     .PP
    -AT&T System V provided a different \fBtput\fP command,
    -whose \fBinit\fP and \fBreset\fP  subcommands
    +AT&T System V provided a different \fBtput\fP command:
    +.bP
    +SVr2 provided a rudimentary \fBtput\fP
    +which checked the parameter against each
    +predefined capability and returned the corresponding value.
    +This version of \fBtput\fP did not use \fBtparm\fP(3X) for
    +the capabilities which are parameterized.
    +.bP
    +SVr3 replaced that, a year later, by a more extensive program
    +whose \fBinit\fP and \fBreset\fP subcommands
     (more than half the program) were incorporated from
     the \fBreset\fP feature of BSD \fBtset\fP written by Eric Allman.
    +.bP
    +SVr4 added color initialization using the \fIorig_colors\fP and
    +\fIorig_pairs\fP capabilities in the \fBinit\fP subcommand.
     .PP
     Keith Bostic replaced the BSD \fBtput\fP command in 1989
     with a new implementation
    diff --git a/misc/csort b/misc/csort
    index 24554196..c39c2951 100755
    --- a/misc/csort
    +++ b/misc/csort
    @@ -1,7 +1,7 @@
     #!/bin/sh
    -# $Id: csort,v 1.3 2020/02/02 23:34:34 tom Exp $
    +# $Id: csort,v 1.4 2021/09/04 15:55:29 tom Exp $
     ##############################################################################
    -# Copyright 2020 Thomas E. Dickey                                            #
    +# Copyright 2020,2021 Thomas E. Dickey                                       #
     # Copyright 2002 Free Software Foundation, Inc.                              #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -34,4 +34,4 @@ LANG=C;		export LANG
     LANGUAGE=C;	export LANGUAGE
     LC_ALL=C;	export LC_ALL
     LC_CTYPE=C;	export LC_CTYPE
    -sort $*
    +sort "$@"
    diff --git a/misc/gen_edit.sh b/misc/gen_edit.sh
    index dadf0035..0c41611d 100755
    --- a/misc/gen_edit.sh
    +++ b/misc/gen_edit.sh
    @@ -1,6 +1,6 @@
     #!/bin/sh
     ##############################################################################
    -# Copyright 2020 Thomas E. Dickey                                            #
    +# Copyright 2020,2021 Thomas E. Dickey                                       #
     # Copyright 2004-2011,2012 Free Software Foundation, Inc.                    #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -30,7 +30,7 @@
     #
     # Author: Thomas E. Dickey
     #
    -# $Id: gen_edit.sh,v 1.6 2020/02/02 23:34:34 tom Exp $
    +# $Id: gen_edit.sh,v 1.7 2021/09/04 15:55:29 tom Exp $
     # Generate a sed-script for converting the terminfo.src to the form which will
     # be installed.
     #
    @@ -40,10 +40,10 @@
     
     linux_dft=linux2.2
     
    -: ${datadir=/usr/share}
    -: ${WHICH_LINUX=$linux_dft}
    -: ${WHICH_XTERM=xterm-new}
    -: ${XTERM_KBS=BS}
    +: "${datadir=/usr/share}"
    +: "${WHICH_LINUX=$linux_dft}"
    +: "${WHICH_XTERM=xterm-new}"
    +: "${XTERM_KBS=BS}"
     
     # If we're not installing into /usr/share/, we'll have to adjust the location
     # of the tabset files in terminfo.src (which are in a parallel directory).
    diff --git a/misc/makedef.cmd b/misc/makedef.cmd
    index 12baeca8..129ca83b 100644
    --- a/misc/makedef.cmd
    +++ b/misc/makedef.cmd
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2020 Thomas E. Dickey                                          *
    + * Copyright 2020,2021 Thomas E. Dickey                                     *
      * Copyright 1998,2006 Free Software Foundation, Inc.                       *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -28,7 +28,7 @@
      ****************************************************************************/
     
     /*
    - * $Id: makedef.cmd,v 1.6 2020/02/02 23:34:34 tom Exp $
    + * $Id: makedef.cmd,v 1.7 2021/09/04 10:52:55 tom Exp $
      *
      * Author:  Juan Jose Garcia Ripoll .
      * Webpage: http://www.arrakis.es/~worm/
    @@ -119,12 +119,12 @@ do while queued() > 0
         *		it has a valid code that we store
         *		we mark that code as used
         *   ELIF (it has no number) THEN
    -    *		(it's a new symbol)
    +    *		(it is a new symbol)
         *		we increase the counter of defined symbols
         *		we assign it the special number 0
         *		(later on it'll be assigned an unused export code)
         *   ELSE
    -    *		this symbol was in the old DLL and it's no longer
    +    *		this symbol was in the old DLL and it is no longer
         *		here, so we skip it.
         */
        select
    diff --git a/misc/makellib b/misc/makellib
    index 06e50f25..fb3d3b7a 100755
    --- a/misc/makellib
    +++ b/misc/makellib
    @@ -1,6 +1,6 @@
     #!/bin/sh
     ##############################################################################
    -# Copyright 2020 Thomas E. Dickey                                            #
    +# Copyright 2020,2021 Thomas E. Dickey                                       #
     # Copyright 1998,2000 Free Software Foundation, Inc.                         #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -30,7 +30,7 @@
     #
     # Author: Thomas E. Dickey 1996,1997,2000
     #
    -# $Id: makellib,v 1.9 2020/02/02 23:34:34 tom Exp $
    +# $Id: makellib,v 1.11 2021/09/04 15:49:38 tom Exp $
     # System-dependent wrapper for 'lint' that creates a lint-library via the
     # following method (XXX is the name of the library):
     #	a.  If the file llib-lXXX doesn't exist, create it using the make-rule
    @@ -45,7 +45,7 @@
     #	a.  On a few systems, you'll have to manually-edit the llib-lXXX file
     #	    to get a usable lint-library (not all C-preprocessors work well).
     #	b.  The system's lint utility won't recognize -lXXX as a lint-library
    -#	    (Use tdlint as a wrapper; it's designed for this).
    +#	    (Use tdlint as a wrapper; it is designed for this).
     #
     # Parameters:
     #	$1 = library name
    @@ -68,7 +68,7 @@ while test $# != 0
     do
     	case $1 in
     	-L*)
    -		DST="$DST `echo $1|sed -e 's/^-L//'`"
    +		DST="$DST `echo "$1"|sed -e 's/^-L//'`"
     		;;
     	-*)
     		OPT="$OPT $1"
    @@ -94,8 +94,8 @@ then
     	llib="llib-l$LLIB"
     fi
     
    -if test ! -f $llib ; then
    -	if ( make $llib )
    +if test ! -f "$llib" ; then
    +	if ( make "$llib" )
     	then
     		:
     	else
    @@ -103,39 +103,39 @@ if test ! -f $llib ; then
     	fi
     fi
     
    -rm -f $llib.ln $llib.c
    +rm -f "$llib.ln" "$llib.c"
     TARGET=$LLIB
     
     case "$ARCH" in
     AIX)
     	CREATE="-uvxo$LLIB -Nn4000"
     	TARGET=$llib.c
    -	ln $llib $TARGET
    +	ln "$llib" "$TARGET"
     	;;
     Solaris)
     	CREATE="-C$llib"
     	TARGET=$llib.c
    -	ln $llib $TARGET
    +	ln "$llib" "$TARGET"
     	;;
     FreeBSD)
     	CREATE="-g -z -C$LLIB"
     	TARGET=$llib.c
    -	ln $llib $TARGET
    +	ln "$llib" "$TARGET"
     	;;
     CLIX)
     	CREATE="-DLINTLIBRARY -vxo$LLIB"
     	TARGET=$llib.c
    -	ln $llib $TARGET
    +	ln "$llib" "$TARGET"
     	;;
     IRIX*)
     	CREATE="-DLINTLIBRARY -vxyo$LLIB"
     	TARGET=$llib.c
    -	ln $llib $TARGET
    +	ln "$llib" "$TARGET"
     	;;
     UNIX_SV)
     	CREATE="-DLINTLIBRARY -vxyo$LLIB"
     	TARGET=$llib.c
    -	ln $llib $TARGET
    +	ln "$llib" "$TARGET"
     	;;
     *)
     	echo "Sorry.  I do not know how to build a lint-library for $ARCH"
    @@ -145,24 +145,24 @@ esac
     echo OPT    "$OPT"
     echo TARGET "$TARGET"
     echo LIBNAME "$llib"
    -if ( lint $CREATE $OPT $TARGET )
    +if ( lint "$CREATE" "$OPT" "$TARGET" )
     then
    -	if test -f $llib.ln
    +	if test -f "$llib.ln"
     	then
     		for p in $HOME/lib $HOME/lib/$ARCH $HOME/lib/$ARCH/lint
     		do
    -			if test ! -d $p
    +			if test ! -d "$p"
     			then
    -				mkdir $p
    +				mkdir "$p"
     			fi
     		done
     		for p in $DST
     		do
    -			cp $llib.ln $p/
    +			cp "$llib.ln" "$p/"
     		done
    -		rm -f $llib.ln
    +		rm -f "$llib.ln"
     	fi
     fi
     if test "x$TARGET" = "x$llib.c" ; then
    -	rm -f $TARGET
    +	rm -f "$TARGET"
     fi
    diff --git a/misc/shlib b/misc/shlib
    index 8772d4f4..7b93d170 100755
    --- a/misc/shlib
    +++ b/misc/shlib
    @@ -1,6 +1,6 @@
     #!/bin/sh
     ##############################################################################
    -# Copyright 2020 Thomas E. Dickey                                            #
    +# Copyright 2020,2021 Thomas E. Dickey                                       #
     # Copyright 1998-2005,2007 Free Software Foundation, Inc.                    #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -30,7 +30,7 @@
     #
     # Author: Thomas E. Dickey  1996
     #
    -# $Id: shlib,v 1.13 2020/02/02 23:34:34 tom Exp $
    +# $Id: shlib,v 1.14 2021/09/04 15:55:29 tom Exp $
     # Use this script as a wrapper when running executables linked to shared
     # libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
     # the soname's path within the linked executable (such as IRIX), e.g,
    @@ -81,7 +81,7 @@ q=""
     for p in lib ../lib ../../lib ../../../lib
     do
     	if test -d $p; then
    -		q=`cd $p; pwd`
    +		q=`cd $p || exit; pwd`
     		break
     	elif test -f configure && test ! -d ../$p ; then
     		break
    @@ -102,7 +102,7 @@ if test -n "$q" ; then
     	elif test -n "$LD_LIBRARY_PATH"; then
     		system=unix
     	else
    -		for r in $q/*.*
    +		for r in "$q"/*.*
     		do
     			if test -f "$r"
     			then
    diff --git a/misc/tdlint b/misc/tdlint
    index 71b0d89b..8ff5a40b 100755
    --- a/misc/tdlint
    +++ b/misc/tdlint
    @@ -1,6 +1,6 @@
     #!/bin/sh
     ##############################################################################
    -# Copyright 2020 Thomas E. Dickey                                            #
    +# Copyright 2020,2021 Thomas E. Dickey                                       #
     # Copyright 1998,2000 Free Software Foundation, Inc.                         #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -30,7 +30,7 @@
     #
     # Author: Thomas E. Dickey  1996
     #
    -# $Id: tdlint,v 1.7 2020/02/02 23:34:34 tom Exp $
    +# $Id: tdlint,v 1.8 2021/09/04 15:55:29 tom Exp $
     #
     # Lint-script that allows user's own lint libraries, in addition to the ones
     # installed in the system.
    @@ -45,16 +45,16 @@ if test -z "$ARCH" ; then
     	exit 1
     else
     	case $ARCH in
    -	AIX)	set - $* -Nn4000
    +	AIX)	set - "$@" -Nn4000
     		;;
    -	IRIX)	set - $* -n -lc
    +	IRIX)	set - "$@" -n -lc
     		;;
    -	FreeBSD) set - $* -g -p -u -v -z
    +	FreeBSD) set - "$@" -g -p -u -v -z
     		;;
     	SunOS)
     		case `uname -r` in
     		5.*)	ARCH=Solaris
    -			set - $* -n -lc
    +			set - "$@" -n -lc
     			;;
     		esac
     		;;
    @@ -63,7 +63,7 @@ fi
     # LIBDIR=$HOME/lib/$ARCH/lint ;export LIBDIR
     for p in $HOME/lib/$ARCH/lint /usr/lib/lint /usr/lib
     do
    -	if [ -d $p ]
    +	if [ -d "$p" ]
     	then
     		DIRS="$DIRS $p"
     	fi
    @@ -74,15 +74,15 @@ do
     	case $1 in
     	-D*\"*)	;;
     	-L*)
    -		DIRS="`echo $1|sed -e 's/^-L//'` $DIRS"
    +		DIRS="`echo "$1"|sed -e 's/^-L//'` $DIRS"
     		;;
     	-l*)
    -		lib="llib-l`echo $1 | sed -e 's/^-l//'`.ln"
    +		lib="llib-l`echo "$1" | sed -e 's/^-l//'`.ln"
     		found=no
     		for p in $DIRS
     		do
    -			echo -n testing $p/$lib
    -			if [ -f $p/$lib ]
    +			printf "testing %s" "$p/$lib"
    +			if [ -f "$p/$lib" ]
     			then
     				LIBS="$LIBS $p/$lib"
     				echo " (ok)"
    @@ -111,4 +111,4 @@ do
     	shift
     done
     #
    -eval lint $OPT $FILES $LIBS
    +exec lint $OPT $FILES $LIBS
    diff --git a/misc/terminfo.src b/misc/terminfo.src
    index 86523e5d..a4eeb6ae 100644
    --- a/misc/terminfo.src
    +++ b/misc/terminfo.src
    @@ -6,8 +6,8 @@
     # Report bugs and new terminal descriptions to
     #	bug-ncurses@gnu.org
     #
    -#	$Revision: 1.909 $
    -#	$Date: 2021/08/17 00:26:19 $
    +#	$Revision: 1.911 $
    +#	$Date: 2021/09/04 15:32:00 $
     #
     # The original header is preserved below for reference.  It is noted that there
     # is a "newer" version which differs in some cosmetic details (but actually
    @@ -1056,8 +1056,19 @@ linux2.6|linux 2.6.x console,
     
     # The 3.0 kernel adds support for clearing scrollback buffer (capability E3).
     # It is the same as xterm's erase-saved-lines feature.
    +#
    +# Linux 3.0 was released in July 2011.  The keyboard utilities (kbd) are
    +# used for configuring its keyboard mappings.
    +#
    +# kbd 1.14 was released before that (January 2008), but due to its placement
    +# late in the Linux 2.6.x series had no immediate effect for most users.  That
    +# provided a default mapping for shift-tab to the (misnamed) Meta_Tab, i.e.,
    +# the same as Alt-Tab.
    +#
    +# The suggested mapping for the conventional \E[Z is provided in this entry as
    +# an extended key to lessen user surprise -TD
     linux3.0|linux 3.0 kernels,
    -	E3=\E[3J, use=linux2.6,
    +	kcbt=\E^I, E3=\E[3J, kcbt2=\E[Z, use=linux2.6,
     
     # This is Linux console for ncurses.
     linux|linux console,
    @@ -27185,4 +27196,8 @@ v3220|LANPAR Vision II model 3220/3221/3222,
     # 2021-08-16
     #	+ corrected tsl capability for terminator -TD
     #
    +# 2021-09-04
    +#	+ modify linux3.0 entry to reflect default mapping of shift-tab by
    +#	  kbd 1.14 (report by Jan Engelhardt) -TD
    +#
     ######## SHANTIH!  SHANTIH!  SHANTIH!
    diff --git a/ncurses/base/lib_getch.c b/ncurses/base/lib_getch.c
    index 38537591..bdb8a04f 100644
    --- a/ncurses/base/lib_getch.c
    +++ b/ncurses/base/lib_getch.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2018-2019,2020 Thomas E. Dickey                                *
    + * Copyright 2018-2020,2021 Thomas E. Dickey                                *
      * Copyright 1998-2015,2016 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -44,7 +44,7 @@
     #define NEED_KEY_EVENT
     #include 
     
    -MODULE_ID("$Id: lib_getch.c,v 1.141 2020/09/05 22:50:47 tom Exp $")
    +MODULE_ID("$Id: lib_getch.c,v 1.142 2021/09/04 10:52:55 tom Exp $")
     
     #include 
     
    @@ -551,7 +551,7 @@ _nc_wgetch(WINDOW *win,
     	 * This is tricky.  We only want to get special-key
     	 * events one at a time.  But we want to accumulate
     	 * mouse events until either (a) the mouse logic tells
    -	 * us it's picked up a complete gesture, or (b)
    +	 * us it has picked up a complete gesture, or (b)
     	 * there's a detectable time lapse after one.
     	 *
     	 * Note: if the mouse code starts failing to compose
    diff --git a/ncurses/base/lib_getstr.c b/ncurses/base/lib_getstr.c
    index 57a94d75..5feb351a 100644
    --- a/ncurses/base/lib_getstr.c
    +++ b/ncurses/base/lib_getstr.c
    @@ -42,7 +42,7 @@
     #define NEED_KEY_EVENT
     #include 
     
    -MODULE_ID("$Id: lib_getstr.c,v 1.36 2021/05/22 19:57:21 tom Exp $")
    +MODULE_ID("$Id: lib_getstr.c,v 1.37 2021/09/04 10:29:15 tom Exp $")
     
     /*
      * This wipes out the last character, no matter whether it was a tab, control
    @@ -114,7 +114,7 @@ wgetnstr_events(WINDOW *win,
         while ((ch = wgetch_events(win, evl)) != ERR) {
     	/*
     	 * Some terminals (the Wyse-50 is the most common) generate
    -	 * a \n from the down-arrow key.  With this logic, it's the
    +	 * a \n from the down-arrow key.  With this logic, it is the
     	 * user's choice whether to set kcud=\n for wgetch();
     	 * terminating *getstr() with \n should work either way.
     	 */
    diff --git a/ncurses/base/lib_pad.c b/ncurses/base/lib_pad.c
    index 73978fbb..f49a5eb8 100644
    --- a/ncurses/base/lib_pad.c
    +++ b/ncurses/base/lib_pad.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2020 Thomas E. Dickey                                          *
    + * Copyright 2020,2021 Thomas E. Dickey                                     *
      * Copyright 1998-2010,2017 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -43,7 +43,7 @@
     
     #include 
     
    -MODULE_ID("$Id: lib_pad.c,v 1.48 2020/02/02 23:34:34 tom Exp $")
    +MODULE_ID("$Id: lib_pad.c,v 1.49 2021/09/04 10:52:55 tom Exp $")
     
     NCURSES_EXPORT(WINDOW *)
     NCURSES_SP_NAME(newpad) (NCURSES_SP_DCLx int l, int c)
    @@ -296,7 +296,7 @@ pnoutrefresh(WINDOW *win,
     
         /*
          * Use the pad's current position, if it will be visible.
    -     * If not, don't do anything; it's not an error.
    +     * If not, don't do anything; it is not an error.
          */
         if (win->_leaveok == FALSE
     	&& win->_cury >= pminrow
    diff --git a/ncurses/base/lib_slkrefr.c b/ncurses/base/lib_slkrefr.c
    index c6bf9d2e..7a40624b 100644
    --- a/ncurses/base/lib_slkrefr.c
    +++ b/ncurses/base/lib_slkrefr.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2020 Thomas E. Dickey                                          *
    + * Copyright 2020,2021 Thomas E. Dickey                                     *
      * Copyright 1998-2013,2014 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -44,7 +44,7 @@
     #define CUR SP_TERMTYPE
     #endif
     
    -MODULE_ID("$Id: lib_slkrefr.c,v 1.31 2020/02/02 23:34:34 tom Exp $")
    +MODULE_ID("$Id: lib_slkrefr.c,v 1.32 2021/09/04 10:54:35 tom Exp $")
     
     #ifdef USE_TERM_DRIVER
     #define NumLabels    InfoOf(SP_PARM).numlabels
    @@ -113,7 +113,7 @@ slk_intern_refresh(SCREEN *sp)
     		    wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
     		    (void) wattrset(slk->win, (int) AttrOf(slk->attr));
     		    waddstr(slk->win, slk->ent[i].form_text);
    -		    /* if we simulate SLK's, it's looking much more
    +		    /* if we simulate SLK's, it is looking much more
     		       natural to use the current ATTRIBUTE also
     		       for the label window */
     		    (void) wattrset(slk->win, (int) WINDOW_ATTRS(StdScreen(sp)));
    diff --git a/ncurses/base/resizeterm.c b/ncurses/base/resizeterm.c
    index 9b04287c..225f5522 100644
    --- a/ncurses/base/resizeterm.c
    +++ b/ncurses/base/resizeterm.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2020 Thomas E. Dickey                                          *
    + * Copyright 2020,2021 Thomas E. Dickey                                     *
      * Copyright 1998-2015,2016 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -46,7 +46,7 @@
     #define CUR SP_TERMTYPE
     #endif
     
    -MODULE_ID("$Id: resizeterm.c,v 1.50 2020/02/02 23:34:34 tom Exp $")
    +MODULE_ID("$Id: resizeterm.c,v 1.51 2021/09/04 10:54:35 tom Exp $")
     
     /*
      * If we're trying to be reentrant, do not want any local statics.
    @@ -210,7 +210,7 @@ parent_depth(WINDOW *cmp)
     }
     
     /*
    - * FIXME: must adjust position so it's within the parent!
    + * FIXME: must adjust position so it is within the parent!
      */
     static int
     adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS)
    diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h
    index 5e490715..c0d579fc 100644
    --- a/ncurses/curses.priv.h
    +++ b/ncurses/curses.priv.h
    @@ -35,7 +35,7 @@
      ****************************************************************************/
     
     /*
    - * $Id: curses.priv.h,v 1.644 2021/08/18 21:55:42 tom Exp $
    + * $Id: curses.priv.h,v 1.645 2021/09/04 10:29:15 tom Exp $
      *
      *	curses.priv.h
      *
    @@ -2212,7 +2212,7 @@ extern NCURSES_EXPORT_VAR(SCREEN *) SP;
     
     /*
      * We don't want to use the lines or columns capabilities internally, because
    - * if the application is running multiple screens under X, it's quite possible
    + * if the application is running multiple screens under X, it is quite possible
      * they could all have type xterm but have different sizes!  So...
      */
     #define screen_lines(sp)        (sp)->_lines
    diff --git a/ncurses/tinfo/access.c b/ncurses/tinfo/access.c
    index 339f169b..a735db26 100644
    --- a/ncurses/tinfo/access.c
    +++ b/ncurses/tinfo/access.c
    @@ -45,7 +45,7 @@
     
     #include 
     
    -MODULE_ID("$Id: access.c,v 1.30 2021/08/28 22:07:31 tom Exp $")
    +MODULE_ID("$Id: access.c,v 1.31 2021/08/29 10:35:17 tom Exp $")
     
     #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
     
    @@ -215,7 +215,7 @@ _nc_env_access(void)
     
         if (is_elevated()) {
     	result = FALSE;
    -    } else if ((getuid() == ROOT_UID) && (geteuid() == ROOT_UID)) {
    +    } else if ((getuid() == ROOT_UID) || (geteuid() == ROOT_UID)) {
     	result = FALSE;
         }
         return result;
    diff --git a/ncurses/tinfo/captoinfo.c b/ncurses/tinfo/captoinfo.c
    index 926ac2ff..7e14731d 100644
    --- a/ncurses/tinfo/captoinfo.c
    +++ b/ncurses/tinfo/captoinfo.c
    @@ -98,7 +98,7 @@
     #include 
     #include 
     
    -MODULE_ID("$Id: captoinfo.c,v 1.101 2021/02/28 01:05:07 tom Exp $")
    +MODULE_ID("$Id: captoinfo.c,v 1.102 2021/09/04 10:29:15 tom Exp $")
     
     #if 0
     #define DEBUG_THIS(p) DEBUG(9, p)
    @@ -940,7 +940,7 @@ _nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameteriz
     		break;
     
     		/*
    -		 * %s isn't in termcap, but it's convenient to pass it through
    +		 * %s isn't in termcap, but it is convenient to pass it through
     		 * so we can represent things like terminfo pfkey strings in
     		 * termcap notation.
     		 */
    diff --git a/ncurses/tinfo/comp_expand.c b/ncurses/tinfo/comp_expand.c
    index 09b81695..724283ce 100644
    --- a/ncurses/tinfo/comp_expand.c
    +++ b/ncurses/tinfo/comp_expand.c
    @@ -36,7 +36,7 @@
     #include 
     #include 
     
    -MODULE_ID("$Id: comp_expand.c,v 1.33 2021/02/28 00:58:19 tom Exp $")
    +MODULE_ID("$Id: comp_expand.c,v 1.34 2021/09/04 10:29:15 tom Exp $")
     
     #if 0
     #define DEBUG_THIS(p) DEBUG(9, p)
    @@ -206,7 +206,7 @@ _nc_tic_expand(const char *srcp, bool tic_format, int numbers)
     
         /*
          * If most of a short string is ASCII control characters, reformat the
    -     * string to show those in up-arrow format.  For longer strings, it's
    +     * string to show those in up-arrow format.  For longer strings, it is
          * more likely that the characters are just binary coding.
          *
          * If we're formatting termcap, just use the shorter format (up-arrows).
    diff --git a/ncurses/tinfo/comp_scan.c b/ncurses/tinfo/comp_scan.c
    index 87929d20..b5ee4483 100644
    --- a/ncurses/tinfo/comp_scan.c
    +++ b/ncurses/tinfo/comp_scan.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2020 Thomas E. Dickey                                          *
    + * Copyright 2020,2021 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 @@
     #include 
     #include 
     
    -MODULE_ID("$Id: comp_scan.c,v 1.109 2020/02/02 23:34:34 tom Exp $")
    +MODULE_ID("$Id: comp_scan.c,v 1.110 2021/09/04 10:54:35 tom Exp $")
     
     /*
      * Maximum length of string capability we'll accept before raising an error.
    @@ -556,7 +556,7 @@ _nc_get_token(bool silent)
     		 * Grrr...what we ought to do here is barf, complaining that
     		 * the entry is malformed.  But because a couple of name fields
     		 * in the 8.2 termcap file end with |\, we just have to assume
    -		 * it's termcap syntax.
    +		 * it is termcap syntax.
     		 */
     		_nc_syntax = SYN_TERMCAP;
     		separator = ':';
    diff --git a/ncurses/tinfo/lib_data.c b/ncurses/tinfo/lib_data.c
    index 6a06cd77..8bebc3d7 100644
    --- a/ncurses/tinfo/lib_data.c
    +++ b/ncurses/tinfo/lib_data.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2018,2020 Thomas E. Dickey                                     *
    + * Copyright 2018-2020,2021 Thomas E. Dickey                                *
      * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -43,7 +43,7 @@
     
     #include 
     
    -MODULE_ID("$Id: lib_data.c,v 1.84 2021/08/19 08:01:33 tom Exp $")
    +MODULE_ID("$Id: lib_data.c,v 1.85 2021/09/04 10:54:35 tom Exp $")
     
     /*
      * OS/2's native linker complains if we don't initialize public data when
    diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c
    index 9c8b44aa..0aaaa930 100644
    --- a/ncurses/tinfo/lib_setup.c
    +++ b/ncurses/tinfo/lib_setup.c
    @@ -49,7 +49,7 @@
     #include 
     #endif
     
    -MODULE_ID("$Id: lib_setup.c,v 1.213 2021/03/20 14:43:35 tom Exp $")
    +MODULE_ID("$Id: lib_setup.c,v 1.214 2021/09/01 23:38:12 tom Exp $")
     
     /****************************************************************************
      *
    @@ -66,7 +66,7 @@ MODULE_ID("$Id: lib_setup.c,v 1.213 2021/03/20 14:43:35 tom Exp $")
     #endif
     
     #if NEED_PTEM_H
    - /* On SCO, they neglected to define struct winsize in termios.h -- it's only
    + /* On SCO, they neglected to define struct winsize in termios.h -- it is only
       * in termio.h and ptem.h (the former conflicts with other definitions).
       */
     # include 
    diff --git a/ncurses/tinfo/lib_win32con.c b/ncurses/tinfo/lib_win32con.c
    index 3c0fe816..2bcea39a 100644
    --- a/ncurses/tinfo/lib_win32con.c
    +++ b/ncurses/tinfo/lib_win32con.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2020 Thomas E. Dickey                                          *
    + * Copyright 2020,2021 Thomas E. Dickey                                     *
      * Copyright 1998-2009,2010 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -38,7 +38,7 @@
     
     #include 
     
    -MODULE_ID("$Id: lib_win32con.c,v 1.6 2020/11/21 23:44:58 tom Exp $")
    +MODULE_ID("$Id: lib_win32con.c,v 1.7 2021/09/04 10:54:35 tom Exp $")
     
     #ifdef _NC_WINDOWS
     
    @@ -104,7 +104,7 @@ static const LONG ansi_keys[] =
     #define FKEYS 24
     #define MAPSIZE (FKEYS + N_INI)
     
    -/*   A process can only have a single console, so it's safe
    +/*   A process can only have a single console, so it is safe
          to maintain all the information about it in a single
          static structure.
      */
    @@ -198,7 +198,7 @@ IsConsoleHandle(HANDLE hdl)
     
     /*   This is used when running in terminfo mode to discover,
          whether or not the "terminal" is actually a Windows
    -     Console. It's the responsibility of the console to deal
    +     Console. It is the responsibility of the console to deal
          with the terminal escape sequences that are sent by
          terminfo.
      */
    diff --git a/ncurses/tinfo/lib_win32util.c b/ncurses/tinfo/lib_win32util.c
    index d5bcd701..1482916d 100644
    --- a/ncurses/tinfo/lib_win32util.c
    +++ b/ncurses/tinfo/lib_win32util.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2020 Thomas E. Dickey                                          *
    + * Copyright 2020,2021 Thomas E. Dickey                                     *
      * Copyright 1998-2009,2010 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -34,7 +34,7 @@
     
     #include 
     
    -MODULE_ID("$Id: lib_win32util.c,v 1.1 2020/08/14 21:57:01 juergen Exp $")
    +MODULE_ID("$Id: lib_win32util.c,v 1.2 2021/09/04 10:54:35 tom Exp $")
     
     #ifdef _NC_WINDOWS
     #include 
    @@ -48,7 +48,7 @@ MODULE_ID("$Id: lib_win32util.c,v 1.1 2020/08/14 21:57:01 juergen Exp $")
     
     /*   This function tests, whether or not the ncurses application
          is running as a descendant of MSYS2/cygwin mintty terminal
    -     application. mintty doesn't use Windows Console for it's screen
    +     application. mintty doesn't use Windows Console for its screen
          I/O, so the native Windows _isatty doesn't recognize it as
          character device. But we can discover we are at the end of an
          Pipe and can query the server side of the pipe, looking whether
    diff --git a/ncurses/tinfo/parse_entry.c b/ncurses/tinfo/parse_entry.c
    index ec2d3364..a77cd0b2 100644
    --- a/ncurses/tinfo/parse_entry.c
    +++ b/ncurses/tinfo/parse_entry.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2018-2019,2020 Thomas E. Dickey                                *
    + * Copyright 2018-2020,2021 Thomas E. Dickey                                *
      * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -48,7 +48,7 @@
     #include 
     #include 
     
    -MODULE_ID("$Id: parse_entry.c,v 1.101 2020/10/24 21:37:13 tom Exp $")
    +MODULE_ID("$Id: parse_entry.c,v 1.102 2021/09/04 10:54:35 tom Exp $")
     
     #ifdef LINT
     static short const parametrized[] =
    @@ -362,7 +362,7 @@ _nc_parse_entry(ENTRY * entryp, int literal, bool silent)
     				       _nc_get_hash_table(_nc_syntax));
     
     	    /*
    -	     * Our kluge to handle aliasing.  The reason it's done
    +	     * Our kluge to handle aliasing.  The reason it is done
     	     * this ugly way, with a linear search, is so the hashing
     	     * machinery doesn't have to be made really complicated
     	     * (also we get better warnings this way).  No point in
    @@ -929,7 +929,7 @@ postprocess_termcap(TERMTYPE2 *tp, bool has_base)
     	    if (tp->Strings[to_ptr->nte_index]) {
     		const char *s = tp->Strings[from_ptr->nte_index];
     		const char *t = tp->Strings[to_ptr->nte_index];
    -		/* There's no point in warning about it if it's the same
    +		/* There's no point in warning about it if it is the same
     		 * string; that's just an inefficiency.
     		 */
     		if (VALID_STRING(s) && VALID_STRING(t) && strcmp(s, t) != 0)
    diff --git a/ncurses/tinfo/read_termcap.c b/ncurses/tinfo/read_termcap.c
    index 418dc3f8..c9696b70 100644
    --- a/ncurses/tinfo/read_termcap.c
    +++ b/ncurses/tinfo/read_termcap.c
    @@ -57,7 +57,7 @@
     #include 
     #include 
     
    -MODULE_ID("$Id: read_termcap.c,v 1.101 2021/06/26 19:43:17 tom Exp $")
    +MODULE_ID("$Id: read_termcap.c,v 1.102 2021/09/04 10:29:15 tom Exp $")
     
     #if !PURE_TERMINFO
     
    @@ -187,7 +187,7 @@ _nc_cgetcap(char *buf, const char *cap, int type)
         bp = buf;
         for (;;) {
     	/*
    -	 * Skip past the current capability field - it's either the
    +	 * Skip past the current capability field - it is either the
     	 * name field if this is the first time through the loop, or
     	 * the remainder of a field whose name failed to match cap.
     	 */
    @@ -1115,7 +1115,7 @@ _nc_read_termcap_entry(const char *const tn, TERMTYPE2 *const tp)
     
     	/*
     	 * We don't suppress warning messages here.  The presumption is
    -	 * that since it's just a single entry, they won't be a pain.
    +	 * that since it is just a single entry, they won't be a pain.
     	 */
     	_nc_read_entry_source((FILE *) 0, tc_buf, FALSE, FALSE, NULLHOOK);
     	free(tc_buf);
    diff --git a/ncurses/tty/lib_mvcur.c b/ncurses/tty/lib_mvcur.c
    index dd0dc3d9..79592271 100644
    --- a/ncurses/tty/lib_mvcur.c
    +++ b/ncurses/tty/lib_mvcur.c
    @@ -83,8 +83,8 @@
     
     /*
      * The average overhead of a full optimization computation in character
    - * transmission times.  If it's too high, the algorithm will be a bit
    - * over-biased toward using cup rather than local motions; if it's too
    + * transmission times.  If it is too high, the algorithm will be a bit
    + * over-biased toward using cup rather than local motions; if it is too
      * low, the algorithm may spend more time than is strictly optimal
      * looking for non-cup motions.  Profile the optimizer using the `t'
      * command of the exerciser (see below), and round to the nearest integer.
    @@ -98,7 +98,7 @@
     
     /*
      * LONG_DIST is the distance we consider to be just as costly to move over as a
    - * cup sequence is to emit.  In other words, it's the length of a cup sequence
    + * cup sequence is to emit.  In other words, it is the length of a cup sequence
      * adjusted for average computation overhead.  The magic number is the length
      * of "\033[yy;xxH", the typical cup sequence these days.
      */
    @@ -148,7 +148,7 @@
      *	int		_rep_cost;	// cost of (repeat_char)
      *
      * The USE_HARD_TABS switch controls whether it is reliable to use tab/backtabs
    - * for local motions.  On many systems, it's not, due to uncertainties about
    + * for local motions.  On many systems, it is not, due to uncertainties about
      * tab delays and whether or not tabs will be expanded in raw mode.  If you
      * have parm_right_cursor, tab motions don't win you a lot anyhow.
      */
    @@ -160,7 +160,7 @@
     #define CUR SP_TERMTYPE
     #endif
     
    -MODULE_ID("$Id: lib_mvcur.c,v 1.155 2021/02/06 13:53:41 tom Exp $")
    +MODULE_ID("$Id: lib_mvcur.c,v 1.156 2021/09/04 10:29:15 tom Exp $")
     
     #define WANT_CHAR(sp, y, x) NewScreen(sp)->_line[y].text[x]	/* desired state */
     
    @@ -760,7 +760,7 @@ relative_move(NCURSES_SP_DCLx
     #endif /* !NO_OPTIMIZE */
     
     /*
    - * With the machinery set up above, it's conceivable that
    + * With the machinery set up above, it is conceivable that
      * onscreen_mvcur could be modified into a recursive function that does
      * an alpha-beta search of motion space, as though it were a chess
      * move tree, with the weight function being boolean and the search
    diff --git a/ncurses/tty/lib_tstp.c b/ncurses/tty/lib_tstp.c
    index 43a58e66..a20e72a9 100644
    --- a/ncurses/tty/lib_tstp.c
    +++ b/ncurses/tty/lib_tstp.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2020 Thomas E. Dickey                                          *
    + * Copyright 2020,2021 Thomas E. Dickey                                     *
      * Copyright 1998-2014,2017 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -43,7 +43,7 @@
     
     #include 
     
    -MODULE_ID("$Id: lib_tstp.c,v 1.50 2020/02/02 23:34:34 tom Exp $")
    +MODULE_ID("$Id: lib_tstp.c,v 1.51 2021/09/04 10:54:35 tom Exp $")
     
     #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
     #define USE_SIGTSTP 1
    @@ -130,7 +130,7 @@ signal_name(int sig)
      * (this may include XENIX).
      *
      * This implementation will probably be changed to use signal(3) in
    - * the future.  If nothing else, it's simpler...
    + * the future.  If nothing else, it is simpler...
      */
     
     #if USE_SIGTSTP
    diff --git a/ncurses/tty/tty_update.c b/ncurses/tty/tty_update.c
    index 70a9859b..bdd673be 100644
    --- a/ncurses/tty/tty_update.c
    +++ b/ncurses/tty/tty_update.c
    @@ -85,7 +85,7 @@
     
     #include 
     
    -MODULE_ID("$Id: tty_update.c,v 1.311 2021/08/16 21:51:11 tom Exp $")
    +MODULE_ID("$Id: tty_update.c,v 1.312 2021/09/04 10:29:59 tom Exp $")
     
     /*
      * This define controls the line-breakout optimization.  Every once in a
    @@ -473,7 +473,7 @@ wrap_cursor(NCURSES_SP_DCL0)
     	 * An aggressive way to handle this would be to emit CR/LF after the
     	 * char and then assume the wrap is done, you're on the first position
     	 * of the next line, and the terminal out of its weird state.  Here
    -	 * it's safe to just tell the code that the cursor is in hyperspace and
    +	 * it is safe to just tell the code that the cursor is in hyperspace and
     	 * let the next mvcur() call straighten things out.
     	 */
     	SP_PARM->_curscol = -1;
    @@ -823,7 +823,7 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
         /*
          * This is the support for magic-cookie terminals.  The theory:  we scan
          * the virtual screen looking for attribute turnons.  Where we find one,
    -     * check to make sure it's realizable by seeing if the required number of
    +     * check to make sure it is realizable by seeing if the required number of
          * un-attributed blanks are present before and after the attributed range;
          * try to shift the range boundaries over blanks (not changing the screen
          * display) so this becomes true.  If it is, shift the beginning attribute
    @@ -885,7 +885,7 @@ TINFO_DOUPDATE(NCURSES_SP_DCL0)
     		    bool end_onscreen = FALSE;
     		    int m, n = j;
     
    -		    /* find end of span, if it's onscreen */
    +		    /* find end of span, if it is onscreen */
     		    for (m = i; m < screen_lines(SP_PARM); m++) {
     			for (; n < screen_columns(SP_PARM); n++) {
     			    attr_t testattr =
    diff --git a/ncurses/widechar/lib_get_wstr.c b/ncurses/widechar/lib_get_wstr.c
    index f09f87f3..83baaed0 100644
    --- a/ncurses/widechar/lib_get_wstr.c
    +++ b/ncurses/widechar/lib_get_wstr.c
    @@ -40,7 +40,7 @@
     
     #include 
     
    -MODULE_ID("$Id: lib_get_wstr.c,v 1.18 2021/05/22 23:49:33 tom Exp $")
    +MODULE_ID("$Id: lib_get_wstr.c,v 1.19 2021/09/04 10:29:59 tom Exp $")
     
     static int
     wadd_wint(WINDOW *win, wint_t *src)
    @@ -144,7 +144,7 @@ wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
     	if (code == KEY_CODE_YES) {
     	    /*
     	     * Some terminals (the Wyse-50 is the most common) generate a \n
    -	     * from the down-arrow key.  With this logic, it's the user's
    +	     * from the down-arrow key.  With this logic, it is the user's
     	     * choice whether to set kcud=\n for wget_wch(); terminating
     	     * *getn_wstr() with \n should work either way.
     	     */
    diff --git a/ncurses/win32con/win_driver.c b/ncurses/win32con/win_driver.c
    index 72a9cf53..ad9e629a 100644
    --- a/ncurses/win32con/win_driver.c
    +++ b/ncurses/win32con/win_driver.c
    @@ -1,5 +1,5 @@
     /****************************************************************************
    - * Copyright 2018,2020 Thomas E. Dickey                                     *
    + * Copyright 2018-2020,2021 Thomas E. Dickey                                *
      * Copyright 2008-2016,2017 Free Software Foundation, Inc.                  *
      *                                                                          *
      * Permission is hereby granted, free of charge, to any person obtaining a  *
    @@ -55,7 +55,7 @@
     
     #define CUR TerminalType(my_term).
     
    -MODULE_ID("$Id: win_driver.c,v 1.66 2020/03/01 00:18:49 tom Exp $")
    +MODULE_ID("$Id: win_driver.c,v 1.67 2021/09/04 10:54:35 tom Exp $")
     
     #define TypeAlloca(type,count) (type*) _alloca(sizeof(type) * (size_t) (count))
     
    @@ -114,7 +114,7 @@ static const LONG ansi_keys[] =
     #define MAPSIZE (FKEYS + N_INI)
     #define NUMPAIRS 64
     
    -/*   A process can only have a single console, so it's safe
    +/*   A process can only have a single console, so it is safe
          to maintain all the information about it in a single
          static structure.
      */
    @@ -1867,7 +1867,7 @@ get_handle(int fd)
     #if WINVER >= 0x0600
     /*   This function tests, whether or not the ncurses application
          is running as a descendant of MSYS2/cygwin mintty terminal
    -     application. mintty doesn't use Windows Console for it's screen
    +     application. mintty doesn't use Windows Console for its screen
          I/O, so the native Windows _isatty doesn't recognize it as
          character device. But we can discover we are at the end of an
          Pipe and can query to server side of the pipe, looking whether
    @@ -1974,7 +1974,7 @@ _nc_mingw_isatty(int fd)
     
     /*   This is used when running in terminfo mode to discover,
          whether or not the "terminal" is actually a Windows
    -     Console. It's the responsibility of the console to deal
    +     Console. It is the responsibility of the console to deal
          with the terminal escape sequences that are sent by
          terminfo.
      */
    diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
    index 0a9bfa16..5345ab50 100644
    --- a/package/debian-mingw/changelog
    +++ b/package/debian-mingw/changelog
    @@ -1,8 +1,8 @@
    -ncurses6 (6.2+20210828) unstable; urgency=low
    +ncurses6 (6.2+20210904) unstable; urgency=low
     
       * latest weekly patch
     
    - -- Thomas E. Dickey   Sat, 28 Aug 2021 07:20:53 -0400
    + -- Thomas E. Dickey   Sun, 29 Aug 2021 04:38:31 -0400
     
     ncurses6 (5.9-20131005) unstable; urgency=low
     
    diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
    index 0a9bfa16..5345ab50 100644
    --- a/package/debian-mingw64/changelog
    +++ b/package/debian-mingw64/changelog
    @@ -1,8 +1,8 @@
    -ncurses6 (6.2+20210828) unstable; urgency=low
    +ncurses6 (6.2+20210904) unstable; urgency=low
     
       * latest weekly patch
     
    - -- Thomas E. Dickey   Sat, 28 Aug 2021 07:20:53 -0400
    + -- Thomas E. Dickey   Sun, 29 Aug 2021 04:38:31 -0400
     
     ncurses6 (5.9-20131005) unstable; urgency=low
     
    diff --git a/package/debian/changelog b/package/debian/changelog
    index ae9d3d86..a53024cb 100644
    --- a/package/debian/changelog
    +++ b/package/debian/changelog
    @@ -1,8 +1,8 @@
    -ncurses6 (6.2+20210828) unstable; urgency=low
    +ncurses6 (6.2+20210904) unstable; urgency=low
     
       * latest weekly patch
     
    - -- Thomas E. Dickey   Sat, 28 Aug 2021 07:20:53 -0400
    + -- Thomas E. Dickey   Sun, 29 Aug 2021 04:38:31 -0400
     
     ncurses6 (5.9-20120608) unstable; urgency=low
     
    diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
    index ee55eba1..72d5fda0 100644
    --- a/package/mingw-ncurses.nsi
    +++ b/package/mingw-ncurses.nsi
    @@ -1,4 +1,4 @@
    -; $Id: mingw-ncurses.nsi,v 1.474 2021/08/28 11:20:53 tom Exp $
    +; $Id: mingw-ncurses.nsi,v 1.475 2021/09/04 08:31:44 tom Exp $
     
     ; TODO add examples
     ; TODO bump ABI to 6
    @@ -10,7 +10,7 @@
     !define VERSION_MAJOR "6"
     !define VERSION_MINOR "2"
     !define VERSION_YYYY  "2021"
    -!define VERSION_MMDD  "0828"
    +!define VERSION_MMDD  "0904"
     !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
     
     !define MY_ABI   "5"
    diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
    index a5865aea..59dd7d5d 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.2
    -Release: 20210828
    +Release: 20210904
     License: X11
     Group: Development/Libraries
     Source: ncurses-%{version}-%{release}.tgz
    diff --git a/package/ncurses.spec b/package/ncurses.spec
    index b3e17d47..370d009f 100644
    --- a/package/ncurses.spec
    +++ b/package/ncurses.spec
    @@ -1,7 +1,7 @@
     Summary: shared libraries for terminal handling
     Name: ncurses6
     Version: 6.2
    -Release: 20210828
    +Release: 20210904
     License: X11
     Group: Development/Libraries
     Source: ncurses-%{version}-%{release}.tgz
    diff --git a/package/ncursest.spec b/package/ncursest.spec
    index 5fed761b..9f0ab6de 100644
    --- a/package/ncursest.spec
    +++ b/package/ncursest.spec
    @@ -1,7 +1,7 @@
     Summary: Curses library with POSIX thread support.
     Name: ncursest6
     Version: 6.2
    -Release: 20210828
    +Release: 20210904
     License: X11
     Group: Development/Libraries
     Source: ncurses-%{version}-%{release}.tgz
    diff --git a/progs/capconvert b/progs/capconvert
    index bcd56d3d..c73c3687 100755
    --- a/progs/capconvert
    +++ b/progs/capconvert
    @@ -1,6 +1,6 @@
     #!/bin/sh
     ##############################################################################
    -# Copyright 2019,2020 Thomas E. Dickey                                       #
    +# Copyright 2019-2020,2021 Thomas E. Dickey                                  #
     # Copyright 1998-2011,2017 Free Software Foundation, Inc.                    #
     #                                                                            #
     # Permission is hereby granted, free of charge, to any person obtaining a    #
    @@ -27,7 +27,7 @@
     # use or other dealings in this Software without prior written               #
     # authorization.                                                             #
     ##############################################################################
    -# $Id: capconvert,v 1.9 2020/02/02 23:34:34 tom Exp $
    +# $Id: capconvert,v 1.10 2021/09/04 10:55:04 tom Exp $
     #
     # capconvert -- automated conversion from termcap to terminfo
     #
    @@ -95,7 +95,7 @@ else
     fi
     echo "";
     
    -# Check if test -x works (it's not portable, but useful)
    +# Check if test -x works (it is not portable, but useful)
     OPT="-x"
     TMP=test$$; touch $TMP && chmod 755 $TMP
     if test $OPT $TMP ; then
    @@ -227,7 +227,7 @@ fi
     
     # OK, here comes the nasty case...user has a TERMCAP.  Instead of
     # trying to follow all the convolutions of the relationship between
    -# TERM and TERMCAP (partly because it's too painful, and partly because
    +# TERM and TERMCAP (partly because it is too painful, and partly because
     # we don't actually know what TERM will be nor even if it always has
     # the same value for this user) we do the following three steps...
     
    diff --git a/progs/dump_entry.c b/progs/dump_entry.c
    index 68cf32bc..860eccc9 100644
    --- a/progs/dump_entry.c
    +++ b/progs/dump_entry.c
    @@ -40,7 +40,7 @@
     #include 		/* this C file is generated */
     #include 	/* so is this */
     
    -MODULE_ID("$Id: dump_entry.c,v 1.188 2021/08/15 20:00:48 tom Exp $")
    +MODULE_ID("$Id: dump_entry.c,v 1.189 2021/09/04 10:29:59 tom Exp $")
     
     #define DISCARD(string) string = ABSENT_STRING
     #define PRINTF (void) printf
    @@ -1564,7 +1564,7 @@ dump_entry(TERMTYPE2 *tterm,
     	}
     	if (FMT_ENTRY() > critlen) {
     	    /*
    -	     * We pick on sgr because it's a nice long string capability that
    +	     * We pick on sgr because it is a nice long string capability that
     	     * is really just an optimization hack.  Another good candidate is
     	     * acsc since it is both long and unused by BSD termcap.
     	     */
    diff --git a/progs/reset_cmd.c b/progs/reset_cmd.c
    index 886d0825..e740fa66 100644
    --- a/progs/reset_cmd.c
    +++ b/progs/reset_cmd.c
    @@ -47,13 +47,13 @@
     #endif
     
     #if NEED_PTEM_H
    -/* they neglected to define struct winsize in termios.h -- it's only
    +/* they neglected to define struct winsize in termios.h -- it is only
        in termio.h	*/
     #include 
     #include 
     #endif
     
    -MODULE_ID("$Id: reset_cmd.c,v 1.26 2021/06/26 19:44:08 tom Exp $")
    +MODULE_ID("$Id: reset_cmd.c,v 1.27 2021/09/04 10:29:59 tom Exp $")
     
     /*
      * SCO defines TIOCGSIZE and the corresponding struct.  Other systems (SunOS,
    diff --git a/progs/tic.c b/progs/tic.c
    index 4caa6b59..a6281b32 100644
    --- a/progs/tic.c
    +++ b/progs/tic.c
    @@ -49,7 +49,7 @@
     #include 
     #include 
     
    -MODULE_ID("$Id: tic.c,v 1.301 2021/08/21 00:24:45 tom Exp $")
    +MODULE_ID("$Id: tic.c,v 1.302 2021/09/04 10:29:59 tom Exp $")
     
     #define STDIN_NAME ""
     
    @@ -878,7 +878,7 @@ main(int argc, char *argv[])
          * One problem with immedhook is it means we can't do -e.  Problem
          * is that we can't guarantee that for each terminal listed, all the
          * terminals it depends on will have been kept in core for reference
    -     * resolution -- in fact it's certain the primitive types at the end
    +     * resolution -- in fact it is certain the primitive types at the end
          * of reference chains *won't* be in core unless they were explicitly
          * in the select list themselves.
          */
    diff --git a/test/aclocal.m4 b/test/aclocal.m4
    index f64a1464..68ba3af7 100644
    --- a/test/aclocal.m4
    +++ b/test/aclocal.m4
    @@ -27,7 +27,7 @@ dnl sale, use or other dealings in this Software without prior written       *
     dnl authorization.                                                           *
     dnl***************************************************************************
     dnl
    -dnl $Id: aclocal.m4,v 1.198 2021/08/28 20:30:56 tom Exp $
    +dnl $Id: aclocal.m4,v 1.199 2021/09/04 10:39:46 tom Exp $
     dnl
     dnl Author: Thomas E. Dickey
     dnl
    @@ -181,9 +181,9 @@ AC_SUBST(EXTRA_CPPFLAGS)
     
     ])dnl
     dnl ---------------------------------------------------------------------------
    -dnl CF_ADD_INCDIR version: 16 updated: 2020/12/31 20:19:42
    +dnl CF_ADD_INCDIR version: 17 updated: 2021/09/04 06:35:04
     dnl -------------
    -dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
    +dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it is
     dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
     dnl but old versions (and some misinstalled ones) need that.  To make things
     dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
    @@ -1277,9 +1277,9 @@ dnl ----------
     dnl "dirname" is not portable, so we fake it with a shell script.
     AC_DEFUN([CF_DIRNAME],[$1=`echo "$2" | sed -e 's%/[[^/]]*$%%'`])dnl
     dnl ---------------------------------------------------------------------------
    -dnl CF_DISABLE_ECHO version: 13 updated: 2015/04/18 08:56:57
    +dnl CF_DISABLE_ECHO version: 14 updated: 2021/09/04 06:35:04
     dnl ---------------
    -dnl You can always use "make -n" to see the actual options, but it's hard to
    +dnl You can always use "make -n" to see the actual options, but it is hard to
     dnl pick out/analyze warning messages when the compile-line is long.
     dnl
     dnl Sets:
    @@ -2854,7 +2854,7 @@ esac
     
     ])dnl
     dnl ---------------------------------------------------------------------------
    -dnl CF_NCURSES_LIBS version: 20 updated: 2021/01/03 08:05:37
    +dnl CF_NCURSES_LIBS version: 21 updated: 2021/09/04 06:37:12
     dnl ---------------
     dnl Look for the ncurses library.  This is a little complicated on Linux,
     dnl because it may be linked with the gpm (general purpose mouse) library.
    @@ -2883,7 +2883,7 @@ AC_CHECK_LIB(gpm,Gpm_Open,
     case "$host_os" in
     (freebsd*)
     	# This is only necessary if you are linking against an obsolete
    -	# version of ncurses (but it should do no harm, since it's static).
    +	# version of ncurses (but it should do no harm, since it is static).
     	if test "$cf_nculib_root" = ncurses ; then
     		AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
     	fi
    diff --git a/test/configure b/test/configure
    index b03a0d0a..46e9a104 100755
    --- a/test/configure
    +++ b/test/configure
    @@ -9881,7 +9881,7 @@ fi
     case "$host_os" in
     (freebsd*)
     	# This is only necessary if you are linking against an obsolete
    -	# version of ncurses (but it should do no harm, since it's static).
    +	# version of ncurses (but it should do no harm, since it is static).
     	if test "$cf_nculib_root" = ncurses ; then
     		echo "$as_me:9886: checking for tgoto in -lmytinfo" >&5
     echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
    @@ -12004,7 +12004,7 @@ fi
     case "$host_os" in
     (freebsd*)
     	# This is only necessary if you are linking against an obsolete
    -	# version of ncurses (but it should do no harm, since it's static).
    +	# version of ncurses (but it should do no harm, since it is static).
     	if test "$cf_nculib_root" = ncurses ; then
     		echo "$as_me:12009: checking for tgoto in -lmytinfo" >&5
     echo $ECHO_N "checking for tgoto in -lmytinfo... $ECHO_C" >&6
    diff --git a/test/ncurses.c b/test/ncurses.c
    index fd1dcd3b..c387b0a1 100644
    --- a/test/ncurses.c
    +++ b/test/ncurses.c
    @@ -41,7 +41,7 @@ AUTHOR
        Author: Eric S. Raymond  1993
                Thomas E. Dickey (beginning revision 1.27 in 1996).
     
    -$Id: ncurses.c,v 1.526 2021/05/22 19:45:57 tom Exp $
    +$Id: ncurses.c,v 1.527 2021/09/04 10:31:03 tom Exp $
     
     ***************************************************************************/
     
    @@ -7236,11 +7236,11 @@ overlap_test(bool recur GCC_UNUSED)
     	    overlap_test_0(win2, win1);
     	    break;
     
    -	case 'c':		/* fill window A so it's visible */
    +	case 'c':		/* fill window A so it is visible */
     	    overlap_test_1(flavor[otBASE_fill], 0, win1, 'A');
     	    break;
     
    -	case 'd':		/* fill window B so it's visible */
    +	case 'd':		/* fill window B so it is visible */
     	    overlap_test_1(flavor[otBASE_fill], 1, win2, 'B');
     	    break;
     
    @@ -7436,11 +7436,11 @@ x_overlap_test(bool recur GCC_UNUSED)
     	    overlap_test_0(win2, win1);
     	    break;
     
    -	case 'c':		/* fill window A so it's visible */
    +	case 'c':		/* fill window A so it is visible */
     	    x_overlap_test_1(flavor[otBASE_fill], 0, win1, WIDE_A);
     	    break;
     
    -	case 'd':		/* fill window B so it's visible */
    +	case 'd':		/* fill window B so it is visible */
     	    x_overlap_test_1(flavor[otBASE_fill], 1, win2, WIDE_B);
     	    break;
     
    @@ -7855,7 +7855,7 @@ main_menu(bool top)
     
     	if (doit != NULL && doit(FALSE) == OK) {
     	    /*
    -	     * This may be overkill; it's intended to reset everything back
    +	     * This may be overkill; it is intended to reset everything back
     	     * to the initial terminal modes so that tests don't get in
     	     * each other's way.
     	     */
    diff --git a/test/tracemunch b/test/tracemunch
    index cde06e57..b2d3b03b 100755
    --- a/test/tracemunch
    +++ b/test/tracemunch
    @@ -1,5 +1,5 @@
     #!/usr/bin/env perl
    -# $Id: tracemunch,v 1.40 2021/02/13 19:29:12 tom Exp $
    +# $Id: tracemunch,v 1.41 2021/09/04 10:31:03 tom Exp $
     ##############################################################################
     # Copyright 2018-2020,2021 Thomas E. Dickey                                  #
     # Copyright 1998-2005,2017 Free Software Foundation, Inc.                    #
    @@ -744,7 +744,7 @@ sub muncher($) {
                     $_ =~ s/^[^:]*://;
                 }
     
    -            # Transform window pointer addresses so it's easier to compare logs
    +            # Transform window pointer addresses to make it easier to compare logs
                 $awaiting = "curscr" if ( $_ =~ /creating curscr/ );
                 $awaiting = "newscr" if ( $_ =~ /creating newscr/ );
                 $awaiting = "stdscr" if ( $_ =~ /creating stdscr/ );