]> ncurses.scripts.mit.edu Git - ncurses.git/commitdiff
ncurses 6.2 - patch 20210925
authorThomas E. Dickey <dickey@invisible-island.net>
Sat, 25 Sep 2021 22:18:46 +0000 (22:18 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sat, 25 Sep 2021 22:18:46 +0000 (22:18 +0000)
+ add kbeg to xterm+keypad to accommodate termcap applications -TD
+ add smglp and smgrp to vt420+lrmm, to provide useful data for the
  "tabs" +m option -TD
+ build-fix for gcc 3.4.3 with Solaris10, which does not allow forward
  reference of anonymous struct typedef.
+ modify tput to allow multiple commands per line.
+ minor fixes for tset manpage.

37 files changed:
NEWS
VERSION
dist.mk
doc/html/man/adacurses6-config.1.html
doc/html/man/captoinfo.1m.html
doc/html/man/clear.1.html
doc/html/man/form.3x.html
doc/html/man/infocmp.1m.html
doc/html/man/infotocap.1m.html
doc/html/man/menu.3x.html
doc/html/man/ncurses.3x.html
doc/html/man/ncurses6-config.1.html
doc/html/man/panel.3x.html
doc/html/man/tabs.1.html
doc/html/man/terminfo.5.html
doc/html/man/tic.1m.html
doc/html/man/toe.1m.html
doc/html/man/tput.1.html
doc/html/man/tset.1.html
include/MKterm.h.awk.in
include/curses.h.in
man/tput.1
man/tset.1
misc/terminfo.src
ncurses/base/MKlib_gen.sh
ncurses/curses.priv.h
ncurses/new_pair.h
ncurses/term.priv.h
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec
package/ncursest.spec
progs/toe.c
progs/tput.c

diff --git a/NEWS b/NEWS
index 6da78c94c8e64b20f456761267596c63a50763c9..989bf2363a2e567feaf8ba6dc77f7b0a1adccbf9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -26,7 +26,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3708 2021/09/11 23:45:11 tom Exp $
+-- $Id: NEWS,v 1.3712 2021/09/24 19:45:04 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -46,6 +46,15 @@ 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.
 
 Changes through 1.9.9e did not credit all contributions;
 it is not possible to add this information.
 
+20210925
+       + add kbeg to xterm+keypad to accommodate termcap applications -TD
+       + add smglp and smgrp to vt420+lrmm, to provide useful data for the
+         "tabs" +m option -TD
+       + build-fix for gcc 3.4.3 with Solaris10, which does not allow forward
+         reference of anonymous struct typedef.
+       + modify tput to allow multiple commands per line.
+       + minor fixes for tset manpage.
+
 20210911
        + adjust ifdef in test_opaque.c to fix build with ncurses 5.7
        + add testing note for xterm-{hp|sco|sun} -TD
 20210911
        + adjust ifdef in test_opaque.c to fix build with ncurses 5.7
        + add testing note for xterm-{hp|sco|sun} -TD
diff --git a/VERSION b/VERSION
index 5a3f4a41dd738eb77a1081e989896a9d6d80c335..5280c093f7fd1a2b664eca002d45888c2b5ca561 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.2     20210911
+5:0:10 6.2     20210925
diff --git a/dist.mk b/dist.mk
index 8dd1217fbf339fc45a24baafc22e5cb6efa1be4a..951cf83ee5f91954af8ded73fac55c0970605d89 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -26,7 +26,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.1435 2021/09/11 10:58:38 tom Exp $
+# $Id: dist.mk,v 1.1437 2021/09/25 10:32:30 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
 # 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
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 6
 NCURSES_MINOR = 2
-NCURSES_PATCH = 20210911
+NCURSES_PATCH = 20210925
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
index 5c55394f957ec85ef7606e2471768bd3518923e3..896a37dc9c298d257141e27b8a0626acb851aea7 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 
 
 
 
index be6529ae717166b3bef196385b5b84d06c1237fe..6c62295d07afbbe4d0e7eda5a7c328211e54e3f4 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index e33f99d31639797cf73229a697827c6c5cc2f939..bb222f9143bfda669f735180b8cab8880de11e28 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 
 
 
 
index 711873385ea9dbfbd3465088b7d59c775e487153..907b12a52004e3bc0ca4fa8b2e166fe68f47452a 100644 (file)
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names  begin  "form_"  for  detailed
        descriptions of the entry points.
 
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names  begin  "form_"  for  detailed
        descriptions of the entry points.
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 
 
 
 
index 3ea177c441b4dfcaf7f9fade72f20a0af1fc2d19..18573a0d72ff6910fe66a7702dc1a9734e7d8c75 100644 (file)
 
        https://invisible-island.net/ncurses/tctest.html
 
 
        https://invisible-island.net/ncurses/tctest.html
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index fcfc4a68e997224b36ead722c4dabf9c844197d5..66c5384494edb20232ae56a5c719182681a455ae 100644 (file)
@@ -91,7 +91,7 @@
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index 43d05693d4f91909a9ced7a56b429d5f54948c24..590b0cea4f7dafb4de7cedc0daa16486705f161a 100644 (file)
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names  begin  "menu_"  for  detailed
        descriptions of the entry points.
 
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names  begin  "menu_"  for  detailed
        descriptions of the entry points.
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 
 
 
 
index 208269fd5a80d621058476751ab795547adb3d77..6bfb8675c07e85f509ca503744940566655ccd27 100644 (file)
@@ -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.
        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 <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
        The  <STRONG>ncurses</STRONG>  library emulates the curses library of System V Release 4
        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
 
        The  <STRONG>ncurses</STRONG>  library emulates the curses library of System V Release 4
        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
index 0ccec2639d1cc565800c68b64b53aacb8c499e39..12273291f20a7e135280b5176a9d46347594ba86 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 
 
 
 
index 68c333d20501bf9a5c23dab0ea72a6d9ddd17d00..0f61e014b25659183b008d4d9e1f2eba26994048 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index fe7bea6087d49588b8ff6ba790af59aca575c646..dc5cf413717962cd6049fd2bd71f5f795e284cef 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 
 
 
 
index 27fb326ac271fde38a0e02edb36260a4d14d504c..540e7060f7a684492c2b93e8124af9a0191bf4e6 100644 (file)
        have, by specifying how to perform screen operations, and by specifying
        padding requirements and initialization sequences.
 
        have, by specifying how to perform screen operations, and by specifying
        padding requirements and initialization sequences.
 
-       This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
 
 
 </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
index 608cf0f014ef3b6de6cddf246e84818a69eab1b2..39f1e664a510447ea1c881d31158787be50e2540 100644 (file)
        <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,   <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
        <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.  <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
 
        <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,   <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>,   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
        <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.  <STRONG><A HREF="user_caps.5.html">user_caps(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
index bb79ece55d6b204cda192b195f155c9773babbde..70f0340b18ab6b2f115c362e69dbc62abf0f9efa 100644 (file)
        <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,   <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
        <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
        <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>,   <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>,   <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>,   <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>,   <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
        <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 
 
 
 
index 504a66e4eb8a37d39dd43634990bddbb9519b747..00b0e006803be814fd0d0a28f0439e42113a96d2 100644 (file)
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tput.1,v 1.70 2021/09/04 19:02:50 tom Exp @
+  * @Id: tput.1,v 1.71 2021/09/19 00:34:23 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
        ---------------------------------------------------------------------
        <STRONG>0</STRONG>           (<EM>capname</EM>  is a numeric variable that is not specified in
                    the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this  terminal  type,  e.g.
        ---------------------------------------------------------------------
        <STRONG>0</STRONG>           (<EM>capname</EM>  is a numeric variable that is not specified in
                    the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this  terminal  type,  e.g.
-                   <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
+                   <STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-Thp2621</STRONG> <STRONG>xmc</STRONG>)
        <STRONG>1</STRONG>           no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
        <STRONG>2</STRONG>           usage error
        <STRONG>3</STRONG>           unknown terminal <EM>type</EM> or no <STRONG>terminfo</STRONG> database
        <STRONG>1</STRONG>           no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
        <STRONG>2</STRONG>           usage error
        <STRONG>3</STRONG>           unknown terminal <EM>type</EM> or no <STRONG>terminfo</STRONG> database
            for the standard <EM>capname</EM> operands, and an internal library function
            to analyze nonstandard <EM>capname</EM> operands.
 
            for the standard <EM>capname</EM> operands, and an internal library function
            to analyze nonstandard <EM>capname</EM> operands.
 
+           Besides  providing  more  reliable operation than AT&amp;T's utility, a
+           portability problem is introduced by  this  analysis.   An  OpenBSD
+           developer  adapted  the  internal  library function from ncurses to
+           allow <STRONG>tput</STRONG> to interpret multiple  commands  on  a  line.   Portable
+           applications should not rely upon this feature; ncurses provides it
+           to support applications written specifically for OpenBSD.
+
        This  implementation  (unlike  others)  can  accept  both  <EM>termcap</EM>  and
        This  implementation  (unlike  others)  can  accept  both  <EM>termcap</EM>  and
-       <EM>terminfo</EM> names for the <EM>capname</EM> feature, if <EM>termcap</EM> support is  compiled
-       in.   However,  the  predefined  <EM>termcap</EM>  and  <EM>terminfo</EM>  names have two
+       <EM>terminfo</EM>  names for the <EM>capname</EM> feature, if <EM>termcap</EM> support is compiled
+       in.  However, the  predefined  <EM>termcap</EM>  and  <EM>terminfo</EM>  names  have  two
        ambiguities in this case (and the <EM>terminfo</EM> name is assumed):
 
        ambiguities in this case (and the <EM>terminfo</EM> name is assumed):
 
-       <STRONG>o</STRONG>   The <EM>termcap</EM> name <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM>  name  <STRONG>dl1</STRONG>  (delete
+       <STRONG>o</STRONG>   The  <EM>termcap</EM>  name  <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM> name <STRONG>dl1</STRONG> (delete
            one line).
            one line).
-           The  <EM>terminfo</EM>  name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>DL</STRONG> (delete a
+           The <EM>terminfo</EM> name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>DL</STRONG>  (delete  a
            given number of lines).
 
            given number of lines).
 
-       <STRONG>o</STRONG>   The <EM>termcap</EM> name <STRONG>ed</STRONG> corresponds to  the  <EM>terminfo</EM>  name  <STRONG>rmdc</STRONG>  (end
+       <STRONG>o</STRONG>   The  <EM>termcap</EM>  name  <STRONG>ed</STRONG>  corresponds  to the <EM>terminfo</EM> name <STRONG>rmdc</STRONG> (end
            delete mode).
            delete mode).
-           The  <EM>terminfo</EM>  name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>cd</STRONG> (clear to
+           The <EM>terminfo</EM> name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name <STRONG>cd</STRONG>  (clear  to
            end of screen).
 
            end of screen).
 
-       The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and  the  parameter-substitution  features
-       used  in  the  <STRONG>cup</STRONG>  example,  were  not  supported in BSD curses before
+       The  <STRONG>longname</STRONG>  and  <STRONG>-S</STRONG> options, and the parameter-substitution features
+       used in the <STRONG>cup</STRONG> example,  were  not  supported  in  BSD  curses  before
        4.3reno (1989) or in AT&amp;T/USL curses before SVr4 (1988).
 
        4.3reno (1989) or in AT&amp;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 <STRONG>clear</STRONG>, <STRONG>init</STRONG> and <STRONG>reset</STRONG>.
+       IEEE   Std   1003.1/The   Open   Group   Base  Specifications  Issue  7
+       (POSIX.1-2008) documents only the operands for <STRONG>clear</STRONG>, <STRONG>init</STRONG>  and  <STRONG>reset</STRONG>.
        There are a few interesting observations to make regarding that:
 
        There are a few interesting observations to make regarding that:
 
-       <STRONG>o</STRONG>   In this implementation, <STRONG>clear</STRONG> is part of the <EM>capname</EM> support.   The
-           others   (<STRONG>init</STRONG>   and   <STRONG>longname</STRONG>)  do  not  correspond  to  terminal
+       <STRONG>o</STRONG>   In  this implementation, <STRONG>clear</STRONG> is part of the <EM>capname</EM> support.  The
+           others  (<STRONG>init</STRONG>  and  <STRONG>longname</STRONG>)  do  not   correspond   to   terminal
            capabilities.
 
        <STRONG>o</STRONG>   Other  implementations  of  <STRONG>tput</STRONG>  on  SVr4-based  systems  such  as
            capabilities.
 
        <STRONG>o</STRONG>   Other  implementations  of  <STRONG>tput</STRONG>  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 <EM>capname</EM> operands.
 
        <STRONG>o</STRONG>   A few platforms such as FreeBSD recognize termcap names rather than
            terminfo capability names in their respective <STRONG>tput</STRONG> commands.  Since
            provide support for <EM>capname</EM> operands.
 
        <STRONG>o</STRONG>   A few platforms such as FreeBSD recognize termcap names rather than
            terminfo capability names in their respective <STRONG>tput</STRONG> commands.  Since
-           2010, NetBSD's <STRONG>tput</STRONG> uses terminfo names.   Before  that,  it  (like
+           2010,  NetBSD's  <STRONG>tput</STRONG>  uses  terminfo names.  Before that, it (like
            FreeBSD) recognized termcap names.
 
            FreeBSD) recognized termcap names.
 
-           Beginning  in  2021,  FreeBSD uses the ncurses <STRONG>tput</STRONG>, configured for
+           Beginning in 2021, FreeBSD uses the ncurses  <STRONG>tput</STRONG>,  configured  for
            both terminfo (tested first) and termcap (as a fallback).
 
        Because (apparently) <EM>all</EM> of the certified Unix systems support the full
            both terminfo (tested first) and termcap (as a fallback).
 
        Because (apparently) <EM>all</EM> 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.
 
        not be apparent.
 
-       <STRONG>o</STRONG>   X/Open Curses Issue 7 documents <STRONG>tput</STRONG> differently, with <EM>capname</EM>  and
+       <STRONG>o</STRONG>   X/Open  Curses Issue 7 documents <STRONG>tput</STRONG> differently, with <EM>capname</EM> and
            the other features used in this implementation.
 
            the other features used in this implementation.
 
-       <STRONG>o</STRONG>   That  is,  there  are  two standards for <STRONG>tput</STRONG>: 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
+       <STRONG>o</STRONG>   That is, there are two standards for <STRONG>tput</STRONG>:  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.
 
            terminal capabilities database.
 
-       <STRONG>o</STRONG>   While it is certainly possible to  write  a  <STRONG>tput</STRONG>  program  without
-           using   curses,   none   of   the   systems  which  have  a  curses
-           implementation provide a <STRONG>tput</STRONG> utility which does  not  provide  the
+       <STRONG>o</STRONG>   While  it  is  certainly  possible  to write a <STRONG>tput</STRONG> program without
+           using  curses,  none  of  the   systems   which   have   a   curses
+           implementation  provide  a  <STRONG>tput</STRONG> utility which does not provide the
            <EM>capname</EM> 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):
 
            <EM>capname</EM> 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):
 
