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).
This commit is contained in:
Thomas E. Dickey 2020-06-14 01:26:43 +00:00
parent 73dd18dba5
commit 7503e8d822
34 changed files with 154 additions and 98 deletions

8
NEWS
View File

@ -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

View File

@ -1 +1 @@
5:0:10 6.2 20200606
5:0:10 6.2 20200613

View File

@ -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)

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).

View File

@ -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 @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
@ -68,13 +68,13 @@
ncurses library.
Any implementation of curses must not free the memory associated with a
screen, since (even after calling <STRONG>endwin</STRONG>), it must be available for use
in the next call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>. 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 <STRONG><A HREF="curs_initscr.3x.html">endwin(3x)</A></STRONG>), it must be available for
use in the next call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>. 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:

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).

View File

@ -513,7 +513,7 @@
https://invisible-island.net/ncurses/tctest.html
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>

View 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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).

View File

@ -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 @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).
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
@ -278,25 +278,15 @@
</PRE><H3><a name="h3-Routine-Name-Index">Routine Name Index</a></H3><PRE>
The following table lists each <STRONG>curses</STRONG> 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 <STRONG>curses</STRONG> 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.
<STRONG>curses</STRONG> Routine Name Manual Page Name
---------------------------------------------
COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
PAIR_NUMBER <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
_nc_free_and_exit <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
_nc_freeall <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
_nc_tracebits <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_traceattr <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_traceattr2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_tracechar <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_tracechtype <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_tracechtype2 <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_tracedump <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_tracef <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
_tracemouse <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
@ -313,7 +303,6 @@
attr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
attr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
attr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
attroff <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
attron <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
attrset <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
@ -324,6 +313,7 @@
bkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
bkgrndset <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
border <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
border_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
box <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
box_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
@ -338,6 +328,7 @@
color_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
copywin <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
curs_set <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
curses_trace <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
curses_version <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
def_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
def_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
@ -358,6 +349,8 @@
erase <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
erasechar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
erasewchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
exit_curses <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
exit_terminfo <STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG>*
extended_color_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
extended_pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
extended_slk_color <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
@ -379,7 +372,6 @@
getcurx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
getcury <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
getmaxx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
getmaxy <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
getmaxyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
getmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
@ -387,6 +379,7 @@
getnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
getparx <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
getpary <STRONG><A HREF="curs_legacy.3x.html">curs_legacy(3x)</A></STRONG>*
getparyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
getstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
getsyx <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
@ -397,6 +390,7 @@
has_ic <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
has_il <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
has_key <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>*
has_mouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
hline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
hline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
idcok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
@ -445,13 +439,13 @@
key_defined <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>*
key_name <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
keybound <STRONG><A HREF="keybound.3x.html">keybound(3x)</A></STRONG>*
keyname <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
keyok <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>*
keypad <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
killchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
killwchar <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
leaveok <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
longname <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
mcprint <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>*
meta <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
@ -511,13 +505,13 @@
mvwaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
mvwaddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
mvwaddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
mvwchgat <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
mvwdelch <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
mvwget_wch <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
mvwget_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
mvwgetch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
mvwgetn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
mvwgetnstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
mvwgetstr <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
mvwhline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
@ -559,6 +553,7 @@
overlay <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
overwrite <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
pair_content <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
pecho_wchar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>*
pechochar <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
pnoutrefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
prefresh <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
@ -569,6 +564,7 @@
raw <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
redrawwin <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
refresh <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
reset_color_pairs <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>*
reset_prog_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
reset_shell_mode <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
resetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
@ -577,11 +573,11 @@
restartterm <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
ripoffline <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
savetty <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
scanw <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
scr_dump <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
scr_init <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
scr_restore <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
scr_set <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
scrl <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
scroll <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
@ -609,6 +605,7 @@
slk_restore <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_touch <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_wset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
standend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
standout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
start_color <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
@ -643,10 +640,10 @@
use_default_colors <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>*
use_env <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
use_extended_names <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>*
use_legacy_coding <STRONG><A HREF="legacy_coding.3x.html">legacy_coding(3x)</A></STRONG>*
use_tioctl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>*
vid_attr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
vid_puts <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
vidattr <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
vidputs <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
@ -709,10 +706,10 @@
winch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
winchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
winchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
winnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
winnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
wins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
wins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
wins_wstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
winsch <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
@ -742,6 +739,17 @@
wvline <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
wvline_set <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
Depending on the configuration, additional sets of functions may be
available:
<STRONG><A HREF="curs_memleaks.3x.html">curs_memleaks(3x)</A></STRONG> - curses memory-leak checking
<STRONG><A HREF="curs_sp_funcs.3x.html">curs_sp_funcs(3x)</A></STRONG> - curses screen-pointer extension
<STRONG><A HREF="curs_threads.3x.html">curs_threads(3x)</A></STRONG> - curses thread support
<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> - curses debugging routines
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
Routines that return an integer return <STRONG>ERR</STRONG> upon failure and an integer

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).

View File

@ -281,7 +281,7 @@
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).

View File

@ -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 20200516).
This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).
</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).

View File

@ -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 20200516).
This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20200613).

View File

@ -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.

View File

@ -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

View File

@ -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 <tic.h>
@ -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)

View File

@ -44,10 +44,17 @@
#include <curses.priv.h>
#include <tic.h>
#if USE_GPM_SUPPORT
#ifdef HAVE_LIBDL
/* use dynamic loader to avoid linkage dependency */
#include <dlfcn.h>
#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);
/*

View File

@ -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

View File

@ -43,7 +43,7 @@
#include <curses.priv.h>
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

View File

@ -53,7 +53,7 @@
#include <ctype.h>
#include <tic.h>
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;
}

View File

@ -1,8 +1,8 @@
ncurses6 (6.2+20200606) unstable; urgency=low
ncurses6 (6.2+20200613) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 06 Jun 2020 04:52:59 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 13 Jun 2020 05:46:27 -0400
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.2+20200606) unstable; urgency=low
ncurses6 (6.2+20200613) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 06 Jun 2020 04:52:59 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 13 Jun 2020 05:46:27 -0400
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.2+20200606) unstable; urgency=low
ncurses6 (6.2+20200613) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 06 Jun 2020 04:52:59 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 13 Jun 2020 05:46:27 -0400
ncurses6 (5.9-20120608) unstable; urgency=low

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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