# ncurses 6.3 - patch 20220219 - 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-20220219.patch.gz # patch by Thomas E. Dickey <dickey@invisible-island.net> # created Sun Feb 20 02:01:54 UTC 2022 # ------------------------------------------------------------------------------ # NEWS | 6 ++ # VERSION | 2 # dist.mk | 4 - # 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/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/resizeterm.3x.html | 71 +++++++++++++++++++++++--------- # 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/manhtml.aliases | 5 +- # man/resizeterm.3x | 60 ++++++++++++++++++++++----- # package/debian-mingw/changelog | 4 - # package/debian-mingw64/changelog | 4 - # package/debian/changelog | 4 - # package/mingw-ncurses.nsi | 4 - # package/mingw-ncurses.spec | 2 # package/ncurses.spec | 2 # package/ncursest.spec | 2 # test/picsmap.c | 32 +++++++++----- # 30 files changed, 159 insertions(+), 75 deletions(-) # ------------------------------------------------------------------------------ Index: NEWS Prereq: 1.3778 --- ncurses-6.3-20220212+/NEWS 2022-02-12 20:15:29.000000000 +0000 +++ ncurses-6.3-20220219/NEWS 2022-02-20 00:40:32.000000000 +0000 @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3778 2022/02/12 20:15:29 tom Exp $ +-- $Id: NEWS,v 1.3780 2022/02/20 00:40:32 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. +20220219 + + expanded description in man/resizeterm.3x + + additional workaround for ImageMagick in test/picsmap.c + 20220212 + improve font-formatting in other manpages, for consistency. + correct/improve font-formatting in curs_wgetch.3x (patch by Benno Index: VERSION --- ncurses-6.3-20220212+/VERSION 2022-02-12 15:31:08.000000000 +0000 +++ ncurses-6.3-20220219/VERSION 2022-02-19 12:13:47.000000000 +0000 @@ -1 +1 @@ -5:0:10 6.3 20220212 +5:0:10 6.3 20220219 Index: dist.mk Prereq: 1.1466 --- ncurses-6.3-20220212+/dist.mk 2022-02-12 15:31:08.000000000 +0000 +++ ncurses-6.3-20220219/dist.mk 2022-02-19 12:13:47.000000000 +0000 @@ -26,7 +26,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.1466 2022/02/12 15:31:08 tom Exp $ +# $Id: dist.mk,v 1.1467 2022/02/19 12:13:47 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 = 20220212 +NCURSES_PATCH = 20220219 # 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-20220212+/doc/html/man/adacurses6-config.1.html 2022-02-12 19:58:31.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/adacurses6-config.1.html 2022-02-20 00:42:56.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). Index: doc/html/man/captoinfo.1m.html --- ncurses-6.3-20220212+/doc/html/man/captoinfo.1m.html 2022-02-12 20:17:47.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/captoinfo.1m.html 2022-02-20 00:42:56.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> Index: doc/html/man/clear.1.html --- ncurses-6.3-20220212+/doc/html/man/clear.1.html 2022-02-12 20:17:47.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/clear.1.html 2022-02-20 00:42:56.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). Index: doc/html/man/form.3x.html --- ncurses-6.3-20220212+/doc/html/man/form.3x.html 2022-02-12 19:58:34.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/form.3x.html 2022-02-20 00:42:59.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). Index: doc/html/man/infocmp.1m.html --- ncurses-6.3-20220212+/doc/html/man/infocmp.1m.html 2022-02-12 20:17:51.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/infocmp.1m.html 2022-02-20 00:43:00.000000000 +0000 @@ -514,7 +514,7 @@ https://invisible-island.net/ncurses/tctest.html - This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> Index: doc/html/man/infotocap.1m.html --- ncurses-6.3-20220212+/doc/html/man/infotocap.1m.html 2022-02-12 20:17:51.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/infotocap.1m.html 2022-02-20 00:43:00.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> Index: doc/html/man/menu.3x.html --- ncurses-6.3-20220212+/doc/html/man/menu.3x.html 2022-02-12 19:58:35.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/menu.3x.html 2022-02-20 00:43:00.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). Index: doc/html/man/ncurses.3x.html --- ncurses-6.3-20220212+/doc/html/man/ncurses.3x.html 2022-02-12 19:58:36.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/ncurses.3x.html 2022-02-20 00:43:01.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). 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-20220212+/doc/html/man/ncurses6-config.1.html 2022-02-12 19:58:36.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/ncurses6-config.1.html 2022-02-20 00:43:01.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). Index: doc/html/man/panel.3x.html --- ncurses-6.3-20220212+/doc/html/man/panel.3x.html 2022-02-12 20:17:52.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/panel.3x.html 2022-02-20 00:43:01.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> Index: doc/html/man/resizeterm.3x.html --- ncurses-6.3-20220212+/doc/html/man/resizeterm.3x.html 2022-02-12 20:17:52.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/resizeterm.3x.html 2022-02-20 00:43:01.000000000 +0000 @@ -28,7 +28,7 @@ * authorization. * **************************************************************************** * Author: Thomas E. Dickey 1996-on - * @Id: resizeterm.3x,v 1.31 2022/02/12 20:07:29 tom Exp @ + * @Id: resizeterm.3x,v 1.32 2022/02/20 00:32:18 tom Exp @ --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML> @@ -63,28 +63,60 @@ </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE> This is an extension to the curses library. It provides callers with a hook into the <STRONG>ncurses</STRONG> data to resize windows, primarily for use by - programs running in an X Window terminal (e.g., xterm). + programs running in an X Window terminal (e.g., xterm) when the + terminal's screen size is changed by the user: + <STRONG>o</STRONG> Curses windows cannot extend outside the screen. If the terminal + is shrunk, curses windows must be shrunk to fit. + + <STRONG>o</STRONG> If the terminal is stretched, rows and/or columns can be added to + existing windows. The added cells should match the current + attributes of the windows. + + If the calling program has not set up a handler for <STRONG>SIGWINCH</STRONG> when it + initializes <STRONG>ncurses</STRONG> (e.g., using <STRONG><A HREF="curs_initscr.3x.html">initscr(3x)</A></STRONG> or <STRONG><A HREF="curs_initscr.3x.html">newterm(3x)</A></STRONG>), then + <STRONG>ncurses</STRONG> sets a handler for <STRONG>SIGWINCH</STRONG> which notifies the library when a + window-size event has occurred. The library checks for this + notification + + <STRONG>o</STRONG> when reading input data, + + <STRONG>o</STRONG> when implicitly resuming program mode (e.g., between <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG> and + <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>), and + + <STRONG>o</STRONG> when explicitly resuming program mode in <STRONG><A HREF="curs_terminfo.3x.html">restartterm(3x)</A></STRONG>. + + When the library has found that the terminal's window-size has changed, + it calls <STRONG>resizeterm</STRONG> to update its data structures. + + An application which establishes its own <STRONG>SIGWINCH</STRONG> handler can call + <STRONG>resizeterm</STRONG>, but in that case, the library will not see <STRONG>SIGWINCH</STRONG>, and + proper layout will rely upon the application. + + +</PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE> </PRE><H3><a name="h3-resizeterm">resizeterm</a></H3><PRE> - The function <STRONG>resizeterm</STRONG> resizes the standard and current windows to the - specified dimensions, and adjusts other bookkeeping data used by the - <STRONG>ncurses</STRONG> library that record the window dimensions such as the <STRONG>LINES</STRONG> and - <STRONG>COLS</STRONG> variables. + The function <STRONG>resizeterm</STRONG> resizes the standard and current windows (i.e., + <STRONG>stdscr</STRONG> and <STRONG>curscr</STRONG>) to the specified dimensions, and adjusts other + bookkeeping data used by the <STRONG>ncurses</STRONG> library that record the window + dimensions such as the <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> variables. </PRE><H3><a name="h3-resize_term">resize_term</a></H3><PRE> - Most of the work is done by the inner function <STRONG>resize_term</STRONG>. The outer - function <STRONG>resizeterm</STRONG> adds bookkeeping for the <STRONG>SIGWINCH</STRONG> handler, as well - as repainting the soft-key area (see <STRONG><A HREF="curs_slk.3x.html">slk_touch(3x)</A></STRONG>). - - When resizing the windows, <STRONG>resize_term</STRONG> blank-fills the areas that are - extended. The calling application should fill in these areas with - appropriate data. - - The <STRONG>resize_term</STRONG> function attempts to resize all windows. However, due - to the calling convention of pads, it is not possible to resize these - without additional interaction with the application. + Most of the work for <STRONG>resizeterm</STRONG> is done by the inner function + <STRONG>resize_term</STRONG>. The outer function <STRONG>resizeterm</STRONG> adds bookkeeping for the + <STRONG>SIGWINCH</STRONG> handler, as well as repainting the soft-key area (see + <STRONG><A HREF="curs_slk.3x.html">slk_touch(3x)</A></STRONG>). + + The <STRONG>resize_term</STRONG> function attempts to resize all windows. This helps + with simple applications. However: + + <STRONG>o</STRONG> It is not possible to automatically resize pads. + + <STRONG>o</STRONG> Applications which have complicated layouts should check for + <STRONG>KEY_RESIZE</STRONG> returned from <STRONG>wgetch</STRONG>, and adjust their layout, e.g., + using <STRONG>wresize</STRONG> and <STRONG>mvwin</STRONG>, or by recreating the windows. When resizing windows, <STRONG>resize_term</STRONG> recursively adjusts subwindows, keeping them within the updated parent window's limits. If a top-level @@ -116,7 +148,7 @@ <STRONG>o</STRONG> on receipt of a <STRONG>SIGWINCH</STRONG>, the handler sets a flag - <STRONG>o</STRONG> which is tested in <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> and <STRONG>doupdate</STRONG>, + <STRONG>o</STRONG> which is tested in <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">doupdate(3x)</A></STRONG> and <STRONG><A HREF="curs_terminfo.3x.html">restartterm(3x)</A></STRONG>, <STRONG>o</STRONG> in turn, calling the <STRONG>resizeterm</STRONG> function, @@ -166,7 +198,8 @@ <ul> <li><a href="#h2-NAME">NAME</a></li> <li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li> -<li><a href="#h2-DESCRIPTION">DESCRIPTION</a> +<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li> +<li><a href="#h2-FUNCTIONS">FUNCTIONS</a> <ul> <li><a href="#h3-resizeterm">resizeterm</a></li> <li><a href="#h3-resize_term">resize_term</a></li> Index: doc/html/man/tabs.1.html --- ncurses-6.3-20220212+/doc/html/man/tabs.1.html 2022-02-12 19:58:36.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/tabs.1.html 2022-02-20 00:43:02.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). Index: doc/html/man/terminfo.5.html --- ncurses-6.3-20220212+/doc/html/man/terminfo.5.html 2022-02-12 19:58:36.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/terminfo.5.html 2022-02-20 00:43:02.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 20220212). + This manual describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE> Index: doc/html/man/tic.1m.html --- ncurses-6.3-20220212+/doc/html/man/tic.1m.html 2022-02-12 20:17:52.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/tic.1m.html 2022-02-20 00:43:02.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> Index: doc/html/man/toe.1m.html --- ncurses-6.3-20220212+/doc/html/man/toe.1m.html 2022-02-12 20:17:52.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/toe.1m.html 2022-02-20 00:43:02.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). Index: doc/html/man/tput.1.html --- ncurses-6.3-20220212+/doc/html/man/tput.1.html 2022-02-12 20:17:52.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/tput.1.html 2022-02-20 00:43:02.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). Index: doc/html/man/tset.1.html --- ncurses-6.3-20220212+/doc/html/man/tset.1.html 2022-02-12 20:17:52.000000000 +0000 +++ ncurses-6.3-20220219/doc/html/man/tset.1.html 2022-02-20 00:43:02.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 20220212). + This describes <STRONG>ncurses</STRONG> version 6.3 (patch 20220219). Index: man/manhtml.aliases Prereq: 1.19 --- ncurses-6.3-20220212+/man/manhtml.aliases 2020-12-12 14:45:55.000000000 +0000 +++ ncurses-6.3-20220219/man/manhtml.aliases 2022-02-20 00:39:41.000000000 +0000 @@ -1,6 +1,6 @@ -# $Id: manhtml.aliases,v 1.19 2020/12/12 14:45:55 tom Exp $ +# $Id: manhtml.aliases,v 1.20 2022/02/20 00:39:41 tom Exp $ #*************************************************************************** -# Copyright 2019,2020 Thomas E. Dickey * +# Copyright 2019-2020,2022 Thomas E. Dickey * # Copyright 2013,2017 Free Software Foundation, Inc. * # * # Permission is hereby granted, free of charge, to any person obtaining a * @@ -50,6 +50,7 @@ newterm(3X) curs_initscr(3X) refresh(3X) curs_refresh(3X) reset_shell_mode(3X) curs_kernel(3X) +restartterm(3X) curs_terminfo(3X) set_term(3X) curs_initscr(3X) setcchar(3X) curs_getcchar(3X) setupterm(3X) curs_terminfo(3X) Index: man/resizeterm.3x Prereq: 1.31 --- ncurses-6.3-20220212+/man/resizeterm.3x 2022-02-12 20:07:29.000000000 +0000 +++ ncurses-6.3-20220219/man/resizeterm.3x 2022-02-20 00:32:18.000000000 +0000 @@ -29,7 +29,7 @@ .\" .\" Author: Thomas E. Dickey 1996-on .\" -.\" $Id: resizeterm.3x,v 1.31 2022/02/12 20:07:29 tom Exp $ +.\" $Id: resizeterm.3x,v 1.32 2022/02/20 00:32:18 tom Exp $ .TH resizeterm 3X "" .de bP .ie n .IP \(bu 4 @@ -51,28 +51,63 @@ .PP This is an extension to the curses library. It provides callers with a hook into the \fBncurses\fP data to resize windows, -primarily for use by programs running in an X Window terminal (e.g., xterm). +primarily for use by programs running in an X Window terminal (e.g., xterm) +when the terminal's screen size is changed by the user: +.bP +Curses windows cannot extend outside the screen. +If the terminal is shrunk, curses windows must be shrunk to fit. +.bP +If the terminal is stretched, +rows and/or columns can be added to existing windows. +The added cells should match the current attributes of the windows. +.PP +If the calling program has not set up a handler for \fBSIGWINCH\fP +when it initializes \fBncurses\fP +(e.g., using \fBinitscr\fP(3X) or \fBnewterm\fP(3X)), +then \fBncurses\fP sets a handler for \fBSIGWINCH\fP which notifies +the library when a window-size event has occurred. +The library checks for this notification +.bP +when reading input data, +.bP +when implicitly resuming program mode +(e.g., between \fBendwin\fP(3X) and \fBwrefresh\fP(3X)), +and +.bP +when explicitly resuming program mode in \fBrestartterm\fP(3X). +.PP +When the library has found that the terminal's window-size has +changed, it calls \fBresizeterm\fP to update its data structures. +.PP +An application which establishes its own \fBSIGWINCH\fP handler +can call \fBresizeterm\fP, but in that case, the library will not +see \fBSIGWINCH\fP, and proper layout will rely upon the application. +.SH FUNCTIONS .SS resizeterm .PP The function \fBresizeterm\fP resizes the standard and current windows +(i.e., \fBstdscr\fP and \fBcurscr\fP) to the specified dimensions, and adjusts other bookkeeping data used by the \fBncurses\fP library that record the window dimensions such as the \fBLINES\fP and \fBCOLS\fP variables. .SS resize_term .PP -Most of the work is done by the inner function \fBresize_term\fP. +Most of the work for \fBresizeterm\fP is +done by the inner function \fBresize_term\fP. The outer function \fBresizeterm\fP adds bookkeeping for the \fBSIGWINCH\fP handler, as well as repainting the soft-key area (see \fBslk_touch\fP(3X)). .PP -When resizing the windows, -\fBresize_term\fP blank-fills the areas that are extended. -The calling application should fill in these areas with appropriate data. -.PP The \fBresize_term\fP function attempts to resize all windows. -However, due to the calling convention of pads, -it is not possible to resize these -without additional interaction with the application. +This helps with simple applications. +However: +.bP +It is not possible to automatically resize pads. +.bP +Applications which have complicated layouts should check for +\fBKEY_RESIZE\fP returned from \fBwgetch\fP, +and adjust their layout, e.g., using \fBwresize\fP and \fBmvwin\fP, +or by recreating the windows. .PP When resizing windows, \fBresize_term\fP recursively adjusts subwindows, keeping them within the updated parent window's limits. @@ -101,7 +136,10 @@ .bP on receipt of a \fBSIGWINCH\fP, the handler sets a flag .bP -which is tested in \fBwgetch\fP(3X) and \fBdoupdate\fP, +which is tested in +\fBwgetch\fP(3X), +\fBdoupdate\fP(3X) and +\fBrestartterm\fP(3X), .bP in turn, calling the \fBresizeterm\fP function, .bP Index: package/debian-mingw/changelog --- ncurses-6.3-20220212+/package/debian-mingw/changelog 2022-02-12 15:31:08.000000000 +0000 +++ ncurses-6.3-20220219/package/debian-mingw/changelog 2022-02-19 12:13:47.000000000 +0000 @@ -1,8 +1,8 @@ -ncurses6 (6.3+20220212) unstable; urgency=low +ncurses6 (6.3+20220219) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 12 Feb 2022 10:31:08 -0500 + -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 19 Feb 2022 07:13:47 -0500 ncurses6 (5.9-20131005) unstable; urgency=low Index: package/debian-mingw64/changelog --- ncurses-6.3-20220212+/package/debian-mingw64/changelog 2022-02-12 15:31:08.000000000 +0000 +++ ncurses-6.3-20220219/package/debian-mingw64/changelog 2022-02-19 12:13:47.000000000 +0000 @@ -1,8 +1,8 @@ -ncurses6 (6.3+20220212) unstable; urgency=low +ncurses6 (6.3+20220219) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 12 Feb 2022 10:31:08 -0500 + -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 19 Feb 2022 07:13:47 -0500 ncurses6 (5.9-20131005) unstable; urgency=low Index: package/debian/changelog --- ncurses-6.3-20220212+/package/debian/changelog 2022-02-12 15:31:08.000000000 +0000 +++ ncurses-6.3-20220219/package/debian/changelog 2022-02-19 12:13:47.000000000 +0000 @@ -1,8 +1,8 @@ -ncurses6 (6.3+20220212) unstable; urgency=low +ncurses6 (6.3+20220219) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 12 Feb 2022 10:31:08 -0500 + -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 19 Feb 2022 07:13:47 -0500 ncurses6 (5.9-20120608) unstable; urgency=low Index: package/mingw-ncurses.nsi Prereq: 1.506 --- ncurses-6.3-20220212+/package/mingw-ncurses.nsi 2022-02-12 15:31:08.000000000 +0000 +++ ncurses-6.3-20220219/package/mingw-ncurses.nsi 2022-02-19 12:13:47.000000000 +0000 @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.506 2022/02/12 15:31:08 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.507 2022/02/19 12:13:47 tom Exp $ ; TODO add examples ; TODO bump ABI to 6 @@ -10,7 +10,7 @@ !define VERSION_MAJOR "6" !define VERSION_MINOR "3" !define VERSION_YYYY "2022" -!define VERSION_MMDD "0212" +!define VERSION_MMDD "0219" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" Index: package/mingw-ncurses.spec --- ncurses-6.3-20220212+/package/mingw-ncurses.spec 2022-02-12 15:31:08.000000000 +0000 +++ ncurses-6.3-20220219/package/mingw-ncurses.spec 2022-02-19 12:13:47.000000000 +0000 @@ -3,7 +3,7 @@ Summary: shared libraries for terminal handling Name: mingw32-ncurses6 Version: 6.3 -Release: 20220212 +Release: 20220219 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz Index: package/ncurses.spec --- ncurses-6.3-20220212+/package/ncurses.spec 2022-02-12 15:31:08.000000000 +0000 +++ ncurses-6.3-20220219/package/ncurses.spec 2022-02-19 12:13:47.000000000 +0000 @@ -1,7 +1,7 @@ Summary: shared libraries for terminal handling Name: ncurses6 Version: 6.3 -Release: 20220212 +Release: 20220219 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz Index: package/ncursest.spec --- ncurses-6.3-20220212+/package/ncursest.spec 2022-02-12 15:31:08.000000000 +0000 +++ ncurses-6.3-20220219/package/ncursest.spec 2022-02-19 12:13:47.000000000 +0000 @@ -1,7 +1,7 @@ Summary: Curses library with POSIX thread support. Name: ncursest6 Version: 6.3 -Release: 20220212 +Release: 20220219 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz Index: test/picsmap.c Prereq: 1.142 --- ncurses-6.3-20220212+/test/picsmap.c 2022-02-06 01:44:34.000000000 +0000 +++ ncurses-6.3-20220219/test/picsmap.c 2022-02-19 21:30:04.000000000 +0000 @@ -27,7 +27,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: picsmap.c,v 1.142 2022/02/06 01:44:34 tom Exp $ + * $Id: picsmap.c,v 1.144 2022/02/19 21:30:04 tom Exp $ * * Author: Thomas E. Dickey * @@ -1383,7 +1383,6 @@ char *t; char *s = t = strchr(buffer, '#'); bool matched = FALSE; - bool blurred = FALSE; if (s != 0) { /* after the "#RGB", there are differences - just ignore */ @@ -1391,6 +1390,7 @@ ++s; *++s = '\0'; } + if (match_c(buffer, "%d,%d: (%d,%d,%d,%d) #%x ", &col, &row, @@ -1401,25 +1401,33 @@ "%d,%d: (%f%%,%f%%,%f%%,%d) #%x ", &col, &row, &rf, &gf, &bf, &nocolor, + &check) || + match_c(buffer, + "%d,%d: (%f%%,%f%%,%f%%) #%x ", + &col, &row, + &rf, &gf, &bf, &check)) { matched = TRUE; - blurred = TRUE; /* 6.9.11 scaling is broken... */ + #define fp_fix(n) (int) (MaxRGB * (((n) > 100.0 ? 100.0 : (n)) / 100.0)) + r = fp_fix(rf); g = fp_fix(gf); b = fp_fix(bf); } + if ((s - t) > 8) /* 6 hex digits vs 8 */ + check /= 256; if (matched) { int which, c; - - if ((s - t) > 8) /* 6 hex digits vs 8 */ - check /= 256; - if (blurred) { - /* revisit this when ImageMagick is fixed */ - } else if (r > MaxRGB || - g > MaxRGB || - b > MaxRGB || - check != (unsigned) ((r << 16) | (g << 8) | b)) { + int want_r = (check >> 16) & 0xff; + int want_g = (check >> 8) & 0xff; + int want_b = (check >> 0) & 0xff; + +#define fp_err(tst,ref) ((tst > MaxRGB) || ((tst - ref)*(tst - ref)) > 4) + + if (fp_err(r, want_r) || + fp_err(g, want_g) || + fp_err(b, want_b)) { okay = FALSE; break; }