-       <STRONG>o</STRONG>   It  assigns exit code 4 to "invalid operand", which may be the same
-           as <EM>unknown</EM> <EM>capability</EM>.  For instance, the source code for  Solaris'
+       <STRONG>o</STRONG>   It assigns exit code 4 to "invalid operand", which may be the  same
+           as  <EM>unknown</EM> <EM>capability</EM>.  For instance, the source code for Solaris'
            xcurses uses the term "invalid" in this case.
 
            xcurses uses the term "invalid" in this case.
 
-       <STRONG>o</STRONG>   It  assigns  exit  code  255  to  a  numeric  variable  that is not
+       <STRONG>o</STRONG>   It assigns exit  code  255  to  a  numeric  variable  that  is  not
            specified in the terminfo database.  That likely is a documentation
            specified in the terminfo database.  That likely is a documentation
-           error,  confusing  the  <STRONG>-1</STRONG>  written  to  the standard output for an
+           error, confusing the <STRONG>-1</STRONG> written  to  the  standard  output  for  an
            absent or cancelled numeric value versus an (unsigned) exit code.
 
            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
        as ncurses.
 
        NetBSD curses documents different exit codes which do not correspond to
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 
 
 
 
index 4d3d03389691eebceb44fa3ed2cb0782fc6957c5..ed9dc11ca9caa56a4608e405bbb04f79887e8377 100644 (file)
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tset.1,v 1.57 2021/07/10 22:50:45 tom Exp @
+  * @Id: tset.1,v 1.58 2021/09/18 21:21:55 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 
        <STRONG>-c</STRONG>   Set control characters and modes.
 
 
        <STRONG>-c</STRONG>   Set control characters and modes.
 
