ncurses/ncurses-6.2-20200215.patch

1150 lines
52 KiB
Diff
Raw Normal View History

# ncurses 6.2 - patch 20200215 - Thomas E. Dickey
#
# ------------------------------------------------------------------------------
#
# Ncurses 6.2 is at
# ftp.gnu.org:/pub/gnu
#
# Patches for ncurses 6.2 can be found at
# ftp://ftp.invisible-island.net/ncurses/6.2
# http://invisible-mirror.net/archives/ncurses/6.2
#
# ------------------------------------------------------------------------------
# ftp://ftp.invisible-island.net/ncurses/6.2/ncurses-6.2-20200215.patch.gz
# patch by Thomas E. Dickey <dickey@invisible-island.net>
# created Sun Feb 16 02:14:29 UTC 2020
# ------------------------------------------------------------------------------
# INSTALL | 39 ++++
# NEWS | 10 +
# 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 | 272 +++++++++++++++++++++-----------
# 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/panel.3x | 237 +++++++++++++++++----------
# misc/run_tic.in | 4
# ncurses/base/MKlib_gen.sh | 4
# 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
# 31 files changed, 419 insertions(+), 210 deletions(-)
# ------------------------------------------------------------------------------
Index: INSTALL
Prereq: 1.216
--- ncurses-6.2-20200212+/INSTALL 2020-02-02 23:34:34.000000000 +0000
+++ ncurses-6.2-20200215/INSTALL 2020-02-15 13:39:30.000000000 +0000
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: INSTALL,v 1.216 2020/02/02 23:34:34 tom Exp $
+-- $Id: INSTALL,v 1.217 2020/02/15 13:39:30 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
@@ -1343,6 +1343,43 @@
you may encounter when building a system with different versions of
ncurses:
+ 6.2 (Feb 12, 2020)
+ Interface changes:
+
+ + the terminal database must be compiled with ncurses 6.2 tic;
+ older versions of tic/infocmp will not work. Aside from that,
+ the compiled database will work with older applications.
+
+ + "*.pc" and "ncurses*-config" files give the same information.
+
+ + vwprintw and vwscanw are deprecated.
+
+ Added extensions:
+
+ + These make it simpler to substitute a debug-configuration of the
+ library for non-debug:
+ curses_trace
+ exit_curses
+ exit_terminfo
+
+ Added internal functions (other than "_sp" variants):
+
+ + These provide fast-lookup of common user-defined capabilities:
+ _nc_find_user_entry
+ _nc_get_userdefs_table
+ _nc_get_hash_user
+
+ + This is added to work around compiler-warnings:
+ _nc_fmt_funcptr
+
+ Removed internal functions:
+
+ + _nc_import_termtype
+
+ Modified internal functions:
+
+ + _nc_reserve_pairs no longer returns a value
+
6.1 (Jan 27, 2018)
Interface changes:
Index: NEWS
Prereq: 1.3446
--- ncurses-6.2-20200212+/NEWS 2020-02-12 02:21:21.000000000 +0000
+++ ncurses-6.2-20200215/NEWS 2020-02-15 18:56:00.000000000 +0000
@@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.3446 2020/02/12 02:21:21 tom Exp $
+-- $Id: NEWS,v 1.3450 2020/02/15 18:56:00 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@@ -46,6 +46,14 @@
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20200215
+ + improve manual page for panel library, extending the portability
+ section as well as documenting error-returns.
+ + show tic's version when installing terminal database in run_tic.sh
+ + correct check for gcc vs other compilers used in ncurses 6.0, from
+ FreeBSD patch by Kyle Evans (cf: 20150725).
+ + add notes for 6.2 to INSTALL.
+
20200212 6.2 release for upload to ftp.gnu.org
+ update release notes
+ minor build-fixes, mostly to test-package scripts
Index: VERSION
--- ncurses-6.2-20200212+/VERSION 2020-02-09 23:35:50.000000000 +0000
+++ ncurses-6.2-20200215/VERSION 2020-02-15 09:30:48.000000000 +0000
@@ -1 +1 @@
-5:0:10 6.2 20200212
+5:0:10 6.2 20200215
Index: dist.mk
Prereq: 1.1334
--- ncurses-6.2-20200212+/dist.mk 2020-02-09 21:49:08.000000000 +0000
+++ ncurses-6.2-20200215/dist.mk 2020-02-15 09:30:48.000000000 +0000
@@ -26,7 +26,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1334 2020/02/09 21:49:08 tom Exp $
+# $Id: dist.mk,v 1.1335 2020/02/15 09:30:48 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 = 2
-NCURSES_PATCH = 20200212
+NCURSES_PATCH = 20200215
# 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.2-20200212+/doc/html/man/adacurses6-config.1.html 2020-02-09 21:19:26.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/adacurses6-config.1.html 2020-02-15 21:04:10.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.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
Index: doc/html/man/captoinfo.1m.html
--- ncurses-6.2-20200212+/doc/html/man/captoinfo.1m.html 2020-02-09 21:19:26.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/captoinfo.1m.html 2020-02-15 21:04:10.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.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
Index: doc/html/man/clear.1.html
--- ncurses-6.2-20200212+/doc/html/man/clear.1.html 2020-02-09 21:19:26.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/clear.1.html 2020-02-15 21:04:10.000000000 +0000
@@ -149,7 +149,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>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
Index: doc/html/man/form.3x.html
--- ncurses-6.2-20200212+/doc/html/man/form.3x.html 2020-02-09 21:19:29.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/form.3x.html 2020-02-15 21:04:13.000000000 +0000
@@ -247,7 +247,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.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
Index: doc/html/man/infocmp.1m.html
--- ncurses-6.2-20200212+/doc/html/man/infocmp.1m.html 2020-02-09 21:19:30.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/infocmp.1m.html 2020-02-15 21:04:14.000000000 +0000
@@ -513,7 +513,7 @@
https://invisible-island.net/ncurses/tctest.html
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
Index: doc/html/man/infotocap.1m.html
--- ncurses-6.2-20200212+/doc/html/man/infotocap.1m.html 2020-02-09 21:19:30.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/infotocap.1m.html 2020-02-15 21:04:14.000000000 +0000
@@ -91,7 +91,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="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
Index: doc/html/man/menu.3x.html
--- ncurses-6.2-20200212+/doc/html/man/menu.3x.html 2020-02-09 21:19:30.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/menu.3x.html 2020-02-15 21:04:14.000000000 +0000
@@ -222,7 +222,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.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
Index: doc/html/man/ncurses.3x.html
--- ncurses-6.2-20200212+/doc/html/man/ncurses.3x.html 2020-02-09 21:19:31.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/ncurses.3x.html 2020-02-15 21:04:15.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.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
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.2-20200212+/doc/html/man/ncurses6-config.1.html 2020-02-09 21:19:31.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/ncurses6-config.1.html 2020-02-15 21:04:15.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.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
Index: doc/html/man/panel.3x.html
--- ncurses-6.2-20200212+/doc/html/man/panel.3x.html 2020-02-09 21:19:31.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/panel.3x.html 2020-02-15 21:18:25.000000000 +0000
@@ -27,7 +27,24 @@
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: panel.3x,v 1.28 2020/02/02 23:34:34 tom Exp @
+ * @Id: panel.3x,v 1.39 2020/02/15 21:06:40 tom Exp @
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
+ * ---------
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
@@ -55,21 +72,30 @@
<STRONG>cc</STRONG> <STRONG>[flags]</STRONG> <STRONG>sourcefiles</STRONG> <STRONG>-lpanel</STRONG> <STRONG>-lncurses</STRONG>
- <STRONG>PANEL</STRONG> <STRONG>*new_panel(WINDOW</STRONG> <STRONG>*win);</STRONG>
- <STRONG>int</STRONG> <STRONG>bottom_panel(PANEL</STRONG> <STRONG>*pan);</STRONG>
- <STRONG>int</STRONG> <STRONG>top_panel(PANEL</STRONG> <STRONG>*pan);</STRONG>
- <STRONG>int</STRONG> <STRONG>show_panel(PANEL</STRONG> <STRONG>*pan);</STRONG>
+ <STRONG>PANEL</STRONG> <STRONG>*new_panel(WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>);</STRONG>
+
+ <STRONG>int</STRONG> <STRONG>bottom_panel(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>top_panel(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>show_panel(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
<STRONG>void</STRONG> <STRONG>update_panels(void);</STRONG>
- <STRONG>int</STRONG> <STRONG>hide_panel(PANEL</STRONG> <STRONG>*pan);</STRONG>
- <STRONG>WINDOW</STRONG> <STRONG>*panel_window(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan);</STRONG>
- <STRONG>int</STRONG> <STRONG>replace_panel(PANEL</STRONG> <STRONG>*pan,</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*window);</STRONG>
- <STRONG>int</STRONG> <STRONG>move_panel(PANEL</STRONG> <STRONG>*pan,</STRONG> <STRONG>int</STRONG> <STRONG>starty,</STRONG> <STRONG>int</STRONG> <STRONG>startx);</STRONG>
- <STRONG>int</STRONG> <STRONG>panel_hidden(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan);</STRONG>
- <STRONG>PANEL</STRONG> <STRONG>*panel_above(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan);</STRONG>
- <STRONG>PANEL</STRONG> <STRONG>*panel_below(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan);</STRONG>
- <STRONG>int</STRONG> <STRONG>set_panel_userptr(PANEL</STRONG> <STRONG>*pan,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*ptr);</STRONG>
- <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*panel_userptr(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*pan);</STRONG>
- <STRONG>int</STRONG> <STRONG>del_panel(PANEL</STRONG> <STRONG>*pan);</STRONG>
+ <STRONG>int</STRONG> <STRONG>hide_panel(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
+
+ <STRONG>WINDOW</STRONG> <STRONG>*panel_window(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>replace_panel(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>,</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>window</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>move_panel(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>starty</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>startx</EM><STRONG>);</STRONG>
+ <STRONG>int</STRONG> <STRONG>panel_hidden(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
+
+ <STRONG>PANEL</STRONG> <STRONG>*panel_above(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
+ <STRONG>PANEL</STRONG> <STRONG>*panel_below(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
+
+ <STRONG>int</STRONG> <STRONG>set_panel_userptr(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*</STRONG><EM>ptr</EM><STRONG>);</STRONG>
+ <STRONG>const</STRONG> <STRONG>void</STRONG> <STRONG>*panel_userptr(const</STRONG> <STRONG>PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
+
+ <STRONG>int</STRONG> <STRONG>del_panel(PANEL</STRONG> <STRONG>*</STRONG><EM>pan</EM><STRONG>);</STRONG>
+
+ /* ncurses-extensions */
+ <STRONG>PANEL</STRONG> <STRONG>*ground_panel(SCREEN</STRONG> <STRONG>*</STRONG><EM>sp</EM><STRONG>);</STRONG>
+ <STRONG>PANEL</STRONG> <STRONG>*ceiling_panel(SCREEN</STRONG> <STRONG>*</STRONG><EM>sp</EM><STRONG>);</STRONG>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
@@ -89,73 +115,100 @@
</PRE><H2><a name="h2-FUNCTIONS">FUNCTIONS</a></H2><PRE>
- <STRONG>new_panel(win)</STRONG>
- allocates a <STRONG>PANEL</STRONG> structure, associates it with <STRONG>win</STRONG>, places
- the panel on the top of the stack (causes it to be displayed
- above any other panel) and returns a pointer to the new panel.
-
- <STRONG>update_panels</STRONG>
- refreshes the <EM>virtual</EM> <EM>screen</EM> to reflect the relations between
- the panels in the stack, but does not call <STRONG>doupdate</STRONG> to refresh
- the <EM>physical</EM> <EM>screen</EM>. Use this function and not <STRONG>wrefresh</STRONG> or
- <STRONG>wnoutrefresh</STRONG>. <STRONG>update_panels</STRONG> may be called more than once before
- a call to <STRONG>doupdate</STRONG>, but <STRONG>doupdate</STRONG> is the function responsible for
- updating the <EM>physical</EM> <EM>screen</EM>.
-
- <STRONG>del_panel(pan)</STRONG>
- removes the given panel from the stack and deallocates the
- <STRONG>PANEL</STRONG> structure (but not its associated window).
-
- <STRONG>hide_panel(pan)</STRONG>
- removes the given panel from the panel stack and thus hides it
- from view. The <STRONG>PANEL</STRONG> structure is not lost, merely removed from
- the stack.
-
- <STRONG>panel_hidden(pan)</STRONG>
- returns <STRONG>TRUE</STRONG> if the panel is in the panel stack, <STRONG>FALSE</STRONG> if it is
- not. If the panel is a null pointer, return <STRONG>ERR</STRONG>.
-
- <STRONG>show_panel(pan)</STRONG>
- makes a hidden panel visible by placing it on top of the panels
- in the panel stack. See COMPATIBILITY below.
-
- <STRONG>top_panel(pan)</STRONG>
- puts the given visible panel on top of all panels in the stack.
- See COMPATIBILITY below.
-
- <STRONG>bottom_panel(pan)</STRONG>
- puts panel at the bottom of all panels.
-
- <STRONG>move_panel(pan,starty,startx)</STRONG>
- moves the given panel window so that its upper-left corner is at
- <STRONG>starty</STRONG>, <STRONG>startx</STRONG>. It does not change the position of the panel in
- the stack. Be sure to use this function, not <STRONG>mvwin</STRONG>, to move a
- panel window.
-
- <STRONG>replace_panel(pan,window)</STRONG>
- replaces the current window of panel with <STRONG>window</STRONG> (useful, for
- example if you want to resize a panel; if you're using <STRONG>ncurses</STRONG>,
- you can call <STRONG>replace_panel</STRONG> on the output of <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>). It
- does not change the position of the panel in the stack.
-
- <STRONG>panel_above(pan)</STRONG>
- returns a pointer to the panel above pan. If the panel argument
- is <STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>, it returns a pointer to the bottom panel in the
- stack.
-
- <STRONG>panel_below(pan)</STRONG>
- returns a pointer to the panel just below pan. If the panel
- argument is <STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>, it returns a pointer to the top panel in
- the stack.
- <STRONG>set_panel_userptr(pan,ptr)</STRONG>
- sets the panel's user pointer.
+</PRE><H3><a name="h3-bottom_panel">bottom_panel</a></H3><PRE>
+ <STRONG>bottom_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> puts panel <EM>pan</EM> at the bottom of all panels.
+
+
+</PRE><H3><a name="h3-ceiling_panel">ceiling_panel</a></H3><PRE>
+ <STRONG>ceiling_panel(</STRONG><EM>sp</EM><STRONG>)</STRONG> acts like <STRONG>panel_below(NULL)</STRONG>, for the given <STRONG>SCREEN</STRONG> <EM>sp</EM>.
+
+
+</PRE><H3><a name="h3-del_panel">del_panel</a></H3><PRE>
+ <STRONG>del_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> removes the given panel <EM>pan</EM> from the stack and deallo-
+ cates the <STRONG>PANEL</STRONG> structure (but not its associated window).
+
+
+</PRE><H3><a name="h3-ground_panel">ground_panel</a></H3><PRE>
+ <STRONG>ground_panel(</STRONG><EM>sp</EM><STRONG>)</STRONG> acts like <STRONG>panel_above(NULL)</STRONG>, for the given <STRONG>SCREEN</STRONG> <EM>sp</EM>.
+
+
+</PRE><H3><a name="h3-hide_panel">hide_panel</a></H3><PRE>
+ <STRONG>hide_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> removes the given panel <EM>pan</EM> from the panel stack and
+ thus hides it from view. The <STRONG>PANEL</STRONG> structure is not lost, merely
+ removed from the stack.
+
+
+</PRE><H3><a name="h3-move_panel">move_panel</a></H3><PRE>
+ <STRONG>move_panel(</STRONG><EM>pan</EM><STRONG>,</STRONG><EM>starty</EM><STRONG>,</STRONG><EM>startx</EM><STRONG>)</STRONG> moves the given panel <EM>pan</EM>'s window so
+ that its upper-left corner is at <EM>starty</EM>, <EM>startx</EM>. It does not change
+ the position of the panel in the stack. Be sure to use this function,
+ not <STRONG><A HREF="curs_window.3x.html">mvwin(3x)</A></STRONG>, to move a panel window.
+
+
+</PRE><H3><a name="h3-new_panel">new_panel</a></H3><PRE>
+ <STRONG>new_panel(</STRONG><EM>win</EM><STRONG>)</STRONG> allocates a <STRONG>PANEL</STRONG> structure, associates it with <EM>win</EM>,
+ places the panel on the top of the stack (causes it to be displayed
+ above any other panel) and returns a pointer to the new panel.
+
+
+</PRE><H3><a name="h3-panel_above">panel_above</a></H3><PRE>
+ <STRONG>panel_above(</STRONG><EM>pan</EM><STRONG>)</STRONG> returns a pointer to the panel above <EM>pan</EM>. If the
+ panel argument is <STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>, it returns a pointer to the bottom panel
+ in the stack.
+
+
+</PRE><H3><a name="h3-panel_below">panel_below</a></H3><PRE>
+ <STRONG>panel_below(</STRONG><EM>pan</EM><STRONG>)</STRONG> returns a pointer to the panel just below <EM>pan</EM>. If the
+ panel argument is <STRONG>(PANEL</STRONG> <STRONG>*)0</STRONG>, it returns a pointer to the top panel in
+ the stack.
+
+
+</PRE><H3><a name="h3-panel_hidden">panel_hidden</a></H3><PRE>
+ <STRONG>panel_hidden(</STRONG><EM>pan</EM><STRONG>)</STRONG> returns <STRONG>TRUE</STRONG> if the panel <EM>pan</EM> is in the panel stack,
+ <STRONG>FALSE</STRONG> if it is not. If the panel is a null pointer, return <STRONG>ERR</STRONG>.
- <STRONG>panel_userptr(pan)</STRONG>
- returns the user pointer for a given panel.
- <STRONG>panel_window(pan)</STRONG>
- returns a pointer to the window of the given panel.
+</PRE><H3><a name="h3-panel_userptr">panel_userptr</a></H3><PRE>
+ <STRONG>panel_userptr(</STRONG><EM>pan</EM><STRONG>)</STRONG> returns the user pointer for a given panel <EM>pan</EM>.
+
+
+</PRE><H3><a name="h3-panel_window">panel_window</a></H3><PRE>
+ <STRONG>panel_window(</STRONG><EM>pan</EM><STRONG>)</STRONG> returns a pointer to the window of the given panel
+ <EM>pan</EM>.
+
+
+</PRE><H3><a name="h3-replace_panel">replace_panel</a></H3><PRE>
+ <STRONG>replace_panel(</STRONG><EM>pan</EM><STRONG>,</STRONG><EM>window</EM><STRONG>)</STRONG> replaces the current window of panel <EM>pan</EM> with
+ <EM>window</EM> This is useful, for example if you want to resize a panel. In
+ <STRONG>ncurses</STRONG>, you can call <STRONG>replace_panel</STRONG> to resize a panel using a window
+ resized with <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>. It does not change the position of the panel
+ in the stack.
+
+
+</PRE><H3><a name="h3-set_panel_userptr">set_panel_userptr</a></H3><PRE>
+ <STRONG>set_panel_userptr(</STRONG><EM>pan</EM><STRONG>,</STRONG><EM>ptr</EM><STRONG>)</STRONG> sets the panel's user pointer.
+
+
+</PRE><H3><a name="h3-show_panel">show_panel</a></H3><PRE>
+ <STRONG>show_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> makes a hidden panel visible by placing it on top of
+ the panels in the panel stack. See <STRONG>COMPATIBILITY</STRONG> below.
+
+
+</PRE><H3><a name="h3-top_panel">top_panel</a></H3><PRE>
+ <STRONG>top_panel(</STRONG><EM>pan</EM><STRONG>)</STRONG> puts the given visible panel <EM>pan</EM> on top of all panels in
+ the stack. See <STRONG>COMPATIBILITY</STRONG> below.
+
+
+</PRE><H3><a name="h3-update_panels">update_panels</a></H3><PRE>
+ <STRONG>update_panels()</STRONG> refreshes the <EM>virtual</EM> <EM>screen</EM> to reflect the relations
+ between the panels in the stack, but does not call <STRONG><A HREF="curs_refresh.3x.html">doupdate(3x)</A></STRONG> to
+ refresh the <EM>physical</EM> <EM>screen</EM>. Use this function and not <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG> or
+ <STRONG><A HREF="curs_refresh.3x.html">wnoutrefresh(3x)</A></STRONG>.
+
+ <STRONG>update_panels</STRONG> may be called more than once before a call to <STRONG>doupdate</STRONG>,
+ but <STRONG>doupdate</STRONG> is the function responsible for updating the <EM>physical</EM>
+ <EM>screen</EM>.
</PRE><H2><a name="h2-DIAGNOSTICS">DIAGNOSTICS</a></H2><PRE>
@@ -163,6 +216,12 @@
Each routine that returns an int value returns <STRONG>OK</STRONG> if it executes suc-
cessfully and <STRONG>ERR</STRONG> if not.
+ Except as noted, the <EM>pan</EM> and <EM>window</EM> parameters must be non-null. If
+ those are null, an error is returned.
+
+ The <STRONG>move_panel</STRONG> function uses <STRONG><A HREF="curs_window.3x.html">mvwin(3x)</A></STRONG>, and will return an error if
+ <STRONG>mvwin</STRONG> returns an error.
+
</PRE><H2><a name="h2-COMPATIBILITY">COMPATIBILITY</a></H2><PRE>
Reasonable care has been taken to ensure compatibility with the
@@ -192,8 +251,25 @@
It is not part of X/Open Curses.
- Aside from ncurses, only systems based on SVr4 source code, e.g.,
- Solaris provide this library.
+ A few implementations exist:
+
+ <STRONG>o</STRONG> Systems based on SVr4 source code, e.g., Solaris, provide this
+ library.
+
+ <STRONG>o</STRONG> <STRONG>ncurses</STRONG> (since version 0.6 in 1993) and <STRONG>PDCurses</STRONG> (since version 2.2
+ in 1995) provide a panel library whose common ancestor was a public
+ domain implementation by Warren Tucker published in <EM>u386mon</EM> 2.20
+ (1990).
+
+ According to Tucker, the SystemV panel library was first released
+ in SVr3.2 (1988), and his implementation helped with a port to
+ SVr3.1 (1987).
+
+ Several developers have improved each of these; they are no longer
+ the same as Tucker's implementation.
+
+ <STRONG>o</STRONG> NetBSD 8 (2018) has a panel library begun by Valery Ushakov in
+ 2015. This is based on the AT&amp;T documentation.
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
@@ -205,13 +281,17 @@
</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 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
- Originally written by Warren Tucker &lt;wht@n4hgf.mt-park.ga.us&gt;, primar-
- ily to assist in porting u386mon to systems without a native panels
- library. Repackaged for ncurses by Zeyd ben-Halim.
+ Originally written by Warren Tucker &lt;wht@n4hgf.mt-park.ga.us&gt;, primar-
+ ily to assist in porting <EM>u386mon</EM> to systems without a native panels
+ library.
+
+ Repackaged for ncurses by Zeyd ben-Halim.
+
+ Juergen Pfeifer and Thomas E. Dickey revised/improved the library.
@@ -222,7 +302,27 @@
<li><a href="#h2-NAME">NAME</a></li>
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a></li>
-<li><a href="#h2-FUNCTIONS">FUNCTIONS</a></li>
+<li><a href="#h2-FUNCTIONS">FUNCTIONS</a>
+<ul>
+<li><a href="#h3-bottom_panel">bottom_panel</a></li>
+<li><a href="#h3-ceiling_panel">ceiling_panel</a></li>
+<li><a href="#h3-del_panel">del_panel</a></li>
+<li><a href="#h3-ground_panel">ground_panel</a></li>
+<li><a href="#h3-hide_panel">hide_panel</a></li>
+<li><a href="#h3-move_panel">move_panel</a></li>
+<li><a href="#h3-new_panel">new_panel</a></li>
+<li><a href="#h3-panel_above">panel_above</a></li>
+<li><a href="#h3-panel_below">panel_below</a></li>
+<li><a href="#h3-panel_hidden">panel_hidden</a></li>
+<li><a href="#h3-panel_userptr">panel_userptr</a></li>
+<li><a href="#h3-panel_window">panel_window</a></li>
+<li><a href="#h3-replace_panel">replace_panel</a></li>
+<li><a href="#h3-set_panel_userptr">set_panel_userptr</a></li>
+<li><a href="#h3-show_panel">show_panel</a></li>
+<li><a href="#h3-top_panel">top_panel</a></li>
+<li><a href="#h3-update_panels">update_panels</a></li>
+</ul>
+</li>
<li><a href="#h2-DIAGNOSTICS">DIAGNOSTICS</a></li>
<li><a href="#h2-COMPATIBILITY">COMPATIBILITY</a></li>
<li><a href="#h2-NOTE">NOTE</a></li>
Index: doc/html/man/tabs.1.html
--- ncurses-6.2-20200212+/doc/html/man/tabs.1.html 2020-02-09 21:19:31.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/tabs.1.html 2020-02-15 21:04:15.000000000 +0000
@@ -206,7 +206,7 @@
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <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 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
Index: doc/html/man/terminfo.5.html
--- ncurses-6.2-20200212+/doc/html/man/terminfo.5.html 2020-02-09 21:19:32.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/terminfo.5.html 2020-02-15 21:04:16.000000000 +0000
@@ -105,7 +105,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.2 (patch 20200212).
+ This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
Index: doc/html/man/tic.1m.html
--- ncurses-6.2-20200212+/doc/html/man/tic.1m.html 2020-02-09 21:19:32.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/tic.1m.html 2020-02-15 21:04:16.000000000 +0000
@@ -461,7 +461,7 @@
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(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 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
Index: doc/html/man/toe.1m.html
--- ncurses-6.2-20200212+/doc/html/man/toe.1m.html 2020-02-09 21:19:32.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/toe.1m.html 2020-02-15 21:04:16.000000000 +0000
@@ -171,7 +171,7 @@
<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>ter-</STRONG>
<STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
Index: doc/html/man/tput.1.html
--- ncurses-6.2-20200212+/doc/html/man/tput.1.html 2020-02-09 21:19:32.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/tput.1.html 2020-02-15 21:04:16.000000000 +0000
@@ -523,7 +523,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="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
Index: doc/html/man/tset.1.html
--- ncurses-6.2-20200212+/doc/html/man/tset.1.html 2020-02-09 21:19:32.000000000 +0000
+++ ncurses-6.2-20200215/doc/html/man/tset.1.html 2020-02-15 21:04:16.000000000 +0000
@@ -390,7 +390,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.2 (patch 20200212).
+ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
Index: man/manhtml.aliases
Prereq: 1.14
--- ncurses-6.2-20200212+/man/manhtml.aliases 2020-02-02 23:34:34.000000000 +0000
+++ ncurses-6.2-20200215/man/manhtml.aliases 2020-02-15 21:02:48.000000000 +0000
@@ -1,4 +1,4 @@
-# $Id: manhtml.aliases,v 1.14 2020/02/02 23:34:34 tom Exp $
+# $Id: manhtml.aliases,v 1.16 2020/02/15 21:02:48 tom Exp $
#***************************************************************************
# Copyright 2019,2020 Thomas E. Dickey *
# Copyright 2013,2017 Free Software Foundation, Inc. *
@@ -45,6 +45,7 @@
longname(3X) curs_termattrs(3X)
meta(3X) curs_inopts(3X)
mvcur(3X) curs_terminfo(3X)
+mvwin(3X) curs_window(3X)
newterm(3X) curs_initscr(3X)
refresh(3X) curs_refresh(3X)
reset_shell_mode(3X) curs_kernel(3X)
@@ -61,3 +62,5 @@
use_extended_names(3X) curs_extend(3X)
vidputs(3X) curs_terminfo(3X)
wgetch(3X) curs_getch(3X)
+wnoutrefresh(3X) curs_refresh(3X)
+wrefresh(3X) curs_refresh(3X)
Index: man/panel.3x
Prereq: 1.28
--- ncurses-6.2-20200212+/man/panel.3x 2020-02-02 23:34:34.000000000 +0000
+++ ncurses-6.2-20200215/man/panel.3x 2020-02-15 21:06:40.000000000 +0000
@@ -27,12 +27,16 @@
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: panel.3x,v 1.28 2020/02/02 23:34:34 tom Exp $
+.\" $Id: panel.3x,v 1.39 2020/02/15 21:06:40 tom Exp $
.TH panel 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.SH NAME
panel \- panel stack extension for curses
.SH SYNOPSIS
@@ -40,35 +44,41 @@
.P
\fBcc [flags] sourcefiles \-lpanel \-lncurses\fR
.P
-\fBPANEL *new_panel(WINDOW *win);\fR
+\fBPANEL *new_panel(WINDOW *\fIwin\fB);\fR
+.sp
+\fBint bottom_panel(PANEL *\fIpan\fB);\fR
.br
-\fBint bottom_panel(PANEL *pan);\fR
+\fBint top_panel(PANEL *\fIpan\fB);\fR
.br
-\fBint top_panel(PANEL *pan);\fR
-.br
-\fBint show_panel(PANEL *pan);\fR
+\fBint show_panel(PANEL *\fIpan\fB);\fR
.br
\fBvoid update_panels(void);\fR
.br
-\fBint hide_panel(PANEL *pan);\fR
-.br
-\fBWINDOW *panel_window(const PANEL *pan);\fR
+\fBint hide_panel(PANEL *\fIpan\fB);\fR
+.sp
+\fBWINDOW *panel_window(const PANEL *\fIpan\fB);\fR
.br
-\fBint replace_panel(PANEL *pan, WINDOW *window);\fR
+\fBint replace_panel(PANEL *\fIpan\fB, WINDOW *\fIwindow\fB);\fR
.br
-\fBint move_panel(PANEL *pan, int starty, int startx);\fR
+\fBint move_panel(PANEL *\fIpan\fB, int \fIstarty\fB, int \fIstartx\fB);\fR
.br
-\fBint panel_hidden(const PANEL *pan);\fR
+\fBint panel_hidden(const PANEL *\fIpan\fB);\fR
+.sp
+\fBPANEL *panel_above(const PANEL *\fIpan\fB);\fR
.br
-\fBPANEL *panel_above(const PANEL *pan);\fR
+\fBPANEL *panel_below(const PANEL *\fIpan\fB);\fR
+.sp
+\fBint set_panel_userptr(PANEL *\fIpan\fB, const void *\fIptr\fB);\fR
.br
-\fBPANEL *panel_below(const PANEL *pan);\fR
+\fBconst void *panel_userptr(const PANEL *\fIpan\fB);\fR
+.sp
+\fBint del_panel(PANEL *\fIpan\fB);\fR
+.sp
+/* ncurses-extensions */
.br
-\fBint set_panel_userptr(PANEL *pan, const void *ptr);\fR
+\fBPANEL *ground_panel(SCREEN *\fIsp\fB);\fR
.br
-\fBconst void *panel_userptr(const PANEL *pan);\fR
-.br
-\fBint del_panel(PANEL *pan);\fR
+\fBPANEL *ceiling_panel(SCREEN *\fIsp\fB);\fR
.br
.SH DESCRIPTION
Panels are \fBcurses\fR(3X) windows with the added feature of
@@ -89,87 +99,113 @@
Panel routines are a functional layer added to \fBcurses\fR(3X), make only
high-level curses calls, and work anywhere terminfo curses does.
.SH FUNCTIONS
-.TP
-.B new_panel(win)
-allocates a \fBPANEL\fR structure, associates it with
-\fBwin\fR, places the panel on the top of the stack (causes it
-to be displayed above any other panel) and returns a
-pointer to the new panel.
-.TP
-.B update_panels
-refreshes the \fIvirtual screen\fP to reflect the relations between the
-panels in the stack, but does not call \fBdoupdate\fP to refresh the
-\fIphysical screen\fP.
-Use this function and not \fBwrefresh\fP or \fBwnoutrefresh\fP.
-.B update_panels
-may be called more than once before a call to
-\fBdoupdate\fP, but \fBdoupdate\fP is the function responsible for updating
-the \fIphysical screen\fP.
-.TP
-.B del_panel(pan)
-removes the given panel from the stack and deallocates the
+.\" ---------
+.SS bottom_panel
+\fBbottom_panel(\fIpan\fB)\fR
+puts panel \fIpan\fP at the bottom of all panels.
+.\" ---------
+.SS ceiling_panel
+\fBceiling_panel(\fIsp\fB)\fR
+acts like \fBpanel_below(NULL)\fP, for the given \fBSCREEN\fP \fIsp\fP.
+.\" ---------
+.SS del_panel
+\fBdel_panel(\fIpan\fB)\fR
+removes the given panel \fIpan\fP from the stack and deallocates the
\fBPANEL\fR structure (but not its associated window).
-.TP
-.B hide_panel(pan)
-removes the given panel from the panel stack and thus hides it from
-view.
+.\" ---------
+.SS ground_panel
+\fBground_panel(\fIsp\fB)\fR
+acts like \fBpanel_above(NULL)\fP, for the given \fBSCREEN\fP \fIsp\fP.
+.\" ---------
+.SS hide_panel
+\fBhide_panel(\fIpan\fB)\fR
+removes the given panel \fIpan\fP from the panel stack
+and thus hides it from view.
The \fBPANEL\fR structure is not lost, merely removed from the stack.
-.TP
-.B panel_hidden(pan)
-returns \fBTRUE\fP if the panel is in the panel stack,
-\fBFALSE\fP if it is not.
-If the panel is a null pointer, return \fBERR\fP.
-.TP
-.B show_panel(pan)
-makes a hidden panel visible by placing it on top of the panels in the
-panel stack.
-See COMPATIBILITY below.
-.TP
-.B top_panel(pan)
-puts the given visible panel on top of all panels in the stack.
-See
-COMPATIBILITY below.
-.TP
-.B bottom_panel(pan)
-puts panel at the bottom of all panels.
-.TP
-.B move_panel(pan,starty,startx)
-moves the given panel window so that its upper-left corner is at
-\fBstarty\fR, \fBstartx\fR.
-It does not change the position of the
-panel in the stack.
-Be sure to use this function, not \fBmvwin\fR,
-to move a panel window.
-.TP
-.B replace_panel(pan,window)
-replaces the current window of panel with \fBwindow\fR (useful, for
-example if you want to resize a panel; if you're using \fBncurses\fR,
-you can call \fBreplace_panel\fR on the output of \fBwresize\fR(3X)).
+.\" ---------
+.SS move_panel
+\fBmove_panel(\fIpan\fB,\fIstarty\fB,\fIstartx\fB)\fR
+moves the given panel \fIpan\fP's window so that its upper-left corner is at
+\fIstarty\fR, \fIstartx\fR.
It does not change the position of the panel in the stack.
-.TP
-.B panel_above(pan)
-returns a pointer to the panel above pan.
+Be sure to use this function, not \fBmvwin\fR(3X), to move a panel window.
+.\" ---------
+.SS new_panel
+\fBnew_panel(\fIwin\fB)\fR allocates a \fBPANEL\fR structure,
+associates it with \fIwin\fR, places the panel on the top of the stack
+(causes it to be displayed above any other panel) and returns a
+pointer to the new panel.
+.\" ---------
+.SS panel_above
+\fBpanel_above(\fIpan\fB)\fR
+returns a pointer to the panel above \fIpan\fP.
If the panel argument is
\fB(PANEL *)0\fR, it returns a pointer to the bottom panel in the stack.
-.TP
-.B panel_below(pan)
-returns a pointer to the panel just below pan.
+.\" ---------
+.SS panel_below
+\fBpanel_below(\fIpan\fB)\fR
+returns a pointer to the panel just below \fIpan\fP.
If the panel argument
is \fB(PANEL *)0\fR, it returns a pointer to the top panel in the stack.
-.TP
-.B set_panel_userptr(pan,ptr)
+.\" ---------
+.SS panel_hidden
+\fBpanel_hidden(\fIpan\fB)\fR
+returns \fBTRUE\fP if the panel \fIpan\fP is in the panel stack,
+\fBFALSE\fP if it is not.
+If the panel is a null pointer, return \fBERR\fP.
+.\" ---------
+.SS panel_userptr
+\fBpanel_userptr(\fIpan\fB)\fR
+returns the user pointer for a given panel \fIpan\fP.
+.\" ---------
+.SS panel_window
+\fBpanel_window(\fIpan\fB)\fR
+returns a pointer to the window of the given panel \fIpan\fP.
+.\" ---------
+.SS replace_panel
+\fBreplace_panel(\fIpan\fB,\fIwindow\fB)\fR
+replaces the current window of panel \fIpan\fP with \fIwindow\fR
+This is useful, for example if you want to resize a panel.
+In \fBncurses\fR, you can call \fBreplace_panel\fR
+to resize a panel using a window resized with \fBwresize\fR(3X).
+It does not change the position of the panel in the stack.
+.\" ---------
+.SS set_panel_userptr
+\fBset_panel_userptr(\fIpan\fB,\fIptr\fB)\fR
sets the panel's user pointer.
-.TP
-.B panel_userptr(pan)
-returns the user pointer for a given panel.
-.TP
-.B panel_window(pan)
-returns a pointer to the window of the given panel.
+.\" ---------
+.SS show_panel
+\fBshow_panel(\fIpan\fB)\fR
+makes a hidden panel visible by placing it on top of the panels in the
+panel stack.
+See \fBCOMPATIBILITY\fP below.
+.\" ---------
+.SS top_panel
+\fBtop_panel(\fIpan\fB)\fR
+puts the given visible panel \fIpan\fP on top of all panels in the stack.
+See \fBCOMPATIBILITY\fP below.
+.\" ---------
+.SS update_panels
+\fBupdate_panels()\fR
+refreshes the \fIvirtual screen\fP to reflect the relations between the
+panels in the stack, but does not call \fBdoupdate\fP(3X) to refresh the
+\fIphysical screen\fP.
+Use this function and not \fBwrefresh\fP(3X) or \fBwnoutrefresh\fP(3X).
+.PP
+\fBupdate_panels\fP may be called more than once before a call to
+\fBdoupdate\fP, but \fBdoupdate\fP is the function responsible for updating
+the \fIphysical screen\fP.
.SH DIAGNOSTICS
Each routine that returns a pointer returns \fBNULL\fR if an error
occurs.
Each routine that returns an int value returns \fBOK\fR if it
executes successfully and \fBERR\fR if not.
+.PP
+Except as noted, the \fIpan\fP and \fIwindow\fP parameters must be non-null.
+If those are null, an error is returned.
+.PP
+The \fBmove_panel\fP function uses \fBmvwin\fP(3X),
+and will return an error if \fBmvwin\fP returns an error.
.SH COMPATIBILITY
Reasonable care has been taken to ensure compatibility
with the native panel facility introduced in System V (inspection of
@@ -198,8 +234,27 @@
.PP
It is not part of X/Open Curses.
.PP
-Aside from ncurses, only systems based on SVr4 source code,
-e.g., Solaris provide this library.
+A few implementations exist:
+.bP
+Systems based on SVr4 source code,
+e.g., Solaris, provide this library.
+.bP
+\fBncurses\fP (since version 0.6 in 1993)
+and \fBPDCurses\fP (since version 2.2 in 1995)
+provide a panel library whose common ancestor
+was a public domain implementation by Warren Tucker
+published in \fIu386mon\fP 2.20 (1990).
+.IP
+According to Tucker, the SystemV panel library
+was first released in SVr3.2 (1988),
+and his implementation helped with a port to SVr3.1 (1987).
+.IP
+Several developers have improved each of these;
+they are no longer the same as Tucker's implementation.
+.bP
+NetBSD 8 (2018)
+has a panel library begun by Valery Ushakov in 2015.
+This is based on the AT&T documentation.
.SH FILES
.P
panel.h
@@ -214,7 +269,11 @@
This describes \fBncurses\fR
version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
.SH AUTHOR
+.PP
Originally written by Warren Tucker <wht@n4hgf.mt-park.ga.us>,
-primarily to assist in porting u386mon to systems without a native
+primarily to assist in porting \fIu386mon\fP to systems without a native
panels library.
+.PP
Repackaged for ncurses by Zeyd ben-Halim.
+.PP
+Juergen Pfeifer and Thomas E. Dickey revised/improved the library.
Index: misc/run_tic.in
Prereq: 1.37
--- ncurses-6.2-20200212+/misc/run_tic.in 2020-02-02 23:34:34.000000000 +0000
+++ ncurses-6.2-20200215/misc/run_tic.in 2020-02-15 15:30:53.000000000 +0000
@@ -1,5 +1,5 @@
#!@SHELL@
-# $Id: run_tic.in,v 1.37 2020/02/02 23:34:34 tom Exp $
+# $Id: run_tic.in,v 1.38 2020/02/15 15:30:53 tom Exp $
##############################################################################
# Copyright 2019,2020 Thomas E. Dickey #
# Copyright 2000-2012,2017 Free Software Foundation, Inc. #
@@ -145,6 +145,7 @@
document, and install the terminfo without the -x option.
EOF
+$TIC_PATH -V
if ( $TIC_PATH -x -s -o "$TERMINFO" $source )
then
echo "** built new $TERMINFO"
@@ -164,6 +165,7 @@
document, and install the terminfo without the -x option.
EOF
+$TIC_PATH -V
if ( $TIC_PATH -s -o "$TERMINFO" $source )
then
echo "** built new $TERMINFO"
Index: ncurses/base/MKlib_gen.sh
Prereq: 1.63
--- ncurses-6.2-20200212+/ncurses/base/MKlib_gen.sh 2020-02-02 23:34:34.000000000 +0000
+++ ncurses-6.2-20200215/ncurses/base/MKlib_gen.sh 2020-02-15 14:58:02.000000000 +0000
@@ -2,7 +2,7 @@
#
# MKlib_gen.sh -- generate sources from curses.h macro definitions
#
-# ($Id: MKlib_gen.sh,v 1.63 2020/02/02 23:34:34 tom Exp $)
+# ($Id: MKlib_gen.sh,v 1.64 2020/02/15 14:58:02 tom Exp $)
#
##############################################################################
# Copyright 2018,2020 Thomas E. Dickey #
@@ -74,7 +74,7 @@
# determine if we are using gcc, and if so, what version because the proposed
# solution uses a nonstandard option.
PRG=`echo "$1" | $AWK '{ sub(/^[ ]*/,""); sub(/[ ].*$/, ""); print; }' || exit 0`
-FSF=`"$PRG" --version 2>/dev/null || exit 0 | fgrep "Free Software Foundation" | head -n 1`
+FSF=`("$PRG" --version 2>/dev/null || exit 0) | fgrep "Free Software Foundation" | head -n 1`
ALL=`"$PRG" -dumpversion 2>/dev/null || exit 0`
ONE=`echo "$ALL" | sed -e 's/\..*$//'`
if test -n "$FSF" && test -n "$ALL" && test -n "$ONE" ; then
Index: package/debian-mingw/changelog
--- ncurses-6.2-20200212+/package/debian-mingw/changelog 2020-02-09 23:35:50.000000000 +0000
+++ ncurses-6.2-20200215/package/debian-mingw/changelog 2020-02-15 09:30:48.000000000 +0000
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20200212) unstable; urgency=low
+ncurses6 (6.2+20200215) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 09 Feb 2020 18:35:50 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 15 Feb 2020 04:30:48 -0500
ncurses6 (5.9-20131005) unstable; urgency=low
Index: package/debian-mingw64/changelog
--- ncurses-6.2-20200212+/package/debian-mingw64/changelog 2020-02-09 23:35:50.000000000 +0000
+++ ncurses-6.2-20200215/package/debian-mingw64/changelog 2020-02-15 09:30:48.000000000 +0000
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20200212) unstable; urgency=low
+ncurses6 (6.2+20200215) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 09 Feb 2020 18:35:50 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 15 Feb 2020 04:30:48 -0500
ncurses6 (5.9-20131005) unstable; urgency=low
Index: package/debian/changelog
--- ncurses-6.2-20200212+/package/debian/changelog 2020-02-09 23:35:50.000000000 +0000
+++ ncurses-6.2-20200215/package/debian/changelog 2020-02-15 09:30:48.000000000 +0000
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20200212) unstable; urgency=low
+ncurses6 (6.2+20200215) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 09 Feb 2020 18:35:50 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sat, 15 Feb 2020 04:30:48 -0500
ncurses6 (5.9-20120608) unstable; urgency=low
Index: package/mingw-ncurses.nsi
Prereq: 1.377
--- ncurses-6.2-20200212+/package/mingw-ncurses.nsi 2020-02-09 23:35:50.000000000 +0000
+++ ncurses-6.2-20200215/package/mingw-ncurses.nsi 2020-02-15 09:30:48.000000000 +0000
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.377 2020/02/09 23:35:50 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.378 2020/02/15 09:30:48 tom Exp $
; TODO add examples
; TODO bump ABI to 6
@@ -10,7 +10,7 @@
!define VERSION_MAJOR "6"
!define VERSION_MINOR "2"
!define VERSION_YYYY "2020"
-!define VERSION_MMDD "0212"
+!define VERSION_MMDD "0215"
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
!define MY_ABI "5"
Index: package/mingw-ncurses.spec
--- ncurses-6.2-20200212+/package/mingw-ncurses.spec 2020-02-09 23:35:50.000000000 +0000
+++ ncurses-6.2-20200215/package/mingw-ncurses.spec 2020-02-15 09:30:48.000000000 +0000
@@ -3,7 +3,7 @@
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.2
-Release: 20200212
+Release: 20200215
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Index: package/ncurses.spec
--- ncurses-6.2-20200212+/package/ncurses.spec 2020-02-12 01:47:16.000000000 +0000
+++ ncurses-6.2-20200215/package/ncurses.spec 2020-02-15 09:30:48.000000000 +0000
@@ -1,7 +1,7 @@
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.2
-Release: 20200212
+Release: 20200215
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Index: package/ncursest.spec
--- ncurses-6.2-20200212+/package/ncursest.spec 2020-02-12 01:53:30.000000000 +0000
+++ ncurses-6.2-20200215/package/ncursest.spec 2020-02-15 09:30:48.000000000 +0000
@@ -1,7 +1,7 @@
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.2
-Release: 20200212
+Release: 20200215
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz