# ncurses 6.3 - patch 20211106 - Thomas E. Dickey # # ------------------------------------------------------------------------------ # # Ncurses 6.3 is at # ftp://ftp.invisible-island.net/ncurses/ # https://invisible-mirror.net/archives/ncurses/ # # Patches for ncurses 6.3 can be found at # ftp://ftp.invisible-island.net/ncurses//6.3 # https://invisible-mirror.net/archives/ncurses//6.3 # # ------------------------------------------------------------------------------ # ftp://ftp.invisible-island.net/ncurses//6.3/ncurses-6.3-20211106.patch.gz # patch by Thomas E. Dickey # created Sun Nov 7 00:20:43 UTC 2021 # ------------------------------------------------------------------------------ # NEWS | 10 +++++++++- # VERSION | 2 +- # dist.mk | 4 ++-- # misc/Makefile.in | 4 ++-- # ncurses/base/lib_delwin.c | 33 ++++++++++++++++++++------------- # ncurses/base/lib_freeall.c | 5 ++++- # ncurses/base/lib_refresh.c | 22 +++++++++++++++------- # ncurses/tinfo/lib_cur_term.c | 7 +++++-- # package/debian-mingw/changelog | 4 ++-- # package/debian-mingw64/changelog | 4 ++-- # package/debian/changelog | 4 ++-- # package/mingw-ncurses.nsi | 4 ++-- # package/mingw-ncurses.spec | 2 +- # package/ncurses.spec | 2 +- # package/ncursest.spec | 2 +- # panel/p_new.c | 4 ++-- # 16 files changed, 71 insertions(+), 42 deletions(-) # ------------------------------------------------------------------------------ Index: NEWS Prereq: 1.3738 --- ncurses-6.3-20211030+/NEWS 2021-10-31 00:31:12.000000000 +0000 +++ ncurses-6.3-20211106/NEWS 2021-11-06 23:43:40.000000000 +0000 @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3738 2021/10/31 00:31:12 tom Exp $ +-- $Id: NEWS,v 1.3741 2021/11/06 23:43:40 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,14 @@ Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20211106 + + improve check in misc/Makefile.in for empty $PKG_CONFIG_LIBDIR + + modify wnoutrefresh to call pnoutrefresh if its parameter is a pad, + rather than treating it as an error, and modify new_panel to permit + its window-parameter to be a pad (report by Giorgos Xou). + + fix a memory-leak in del_curterm (prompted by discussion with Bram + Moolenaar, cf: 20210821). + 20211030 + simplify some references to WINDOWS._flags using macros. + add a "check" rule in Ada95 makefile, to help with test-packages. Index: VERSION --- ncurses-6.3-20211030+/VERSION 2021-10-30 08:33:19.000000000 +0000 +++ ncurses-6.3-20211106/VERSION 2021-11-06 08:19:47.000000000 +0000 @@ -1 +1 @@ -5:0:10 6.3 20211030 +5:0:10 6.3 20211106 Index: dist.mk Prereq: 1.1447 --- ncurses-6.3-20211030+/dist.mk 2021-10-30 08:33:19.000000000 +0000 +++ ncurses-6.3-20211106/dist.mk 2021-11-06 08:19:47.000000000 +0000 @@ -26,7 +26,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.1447 2021/10/30 08:33:19 tom Exp $ +# $Id: dist.mk,v 1.1448 2021/11/06 08:19:47 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -38,7 +38,7 @@ # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 6 NCURSES_MINOR = 3 -NCURSES_PATCH = 20211030 +NCURSES_PATCH = 20211106 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) Index: misc/Makefile.in Prereq: 1.78 --- ncurses-6.3-20211030+/misc/Makefile.in 2021-07-03 19:07:50.000000000 +0000 +++ ncurses-6.3-20211106/misc/Makefile.in 2021-11-06 23:36:12.000000000 +0000 @@ -1,4 +1,4 @@ -# $Id: Makefile.in,v 1.78 2021/07/03 19:07:50 tom Exp $ +# $Id: Makefile.in,v 1.79 2021/11/06 23:36:12 tom Exp $ ############################################################################## # Copyright 2018-2020,2021 Thomas E. Dickey # # Copyright 1998-2016,2017 Free Software Foundation, Inc. # @@ -147,7 +147,7 @@ # directory during this rule: @MAKE_PC_FILES@install \ @MAKE_PC_FILES@install.libs :: pc-files -@MAKE_PC_FILES@ @$(SHELL) -c 'case "x$(DESTDIR)$(PKG_CONFIG_LIBDIR)" in \ +@MAKE_PC_FILES@ @$(SHELL) -c 'case "x$(PKG_CONFIG_LIBDIR)" in \ @MAKE_PC_FILES@ x/*) \ @MAKE_PC_FILES@ mkdir -p $(DESTDIR)$(PKG_CONFIG_LIBDIR); \ @MAKE_PC_FILES@ for name in $(PC_FILES); do \ Index: ncurses/base/lib_delwin.c Prereq: 1.21 --- ncurses-6.3-20211030+/ncurses/base/lib_delwin.c 2020-02-02 23:34:34.000000000 +0000 +++ ncurses-6.3-20211106/ncurses/base/lib_delwin.c 2021-11-06 21:54:14.000000000 +0000 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2008,2009 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -43,24 +43,28 @@ #include -MODULE_ID("$Id: lib_delwin.c,v 1.21 2020/02/02 23:34:34 tom Exp $") +MODULE_ID("$Id: lib_delwin.c,v 1.22 2021/11/06 21:54:14 tom Exp $") static bool cannot_delete(WINDOW *win) { WINDOWLIST *p; bool result = TRUE; + if (IS_PAD(win)) { + result = FALSE; + } else { #ifdef USE_SP_WINDOWLIST - SCREEN *sp = _nc_screen_of(win); + SCREEN *sp = _nc_screen_of(win); #endif - for (each_window(SP_PARM, p)) { - if (&(p->win) == win) { - result = FALSE; - } else if ((p->win._flags & _SUBWIN) != 0 - && p->win._parent == win) { - result = TRUE; - break; + for (each_window(SP_PARM, p)) { + if (&(p->win) == win) { + result = FALSE; + } else if (IS_SUBWIN(&(p->win)) + && p->win._parent == win) { + result = TRUE; + break; + } } } return result; @@ -77,15 +81,18 @@ if (win == 0 || cannot_delete(win)) { result = ERR; + } else if (IS_PAD(win)) { + win->_parent = NULL; + result = OK; } else { #if NCURSES_SP_FUNCS SCREEN *sp = _nc_screen_of(win); #endif - if (win->_flags & _SUBWIN) + if (IS_SUBWIN(win)) { touchwin(win->_parent); - else if (CurScreen(SP_PARM) != 0) + } else if (CurScreen(SP_PARM) != 0) { touchwin(CurScreen(SP_PARM)); - + } result = _nc_freewin(win); } _nc_unlock_global(curses); Index: ncurses/base/lib_freeall.c Prereq: 1.75 --- ncurses-6.3-20211030+/ncurses/base/lib_freeall.c 2021-10-23 18:53:46.000000000 +0000 +++ ncurses-6.3-20211106/ncurses/base/lib_freeall.c 2021-11-06 21:52:49.000000000 +0000 @@ -40,7 +40,7 @@ extern int malloc_errfd; /* FIXME */ #endif -MODULE_ID("$Id: lib_freeall.c,v 1.75 2021/10/23 18:53:46 tom Exp $") +MODULE_ID("$Id: lib_freeall.c,v 1.76 2021/11/06 21:52:49 tom Exp $") /* * Free all ncurses data. This is used for testing only (there's no practical @@ -78,6 +78,9 @@ WINDOW *p_win = &(p->win); bool found = FALSE; + if (IS_PAD(p_win)) + continue; + #ifndef USE_SP_WINDOWLIST if (p->screen != SP_PARM) continue; Index: ncurses/base/lib_refresh.c Prereq: 1.46 --- ncurses-6.3-20211030+/ncurses/base/lib_refresh.c 2020-02-02 23:34:34.000000000 +0000 +++ ncurses-6.3-20211106/ncurses/base/lib_refresh.c 2021-11-06 22:22:03.000000000 +0000 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2010,2011 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -43,7 +43,7 @@ #include -MODULE_ID("$Id: lib_refresh.c,v 1.46 2020/02/02 23:34:34 tom Exp $") +MODULE_ID("$Id: lib_refresh.c,v 1.47 2021/11/06 22:22:03 tom Exp $") NCURSES_EXPORT(int) wrefresh(WINDOW *win) @@ -92,13 +92,21 @@ T((T_CALLED("wnoutrefresh(%p)"), (void *) win)); - /* - * This function will break badly if we try to refresh a pad. - */ - if ((win == 0) - || (win->_flags & _ISPAD)) + if (win == NULL) returnCode(ERR); + /* + * Handle pads as a special case. + */ + if (IS_PAD(win)) { + returnCode(pnoutrefresh(win, + win->_pad._pad_y, + win->_pad._pad_x, + win->_pad._pad_top, + win->_pad._pad_left, + win->_pad._pad_bottom, + win->_pad._pad_right)); + } #ifdef TRACE if (USE_TRACEF(TRACE_UPDATE)) { _tracedump("...win", win); Index: ncurses/tinfo/lib_cur_term.c Prereq: 1.43 --- ncurses-6.3-20211030+/ncurses/tinfo/lib_cur_term.c 2020-10-24 18:54:32.000000000 +0000 +++ ncurses-6.3-20211106/ncurses/tinfo/lib_cur_term.c 2021-11-06 19:04:21.000000000 +0000 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2020 Thomas E. Dickey * + * Copyright 2020,2021 Thomas E. Dickey * * Copyright 1998-2016,2017 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -41,7 +41,7 @@ #include /* ospeed */ #include /* VALID_STRING */ -MODULE_ID("$Id: lib_cur_term.c,v 1.43 2020/10/24 18:54:32 tom Exp $") +MODULE_ID("$Id: lib_cur_term.c,v 1.44 2021/11/06 19:04:21 tom Exp $") #undef CUR #define CUR TerminalType(termp). @@ -167,10 +167,13 @@ /* discard memory used in tgetent's cache for this terminal */ _nc_tgetent_leak(termp); #endif + free(termp->tparm_state.fmt_buff); + free(termp->tparm_state.out_buff); free(termp); rc = OK; } + returnCode(rc); } Index: package/debian-mingw/changelog --- ncurses-6.3-20211030+/package/debian-mingw/changelog 2021-10-30 08:33:19.000000000 +0000 +++ ncurses-6.3-20211106/package/debian-mingw/changelog 2021-11-06 08:19:47.000000000 +0000 @@ -1,8 +1,8 @@ -ncurses6 (6.3+20211030) unstable; urgency=low +ncurses6 (6.3+20211106) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 30 Oct 2021 04:33:19 -0400 + -- Thomas E. Dickey Sat, 06 Nov 2021 04:19:47 -0400 ncurses6 (5.9-20131005) unstable; urgency=low Index: package/debian-mingw64/changelog --- ncurses-6.3-20211030+/package/debian-mingw64/changelog 2021-10-30 08:33:19.000000000 +0000 +++ ncurses-6.3-20211106/package/debian-mingw64/changelog 2021-11-06 08:19:47.000000000 +0000 @@ -1,8 +1,8 @@ -ncurses6 (6.3+20211030) unstable; urgency=low +ncurses6 (6.3+20211106) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 30 Oct 2021 04:33:19 -0400 + -- Thomas E. Dickey Sat, 06 Nov 2021 04:19:47 -0400 ncurses6 (5.9-20131005) unstable; urgency=low Index: package/debian/changelog --- ncurses-6.3-20211030+/package/debian/changelog 2021-10-30 08:33:19.000000000 +0000 +++ ncurses-6.3-20211106/package/debian/changelog 2021-11-06 08:19:47.000000000 +0000 @@ -1,8 +1,8 @@ -ncurses6 (6.3+20211030) unstable; urgency=low +ncurses6 (6.3+20211106) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 30 Oct 2021 04:33:19 -0400 + -- Thomas E. Dickey Sat, 06 Nov 2021 04:19:47 -0400 ncurses6 (5.9-20120608) unstable; urgency=low Index: package/mingw-ncurses.nsi Prereq: 1.489 --- ncurses-6.3-20211030+/package/mingw-ncurses.nsi 2021-10-30 08:33:19.000000000 +0000 +++ ncurses-6.3-20211106/package/mingw-ncurses.nsi 2021-11-06 08:19:47.000000000 +0000 @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.489 2021/10/30 08:33:19 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.490 2021/11/06 08:19:47 tom Exp $ ; TODO add examples ; TODO bump ABI to 6 @@ -10,7 +10,7 @@ !define VERSION_MAJOR "6" !define VERSION_MINOR "3" !define VERSION_YYYY "2021" -!define VERSION_MMDD "1030" +!define VERSION_MMDD "1106" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" Index: package/mingw-ncurses.spec --- ncurses-6.3-20211030+/package/mingw-ncurses.spec 2021-10-30 08:33:19.000000000 +0000 +++ ncurses-6.3-20211106/package/mingw-ncurses.spec 2021-11-06 08:19:47.000000000 +0000 @@ -3,7 +3,7 @@ Summary: shared libraries for terminal handling Name: mingw32-ncurses6 Version: 6.3 -Release: 20211030 +Release: 20211106 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz Index: package/ncurses.spec --- ncurses-6.3-20211030+/package/ncurses.spec 2021-10-30 08:33:19.000000000 +0000 +++ ncurses-6.3-20211106/package/ncurses.spec 2021-11-06 08:19:47.000000000 +0000 @@ -1,7 +1,7 @@ Summary: shared libraries for terminal handling Name: ncurses6 Version: 6.3 -Release: 20211030 +Release: 20211106 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz Index: package/ncursest.spec --- ncurses-6.3-20211030+/package/ncursest.spec 2021-10-30 08:33:19.000000000 +0000 +++ ncurses-6.3-20211106/package/ncursest.spec 2021-11-06 08:19:47.000000000 +0000 @@ -1,7 +1,7 @@ Summary: Curses library with POSIX thread support. Name: ncursest6 Version: 6.3 -Release: 20211030 +Release: 20211106 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz Index: panel/p_new.c Prereq: 1.23 --- ncurses-6.3-20211030+/panel/p_new.c 2021-06-17 21:20:30.000000000 +0000 +++ ncurses-6.3-20211106/panel/p_new.c 2021-10-23 15:12:06.000000000 +0000 @@ -39,7 +39,7 @@ */ #include "panel.priv.h" -MODULE_ID("$Id: p_new.c,v 1.23 2021/06/17 21:20:30 tom Exp $") +MODULE_ID("$Id: p_new.c,v 1.24 2021/10/23 15:12:06 tom Exp $") #ifdef TRACE static char *stdscr_id; @@ -117,7 +117,7 @@ (void)root_panel(NCURSES_SP_ARG); assert(_nc_stdscr_pseudo_panel); - if (!(win->_flags & _ISPAD) && (pan = AllocPanel("new_panel"))) + if ((pan = AllocPanel("new_panel")) != NULL) { pan->win = win; pan->above = (PANEL *)0;