1# ncurses 6.1 - patch 20191214 - Thomas E. Dickey
2#
3# ------------------------------------------------------------------------------
4#
5# Ncurses 6.1 is at
6# 	ftp.gnu.org:/pub/gnu
7#
8# Patches for ncurses 6.1 can be found at
9# 	ftp://ftp.invisible-island.net/ncurses/6.1
10#	http://invisible-mirror.net/archives/ncurses/6.1
11#
12# ------------------------------------------------------------------------------
13# ftp://ftp.invisible-island.net/ncurses/6.1/ncurses-6.1-20191214.patch.gz
14# patch by Thomas E. Dickey <dickey@invisible-island.net>
15# created  Sun Dec 15 02:10:35 UTC 2019
16# ------------------------------------------------------------------------------
17# NEWS                                  |    6 ++++-
18# VERSION                               |    2 -
19# c++/cursesmain.cc                     |    6 ++---
20# dist.mk                               |    4 +--
21# doc/html/ada/funcs/T.htm              |    2 -
22# doc/html/man/adacurses6-config.1.html |    2 -
23# doc/html/man/captoinfo.1m.html        |    2 -
24# doc/html/man/clear.1.html             |    2 -
25# doc/html/man/curs_memleaks.3x.html    |   35 +++++++++++++++++++++-----------
26# doc/html/man/form.3x.html             |    2 -
27# doc/html/man/infocmp.1m.html          |    2 -
28# doc/html/man/infotocap.1m.html        |    2 -
29# doc/html/man/menu.3x.html             |    2 -
30# doc/html/man/ncurses.3x.html          |    2 -
31# doc/html/man/ncurses6-config.1.html   |    2 -
32# doc/html/man/panel.3x.html            |    2 -
33# doc/html/man/tabs.1.html              |    2 -
34# doc/html/man/terminfo.5.html          |    2 -
35# doc/html/man/tic.1m.html              |    2 -
36# doc/html/man/toe.1m.html              |    2 -
37# doc/html/man/tput.1.html              |    2 -
38# doc/html/man/tset.1.html              |    2 -
39# include/MKterm.h.awk.in               |   13 +++++++++--
40# include/curses.tail                   |    4 ++-
41# include/nc_alloc.h                    |   16 ++++++++++----
42# man/curs_memleaks.3x                  |   29 +++++++++++++++++++-------
43# ncurses/base/lib_freeall.c            |   19 ++++++++++++++---
44# ncurses/curses.priv.h                 |    9 +-------
45# ncurses/llib-lncurses                 |   15 +++++++++++++
46# ncurses/llib-lncursest                |   16 ++++++++++++++
47# ncurses/llib-lncursestw               |   16 ++++++++++++++
48# ncurses/llib-lncursesw                |   16 ++++++++++++++
49# ncurses/tinfo/comp_parse.c            |    4 +--
50# ncurses/tinfo/entries.c               |   11 +++++++++-
51# ncurses/tty/hashmap.c                 |   16 +++++---------
52# package/debian-mingw/changelog        |    4 +--
53# package/debian-mingw64/changelog      |    4 +--
54# package/debian/changelog              |    4 +--
55# package/mingw-ncurses.nsi             |    4 +--
56# package/mingw-ncurses.spec            |    2 -
57# package/ncurses.map                   |   11 ++++++++--
58# package/ncurses.spec                  |    2 -
59# package/ncurses.sym                   |    4 ++-
60# package/ncursest.map                  |   12 +++++++++-
61# package/ncursest.spec                 |    2 -
62# package/ncursest.sym                  |    4 ++-
63# package/ncursestw.map                 |   11 ++++++++--
64# package/ncursestw.sym                 |    4 ++-
65# package/ncursesw.map                  |   11 ++++++++--
66# package/ncursesw.sym                  |    4 ++-
67# progs/progs.priv.h                    |    7 +++---
68# test/demo_new_pair.c                  |    6 ++---
69# test/echochar.c                       |    4 +--
70# test/firework.c                       |    6 ++---
71# test/gdc.c                            |    8 +++----
72# test/hanoi.c                          |    6 ++---
73# test/lrtest.c                         |    4 +--
74# test/ncurses.c                        |    8 +++----
75# test/newdemo.c                        |    8 +++----
76# test/picsmap.c                        |   14 ++++++------
77# test/rain.c                           |    8 +++----
78# test/savescreen.c                     |    8 +++----
79# test/tclock.c                         |    4 +--
80# test/test.priv.h                      |    8 +++----
81# test/testcurs.c                       |    8 +++----
82# test/worm.c                           |    6 ++---
83# test/xmas.c                           |    6 ++---
84# 67 files changed, 315 insertions(+), 158 deletions(-)
85# ------------------------------------------------------------------------------
86Index: NEWS
87Prereq:  1.3415
88--- ncurses-6.1-20191207+/NEWS	2019-12-07 23:36:25.000000000 +0000
89+++ ncurses-6.1-20191214/NEWS	2019-12-14 21:26:03.000000000 +0000
90@@ -25,7 +25,7 @@
91 -- sale, use or other dealings in this Software without prior written        --
92 -- authorization.                                                            --
93 -------------------------------------------------------------------------------
94--- $Id: NEWS,v 1.3415 2019/12/07 23:36:25 tom Exp $
95+-- $Id: NEWS,v 1.3416 2019/12/14 21:26:03 tom Exp $
96 -------------------------------------------------------------------------------
97
98 This is a log of changes that ncurses has gone through since Zeyd started
99@@ -45,6 +45,10 @@
100 Changes through 1.9.9e did not credit all contributions;
101 it is not possible to add this information.
102
103+20191214
104+	+ add exit_curses() and exit_terminfo() to replace internal symbols for
105+	  leak-checking.
106+
107 20191207
108 	+ fix a few warnings for test-package builds
109 	+ add curses_trace(), to replace trace().
110Index: VERSION
111--- ncurses-6.1-20191207+/VERSION	2019-12-07 10:19:49.000000000 +0000
112+++ ncurses-6.1-20191214/VERSION	2019-12-14 17:50:13.000000000 +0000
113@@ -1 +1 @@
114-5:0:10	6.1	20191207
115+5:0:10	6.1	20191214
116Index: c++/cursesmain.cc
117Prereq:  1.15
118--- ncurses-6.1-20191207+/c++/cursesmain.cc	2013-09-28 20:56:47.000000000 +0000
119+++ ncurses-6.1-20191214/c++/cursesmain.cc	2019-12-14 22:48:23.000000000 +0000
120@@ -1,6 +1,6 @@
121 // * this is for making emacs happy: -*-Mode: C++;-*-
122 /****************************************************************************
123- * Copyright (c) 1998-2007,2013 Free Software Foundation, Inc.              *
124+ * Copyright (c) 1998-2013,2019 Free Software Foundation, Inc.              *
125  *                                                                          *
126  * Permission is hereby granted, free of charge, to any person obtaining a  *
127  * copy of this software and associated documentation files (the            *
128@@ -43,7 +43,7 @@
129 #define CPP_HAS_TRY_CATCH 0
130 #endif
131
132-MODULE_ID("$Id: cursesmain.cc,v 1.15 2013/09/28 20:56:47 tom Exp $")
133+MODULE_ID("$Id: cursesmain.cc,v 1.16 2019/12/14 22:48:23 tom Exp $")
134
135 #if HAVE_LOCALE_H
136 #include <locale.h>
137@@ -87,7 +87,7 @@
138 #endif
139 #if NO_LEAKS
140     delete A;
141-    _nc_free_and_exit(res);
142+    exit_curses(res);
143 #else
144     return(res);
145 #endif
146Index: dist.mk
147Prereq:  1.1318
148--- ncurses-6.1-20191207+/dist.mk	2019-12-07 10:19:49.000000000 +0000
149+++ ncurses-6.1-20191214/dist.mk	2019-12-14 17:50:13.000000000 +0000
150@@ -25,7 +25,7 @@
151 # use or other dealings in this Software without prior written               #
152 # authorization.                                                             #
153 ##############################################################################
154-# $Id: dist.mk,v 1.1318 2019/12/07 10:19:49 tom Exp $
155+# $Id: dist.mk,v 1.1319 2019/12/14 17:50:13 tom Exp $
156 # Makefile for creating ncurses distributions.
157 #
158 # This only needs to be used directly as a makefile by developers, but
159@@ -37,7 +37,7 @@
160 # These define the major/minor/patch versions of ncurses.
161 NCURSES_MAJOR = 6
162 NCURSES_MINOR = 1
163-NCURSES_PATCH = 20191207
164+NCURSES_PATCH = 20191214
165
166 # We don't append the patch to the version, since this only applies to releases
167 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
168Index: doc/html/ada/funcs/T.htm
169--- ncurses-6.1-20191207+/doc/html/ada/funcs/T.htm	2019-07-26 23:48:31.000000000 +0000
170+++ ncurses-6.1-20191214/doc/html/ada/funcs/T.htm	2019-12-15 00:54:38.000000000 +0000
171@@ -20,8 +20,8 @@
172 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_89_16" TARGET="main">tgetnum</A>
173 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_108_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:108</A>
174 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_129_16" TARGET="main">tgetstr -  terminal_interface-curses-termcap.adb:129</A>
175-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_53_13" TARGET="main">TGoto</A>
176 <LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_151_16" TARGET="main">tgoto</A>
177+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_53_13" TARGET="main">TGoto</A>
178 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_69_16" TARGET="main">tigetflag</A>
179 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_87_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:87</A>
180 <LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_108_16" TARGET="main">tigetstr -  terminal_interface-curses-terminfo.adb:108</A>
181Index: doc/html/man/adacurses6-config.1.html
182--- ncurses-6.1-20191207+/doc/html/man/adacurses6-config.1.html	2019-12-07 20:48:39.000000000 +0000
183+++ ncurses-6.1-20191214/doc/html/man/adacurses6-config.1.html	2019-12-15 00:54:32.000000000 +0000
184@@ -125,7 +125,7 @@
185 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
186        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
187
188-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
189+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
190
191
192
193Index: doc/html/man/captoinfo.1m.html
194--- ncurses-6.1-20191207+/doc/html/man/captoinfo.1m.html	2019-12-07 20:48:39.000000000 +0000
195+++ ncurses-6.1-20191214/doc/html/man/captoinfo.1m.html	2019-12-15 00:54:32.000000000 +0000
196@@ -198,7 +198,7 @@
197 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
198        <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>
199
200-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
201+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
202
203
204 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
205Index: doc/html/man/clear.1.html
206--- ncurses-6.1-20191207+/doc/html/man/clear.1.html	2019-12-07 20:48:39.000000000 +0000
207+++ ncurses-6.1-20191214/doc/html/man/clear.1.html	2019-12-15 00:54:32.000000000 +0000
208@@ -148,7 +148,7 @@
209 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
210        <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
211
212-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
213+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
214
215
216
217Index: doc/html/man/curs_memleaks.3x.html
218--- ncurses-6.1-20191207+/doc/html/man/curs_memleaks.3x.html	2019-03-16 19:34:44.000000000 +0000
219+++ ncurses-6.1-20191214/doc/html/man/curs_memleaks.3x.html	2019-12-15 00:54:33.000000000 +0000
220@@ -1,6 +1,6 @@
221 <!--
222   ****************************************************************************
223-  * Copyright (c) 2008-2010,2017 Free Software Foundation, Inc.              *
224+  * Copyright (c) 2008-2017,2019 Free Software Foundation, Inc.              *
225   *                                                                          *
226   * Permission is hereby granted, free of charge, to any person obtaining a  *
227   * copy of this software and associated documentation files (the            *
228@@ -53,6 +53,10 @@
229 </PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
230        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
231
232+       <STRONG>void</STRONG> <STRONG>exit_curses(int);</STRONG>
233+       <STRONG>void</STRONG> <STRONG>exit_terminfo(int);</STRONG>
234+
235+       /* deprecated */
236        <STRONG>void</STRONG> <STRONG>_nc_freeall(void);</STRONG>
237        <STRONG>void</STRONG> <STRONG>_nc_free_and_exit(int);</STRONG>
238        <STRONG>void</STRONG> <STRONG>_nc_free_tinfo(int);</STRONG>
239@@ -60,22 +64,19 @@
240
241 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
242        These functions are used to simplify analysis of memory  leaks  in  the
243-       ncurses library.  They are normally not available; they must be config-
244-       ured into the library at build time using the  <STRONG>--disable-leaks</STRONG>  option.
245-       That  compiles-in  code  that  frees  memory that normally would not be
246-       freed.
247+       ncurses library.
248
249        Any implementation of curses must not free the memory associated with a
250        screen, since (even after calling <STRONG>endwin</STRONG>), it must be available for use
251-       in the next call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>.  There are also chunks of memory  held
252+       in  the next call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>.  There are also chunks of memory held
253        for performance reasons.  That makes it hard to analyze curses applica-
254-       tions for memory leaks.  When using the specially configured  debugging
255-       version  of  the ncurses library, applications can call functions which
256-       free those chunks of memory, simplifying  the  process  of  memory-leak
257+       tions  for memory leaks.  When using the specially configured debugging
258+       version of the ncurses library, applications can call  functions  which
259+       free  those  chunks  of  memory, simplifying the process of memory-leak
260        checking.
261
262-       These functions are named with a "_nc_" prefix because they are not in-
263-       tended for use in the non-debugging library:
264+       Some of the functions are named with a "_nc_" prefix because  they  are
265+       not intended for use in the non-debugging library:
266
267        <STRONG>_nc_freeall</STRONG>
268             This frees (almost) all of the memory allocated by ncurses.
269@@ -87,10 +88,20 @@
270             ply exiting (with the given exit-code) is safer.
271
272        <STRONG>_nc_free_tinfo</STRONG>
273-            Use  this  function  if only the low-level terminfo functions (and
274+            Use this function if only the low-level  terminfo  functions  (and
275             corresponding library) are used.  Like <STRONG>_nc_free_and_exit</STRONG>, it exits
276             the program after freeing memory.
277
278+       The functions prefixed "_nc" are normally not available; they  must  be
279+       configured into the library at build time using the <STRONG>--disable-leaks</STRONG> op-
280+       tion.  That compiles-in code that frees memory that normally would  not
281+       be freed.
282+
283+       The  <STRONG>exit_curses</STRONG> and <STRONG>exit_terminfo</STRONG> functions call <STRONG>_nc_free_and_exit</STRONG> and
284+       <STRONG>_nc_free_tinfo</STRONG> if the library  is  configured  to  support  memory-leak
285+       checking.   If  the  library  is  not configured to support memory-leak
286+       checking, they simply call <STRONG>exit</STRONG>.
287+
288
289 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
290        These functions do not return a value.
291Index: doc/html/man/form.3x.html
292--- ncurses-6.1-20191207+/doc/html/man/form.3x.html	2019-12-07 20:48:42.000000000 +0000
293+++ ncurses-6.1-20191214/doc/html/man/form.3x.html	2019-12-15 00:54:34.000000000 +0000
294@@ -246,7 +246,7 @@
295        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  and  related  pages  whose names begin "form_" for detailed
296        descriptions of the entry points.
297
298-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
299+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
300
301
302
303Index: doc/html/man/infocmp.1m.html
304--- ncurses-6.1-20191207+/doc/html/man/infocmp.1m.html	2019-12-07 20:48:43.000000000 +0000
305+++ ncurses-6.1-20191214/doc/html/man/infocmp.1m.html	2019-12-15 00:54:35.000000000 +0000
306@@ -512,7 +512,7 @@
307
308        https://invisible-island.net/ncurses/tctest.html
309
310-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
311+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
312
313
314 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
315Index: doc/html/man/infotocap.1m.html
316--- ncurses-6.1-20191207+/doc/html/man/infotocap.1m.html	2019-12-07 20:48:43.000000000 +0000
317+++ ncurses-6.1-20191214/doc/html/man/infotocap.1m.html	2019-12-15 00:54:35.000000000 +0000
318@@ -90,7 +90,7 @@
319 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
320        <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>
321
322-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
323+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
324
325
326 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
327Index: doc/html/man/menu.3x.html
328--- ncurses-6.1-20191207+/doc/html/man/menu.3x.html	2019-12-07 20:48:44.000000000 +0000
329+++ ncurses-6.1-20191214/doc/html/man/menu.3x.html	2019-12-15 00:54:35.000000000 +0000
330@@ -221,7 +221,7 @@
331        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>  and  related  pages  whose names begin "menu_" for detailed
332        descriptions of the entry points.
333
334-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
335+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
336
337
338
339Index: doc/html/man/ncurses.3x.html
340--- ncurses-6.1-20191207+/doc/html/man/ncurses.3x.html	2019-12-07 20:48:45.000000000 +0000
341+++ ncurses-6.1-20191214/doc/html/man/ncurses.3x.html	2019-12-15 00:54:36.000000000 +0000
342@@ -59,7 +59,7 @@
343        method of updating  character  screens  with  reasonable  optimization.
344        This  implementation  is  "new  curses"  (ncurses)  and is the approved
345        replacement for 4.4BSD classic curses,  which  has  been  discontinued.
346-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
347+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
348
349        The  <STRONG>ncurses</STRONG>  library emulates the curses library of System V Release 4
350        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
351Index: doc/html/man/ncurses6-config.1.html
352--- ncurses-6.1-20191207+/doc/html/man/ncurses6-config.1.html	2019-12-07 20:48:45.000000000 +0000
353+++ ncurses-6.1-20191214/doc/html/man/ncurses6-config.1.html	2019-12-15 00:54:36.000000000 +0000
354@@ -112,7 +112,7 @@
355 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
356        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
357
358-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
359+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
360
361
362
363Index: doc/html/man/panel.3x.html
364--- ncurses-6.1-20191207+/doc/html/man/panel.3x.html	2019-12-07 20:48:45.000000000 +0000
365+++ ncurses-6.1-20191214/doc/html/man/panel.3x.html	2019-12-15 00:54:36.000000000 +0000
366@@ -204,7 +204,7 @@
367 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
368        <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
369
370-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
371+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
372
373
374 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
375Index: doc/html/man/tabs.1.html
376--- ncurses-6.1-20191207+/doc/html/man/tabs.1.html	2019-12-07 20:48:45.000000000 +0000
377+++ ncurses-6.1-20191214/doc/html/man/tabs.1.html	2019-12-15 00:54:36.000000000 +0000
378@@ -205,7 +205,7 @@
379 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
380        <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>.
381
382-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
383+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
384
385
386
387Index: doc/html/man/terminfo.5.html
388--- ncurses-6.1-20191207+/doc/html/man/terminfo.5.html	2019-12-07 20:48:45.000000000 +0000
389+++ ncurses-6.1-20191214/doc/html/man/terminfo.5.html	2019-12-15 00:54:36.000000000 +0000
390@@ -103,7 +103,7 @@
391        have, by specifying how to perform screen operations, and by specifying
392        padding requirements and initialization sequences.
393
394-       This manual describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
395+       This manual describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
396
397
398 </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
399Index: doc/html/man/tic.1m.html
400--- ncurses-6.1-20191207+/doc/html/man/tic.1m.html	2019-12-07 20:48:45.000000000 +0000
401+++ ncurses-6.1-20191214/doc/html/man/tic.1m.html	2019-12-15 00:54:37.000000000 +0000
402@@ -460,7 +460,7 @@
403        <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>,
404        <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>.
405
406-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
407+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
408
409
410 </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
411Index: doc/html/man/toe.1m.html
412--- ncurses-6.1-20191207+/doc/html/man/toe.1m.html	2019-12-07 20:48:46.000000000 +0000
413+++ ncurses-6.1-20191214/doc/html/man/toe.1m.html	2019-12-15 00:54:37.000000000 +0000
414@@ -170,7 +170,7 @@
415        <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>
416        <STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG>.
417
418-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
419+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
420
421
422
423Index: doc/html/man/tput.1.html
424--- ncurses-6.1-20191207+/doc/html/man/tput.1.html	2019-12-07 20:48:46.000000000 +0000
425+++ ncurses-6.1-20191214/doc/html/man/tput.1.html	2019-12-15 00:54:37.000000000 +0000
426@@ -522,7 +522,7 @@
427 </PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
428        <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>.
429
430-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
431+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
432
433
434
435Index: doc/html/man/tset.1.html
436--- ncurses-6.1-20191207+/doc/html/man/tset.1.html	2019-12-07 20:48:46.000000000 +0000
437+++ ncurses-6.1-20191214/doc/html/man/tset.1.html	2019-12-15 00:54:37.000000000 +0000
438@@ -389,7 +389,7 @@
439        <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>,
440        <STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
441
442-       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191207).
443+       This describes <STRONG>ncurses</STRONG> version 6.1 (patch 20191214).
444
445
446
447Index: include/MKterm.h.awk.in
448Prereq:  1.71
449--- ncurses-6.1-20191207+/include/MKterm.h.awk.in	2019-04-13 22:34:42.000000000 +0000
450+++ ncurses-6.1-20191214/include/MKterm.h.awk.in	2019-12-14 22:31:32.000000000 +0000
451@@ -59,7 +59,7 @@
452 	print  "/*    and: Thomas E. Dickey                        1995-on                  */"
453 	print  "/****************************************************************************/"
454 	print  ""
455-	print  "/* $Id: MKterm.h.awk.in,v 1.71 2019/04/13 22:34:42 tom Exp $ */"
456+	print  "/* $Id: MKterm.h.awk.in,v 1.72 2019/12/14 22:31:32 tom Exp $ */"
457 	print  ""
458 	print  "/*"
459 	print  "**	term.h -- Definition of struct term"
460@@ -298,12 +298,14 @@
461 	print  ""
462 	print  ""
463 	print  "/*"
464-	print  " * These entrypoints are used by tack."
465+	print  " * These entrypoints are used by tack 1.07."
466 	print  " */"
467 	print  "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);"
468 	print  "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);"
469 	print  ""
470-	print  "/* Normal entry points */"
471+	print  "/*"
472+	print  " * Normal entry points"
473+	print  " */"
474 	print  "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);"
475 	print  "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);"
476 	print  ""
477@@ -371,6 +373,11 @@
478 	print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(restartterm) (SCREEN*, NCURSES_CONST char *, int, int *);"
479 	print  "#endif /* NCURSES_SP_FUNCS */"
480 	print  ""
481+	print  "/*"
482+	print  " * Debugging features."
483+	print  " */"
484+	print  "extern NCURSES_EXPORT(void)    exit_terminfo(int) GCC_NORETURN;"
485+	print  ""
486 	print  "#ifdef __cplusplus"
487 	printf "%s\n", rcurl;
488 	print  "#endif"
489Index: include/curses.tail
490Prereq:  1.24
491--- ncurses-6.1-20191207+/include/curses.tail	2019-12-07 16:10:32.000000000 +0000
492+++ ncurses-6.1-20191214/include/curses.tail	2019-12-14 22:28:39.000000000 +0000
493@@ -1,4 +1,4 @@
494-/* $Id: curses.tail,v 1.24 2019/12/07 16:10:32 tom Exp $ */
495+/* $Id: curses.tail,v 1.25 2019/12/14 22:28:39 tom Exp $ */
496 /*
497  * vile:cmode:
498  * This file is part of ncurses, designed to be appended after curses.h.in
499@@ -174,6 +174,8 @@
500 #define OPTIMIZE_ALL		0xff	/* enable all optimizations (dflt) */
501 #endif
502
503+extern NCURSES_EXPORT(void) exit_curses (int) GCC_NORETURN;
504+
505 #include <unctrl.h>
506
507 #ifdef __cplusplus
508Index: include/nc_alloc.h
509Prereq:  1.23
510--- ncurses-6.1-20191207+/include/nc_alloc.h	2017-07-22 16:59:37.000000000 +0000
511+++ ncurses-6.1-20191214/include/nc_alloc.h	2019-12-15 01:00:51.000000000 +0000
512@@ -1,5 +1,5 @@
513 /****************************************************************************
514- * Copyright (c) 1998-2013,2017 Free Software Foundation, Inc.              *
515+ * Copyright (c) 1998-2017,2019 Free Software Foundation, Inc.              *
516  *                                                                          *
517  * Permission is hereby granted, free of charge, to any person obtaining a  *
518  * copy of this software and associated documentation files (the            *
519@@ -29,7 +29,7 @@
520 /****************************************************************************
521  *  Author: Thomas E. Dickey                    1996-on                     *
522  ****************************************************************************/
523-/* $Id: nc_alloc.h,v 1.23 2017/07/22 16:59:37 tom Exp $ */
524+/* $Id: nc_alloc.h,v 1.24 2019/12/15 01:00:51 tom Exp $ */
525
526 #ifndef NC_ALLOC_included
527 #define NC_ALLOC_included 1
528@@ -72,8 +72,9 @@
529 #if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS
530 #define HAVE_NC_FREEALL 1
531 struct termtype;
532-extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
533-extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN;
534+extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN GCC_DEPRECATED("use exit_terminfo");
535+
536+#ifdef NCURSES_INTERNALS
537 extern NCURSES_EXPORT(void) _nc_free_tic(int) GCC_NORETURN;
538 extern NCURSES_EXPORT(void) _nc_free_tparm(void);
539 extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
540@@ -82,8 +83,13 @@
541 #if NCURSES_SP_FUNCS
542 extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int) GCC_NORETURN;
543 #endif
544+extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
545+
546+#else /* !NCURSES_INTERNALS */
547+extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN GCC_DEPRECATED("use exit_curses");
548+#endif
549
550-#define ExitProgram(code) _nc_free_and_exit(code)
551+#define ExitProgram(code) exit_curses(code)
552
553 #endif /* NO_LEAKS, etc */
554
555Index: man/curs_memleaks.3x
556Prereq:  1.6
557--- ncurses-6.1-20191207+/man/curs_memleaks.3x	2017-08-22 08:35:37.000000000 +0000
558+++ ncurses-6.1-20191214/man/curs_memleaks.3x	2019-12-14 23:21:32.000000000 +0000
559@@ -1,5 +1,5 @@
560 .\"***************************************************************************
561-.\" Copyright (c) 2008-2010,2017 Free Software Foundation, Inc.              *
562+.\" Copyright (c) 2008-2017,2019 Free Software Foundation, Inc.              *
563 .\"                                                                          *
564 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
565 .\" copy of this software and associated documentation files (the            *
566@@ -26,7 +26,7 @@
567 .\" authorization.                                                           *
568 .\"***************************************************************************
569 .\"
570-.\" $Id: curs_memleaks.3x,v 1.6 2017/08/22 08:35:37 Sven.Joachim Exp $
571+.\" $Id: curs_memleaks.3x,v 1.7 2019/12/14 23:21:32 tom Exp $
572 .TH curs_memleaks 3X ""
573 .ie \n(.g .ds `` \(lq
574 .el       .ds `` ``
575@@ -43,6 +43,12 @@
576 .SH SYNOPSIS
577 \fB#include <curses.h>\fR
578 .sp
579+\fBvoid exit_curses(int);\fR
580+.br
581+\fBvoid exit_terminfo(int);\fR
582+.sp
583+/* deprecated */
584+.br
585 \fBvoid _nc_freeall(void);\fR
586 .br
587 \fBvoid _nc_free_and_exit(int);\fR
588@@ -51,10 +57,6 @@
589 .SH DESCRIPTION
590 These functions are used to simplify analysis of memory leaks in the ncurses
591 library.
592-They are normally not available;
593-they must be configured into the library
594-at build time using the \fB\-\-disable-leaks\fP option.
595-That compiles-in code that frees memory that normally would not be freed.
596 .PP
597 Any implementation of curses must not free the memory associated with
598 a screen, since (even after calling \fBendwin\fP), it must be available
599@@ -65,8 +67,8 @@
600 applications can call functions which free those chunks of memory,
601 simplifying the process of memory-leak checking.
602 .PP
603-These functions are named with a \*(``_nc_\*('' prefix because they are not
604-intended for use in the non-debugging library:
605+Some of the functions are named with a \*(``_nc_\*('' prefix
606+because they are not intended for use in the non-debugging library:
607 .TP 5
608 \fB_nc_freeall\fP
609 This frees (almost) all of the memory allocated by ncurses.
610@@ -82,6 +84,17 @@
611 Use this function if only the low-level terminfo functions (and
612 corresponding library) are used.
613 Like \fB_nc_free_and_exit\fP, it exits the program after freeing memory.
614+.PP
615+The functions prefixed \*(``_nc\*('' are normally not available;
616+they must be configured into the library
617+at build time using the \fB\-\-disable-leaks\fP option.
618+That compiles-in code that frees memory that normally would not be freed.
619+.PP
620+The \fBexit_curses\fP and \fBexit_terminfo\fP functions
621+call \fB_nc_free_and_exit\fP and \fB_nc_free_tinfo\fP if
622+the library is configured to support memory-leak checking.
623+If the library is not configured to support memory-leak checking,
624+they simply call \fBexit\fP.
625 .SH RETURN VALUE
626 These functions do not return a value.
627 .SH PORTABILITY
628Index: ncurses/base/lib_freeall.c
629Prereq:  1.70
630--- ncurses-6.1-20191207+/ncurses/base/lib_freeall.c	2019-12-07 20:28:03.000000000 +0000
631+++ ncurses-6.1-20191214/ncurses/base/lib_freeall.c	2019-12-15 00:30:49.000000000 +0000
632@@ -39,7 +39,7 @@
633 extern int malloc_errfd;	/* FIXME */
634 #endif
635
636-MODULE_ID("$Id: lib_freeall.c,v 1.70 2019/12/07 20:28:03 tom Exp $")
637+MODULE_ID("$Id: lib_freeall.c,v 1.71 2019/12/15 00:30:49 tom Exp $")
638
639 /*
640  * Free all ncurses data.  This is used for testing only (there's no practical
641@@ -159,7 +159,7 @@
642     exit(code);
643 }
644
645-#else
646+#else /* !HAVE_NC_FREEALL */
647 NCURSES_EXPORT(void)
648 _nc_freeall(void)
649 {
650@@ -175,7 +175,7 @@
651     }
652     exit(code);
653 }
654-#endif
655+#endif /* HAVE_NC_FREEALL */
656
657 #if NCURSES_SP_FUNCS
658 NCURSES_EXPORT(void)
659@@ -184,3 +184,16 @@
660     NCURSES_SP_NAME(_nc_free_and_exit) (CURRENT_SCREEN, code);
661 }
662 #endif
663+
664+NCURSES_EXPORT(void)
665+exit_curses(int code)
666+{
667+#if NO_LEAKS
668+#if NCURSES_SP_FUNCS
669+    NCURSES_SP_NAME(_nc_free_and_exit) (CURRENT_SCREEN, code);
670+#else
671+    _nc_free_and_exit(code);	/* deprecated... */
672+#endif
673+#endif
674+    exit(code);
675+}
676Index: ncurses/curses.priv.h
677Prereq:  1.626
678--- ncurses-6.1-20191207+/ncurses/curses.priv.h	2019-12-07 20:08:06.000000000 +0000
679+++ ncurses-6.1-20191214/ncurses/curses.priv.h	2019-12-14 22:36:12.000000000 +0000
680@@ -34,7 +34,7 @@
681  ****************************************************************************/
682
683 /*
684- * $Id: curses.priv.h,v 1.626 2019/12/07 20:08:06 tom Exp $
685+ * $Id: curses.priv.h,v 1.627 2019/12/14 22:36:12 tom Exp $
686  *
687  *	curses.priv.h
688  *
689@@ -2170,11 +2170,7 @@
690 extern NCURSES_EXPORT(int)    _nc_ripoffline(int, int(*)(WINDOW*, int));
691
692 /* lib_setup.c */
693-#if NO_LEAKS
694-#define ExitTerminfo(code)    _nc_free_tinfo(code)
695-#else
696-#define ExitTerminfo(code)    exit(code)
697-#endif
698+#define ExitTerminfo(code)    exit_terminfo(code)
699
700 #define SETUP_FAIL ERR
701
702@@ -2264,7 +2260,6 @@
703 extern NCURSES_EXPORT(void) _nc_init_termtype (TERMTYPE2 *const);
704 extern NCURSES_EXPORT(void) _nc_do_color (int, int, int, NCURSES_OUTC);
705 extern NCURSES_EXPORT(void) _nc_flush (void);
706-extern NCURSES_EXPORT(void) _nc_free_and_exit (int) GCC_NORETURN;
707 extern NCURSES_EXPORT(void) _nc_free_entry (ENTRY *, TERMTYPE2 *);
708 extern NCURSES_EXPORT(void) _nc_freeall (void);
709 extern NCURSES_EXPORT(void) _nc_hash_map (void);
710Index: ncurses/llib-lncurses
711--- ncurses-6.1-20191207+/ncurses/llib-lncurses	2019-03-17 01:14:53.000000000 +0000
712+++ ncurses-6.1-20191214/ncurses/llib-lncurses	2019-12-15 01:12:20.000000000 +0000
713@@ -2577,6 +2577,11 @@
714 		int	code)
715 		{ /* void */ }
716
717+#undef exit_curses
718+void	exit_curses(
719+		int	code)
720+		{ /* void */ }
721+
722 /* ./expanded.c */
723
724 #undef _nc_toggle_attr_on
725@@ -2987,6 +2992,11 @@
726 void	_nc_leaks_tinfo(void)
727 		{ /* void */ }
728
729+#undef exit_terminfo
730+void	exit_terminfo(
731+		int	code)
732+		{ /* void */ }
733+
734 /* ./fallback.c */
735
736 #undef _nc_fallback
737@@ -3732,6 +3742,11 @@
738 #undef _nc_outchars
739 long	_nc_outchars;
740
741+#undef curses_trace
742+unsigned curses_trace(
743+		unsigned tracelevel)
744+		{ return(*(unsigned *)0); }
745+
746 #undef trace
747 void	trace(
748 		const unsigned int tracelevel)
749Index: ncurses/llib-lncursest
750--- ncurses-6.1-20191207+/ncurses/llib-lncursest	2019-03-17 01:14:53.000000000 +0000
751+++ ncurses-6.1-20191214/ncurses/llib-lncursest	2019-12-15 01:12:20.000000000 +0000
752@@ -34,6 +34,7 @@
753 /* ./tty/hardscroll.c */
754
755 #include <curses.priv.h>
756+
757 #undef _nc_oldnums
758 int	*_nc_oldnums;
759
760@@ -2585,6 +2586,11 @@
761 		int	code)
762 		{ /* void */ }
763
764+#undef exit_curses
765+void	exit_curses(
766+		int	code)
767+		{ /* void */ }
768+
769 /* ./expanded.c */
770
771 #undef _nc_toggle_attr_on
772@@ -3000,6 +3006,11 @@
773 void	_nc_leaks_tinfo(void)
774 		{ /* void */ }
775
776+#undef exit_terminfo
777+void	exit_terminfo(
778+		int	code)
779+		{ /* void */ }
780+
781 /* ./fallback.c */
782
783 #undef _nc_fallback
784@@ -3830,6 +3841,11 @@
785 		long	increment)
786 		{ /* void */ }
787
788+#undef curses_trace
789+unsigned curses_trace(
790+		unsigned tracelevel)
791+		{ return(*(unsigned *)0); }
792+
793 #undef trace
794 void	trace(
795 		const unsigned int tracelevel)
796Index: ncurses/llib-lncursestw
797--- ncurses-6.1-20191207+/ncurses/llib-lncursestw	2019-03-17 01:14:53.000000000 +0000
798+++ ncurses-6.1-20191214/ncurses/llib-lncursestw	2019-12-15 01:12:20.000000000 +0000
799@@ -34,6 +34,7 @@
800 /* ./tty/hardscroll.c */
801
802 #include <curses.priv.h>
803+
804 #undef _nc_oldnums
805 int	*_nc_oldnums;
806
807@@ -3177,6 +3178,11 @@
808 		int	code)
809 		{ /* void */ }
810
811+#undef exit_curses
812+void	exit_curses(
813+		int	code)
814+		{ /* void */ }
815+
816 /* ./widechar/charable.c */
817
818 #undef _nc_is_charable
819@@ -3939,6 +3945,11 @@
820 void	_nc_leaks_tinfo(void)
821 		{ /* void */ }
822
823+#undef exit_terminfo
824+void	exit_terminfo(
825+		int	code)
826+		{ /* void */ }
827+
828 /* ./fallback.c */
829
830 #undef _nc_fallback2
831@@ -4779,6 +4790,11 @@
832 		long	increment)
833 		{ /* void */ }
834
835+#undef curses_trace
836+unsigned curses_trace(
837+		unsigned tracelevel)
838+		{ return(*(unsigned *)0); }
839+
840 #undef trace
841 void	trace(
842 		const unsigned int tracelevel)
843Index: ncurses/llib-lncursesw
844--- ncurses-6.1-20191207+/ncurses/llib-lncursesw	2019-03-17 01:14:53.000000000 +0000
845+++ ncurses-6.1-20191214/ncurses/llib-lncursesw	2019-12-15 01:12:20.000000000 +0000
846@@ -34,6 +34,7 @@
847 /* ./tty/hardscroll.c */
848
849 #include <curses.priv.h>
850+
851 #undef _nc_oldnums
852 int	*_nc_oldnums;
853
854@@ -3168,6 +3169,11 @@
855 		int	code)
856 		{ /* void */ }
857
858+#undef exit_curses
859+void	exit_curses(
860+		int	code)
861+		{ /* void */ }
862+
863 /* ./widechar/charable.c */
864
865 #undef _nc_is_charable
866@@ -3925,6 +3931,11 @@
867 void	_nc_leaks_tinfo(void)
868 		{ /* void */ }
869
870+#undef exit_terminfo
871+void	exit_terminfo(
872+		int	code)
873+		{ /* void */ }
874+
875 /* ./fallback.c */
876
877 #undef _nc_fallback2
878@@ -4680,6 +4691,11 @@
879 #undef _nc_outchars
880 long	_nc_outchars;
881
882+#undef curses_trace
883+unsigned curses_trace(
884+		unsigned tracelevel)
885+		{ return(*(unsigned *)0); }
886+
887 #undef trace
888 void	trace(
889 		const unsigned int tracelevel)
890Index: ncurses/tinfo/comp_parse.c
891Prereq:  1.107
892--- ncurses-6.1-20191207+/ncurses/tinfo/comp_parse.c	2019-10-19 20:47:43.000000000 +0000
893+++ ncurses-6.1-20191214/ncurses/tinfo/comp_parse.c	2019-12-14 22:34:35.000000000 +0000
894@@ -47,7 +47,7 @@
895
896 #include <tic.h>
897
898-MODULE_ID("$Id: comp_parse.c,v 1.107 2019/10/19 20:47:43 tom Exp $")
899+MODULE_ID("$Id: comp_parse.c,v 1.108 2019/12/14 22:34:35 tom Exp $")
900
901 static void sanity_check2(TERMTYPE2 *, bool);
902 NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2;
903@@ -724,6 +724,6 @@
904 _nc_free_tic(int code)
905 {
906     _nc_leaks_tic();
907-    _nc_free_tinfo(code);
908+    exit_terminfo(code);
909 }
910 #endif
911Index: ncurses/tinfo/entries.c
912Prereq:  1.28
913--- ncurses-6.1-20191207+/ncurses/tinfo/entries.c	2019-12-07 20:28:55.000000000 +0000
914+++ ncurses-6.1-20191214/ncurses/tinfo/entries.c	2019-12-15 00:18:03.000000000 +0000
915@@ -37,7 +37,7 @@
916
917 #include <tic.h>
918
919-MODULE_ID("$Id: entries.c,v 1.28 2019/12/07 20:28:55 tom Exp $")
920+MODULE_ID("$Id: entries.c,v 1.29 2019/12/15 00:18:03 tom Exp $")
921
922 /****************************************************************************
923  *
924@@ -164,3 +164,12 @@
925     exit(code);
926 }
927 #endif
928+
929+NCURSES_EXPORT(void)
930+exit_terminfo(int code)
931+{
932+#if NO_LEAKS
933+    _nc_leaks_tinfo();
934+#endif
935+    exit(code);
936+}
937Index: ncurses/tty/hashmap.c
938Prereq:  1.66
939--- ncurses-6.1-20191207+/ncurses/tty/hashmap.c	2016-05-28 23:32:40.000000000 +0000
940+++ ncurses-6.1-20191214/ncurses/tty/hashmap.c	2019-12-15 00:57:15.000000000 +0000
941@@ -1,5 +1,5 @@
942 /****************************************************************************
943- * Copyright (c) 1998-2015,2016 Free Software Foundation, Inc.              *
944+ * Copyright (c) 1998-2016,2019 Free Software Foundation, Inc.              *
945  *                                                                          *
946  * Permission is hereby granted, free of charge, to any person obtaining a  *
947  * copy of this software and associated documentation files (the            *
948@@ -73,7 +73,7 @@
949 #define CUR SP_TERMTYPE
950 #endif
951
952-MODULE_ID("$Id: hashmap.c,v 1.66 2016/05/28 23:32:40 tom Exp $")
953+MODULE_ID("$Id: hashmap.c,v 1.67 2019/12/15 00:57:15 tom Exp $")
954
955 #ifdef HASHDEBUG
956
957@@ -119,7 +119,7 @@
958 static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
959
960 static NCURSES_INLINE unsigned long
961-hash(SCREEN *sp, NCURSES_CH_T * text)
962+hash(SCREEN *sp, NCURSES_CH_T *text)
963 {
964     int i;
965     NCURSES_CH_T ch;
966@@ -135,7 +135,7 @@
967
968 /* approximate update cost */
969 static int
970-update_cost(SCREEN *sp, NCURSES_CH_T * from, NCURSES_CH_T * to)
971+update_cost(SCREEN *sp, NCURSES_CH_T *from, NCURSES_CH_T *to)
972 {
973     int cost = 0;
974     int i;
975@@ -149,7 +149,7 @@
976 }
977
978 static int
979-update_cost_from_blank(SCREEN *sp, NCURSES_CH_T * to)
980+update_cost_from_blank(SCREEN *sp, NCURSES_CH_T *to)
981 {
982     int cost = 0;
983     int i;
984@@ -583,11 +583,7 @@
985 	    break;
986 	}
987     }
988-#if NO_LEAKS
989-    _nc_free_and_exit(EXIT_SUCCESS);
990-#else
991-    return EXIT_SUCCESS;
992-#endif
993+    exit_curses(EXIT_SUCCESS);
994 }
995
996 #endif /* HASHDEBUG */
997Index: package/debian-mingw/changelog
998--- ncurses-6.1-20191207+/package/debian-mingw/changelog	2019-12-07 10:19:49.000000000 +0000
999+++ ncurses-6.1-20191214/package/debian-mingw/changelog	2019-12-14 17:50:13.000000000 +0000
1000@@ -1,8 +1,8 @@
1001-ncurses6 (6.1+20191207) unstable; urgency=low
1002+ncurses6 (6.1+20191214) unstable; urgency=low
1003
1004   * latest weekly patch
1005
1006- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 07 Dec 2019 05:19:49 -0500
1007+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 14 Dec 2019 12:50:13 -0500
1008
1009 ncurses6 (5.9-20131005) unstable; urgency=low
1010
1011Index: package/debian-mingw64/changelog
1012--- ncurses-6.1-20191207+/package/debian-mingw64/changelog	2019-12-07 10:19:49.000000000 +0000
1013+++ ncurses-6.1-20191214/package/debian-mingw64/changelog	2019-12-14 17:50:13.000000000 +0000
1014@@ -1,8 +1,8 @@
1015-ncurses6 (6.1+20191207) unstable; urgency=low
1016+ncurses6 (6.1+20191214) unstable; urgency=low
1017
1018   * latest weekly patch
1019
1020- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 07 Dec 2019 05:19:49 -0500
1021+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 14 Dec 2019 12:50:13 -0500
1022
1023 ncurses6 (5.9-20131005) unstable; urgency=low
1024
1025Index: package/debian/changelog
1026--- ncurses-6.1-20191207+/package/debian/changelog	2019-12-07 10:19:49.000000000 +0000
1027+++ ncurses-6.1-20191214/package/debian/changelog	2019-12-14 17:50:13.000000000 +0000
1028@@ -1,8 +1,8 @@
1029-ncurses6 (6.1+20191207) unstable; urgency=low
1030+ncurses6 (6.1+20191214) unstable; urgency=low
1031
1032   * latest weekly patch
1033
1034- -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 07 Dec 2019 05:19:49 -0500
1035+ -- Thomas E. Dickey <dickey@invisible-island.net>  Sat, 14 Dec 2019 12:50:13 -0500
1036
1037 ncurses6 (5.9-20120608) unstable; urgency=low
1038
1039Index: package/mingw-ncurses.nsi
1040Prereq:  1.364
1041--- ncurses-6.1-20191207+/package/mingw-ncurses.nsi	2019-12-07 10:19:49.000000000 +0000
1042+++ ncurses-6.1-20191214/package/mingw-ncurses.nsi	2019-12-14 17:50:13.000000000 +0000
1043@@ -1,4 +1,4 @@
1044-; $Id: mingw-ncurses.nsi,v 1.364 2019/12/07 10:19:49 tom Exp $
1045+; $Id: mingw-ncurses.nsi,v 1.365 2019/12/14 17:50:13 tom Exp $
1046
1047 ; TODO add examples
1048 ; TODO bump ABI to 6
1049@@ -10,7 +10,7 @@
1050 !define VERSION_MAJOR "6"
1051 !define VERSION_MINOR "1"
1052 !define VERSION_YYYY  "2019"
1053-!define VERSION_MMDD  "1207"
1054+!define VERSION_MMDD  "1214"
1055 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
1056
1057 !define MY_ABI   "5"
1058Index: package/mingw-ncurses.spec
1059--- ncurses-6.1-20191207+/package/mingw-ncurses.spec	2019-12-07 10:19:49.000000000 +0000
1060+++ ncurses-6.1-20191214/package/mingw-ncurses.spec	2019-12-14 17:50:13.000000000 +0000
1061@@ -3,7 +3,7 @@
1062 Summary: shared libraries for terminal handling
1063 Name: mingw32-ncurses6
1064 Version: 6.1
1065-Release: 20191207
1066+Release: 20191214
1067 License: X11
1068 Group: Development/Libraries
1069 Source: ncurses-%{version}-%{release}.tgz
1070Index: package/ncurses.map
1071Prereq:  1.48
1072--- ncurses-6.1-20191207+/package/ncurses.map	2019-12-07 18:03:20.000000000 +0000
1073+++ ncurses-6.1-20191214/package/ncurses.map	2019-12-14 23:28:36.000000000 +0000
1074@@ -1,4 +1,4 @@
1075-# $Id: ncurses.map,v 1.48 2019/12/07 18:03:20 tom Exp $
1076+# $Id: ncurses.map,v 1.50 2019/12/14 23:28:36 tom Exp $
1077 # script for shared library symbol-versioning using ld
1078 #
1079 # This file was generated by ncu-mapsyms
1080@@ -765,7 +765,6 @@
1081 		reset_color_pairs_sp;
1082 		unfocus_current_field;
1083 	local:
1084-		_*;
1085 		_nc_Unset_Current_Field;
1086 		_nc_change_pair;
1087 		_nc_init_color;
1088@@ -775,6 +774,13 @@
1089 		_nc_set_color_pair;
1090 } NCURSES_5.9.20150530;
1091
1092+NCURSES_6.1.current {
1093+	global:
1094+		exit_curses;
1095+	local:
1096+		_*;
1097+} NCURSES_6.1.20171230;
1098+
1099 NCURSES_TIC_5.0.19991023 {
1100 	global:
1101 		_nc_capcmp;
1102@@ -1199,6 +1205,7 @@
1103 		_nc_fmt_funcptr;
1104 		_nc_wacs_width;
1105 		curses_trace;
1106+		exit_terminfo;
1107 	local:
1108 		_*;
1109 } NCURSES_TINFO_6.1.20171230;
1110Index: package/ncurses.spec
1111--- ncurses-6.1-20191207+/package/ncurses.spec	2019-12-07 10:19:49.000000000 +0000
1112+++ ncurses-6.1-20191214/package/ncurses.spec	2019-12-14 17:50:13.000000000 +0000
1113@@ -1,7 +1,7 @@
1114 Summary: shared libraries for terminal handling
1115 Name: ncurses6
1116 Version: 6.1
1117-Release: 20191207
1118+Release: 20191214
1119 License: X11
1120 Group: Development/Libraries
1121 Source: ncurses-%{version}-%{release}.tgz
1122Index: package/ncurses.sym
1123Prereq:  1.34
1124--- ncurses-6.1-20191207+/package/ncurses.sym	2019-12-07 18:03:20.000000000 +0000
1125+++ ncurses-6.1-20191214/package/ncurses.sym	2019-12-14 22:40:34.000000000 +0000
1126@@ -1,4 +1,4 @@
1127-# $Id: ncurses.sym,v 1.34 2019/12/07 18:03:20 tom Exp $
1128+# $Id: ncurses.sym,v 1.35 2019/12/14 22:40:34 tom Exp $
1129 # script for shared library symbol-visibility using libtool
1130 #
1131 # This file was generated by ncu-mapsyms
1132@@ -328,6 +328,8 @@
1133 erase
1134 erasechar
1135 erasechar_sp
1136+exit_curses
1137+exit_terminfo
1138 extended_color_content
1139 extended_color_content_sp
1140 extended_pair_content
1141Index: package/ncursest.map
1142Prereq:  1.46
1143--- ncurses-6.1-20191207+/package/ncursest.map	2019-12-07 18:03:20.000000000 +0000
1144+++ ncurses-6.1-20191214/package/ncursest.map	2019-12-14 23:28:54.000000000 +0000
1145@@ -1,4 +1,4 @@
1146-# $Id: ncursest.map,v 1.46 2019/12/07 18:03:20 tom Exp $
1147+# $Id: ncursest.map,v 1.48 2019/12/14 23:28:54 tom Exp $
1148 # script for shared library symbol-versioning using ld
1149 #
1150 # This file was generated by ncu-mapsyms
1151@@ -484,6 +484,7 @@
1152 		_nc_fmt_funcptr;
1153 		_nc_wacs_width;
1154 		curses_trace;
1155+		exit_terminfo;
1156 	local:
1157 		_*;
1158 } NCURSES_TINFO_6.1.20171230;
1159@@ -1158,7 +1159,6 @@
1160 		reset_color_pairs_sp;
1161 		unfocus_current_field;
1162 	local:
1163-		_*;
1164 		_nc_Unset_Current_Field;
1165 		_nc_change_pair;
1166 		_nc_init_color;
1167@@ -1167,3 +1167,11 @@
1168 		_nc_reset_color_pair;
1169 		_nc_set_color_pair;
1170 } NCURSEST_5.9.20150530;
1171+
1172+NCURSEST_6.1.current {
1173+	global:
1174+		exit_curses;
1175+	local:
1176+		_*;
1177+} NCURSEST_6.1.20171230;
1178+
1179Index: package/ncursest.spec
1180--- ncurses-6.1-20191207+/package/ncursest.spec	2019-12-07 10:19:49.000000000 +0000
1181+++ ncurses-6.1-20191214/package/ncursest.spec	2019-12-14 17:50:13.000000000 +0000
1182@@ -1,7 +1,7 @@
1183 Summary: Curses library with POSIX thread support.
1184 Name: ncursest6
1185 Version: 6.1
1186-Release: 20191207
1187+Release: 20191214
1188 License: X11
1189 Group: Development/Libraries
1190 Source: ncurses-%{version}-%{release}.tgz
1191Index: package/ncursest.sym
1192Prereq:  1.38
1193--- ncurses-6.1-20191207+/package/ncursest.sym	2019-12-07 18:03:20.000000000 +0000
1194+++ ncurses-6.1-20191214/package/ncursest.sym	2019-12-14 22:42:32.000000000 +0000
1195@@ -1,4 +1,4 @@
1196-# $Id: ncursest.sym,v 1.38 2019/12/07 18:03:20 tom Exp $
1197+# $Id: ncursest.sym,v 1.39 2019/12/14 22:42:32 tom Exp $
1198 # script for shared library symbol-visibility using libtool
1199 #
1200 # This file was generated by ncu-mapsyms
1201@@ -337,6 +337,8 @@
1202 erase
1203 erasechar
1204 erasechar_sp
1205+exit_curses
1206+exit_terminfo
1207 extended_color_content
1208 extended_color_content_sp
1209 extended_pair_content
1210Index: package/ncursestw.map
1211Prereq:  1.48
1212--- ncurses-6.1-20191207+/package/ncursestw.map	2019-12-07 18:03:20.000000000 +0000
1213+++ ncurses-6.1-20191214/package/ncursestw.map	2019-12-14 23:28:20.000000000 +0000
1214@@ -1,4 +1,4 @@
1215-# $Id: ncursestw.map,v 1.48 2019/12/07 18:03:20 tom Exp $
1216+# $Id: ncursestw.map,v 1.50 2019/12/14 23:28:20 tom Exp $
1217 # script for shared library symbol-versioning using ld
1218 #
1219 # This file was generated by ncu-mapsyms
1220@@ -490,6 +490,7 @@
1221 		_nc_fmt_funcptr;
1222 		_nc_wacs_width;
1223 		curses_trace;
1224+		exit_terminfo;
1225 	local:
1226 		_*;
1227 } NCURSES_TINFO_6.1.20171230;
1228@@ -1279,7 +1280,6 @@
1229 		reset_color_pairs_sp;
1230 		unfocus_current_field;
1231 	local:
1232-		_*;
1233 		_nc_Unset_Current_Field;
1234 		_nc_change_pair;
1235 		_nc_init_color;
1236@@ -1288,3 +1288,10 @@
1237 		_nc_reset_color_pair;
1238 		_nc_set_color_pair;
1239 } NCURSESTW_5.9.20150530;
1240+
1241+NCURSESTW_6.1.current {
1242+	global:
1243+		exit_curses;
1244+	local:
1245+		_*;
1246+} NCURSESTW_6.1.20171230;
1247Index: package/ncursestw.sym
1248Prereq:  1.37
1249--- ncurses-6.1-20191207+/package/ncursestw.sym	2019-12-07 18:03:20.000000000 +0000
1250+++ ncurses-6.1-20191214/package/ncursestw.sym	2019-12-14 22:44:31.000000000 +0000
1251@@ -1,4 +1,4 @@
1252-# $Id: ncursestw.sym,v 1.37 2019/12/07 18:03:20 tom Exp $
1253+# $Id: ncursestw.sym,v 1.38 2019/12/14 22:44:31 tom Exp $
1254 # script for shared library symbol-visibility using libtool
1255 #
1256 # This file was generated by ncu-mapsyms
1257@@ -355,6 +355,8 @@
1258 erasechar
1259 erasechar_sp
1260 erasewchar
1261+exit_curses
1262+exit_terminfo
1263 extended_color_content
1264 extended_color_content_sp
1265 extended_pair_content
1266Index: package/ncursesw.map
1267Prereq:  1.51
1268--- ncurses-6.1-20191207+/package/ncursesw.map	2019-12-07 18:03:20.000000000 +0000
1269+++ ncurses-6.1-20191214/package/ncursesw.map	2019-12-14 23:28:02.000000000 +0000
1270@@ -1,4 +1,4 @@
1271-# $Id: ncursesw.map,v 1.51 2019/12/07 18:03:20 tom Exp $
1272+# $Id: ncursesw.map,v 1.53 2019/12/14 23:28:02 tom Exp $
1273 # script for shared library symbol-versioning using ld
1274 #
1275 # This file was generated by ncu-mapsyms
1276@@ -484,6 +484,7 @@
1277 		_nc_fmt_funcptr;
1278 		_nc_wacs_width;
1279 		curses_trace;
1280+		exit_terminfo;
1281 	local:
1282 		_*;
1283 } NCURSES_TINFO_6.1.20171230;
1284@@ -1300,7 +1301,6 @@
1285 		reset_color_pairs_sp;
1286 		unfocus_current_field;
1287 	local:
1288-		_*;
1289 		_nc_Unset_Current_Field;
1290 		_nc_change_pair;
1291 		_nc_init_color;
1292@@ -1309,3 +1309,10 @@
1293 		_nc_reset_color_pair;
1294 		_nc_set_color_pair;
1295 } NCURSESW_5.9.20150530;
1296+
1297+NCURSESW_6.1.current {
1298+	global:
1299+		exit_curses;
1300+	local:
1301+		_*;
1302+} NCURSESW_6.1.20171230;
1303Index: package/ncursesw.sym
1304Prereq:  1.36
1305--- ncurses-6.1-20191207+/package/ncursesw.sym	2019-12-07 18:03:20.000000000 +0000
1306+++ ncurses-6.1-20191214/package/ncursesw.sym	2019-12-14 22:45:41.000000000 +0000
1307@@ -1,4 +1,4 @@
1308-# $Id: ncursesw.sym,v 1.36 2019/12/07 18:03:20 tom Exp $
1309+# $Id: ncursesw.sym,v 1.37 2019/12/14 22:45:41 tom Exp $
1310 # script for shared library symbol-visibility using libtool
1311 #
1312 # This file was generated by ncu-mapsyms
1313@@ -343,6 +343,8 @@
1314 erasechar
1315 erasechar_sp
1316 erasewchar
1317+exit_curses
1318+exit_terminfo
1319 extended_color_content
1320 extended_color_content_sp
1321 extended_pair_content
1322Index: progs/progs.priv.h
1323Prereq:  1.46
1324--- ncurses-6.1-20191207+/progs/progs.priv.h	2017-10-09 00:30:38.000000000 +0000
1325+++ ncurses-6.1-20191214/progs/progs.priv.h	2019-12-14 23:53:12.000000000 +0000
1326@@ -1,5 +1,5 @@
1327 /****************************************************************************
1328- * Copyright (c) 1998-2015,2017 Free Software Foundation, Inc.              *
1329+ * Copyright (c) 1998-2017,2019 Free Software Foundation, Inc.              *
1330  *                                                                          *
1331  * Permission is hereby granted, free of charge, to any person obtaining a  *
1332  * copy of this software and associated documentation files (the            *
1333@@ -30,7 +30,7 @@
1334  *  Author: Thomas E. Dickey                    1997-on                     *
1335  ****************************************************************************/
1336 /*
1337- * $Id: progs.priv.h,v 1.46 2017/10/09 00:30:38 tom Exp $
1338+ * $Id: progs.priv.h,v 1.47 2019/12/14 23:53:12 tom Exp $
1339  *
1340  *	progs.priv.h
1341  *
1342@@ -129,10 +129,11 @@
1343
1344 #include <nc_string.h>
1345 #include <nc_alloc.h>
1346+
1347 #if HAVE_NC_FREEALL
1348 #undef ExitProgram
1349 #ifdef USE_LIBTINFO
1350-#define ExitProgram(code) _nc_free_tinfo(code)
1351+#define ExitProgram(code) exit_terminfo(code)
1352 #else
1353 #define ExitProgram(code) _nc_free_tic(code)
1354 #endif
1355Index: test/demo_new_pair.c
1356Prereq:  1.19
1357--- ncurses-6.1-20191207+/test/demo_new_pair.c	2018-05-12 14:30:04.000000000 +0000
1358+++ ncurses-6.1-20191214/test/demo_new_pair.c	2019-12-14 23:26:09.000000000 +0000
1359@@ -1,5 +1,5 @@
1360 /****************************************************************************
1361- * Copyright (c) 2017,2018 Free Software Foundation, Inc.                   *
1362+ * Copyright (c) 2017-2018,2019 Free Software Foundation, Inc.              *
1363  *                                                                          *
1364  * Permission is hereby granted, free of charge, to any person obtaining a  *
1365  * copy of this software and associated documentation files (the            *
1366@@ -26,7 +26,7 @@
1367  * authorization.                                                           *
1368  ****************************************************************************/
1369 /*
1370- * $Id: demo_new_pair.c,v 1.19 2018/05/12 14:30:04 tom Exp $
1371+ * $Id: demo_new_pair.c,v 1.20 2019/12/14 23:26:09 tom Exp $
1372  *
1373  * Demonstrate the alloc_pair() function.
1374  */
1375@@ -336,7 +336,7 @@
1376 	total_cells += 1 + (use_wide ? 1 : 0);
1377 	++current;
1378     }
1379-    exit_curses();
1380+    stop_curses();
1381     fclose(output);
1382
1383     printf("%.1f cells/second\n",
1384Index: test/echochar.c
1385Prereq:  1.19
1386--- ncurses-6.1-20191207+/test/echochar.c	2019-08-24 23:11:01.000000000 +0000
1387+++ ncurses-6.1-20191214/test/echochar.c	2019-12-14 23:25:29.000000000 +0000
1388@@ -26,7 +26,7 @@
1389  * authorization.                                                           *
1390  ****************************************************************************/
1391 /*
1392- * $Id: echochar.c,v 1.19 2019/08/24 23:11:01 tom Exp $
1393+ * $Id: echochar.c,v 1.20 2019/12/14 23:25:29 tom Exp $
1394  *
1395  * Demonstrate the echochar function (compare to dots.c).
1396  * Thomas Dickey - 2006/11/4
1397@@ -43,7 +43,7 @@
1398 static void
1399 cleanup(void)
1400 {
1401-    exit_curses();
1402+    stop_curses();
1403
1404     printf("\n\n%ld total cells, rate %.2f/sec\n",
1405 	   total_chars,
1406Index: test/firework.c
1407Prereq:  1.35
1408--- ncurses-6.1-20191207+/test/firework.c	2017-09-30 15:42:24.000000000 +0000
1409+++ ncurses-6.1-20191214/test/firework.c	2019-12-14 23:26:09.000000000 +0000
1410@@ -1,5 +1,5 @@
1411 /****************************************************************************
1412- * Copyright (c) 1998-2014,2017 Free Software Foundation, Inc.              *
1413+ * Copyright (c) 1998-2017,2019 Free Software Foundation, Inc.              *
1414  *                                                                          *
1415  * Permission is hereby granted, free of charge, to any person obtaining a  *
1416  * copy of this software and associated documentation files (the            *
1417@@ -26,7 +26,7 @@
1418  * authorization.                                                           *
1419  ****************************************************************************/
1420 /*
1421- * $Id: firework.c,v 1.35 2017/09/30 15:42:24 tom Exp $
1422+ * $Id: firework.c,v 1.36 2019/12/14 23:26:09 tom Exp $
1423  */
1424 #include <test.priv.h>
1425
1426@@ -37,7 +37,7 @@
1427 static void
1428 cleanup(void)
1429 {
1430-    exit_curses();
1431+    stop_curses();
1432 }
1433
1434 static void
1435Index: test/gdc.c
1436Prereq:  1.52
1437--- ncurses-6.1-20191207+/test/gdc.c	2019-08-24 23:11:01.000000000 +0000
1438+++ ncurses-6.1-20191214/test/gdc.c	2019-12-14 23:25:29.000000000 +0000
1439@@ -33,7 +33,7 @@
1440  * modified 10-18-89 for curses (jrl)
1441  * 10-18-89 added signal handling
1442  *
1443- * $Id: gdc.c,v 1.52 2019/08/24 23:11:01 tom Exp $
1444+ * $Id: gdc.c,v 1.53 2019/12/14 23:25:29 tom Exp $
1445  */
1446
1447 #include <test.priv.h>
1448@@ -66,7 +66,7 @@
1449     signal(signo, sighndl);
1450     sigtermed = signo;
1451     if (redirected) {
1452-	exit_curses();
1453+	stop_curses();
1454 	ExitProgram(EXIT_FAILURE);
1455     }
1456 }
1457@@ -76,7 +76,7 @@
1458 {
1459     if (sigtermed) {
1460 	(void) standend();
1461-	exit_curses();
1462+	stop_curses();
1463 	fprintf(stderr, "gdc terminated by signal %d\n", sigtermed);
1464 	ExitProgram(EXIT_FAILURE);
1465     }
1466@@ -447,6 +447,6 @@
1467 	}
1468     } while (--count);
1469     (void) standend();
1470-    exit_curses();
1471+    stop_curses();
1472     ExitProgram(EXIT_SUCCESS);
1473 }
1474Index: test/hanoi.c
1475Prereq:  1.39
1476--- ncurses-6.1-20191207+/test/hanoi.c	2017-09-09 00:19:24.000000000 +0000
1477+++ ncurses-6.1-20191214/test/hanoi.c	2019-12-14 23:26:09.000000000 +0000
1478@@ -1,5 +1,5 @@
1479 /****************************************************************************
1480- * Copyright (c) 1998-2014,2017 Free Software Foundation, Inc.              *
1481+ * Copyright (c) 1998-2017,2019 Free Software Foundation, Inc.              *
1482  *                                                                          *
1483  * Permission is hereby granted, free of charge, to any person obtaining a  *
1484  * copy of this software and associated documentation files (the            *
1485@@ -41,7 +41,7 @@
1486  *
1487  *	Date: 05.Nov.90
1488  *
1489- * $Id: hanoi.c,v 1.39 2017/09/09 00:19:24 tom Exp $
1490+ * $Id: hanoi.c,v 1.40 2019/12/14 23:26:09 tom Exp $
1491  */
1492
1493 #include <test.priv.h>
1494@@ -354,6 +354,6 @@
1495 	    }
1496 	}
1497     }
1498-    exit_curses();
1499+    stop_curses();
1500     ExitProgram(EXIT_SUCCESS);
1501 }
1502Index: test/lrtest.c
1503Prereq:  1.25
1504--- ncurses-6.1-20191207+/test/lrtest.c	2019-12-07 18:07:04.000000000 +0000
1505+++ ncurses-6.1-20191214/test/lrtest.c	2019-12-14 23:25:29.000000000 +0000
1506@@ -34,7 +34,7 @@
1507  * This can't be part of the ncurses test-program, because ncurses rips off the
1508  * bottom line to do labels.
1509  *
1510- * $Id: lrtest.c,v 1.25 2019/12/07 18:07:04 tom Exp $
1511+ * $Id: lrtest.c,v 1.26 2019/12/14 23:25:29 tom Exp $
1512  */
1513
1514 #include <test.priv.h>
1515@@ -174,7 +174,7 @@
1516 	refresh();
1517     }
1518
1519-    exit_curses();
1520+    stop_curses();
1521     ExitProgram(EXIT_SUCCESS);
1522 }
1523
1524Index: test/ncurses.c
1525Prereq:  1.520
1526--- ncurses-6.1-20191207+/test/ncurses.c	2019-12-07 19:04:52.000000000 +0000
1527+++ ncurses-6.1-20191214/test/ncurses.c	2019-12-14 23:25:29.000000000 +0000
1528@@ -40,7 +40,7 @@
1529    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
1530            Thomas E. Dickey (beginning revision 1.27 in 1996).
1531
1532-$Id: ncurses.c,v 1.520 2019/12/07 19:04:52 tom Exp $
1533+$Id: ncurses.c,v 1.521 2019/12/14 23:25:29 tom Exp $
1534
1535 ***************************************************************************/
1536
1537@@ -7329,7 +7329,7 @@
1538     delwin(win2);
1539     delwin(win1);
1540     erase();
1541-    exit_curses();
1542+    stop_curses();
1543     return OK;
1544 }
1545
1546@@ -7529,7 +7529,7 @@
1547     delwin(win2);
1548     delwin(win1);
1549     erase();
1550-    exit_curses();
1551+    stop_curses();
1552     return OK;
1553 }
1554 #endif /* USE_WIDEC_SUPPORT */
1555@@ -7619,7 +7619,7 @@
1556 #endif
1557     Pause();
1558     erase();
1559-    exit_curses();
1560+    stop_curses();
1561     return OK;
1562 }
1563
1564Index: test/newdemo.c
1565Prereq:  1.46
1566--- ncurses-6.1-20191207+/test/newdemo.c	2019-08-24 23:02:49.000000000 +0000
1567+++ ncurses-6.1-20191214/test/newdemo.c	2019-12-14 23:25:29.000000000 +0000
1568@@ -2,7 +2,7 @@
1569  *  newdemo.c	-	A demo program using PDCurses. The program illustrate
1570  *  	 		the use of colours for text output.
1571  *
1572- * $Id: newdemo.c,v 1.46 2019/08/24 23:02:49 tom Exp $
1573+ * $Id: newdemo.c,v 1.47 2019/12/14 23:25:29 tom Exp $
1574  */
1575
1576 #include <test.priv.h>
1577@@ -50,7 +50,7 @@
1578 static void
1579 trap(int sig GCC_UNUSED)
1580 {
1581-    exit_curses();
1582+    stop_curses();
1583     ExitProgram(EXIT_FAILURE);
1584 }
1585
1586@@ -238,7 +238,7 @@
1587     height = 14;		/* Create a drawing window */
1588     win = newwin(height, width, (LINES - height) / 2, (COLS - width) / 2);
1589     if (win == NULL) {
1590-	exit_curses();
1591+	stop_curses();
1592 	ExitProgram(EXIT_FAILURE);
1593     }
1594
1595@@ -362,6 +362,6 @@
1596 	if (WaitForUser(win) == 1)
1597 	    break;
1598     }
1599-    exit_curses();
1600+    stop_curses();
1601     ExitProgram(EXIT_SUCCESS);
1602 }
1603Index: test/picsmap.c
1604Prereq:  1.130
1605--- ncurses-6.1-20191207+/test/picsmap.c	2019-08-24 23:07:34.000000000 +0000
1606+++ ncurses-6.1-20191214/test/picsmap.c	2019-12-14 23:51:39.000000000 +0000
1607@@ -26,7 +26,7 @@
1608  * authorization.                                                           *
1609  ****************************************************************************/
1610 /*
1611- * $Id: picsmap.c,v 1.130 2019/08/24 23:07:34 tom Exp $
1612+ * $Id: picsmap.c,v 1.131 2019/12/14 23:51:39 tom Exp $
1613  *
1614  * Author: Thomas E. Dickey
1615  *
1616@@ -103,7 +103,7 @@
1617 #define P2I(n) (((int)(my_intptr_t)(n)) - 1)
1618 #define I2P(n) (void *)(my_intptr_t)((n) + 1)
1619
1620-#define stop_curses() if (in_curses) endwin()
1621+#define pause_curses() if (in_curses) stop_curses()
1622
1623 #define debugmsg if (debugging) logmsg
1624 #define debugmsg2 if (debugging) logmsg2
1625@@ -187,7 +187,7 @@
1626 static void
1627 cleanup(int code)
1628 {
1629-    stop_curses();
1630+    pause_curses();
1631     close_log();
1632     ExitProgram(code);
1633     /* NOTREACHED */
1634@@ -423,7 +423,7 @@
1635     struct stat sb;
1636
1637     if (!quiet) {
1638-	stop_curses();
1639+	pause_curses();
1640 	printf("** %s\n", filename);
1641     }
1642
1643@@ -511,7 +511,7 @@
1644     };
1645     size_t n;
1646
1647-    stop_curses();
1648+    pause_curses();
1649
1650     fflush(stdout);
1651     for (n = 0; n < SIZEOF(msg); n++)
1652@@ -524,7 +524,7 @@
1653 {
1654     va_list ap;
1655
1656-    stop_curses();
1657+    pause_curses();
1658     fflush(stdout);
1659
1660     va_start(ap, fmt);
1661@@ -1469,7 +1469,7 @@
1662 	    init_palette(palette_path);
1663 	}
1664 	scrollok(stdscr, FALSE);
1665-	exit_curses();
1666+	stop_curses();
1667     }
1668 }
1669
1670Index: test/rain.c
1671Prereq:  1.49
1672--- ncurses-6.1-20191207+/test/rain.c	2018-06-23 21:35:06.000000000 +0000
1673+++ ncurses-6.1-20191214/test/rain.c	2019-12-14 23:26:09.000000000 +0000
1674@@ -1,5 +1,5 @@
1675 /****************************************************************************
1676- * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc.              *
1677+ * Copyright (c) 1998-2018,2019 Free Software Foundation, Inc.              *
1678  *                                                                          *
1679  * Permission is hereby granted, free of charge, to any person obtaining a  *
1680  * copy of this software and associated documentation files (the            *
1681@@ -26,7 +26,7 @@
1682  * authorization.                                                           *
1683  ****************************************************************************/
1684 /*
1685- * $Id: rain.c,v 1.49 2018/06/23 21:35:06 tom Exp $
1686+ * $Id: rain.c,v 1.50 2019/12/14 23:26:09 tom Exp $
1687  */
1688 #include <test.priv.h>
1689 #include <popup_msg.h>
1690@@ -78,7 +78,7 @@
1691 static void
1692 onsig(int n GCC_UNUSED)
1693 {
1694-    exit_curses();
1695+    stop_curses();
1696     ExitProgram(EXIT_FAILURE);
1697 }
1698
1699@@ -437,7 +437,7 @@
1700 	}
1701 	napms(50);
1702     }
1703-    exit_curses();
1704+    stop_curses();
1705 #ifdef USE_PTHREADS
1706     printf("Counts per thread:\n");
1707     for (j = 0; j < MAX_THREADS; ++j)
1708Index: test/savescreen.c
1709Prereq:  1.55
1710--- ncurses-6.1-20191207+/test/savescreen.c	2019-01-20 15:59:28.000000000 +0000
1711+++ ncurses-6.1-20191214/test/savescreen.c	2019-12-14 23:25:29.000000000 +0000
1712@@ -26,7 +26,7 @@
1713  * authorization.                                                           *
1714  ****************************************************************************/
1715 /*
1716- * $Id: savescreen.c,v 1.55 2019/01/20 15:59:28 tom Exp $
1717+ * $Id: savescreen.c,v 1.56 2019/12/14 23:25:29 tom Exp $
1718  *
1719  * Demonstrate save/restore functions from the curses library.
1720  * Thomas Dickey - 2007/7/14
1721@@ -495,7 +495,7 @@
1722 	    }
1723 	    move(0, 0);
1724 	} else {
1725-	    exit_curses();
1726+	    stop_curses();
1727 	    fprintf(stderr, "Cannot open \"%s\"\n", fill_by);
1728 	    ExitProgram(EXIT_FAILURE);
1729 	}
1730@@ -507,14 +507,14 @@
1731 	 * Use the last file as the initial/current screen.
1732 	 */
1733 	if (last < 0) {
1734-	    exit_curses();
1735+	    stop_curses();
1736 	    printf("No screen-dumps given\n");
1737 	    ExitProgram(EXIT_FAILURE);
1738 	}
1739
1740 	which = last;
1741 	if (load_screen(files[which]) == ERR) {
1742-	    exit_curses();
1743+	    stop_curses();
1744 	    printf("Cannot load screen-dump %s\n", files[which]);
1745 	    ExitProgram(EXIT_FAILURE);
1746 	}
1747Index: test/tclock.c
1748Prereq:  1.39
1749--- ncurses-6.1-20191207+/test/tclock.c	2018-12-29 17:23:42.000000000 +0000
1750+++ ncurses-6.1-20191214/test/tclock.c	2019-12-14 23:25:29.000000000 +0000
1751@@ -1,4 +1,4 @@
1752-/* $Id: tclock.c,v 1.39 2018/12/29 17:23:42 tom Exp $ */
1753+/* $Id: tclock.c,v 1.40 2019/12/14 23:25:29 tom Exp $ */
1754
1755 #define NEED_TIME_H
1756 #include <test.priv.h>
1757@@ -282,7 +282,7 @@
1758
1759     }
1760
1761-    exit_curses();
1762+    stop_curses();
1763     ExitProgram(EXIT_SUCCESS);
1764 }
1765 #else
1766Index: test/test.priv.h
1767Prereq:  1.183
1768--- ncurses-6.1-20191207+/test/test.priv.h	2019-12-07 19:03:20.000000000 +0000
1769+++ ncurses-6.1-20191214/test/test.priv.h	2019-12-14 23:25:29.000000000 +0000
1770@@ -29,7 +29,7 @@
1771 /****************************************************************************
1772  *  Author: Thomas E. Dickey                    1996-on                     *
1773  ****************************************************************************/
1774-/* $Id: test.priv.h,v 1.183 2019/12/07 19:03:20 tom Exp $ */
1775+/* $Id: test.priv.h,v 1.184 2019/12/14 23:25:29 tom Exp $ */
1776
1777 #ifndef __TEST_PRIV_H
1778 #define __TEST_PRIV_H 1
1779@@ -885,9 +885,9 @@
1780  * ncurses restores the cursor in endwin().  Other libraries may not.
1781  */
1782 #ifdef NCURSES_VERSION
1783-#define exit_curses() endwin()
1784+#define stop_curses() endwin()
1785 #else
1786-#define exit_curses() do { endwin(); curs_set(1); } while (0)
1787+#define stop_curses() do { endwin(); curs_set(1); } while (0)
1788 #endif
1789
1790 /* ncurses implements tparm() with varargs, X/Open with a fixed-parameter list
1791@@ -904,7 +904,7 @@
1792 #include <nc_alloc.h>
1793 #if HAVE_NC_FREEALL && defined(USE_TINFO)
1794 #undef ExitProgram
1795-#define ExitProgram(code) _nc_free_tinfo(code)
1796+#define ExitProgram(code) exit_terminfo(code)
1797 #endif
1798 #else
1799 #define typeMalloc(type,n) (type *) malloc((size_t)(n) * sizeof(type))
1800Index: test/testcurs.c
1801Prereq:  1.54
1802--- ncurses-6.1-20191207+/test/testcurs.c	2019-12-07 18:06:12.000000000 +0000
1803+++ ncurses-6.1-20191214/test/testcurs.c	2019-12-14 23:25:29.000000000 +0000
1804@@ -6,7 +6,7 @@
1805  *  wrs(5/28/93) -- modified to be consistent (perform identically) with either
1806  *                  PDCurses or under Unix System V, R4
1807  *
1808- * $Id: testcurs.c,v 1.54 2019/12/07 18:06:12 tom Exp $
1809+ * $Id: testcurs.c,v 1.55 2019/12/14 23:25:29 tom Exp $
1810  */
1811
1812 #include <test.priv.h>
1813@@ -73,7 +73,7 @@
1814     height = 13;		/* Create a drawing window */
1815     *win = newwin(height, width, (LINES - height) / 2, (COLS - width) / 2);
1816     if (*win == NULL) {
1817-	exit_curses();
1818+	stop_curses();
1819 	return 0;
1820     }
1821     return 1;
1822@@ -557,7 +557,7 @@
1823
1824     win1 = newwin(10, 50, 14, 25);
1825     if (win1 == NULL) {
1826-	exit_curses();
1827+	stop_curses();
1828 	return;
1829     }
1830 #ifdef A_COLOR
1831@@ -760,7 +760,7 @@
1832
1833     delwin(win);
1834
1835-    exit_curses();
1836+    stop_curses();
1837 #ifdef XCURSES
1838     XCursesExit();
1839 #endif
1840Index: test/worm.c
1841Prereq:  1.80
1842--- ncurses-6.1-20191207+/test/worm.c	2019-12-07 19:04:09.000000000 +0000
1843+++ ncurses-6.1-20191214/test/worm.c	2019-12-14 23:25:29.000000000 +0000
1844@@ -52,7 +52,7 @@
1845   traces will be dumped.  The program stops and waits for one character of
1846   input at the beginning and end of the interval.
1847
1848-  $Id: worm.c,v 1.80 2019/12/07 19:04:09 tom Exp $
1849+  $Id: worm.c,v 1.81 2019/12/14 23:25:29 tom Exp $
1850 */
1851
1852 #include <test.priv.h>
1853@@ -215,7 +215,7 @@
1854 failed(const char *s)
1855 {
1856     perror(s);
1857-    exit_curses();
1858+    stop_curses();
1859     ExitProgram(EXIT_FAILURE);
1860 }
1861 #endif
1862@@ -224,7 +224,7 @@
1863 cleanup(void)
1864 {
1865     USING_WINDOW1(stdscr, wrefresh, safe_wrefresh);
1866-    exit_curses();
1867+    stop_curses();
1868 }
1869
1870 static void
1871Index: test/xmas.c
1872Prereq:  1.33
1873--- ncurses-6.1-20191207+/test/xmas.c	2017-09-30 19:14:13.000000000 +0000
1874+++ ncurses-6.1-20191214/test/xmas.c	2019-12-14 23:25:29.000000000 +0000
1875@@ -92,7 +92,7 @@
1876 /******************************************************************************/
1877
1878 /*
1879- * $Id: xmas.c,v 1.33 2017/09/30 19:14:13 tom Exp $
1880+ * $Id: xmas.c,v 1.34 2019/12/14 23:25:29 tom Exp $
1881  */
1882 #include <test.priv.h>
1883
1884@@ -638,7 +638,7 @@
1885 {
1886     move(LINES - 1, 0);
1887     refresh();
1888-    exit_curses();
1889+    stop_curses();
1890
1891 #if NO_LEAKS
1892     if (my_pairs != 0)
1893@@ -749,7 +749,7 @@
1894 	(w_holiday = newwin(1, 26, 3, 27)) == 0 ||
1895
1896 	(w_del_msg = newwin(1, 19, 23, 60)) == 0) {
1897-	exit_curses();
1898+	stop_curses();
1899 	fprintf(stderr, "Cannot create windows - screen too small\n");
1900 	ExitProgram(EXIT_FAILURE);
1901     }
1902