diff options
Diffstat (limited to 'system/ncurses/ncurses-6.3-20220101.patch')
-rw-r--r-- | system/ncurses/ncurses-6.3-20220101.patch | 1076 |
1 files changed, 1076 insertions, 0 deletions
diff --git a/system/ncurses/ncurses-6.3-20220101.patch b/system/ncurses/ncurses-6.3-20220101.patch new file mode 100644 index 000000000..4b6a7f147 --- /dev/null +++ b/system/ncurses/ncurses-6.3-20220101.patch @@ -0,0 +1,1076 @@ +# ncurses 6.3 - patch 20220101 - Thomas E. Dickey +# +# ------------------------------------------------------------------------------ +# +# Ncurses 6.3 is at +# ftp://ftp.invisible-island.net/ncurses/ +# https://invisible-mirror.net/archives/ncurses/ +# https://ftp.gnu.org/gnu/ncurses/ +# +# Patches for ncurses 6.3 can be found at +# ftp://ftp.invisible-island.net/ncurses/6.3 +# https://invisible-mirror.net/archives/ncurses/6.3 +# +# ------------------------------------------------------------------------------ +# ftp://ftp.invisible-island.net/ncurses/6.3/ncurses-6.3-20220101.patch.gz +# patch by Thomas E. Dickey <dickey@invisible-island.net> +# created Sun Jan 2 01:07:07 UTC 2022 +# ------------------------------------------------------------------------------ +# Ada95/package/debian/copyright | 2 +# COPYING | 4 +# NEWS | 8 + +# VERSION | 2 +# dist.mk | 6 - +# doc/html/man/adacurses6-config.1.html | 2 +# doc/html/man/captoinfo.1m.html | 2 +# doc/html/man/clear.1.html | 2 +# doc/html/man/curs_termcap.3x.html | 44 +++++++-- +# doc/html/man/curs_terminfo.3x.html | 146 +++++++++++++++++++------------- +# doc/html/man/form.3x.html | 2 +# doc/html/man/infocmp.1m.html | 2 +# doc/html/man/infotocap.1m.html | 2 +# doc/html/man/menu.3x.html | 2 +# doc/html/man/ncurses.3x.html | 2 +# doc/html/man/ncurses6-config.1.html | 2 +# doc/html/man/panel.3x.html | 2 +# doc/html/man/tabs.1.html | 2 +# doc/html/man/terminfo.5.html | 2 +# doc/html/man/tic.1m.html | 2 +# doc/html/man/toe.1m.html | 2 +# doc/html/man/tput.1.html | 2 +# doc/html/man/tset.1.html | 2 +# man/curs_termcap.3x | 36 ++++++- +# man/curs_terminfo.3x | 31 ++++++ +# package/debian-mingw/changelog | 4 +# package/debian-mingw/copyright | 2 +# package/debian-mingw64/changelog | 4 +# package/debian-mingw64/copyright | 2 +# package/debian/changelog | 4 +# package/debian/copyright | 2 +# package/mingw-ncurses.nsi | 6 - +# package/mingw-ncurses.spec | 2 +# package/ncurses.spec | 2 +# package/ncursest.spec | 2 +# test/package/debian-mingw/copyright | 2 +# test/package/debian-mingw64/copyright | 2 +# test/package/debian/copyright | 2 +# 38 files changed, 228 insertions(+), 119 deletions(-) +# ------------------------------------------------------------------------------ +Index: Ada95/package/debian/copyright +--- ncurses-6.3-20211225+/Ada95/package/debian/copyright 2021-01-01 09:54:30.000000000 +0000 ++++ ncurses-6.3-20220101/Ada95/package/debian/copyright 2022-01-02 00:28:07.000000000 +0000 +@@ -4,7 +4,7 @@ + + ------------------------------------------------------------------------------- + Files: * +-Copyright: 2017-2020,2021 by Thomas E. Dickey ++Copyright: 2017-2021,2022 by Thomas E. Dickey + Copyright: 1998-2016,2017 Free Software Foundation, Inc. + Licence: X11 + +Index: COPYING +Prereq: 1.10 +--- ncurses-6.3-20211225+/COPYING 2021-01-01 09:54:30.000000000 +0000 ++++ ncurses-6.3-20220101/COPYING 2022-01-01 11:47:50.000000000 +0000 +@@ -1,4 +1,4 @@ +-Copyright 2018-2020,2021 Thomas E. Dickey ++Copyright 2018-2021,2022 Thomas E. Dickey + Copyright 1998-2017,2018 Free Software Foundation, Inc. + + Permission is hereby granted, free of charge, to any person obtaining a +@@ -26,4 +26,4 @@ + authorization. + + -- vile:txtmode fc=72 +--- $Id: COPYING,v 1.10 2021/01/01 09:54:30 tom Exp $ ++-- $Id: COPYING,v 1.11 2022/01/01 11:47:50 tom Exp $ +Index: NEWS +Prereq: 1.3761 +--- ncurses-6.3-20211225+/NEWS 2021-12-26 00:29:27.000000000 +0000 ++++ ncurses-6.3-20220101/NEWS 2022-01-01 23:59:36.000000000 +0000 +@@ -1,5 +1,5 @@ + ------------------------------------------------------------------------------- +--- Copyright 2018-2020,2021 Thomas E. Dickey -- ++-- Copyright 2018-2021,2022 Thomas E. Dickey -- + -- Copyright 1998-2017,2018 Free Software Foundation, Inc. -- + -- -- + -- Permission is hereby granted, free of charge, to any person obtaining a -- +@@ -26,7 +26,7 @@ + -- sale, use or other dealings in this Software without prior written -- + -- authorization. -- + ------------------------------------------------------------------------------- +--- $Id: NEWS,v 1.3761 2021/12/26 00:29:27 tom Exp $ ++-- $Id: NEWS,v 1.3764 2022/01/01 23:59:36 tom Exp $ + ------------------------------------------------------------------------------- + + This is a log of changes that ncurses has gone through since Zeyd started +@@ -46,6 +46,10 @@ + Changes through 1.9.9e did not credit all contributions; + it is not possible to add this information. + ++20220101 ++ + add section on releasing memory to curs_termcap.3x and ++ curs_terminfo.3x manpages. ++ + 20211225 + + improve markup, e.g., for external manpage links in the manpages + (prompted by report by Helge Kreutzmann). +Index: VERSION +--- ncurses-6.3-20211225+/VERSION 2021-12-24 20:26:19.000000000 +0000 ++++ ncurses-6.3-20220101/VERSION 2022-01-01 11:46:49.000000000 +0000 +@@ -1 +1 @@ +-5:0:10 6.3 20211225 ++5:0:10 6.3 20220101 +Index: dist.mk +Prereq: 1.1458 +--- ncurses-6.3-20211225+/dist.mk 2021-12-25 22:11:07.000000000 +0000 ++++ ncurses-6.3-20220101/dist.mk 2022-01-01 11:48:38.000000000 +0000 +@@ -1,5 +1,5 @@ + ############################################################################## +-# Copyright 2018-2020,2021 Thomas E. Dickey # ++# Copyright 2018-2021,2022 Thomas E. Dickey # + # Copyright 1998-2017,2018 Free Software Foundation, Inc. # + # # + # Permission is hereby granted, free of charge, to any person obtaining a # +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: dist.mk,v 1.1458 2021/12/25 22:11:07 tom Exp $ ++# $Id: dist.mk,v 1.1460 2022/01/01 11:48:38 tom Exp $ + # Makefile for creating ncurses distributions. + # + # This only needs to be used directly as a makefile by developers, but +@@ -38,7 +38,7 @@ + # These define the major/minor/patch versions of ncurses. + NCURSES_MAJOR = 6 + NCURSES_MINOR = 3 +-NCURSES_PATCH = 20211225 ++NCURSES_PATCH = 20220101 + + # We don't append the patch to the version, since this only applies to releases + VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) +Index: doc/html/man/adacurses6-config.1.html +--- ncurses-6.3-20211225+/doc/html/man/adacurses6-config.1.html 2021-12-25 22:12:43.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/adacurses6-config.1.html 2022-01-02 00:19:47.000000000 +0000 +@@ -126,7 +126,7 @@ + </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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + +Index: doc/html/man/captoinfo.1m.html +--- ncurses-6.3-20211225+/doc/html/man/captoinfo.1m.html 2021-12-25 22:12:43.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/captoinfo.1m.html 2022-01-02 00:19:47.000000000 +0000 +@@ -199,7 +199,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="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> + +- This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/clear.1.html +--- ncurses-6.3-20211225+/doc/html/man/clear.1.html 2021-12-26 00:19:27.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/clear.1.html 2022-01-02 00:19:47.000000000 +0000 +@@ -150,7 +150,7 @@ + </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>, <STRONG>xterm(1)</STRONG>. + +- This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + +Index: doc/html/man/curs_termcap.3x.html +--- ncurses-6.3-20211225+/doc/html/man/curs_termcap.3x.html 2021-12-26 00:04:53.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/curs_termcap.3x.html 2022-01-02 00:19:51.000000000 +0000 +@@ -1,6 +1,6 @@ + <!-- + **************************************************************************** +- * Copyright 2018-2020,2021 Thomas E. Dickey * ++ * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2017,2018 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_termcap.3x,v 1.52 2021/12/25 21:31:00 tom Exp @ ++ * @Id: curs_termcap.3x,v 1.55 2022/01/01 23:49:07 tom Exp @ + --> + <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <HTML> +@@ -76,7 +76,7 @@ + been compiled. + + +-</PRE><H3><a name="h3-INITIALIZATION">INITIALIZATION</a></H3><PRE> ++</PRE><H3><a name="h3-Initialization">Initialization</a></H3><PRE> + The <STRONG>tgetent</STRONG> routine loads the entry for <EM>name</EM>. It returns: + + 1 on success, +@@ -100,7 +100,7 @@ + ing. + + +-</PRE><H3><a name="h3-CAPABILITY-VALUES">CAPABILITY VALUES</a></H3><PRE> ++</PRE><H3><a name="h3-Capability-Values">Capability Values</a></H3><PRE> + The <STRONG>tgetflag</STRONG> routine gets the boolean entry for <EM>id</EM>, or zero if it is + not available. + +@@ -129,7 +129,7 @@ + and <STRONG>tgetstr</STRONG> are compared in lookups. + + +-</PRE><H3><a name="h3-FORMATTING-CAPABILITIES">FORMATTING CAPABILITIES</a></H3><PRE> ++</PRE><H3><a name="h3-Formatting-Capabilities">Formatting Capabilities</a></H3><PRE> + The <STRONG>tgoto</STRONG> routine expands the given capability using the parameters. + + <STRONG>o</STRONG> Because the capability may have padding characters, the output of +@@ -157,7 +157,7 @@ + It can retrieve capabilities by either termcap or terminfo name. + + +-</PRE><H3><a name="h3-GLOBAL-VARIABLES">GLOBAL VARIABLES</a></H3><PRE> ++</PRE><H3><a name="h3-Global-Variables">Global Variables</a></H3><PRE> + The variables <STRONG>PC</STRONG>, <STRONG>UP</STRONG> and <STRONG>BC</STRONG> are set by <STRONG>tgetent</STRONG> to the terminfo entry's + data for <STRONG>pad_char</STRONG>, <STRONG>cursor_up</STRONG> and <STRONG>backspace_if_not_bs</STRONG>, respectively. <STRONG>UP</STRONG> + is not used by ncurses. <STRONG>PC</STRONG> is used in the <STRONG>tdelay_output</STRONG> function. <STRONG>BC</STRONG> +@@ -165,6 +165,29 @@ + in a system-specific coding to reflect the terminal speed. + + ++</PRE><H3><a name="h3-Releasing-Memory">Releasing Memory</a></H3><PRE> ++ The termcap functions provide no means for freeing memory, because ++ legacy termcap implementations used only the buffer areas provided by ++ the caller via <STRONG>tgetent</STRONG> and <STRONG>tgetstr</STRONG>. Those buffers are unused in ter- ++ minfo. ++ ++ On the other hand, terminfo allocates memory. It uses <STRONG>setupterm</STRONG> to re- ++ trieve the data used by <STRONG>tgetent</STRONG> and the functions which return capabil- ++ ity values such as <STRONG>tgetstr</STRONG>. One could use ++ ++ <STRONG>del_curterm(cur_term);</STRONG> ++ ++ ++ to free this memory, but there is an additional complication with ++ ncurses. It uses a fixed-size <EM>pool</EM> of storage locations, one per set- ++ ting of the <STRONG>TERM</STRONG> variable when <STRONG>tgetent</STRONG> is called. The <STRONG>screen(1)</STRONG> pro- ++ gram relies upon this arrangement, to improve its performance. ++ ++ An application which uses only the low-level termcap functions could ++ free the memory using <STRONG>del_curterm</STRONG>, because the pool is freed using oth- ++ er functions (see <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>). ++ ++ + </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> + Except where explicitly noted, routines that return an integer return + <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other +@@ -322,10 +345,11 @@ + <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li> + <li><a href="#h2-DESCRIPTION">DESCRIPTION</a> + <ul> +-<li><a href="#h3-INITIALIZATION">INITIALIZATION</a></li> +-<li><a href="#h3-CAPABILITY-VALUES">CAPABILITY VALUES</a></li> +-<li><a href="#h3-FORMATTING-CAPABILITIES">FORMATTING CAPABILITIES</a></li> +-<li><a href="#h3-GLOBAL-VARIABLES">GLOBAL VARIABLES</a></li> ++<li><a href="#h3-Initialization">Initialization</a></li> ++<li><a href="#h3-Capability-Values">Capability Values</a></li> ++<li><a href="#h3-Formatting-Capabilities">Formatting Capabilities</a></li> ++<li><a href="#h3-Global-Variables">Global Variables</a></li> ++<li><a href="#h3-Releasing-Memory">Releasing Memory</a></li> + </ul> + </li> + <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li> +Index: doc/html/man/curs_terminfo.3x.html +--- ncurses-6.3-20211225+/doc/html/man/curs_terminfo.3x.html 2021-12-26 00:04:53.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/curs_terminfo.3x.html 2022-01-02 00:19:51.000000000 +0000 +@@ -1,6 +1,6 @@ + <!-- + **************************************************************************** +- * Copyright 2018-2020,2021 Thomas E. Dickey * ++ * Copyright 2018-2021,2022 Thomas E. Dickey * + * Copyright 1998-2016,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,9 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_terminfo.3x,v 1.79 2021/12/25 21:34:58 tom Exp @ ++ * @Id: curs_terminfo.3x,v 1.80 2022/01/01 21:50:06 tom Exp @ ++ * *************************************************************************** ++ * *************************************************************************** + * *************************************************************************** + * *************************************************************************** + * *************************************************************************** +@@ -348,9 +350,34 @@ + <STRONG>const</STRONG> <STRONG>char</STRONG> <STRONG>*strnames[]</STRONG>, <STRONG>*strcodes[]</STRONG>, <STRONG>*strfnames[]</STRONG> + + ++</PRE><H3><a name="h3-Releasing-Memory">Releasing Memory</a></H3><PRE> ++ Each successful call to <STRONG>setupterm</STRONG> allocates memory to hold the terminal ++ description. As a side-effect, it sets <STRONG>cur_term</STRONG> to point to this memo- ++ ry. If an application calls ++ ++ <STRONG>del_curterm(cur_term);</STRONG> ++ ++ the memory will be freed. ++ ++ The formatting functions <STRONG>tparm</STRONG> and <STRONG>tiparm</STRONG> extend the storage allocated ++ by <STRONG>setupterm</STRONG>: ++ ++ <STRONG>o</STRONG> the "static" terminfo variables [a-z]. Before ncurses 6.3, those ++ were shared by all screens. With ncurses 6.3, those are allocated ++ per screen. See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for details. ++ ++ <STRONG>o</STRONG> to improve performance, ncurses 6.3 caches the result of analyzing ++ terminfo strings for their parameter types. That is stored as a ++ binary tree referenced from the <STRONG>TERMINAL</STRONG> structure. ++ ++ The higher-level <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG> functions use <STRONG>setupterm</STRONG>. Normally ++ they do not free this memory, but it is possible to do that using the ++ <STRONG><A HREF="curs_initscr.3x.html">delscreen(3x)</A></STRONG> function. ++ ++ + </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> +- Routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 +- only specifies "an integer value other than <STRONG>ERR</STRONG>") upon successful com- ++ Routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 ++ only specifies "an integer value other than <STRONG>ERR</STRONG>") upon successful com- + pletion, unless otherwise noted in the preceding routine descriptions. + + Routines that return pointers always return <STRONG>NULL</STRONG> on error. +@@ -372,25 +399,25 @@ + ditions are documented above. + + <STRONG>tputs</STRONG> +- returns an error if the string parameter is null. It does not +- detect I/O errors: X/Open states that <STRONG>tputs</STRONG> ignores the return ++ returns an error if the string parameter is null. It does not ++ detect I/O errors: X/Open states that <STRONG>tputs</STRONG> ignores the return + value of the output function <EM>putc</EM>. + + + </PRE><H3><a name="h3-Compatibility-macros">Compatibility macros</a></H3><PRE> +- This implementation provides a few macros for compatibility with sys- ++ This implementation provides a few macros for compatibility with sys- + tems before SVr4 (see <EM>HISTORY</EM>). Those include <STRONG>crmode</STRONG>, <STRONG>fixterm</STRONG>, + <STRONG>gettmode</STRONG>, <STRONG>nocrmode</STRONG>, <STRONG>resetterm</STRONG>, <STRONG>saveterm</STRONG>, and <STRONG>setterm</STRONG>. + +- In SVr4, those are found in <STRONG><curses.h></STRONG>, but except for <STRONG>setterm</STRONG>, are ++ In SVr4, those are found in <STRONG><curses.h></STRONG>, but except for <STRONG>setterm</STRONG>, are + likewise macros. The one function, <STRONG>setterm</STRONG>, is mentioned in the manual +- page. The manual page notes that the <STRONG>setterm</STRONG> routine was replaced by ++ page. The manual page notes that the <STRONG>setterm</STRONG> routine was replaced by + <STRONG>setupterm</STRONG>, stating that the call: + + <STRONG>setupterm(</STRONG><EM>term</EM><STRONG>,</STRONG> <STRONG>1,</STRONG> <STRONG>(int</STRONG> <STRONG>*)0)</STRONG> + + provides the same functionality as <STRONG>setterm(</STRONG><EM>term</EM><STRONG>)</STRONG>, and is not recommend- +- ed for new programs. This implementation provides each of those sym- ++ ed for new programs. This implementation provides each of those sym- + bols as macros for BSD compatibility, + + +@@ -403,7 +430,7 @@ + fixterm restore tty to "in curses" state + gettmode establish current tty modes + mvcur low level cursor motion +- putp utility function that uses <STRONG>tputs</STRONG> to send char- ++ putp utility function that uses <STRONG>tputs</STRONG> to send char- + acters via <STRONG>putchar</STRONG>. + resetterm set tty modes to "out of curses" state + resetty reset tty flags to stored value +@@ -414,10 +441,10 @@ + tparm instantiate a string expression with parameters + tputs apply padding information to a string + vidattr like <STRONG>vidputs</STRONG>, but outputs through <STRONG>putchar</STRONG> +- vidputs output a string to put terminal in a specified ++ vidputs output a string to put terminal in a specified + video attribute mode + +- The programming manual also mentioned functions provided for termcap ++ The programming manual also mentioned functions provided for termcap + compatibility (commenting that they "may go away at a later date"): + + <STRONG>Function</STRONG> <STRONG>Description</STRONG> +@@ -430,19 +457,20 @@ + tputs apply padding to capability, calling + a function to put characters + +- Early terminfo programs obtained capability values from the <STRONG>TERMINAL</STRONG> ++ Early terminfo programs obtained capability values from the <STRONG>TERMINAL</STRONG> + structure initialized by <STRONG>setupterm</STRONG>. + +- SVr3 extended terminfo by adding functions to retrieve capability val- ++ SVr3 extended terminfo by adding functions to retrieve capability val- + ues (like the termcap interface), and reusing tgoto and tputs: + + <STRONG>Function</STRONG> <STRONG>Description</STRONG> + ------------------------------------------- + tigetflag get boolean entry for given <EM>id</EM> ++ + tigetnum get numeric entry for given <EM>id</EM> + tigetstr get string entry for given <EM>id</EM> + +- SVr3 also replaced several of the SVr2 terminfo functions which had no ++ SVr3 also replaced several of the SVr2 terminfo functions which had no + counterpart in the termcap interface, documenting them as obsolete: + + <STRONG>Function</STRONG> <STRONG>Replaced</STRONG> <STRONG>by</STRONG> +@@ -455,20 +483,20 @@ + saveterm def_prog_mode + setterm setupterm + +- SVr3 kept the <STRONG>mvcur</STRONG>, <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> functions, along with <STRONG>putp</STRONG>, +- <STRONG>tparm</STRONG> and <STRONG>tputs</STRONG>. The latter were needed to support padding, and han- +- dling functions such as <STRONG>vidattr</STRONG> (which used more than the two parame- ++ SVr3 kept the <STRONG>mvcur</STRONG>, <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> functions, along with <STRONG>putp</STRONG>, ++ <STRONG>tparm</STRONG> and <STRONG>tputs</STRONG>. The latter were needed to support padding, and han- ++ dling functions such as <STRONG>vidattr</STRONG> (which used more than the two parame- + ters supported by <STRONG>tgoto</STRONG>). + +- SVr3 introduced the functions for switching between terminal descrip- ++ SVr3 introduced the functions for switching between terminal descrip- + tions, e.g., <STRONG>set_curterm</STRONG>. Some of that was incremental improvements to + the SVr2 library: + +- <STRONG>o</STRONG> The <STRONG>TERMINAL</STRONG> type definition was introduced in SVr3.01, for the ++ <STRONG>o</STRONG> The <STRONG>TERMINAL</STRONG> type definition was introduced in SVr3.01, for the + <STRONG>term</STRONG> structure provided in SVr2. + +- <STRONG>o</STRONG> The various global variables such as <STRONG>boolnames</STRONG> were mentioned in +- the programming manual at this point, though the variables were ++ <STRONG>o</STRONG> The various global variables such as <STRONG>boolnames</STRONG> were mentioned in ++ the programming manual at this point, though the variables were + provided in SVr2. + + SVr4 added the <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> functions. +@@ -483,15 +511,15 @@ + </PRE><H3><a name="h3-Legacy-functions">Legacy functions</a></H3><PRE> + X/Open notes that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros. + +- The function <STRONG>setterm</STRONG> is not described by X/Open and must be considered ++ The function <STRONG>setterm</STRONG> is not described by X/Open and must be considered + non-portable. All other functions are as described by X/Open. + + + </PRE><H3><a name="h3-Legacy-data">Legacy data</a></H3><PRE> +- <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>. This is not ++ <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>. 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 <STRONG>tic</STRONG> <STRONG>-x</STRONG>, are not +@@ -499,14 +527,14 @@ + + + </PRE><H3><a name="h3-Output-buffering">Output buffering</a></H3><PRE> +- Older versions of <STRONG>ncurses</STRONG> assumed that the file descriptor passed to ++ Older versions of <STRONG>ncurses</STRONG> assumed that the file descriptor passed to + <STRONG>setupterm</STRONG> from <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> 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 <STRONG>ncurses</STRONG> 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 <STRONG>ncurses</STRONG> 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 + <STRONG>ncurses</STRONG>. 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 <STRONG>ncurses</STRONG> use alternate versions of these functions using +@@ -515,70 +543,71 @@ + + </PRE><H3><a name="h3-Function-prototypes">Function prototypes</a></H3><PRE> + 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. + +- <STRONG>o</STRONG> X/Open Curses uses <STRONG>const</STRONG> 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 <STRONG>const</STRONG>. Using constant parameters for functions which do ++ <STRONG>o</STRONG> X/Open Curses uses <STRONG>const</STRONG> 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 <STRONG>const</STRONG>. Using constant parameters for functions which do + not use <STRONG>const</STRONG> may prevent the program from compiling. On the other + hand, <EM>writable</EM> <EM>strings</EM> are an obsolescent feature. + +- As an extension, this implementation can be configured to change +- the function prototypes to use the <STRONG>const</STRONG> keyword. The ncurses ABI ++ As an extension, this implementation can be configured to change ++ the function prototypes to use the <STRONG>const</STRONG> keyword. The ncurses ABI + 6 enables this feature by default. + +- <STRONG>o</STRONG> X/Open Curses prototypes <STRONG>tparm</STRONG> with a fixed number of parameters, ++ <STRONG>o</STRONG> X/Open Curses prototypes <STRONG>tparm</STRONG> 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 <STRONG>tiparm</STRONG> function in mid-2009. + + + </PRE><H3><a name="h3-Special-TERM-treatment">Special TERM treatment</a></H3><PRE> + If configured to use the terminal-driver, e.g., for the MinGW port, + +- <STRONG>o</STRONG> <STRONG>setupterm</STRONG> interprets a missing/empty TERM variable as the special ++ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> interprets a missing/empty TERM variable as the special + value "unknown". + +- <STRONG>o</STRONG> <STRONG>setupterm</STRONG> allows explicit use of the the windows console driver by +- checking if $TERM is set to "#win32con" or an abbreviation of that ++ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> allows explicit use of the the windows console driver by ++ checking if $TERM is set to "#win32con" or an abbreviation of that + string. + + + </PRE><H3><a name="h3-Other-portability-issues">Other portability issues</a></H3><PRE> +- In System V Release 4, <STRONG>set_curterm</STRONG> has an <STRONG>int</STRONG> return type and returns ++ In System V Release 4, <STRONG>set_curterm</STRONG> has an <STRONG>int</STRONG> return type and returns + <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>. We have chosen to implement the X/Open Curses semantics. + +- In System V Release 4, the third argument of <STRONG>tputs</STRONG> has the type <STRONG>int</STRONG> ++ In System V Release 4, the third argument of <STRONG>tputs</STRONG> has the type <STRONG>int</STRONG> + <STRONG>(*putc)(char)</STRONG>. + +- At least one implementation of X/Open Curses (Solaris) returns a value +- other than <STRONG>OK</STRONG>/<STRONG>ERR</STRONG> from <STRONG>tputs</STRONG>. That returns the length of the string, ++ At least one implementation of X/Open Curses (Solaris) returns a value ++ other than <STRONG>OK</STRONG>/<STRONG>ERR</STRONG> from <STRONG>tputs</STRONG>. That returns the length of the string, + and does no error-checking. + +- X/Open notes that after calling <STRONG>mvcur</STRONG>, the curses state may not match ++ X/Open notes that after calling <STRONG>mvcur</STRONG>, 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 <STRONG>ncurses</STRONG> and +- System V Release 4 curses implement <STRONG>mvcur</STRONG> using the SCREEN data allo- +- cated in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is documented as a +- terminfo function, <STRONG>mvcur</STRONG> is really a curses function which is not well ++ System V Release 4 curses implement <STRONG>mvcur</STRONG> using the SCREEN data allo- ++ cated in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is documented as a ++ terminfo function, <STRONG>mvcur</STRONG> is really a curses function which is not well + specified. + +- X/Open states that the old location must be given for <STRONG>mvcur</STRONG>. 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 <STRONG>mvcur</STRONG>. This im- ++ plementation allows the caller to use -1's for the old ordinates. In + that case, the old location is unknown. + + + </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_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, +- <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>, ++ <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG><A HREF="term_variables.3x.html">term_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>, <STRONG>ter-</STRONG> ++ <STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG> + + + +@@ -596,6 +625,7 @@ + <li><a href="#h3-Output-Functions">Output Functions</a></li> + <li><a href="#h3-Terminal-Capability-Functions">Terminal Capability Functions</a></li> + <li><a href="#h3-Terminal-Capability-Names">Terminal Capability Names</a></li> ++<li><a href="#h3-Releasing-Memory">Releasing Memory</a></li> + </ul> + </li> + <li><a href="#h2-RETURN-VALUE">RETURN VALUE</a> +Index: doc/html/man/form.3x.html +--- ncurses-6.3-20211225+/doc/html/man/form.3x.html 2021-12-25 22:12:46.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/form.3x.html 2022-01-02 00:19:52.000000000 +0000 +@@ -248,7 +248,7 @@ + <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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + +Index: doc/html/man/infocmp.1m.html +--- ncurses-6.3-20211225+/doc/html/man/infocmp.1m.html 2021-12-25 22:12:47.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/infocmp.1m.html 2022-01-02 00:19:53.000000000 +0000 +@@ -514,7 +514,7 @@ + + https://invisible-island.net/ncurses/tctest.html + +- This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/infotocap.1m.html +--- ncurses-6.3-20211225+/doc/html/man/infotocap.1m.html 2021-12-25 22:12:47.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/infotocap.1m.html 2022-01-02 00:19:53.000000000 +0000 +@@ -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> + +- This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/menu.3x.html +--- ncurses-6.3-20211225+/doc/html/man/menu.3x.html 2021-12-25 22:12:47.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/menu.3x.html 2022-01-02 00:19:53.000000000 +0000 +@@ -223,7 +223,7 @@ + <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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + +Index: doc/html/man/ncurses.3x.html +--- ncurses-6.3-20211225+/doc/html/man/ncurses.3x.html 2021-12-26 00:04:56.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/ncurses.3x.html 2022-01-02 00:19:55.000000000 +0000 +@@ -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 <STRONG>ncurses</STRONG> version 6.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + 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: doc/html/man/ncurses6-config.1.html +--- ncurses-6.3-20211225+/doc/html/man/ncurses6-config.1.html 2021-12-25 22:12:48.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/ncurses6-config.1.html 2022-01-02 00:19:55.000000000 +0000 +@@ -113,7 +113,7 @@ + </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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + +Index: doc/html/man/panel.3x.html +--- ncurses-6.3-20211225+/doc/html/man/panel.3x.html 2021-12-25 22:12:48.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/panel.3x.html 2022-01-02 00:19:55.000000000 +0000 +@@ -281,7 +281,7 @@ + </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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/tabs.1.html +--- ncurses-6.3-20211225+/doc/html/man/tabs.1.html 2021-12-25 22:12:48.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/tabs.1.html 2022-01-02 00:19:55.000000000 +0000 +@@ -252,7 +252,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="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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + +Index: doc/html/man/terminfo.5.html +--- ncurses-6.3-20211225+/doc/html/man/terminfo.5.html 2021-12-25 22:12:49.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/terminfo.5.html 2022-01-02 00:19:56.000000000 +0000 +@@ -106,7 +106,7 @@ + have, by specifying how to perform screen operations, and by specifying + padding requirements and initialization sequences. + +- This manual describes <STRONG>ncurses</STRONG> version 6.3 (patch 20211225). ++ This manual describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE> +Index: doc/html/man/tic.1m.html +--- ncurses-6.3-20211225+/doc/html/man/tic.1m.html 2021-12-25 22:12:50.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/tic.1m.html 2022-01-02 00:19:56.000000000 +0000 +@@ -461,7 +461,7 @@ + <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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/toe.1m.html +--- ncurses-6.3-20211225+/doc/html/man/toe.1m.html 2021-12-25 22:12:50.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/toe.1m.html 2022-01-02 00:19:56.000000000 +0000 +@@ -171,7 +171,7 @@ + <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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + +Index: doc/html/man/tput.1.html +--- ncurses-6.3-20211225+/doc/html/man/tput.1.html 2021-12-26 00:04:56.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/tput.1.html 2022-01-02 00:19:56.000000000 +0000 +@@ -545,7 +545,7 @@ + </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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + +Index: doc/html/man/tset.1.html +--- ncurses-6.3-20211225+/doc/html/man/tset.1.html 2021-12-26 00:04:57.000000000 +0000 ++++ ncurses-6.3-20220101/doc/html/man/tset.1.html 2022-01-02 00:19:56.000000000 +0000 +@@ -391,7 +391,7 @@ + <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.3 (patch 20211225). ++ This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220101). + + + +Index: man/curs_termcap.3x +Prereq: 1.52 +--- ncurses-6.3-20211225+/man/curs_termcap.3x 2021-12-25 21:31:00.000000000 +0000 ++++ ncurses-6.3-20220101/man/curs_termcap.3x 2022-01-01 23:49:07.000000000 +0000 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright 2018-2020,2021 Thomas E. Dickey * ++.\" Copyright 2018-2021,2022 Thomas E. Dickey * + .\" Copyright 1998-2017,2018 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_termcap.3x,v 1.52 2021/12/25 21:31:00 tom Exp $ ++.\" $Id: curs_termcap.3x,v 1.55 2022/01/01 23:49:07 tom Exp $ + .TH curs_termcap 3X "" + .ie \n(.g .ds `` \(lq + .el .ds `` `` +@@ -86,7 +86,7 @@ + Thus, they + can only be used to query the capabilities of entries for which a + terminfo entry has been compiled. +-.SS INITIALIZATION ++.SS Initialization + .PP + The \fBtgetent\fP routine loads the entry for \fIname\fP. + It returns: +@@ -118,7 +118,7 @@ + description is marked with the \fIgeneric\fP capability, + or if the terminal description has cursor-addressing. + .RE +-.SS CAPABILITY VALUES ++.SS Capability Values + .PP + The \fBtgetflag\fP routine gets the boolean entry for \fIid\fP, + or zero if it is not available. +@@ -152,7 +152,7 @@ + \fBtgetflag\fP, + \fBtgetnum\fP and + \fBtgetstr\fP are compared in lookups. +-.SS FORMATTING CAPABILITIES ++.SS Formatting Capabilities + .PP + The \fBtgoto\fP routine expands the given capability using the parameters. + .bP +@@ -181,7 +181,7 @@ + The \fBtputs\fP routine is described on the \fBcurs_terminfo\fP(3X) manual + page. + It can retrieve capabilities by either termcap or terminfo name. +-.SS GLOBAL VARIABLES ++.SS Global Variables + .PP + The variables + \fBPC\fP, +@@ -197,6 +197,30 @@ + \fBBC\fP is used in the \fBtgoto\fP emulation. + The variable \fBospeed\fP is set by ncurses in a system-specific coding + to reflect the terminal speed. ++.SS Releasing Memory ++The termcap functions provide no means for freeing memory, ++because legacy termcap implementations used only the buffer ++areas provided by the caller via \fBtgetent\fP and \fBtgetstr\fP. ++Those buffers are unused in terminfo. ++.PP ++On the other hand, terminfo allocates memory. ++It uses \fBsetupterm\fP to retrieve the data used by \fBtgetent\fP ++and the functions which return capability values such as \fBtgetstr\fP. ++One could use ++.sp ++ \fBdel_curterm(cur_term);\fP ++.sp ++.PP ++to free this memory, but there is an additional complication with ncurses. ++It uses a fixed-size \fIpool\fP of storage locations, ++one per setting of the \fBTERM\fP variable when \fBtgetent\fP is called. ++The \fBscreen\fP(1) program relies upon this arrangement, ++to improve its performance. ++.PP ++An application which uses only the low-level termcap functions could ++free the memory using \fBdel_curterm\fP, ++because the pool is freed using other functions ++(see \fBcurs_memleaks\fP(3X)). + . + .SH RETURN VALUE + Except where explicitly noted, +Index: man/curs_terminfo.3x +Prereq: 1.79 +--- ncurses-6.3-20211225+/man/curs_terminfo.3x 2021-12-25 21:34:58.000000000 +0000 ++++ ncurses-6.3-20220101/man/curs_terminfo.3x 2022-01-01 21:50:06.000000000 +0000 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright 2018-2020,2021 Thomas E. Dickey * ++.\" Copyright 2018-2021,2022 Thomas E. Dickey * + .\" Copyright 1998-2016,2017 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_terminfo.3x,v 1.79 2021/12/25 21:34:58 tom Exp $ ++.\" $Id: curs_terminfo.3x,v 1.80 2022/01/01 21:50:06 tom Exp $ + .TH curs_terminfo 3X "" + .ie \n(.g .ds `` \(lq + .el .ds `` `` +@@ -407,6 +407,32 @@ + .br + \fBconst char *strnames[]\fP, \fB*strcodes[]\fP, \fB*strfnames[]\fP + .RE ++.\" *************************************************************************** ++.SS Releasing Memory ++Each successful call to \fBsetupterm\fP allocates memory to hold the terminal ++description. As a side-effect, it sets \fBcur_term\fP to point to this memory. ++If an application calls ++.sp ++ \fBdel_curterm(cur_term);\fP ++.sp ++the memory will be freed. ++.PP ++The formatting functions \fBtparm\fP and \fBtiparm\fP extend the storage ++allocated by \fBsetupterm\fP: ++.bP ++the \*(``static\*('' terminfo variables [a-z]. ++Before ncurses 6.3, those were shared by all screens. ++With ncurses 6.3, those are allocated per screen. ++See \fBterminfo\fP(\*n) for details. ++.bP ++to improve performance, ncurses 6.3 caches the result of analyzing terminfo ++strings for their parameter types. ++That is stored as a binary tree referenced from the \fBTERMINAL\fP structure. ++.PP ++The higher-level \fBinitscr\fP and \fBnewterm\fP functions use \fBsetupterm\fP. ++Normally they do not free this memory, but it is possible to do that using ++the \fBdelscreen\fP(3X) function. ++.\" *************************************************************************** + .SH RETURN VALUE + Routines that return an integer return \fBERR\fP upon failure and \fBOK\fP + (SVr4 only specifies \*(``an integer value other than \fBERR\fP\*('') +@@ -675,6 +701,7 @@ + \fBcurses\fP(3X), + \fBcurs_initscr\fP(3X), + \fBcurs_kernel\fP(3X), ++\fBcurs_memleaks\fP(3X), + \fBcurs_termcap\fP(3X), + \fBcurs_variables\fP(3X), + \fBterm_variables\fP(3X), +Index: package/debian-mingw/changelog +--- ncurses-6.3-20211225+/package/debian-mingw/changelog 2021-12-24 20:26:19.000000000 +0000 ++++ ncurses-6.3-20220101/package/debian-mingw/changelog 2022-01-01 11:46:49.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.3+20211225) unstable; urgency=low ++ncurses6 (6.3+20220101) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 24 Dec 2021 15:26:19 -0500 ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 01 Jan 2022 06:46:49 -0500 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian-mingw/copyright +--- ncurses-6.3-20211225+/package/debian-mingw/copyright 2021-01-01 09:54:30.000000000 +0000 ++++ ncurses-6.3-20220101/package/debian-mingw/copyright 2022-01-02 00:28:07.000000000 +0000 +@@ -5,7 +5,7 @@ + + ------------------------------------------------------------------------------- + Files: * +-Copyright: 2017-2020,2021 by Thomas E. Dickey ++Copyright: 2017-2021,2022 by Thomas E. Dickey + Copyright: 1998-2016,2017 Free Software Foundation, Inc. + Licence: X11 + +Index: package/debian-mingw64/changelog +--- ncurses-6.3-20211225+/package/debian-mingw64/changelog 2021-12-24 20:26:19.000000000 +0000 ++++ ncurses-6.3-20220101/package/debian-mingw64/changelog 2022-01-01 11:46:49.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.3+20211225) unstable; urgency=low ++ncurses6 (6.3+20220101) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 24 Dec 2021 15:26:19 -0500 ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 01 Jan 2022 06:46:49 -0500 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian-mingw64/copyright +--- ncurses-6.3-20211225+/package/debian-mingw64/copyright 2021-01-01 09:54:30.000000000 +0000 ++++ ncurses-6.3-20220101/package/debian-mingw64/copyright 2022-01-02 00:28:07.000000000 +0000 +@@ -5,7 +5,7 @@ + + ------------------------------------------------------------------------------- + Files: * +-Copyright: 2017-2020,2021 by Thomas E. Dickey ++Copyright: 2017-2021,2022 by Thomas E. Dickey + Copyright: 1998-2016,2017 Free Software Foundation, Inc. + Licence: X11 + +Index: package/debian/changelog +--- ncurses-6.3-20211225+/package/debian/changelog 2021-12-24 20:26:19.000000000 +0000 ++++ ncurses-6.3-20220101/package/debian/changelog 2022-01-01 11:46:49.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.3+20211225) unstable; urgency=low ++ncurses6 (6.3+20220101) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dickey@invisible-island.net> Fri, 24 Dec 2021 15:26:19 -0500 ++ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 01 Jan 2022 06:46:49 -0500 + + ncurses6 (5.9-20120608) unstable; urgency=low + +Index: package/debian/copyright +--- ncurses-6.3-20211225+/package/debian/copyright 2021-01-01 09:54:30.000000000 +0000 ++++ ncurses-6.3-20220101/package/debian/copyright 2022-01-02 00:28:07.000000000 +0000 +@@ -5,7 +5,7 @@ + + ------------------------------------------------------------------------------- + Files: * +-Copyright: 2017-2020,2021 by Thomas E. Dickey ++Copyright: 2017-2021,2022 by Thomas E. Dickey + Copyright: 1998-2016,2017 Free Software Foundation, Inc. + Licence: X11 + +Index: package/mingw-ncurses.nsi +Prereq: 1.499 +--- ncurses-6.3-20211225+/package/mingw-ncurses.nsi 2021-12-24 20:26:19.000000000 +0000 ++++ ncurses-6.3-20220101/package/mingw-ncurses.nsi 2022-01-01 11:46:49.000000000 +0000 +@@ -1,4 +1,4 @@ +-; $Id: mingw-ncurses.nsi,v 1.499 2021/12/24 20:26:19 tom Exp $
++; $Id: mingw-ncurses.nsi,v 1.500 2022/01/01 11:46:49 tom Exp $
+
+ ; TODO add examples
+ ; TODO bump ABI to 6
+@@ -9,8 +9,8 @@ +
+ !define VERSION_MAJOR "6"
+ !define VERSION_MINOR "3"
+-!define VERSION_YYYY "2021"
+-!define VERSION_MMDD "1225"
++!define VERSION_YYYY "2022"
++!define VERSION_MMDD "0101"
+ !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
+
+ !define MY_ABI "5"
+Index: package/mingw-ncurses.spec +--- ncurses-6.3-20211225+/package/mingw-ncurses.spec 2021-12-24 20:26:19.000000000 +0000 ++++ ncurses-6.3-20220101/package/mingw-ncurses.spec 2022-01-01 11:46:49.000000000 +0000 +@@ -3,7 +3,7 @@ + Summary: shared libraries for terminal handling + Name: mingw32-ncurses6 + Version: 6.3 +-Release: 20211225 ++Release: 20220101 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: package/ncurses.spec +--- ncurses-6.3-20211225+/package/ncurses.spec 2021-12-24 20:26:19.000000000 +0000 ++++ ncurses-6.3-20220101/package/ncurses.spec 2022-01-01 11:46:49.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: shared libraries for terminal handling + Name: ncurses6 + Version: 6.3 +-Release: 20211225 ++Release: 20220101 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: package/ncursest.spec +--- ncurses-6.3-20211225+/package/ncursest.spec 2021-12-24 20:26:19.000000000 +0000 ++++ ncurses-6.3-20220101/package/ncursest.spec 2022-01-01 11:46:49.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: Curses library with POSIX thread support. + Name: ncursest6 + Version: 6.3 +-Release: 20211225 ++Release: 20220101 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: test/package/debian-mingw/copyright +--- ncurses-6.3-20211225+/test/package/debian-mingw/copyright 2021-01-01 09:54:30.000000000 +0000 ++++ ncurses-6.3-20220101/test/package/debian-mingw/copyright 2022-01-02 00:28:07.000000000 +0000 +@@ -4,7 +4,7 @@ + + ------------------------------------------------------------------------------- + Files: * +-Copyright: 2017-2020,2021 Thomas E. Dickey ++Copyright: 2017-2021,2022 Thomas E. Dickey + Copyright: 1998-2016,2017 Free Software Foundation, Inc. + Licence: X11 + +Index: test/package/debian-mingw64/copyright +--- ncurses-6.3-20211225+/test/package/debian-mingw64/copyright 2021-01-01 09:54:30.000000000 +0000 ++++ ncurses-6.3-20220101/test/package/debian-mingw64/copyright 2022-01-02 00:28:07.000000000 +0000 +@@ -4,7 +4,7 @@ + + ------------------------------------------------------------------------------- + Files: * +-Copyright: 2017-2020,2021 Thomas E. Dickey ++Copyright: 2017-2021,2022 Thomas E. Dickey + Copyright: 1998-2016,2017 Free Software Foundation, Inc. + Licence: X11 + +Index: test/package/debian/copyright +--- ncurses-6.3-20211225+/test/package/debian/copyright 2021-01-01 09:54:30.000000000 +0000 ++++ ncurses-6.3-20220101/test/package/debian/copyright 2022-01-02 00:28:07.000000000 +0000 +@@ -4,7 +4,7 @@ + + ------------------------------------------------------------------------------- + Files: * +-Copyright: 2017-2020,2021 Thomas E. Dickey ++Copyright: 2017-2021,2022 Thomas E. Dickey + Copyright: 1998-2016,2017 Free Software Foundation, Inc. + Licence: X11 + |