ncurses 6.2 - patch 20200215
authorThomas E. Dickey <dickey@invisible-island.net>
Sun, 16 Feb 2020 02:14:29 +0000 (02:14 +0000)
committerThomas E. Dickey <dickey@invisible-island.net>
Sun, 16 Feb 2020 02:14:29 +0000 (02:14 +0000)
+ 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.

31 files changed:
INSTALL
NEWS
VERSION
dist.mk
doc/html/man/adacurses6-config.1.html
doc/html/man/captoinfo.1m.html
doc/html/man/clear.1.html
doc/html/man/form.3x.html
doc/html/man/infocmp.1m.html
doc/html/man/infotocap.1m.html
doc/html/man/menu.3x.html
doc/html/man/ncurses.3x.html
doc/html/man/ncurses6-config.1.html
doc/html/man/panel.3x.html
doc/html/man/tabs.1.html
doc/html/man/terminfo.5.html
doc/html/man/tic.1m.html
doc/html/man/toe.1m.html
doc/html/man/tput.1.html
doc/html/man/tset.1.html
man/manhtml.aliases
man/panel.3x
misc/run_tic.in
ncurses/base/MKlib_gen.sh
package/debian-mingw/changelog
package/debian-mingw64/changelog
package/debian/changelog
package/mingw-ncurses.nsi
package/mingw-ncurses.spec
package/ncurses.spec
package/ncursest.spec

diff --git a/INSTALL b/INSTALL
index 69cf439a6c1efac12b5d9aae22fb16314eb4cd5b..f3e710d8fa679e50eeb6b5554be41971592976f4 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -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 @@ COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
     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:
 
diff --git a/NEWS b/NEWS
index ccc1d43b6f3441af6985c14b96b49e3c364cc55e..c4f6fe360bb94ff1d79588bbeccc55ce58651c2e 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -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 @@ See the AUTHORS file for the corresponding full names.
 Changes through 1.9.9e did not credit all contributions;
 it is not possible to add this information.
 
+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
diff --git a/VERSION b/VERSION
index d443029cfd2dd46df31cd438c6239ef8ab7317ee..73ac659d490e17255a3020adfa1298338d2c4e7c 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-5:0:10 6.2     20200212
+5:0:10 6.2     20200215
diff --git a/dist.mk b/dist.mk
index aa6685a71a8d8e52350df4bc3067278075d753d5..3d2d2f23edecc1f69fd2218065aae8521be9c7e4 100644 (file)
--- a/dist.mk
+++ b/dist.mk
@@ -26,7 +26,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.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 @@ SHELL = /bin/sh
 # 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 f2de0a2c53d8625ee7bd8577f9deadf6ed040af8..bf325552763f79f39e56b2868106bf4ccc8dec51 100644 (file)
 </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 f66e368512705847ac46655bdcd96d57cf73973c..fbea4ddde266ae63d9b6cc872aa5dfe243e15ad2 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       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 93455b4cc79c5b0a9d6e47bc2eaac820f9ac786b..853f05c3205035d40f347f24a6bc3c7b0ea4a0a6 100644 (file)
 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
        <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200212).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
 
 
 
index 82a8afe568ffb9812781e0064482b28d4d0a2f65..2dbd8ba1576805b563c171ab03515d2ed4cbf54d 100644 (file)
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  and  related  pages  whose names begin "form_" for detailed
        descriptions of the entry points.
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200212).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
 
 
 
index 0f1f0e5c0463c5016cdb8601fe6f1dac8cbc003f..ec07820b2116f577c27ab5950493882c112cdc76 100644 (file)
 
        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 aadf8f49ffb65746afe44395839ac935b78de119..02a383c29497761cac5a90052036e080fbca0350 100644 (file)
@@ -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 457e7aaa87cf4a6a2c272e766354019d33f4a497..9f50200de7ade1f33a639fcf3c7ae69a56f02491 100644 (file)
        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  and  related  pages  whose names begin "menu_" for detailed
        descriptions of the entry points.
 
-       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200212).
+       This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200215).
 
 
 
index 4275f0223e04b9c932b26702846c9899a49235e3..ddf5d2a05e5f2864829726d6771e60aad28027ad 100644 (file)
@@ -60,7 +60,7 @@
        method of updating  character  screens  with  reasonable  optimization.
        This  implementation  is  "new  curses"  (ncurses)  and is the approved
        replacement for 4.4BSD classic curses,  which  has  been  discontinued.
