From 7503e8d82292a2a0a4d8bb55bdf3f8a203159f68 Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 14 Jun 2020 01:26:43 +0000 Subject: [PATCH] ncurses 6.2 - patch 20200613 + update list of functions in ncurses.3x + move dlclose() call from lib_mouse.c to delscreen() to avoid a case in the former which could be called from SIGTSTP handler (Debian #961097). --- NEWS | 8 +++- 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/curs_memleaks.3x.html | 16 ++++---- 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 | 54 +++++++++++++++------------ doc/html/man/ncurses6-config.1.html | 2 +- doc/html/man/panel.3x.html | 2 +- doc/html/man/tabs.1.html | 2 +- doc/html/man/terminfo.5.html | 2 +- doc/html/man/tic.1m.html | 2 +- doc/html/man/toe.1m.html | 2 +- doc/html/man/tput.1.html | 2 +- doc/html/man/tset.1.html | 2 +- man/curs_memleaks.3x | 4 +- man/ncurses.3x | 38 ++++++++++++------- ncurses/base/lib_mouse.c | 17 ++++++--- ncurses/base/lib_set_term.c | 17 ++++++++- ncurses/curses.priv.h | 7 +++- ncurses/tinfo/lib_data.c | 7 +++- ncurses/tinfo/lib_tparm.c | 26 ++++++------- 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 +- 34 files changed, 154 insertions(+), 98 deletions(-) diff --git a/NEWS b/NEWS index 812b56b1..7e79fc57 100644 --- a/NEWS +++ b/NEWS @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3504 2020/06/07 00:22:03 tom Exp $ +-- $Id: NEWS,v 1.3507 2020/06/13 23:29:57 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,12 @@ 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. +20200613 + + update list of functions in ncurses.3x + + move dlclose() call from lib_mouse.c to delscreen() to avoid a case + in the former which could be called from SIGTSTP handler (Debian + #961097). + 20200606 + add xterm+256color2, xterm+88color2, to deprecate nonstandard usage in xterm+256color, xterm+88color -TD diff --git a/VERSION b/VERSION index 9c13848b..a090fb89 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.2 20200606 +5:0:10 6.2 20200613 diff --git a/dist.mk b/dist.mk index dceb5b5a..dd0b5a8b 100644 --- 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.1355 2020/06/06 08:52:59 tom Exp $ +# $Id: dist.mk,v 1.1356 2020/06/13 09:46:27 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 = 20200606 +NCURSES_PATCH = 20200613 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/doc/html/man/adacurses6-config.1.html b/doc/html/man/adacurses6-config.1.html index bb2407c2..59296b24 100644 --- a/doc/html/man/adacurses6-config.1.html +++ b/doc/html/man/adacurses6-config.1.html @@ -126,7 +126,7 @@

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index 847aa5f5..72309ad2 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -199,7 +199,7 @@
 

SEE ALSO

        infocmp(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 

AUTHOR

diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html
index bf60154f..6b32399c 100644
--- a/doc/html/man/clear.1.html
+++ b/doc/html/man/clear.1.html
@@ -149,7 +149,7 @@
 

SEE ALSO

        tput(1), terminfo(5)
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 
diff --git a/doc/html/man/curs_memleaks.3x.html b/doc/html/man/curs_memleaks.3x.html
index 18b38c96..62f03549 100644
--- a/doc/html/man/curs_memleaks.3x.html
+++ b/doc/html/man/curs_memleaks.3x.html
@@ -27,7 +27,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_memleaks.3x,v 1.8 2020/02/02 23:34:34 tom Exp @
+  * @Id: curs_memleaks.3x,v 1.9 2020/06/13 23:35:34 tom Exp @
 -->
 
 
@@ -68,13 +68,13 @@
        ncurses library.
 
        Any implementation of curses must not free the memory associated with a
-       screen, since (even after calling endwin), it must be available for use
-       in  the next call to refresh(3x).  There are also chunks of memory held
-       for performance reasons.  That makes it hard to analyze curses applica-
-       tions  for memory leaks.  When using the specially configured debugging
-       version of the ncurses library, applications can call  functions  which
-       free  those  chunks  of  memory, simplifying the process of memory-leak
-       checking.
+       screen, since (even after calling endwin(3x)), it must be available for
+       use  in  the next call to refresh(3x).  There are also chunks of memory
+       held for performance reasons.  That makes it hard to analyze curses ap-
+       plications  for  memory leaks.  When using the specially configured de-
+       bugging version of the ncurses library, applications can call functions
+       which  free  those chunks of memory, simplifying the process of memory-
+       leak checking.
 
        Some of the functions are named with a "_nc_" prefix because  they  are
        not intended for use in the non-debugging library:
diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
index b90c8a0b..5d29807e 100644
--- a/doc/html/man/form.3x.html
+++ b/doc/html/man/form.3x.html
@@ -247,7 +247,7 @@
        curses(3x)  and  related  pages  whose names begin "form_" for detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 
diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
index 1a2e0c60..bb74c638 100644
--- a/doc/html/man/infocmp.1m.html
+++ b/doc/html/man/infocmp.1m.html
@@ -513,7 +513,7 @@
 
        https://invisible-island.net/ncurses/tctest.html
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 

AUTHOR

diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
index 8e8a0708..5ecde3ec 100644
--- a/doc/html/man/infotocap.1m.html
+++ b/doc/html/man/infotocap.1m.html
@@ -91,7 +91,7 @@
 

SEE ALSO

        curses(3x), tic(1m), infocmp(1m), terminfo(5)
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 

AUTHOR

diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
index bf5cf1df..b290f8b5 100644
--- a/doc/html/man/menu.3x.html
+++ b/doc/html/man/menu.3x.html
@@ -222,7 +222,7 @@
        curses(3x)  and  related  pages  whose names begin "menu_" for detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 
diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
index d514e3db..9e6ba131 100644
--- a/doc/html/man/ncurses.3x.html
+++ b/doc/html/man/ncurses.3x.html
@@ -28,7 +28,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: ncurses.3x,v 1.147 2020/03/21 23:38:25 tom Exp @
+  * @Id: ncurses.3x,v 1.148 2020/06/13 23:25:50 tom Exp @
 -->
 
 
@@ -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 ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
        The  ncurses  library emulates the curses library of System V Release 4
        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
@@ -278,25 +278,15 @@
 
 
 

Routine Name Index

-       The following table lists each curses routine and the name of the  man-
-       ual  page  on  which  it  is  described.  Routines flagged with "*" are
-       ncurses-specific, not described by XPG4 or present in SVr4.
+       The following table lists the curses routines provided in the  "normal"
+       and  "wide"  libraries  and the names of the manual pages on which they
+       are described.  Routines flagged with  "*"  are  ncurses-specific,  not
+       described by XPG4 or present in SVr4.
 
                     curses Routine Name      Manual Page Name
                     ---------------------------------------------
                     COLOR_PAIR               curs_color(3x)
                     PAIR_NUMBER              curs_attr(3x)
-                    _nc_free_and_exit        curs_memleaks(3x)*
-                    _nc_freeall              curs_memleaks(3x)*
-                    _nc_tracebits            curs_trace(3x)*
-                    _traceattr               curs_trace(3x)*
-                    _traceattr2              curs_trace(3x)*
-                    _tracechar               curs_trace(3x)*
-                    _tracechtype             curs_trace(3x)*
-                    _tracechtype2            curs_trace(3x)*
-                    _tracedump               curs_trace(3x)*
-                    _tracef                  curs_trace(3x)*
-                    _tracemouse              curs_trace(3x)*
                     add_wch                  curs_add_wch(3x)
                     add_wchnstr              curs_add_wchstr(3x)
                     add_wchstr               curs_add_wchstr(3x)
@@ -313,7 +303,6 @@
                     attr_off                 curs_attr(3x)
                     attr_on                  curs_attr(3x)
                     attr_set                 curs_attr(3x)
-
                     attroff                  curs_attr(3x)
                     attron                   curs_attr(3x)
                     attrset                  curs_attr(3x)
@@ -324,6 +313,7 @@
                     bkgrnd                   curs_bkgrnd(3x)
                     bkgrndset                curs_bkgrnd(3x)
                     border                   curs_border(3x)
+
                     border_set               curs_border_set(3x)
                     box                      curs_border(3x)
                     box_set                  curs_border_set(3x)
@@ -338,6 +328,7 @@
                     color_set                curs_attr(3x)
                     copywin                  curs_overlay(3x)
                     curs_set                 curs_kernel(3x)
+                    curses_trace             curs_trace(3x)*
                     curses_version           curs_extend(3x)*
                     def_prog_mode            curs_kernel(3x)
                     def_shell_mode           curs_kernel(3x)
@@ -358,6 +349,8 @@
                     erase                    curs_clear(3x)
                     erasechar                curs_termattrs(3x)
                     erasewchar               curs_termattrs(3x)
+                    exit_curses              curs_memleaks(3x)*
+                    exit_terminfo            curs_memleaks(3x)*
                     extended_color_content   curs_color(3x)*
                     extended_pair_content    curs_color(3x)*
                     extended_slk_color       curs_slk(3x)*
@@ -379,7 +372,6 @@
                     getcurx                  curs_legacy(3x)*
                     getcury                  curs_legacy(3x)*
                     getmaxx                  curs_legacy(3x)*
-
                     getmaxy                  curs_legacy(3x)*
                     getmaxyx                 curs_getyx(3x)
                     getmouse                 curs_mouse(3x)*
@@ -387,6 +379,7 @@
                     getnstr                  curs_getstr(3x)
                     getparx                  curs_legacy(3x)*
                     getpary                  curs_legacy(3x)*
+
                     getparyx                 curs_getyx(3x)
                     getstr                   curs_getstr(3x)
                     getsyx                   curs_kernel(3x)
@@ -397,6 +390,7 @@
                     has_ic                   curs_termattrs(3x)
                     has_il                   curs_termattrs(3x)
                     has_key                  curs_getch(3x)*
+                    has_mouse                curs_mouse(3x)*
                     hline                    curs_border(3x)
                     hline_set                curs_border_set(3x)
                     idcok                    curs_outopts(3x)
@@ -445,13 +439,13 @@
                     key_defined              key_defined(3x)*
                     key_name                 curs_util(3x)
                     keybound                 keybound(3x)*
-
                     keyname                  curs_util(3x)
                     keyok                    keyok(3x)*
                     keypad                   curs_inopts(3x)
                     killchar                 curs_termattrs(3x)
                     killwchar                curs_termattrs(3x)
                     leaveok                  curs_outopts(3x)
+
                     longname                 curs_termattrs(3x)
                     mcprint                  curs_print(3x)*
                     meta                     curs_inopts(3x)
@@ -511,13 +505,13 @@
                     mvwaddnwstr              curs_addwstr(3x)
                     mvwaddstr                curs_addstr(3x)
                     mvwaddwstr               curs_addwstr(3x)
-
                     mvwchgat                 curs_attr(3x)
                     mvwdelch                 curs_delch(3x)
                     mvwget_wch               curs_get_wch(3x)
                     mvwget_wstr              curs_get_wstr(3x)
                     mvwgetch                 curs_getch(3x)
                     mvwgetn_wstr             curs_get_wstr(3x)
+
                     mvwgetnstr               curs_getstr(3x)
                     mvwgetstr                curs_getstr(3x)
                     mvwhline                 curs_border(3x)
@@ -559,6 +553,7 @@
                     overlay                  curs_overlay(3x)
                     overwrite                curs_overlay(3x)
                     pair_content             curs_color(3x)
+                    pecho_wchar              curs_pad(3x)*
                     pechochar                curs_pad(3x)
                     pnoutrefresh             curs_pad(3x)
                     prefresh                 curs_pad(3x)
@@ -569,6 +564,7 @@
                     raw                      curs_inopts(3x)
                     redrawwin                curs_refresh(3x)
                     refresh                  curs_refresh(3x)
+                    reset_color_pairs        curs_color(3x)*
                     reset_prog_mode          curs_kernel(3x)
                     reset_shell_mode         curs_kernel(3x)
                     resetty                  curs_kernel(3x)
@@ -577,11 +573,11 @@
                     restartterm              curs_terminfo(3x)
                     ripoffline               curs_kernel(3x)
                     savetty                  curs_kernel(3x)
-
                     scanw                    curs_scanw(3x)
                     scr_dump                 curs_scr_dump(3x)
                     scr_init                 curs_scr_dump(3x)
                     scr_restore              curs_scr_dump(3x)
+
                     scr_set                  curs_scr_dump(3x)
                     scrl                     curs_scroll(3x)
                     scroll                   curs_scroll(3x)
@@ -609,6 +605,7 @@
                     slk_restore              curs_slk(3x)
                     slk_set                  curs_slk(3x)
                     slk_touch                curs_slk(3x)
+                    slk_wset                 curs_slk(3x)*
                     standend                 curs_attr(3x)
                     standout                 curs_attr(3x)
                     start_color              curs_color(3x)
@@ -643,10 +640,10 @@
                     use_default_colors       default_colors(3x)*
                     use_env                  curs_util(3x)
                     use_extended_names       curs_extend(3x)*
-
                     use_legacy_coding        legacy_coding(3x)*
                     use_tioctl               curs_util(3x)*
                     vid_attr                 curs_terminfo(3x)
+
                     vid_puts                 curs_terminfo(3x)
                     vidattr                  curs_terminfo(3x)
                     vidputs                  curs_terminfo(3x)
@@ -709,10 +706,10 @@
                     winch                    curs_inch(3x)
                     winchnstr                curs_inchstr(3x)
                     winchstr                 curs_inchstr(3x)
-
                     winnstr                  curs_instr(3x)
                     winnwstr                 curs_inwstr(3x)
                     wins_nwstr               curs_ins_wstr(3x)
+
                     wins_wch                 curs_ins_wch(3x)
                     wins_wstr                curs_ins_wstr(3x)
                     winsch                   curs_insch(3x)
@@ -742,6 +739,17 @@
                     wvline                   curs_border(3x)
                     wvline_set               curs_border_set(3x)
 
+       Depending  on  the  configuration,  additional sets of functions may be
+       available:
+
+          curs_memleaks(3x) - curses memory-leak checking
+
+          curs_sp_funcs(3x) - curses screen-pointer extension
+
+          curs_threads(3x) - curses thread support
+
+          curs_trace(3x) - curses debugging routines
+
 
 

RETURN VALUE

        Routines that return an integer return ERR upon failure and an  integer
diff --git a/doc/html/man/ncurses6-config.1.html b/doc/html/man/ncurses6-config.1.html
index 07ee9014..c8bc71ac 100644
--- a/doc/html/man/ncurses6-config.1.html
+++ b/doc/html/man/ncurses6-config.1.html
@@ -113,7 +113,7 @@
 

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 
diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
index 2925bc1c..3ca758f3 100644
--- a/doc/html/man/panel.3x.html
+++ b/doc/html/man/panel.3x.html
@@ -281,7 +281,7 @@
 

SEE ALSO

        curses(3x), curs_variables(3x),
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 

AUTHOR

diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
index 215646ad..4fe88321 100644
--- a/doc/html/man/tabs.1.html
+++ b/doc/html/man/tabs.1.html
@@ -206,7 +206,7 @@
 

SEE ALSO

        tset(1), infocmp(1m), curses(3x), terminfo(5).
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 
diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
index 635041ec..b2800d67 100644
--- a/doc/html/man/terminfo.5.html
+++ b/doc/html/man/terminfo.5.html
@@ -105,7 +105,7 @@
        have, by specifying how to perform screen operations, and by specifying
        padding requirements and initialization sequences.
 
-       This manual describes ncurses version 6.2 (patch 20200516).
+       This manual describes ncurses version 6.2 (patch 20200613).
 
 
 

Terminfo Entry Syntax

diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
index fefcf98e..c1ee89d7 100644
--- a/doc/html/man/tic.1m.html
+++ b/doc/html/man/tic.1m.html
@@ -461,7 +461,7 @@
        infocmp(1m),   captoinfo(1m),   infotocap(1m),   toe(1m),   curses(3x),
        term(5).  terminfo(5).  user_caps(5).
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 

AUTHOR

diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
index 661e56b0..d1336495 100644
--- a/doc/html/man/toe.1m.html
+++ b/doc/html/man/toe.1m.html
@@ -171,7 +171,7 @@
        tic(1m), infocmp(1m), captoinfo(1m),  infotocap(1m),  curses(3x),  ter-
        minfo(5).
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 
diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
index 24f26aa1..d987a347 100644
--- a/doc/html/man/tput.1.html
+++ b/doc/html/man/tput.1.html
@@ -523,7 +523,7 @@
 

SEE ALSO

        clear(1), stty(1), tabs(1), tset(1), terminfo(5), curs_termcap(3x).
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 
diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
index caf8e5ee..b9cf6ed6 100644
--- a/doc/html/man/tset.1.html
+++ b/doc/html/man/tset.1.html
@@ -390,7 +390,7 @@
        csh(1),  sh(1),  stty(1),   curs_terminfo(3x),   tty(4),   terminfo(5),
        ttys(5), environ(7)
 
-       This describes ncurses version 6.2 (patch 20200516).
+       This describes ncurses version 6.2 (patch 20200613).
 
 
 
diff --git a/man/curs_memleaks.3x b/man/curs_memleaks.3x
index 06a95edf..94a5766a 100644
--- a/man/curs_memleaks.3x
+++ b/man/curs_memleaks.3x
@@ -27,7 +27,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_memleaks.3x,v 1.8 2020/02/02 23:34:34 tom Exp $
+.\" $Id: curs_memleaks.3x,v 1.9 2020/06/13 23:35:34 tom Exp $
 .TH curs_memleaks 3X ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -60,7 +60,7 @@ These functions are used to simplify analysis of memory leaks in the ncurses
 library.
 .PP
 Any implementation of curses must not free the memory associated with
-a screen, since (even after calling \fBendwin\fP), it must be available
+a screen, since (even after calling \fBendwin\fP(3X)), it must be available
 for use in the next call to \fBrefresh\fP(3X).
 There are also chunks of memory held for performance reasons.
 That makes it hard to analyze curses applications for memory leaks.
diff --git a/man/ncurses.3x b/man/ncurses.3x
index 33cc04a7..0ca125d6 100644
--- a/man/ncurses.3x
+++ b/man/ncurses.3x
@@ -28,7 +28,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: ncurses.3x,v 1.147 2020/03/21 23:38:25 tom Exp $
+.\" $Id: ncurses.3x,v 1.148 2020/06/13 23:25:50 tom Exp $
 .hy 0
 .TH ncurses 3X ""
 .ie \n(.g .ds `` \(lq
@@ -319,8 +319,9 @@ For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
 .PP
 .\"
 .SS Routine Name Index
-The following table lists each \fBcurses\fR routine and the name of
-the manual page on which it is described.
+The following table lists the \fBcurses\fR routines provided in
+the \*(``normal\*('' and \*(``wide\*('' libraries and the names of
+the manual pages on which they are described.
 Routines flagged with \*(``*\*(''
 are ncurses-specific, not described by XPG4 or present in SVr4.
 .PP
@@ -332,17 +333,6 @@ l l .
 =
 COLOR_PAIR/\fBcurs_color\fR(3X)
 PAIR_NUMBER/\fBcurs_attr\fR(3X)
-_nc_free_and_exit/\fBcurs_memleaks\fR(3X)*
-_nc_freeall/\fBcurs_memleaks\fR(3X)*
-_nc_tracebits/\fBcurs_trace\fR(3X)*
-_traceattr/\fBcurs_trace\fR(3X)*
-_traceattr2/\fBcurs_trace\fR(3X)*
-_tracechar/\fBcurs_trace\fR(3X)*
-_tracechtype/\fBcurs_trace\fR(3X)*
-_tracechtype2/\fBcurs_trace\fR(3X)*
-_tracedump/\fBcurs_trace\fR(3X)*
-_tracef/\fBcurs_trace\fR(3X)*
-_tracemouse/\fBcurs_trace\fR(3X)*
 add_wch/\fBcurs_add_wch\fR(3X)
 add_wchnstr/\fBcurs_add_wchstr\fR(3X)
 add_wchstr/\fBcurs_add_wchstr\fR(3X)
@@ -383,6 +373,7 @@ color_content/\fBcurs_color\fR(3X)
 color_set/\fBcurs_attr\fR(3X)
 copywin/\fBcurs_overlay\fR(3X)
 curs_set/\fBcurs_kernel\fR(3X)
+curses_trace/\fBcurs_trace\fR(3X)*
 curses_version/\fBcurs_extend\fR(3X)*
 def_prog_mode/\fBcurs_kernel\fR(3X)
 def_shell_mode/\fBcurs_kernel\fR(3X)
@@ -403,6 +394,8 @@ endwin/\fBcurs_initscr\fR(3X)
 erase/\fBcurs_clear\fR(3X)
 erasechar/\fBcurs_termattrs\fR(3X)
 erasewchar/\fBcurs_termattrs\fR(3X)
+exit_curses/\fBcurs_memleaks\fR(3X)*
+exit_terminfo/\fBcurs_memleaks\fR(3X)*
 extended_color_content/\fBcurs_color\fR(3X)*
 extended_pair_content/\fBcurs_color\fR(3X)*
 extended_slk_color/\fBcurs_slk\fR(3X)*
@@ -441,6 +434,7 @@ has_colors/\fBcurs_color\fR(3X)
 has_ic/\fBcurs_termattrs\fR(3X)
 has_il/\fBcurs_termattrs\fR(3X)
 has_key/\fBcurs_getch\fR(3X)*
+has_mouse/\fBcurs_mouse\fR(3X)*
 hline/\fBcurs_border\fR(3X)
 hline_set/\fBcurs_border_set\fR(3X)
 idcok/\fBcurs_outopts\fR(3X)
@@ -601,6 +595,7 @@ notimeout/\fBcurs_inopts\fR(3X)
 overlay/\fBcurs_overlay\fR(3X)
 overwrite/\fBcurs_overlay\fR(3X)
 pair_content/\fBcurs_color\fR(3X)
+pecho_wchar/\fBcurs_pad\fR(3X)*
 pechochar/\fBcurs_pad\fR(3X)
 pnoutrefresh/\fBcurs_pad\fR(3X)
 prefresh/\fBcurs_pad\fR(3X)
@@ -611,6 +606,7 @@ qiflush/\fBcurs_inopts\fR(3X)
 raw/\fBcurs_inopts\fR(3X)
 redrawwin/\fBcurs_refresh\fR(3X)
 refresh/\fBcurs_refresh\fR(3X)
+reset_color_pairs/\fBcurs_color\fR(3X)*
 reset_prog_mode/\fBcurs_kernel\fR(3X)
 reset_shell_mode/\fBcurs_kernel\fR(3X)
 resetty/\fBcurs_kernel\fR(3X)
@@ -650,6 +646,7 @@ slk_refresh/\fBcurs_slk\fR(3X)
 slk_restore/\fBcurs_slk\fR(3X)
 slk_set/\fBcurs_slk\fR(3X)
 slk_touch/\fBcurs_slk\fR(3X)
+slk_wset/\fBcurs_slk\fR(3X)*
 standend/\fBcurs_attr\fR(3X)
 standout/\fBcurs_attr\fR(3X)
 start_color/\fBcurs_color\fR(3X)
@@ -781,6 +778,19 @@ wunctrl/\fBcurs_util\fR(3X)
 wvline/\fBcurs_border\fR(3X)
 wvline_set/\fBcurs_border_set\fR(3X)
 .TE
+.PP
+Depending on the configuration,
+additional sets of functions may be available:
+.RS 3
+.TP 5
+\fBcurs_memleaks\fP(3X) - curses memory-leak checking
+.TP 5
+\fBcurs_sp_funcs\fP(3X) - curses screen-pointer extension
+.TP 5
+\fBcurs_threads\fP(3X) - curses thread support
+.TP 5
+\fBcurs_trace\fP(3X) - curses debugging routines
+.RE
 .SH RETURN VALUE
 Routines that return an integer return \fBERR\fR upon failure and an
 integer value other than \fBERR\fR upon successful completion, unless
diff --git a/ncurses/base/lib_mouse.c b/ncurses/base/lib_mouse.c
index 6422b52e..f6cdba95 100644
--- a/ncurses/base/lib_mouse.c
+++ b/ncurses/base/lib_mouse.c
@@ -85,7 +85,7 @@
 #define CUR SP_TERMTYPE
 #endif
 
-MODULE_ID("$Id: lib_mouse.c,v 1.190 2020/05/27 23:55:32 tom Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.191 2020/06/13 21:05:02 tom Exp $")
 
 #include 
 
@@ -487,8 +487,6 @@ unload_gpm_library(SCREEN *sp)
 	T(("unload GPM library"));
 	sp->_mouse_gpm_loaded = FALSE;
 	sp->_mouse_fd = -1;
-	dlclose(sp->_dlopen_gpm);
-	sp->_dlopen_gpm = 0;
     }
 }
 
@@ -496,7 +494,14 @@ static void
 load_gpm_library(SCREEN *sp)
 {
     sp->_mouse_gpm_found = FALSE;
-    if ((sp->_dlopen_gpm = dlopen(LIBGPM_SONAME, my_RTLD)) != 0) {
+
+    /*
+     * If we already had a successful dlopen, reuse it.
+     */
+    if (sp->_dlopen_gpm != 0) {
+	sp->_mouse_gpm_found = TRUE;
+	sp->_mouse_gpm_loaded = TRUE;
+    } else if ((sp->_dlopen_gpm = dlopen(LIBGPM_SONAME, my_RTLD)) != 0) {
 #if (defined(__GNUC__) && (__GNUC__ >= 5)) || defined(__clang__)
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wpedantic"
@@ -510,13 +515,15 @@ load_gpm_library(SCREEN *sp)
 #endif
 	    T(("GPM initialization failed: %s", dlerror()));
 	    unload_gpm_library(sp);
+	    dlclose(sp->_dlopen_gpm);
+	    sp->_dlopen_gpm = 0;
 	} else {
 	    sp->_mouse_gpm_found = TRUE;
 	    sp->_mouse_gpm_loaded = TRUE;
 	}
     }
 }
-#endif
+#endif /* HAVE_LIBDL */
 
 static bool
 enable_gpm_mouse(SCREEN *sp, bool enable)
diff --git a/ncurses/base/lib_set_term.c b/ncurses/base/lib_set_term.c
index b900a68e..18e43531 100644
--- a/ncurses/base/lib_set_term.c
+++ b/ncurses/base/lib_set_term.c
@@ -44,10 +44,17 @@
 #include 
 #include 
 
+#if USE_GPM_SUPPORT
+#ifdef HAVE_LIBDL
+/* use dynamic loader to avoid linkage dependency */
+#include 
+#endif
+#endif
+
 #undef CUR
 #define CUR SP_TERMTYPE
 
-MODULE_ID("$Id: lib_set_term.c,v 1.171 2020/05/23 19:13:12 tom Exp $")
+MODULE_ID("$Id: lib_set_term.c,v 1.173 2020/06/13 21:38:43 tom Exp $")
 
 #ifdef USE_TERM_DRIVER
 #define MaxColors      InfoOf(sp).maxcolors
@@ -197,6 +204,14 @@ delscreen(SCREEN *sp)
 	if (_nc_find_prescr() == sp) {
 	    _nc_forget_prescr();
 	}
+#if USE_GPM_SUPPORT
+#ifdef HAVE_LIBDL
+	if (sp->_dlopen_gpm != 0) {
+	    dlclose(sp->_dlopen_gpm);
+	    sp->_dlopen_gpm = 0;
+	}
+#endif
+#endif /* USE_GPM_SUPPORT */
 	free(sp);
 
 	/*
diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h
index 9ca0263a..2a511f2b 100644
--- a/ncurses/curses.priv.h
+++ b/ncurses/curses.priv.h
@@ -35,7 +35,7 @@
  ****************************************************************************/
 
 /*
- * $Id: curses.priv.h,v 1.628 2020/02/02 23:34:34 tom Exp $
+ * $Id: curses.priv.h,v 1.629 2020/06/13 21:58:00 tom Exp $
  *
  *	curses.priv.h
  *
@@ -953,6 +953,11 @@ typedef struct {
 	time_t		dbd_time;	/* cache last updated */
 	ITERATOR_VARS	dbd_vars[dbdLAST];
 
+#if HAVE_TSEARCH
+	void		*cached_tparm;
+	int		count_tparm;
+#endif /* HAVE_TSEARCH */
+
 #ifdef USE_TERM_DRIVER
 	int		(*term_driver)(struct DriverTCB*, const char*, int*);
 #endif
diff --git a/ncurses/tinfo/lib_data.c b/ncurses/tinfo/lib_data.c
index bf3e554d..39274f4e 100644
--- a/ncurses/tinfo/lib_data.c
+++ b/ncurses/tinfo/lib_data.c
@@ -43,7 +43,7 @@
 
 #include 
 
-MODULE_ID("$Id: lib_data.c,v 1.80 2020/02/02 23:34:34 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.81 2020/06/13 22:01:14 tom Exp $")
 
 /*
  * OS/2's native linker complains if we don't initialize public data when
@@ -155,6 +155,11 @@ NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals = {
     0,				/* dbd_time */
     { { 0, 0 } },		/* dbd_vars */
 
+#if HAVE_TSEARCH
+    NULL,			/* cached_tparm */
+    0,				/* count_tparm */
+#endif /* HAVE_TSEARCH */
+
 #ifdef USE_TERM_DRIVER
     0,				/* term_driver */
 #endif
diff --git a/ncurses/tinfo/lib_tparm.c b/ncurses/tinfo/lib_tparm.c
index 00380151..0f0c62a4 100644
--- a/ncurses/tinfo/lib_tparm.c
+++ b/ncurses/tinfo/lib_tparm.c
@@ -53,7 +53,7 @@
 #include 
 #include 
 
-MODULE_ID("$Id: lib_tparm.c,v 1.126 2020/05/31 00:02:03 tom Exp $")
+MODULE_ID("$Id: lib_tparm.c,v 1.127 2020/06/13 21:59:52 tom Exp $")
 
 /*
  *	char *
@@ -135,8 +135,8 @@ typedef struct {
 } TPARM_DATA;
 
 #if HAVE_TSEARCH
-static void *cached_tparm;
-static int count_tparm;
+#define MyCache _nc_globals.cached_tparm
+#define MyCount _nc_globals.count_tparm
 #if NO_LEAKS
 static int which_tparm;
 static TPARM_DATA **delete_tparm;
@@ -172,20 +172,20 @@ NCURSES_EXPORT(void)
 _nc_free_tparm(void)
 {
 #if HAVE_TSEARCH
-    if (count_tparm != 0) {
-	delete_tparm = typeMalloc(TPARM_DATA *, count_tparm);
+    if (MyCount != 0) {
+	delete_tparm = typeMalloc(TPARM_DATA *, MyCount);
 	which_tparm = 0;
-	twalk(cached_tparm, visit_nodes);
-	for (which_tparm = 0; which_tparm < count_tparm; ++which_tparm) {
+	twalk(MyCache, visit_nodes);
+	for (which_tparm = 0; which_tparm < MyCount; ++which_tparm) {
 	    TPARM_DATA *ptr = delete_tparm[which_tparm];
-	    tdelete(ptr, &cached_tparm, cmp_format);
+	    tdelete(ptr, &MyCache, cmp_format);
 	    free((char *) ptr->format);
 	    free(ptr);
 	}
 	which_tparm = 0;
-	twalk(cached_tparm, visit_nodes);
+	twalk(MyCache, visit_nodes);
 	FreeAndNull(delete_tparm);
-	count_tparm = 0;
+	MyCount = 0;
 	which_tparm = 0;
     }
 #endif
@@ -555,7 +555,7 @@ tparm_setup(const char *string, TPARM_DATA * result)
 	void *ft;
 
 	result->format = string;
-	if ((ft = tfind(result, &cached_tparm, cmp_format)) != 0) {
+	if ((ft = tfind(result, &MyCache, cmp_format)) != 0) {
 	    fs = *(TPARM_DATA **) ft;
 	    *result = *fs;
 	} else
@@ -589,8 +589,8 @@ tparm_setup(const char *string, TPARM_DATA * result)
 		if ((fs = typeCalloc(TPARM_DATA, 1)) != 0) {
 		    *fs = *result;
 		    if ((fs->format = strdup(string)) != 0) {
-			if ((ft = tsearch(fs, &cached_tparm, cmp_format)) != 0) {
-			    ++count_tparm;
+			if ((ft = tsearch(fs, &MyCache, cmp_format)) != 0) {
+			    ++MyCount;
 			} else {
 			    rc = ERR;
 			}
diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
index 153210d9..f7868f7a 100644
--- a/package/debian-mingw/changelog
+++ b/package/debian-mingw/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20200606) unstable; urgency=low
+ncurses6 (6.2+20200613) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 06 Jun 2020 04:52:59 -0400
+ -- Thomas E. Dickey   Sat, 13 Jun 2020 05:46:27 -0400
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
index 153210d9..f7868f7a 100644
--- a/package/debian-mingw64/changelog
+++ b/package/debian-mingw64/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20200606) unstable; urgency=low
+ncurses6 (6.2+20200613) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 06 Jun 2020 04:52:59 -0400
+ -- Thomas E. Dickey   Sat, 13 Jun 2020 05:46:27 -0400
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian/changelog b/package/debian/changelog
index 0dca3cac..18b5b43d 100644
--- a/package/debian/changelog
+++ b/package/debian/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.2+20200606) unstable; urgency=low
+ncurses6 (6.2+20200613) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 06 Jun 2020 04:52:59 -0400
+ -- Thomas E. Dickey   Sat, 13 Jun 2020 05:46:27 -0400
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
index f06e523b..91fe0436 100644
--- a/package/mingw-ncurses.nsi
+++ b/package/mingw-ncurses.nsi
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.399 2020/06/06 08:52:59 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.400 2020/06/13 09:46:27 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  "0606"
+!define VERSION_MMDD  "0613"
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
 
 !define MY_ABI   "5"
diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
index 8a8aec51..e201b8df 100644
--- a/package/mingw-ncurses.spec
+++ b/package/mingw-ncurses.spec
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.2
-Release: 20200606
+Release: 20200613
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/package/ncurses.spec b/package/ncurses.spec
index 5a2d79ce..094993a2 100644
--- a/package/ncurses.spec
+++ b/package/ncurses.spec
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.2
-Release: 20200606
+Release: 20200613
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/package/ncursest.spec b/package/ncursest.spec
index 3f1c51be..799e37ad 100644
--- a/package/ncursest.spec
+++ b/package/ncursest.spec
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.2
-Release: 20200606
+Release: 20200613
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
-- 
2.44.0