-       <STRONG>-e</STRONG>   Set the erase character to <EM>ch</EM>.
+       <STRONG>-e</STRONG> <EM>ch</EM>
+            Set the erase character to <EM>ch</EM>.
 
        <STRONG>-I</STRONG>   Do  not  send  the  terminal  or tab initialization strings to the
             terminal.
 
 
        <STRONG>-I</STRONG>   Do  not  send  the  terminal  or tab initialization strings to the
             terminal.
 
-       <STRONG>-i</STRONG>   Set the interrupt character to <EM>ch</EM>.
+       <STRONG>-i</STRONG> <EM>ch</EM>
+            Set the interrupt character to <EM>ch</EM>.
 
 
-       <STRONG>-k</STRONG>   Set the line kill character to <EM>ch</EM>.
+       <STRONG>-k</STRONG> <EM>ch</EM>
+            Set the line kill character to <EM>ch</EM>.
 
 
-       <STRONG>-m</STRONG>   Specify a mapping from a port type to a terminal.  See the section
+       <STRONG>-m</STRONG> <EM>mapping</EM>
+            Specify a mapping from a port type to a terminal.  See the section
             <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more information.
 
        <STRONG>-Q</STRONG>   Do  not  display any values for the erase, interrupt and line kill
             <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more information.
 
        <STRONG>-Q</STRONG>   Do  not  display any values for the erase, interrupt and line kill
        <STRONG>csh(1)</STRONG>,   <STRONG>sh(1)</STRONG>,   <STRONG>stty(1)</STRONG>,   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,  <STRONG>tty(4)</STRONG>,  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
        <STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
 
        <STRONG>csh(1)</STRONG>,   <STRONG>sh(1)</STRONG>,   <STRONG>stty(1)</STRONG>,   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,  <STRONG>tty(4)</STRONG>,  <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
        <STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210904).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210925).
 
 
 
 
 
 
index b72136d813eac4a511bb3dbe6fd71e022b40682f..e79840d9974afede3e2a4589716a696e1f687566 100644 (file)
@@ -60,7 +60,7 @@ BEGIN {
        print  "/*    and: Thomas E. Dickey                        1995-on                  */"
        print  "/****************************************************************************/"
        print  ""
        print  "/*    and: Thomas E. Dickey                        1995-on                  */"
        print  "/****************************************************************************/"
        print  ""
-       print  "/* $Id: MKterm.h.awk.in,v 1.81 2021/08/18 20:52:42 tom Exp $ */"
+       print  "/* $Id: MKterm.h.awk.in,v 1.82 2021/09/24 17:02:46 tom Exp $ */"
        print  ""
        print  "/*"
        print  "**      term.h -- Definition of struct term"
        print  ""
        print  "/*"
        print  "**      term.h -- Definition of struct term"
@@ -250,13 +250,16 @@ END {
        print  " */"
        print  "#ifdef NCURSES_INTERNALS"
        print  ""
        print  " */"
        print  "#ifdef NCURSES_INTERNALS"
        print  ""
+       print  "#undef TERMINAL"
+       print  "#define TERMINAL struct term"
+       print  "TERMINAL;"
+       print  ""
        if (@NCURSES_EXT_COLORS@) {
        declare_termtype("int","2");
        } else {
        if (@NCURSES_EXT_COLORS@) {
        declare_termtype("int","2");
        } else {
-       print  "typedef TERMTYPE TERMTYPE2;"
+       print  "#undef TERMTYPE2"
+       print  "#define TERMTYPE2 TERMTYPE"
        }
        }
-       print  ""
-       print  "typedef struct term TERMINAL;"
        print  "#else"
        print  ""
        print  "typedef struct term {           /* describe an actual terminal */"
        print  "#else"
        print  ""
        print  "typedef struct term {           /* describe an actual terminal */"
index 3bf96952fb7506d42929289428ae04a0289bea14..6acf2d03fe0b6f7d98429e17e50e775b66250f5a 100644 (file)
@@ -33,7 +33,7 @@
  *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
  *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
-/* $Id: curses.h.in,v 1.276 2021/08/29 09:30:34 tom Exp $ */
+/* $Id: curses.h.in,v 1.277 2021/09/24 16:07:37 tom Exp $ */
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
@@ -431,7 +431,14 @@ extern NCURSES_EXPORT_VAR(chtype) acs_map[];
  */
 #define _NEWINDEX      -1
 
  */
 #define _NEWINDEX      -1
 
+#ifdef NCURSES_INTERNALS
+#undef SCREEN
+#define SCREEN struct screen
+SCREEN;
+#else
 typedef struct screen  SCREEN;
 typedef struct screen  SCREEN;
+#endif
+
 typedef struct _win_st WINDOW;
 
 typedef        chtype  attr_t;         /* ...must be at least as wide as chtype */
 typedef struct _win_st WINDOW;
 
 typedef        chtype  attr_t;         /* ...must be at least as wide as chtype */
index f02ec5338d2fda25f162c78d7b8d8b67b18e3eee..50a7cd6c8fba956d00b9a1bebb2700603ce03e53 100644 (file)
@@ -28,7 +28,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tput.1,v 1.70 2021/09/04 19:02:50 tom Exp $
+.\" $Id: tput.1,v 1.71 2021/09/19 00:34:23 tom Exp $
 .TH @TPUT@ 1 ""
 .ds d @TERMINFO@
 .ds n 1
 .TH @TPUT@ 1 ""
 .ds d @TERMINFO@
 .ds n 1
@@ -423,7 +423,7 @@ exit code   error message
 \fB0\fR        T{
 (\fIcapname\fR is a numeric variable that is not specified in the
 \fBterminfo\fR(5) database for this terminal type, e.g.
 \fB0\fR        T{
 (\fIcapname\fR is a numeric variable that is not specified in the
 \fBterminfo\fR(5) database for this terminal type, e.g.
-\fB@TPUT@ \-T450 lines\fR and \fB@TPUT@ \-T2621 xmc\fR)
+\fB@TPUT@ \-T450 lines\fR and \fB@TPUT@ \-Thp2621 xmc\fR)
 T}
 \fB1\fR        no error message is printed, see the \fBEXIT CODES\fR section.
 \fB2\fR        usage error
 T}
 \fB1\fR        no error message is printed, see the \fBEXIT CODES\fR section.
 \fB2\fR        usage error
@@ -516,6 +516,14 @@ requiring \fB@TPUT@\fP to know which type to use.
 This implementation uses a table to determine the parameter types for
 the standard \fIcapname\fR operands, and an internal library
 function to analyze nonstandard \fIcapname\fR operands.
 This implementation uses a table to determine the parameter types for
 the standard \fIcapname\fR operands, and an internal library
 function to analyze nonstandard \fIcapname\fR operands.
+.IP
+Besides providing more reliable operation than AT&T's utility,
+a portability problem is introduced by this analysis.
+An OpenBSD developer adapted the internal library function from ncurses
+to allow \fBtput\fP to interpret multiple commands on a line.
+Portable applications should not rely upon this feature;
+ncurses provides it to support applications written
+specifically for OpenBSD.
 .PP
 This implementation (unlike others) can accept both \fItermcap\fP
 and \fIterminfo\fP names for the \fIcapname\fP feature,
 .PP
 This implementation (unlike others) can accept both \fItermcap\fP
 and \fIterminfo\fP names for the \fIcapname\fP feature,
index faf1c4eb6a76686c482bcaf6db19c045fda77f7f..063f5066eea47ffe27f1a7355991d026392374de 100644 (file)
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tset.1,v 1.57 2021/07/10 22:50:45 tom Exp $
+.\" $Id: tset.1,v 1.58 2021/09/18 21:21:55 tom Exp $
 .TH @TSET@ 1 ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
 .TH @TSET@ 1 ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -150,19 +150,19 @@ The options are as follows:
 .B \-c
 Set control characters and modes.
 .TP 5
 .B \-c
 Set control characters and modes.
 .TP 5
-.B \-e
+.BI \-e\  ch
 Set the erase character to \fIch\fR.
 .TP
 .B \-I
 Do not send the terminal or tab initialization strings to the terminal.
 .TP
 Set the erase character to \fIch\fR.
 .TP
 .B \-I
 Do not send the terminal or tab initialization strings to the terminal.
 .TP
-.B \-i
+.BI \-i\  ch
 Set the interrupt character to \fIch\fR.
 .TP
 Set the interrupt character to \fIch\fR.
 .TP
-.B \-k
+.BI \-k\  ch
 Set the line kill character to \fIch\fR.
 .TP
 Set the line kill character to \fIch\fR.
 .TP
-.B \-m
+.BI \-m\  mapping
 Specify a mapping from a port type to a terminal.
 See the section
 .B TERMINAL TYPE MAPPING
 Specify a mapping from a port type to a terminal.
 See the section
 .B TERMINAL TYPE MAPPING
index a0bb89ec270856cc4411bfa0f2f6632641adbb8d..bddbf10786585bfe4ee7dc5fc26e8e6adc99b318 100644 (file)
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
-#      $Revision: 1.916 $
-#      $Date: 2021/09/11 23:22:59 $
+#      $Revision: 1.918 $
+#      $Date: 2021/09/21 08:18:36 $
 #
 # 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
 #
 # 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
@@ -2837,7 +2837,9 @@ vt340|dec-vt340|vt330|dec-vt330|dec vt340 graphics terminal with 24 line page,
 
 # Left/right margins are supported in xterm since patch #279 (2012/05/10)
 vt420+lrmm|VT420 left/right margins,
 
 # Left/right margins are supported in xterm since patch #279 (2012/05/10)
 vt420+lrmm|VT420 left/right margins,
-       mgc=\E[?69l, smglr=\E[?69h\E[%i%p1%d;%p2%ds,
+       mgc=\E[?69l, smglp=\E[?69h\E[%i%p1%ds,
+       smglr=\E[?69h\E[%i%p1%d;%p2%ds,
+       smgrp=\E[?69h\E[%i;%p1%ds,
 
 # DEC doesn't supply a vt400 description, so we add Daniel Glasser's
 # (originally written with vt420 as its primary name, and usable for it).
 
 # DEC doesn't supply a vt400 description, so we add Daniel Glasser's
 # (originally written with vt420 as its primary name, and usable for it).
@@ -5033,22 +5035,34 @@ xterm+alt+title|xterm 90 and 251 features combined,
 #  | NumLock |    /    |    *    |    -    |
 #  |         |   $Oo   |   $Oj   |   $OS   |
 #  |_________|__kpDIV__|__kpMUL__|__kpSUB__|
 #  | NumLock |    /    |    *    |    -    |
 #  |         |   $Oo   |   $Oj   |   $OS   |
 #  |_________|__kpDIV__|__kpMUL__|__kpSUB__|
-#  |    7         8         9    |         |
-#  |   $Ow   |   $Ox   |   $Oy   |    +    |
-#  |_ka1__K1_|_________|_ka3__K3_|   $Ok   |
-#  |    4    |    5    |    6    |  kpADD  |
+#  |    7         8         9    |    +    |
+#  |   $Ow   |   $Ox   |   $Oy   |   $Ok   |
+#  |_ka1__K1_|_________|_ka3__K3_|  kpADD  |
+#  |    4    |    5    |    6    |         |
 #  |   $Ot   |   $Ou   |   $Ov   |         |
 #  |_________|_kb2__K2_|_________|_________|
 #  |    1    |    2    |    3    |         |
 #  |   $Oq   |   $Or   |   $Os   |         |
 #  |_kc1__K4_|_________|_kc3__K5_|  enter  |
 #  |   $Ot   |   $Ou   |   $Ov   |         |
 #  |_________|_kb2__K2_|_________|_________|
 #  |    1    |    2    |    3    |         |
 #  |   $Oq   |   $Or   |   $Os   |         |
 #  |_kc1__K4_|_________|_kc3__K5_|  enter  |
-#  |         0         |   .     |   $OM   |
-#  |        $Op        |  $On    |         |
-#  |___________________|_________|_kent_@8_|
+#  |         0         |    .    |   $OM   |
+#  |        $Op        |   $On   |         |
+#  |_______kpZRO_______|__kpDOT__|_kent_@8_|
+#
+# ka2, kb1, kb3 and kc2 are extensions, as are the mixed-case names.
+# There are no termcap equivalents for these extensions.
+#
+# kpCMA (comma) is used here for the VT100 keypad, which xterm emulates with
+# shifted-keypad-plus, though normally that invokes a font-size change.
+#
+# Old versions of xterm, e.g., xterm-xfree86, documented \EOE as kb2, which
+# does not fit into this layout.  The extension kp5 fits, but is not visible
+# to termcap applications.  As an alternative, kbeg (which does have a termcap
+# equivalent) is provided.
 #
 xterm+keypad|xterm emulating VT100/VT220 numeric keypad,
 #
 xterm+keypad|xterm emulating VT100/VT220 numeric keypad,
-       kp5=\EOE, kpADD=\EOk, kpCMA=\EOl, kpDIV=\EOo, kpDOT=\EOn,
-       kpMUL=\EOj, kpSUB=\EOm, kpZRO=\EOp, use=vt220+keypad,
+       kbeg=\EOE, kp5=\EOE, kpADD=\EOk, kpCMA=\EOl, kpDIV=\EOo,
+       kpDOT=\EOn, kpMUL=\EOj, kpSUB=\EOm, kpZRO=\EOp,
+       use=vt220+keypad,
 #
 # Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
 # Alternatively, the same scheme with old-style function keys as in xterm-r6
 #
 # Those chunks use the new-style (the xterm oldFunctionKeys resource is false).
 # Alternatively, the same scheme with old-style function keys as in xterm-r6
@@ -27232,4 +27246,9 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #      + use hp+arrows in a few places -TD
 #      + use hp+pfk-cr in a few places -TD
 #
 #      + use hp+arrows in a few places -TD
 #      + use hp+pfk-cr in a few places -TD
 #
+# 2021-09-21
+#      + add kbeg to xterm+keypad to accommodate termcap applications -TD
+#      + add smglp and smgrp to vt420+lrmm, to provide useful data for the
+#        "tabs" +m option -TD
+#
 ######## SHANTIH!  SHANTIH!  SHANTIH!
 ######## SHANTIH!  SHANTIH!  SHANTIH!
index b264eada02578f9455bb33cf94d20ec45ce6d118..26e473b4bf8fa50646661d52c480571a9fa0c8a1 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # MKlib_gen.sh -- generate sources from curses.h macro definitions
 #
 #
 # MKlib_gen.sh -- generate sources from curses.h macro definitions
 #
-# ($Id: MKlib_gen.sh,v 1.69 2021/08/07 21:17:46 tom Exp $)
+# ($Id: MKlib_gen.sh,v 1.70 2021/09/24 19:23:20 tom Exp $)
 #
 ##############################################################################
 # Copyright 2018-2020,2021 Thomas E. Dickey                                  #
 #
 ##############################################################################
 # Copyright 2018-2020,2021 Thomas E. Dickey                                  #
@@ -471,6 +471,7 @@ END         {
                                        gsub(/[ \t]+/," ",value);
                                        sub(/^[0-9a-zA-Z_]+ /,"",value);
                                        sub(/^\* /,"",value);
                                        gsub(/[ \t]+/," ",value);
                                        sub(/^[0-9a-zA-Z_]+ /,"",value);
                                        sub(/^\* /,"",value);
+                                       gsub("struct [0-9a-zA-Z_]+ \*","",value);
                                        gsub(/[0-9a-zA-Z_]+ \* /,"",value);
                                        gsub(/ (const) /," ",value);
                                        gsub(/ (int|short|attr_t|chtype|wchar_t|NCURSES_BOOL|NCURSES_OUTC|NCURSES_OUTC_sp|va_list) /," ",value);
                                        gsub(/[0-9a-zA-Z_]+ \* /,"",value);
                                        gsub(/ (const) /," ",value);
                                        gsub(/ (int|short|attr_t|chtype|wchar_t|NCURSES_BOOL|NCURSES_OUTC|NCURSES_OUTC_sp|va_list) /," ",value);
index c0d579fc356375de642e5db9415099b8c3f5acc4..872d25af95425afde4a2936ce07682557a9b3e42 100644 (file)
@@ -35,7 +35,7 @@
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
- * $Id: curses.priv.h,v 1.645 2021/09/04 10:29:15 tom Exp $
+ * $Id: curses.priv.h,v 1.646 2021/09/24 16:09:35 tom Exp $
  *
  *     curses.priv.h
  *
  *
  *     curses.priv.h
  *
@@ -899,8 +899,7 @@ typedef enum {
 /*
  * The SCREEN structure.
  */
 /*
  * The SCREEN structure.
  */
-
-struct screen {
+typedef struct screen {
        int             _ifd;           /* input file descriptor for screen */
        int             _ofd;           /* output file descriptor for screen */
        FILE            *_ofp;          /* output file ptr for screen       */
        int             _ifd;           /* input file descriptor for screen */
        int             _ofd;           /* output file descriptor for screen */
        FILE            *_ofp;          /* output file ptr for screen       */
@@ -1184,7 +1183,8 @@ struct screen {
        const char      *_tputs_trace;
 #endif
 #endif
        const char      *_tputs_trace;
 #endif
 #endif
-};
+#undef SCREEN
+} SCREEN;
 
 extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
 extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
 
 extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
 extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
index bc031a70ca5c0d9763ee97bbb0018d4ff91ad2c9..49d7e8b8dbdd2b1cf2385d02c531795fcc4c6b63 100644 (file)
@@ -34,7 +34,7 @@
 /*
  * Common type definitions and macros for new_pair.c, lib_color.c
  *
 /*
  * Common type definitions and macros for new_pair.c, lib_color.c
  *
- * $Id: new_pair.h,v 1.12 2021/08/18 19:18:12 tom Exp $
+ * $Id: new_pair.h,v 1.13 2021/09/24 17:52:01 tom Exp $
  */
 
 #ifndef NEW_PAIR_H
  */
 
 #ifndef NEW_PAIR_H
@@ -46,7 +46,9 @@
 
 #include <sys/types.h>
 
 
 #include <sys/types.h>
 
-typedef struct screen  SCREEN;
+#undef SCREEN
+#define SCREEN struct screen
+SCREEN;
 
 #define LIMIT_TYPED(n,t) \
        (t)(((n) > MAX_OF_TYPE(t)) \
 
 #define LIMIT_TYPED(n,t) \
        (t)(((n) > MAX_OF_TYPE(t)) \
index f31e9f587bc106ba6672eb3ad5d8ec3bd958584b..85380ac33e212ed210dcb7080e2d6b570cb08c04 100644 (file)
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /*
  ****************************************************************************/
 
 /*
- * $Id: term.priv.h,v 1.4 2021/08/19 20:02:09 tom Exp $
+ * $Id: term.priv.h,v 1.5 2021/09/24 16:42:04 tom Exp $
  *
  *     term.priv.h
  *
  *
  *     term.priv.h
  *
@@ -102,11 +102,6 @@ typedef struct {
 /*
  * Internals for term.h
  */
 /*
  * Internals for term.h
  */
-
-#if NCURSES_EXT_COLORS
-typedef struct termtype2  TERMTYPE2;
-#endif
-
 typedef struct term {                  /* describe an actual terminal */
        TERMTYPE        type;           /* terminal type description */
        short           Filedes;        /* file description being written to */
 typedef struct term {                  /* describe an actual terminal */
        TERMTYPE        type;           /* terminal type description */
        short           Filedes;        /* file description being written to */
@@ -118,6 +113,7 @@ typedef struct term {                       /* describe an actual terminal */
 #if NCURSES_EXT_COLORS
        TERMTYPE2       type2;          /* extended terminal type description */
 #endif
 #if NCURSES_EXT_COLORS
        TERMTYPE2       type2;          /* extended terminal type description */
 #endif
+#undef TERMINAL
 } TERMINAL;
 
 /*
 } TERMINAL;
 
 /*
index 0e7cae888a339c91b6a772b33992ca9807cc1482..42f5224a5998b9d2a6e7087265554dba0ab02315 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20210911) unstable; urgency=low
+ncurses6 (6.2+20210925) unstable; urgency=low
 
   * latest weekly patch
 
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Fri, 10 Sep 2021 20:03:50 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Fri, 24 Sep 2021 15:17:49 -0400
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index 0e7cae888a339c91b6a772b33992ca9807cc1482..42f5224a5998b9d2a6e7087265554dba0ab02315 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20210911) unstable; urgency=low
+ncurses6 (6.2+20210925) unstable; urgency=low
 
   * latest weekly patch
 
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Fri, 10 Sep 2021 20:03:50 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Fri, 24 Sep 2021 15:17:49 -0400
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
index 03f622998bfcf59c329443466b305d1cf29ccc21..b6df649bbe7e83df58ecf18608832afcd29d5b53 100644 (file)
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20210911) unstable; urgency=low
+ncurses6 (6.2+20210925) unstable; urgency=low
 
   * latest weekly patch
 
 
   * latest weekly patch
 
- -- Thomas E. Dickey <dickey@invisible-island.net>  Fri, 10 Sep 2021 20:03:50 -0400
+ -- Thomas E. Dickey <dickey@invisible-island.net>  Fri, 24 Sep 2021 15:17:49 -0400
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
index a5eb84a46edb1bd7548da064709fe423420bff25..043cd554a59c61ae1303fa8b78b1c3dd234d9146 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.477 2021/09/11 10:58:38 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.479 2021/09/25 10:32:30 tom Exp $\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "2"\r
 !define VERSION_YYYY  "2021"\r
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "2"\r
 !define VERSION_YYYY  "2021"\r
-!define VERSION_MMDD  "0911"\r
+!define VERSION_MMDD  "0925"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index 3dbf413a5129dda1198561caea925bb264bdf4c0..d771d4b33f2e6216b1ca00a025ac23a693922d88 100644 (file)
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.2
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.2
-Release: 20210911
+Release: 20210925
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index 98d052ede5170cbbf0ccdc5f1a6d370976b88846..b6755bfd56d6f57f027677c787bc6bcf163e497e 100644 (file)
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.2
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.2
-Release: 20210911
+Release: 20210925
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index e0216f1db60ee5e68569e0b07068bd15882acb5a..dd527d26796fbd2a7980cc1bf843b63901133cc6 100644 (file)
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.2
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.2
-Release: 20210911
+Release: 20210925
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
index 643038f646680efb47558f05e711c2e6a14050a4..60a76a2223a8f03a0ffb95372556051d92692b20 100644 (file)
@@ -45,7 +45,7 @@
 #include <hashed_db.h>
 #endif
 
 #include <hashed_db.h>
 #endif
 
-MODULE_ID("$Id: toe.c,v 1.82 2021/06/26 19:44:08 tom Exp $")
+MODULE_ID("$Id: toe.c,v 1.83 2021/09/21 20:07:51 tom Exp $")
 
 #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
 
 
 #define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
 
@@ -245,7 +245,9 @@ make_db_name(char *dst, const char *src, unsigned limit)
            && !strcmp(src + size - lens, suffix)) {
            _nc_STRCPY(dst, src, PATH_MAX);
        } else {
            && !strcmp(src + size - lens, suffix)) {
            _nc_STRCPY(dst, src, PATH_MAX);
        } else {
-           _nc_SPRINTF(dst, _nc_SLIMIT(PATH_MAX) "%s%s", src, suffix);
+           _nc_SPRINTF(dst, _nc_SLIMIT(PATH_MAX) "%.*s%s",
+                       (int) (PATH_MAX - sizeof(suffix)),
+                       src, suffix);
        }
        result = TRUE;
     }
        }
        result = TRUE;
     }
index fe82d47235f5b3c0d103d4648f8f480ac487d772..ccc2f56d28c460473767b9e72f7dc0f18cbb5e49 100644 (file)
@@ -47,7 +47,7 @@
 #include <transform.h>
 #include <tty_settings.h>
 
 #include <transform.h>
 #include <tty_settings.h>
 
-MODULE_ID("$Id: tput.c,v 1.91 2021/08/21 00:24:45 tom Exp $")
+MODULE_ID("$Id: tput.c,v 1.94 2021/09/19 00:06:44 tom Exp $")
 
 #define PUTS(s)                fputs(s, stdout)
 
 
 #define PUTS(s)                fputs(s, stdout)
 
@@ -136,7 +136,7 @@ exit_code(int token, int value)
  * Returns nonzero on error.
  */
 static int
  * Returns nonzero on error.
  */
 static int
-tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
+tput_cmd(int fd, TTY * settings, bool opt_x, int argc, char **argv, int *used)
 {
     NCURSES_CONST char *name;
     char *s;
 {
     NCURSES_CONST char *name;
     char *s;
@@ -146,6 +146,7 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
 #endif
 
     name = check_aliases(argv[0], FALSE);
 #endif
 
     name = check_aliases(argv[0], FALSE);
+    *used = 1;
     if (is_reset || is_init) {
        TTY oldmode;
 
     if (is_reset || is_init) {
        TTY oldmode;
 
@@ -155,7 +156,7 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
 
        if (is_reset) {
            reset_start(stdout, TRUE, FALSE);
 
        if (is_reset) {
            reset_start(stdout, TRUE, FALSE);
-           reset_tty_settings(fd, saved_settings);
+           reset_tty_settings(fd, settings);
        } else {
            reset_start(stdout, FALSE, TRUE);
        }
        } else {
            reset_start(stdout, FALSE, TRUE);
        }
@@ -165,13 +166,13 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
 #else
        (void) fd;
 #endif
 #else
        (void) fd;
 #endif
-       set_control_chars(saved_settings, terasechar, intrchar, tkillchar);
-       set_conversions(saved_settings);
+       set_control_chars(settings, terasechar, intrchar, tkillchar);
+       set_conversions(settings);
        if (send_init_strings(fd, &oldmode)) {
            reset_flush();
        }
 
        if (send_init_strings(fd, &oldmode)) {
            reset_flush();
        }
 
-       update_tty_settings(&oldmode, saved_settings);
+       update_tty_settings(&oldmode, settings);
        return 0;
     }
 
        return 0;
     }
 
@@ -217,7 +218,8 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
     } else if (VALID_STRING(s)) {
        if (argc > 1) {
            int k;
     } else if (VALID_STRING(s)) {
        if (argc > 1) {
            int k;
-           int ignored;
+           int analyzed;
+           int popcount;
            long numbers[1 + NUM_PARM];
            char *strings[1 + NUM_PARM];
            char *p_is_s[NUM_PARM];
            long numbers[1 + NUM_PARM];
            char *strings[1 + NUM_PARM];
            char *p_is_s[NUM_PARM];
@@ -254,14 +256,19 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
            }
 #endif
 
            }
 #endif
 
+           popcount = 0;
+           _nc_reset_tparm(NULL);
            switch (paramType) {
            case Num_Str:
                s = TPARM_2(s, numbers[1], strings[2]);
            switch (paramType) {
            case Num_Str:
                s = TPARM_2(s, numbers[1], strings[2]);
+               analyzed = 2;
                break;
            case Num_Str_Str:
                s = TPARM_3(s, numbers[1], strings[2], strings[3]);
                break;
            case Num_Str_Str:
                s = TPARM_3(s, numbers[1], strings[2], strings[3]);
+               analyzed = 3;
                break;
            case Numbers:
                break;
            case Numbers:
+               analyzed = _nc_tparm_analyze(NULL, s, p_is_s, &popcount);
 #define myParam(n) numbers[n]
                s = TIPARM_9(s,
                             myParam(1),
 #define myParam(n) numbers[n]
                s = TIPARM_9(s,
                             myParam(1),
@@ -278,7 +285,7 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
            case Other:
                /* FALLTHRU */
            default:
            case Other:
                /* FALLTHRU */
            default:
-               (void) _nc_tparm_analyze(NULL, s, p_is_s, &ignored);
+               analyzed = _nc_tparm_analyze(NULL, s, p_is_s, &popcount);
 #define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n])
                s = TPARM_9(s,
                            myParam(1),
 #define myParam(n) (p_is_s[n - 1] != 0 ? ((TPARM_ARG) strings[n]) : numbers[n])
                s = TPARM_9(s,
                            myParam(1),
@@ -293,6 +300,10 @@ tput_cmd(int fd, TTY * saved_settings, bool opt_x, int argc, char *argv[])
 #undef myParam
                break;
            }
 #undef myParam
                break;
            }
+           if (analyzed < popcount) {
+               analyzed = popcount;
+           }
+           *used += analyzed;
        }
 
        /* use putp() in order to perform padding */
        }
 
        /* use putp() in order to perform padding */
@@ -312,6 +323,7 @@ main(int argc, char **argv)
     char buf[BUFSIZ];
     int result = 0;
     int fd;
     char buf[BUFSIZ];
     int result = 0;
     int fd;
+    int used;
     TTY tty_settings;
     bool opt_x = FALSE;                /* clear scrollback if possible */
     bool is_alias;
     TTY tty_settings;
     bool opt_x = FALSE;                /* clear scrollback if possible */
     bool is_alias;
@@ -372,34 +384,53 @@ main(int argc, char **argv)
        quit(ErrTermType, "unknown terminal \"%s\"", term);
 
     if (cmdline) {
        quit(ErrTermType, "unknown terminal \"%s\"", term);
 
     if (cmdline) {
+       int code = 0;
        if ((argc <= 0) && !is_alias)
            usage();
        if ((argc <= 0) && !is_alias)
            usage();
-       ExitProgram(tput_cmd(fd, &tty_settings, opt_x, argc, argv));
+       while (argc > 0) {
+           code = tput_cmd(fd, &tty_settings, opt_x, argc, argv, &used);
+           if (code != 0)
+               break;
+           argc -= used;
+           argv += used;
+       }
+       ExitProgram(code);
     }
 
     while (fgets(buf, sizeof(buf), stdin) != 0) {
     }
 
     while (fgets(buf, sizeof(buf), stdin) != 0) {
-       char *argvec[16];       /* command, 9 parms, null, & slop */
+       size_t need = strlen(buf);
+       char **argvec = typeCalloc(char *, need + 1);
+       char **argnow;
        int argnum = 0;
        char *cp;
 
        int argnum = 0;
        char *cp;
 
-       /* crack the argument list into a dope vector */
+       if (argvec == NULL) {
+           quit(ErrSystem(1), strerror(errno));
+       }
+
+       /* split the buffer into tokens */
        for (cp = buf; *cp; cp++) {
            if (isspace(UChar(*cp))) {
                *cp = '\0';
        for (cp = buf; *cp; cp++) {
            if (isspace(UChar(*cp))) {
                *cp = '\0';
-           } else if (cp == buf || cp[-1] == 0) {
+           } else if (cp == buf || cp[-1] == '\0') {
                argvec[argnum++] = cp;
                argvec[argnum++] = cp;
-               if (argnum >= (int) SIZEOF(argvec) - 1)
+               if (argnum >= (int) need)
                    break;
            }
        }
                    break;
            }
        }
-       argvec[argnum] = 0;
 
 
-       if (argnum != 0
-           && tput_cmd(fd, &tty_settings, opt_x, argnum, argvec) != 0) {
-           if (result == 0)
-               result = ErrSystem(0);  /* will return value >4 */
-           ++result;
+       argnow = argvec;
+       while (argnum > 0) {
+           int code = tput_cmd(fd, &tty_settings, opt_x, argnum, argnow, &used);
+           if (code != 0) {
+               if (result == 0)
+                   result = ErrSystem(0);      /* will return value >4 */
+               ++result;
+           }
+           argnum -= used;
+           argnow += used;
        }
        }
+       free(argvec);
     }
 
     ExitProgram(result);
     }
 
     ExitProgram(result);