-       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 f5fdc4fde95073fab2161573cff52030e9554024..0f8c15e564a3e66bd5ff15a3eb0e758ba7d5d4d2 100644 (file)
 </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 2d44419f087ac783a068a302ec4c46efe038a883..a9522c7d94a91bb01a4988233d7918ac101af7db 100644 (file)
   * 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>
 
        <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>
 
 
 </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.
-
-       <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-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>.
+
+
+</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>
        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
 
        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>
 </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.
 
 
 
 <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 8a785fc59517967debb688287c4730dd9d12c151..df6290d38ffe5e6d56782f20ddadd87b71b6178c 100644 (file)
 </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 4e45c8612683f661c0106a8c726f69fa1b16f1d1..0bfba033e7e74fa9296505eca1880c0d106bcf7d 100644 (file)
        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 b61a006e22e954342eefd403312af0dbe772f849..184f4350b4bf3800bf200c2230512de3151c7911 100644 (file)
        <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 25d5ddf125e88f18478fd94fd1784881a1691268..c792d46e8f969826fb66c1fd3bbc40af63d94b99 100644 (file)
        <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 b6fe5034c842a9a9b969b384198de8e05e6f6f23..5de32deab29151c3803cf9c7943ac97b1808e0b6 100644 (file)
 </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 2b7741050132531232eb1f6efd20e4aa9fb5282c..84876f19fec49cb3218ba2f9a2be395ee0f6a1fb 100644 (file)
        <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 c887322875ea313c446583bed56321674c38e1d9..4fff94b5a40e19cb8985bf69b0193c615a32d361 100644 (file)
@@ -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 @@ keypad(3X)            curs_inopts(3X)
 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_default_colors(3X)        default_colors(3X)
 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 32dd487586c7808b2a45b71c9295181390802a2c..932ef48eef7d96c1cd7647fb29577b8d6c1c47cf 100644 (file)
 .\" 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 @@ panel \- panel stack extension for curses
 .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 at any desired location in the stack.
 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 @@ The panel facility was documented in SVr4.2 in
 .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 @@ the panels library itself
 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 817c97bfb688adcc7db07b3ede311c82ac54d332..b335b48e2a0dc578eade0dfea7eb9c727b84ee32 100644 (file)
@@ -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 @@ Running $TIC_PATH to install $TERMINFO ...
        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 @@ Running $TIC_PATH to install $TERMINFO ...
        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 5a3770e501403e819c2dd149dba624eee05f72d8..c8e4efe0c8d1107a2e1a8fe0c722ebd311c0410f 100755 (executable)
@@ -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 @@ USE="$3"
 # 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 4401f1a780e4c5b8ee978e1b8fffe01fb9fc049e..151586b192c0835d1b86f00ab39323d281e6bbf0 100644 (file)
@@ -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 4401f1a780e4c5b8ee978e1b8fffe01fb9fc049e..151586b192c0835d1b86f00ab39323d281e6bbf0 100644 (file)
@@ -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 4bc639277c9f4f557b8f5fca797a7d963e0fce2a..f1c9d372e9f45edf7f4b7d7071077a8e6695770c 100644 (file)
@@ -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 f60875619bb9b6dd2f157e2ea37f4e21e7e6da58..9f10f978ee61d2804f97b9fa4134186e39aef149 100644 (file)
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.377 2020/02/09 23:35:50 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.378 2020/02/15 09:30:48 tom Exp $\r
 \r
 ; TODO add examples\r
 ; TODO bump ABI to 6\r
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"\r
 !define VERSION_MINOR "2"\r
 !define VERSION_YYYY  "2020"\r
-!define VERSION_MMDD  "0212"\r
+!define VERSION_MMDD  "0215"\r
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
 \r
 !define MY_ABI   "5"\r
index d529dfb90e8179eb19ab954597bb52999124df45..085790a184d2e7cd6e87b25eac87a73012e02ecc 100644 (file)
@@ -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 b6287901c0a3574513233f90f04eb13958f42337..b50131def28234650dacdaadb714694a0b631f09 100644 (file)
@@ -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 709539eb64b2fd96e0847274b409ea207562ed7b..c7332d94899a49e0591c14aba78ac0d41d2f55ea 100644 (file)
@@ -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