Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ncurses for openSUSE:Factory checked in at 2021-06-02 22:10:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ncurses (Old) and /work/SRC/openSUSE:Factory/.ncurses.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ncurses" Wed Jun 2 22:10:20 2021 rev:189 rq:895215 version:6.2.MACRO Changes: -------- --- /work/SRC/openSUSE:Factory/ncurses/ncurses.changes 2021-05-17 18:44:46.608760533 +0200 +++ /work/SRC/openSUSE:Factory/.ncurses.new.1898/ncurses.changes 2021-06-02 22:10:21.988128335 +0200 @@ -1,0 +2,16 @@ +Mon May 17 06:29:16 UTC 2021 - Dr. Werner Fink <wer...@suse.de> + +- Add ncurses patch 20210515 + + improve manual pages for wgetnstr, newwin (prompted by + report/testcase by Bill Gray). +- Add ncurses patch 20210508 + + modify tputs' error check to allow it to be used without first + calling tgetent or setupterm, noting that terminfo initialization + is requires for supporting the terminfo delay feature (report by + Sebastiano Vigna). + + fix several warnings from clang --analyze + + add null-pointer check in comp_parse.c, when a "use=" clause refers + to a nonexisting terminal description (report/patch by Miroslav + Lichvar, cf: 20210227). + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ncurses-6.2-patches.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/ncurses-6.2-20210508.patch new/patches/ncurses-6.2-20210508.patch --- old/patches/ncurses-6.2-20210508.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches/ncurses-6.2-20210508.patch 2021-05-17 08:21:07.436170082 +0200 @@ -0,0 +1,805 @@ +# ncurses 6.2 - patch 20210508 - Thomas E. Dickey +# +# ------------------------------------------------------------------------------ +# +# Ncurses 6.2 is at +# ftp.gnu.org:/pub/gnu +# +# Patches for ncurses 6.2 can be found at +# ftp://ftp.invisible-island.net/ncurses/6.2 +# http://invisible-mirror.net/archives/ncurses/6.2 +# +# ------------------------------------------------------------------------------ +# ftp://ftp.invisible-island.net/ncurses/6.2/ncurses-6.2-20210508.patch.gz +# patch by Thomas E. Dickey <dic...@invisible-island.net> +# created Sun May 9 00:34:51 UTC 2021 +# ------------------------------------------------------------------------------ +# NEWS | 12 +++++- +# VERSION | 2 - +# dist.mk | 4 +- +# menu/m_post.c | 55 +++++++++++++++------------- +# ncurses/base/lib_bkgd.c | 4 +- +# ncurses/base/lib_color.c | 71 +++++++++++++++++++------------------ +# ncurses/base/lib_set_term.c | 8 ++-- +# ncurses/base/new_pair.c | 4 +- +# ncurses/tinfo/alloc_entry.c | 6 +-- +# ncurses/tinfo/comp_parse.c | 12 +++--- +# ncurses/tinfo/lib_tputs.c | 38 +++++++++---------- +# 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 - +# test/demo_menus.c | 4 +- +# test/hanoi.c | 6 +-- +# test/knight.c | 4 +- +# test/ncurses.c | 6 +-- +# test/picsmap.c | 3 - +# test/test_add_wchstr.c | 6 +-- +# test/view.c | 8 +--- +# 25 files changed, 146 insertions(+), 129 deletions(-) +# ------------------------------------------------------------------------------ +Index: NEWS +Prereq: 1.3660 +--- ncurses-6.2-20210501+/NEWS 2021-05-01 21:55:29.000000000 +0000 ++++ ncurses-6.2-20210508/NEWS 2021-05-08 23:37:13.000000000 +0000 +@@ -26,7 +26,7 @@ + -- sale, use or other dealings in this Software without prior written -- + -- authorization. -- + ------------------------------------------------------------------------------- +--- $Id: NEWS,v 1.3660 2021/05/01 21:55:29 tom Exp $ ++-- $Id: NEWS,v 1.3662 2021/05/08 23:37:13 tom Exp $ + ------------------------------------------------------------------------------- + + This is a log of changes that ncurses has gone through since Zeyd started +@@ -46,6 +46,16 @@ + Changes through 1.9.9e did not credit all contributions; + it is not possible to add this information. + ++20210508 ++ + modify tputs' error check to allow it to be used without first ++ calling tgetent or setupterm, noting that terminfo initialization ++ is requires for supporting the terminfo delay feature (report by ++ Sebastiano Vigna). ++ + fix several warnings from clang --analyze ++ + add null-pointer check in comp_parse.c, when a "use=" clause refers ++ to a nonexisting terminal description (report/patch by Miroslav ++ Lichvar, cf: 20210227). ++ + 20210501 + + add a special case in the configure script to work around one of the + build-time breakages reported for OpenBSD 6 here: +Index: VERSION +--- ncurses-6.2-20210501+/VERSION 2021-05-01 09:40:30.000000000 +0000 ++++ ncurses-6.2-20210508/VERSION 2021-05-08 13:20:24.000000000 +0000 +@@ -1 +1 @@ +-5:0:10 6.2 20210501 ++5:0:10 6.2 20210508 +Index: dist.mk +Prereq: 1.1413 +--- ncurses-6.2-20210501+/dist.mk 2021-05-01 09:40:30.000000000 +0000 ++++ ncurses-6.2-20210508/dist.mk 2021-05-08 13:20:24.000000000 +0000 +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: dist.mk,v 1.1413 2021/05/01 09:40:30 tom Exp $ ++# $Id: dist.mk,v 1.1414 2021/05/08 13:20:24 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 = 2 +-NCURSES_PATCH = 20210501 ++NCURSES_PATCH = 20210508 + + # We don't append the patch to the version, since this only applies to releases + VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) +Index: menu/m_post.c +Prereq: 1.35 +--- ncurses-6.2-20210501+/menu/m_post.c 2021-03-27 23:46:29.000000000 +0000 ++++ ncurses-6.2-20210508/menu/m_post.c 2021-05-08 20:20:01.000000000 +0000 +@@ -38,7 +38,7 @@ + + #include "menu.priv.h" + +-MODULE_ID("$Id: m_post.c,v 1.35 2021/03/27 23:46:29 tom Exp $") ++MODULE_ID("$Id: m_post.c,v 1.36 2021/05/08 20:20:01 tom Exp $") + + /*--------------------------------------------------------------------------- + | Facility : libnmenu +@@ -215,45 +215,48 @@ + + lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : item; + +- do ++ if (item != NULL) + { +- ITEM *lasthor; +- +- wmove(menu->win, y, 0); +- +- hitem = item; +- lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem; +- + do + { +- _nc_Post_Item(menu, hitem); ++ ITEM *lasthor; + +- wattron(menu->win, (int)menu->back); +- if (((hitem = hitem->right) != lasthor) && hitem) ++ wmove(menu->win, y, 0); ++ ++ hitem = item; ++ lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem; ++ ++ do + { +- int i, j, cy, cx; +- chtype ch = ' '; ++ _nc_Post_Item(menu, hitem); + +- getyx(menu->win, cy, cx); +- for (j = 0; j < menu->spc_rows; j++) ++ wattron(menu->win, (int)menu->back); ++ if (((hitem = hitem->right) != lasthor) && hitem) + { +- wmove(menu->win, cy + j, cx); +- for (i = 0; i < menu->spc_cols; i++) ++ int i, j, cy, cx; ++ chtype ch = ' '; ++ ++ getyx(menu->win, cy, cx); ++ for (j = 0; j < menu->spc_rows; j++) + { +- waddch(menu->win, ch); ++ wmove(menu->win, cy + j, cx); ++ for (i = 0; i < menu->spc_cols; i++) ++ { ++ waddch(menu->win, ch); ++ } + } ++ wmove(menu->win, cy, cx + menu->spc_cols); + } +- wmove(menu->win, cy, cx + menu->spc_cols); + } +- } +- while (hitem && (hitem != lasthor)); +- wattroff(menu->win, (int)menu->back); ++ while (hitem && (hitem != lasthor)); ++ wattroff(menu->win, (int)menu->back); + +- item = item->down; +- y += menu->spc_rows; ++ item = item->down; ++ y += menu->spc_rows; + ++ } ++ while (item && (item != lastvert)); + } +- while (item && (item != lastvert)); + } + + /*--------------------------------------------------------------------------- +Index: ncurses/base/lib_bkgd.c +Prereq: 1.62 +--- ncurses-6.2-20210501+/ncurses/base/lib_bkgd.c 2021-02-13 20:06:54.000000000 +0000 ++++ ncurses-6.2-20210508/ncurses/base/lib_bkgd.c 2021-05-08 14:58:12.000000000 +0000 +@@ -37,7 +37,7 @@ + + #include <curses.priv.h> + +-MODULE_ID("$Id: lib_bkgd.c,v 1.62 2021/02/13 20:06:54 tom Exp $") ++MODULE_ID("$Id: lib_bkgd.c,v 1.63 2021/05/08 14:58:12 tom Exp $") + + static const NCURSES_CH_T blank = NewChar(BLANK_TEXT); + +@@ -64,7 +64,7 @@ + { + int pair; + +- if ((pair = GetPair(win->_nc_bkgd)) != 0) ++ if (GetPair(win->_nc_bkgd) != 0) + SET_WINDOW_PAIR(win, 0); + if ((pair = GetPair(CHDEREF(ch))) != 0) + SET_WINDOW_PAIR(win, pair); +Index: ncurses/base/lib_color.c +Prereq: 1.146 +--- ncurses-6.2-20210501+/ncurses/base/lib_color.c 2021-02-14 00:17:09.000000000 +0000 ++++ ncurses-6.2-20210508/ncurses/base/lib_color.c 2021-05-08 15:11:48.000000000 +0000 +@@ -49,7 +49,7 @@ + #define CUR SP_TERMTYPE + #endif + +-MODULE_ID("$Id: lib_color.c,v 1.146 2021/02/14 00:17:09 tom Exp $") ++MODULE_ID("$Id: lib_color.c,v 1.147 2021/05/08 15:11:48 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define CanChange InfoOf(SP_PARM).canchange +@@ -266,7 +266,7 @@ + ; + } + +- if ((n = tigetflag(name)) > 0) { ++ if (tigetflag(name) > 0) { + n = (width + 2) / 3; + result->bits.red = UChar(n); + result->bits.green = UChar(n); +@@ -840,52 +840,57 @@ + (void *) g, + (void *) b)); + +- if (sp == 0) +- returnCode(result); +- +- maxcolors = MaxColors; ++ if (sp != 0) { ++ maxcolors = MaxColors; + +- if (color < 0 || !OkColorHi(color) || !sp->_coloron) { +- result = ERR; +- } else { +- int c_r, c_g, c_b; ++ if (color >= 0 && OkColorHi(color) && sp->_coloron) { ++ int c_r, c_g, c_b; + +- if (sp->_direct_color.value) { +- rgb_bits_t *work = &(sp->_direct_color); ++ if (sp->_direct_color.value) { ++ rgb_bits_t *work = &(sp->_direct_color); + + #define max_direct_color(name) ((1 << work->bits.name) - 1) + #define value_direct_color(max) (1000 * ((color >> bitoff) & max)) / max + +- int max_r = max_direct_color(red); +- int max_g = max_direct_color(green); +- int max_b = max_direct_color(blue); ++ int max_r = max_direct_color(red); ++ int max_g = max_direct_color(green); ++ int max_b = max_direct_color(blue); + +- int bitoff = 0; ++ int bitoff = 0; + +- c_b = value_direct_color(max_b); +- bitoff += work->bits.blue; ++ c_b = value_direct_color(max_b); ++ bitoff += work->bits.blue; + +- c_g = value_direct_color(max_g); +- bitoff += work->bits.green; ++ c_g = value_direct_color(max_g); ++ bitoff += work->bits.green; + +- c_r = value_direct_color(max_r); ++ c_r = value_direct_color(max_r); + +- } else { +- c_r = sp->_color_table[color].red; +- c_g = sp->_color_table[color].green; +- c_b = sp->_color_table[color].blue; +- } ++ } else { ++ c_r = sp->_color_table[color].red; ++ c_g = sp->_color_table[color].green; ++ c_b = sp->_color_table[color].blue; ++ } ++ ++ if (r) ++ *r = c_r; ++ if (g) ++ *g = c_g; ++ if (b) ++ *b = c_b; + ++ TR(TRACE_ATTRS, ("...color_content(%d,%d,%d,%d)", ++ color, c_r, c_g, c_b)); ++ result = OK; ++ } ++ } ++ if (result != OK) { + if (r) +- *r = c_r; ++ *r = 0; + if (g) +- *g = c_g; ++ *g = 0; + if (b) +- *b = c_b; +- +- TR(TRACE_ATTRS, ("...color_content(%d,%d,%d,%d)", +- color, c_r, c_g, c_b)); +- result = OK; ++ *b = 0; + } + returnCode(result); + } +Index: ncurses/base/lib_set_term.c +Prereq: 1.177 +--- ncurses-6.2-20210501+/ncurses/base/lib_set_term.c 2021-04-17 15:04:41.000000000 +0000 ++++ ncurses-6.2-20210508/ncurses/base/lib_set_term.c 2021-05-08 21:48:34.000000000 +0000 +@@ -54,7 +54,7 @@ + #undef CUR + #define CUR SP_TERMTYPE + +-MODULE_ID("$Id: lib_set_term.c,v 1.177 2021/04/17 15:04:41 tom Exp $") ++MODULE_ID("$Id: lib_set_term.c,v 1.179 2021/05/08 21:48:34 tom Exp $") + + #ifdef USE_TERM_DRIVER + #define MaxColors InfoOf(sp).maxcolors +@@ -417,7 +417,6 @@ + fflush(output); + _setmode(fileno(output), _O_BINARY); + #endif +- NCURSES_SP_NAME(_nc_set_buffer) (NCURSES_SP_ARGx output, TRUE); + sp->_lines = (NCURSES_SIZE_T) slines; + sp->_lines_avail = (NCURSES_SIZE_T) slines; + sp->_columns = (NCURSES_SIZE_T) scolumns; +@@ -500,7 +499,7 @@ + p = extract_fgbg(p, &(sp->_default_fg)); + p = extract_fgbg(p, &(sp->_default_bg)); + if (*p) /* assume rxvt was compiled with xpm support */ +- p = extract_fgbg(p, &(sp->_default_bg)); ++ extract_fgbg(p, &(sp->_default_bg)); + TR(TRACE_CHARPUT | TRACE_MOVE, ("decoded fg=%d, bg=%d", + sp->_default_fg, sp->_default_bg)); + if (sp->_default_fg >= MaxColors) { +@@ -697,6 +696,9 @@ + formats (4-4 or 3-2-3) for which there may be some hardware + support. */ + if (rop->hook == _nc_slk_initialize) { ++ if (!TerminalOf(sp)) { ++ continue; ++ } + if (!(NumLabels <= 0 || !SLK_STDFMT(slk_format))) { + continue; + } +Index: ncurses/base/new_pair.c +Prereq: 1.21 +--- ncurses-6.2-20210501+/ncurses/base/new_pair.c 2021-02-14 00:17:09.000000000 +0000 ++++ ncurses-6.2-20210508/ncurses/base/new_pair.c 2021-05-08 15:26:34.000000000 +0000 +@@ -61,7 +61,7 @@ + + #endif + +-MODULE_ID("$Id: new_pair.c,v 1.21 2021/02/14 00:17:09 tom Exp $") ++MODULE_ID("$Id: new_pair.c,v 1.22 2021/05/08 15:26:34 tom Exp $") + + #if NCURSES_EXT_COLORS + +@@ -297,7 +297,7 @@ + found = TRUE; + } + } +- if (!found) { ++ if (!found && SP_PARM->_color_pairs != NULL) { + for (pair = 1; pair <= hint; pair++) { + if (SP_PARM->_color_pairs[pair].mode == cpFREE) { + T(("found gap %d", pair)); +Index: ncurses/tinfo/alloc_entry.c +Prereq: 1.64 +--- ncurses-6.2-20210501+/ncurses/tinfo/alloc_entry.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.2-20210508/ncurses/tinfo/alloc_entry.c 2021-05-04 23:15:34.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2018-2019,2020 Thomas E. Dickey * ++ * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2013,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -48,7 +48,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: alloc_entry.c,v 1.64 2020/02/02 23:34:34 tom Exp $") ++MODULE_ID("$Id: alloc_entry.c,v 1.65 2021/05/04 23:15:34 tom Exp $") + + #define ABSENT_OFFSET -1 + #define CANCELLED_OFFSET -2 +@@ -242,7 +242,7 @@ + _nc_align_termtype(to, from); + #endif + for_each_boolean(i, from) { +- if (to->Booleans[i] != (char) CANCELLED_BOOLEAN) { ++ if (to->Booleans[i] != (NCURSES_SBOOL) CANCELLED_BOOLEAN) { + int mergebool = from->Booleans[i]; + + if (mergebool == CANCELLED_BOOLEAN) +Index: ncurses/tinfo/comp_parse.c +Prereq: 1.112 +--- ncurses-6.2-20210501+/ncurses/tinfo/comp_parse.c 2021-02-27 21:01:21.000000000 +0000 ++++ ncurses-6.2-20210508/ncurses/tinfo/comp_parse.c 2021-05-08 15:03:42.000000000 +0000 +@@ -48,7 +48,7 @@ + + #include <tic.h> + +-MODULE_ID("$Id: comp_parse.c,v 1.112 2021/02/27 21:01:21 tom Exp $") ++MODULE_ID("$Id: comp_parse.c,v 1.113 2021/05/08 15:03:42 tom Exp $") + + static void sanity_check2(TERMTYPE2 *, bool); + NCURSES_IMPEXP void (NCURSES_API *_nc_check_termtype2) (TERMTYPE2 *, bool) = sanity_check2; +@@ -457,8 +457,9 @@ + + /* verify that there are no earlier uses */ + for (j = 0; j < i; ++j) { +- if (!strcmp(qp->uses[j].link->tterm.term_names, +- rp->tterm.term_names)) { ++ if (qp->uses[j].link != NULL ++ && !strcmp(qp->uses[j].link->tterm.term_names, ++ rp->tterm.term_names)) { + _nc_warning("duplicate use=%s", lookfor); + break; + } +@@ -487,8 +488,9 @@ + + /* verify that there are no earlier uses */ + for (j = 0; j < i; ++j) { +- if (!strcmp(qp->uses[j].link->tterm.term_names, +- rp->tterm.term_names)) { ++ if (qp->uses[j].link != NULL ++ && !strcmp(qp->uses[j].link->tterm.term_names, ++ rp->tterm.term_names)) { + _nc_warning("duplicate use=%s", lookfor); + break; + } +Index: ncurses/tinfo/lib_tputs.c +Prereq: 1.107 +--- ncurses-6.2-20210501+/ncurses/tinfo/lib_tputs.c 2021-04-03 18:45:53.000000000 +0000 ++++ ncurses-6.2-20210508/ncurses/tinfo/lib_tputs.c 2021-05-08 23:27:40.000000000 +0000 +@@ -52,7 +52,7 @@ + #include <termcap.h> /* ospeed */ + #include <tic.h> + +-MODULE_ID("$Id: lib_tputs.c,v 1.107 2021/04/03 18:45:53 tom Exp $") ++MODULE_ID("$Id: lib_tputs.c,v 1.108 2021/05/08 23:27:40 tom Exp $") + + NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */ + NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */ +@@ -276,8 +276,8 @@ + NCURSES_SP_OUTC outc) + { + NCURSES_SP_OUTC my_outch = GetOutCh(); +- bool always_delay; +- bool normal_delay; ++ bool always_delay = FALSE; ++ bool normal_delay = FALSE; + int number; + #if BSD_TPUTS + int trailpad; +@@ -305,32 +305,30 @@ + } + #endif /* TRACE */ + +- if (SP_PARM != 0 && !HasTInfoTerminal(SP_PARM)) +- return ERR; +- + if (!VALID_STRING(string)) + return ERR; + +- if ( ++ if (SP_PARM != 0 && HasTInfoTerminal(SP_PARM)) { ++ if ( + #if NCURSES_SP_FUNCS +- (SP_PARM != 0 && SP_PARM->_term == 0) ++ (SP_PARM != 0 && SP_PARM->_term == 0) + #else +- cur_term == 0 ++ cur_term == 0 + #endif +- ) { +- always_delay = FALSE; +- normal_delay = TRUE; +- } else { +- always_delay = (string == bell) || (string == flash_screen); +- normal_delay = +- !xon_xoff +- && padding_baud_rate ++ ) { ++ always_delay = FALSE; ++ normal_delay = TRUE; ++ } else { ++ always_delay = (string == bell) || (string == flash_screen); ++ normal_delay = ++ !xon_xoff ++ && padding_baud_rate + #if NCURSES_NO_PADDING +- && !GetNoPadding(SP_PARM) ++ && !GetNoPadding(SP_PARM) + #endif +- && (_nc_baudrate(ospeed) >= padding_baud_rate); ++ && (_nc_baudrate(ospeed) >= padding_baud_rate); ++ } + } +- + #if BSD_TPUTS + /* + * This ugly kluge deals with the fact that some ancient BSD programs +Index: package/debian-mingw/changelog +--- ncurses-6.2-20210501+/package/debian-mingw/changelog 2021-05-01 09:40:30.000000000 +0000 ++++ ncurses-6.2-20210508/package/debian-mingw/changelog 2021-05-08 13:20:24.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.2+20210501) unstable; urgency=low ++ncurses6 (6.2+20210508) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 01 May 2021 05:40:30 -0400 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 08 May 2021 09:20:24 -0400 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian-mingw64/changelog +--- ncurses-6.2-20210501+/package/debian-mingw64/changelog 2021-05-01 09:40:30.000000000 +0000 ++++ ncurses-6.2-20210508/package/debian-mingw64/changelog 2021-05-08 13:20:24.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.2+20210501) unstable; urgency=low ++ncurses6 (6.2+20210508) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 01 May 2021 05:40:30 -0400 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 08 May 2021 09:20:24 -0400 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian/changelog +--- ncurses-6.2-20210501+/package/debian/changelog 2021-05-01 09:40:30.000000000 +0000 ++++ ncurses-6.2-20210508/package/debian/changelog 2021-05-08 13:20:24.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.2+20210501) unstable; urgency=low ++ncurses6 (6.2+20210508) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 01 May 2021 05:40:30 -0400 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 08 May 2021 09:20:24 -0400 + + ncurses6 (5.9-20120608) unstable; urgency=low + +Index: package/mingw-ncurses.nsi +Prereq: 1.456 +--- ncurses-6.2-20210501+/package/mingw-ncurses.nsi 2021-05-01 09:40:30.000000000 +0000 ++++ ncurses-6.2-20210508/package/mingw-ncurses.nsi 2021-05-08 13:20:24.000000000 +0000 +@@ -1,4 +1,4 @@ +-; $Id: mingw-ncurses.nsi,v 1.456 2021/05/01 09:40:30 tom Exp $ ++; $Id: mingw-ncurses.nsi,v 1.457 2021/05/08 13:20:24 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 "2021" +-!define VERSION_MMDD "0501" ++!define VERSION_MMDD "0508" + !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} + + !define MY_ABI "5" +Index: package/mingw-ncurses.spec +--- ncurses-6.2-20210501+/package/mingw-ncurses.spec 2021-05-01 09:40:30.000000000 +0000 ++++ ncurses-6.2-20210508/package/mingw-ncurses.spec 2021-05-08 13:20:24.000000000 +0000 +@@ -3,7 +3,7 @@ + Summary: shared libraries for terminal handling + Name: mingw32-ncurses6 + Version: 6.2 +-Release: 20210501 ++Release: 20210508 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: package/ncurses.spec +--- ncurses-6.2-20210501+/package/ncurses.spec 2021-05-01 09:40:30.000000000 +0000 ++++ ncurses-6.2-20210508/package/ncurses.spec 2021-05-08 13:20:24.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: shared libraries for terminal handling + Name: ncurses6 + Version: 6.2 +-Release: 20210501 ++Release: 20210508 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: package/ncursest.spec +--- ncurses-6.2-20210501+/package/ncursest.spec 2021-05-01 09:40:30.000000000 +0000 ++++ ncurses-6.2-20210508/package/ncursest.spec 2021-05-08 13:20:24.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: Curses library with POSIX thread support. + Name: ncursest6 + Version: 6.2 +-Release: 20210501 ++Release: 20210508 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: test/demo_menus.c +Prereq: 1.72 +--- ncurses-6.2-20210501+/test/demo_menus.c 2021-03-20 16:05:49.000000000 +0000 ++++ ncurses-6.2-20210508/test/demo_menus.c 2021-05-08 19:41:08.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: demo_menus.c,v 1.72 2021/03/20 16:05:49 tom Exp $ ++ * $Id: demo_menus.c,v 1.73 2021/05/08 19:41:08 tom Exp $ + * + * Demonstrate a variety of functions from the menu library. + * Thomas Dickey - 2005/4/9 +@@ -565,7 +565,7 @@ + } + _nc_SPRINTF(buf, _nc_SLIMIT(need) "0x%02x = {", tlevel); + if (tlevel == 0) { +- _nc_STRCAT(buf, t_tbl[0].name, need); ++ _nc_STRCAT(buf, t_tbl[0].name ? t_tbl[0].name : "", need); + _nc_STRCAT(buf, ", ", need); + } else { + for (n = 1; t_tbl[n].name != 0; n++) +Index: test/hanoi.c +Prereq: 1.41 +--- ncurses-6.2-20210501+/test/hanoi.c 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.2-20210508/test/hanoi.c 2021-05-08 20:44:44.000000000 +0000 +@@ -1,5 +1,5 @@ + /**************************************************************************** +- * Copyright 2019,2020 Thomas E. Dickey * ++ * Copyright 2019-2020,2021 Thomas E. Dickey * + * Copyright 1998-2014,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -42,7 +42,7 @@ + * + * Date: 05.Nov.90 + * +- * $Id: hanoi.c,v 1.41 2020/02/02 23:34:34 tom Exp $ ++ * $Id: hanoi.c,v 1.42 2021/05/08 20:44:44 tom Exp $ + */ + + #include <test.priv.h> +@@ -283,7 +283,7 @@ + } + setlocale(LC_ALL, ""); + +- switch (ch = (argc - optind)) { ++ switch (argc - optind) { + case 2: + if (strcmp(argv[optind + 1], "a")) { + usage(); +Index: test/knight.c +Prereq: 1.48 +--- ncurses-6.2-20210501+/test/knight.c 2021-04-25 00:10:43.000000000 +0000 ++++ ncurses-6.2-20210508/test/knight.c 2021-05-08 19:32:15.000000000 +0000 +@@ -34,7 +34,7 @@ + * Eric S. Raymond <e...@snark.thyrsus.com> July 22 1995. Mouse support + * added September 20th 1995. + * +- * $Id: knight.c,v 1.48 2021/04/25 00:10:43 tom Exp $ ++ * $Id: knight.c,v 1.49 2021/05/08 19:32:15 tom Exp $ + */ + + #include <test.priv.h> +@@ -621,10 +621,10 @@ + + for (i = 0; i < ylimit; i++) { + for (j = 0; j < xlimit; j++) { +- squares[i][j] = FALSE; + unmarkcell(i, j); + } + } ++ memset(squares, 0, sizeof(squares)); + memset(history, 0, sizeof(history)); + history[0].y = history[0].x = -1; + history[1].y = history[1].x = -1; +Index: test/ncurses.c +Prereq: 1.524 +--- ncurses-6.2-20210501+/test/ncurses.c 2021-03-20 16:11:50.000000000 +0000 ++++ ncurses-6.2-20210508/test/ncurses.c 2021-05-08 19:44:31.000000000 +0000 +@@ -41,7 +41,7 @@ + Author: Eric S. Raymond <e...@snark.thyrsus.com> 1993 + Thomas E. Dickey (beginning revision 1.27 in 1996). + +-$Id: ncurses.c,v 1.524 2021/03/20 16:11:50 tom Exp $ ++$Id: ncurses.c,v 1.525 2021/05/08 19:44:31 tom Exp $ + + ***************************************************************************/ + +@@ -5531,7 +5531,7 @@ + "Number repeats. Toggle legend:? filler:a timer:t scrollmark:s." + }; + int n = ((int) SIZEOF(legend) - (LINES - line)); +- if (n >= 0) { ++ if (n >= 0 && n < (int) SIZEOF(legend)) { + if (move(line, 0) != ERR) { + if (show_panner_legend) + printw("%s", legend[n]); +@@ -6232,7 +6232,7 @@ + } + _nc_SPRINTF(buf, _nc_SLIMIT(need) "0x%02x = {", tlevel); + if (tlevel == 0) { +- _nc_STRCAT(buf, t_tbl[0].name, need); ++ _nc_STRCAT(buf, t_tbl[0].name ? t_tbl[0].name : "", need); + _nc_STRCAT(buf, ", ", need); + } else { + for (n = 1; t_tbl[n].name != 0; n++) +Index: test/picsmap.c +Prereq: 1.138 +--- ncurses-6.2-20210501+/test/picsmap.c 2021-05-01 20:38:40.000000000 +0000 ++++ ncurses-6.2-20210508/test/picsmap.c 2021-05-08 15:56:05.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: picsmap.c,v 1.138 2021/05/01 20:38:40 tom Exp $ ++ * $Id: picsmap.c,v 1.139 2021/05/08 15:56:05 tom Exp $ + * + * Author: Thomas E. Dickey + * +@@ -604,7 +604,6 @@ + continue; + } + } +- s += strlen(s); + + if (tries & 2) { + int len = (int) strlen(filename); +Index: test/test_add_wchstr.c +Prereq: 1.28 +--- ncurses-6.2-20210501+/test/test_add_wchstr.c 2021-03-27 23:41:34.000000000 +0000 ++++ ncurses-6.2-20210508/test/test_add_wchstr.c 2021-05-08 20:04:10.000000000 +0000 +@@ -27,7 +27,7 @@ + * authorization. * + ****************************************************************************/ + /* +- * $Id: test_add_wchstr.c,v 1.28 2021/03/27 23:41:34 tom Exp $ ++ * $Id: test_add_wchstr.c,v 1.29 2021/05/08 20:04:10 tom Exp $ + * + * Demonstrate the waddwchstr() and wadd_wch functions. + * Thomas Dickey - 2009/9/12 +@@ -133,10 +133,10 @@ + size_t adjust = 0; + size_t n; + +- for (n = 0; n < result; ++n) { ++ for (n = 0; source[n] != 0; ++n) { + const char *s; + +- if (source[n] < 256 && (s = unctrl((chtype) source[n])) != 0) { ++ if ((source[n] < 256) && (s = unctrl((chtype) source[n])) != 0) { + adjust += (strlen(s) - 1); + } + } +Index: test/view.c +Prereq: 1.140 +--- ncurses-6.2-20210501+/test/view.c 2021-03-27 22:42:22.000000000 +0000 ++++ ncurses-6.2-20210508/test/view.c 2021-05-08 15:57:04.000000000 +0000 +@@ -52,7 +52,7 @@ + * scroll operation worked, and the refresh() code only had to do a + * partial repaint. + * +- * $Id: view.c,v 1.140 2021/03/27 22:42:22 tom Exp $ ++ * $Id: view.c,v 1.141 2021/05/08 15:57:04 tom Exp $ + */ + + #include <test.priv.h> +@@ -78,9 +78,7 @@ + static bool n_option = FALSE; + #endif + +-static GCC_NORETURN void usage(void); +- +-static void ++static GCC_NORETURN void + failed(const char *msg) + { + endwin(); +@@ -368,7 +366,7 @@ + free(my_blob); + } + +-static void ++static GCC_NORETURN void + usage(void) + { + static const char *msg[] = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches/ncurses-6.2-20210515.patch new/patches/ncurses-6.2-20210515.patch --- old/patches/ncurses-6.2-20210515.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches/ncurses-6.2-20210515.patch 2021-05-17 08:23:00.786079677 +0200 @@ -0,0 +1,776 @@ +# ncurses 6.2 - patch 20210515 - Thomas E. Dickey +# +# ------------------------------------------------------------------------------ +# +# Ncurses 6.2 is at +# ftp.gnu.org:/pub/gnu +# +# Patches for ncurses 6.2 can be found at +# ftp://ftp.invisible-island.net/ncurses/6.2 +# http://invisible-mirror.net/archives/ncurses/6.2 +# +# ------------------------------------------------------------------------------ +# ftp://ftp.invisible-island.net/ncurses/6.2/ncurses-6.2-20210515.patch.gz +# patch by Thomas E. Dickey <dic...@invisible-island.net> +# created Sun May 16 00:32:33 UTC 2021 +# ------------------------------------------------------------------------------ +# NEWS | 8 +- +# VERSION | 2 +# dist.mk | 4 - +# doc/html/man/adacurses6-config.1.html | 2 +# doc/html/man/captoinfo.1m.html | 2 +# doc/html/man/clear.1.html | 2 +# doc/html/man/curs_getstr.3x.html | 120 ++++++++++++++++++++------------ +# doc/html/man/curs_window.3x.html | 12 ++- +# doc/html/man/form.3x.html | 2 +# doc/html/man/infocmp.1m.html | 2 +# doc/html/man/infotocap.1m.html | 2 +# doc/html/man/menu.3x.html | 2 +# doc/html/man/ncurses.3x.html | 2 +# doc/html/man/ncurses6-config.1.html | 2 +# doc/html/man/panel.3x.html | 2 +# doc/html/man/tabs.1.html | 2 +# doc/html/man/terminfo.5.html | 2 +# doc/html/man/tic.1m.html | 2 +# doc/html/man/toe.1m.html | 2 +# doc/html/man/tput.1.html | 2 +# doc/html/man/tset.1.html | 2 +# man/curs_getstr.3x | 58 +++++++++++++-- +# man/curs_window.3x | 31 +++++++- +# 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 +# 30 files changed, 200 insertions(+), 89 deletions(-) +# ------------------------------------------------------------------------------ +Index: NEWS +Prereq: 1.3662 +--- ncurses-6.2-20210508+/NEWS 2021-05-08 23:37:13.000000000 +0000 ++++ ncurses-6.2-20210515/NEWS 2021-05-15 23:59:31.000000000 +0000 +@@ -26,7 +26,7 @@ + -- sale, use or other dealings in this Software without prior written -- + -- authorization. -- + ------------------------------------------------------------------------------- +--- $Id: NEWS,v 1.3662 2021/05/08 23:37:13 tom Exp $ ++-- $Id: NEWS,v 1.3665 2021/05/15 23:59:31 tom Exp $ + ------------------------------------------------------------------------------- + + This is a log of changes that ncurses has gone through since Zeyd started +@@ -46,10 +46,14 @@ + Changes through 1.9.9e did not credit all contributions; + it is not possible to add this information. + ++20210515 ++ + improve manual pages for wgetnstr, newwin (prompted by ++ report/testcase by Bill Gray). ++ + 20210508 + + modify tputs' error check to allow it to be used without first + calling tgetent or setupterm, noting that terminfo initialization +- is requires for supporting the terminfo delay feature (report by ++ is required for supporting the terminfo delay feature (report by + Sebastiano Vigna). + + fix several warnings from clang --analyze + + add null-pointer check in comp_parse.c, when a "use=" clause refers +Index: VERSION +--- ncurses-6.2-20210508+/VERSION 2021-05-08 13:20:24.000000000 +0000 ++++ ncurses-6.2-20210515/VERSION 2021-05-15 09:37:23.000000000 +0000 +@@ -1 +1 @@ +-5:0:10 6.2 20210508 ++5:0:10 6.2 20210515 +Index: dist.mk +Prereq: 1.1414 +--- ncurses-6.2-20210508+/dist.mk 2021-05-08 13:20:24.000000000 +0000 ++++ ncurses-6.2-20210515/dist.mk 2021-05-15 09:37:23.000000000 +0000 +@@ -26,7 +26,7 @@ + # use or other dealings in this Software without prior written # + # authorization. # + ############################################################################## +-# $Id: dist.mk,v 1.1414 2021/05/08 13:20:24 tom Exp $ ++# $Id: dist.mk,v 1.1415 2021/05/15 09:37:23 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 = 2 +-NCURSES_PATCH = 20210508 ++NCURSES_PATCH = 20210515 + + # We don't append the patch to the version, since this only applies to releases + VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) +Index: doc/html/man/adacurses6-config.1.html +--- ncurses-6.2-20210508+/doc/html/man/adacurses6-config.1.html 2021-04-03 23:06:57.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/adacurses6-config.1.html 2021-05-16 00:01:19.000000000 +0000 +@@ -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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + +Index: doc/html/man/captoinfo.1m.html +--- ncurses-6.2-20210508+/doc/html/man/captoinfo.1m.html 2021-04-03 23:06:57.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/captoinfo.1m.html 2021-05-16 00:01:19.000000000 +0000 +@@ -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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/clear.1.html +--- ncurses-6.2-20210508+/doc/html/man/clear.1.html 2021-04-03 23:06:57.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/clear.1.html 2021-05-16 00:01:19.000000000 +0000 +@@ -150,7 +150,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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + +Index: doc/html/man/curs_getstr.3x.html +--- ncurses-6.2-20210508+/doc/html/man/curs_getstr.3x.html 2020-10-18 00:48:14.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/curs_getstr.3x.html 2021-05-16 00:01:20.000000000 +0000 +@@ -1,6 +1,6 @@ + <!-- + **************************************************************************** +- * Copyright 2018-2019,2020 Thomas E. Dickey * ++ * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2010,2017 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_getstr.3x,v 1.31 2020/10/18 00:27:44 tom Exp @ ++ * @Id: curs_getstr.3x,v 1.32 2021/05/15 23:37:18 tom Exp @ + * X/Open says also until EOf + * X/Open says then an EOS is added to the result + * X/Open doesn't mention n<0 +@@ -74,35 +74,44 @@ + not included in the returned string). The resulting value is placed in + the area pointed to by the character pointer <EM>str</EM>, followed by a NUL. + +- <STRONG>wgetnstr</STRONG> reads at most <EM>n</EM> characters, thus preventing a possible over- +- flow of the input buffer. Any attempt to enter more characters (other +- than the terminating newline or carriage return) causes a beep. Func- +- tion keys also cause a beep and are ignored. The <STRONG>getnstr</STRONG> function +- reads from the <EM>stdscr</EM> default window. +- +- The user's erase and kill characters are interpreted. If keypad mode +- is on for the window, <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are both considered +- equivalent to the user's kill character. ++ The <STRONG>getnstr</STRONG> function reads from the <EM>stdscr</EM> default window. The other ++ functions, such as <STRONG>wgetnstr</STRONG>, read from the window given as a parameter. + +- Characters input are echoed only if <STRONG>echo</STRONG> is currently on. In that +- case, backspace is echoed as deletion of the previous character (typi- ++ <STRONG>getnstr</STRONG> reads at most <EM>n</EM> characters, thus preventing a possible overflow ++ of the input buffer. Any attempt to enter more characters (other than ++ the terminating newline or carriage return) causes a beep. Function ++ keys also cause a beep and are ignored. ++ ++ The user's <EM>erase</EM> and <EM>kill</EM> characters are interpreted: ++ ++ <STRONG>o</STRONG> The <EM>erase</EM> character (e.g., <STRONG>^H</STRONG>) erases the character at the end of ++ the buffer, moving the cursor to the left. ++ ++ If <EM>keypad</EM> mode is on for the window, <STRONG>KEY_LEFT</STRONG> and <STRONG>KEY_BACKSPACE</STRONG> are ++ both considered equivalent to the user's erase character. ++ ++ <STRONG>o</STRONG> The <EM>kill</EM> character (e.g., <STRONG>^U</STRONG>) erases the entire buffer, leaving the ++ cursor at the beginning of the buffer. ++ ++ Characters input are echoed only if <STRONG>echo</STRONG> is currently on. In that ++ case, backspace is echoed as deletion of the previous character (typi- + cally a left motion). + + + </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE> + All routines return the integer <STRONG>ERR</STRONG> upon failure and an <STRONG>OK</STRONG> (SVr4 speci- +- fies only "an integer value other than <STRONG>ERR</STRONG>") upon successful comple- ++ fies only "an integer value other than <STRONG>ERR</STRONG>") upon successful comple- + tion. + + X/Open defines no error conditions. + +- In this implementation, these functions return an error if the window ++ In this implementation, these functions return an error if the window + pointer is null, or if its timeout expires without having any data. + +- This implementation provides an extension as well. If a <STRONG>SIGWINCH</STRONG> in- ++ This implementation provides an extension as well. If a <STRONG>SIGWINCH</STRONG> in- + terrupts the function, it will return <STRONG>KEY_RESIZE</STRONG> rather than <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>. + +- Functions with a "mv" prefix first perform a cursor movement using ++ Functions with a "mv" prefix first perform a cursor movement using + <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if + the window pointer is null. + +@@ -112,66 +121,89 @@ + + + </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE> +- These functions are described in the XSI Curses standard, Issue 4. +- They read single-byte characters only. The standard does not define +- any error conditions. This implementation returns <STRONG>ERR</STRONG> if the window ++ These functions are described in the XSI Curses standard, Issue 4. ++ They read single-byte characters only. The standard does not define ++ any error conditions. This implementation returns <STRONG>ERR</STRONG> if the window + pointer is null, or if the lower-level <STRONG><A HREF="curs_getch.3x.html">wgetch(3x)</A></STRONG> call returns an <STRONG>ERR</STRONG>. + +- SVr3 and early SVr4 curses implementations did not reject function +- keys; the SVr4.0 documentation claimed that "special keys" (such as +- function keys, "home" key, "clear" key, <EM>etc</EM>.) are "interpreted", with- +- out giving details. It lied. In fact, the "character" value appended +- to the string by those implementations was predictable but not useful ++ SVr3 and early SVr4 curses implementations did not reject function ++ keys; the SVr4.0 documentation claimed that "special keys" (such as ++ function keys, "home" key, "clear" key, <EM>etc</EM>.) are "interpreted", with- ++ out giving details. It lied. In fact, the "character" value appended ++ to the string by those implementations was predictable but not useful + (being, in fact, the low-order eight bits of the key's KEY_ value). + +- The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were present but not ++ The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were present but not + documented in SVr4. + + X/Open Curses, Issue 5 (2007) stated that these functions "read at most +- <EM>n</EM> bytes" but did not state whether the terminating NUL is counted in +- that limit. X/Open Curses, Issue 7 (2009) changed that to say they ++ <EM>n</EM> bytes" but did not state whether the terminating NUL is counted in ++ that limit. X/Open Curses, Issue 7 (2009) changed that to say they + "read at most <EM>n</EM>-1 bytes" to allow for the terminating NUL. As of 2018, + some implementations do, some do not count it: + +- <STRONG>o</STRONG> ncurses 6.1 and PDCurses do not count the NUL in the given limit, ++ <STRONG>o</STRONG> ncurses 6.1 and PDCurses do not count the NUL in the given limit, + while + + <STRONG>o</STRONG> Solaris SVr4 and NetBSD curses count the NUL as part of the limit. + +- <STRONG>o</STRONG> Solaris xcurses provides both: its wide-character <STRONG>wget_nstr</STRONG> re- ++ <STRONG>o</STRONG> Solaris xcurses provides both: its wide-character <STRONG>wget_nstr</STRONG> re- + serves a NUL, but its <STRONG>wgetnstr</STRONG> does not count the NUL consistently. + + In SVr4 curses, a negative value of <EM>n</EM> tells <STRONG>wgetnstr</STRONG> to assume that the +- caller's buffer is large enough to hold the result, i.e., to act like +- <STRONG>wgetstr</STRONG>. X/Open Curses does not mention this (or anything related to +- negative or zero values of <EM>n</EM>), however most implementations use the ++ caller's buffer is large enough to hold the result, i.e., to act like ++ <STRONG>wgetstr</STRONG>. X/Open Curses does not mention this (or anything related to ++ negative or zero values of <EM>n</EM>), however most implementations use the + feature, with different limits: + +- <STRONG>o</STRONG> Solaris SVr4 curses and PDCurses limit the result to 255 bytes. ++ <STRONG>o</STRONG> Solaris SVr4 curses and PDCurses limit the result to 255 bytes. + Other Unix systems than Solaris are likely to use the same limit. + + <STRONG>o</STRONG> Solaris xcurses limits the result to <STRONG>LINE_MAX</STRONG> bytes. + +- <STRONG>o</STRONG> NetBSD 7 assumes no particular limit for the result from <STRONG>wgetstr</STRONG>. +- However, it limits the <STRONG>wgetnstr</STRONG> parameter <EM>n</EM> to ensure that it is ++ <STRONG>o</STRONG> NetBSD 7 assumes no particular limit for the result from <STRONG>wgetstr</STRONG>. ++ However, it limits the <STRONG>wgetnstr</STRONG> parameter <EM>n</EM> to ensure that it is + greater than zero. + +- A comment in NetBSD's source code states that this is specified in ++ A comment in NetBSD's source code states that this is specified in + SUSv2. + +- <STRONG>o</STRONG> ncurses (before 6.2) assumes no particular limit for the result +- from <STRONG>wgetstr</STRONG>, and treats the <EM>n</EM> parameter of <STRONG>wgetnstr</STRONG> like SVr4 ++ <STRONG>o</STRONG> ncurses (before 6.2) assumes no particular limit for the result ++ from <STRONG>wgetstr</STRONG>, and treats the <EM>n</EM> parameter of <STRONG>wgetnstr</STRONG> like SVr4 + curses. + +- <STRONG>o</STRONG> ncurses 6.2 uses <STRONG>LINE_MAX</STRONG>, or a larger (system-dependent) value +- which the <STRONG>sysconf</STRONG> function may provide. If neither <STRONG>LINE_MAX</STRONG> or +- <STRONG>sysconf</STRONG> is available, ncurses uses the POSIX value for <STRONG>LINE_MAX</STRONG> (a +- 2048 byte limit). In either case, it reserves a byte for the ter- ++ <STRONG>o</STRONG> ncurses 6.2 uses <STRONG>LINE_MAX</STRONG>, or a larger (system-dependent) value ++ which the <STRONG>sysconf</STRONG> function may provide. If neither <STRONG>LINE_MAX</STRONG> or ++ <STRONG>sysconf</STRONG> is available, ncurses uses the POSIX value for <STRONG>LINE_MAX</STRONG> (a ++ 2048 byte limit). In either case, it reserves a byte for the ter- + minating NUL. + ++ Although <STRONG>getnstr</STRONG> is equivalent to a series of calls to <STRONG>getch</STRONG>, it also ++ makes changes to the curses modes to allow simple editing of the input ++ buffer: ++ ++ <STRONG>o</STRONG> <STRONG>getnstr</STRONG> saves the current value of the <STRONG>nl</STRONG>, <STRONG>echo</STRONG>, <STRONG>raw</STRONG> and <STRONG>cbreak</STRONG> ++ modes, and sets <STRONG>nl</STRONG>, <STRONG>noecho</STRONG>, <STRONG>noraw</STRONG>, and <STRONG>cbreak</STRONG>. ++ ++ <STRONG>getnstr</STRONG> handles the echoing of characters, rather than relying on ++ the caller to set an appropriate mode. ++ ++ <STRONG>o</STRONG> It also obtains the <EM>erase</EM> and <EM>kill</EM> characters from <STRONG>erasechar</STRONG> and ++ <STRONG>killchar</STRONG>, respectively. ++ ++ <STRONG>o</STRONG> On return, <STRONG>getnstr</STRONG> restores the modes to their previous values. ++ ++ Other implementations differ. While they may set the <EM>echo</EM> mode, they ++ do not modify the <EM>raw</EM> mode, and may take the <EM>cbreak</EM> mode set by the ++ caller into account when deciding whether to handle echoing within ++ <STRONG>getnstr</STRONG> or as a side-effect of the <STRONG>getch</STRONG> calls. Because ncurses sets ++ these modes, its signal handlers for INTR and QUIT (e.g., <STRONG>^C</STRONG> or <STRONG>^\</STRONG>) may ++ catch a signal and stop the program, where other implementations allow ++ one to enter those characters in the buffer. ++ + + </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_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>. ++ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>, <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>. + + + +Index: doc/html/man/curs_window.3x.html +--- ncurses-6.2-20210508+/doc/html/man/curs_window.3x.html 2020-02-03 01:26:26.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/curs_window.3x.html 2021-05-16 00:01:21.000000000 +0000 +@@ -1,6 +1,6 @@ + <!-- + **************************************************************************** +- * Copyright 2020 Thomas E. Dickey * ++ * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2015,2016 Free Software Foundation, Inc. * + * * + * Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + * sale, use or other dealings in this Software without prior written * + * authorization. * + **************************************************************************** +- * @Id: curs_window.3x,v 1.21 2020/02/02 23:34:34 tom Exp @ ++ * @Id: curs_window.3x,v 1.22 2021/05/15 23:57:14 tom Exp @ + --> + <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> + <HTML> +@@ -88,6 +88,14 @@ + + A new full-screen window is created by calling <STRONG>newwin(0,0,0,0)</STRONG>. + ++ Regardless of the function used for creating a new window (e.g., ++ <STRONG>newwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>newpad</STRONG>), rather than a duplicate (with <STRONG>dupwin</STRONG>), ++ all of the window modes are initialized to the default values. These ++ functions set window modes after a window is created: ++ ++ idcok, idlok, immedok, keypad, leaveok, nodelay, scrollok, ++ setscrreg, syncok, wbkgdset, wbkgrndset, and wtimeout ++ + + </PRE><H3><a name="h3-delwin">delwin</a></H3><PRE> + Calling <STRONG>delwin</STRONG> deletes the named window, freeing all memory associated +Index: doc/html/man/form.3x.html +--- ncurses-6.2-20210508+/doc/html/man/form.3x.html 2021-04-03 23:06:59.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/form.3x.html 2021-05-16 00:01:21.000000000 +0000 +@@ -248,7 +248,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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + +Index: doc/html/man/infocmp.1m.html +--- ncurses-6.2-20210508+/doc/html/man/infocmp.1m.html 2021-04-03 23:07:01.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/infocmp.1m.html 2021-05-16 00:01:22.000000000 +0000 +@@ -514,7 +514,7 @@ + + https://invisible-island.net/ncurses/tctest.html + +- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/infotocap.1m.html +--- ncurses-6.2-20210508+/doc/html/man/infotocap.1m.html 2021-04-03 23:07:01.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/infotocap.1m.html 2021-05-16 00:01:22.000000000 +0000 +@@ -91,7 +91,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="tic.1m.html">tic(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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/menu.3x.html +--- ncurses-6.2-20210508+/doc/html/man/menu.3x.html 2021-04-03 23:07:01.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/menu.3x.html 2021-05-16 00:01:22.000000000 +0000 +@@ -223,7 +223,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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + +Index: doc/html/man/ncurses.3x.html +--- ncurses-6.2-20210508+/doc/html/man/ncurses.3x.html 2021-04-03 23:07:02.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/ncurses.3x.html 2021-05-16 00:01:23.000000000 +0000 +@@ -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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + The <STRONG>ncurses</STRONG> library emulates the curses library of System V Release 4 + UNIX, and XPG4 (X/Open Portability Guide) curses (also known as XSI +Index: doc/html/man/ncurses6-config.1.html +--- ncurses-6.2-20210508+/doc/html/man/ncurses6-config.1.html 2021-04-03 23:07:02.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/ncurses6-config.1.html 2021-05-16 00:01:23.000000000 +0000 +@@ -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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + +Index: doc/html/man/panel.3x.html +--- ncurses-6.2-20210508+/doc/html/man/panel.3x.html 2021-04-03 23:07:02.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/panel.3x.html 2021-05-16 00:01:23.000000000 +0000 +@@ -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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/tabs.1.html +--- ncurses-6.2-20210508+/doc/html/man/tabs.1.html 2021-04-03 23:07:02.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/tabs.1.html 2021-05-16 00:01:23.000000000 +0000 +@@ -207,7 +207,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="tset.1.html">tset(1)</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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + +Index: doc/html/man/terminfo.5.html +--- ncurses-6.2-20210508+/doc/html/man/terminfo.5.html 2021-04-03 23:07:02.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/terminfo.5.html 2021-05-16 00:01:24.000000000 +0000 +@@ -106,7 +106,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 20210403). ++ This manual describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + </PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE> +Index: doc/html/man/tic.1m.html +--- ncurses-6.2-20210508+/doc/html/man/tic.1m.html 2021-04-03 23:07:02.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/tic.1m.html 2021-05-16 00:01:24.000000000 +0000 +@@ -461,7 +461,7 @@ + <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + </PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE> +Index: doc/html/man/toe.1m.html +--- ncurses-6.2-20210508+/doc/html/man/toe.1m.html 2021-04-03 23:07:02.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/toe.1m.html 2021-05-16 00:01:24.000000000 +0000 +@@ -171,7 +171,7 @@ + <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + +Index: doc/html/man/tput.1.html +--- ncurses-6.2-20210508+/doc/html/man/tput.1.html 2021-04-03 23:07:02.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/tput.1.html 2021-05-16 00:01:24.000000000 +0000 +@@ -526,7 +526,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="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>. + +- This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + +Index: doc/html/man/tset.1.html +--- ncurses-6.2-20210508+/doc/html/man/tset.1.html 2021-04-03 23:07:03.000000000 +0000 ++++ ncurses-6.2-20210515/doc/html/man/tset.1.html 2021-05-16 00:01:24.000000000 +0000 +@@ -391,7 +391,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 20210403). ++ This describes <STRONG>ncurses</STRONG> version 6.2 (patch 20210515). + + + +Index: man/curs_getstr.3x +Prereq: 1.31 +--- ncurses-6.2-20210508+/man/curs_getstr.3x 2020-10-18 00:27:44.000000000 +0000 ++++ ncurses-6.2-20210515/man/curs_getstr.3x 2021-05-15 23:37:18.000000000 +0000 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright 2018-2019,2020 Thomas E. Dickey * ++.\" Copyright 2018-2020,2021 Thomas E. Dickey * + .\" Copyright 1998-2010,2017 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,7 +27,7 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_getstr.3x,v 1.31 2020/10/18 00:27:44 tom Exp $ ++.\" $Id: curs_getstr.3x,v 1.32 2021/05/15 23:37:18 tom Exp $ + .TH curs_getstr 3X "" + .ie \n(.g .ds `` \(lq + .el .ds `` `` +@@ -80,19 +80,29 @@ + area pointed to by the character pointer \fIstr\fR, + followed by a NUL. + .PP +-\fBwgetnstr\fR reads at most \fIn\fR characters, thus preventing a possible ++The \fBgetnstr\fR function reads ++from the \fIstdscr\fR default window. ++The other functions, such as \fBwgetnstr\fP, ++read from the window given as a parameter. ++.PP ++\fBgetnstr\fR reads at most \fIn\fR characters, thus preventing a possible + overflow of the input buffer. + Any attempt to enter more characters (other + than the terminating newline or carriage return) causes a beep. + Function + keys also cause a beep and are ignored. +-The \fBgetnstr\fR function reads +-from the \fIstdscr\fR default window. + .PP +-The user's erase and kill characters are interpreted. +-If keypad +-mode is on for the window, \fBKEY_LEFT\fR and \fBKEY_BACKSPACE\fR +-are both considered equivalent to the user's kill character. ++The user's \fIerase\fP and \fIkill\fP characters are interpreted: ++.bP ++The \fIerase\fP character (e.g., \fB^H\fP) erases the character ++at the end of the buffer, moving the cursor to the left. ++.IP ++If \fIkeypad\fP mode is on for the window, ++\fBKEY_LEFT\fR and \fBKEY_BACKSPACE\fR ++are both considered equivalent to the user's erase character. ++.bP ++The \fIkill\fP character (e.g., \fB^U\fP) erases the entire buffer, ++leaving the cursor at the beginning of the buffer. + .PP + Characters input are echoed only if \fBecho\fR is currently on. + In that case, +@@ -187,7 +197,37 @@ + If neither \fBLINE_MAX\fP or \fBsysconf\fP is available, + ncurses uses the POSIX value for \fBLINE_MAX\fP (a 2048 byte limit). + In either case, it reserves a byte for the terminating NUL. ++.PP ++Although \fBgetnstr\fP is equivalent to a series of calls to \fBgetch\fP, ++it also makes changes to the curses modes to allow simple editing of ++the input buffer: ++.bP ++\fBgetnstr\fP saves the current value of the \fBnl\fP, \fBecho\fP, ++\fBraw\fP and \fBcbreak\fP modes, and sets ++\fBnl\fP, ++\fBnoecho\fP, ++\fBnoraw\fP, and ++\fBcbreak\fP. ++.IP ++\fBgetnstr\fP handles the echoing of characters, ++rather than relying on the caller to set an appropriate mode. ++.bP ++It also obtains the \fIerase\fP and \fIkill\fP characters ++from \fBerasechar\fP and \fBkillchar\fP, respectively. ++.bP ++On return, \fBgetnstr\fP restores the modes to their previous values. ++.PP ++Other implementations differ. ++While they may set the \fIecho\fP mode, ++they do not modify the \fIraw\fP mode, and may take the \fIcbreak\fP ++mode set by the caller into account when deciding whether to handle ++echoing within \fBgetnstr\fP or as a side-effect of the \fBgetch\fP calls. ++Because ncurses sets these modes, ++its signal handlers for INTR and QUIT ++(e.g., \fB^C\fP or \fB^\\\fP) may catch a signal and stop the program, ++where other implementations allow one to enter those characters in the buffer. + .SH SEE ALSO + \fBcurses\fR(3X), + \fBcurs_getch\fR(3X), ++\fBcurs_termattrs\fR(3X), + \fBcurs_variables\fR(3X). +Index: man/curs_window.3x +Prereq: 1.21 +--- ncurses-6.2-20210508+/man/curs_window.3x 2020-02-02 23:34:34.000000000 +0000 ++++ ncurses-6.2-20210515/man/curs_window.3x 2021-05-15 23:57:14.000000000 +0000 +@@ -1,5 +1,5 @@ + .\"*************************************************************************** +-.\" Copyright 2020 Thomas E. Dickey * ++.\" Copyright 2020,2021 Thomas E. Dickey * + .\" Copyright 1998-2015,2016 Free Software Foundation, Inc. * + .\" * + .\" Permission is hereby granted, free of charge, to any person obtaining a * +@@ -27,8 +27,12 @@ + .\" authorization. * + .\"*************************************************************************** + .\" +-.\" $Id: curs_window.3x,v 1.21 2020/02/02 23:34:34 tom Exp $ ++.\" $Id: curs_window.3x,v 1.22 2021/05/15 23:57:14 tom Exp $ + .TH curs_window 3X "" ++.de bP ++.ie n .IP \(bu 4 ++.el .IP \(bu 2 ++.. + .na + .hy 0 + .SH NAME +@@ -97,6 +101,29 @@ + .RE + .PP + A new full-screen window is created by calling \fBnewwin(0,0,0,0)\fR. ++.PP ++Regardless of the function used for creating a new window ++(e.g., \fBnewwin\fP, \fBsubwin\fP, \fBderwin\fP, \fBnewpad\fP), ++rather than a duplicate (with \fBdupwin\fP), ++all of the window modes are initialized to the default values. ++These functions set window modes after a window is created: ++.RS ++.na ++.PP ++idcok, ++idlok, ++immedok, ++keypad, ++leaveok, ++nodelay, ++scrollok, ++setscrreg, ++syncok, ++wbkgdset, ++wbkgrndset, and ++wtimeout ++.RE ++.ad + .SS delwin + .PP + Calling \fBdelwin\fR deletes the named window, freeing all memory +Index: package/debian-mingw/changelog +--- ncurses-6.2-20210508+/package/debian-mingw/changelog 2021-05-08 13:20:24.000000000 +0000 ++++ ncurses-6.2-20210515/package/debian-mingw/changelog 2021-05-15 09:37:23.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.2+20210508) unstable; urgency=low ++ncurses6 (6.2+20210515) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 08 May 2021 09:20:24 -0400 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 15 May 2021 05:37:23 -0400 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian-mingw64/changelog +--- ncurses-6.2-20210508+/package/debian-mingw64/changelog 2021-05-08 13:20:24.000000000 +0000 ++++ ncurses-6.2-20210515/package/debian-mingw64/changelog 2021-05-15 09:37:23.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.2+20210508) unstable; urgency=low ++ncurses6 (6.2+20210515) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 08 May 2021 09:20:24 -0400 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 15 May 2021 05:37:23 -0400 + + ncurses6 (5.9-20131005) unstable; urgency=low + +Index: package/debian/changelog +--- ncurses-6.2-20210508+/package/debian/changelog 2021-05-08 13:20:24.000000000 +0000 ++++ ncurses-6.2-20210515/package/debian/changelog 2021-05-15 09:37:23.000000000 +0000 +@@ -1,8 +1,8 @@ +-ncurses6 (6.2+20210508) unstable; urgency=low ++ncurses6 (6.2+20210515) unstable; urgency=low + + * latest weekly patch + +- -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 08 May 2021 09:20:24 -0400 ++ -- Thomas E. Dickey <dic...@invisible-island.net> Sat, 15 May 2021 05:37:23 -0400 + + ncurses6 (5.9-20120608) unstable; urgency=low + +Index: package/mingw-ncurses.nsi +Prereq: 1.457 +--- ncurses-6.2-20210508+/package/mingw-ncurses.nsi 2021-05-08 13:20:24.000000000 +0000 ++++ ncurses-6.2-20210515/package/mingw-ncurses.nsi 2021-05-15 09:37:23.000000000 +0000 +@@ -1,4 +1,4 @@ +-; $Id: mingw-ncurses.nsi,v 1.457 2021/05/08 13:20:24 tom Exp $ ++; $Id: mingw-ncurses.nsi,v 1.458 2021/05/15 09:37:23 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 "2021" +-!define VERSION_MMDD "0508" ++!define VERSION_MMDD "0515" + !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} + + !define MY_ABI "5" +Index: package/mingw-ncurses.spec +--- ncurses-6.2-20210508+/package/mingw-ncurses.spec 2021-05-08 13:20:24.000000000 +0000 ++++ ncurses-6.2-20210515/package/mingw-ncurses.spec 2021-05-15 09:37:23.000000000 +0000 +@@ -3,7 +3,7 @@ + Summary: shared libraries for terminal handling + Name: mingw32-ncurses6 + Version: 6.2 +-Release: 20210508 ++Release: 20210515 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: package/ncurses.spec +--- ncurses-6.2-20210508+/package/ncurses.spec 2021-05-08 13:20:24.000000000 +0000 ++++ ncurses-6.2-20210515/package/ncurses.spec 2021-05-15 09:37:23.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: shared libraries for terminal handling + Name: ncurses6 + Version: 6.2 +-Release: 20210508 ++Release: 20210515 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz +Index: package/ncursest.spec +--- ncurses-6.2-20210508+/package/ncursest.spec 2021-05-08 13:20:24.000000000 +0000 ++++ ncurses-6.2-20210515/package/ncursest.spec 2021-05-15 09:37:23.000000000 +0000 +@@ -1,7 +1,7 @@ + Summary: Curses library with POSIX thread support. + Name: ncursest6 + Version: 6.2 +-Release: 20210508 ++Release: 20210515 + License: X11 + Group: Development/Libraries + Source: ncurses-%{version}-%{release}.tgz