Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ncurses for openSUSE:Factory checked 
in at 2022-03-09 18:46:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ncurses (Old)
 and      /work/SRC/openSUSE:Factory/.ncurses.new.2349 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ncurses"

Wed Mar  9 18:46:30 2022 rev:208 rq:959802 version:6.3.MACRO

Changes:
--------
--- /work/SRC/openSUSE:Factory/ncurses/ncurses.changes  2022-02-27 
22:42:39.490622864 +0100
+++ /work/SRC/openSUSE:Factory/.ncurses.new.2349/ncurses.changes        
2022-03-11 11:47:56.298830337 +0100
@@ -1,0 +2,14 @@
+Mon Feb 28 08:06:31 UTC 2022 - Dr. Werner Fink <wer...@suse.de>
+
+- Add ncurses patch 20220226
+  + fix issues found with coverity:
+    + rewrite canonical_name() function of infocmp to ensure buffer size
+    + corrected use of original tty-modes in tput init/reset subcommands
+    + modify tabs program to limit tab-stop values to max-columns
+    + add limit-checks for palette rgb values in test/ncurses.c
+  + add a few null-pointer checks to help with static-analysis.
+  + enforce limit on number of soft-keys used in c++ binding.
+  + adjust a buffer-limit in write_entry.c to quiet a bogus warning from
+    gcc 12.0.1
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ncurses-6.3-patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches/ncurses-6.3-20220226.patch 
new/patches/ncurses-6.3-20220226.patch
--- old/patches/ncurses-6.3-20220226.patch      1970-01-01 01:00:00.000000000 
+0100
+++ new/patches/ncurses-6.3-20220226.patch      2022-02-28 09:02:54.303659500 
+0100
@@ -0,0 +1,566 @@
+# ncurses 6.3 - patch 20220226 - Thomas E. Dickey
+#
+# 
------------------------------------------------------------------------------
+#
+# Ncurses 6.3 is at
+#      ftp://ftp.invisible-island.net/ncurses/
+#      https://invisible-mirror.net/archives/ncurses/
+#      https://ftp.gnu.org/gnu/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-20220226.patch.gz
+# patch by Thomas E. Dickey <dic...@invisible-island.net>
+# created  Sun Feb 27 01:00:55 UTC 2022
+# 
------------------------------------------------------------------------------
+# NEWS                             |   13 ++++++-
+# VERSION                          |    2 -
+# c++/cursslk.cc                   |    6 ++-
+# dist.mk                          |    4 +-
+# ncurses/tinfo/alloc_entry.c      |   67 ++++++++++++++++++++-----------------
+# ncurses/tinfo/write_entry.c      |    6 +--
+# 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 -
+# progs/infocmp.c                  |   20 ++++++-----
+# progs/tabs.c                     |    8 ++--
+# progs/tput.c                     |   14 +++++--
+# test/ncurses.c                   |    8 +++-
+# 17 files changed, 104 insertions(+), 66 deletions(-)
+# 
------------------------------------------------------------------------------
+Index: NEWS
+Prereq:  1.3780 
+--- ncurses-6.3-20220219+/NEWS 2022-02-20 00:40:32.000000000 +0000
++++ ncurses-6.3-20220226/NEWS  2022-02-26 23:50:53.000000000 +0000
+@@ -26,7 +26,7 @@
+ -- sale, use or other dealings in this Software without prior written        
--
+ -- authorization.                                                            
--
+ 
-------------------------------------------------------------------------------
+--- $Id: NEWS,v 1.3780 2022/02/20 00:40:32 tom Exp $
++-- $Id: NEWS,v 1.3782 2022/02/26 23:50:53 tom Exp $
+ 
-------------------------------------------------------------------------------
+ 
+ This is a log of changes that ncurses has gone through since Zeyd started
+@@ -46,6 +46,17 @@
+ Changes through 1.9.9e did not credit all contributions;
+ it is not possible to add this information.
+ 
++20220226
++      + fix issues found with coverity:
++        + rewrite canonical_name() function of infocmp to ensure buffer size
++        + corrected use of original tty-modes in tput init/reset subcommands
++        + modify tabs program to limit tab-stop values to max-columns
++        + add limit-checks for palette rgb values in test/ncurses.c
++      + add a few null-pointer checks to help with static-analysis.
++      + enforce limit on number of soft-keys used in c++ binding.
++      + adjust a buffer-limit in write_entry.c to quiet a bogus warning from
++        gcc 12.0.1
++
+ 20220219
+       + expanded description in man/resizeterm.3x
+       + additional workaround for ImageMagick in test/picsmap.c
+Index: VERSION
+--- ncurses-6.3-20220219+/VERSION      2022-02-19 12:13:47.000000000 +0000
++++ ncurses-6.3-20220226/VERSION       2022-02-26 12:23:15.000000000 +0000
+@@ -1 +1 @@
+-5:0:10        6.3     20220219
++5:0:10        6.3     20220226
+Index: c++/cursslk.cc
+Prereq:  1.19 
+--- ncurses-6.3-20220219+/c++/cursslk.cc       2020-07-18 19:57:11.000000000 
+0000
++++ ncurses-6.3-20220226/c++/cursslk.cc        2022-02-26 17:57:23.000000000 
+0000
+@@ -1,6 +1,6 @@
+ // * this is for making emacs happy: -*-Mode: C++;-*-
+ /****************************************************************************
+- * Copyright 2019,2020 Thomas E. Dickey                                     *
++ * Copyright 2019-2020,2022 Thomas E. Dickey                                *
+  * Copyright 1998-2005,2012 Free Software Foundation, Inc.                  *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+@@ -36,7 +36,7 @@
+ #include "cursslk.h"
+ #include "cursesapp.h"
+ 
+-MODULE_ID("$Id: cursslk.cc,v 1.19 2020/07/18 19:57:11 anonymous.maarten Exp 
$")
++MODULE_ID("$Id: cursslk.cc,v 1.20 2022/02/26 17:57:23 tom Exp $")
+ 
+ Soft_Label_Key_Set::Soft_Label_Key&
+   Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text)
+@@ -56,6 +56,8 @@
+ 
+ void Soft_Label_Key_Set::init()
+ {
++  if (num_labels > 12)
++      num_labels = 12;
+   slk_array = new Soft_Label_Key[num_labels];
+   for(int i=0; i < num_labels; i++) {
+     slk_array[i].num = i+1;
+Index: dist.mk
+Prereq:  1.1467 
+--- ncurses-6.3-20220219+/dist.mk      2022-02-19 12:13:47.000000000 +0000
++++ ncurses-6.3-20220226/dist.mk       2022-02-26 12:23:15.000000000 +0000
+@@ -26,7 +26,7 @@
+ # use or other dealings in this Software without prior written               #
+ # authorization.                                                             #
+ ##############################################################################
+-# $Id: dist.mk,v 1.1467 2022/02/19 12:13:47 tom Exp $
++# $Id: dist.mk,v 1.1468 2022/02/26 12:23:15 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 = 20220219
++NCURSES_PATCH = 20220226
+ 
+ # We don't append the patch to the version, since this only applies to 
releases
+ VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
+Index: ncurses/tinfo/alloc_entry.c
+Prereq:  1.66 
+--- ncurses-6.3-20220219+/ncurses/tinfo/alloc_entry.c  2021-08-08 
00:09:37.000000000 +0000
++++ ncurses-6.3-20220226/ncurses/tinfo/alloc_entry.c   2022-02-26 
22:19:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright 2018-2020,2021 Thomas E. Dickey                                *
++ * Copyright 2018-2021,2022 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.66 2021/08/08 00:09:37 tom Exp $")
++MODULE_ID("$Id: alloc_entry.c,v 1.68 2022/02/26 22:19:31 tom Exp $")
+ 
+ #define ABSENT_OFFSET    -1
+ #define CANCELLED_OFFSET -2
+@@ -62,16 +62,18 @@
+ _nc_init_entry(ENTRY * const tp)
+ /* initialize a terminal type data block */
+ {
++    if (tp == NULL) {
+ #if NO_LEAKS
+-    if (tp == 0) {
+-      if (stringbuf != 0) {
++      if (stringbuf != NULL) {
+           FreeAndNull(stringbuf);
+       }
+       return;
+-    }
++#else
++      _nc_err_abort("_nc_init_entry called without initialization");
+ #endif
++    }
+ 
+-    if (stringbuf == 0)
++    if (stringbuf == NULL)
+       TYPE_MALLOC(char, (size_t) MAX_STRTAB, stringbuf);
+ 
+     next_free = 0;
+@@ -84,7 +86,7 @@
+ {
+     ENTRY *newp = typeCalloc(ENTRY, 1);
+ 
+-    if (newp != 0) {
++    if (newp != NULL) {
+       *newp = *oldp;
+       _nc_copy_termtype2(&(newp->tterm), &(oldp->tterm));
+     }
+@@ -99,26 +101,28 @@
+     size_t old_next_free = next_free;
+     size_t len;
+ 
+-    if (!VALID_STRING(string))
+-      string = "";
+-    len = strlen(string) + 1;
+-
+-    if (len == 1 && next_free != 0) {
+-      /*
+-       * Cheat a little by making an empty string point to the end of the
+-       * previous string.
+-       */
+-      if (next_free < MAX_STRTAB) {
+-          result = (stringbuf + next_free - 1);
++    if (stringbuf != NULL) {
++      if (!VALID_STRING(string))
++          string = "";
++      len = strlen(string) + 1;
++
++      if (len == 1 && next_free != 0) {
++          /*
++           * Cheat a little by making an empty string point to the end of the
++           * previous string.
++           */
++          if (next_free < MAX_STRTAB) {
++              result = (stringbuf + next_free - 1);
++          }
++      } else if (next_free + len < MAX_STRTAB) {
++          _nc_STRCPY(&stringbuf[next_free], string, MAX_STRTAB);
++          DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
++          DEBUG(7, ("at location %d", (int) next_free));
++          next_free += len;
++          result = (stringbuf + old_next_free);
++      } else {
++          _nc_warning("Too much data, some is lost: %s", string);
+       }
+-    } else if (next_free + len < MAX_STRTAB) {
+-      _nc_STRCPY(&stringbuf[next_free], string, MAX_STRTAB);
+-      DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
+-      DEBUG(7, ("at location %d", (int) next_free));
+-      next_free += len;
+-      result = (stringbuf + old_next_free);
+-    } else {
+-      _nc_warning("Too much data, some is lost: %s", string);
+     }
+     return result;
+ }
+@@ -130,9 +134,14 @@
+     int offsets[MAX_ENTRY_SIZE / sizeof(short)];
+     int useoffsets[MAX_USES];
+     unsigned i, n;
+-    unsigned nuses = ep->nuses;
+-    TERMTYPE2 *tp = &(ep->tterm);
++    unsigned nuses;
++    TERMTYPE2 *tp;
++
++    if (ep == NULL || stringbuf == NULL)
++      _nc_err_abort("_nc_wrap_entry called without initialization");
+ 
++    nuses = ep->nuses;
++    tp = &(ep->tterm);
+     if (copy_strings) {
+       next_free = 0;          /* clear static storage */
+ 
+@@ -294,7 +303,7 @@
+ NCURSES_EXPORT(void)
+ _nc_alloc_entry_leaks(void)
+ {
+-    if (stringbuf != 0) {
++    if (stringbuf != NULL) {
+       FreeAndNull(stringbuf);
+     }
+     next_free = 0;
+Index: ncurses/tinfo/write_entry.c
+Prereq:  1.118 
+--- ncurses-6.3-20220219+/ncurses/tinfo/write_entry.c  2021-08-15 
20:07:11.000000000 +0000
++++ ncurses-6.3-20220226/ncurses/tinfo/write_entry.c   2022-02-26 
20:59:58.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright 2018-2020,2021 Thomas E. Dickey                                *
++ * Copyright 2018-2021,2022 Thomas E. Dickey                                *
+  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+@@ -51,7 +51,7 @@
+ #define TRACE_NUM(n)          /* nothing */
+ #endif
+ 
+-MODULE_ID("$Id: write_entry.c,v 1.118 2021/08/15 20:07:11 tom Exp $")
++MODULE_ID("$Id: write_entry.c,v 1.119 2022/02/26 20:59:58 tom Exp $")
+ 
+ static int total_written;
+ static int total_parts;
+@@ -145,7 +145,7 @@
+           rc = 0;
+       }
+     } else {
+-      if (strlen(top) + strlen(src) + 2 <= limit) {
++      if ((strlen(top) + strlen(src) + 6) <= limit) {
+           _nc_SPRINTF(dst, _nc_SLIMIT(limit) "%s/%s", top, src);
+           rc = 0;
+       }
+Index: package/debian-mingw/changelog
+--- ncurses-6.3-20220219+/package/debian-mingw/changelog       2022-02-19 
12:13:47.000000000 +0000
++++ ncurses-6.3-20220226/package/debian-mingw/changelog        2022-02-26 
12:23:15.000000000 +0000
+@@ -1,8 +1,8 @@
+-ncurses6 (6.3+20220219) unstable; urgency=low
++ncurses6 (6.3+20220226) unstable; urgency=low
+ 
+   * latest weekly patch
+ 
+- -- Thomas E. Dickey <dic...@invisible-island.net>  Sat, 19 Feb 2022 07:13:47 
-0500
++ -- Thomas E. Dickey <dic...@invisible-island.net>  Sat, 26 Feb 2022 07:23:15 
-0500
+ 
+ ncurses6 (5.9-20131005) unstable; urgency=low
+ 
+Index: package/debian-mingw64/changelog
+--- ncurses-6.3-20220219+/package/debian-mingw64/changelog     2022-02-19 
12:13:47.000000000 +0000
++++ ncurses-6.3-20220226/package/debian-mingw64/changelog      2022-02-26 
12:23:15.000000000 +0000
+@@ -1,8 +1,8 @@
+-ncurses6 (6.3+20220219) unstable; urgency=low
++ncurses6 (6.3+20220226) unstable; urgency=low
+ 
+   * latest weekly patch
+ 
+- -- Thomas E. Dickey <dic...@invisible-island.net>  Sat, 19 Feb 2022 07:13:47 
-0500
++ -- Thomas E. Dickey <dic...@invisible-island.net>  Sat, 26 Feb 2022 07:23:15 
-0500
+ 
+ ncurses6 (5.9-20131005) unstable; urgency=low
+ 
+Index: package/debian/changelog
+--- ncurses-6.3-20220219+/package/debian/changelog     2022-02-19 
12:13:47.000000000 +0000
++++ ncurses-6.3-20220226/package/debian/changelog      2022-02-26 
12:23:15.000000000 +0000
+@@ -1,8 +1,8 @@
+-ncurses6 (6.3+20220219) unstable; urgency=low
++ncurses6 (6.3+20220226) unstable; urgency=low
+ 
+   * latest weekly patch
+ 
+- -- Thomas E. Dickey <dic...@invisible-island.net>  Sat, 19 Feb 2022 07:13:47 
-0500
++ -- Thomas E. Dickey <dic...@invisible-island.net>  Sat, 26 Feb 2022 07:23:15 
-0500
+ 
+ ncurses6 (5.9-20120608) unstable; urgency=low
+ 
+Index: package/mingw-ncurses.nsi
+Prereq:  1.507 
+--- ncurses-6.3-20220219+/package/mingw-ncurses.nsi    2022-02-19 
12:13:47.000000000 +0000
++++ ncurses-6.3-20220226/package/mingw-ncurses.nsi     2022-02-26 
12:23:15.000000000 +0000
+@@ -1,4 +1,4 @@
+-; $Id: mingw-ncurses.nsi,v 1.507 2022/02/19 12:13:47 tom Exp $
++; $Id: mingw-ncurses.nsi,v 1.508 2022/02/26 12:23:15 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  "2022"
+-!define VERSION_MMDD  "0219"
++!define VERSION_MMDD  "0226"
+ !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
+ 
+ !define MY_ABI   "5"
+Index: package/mingw-ncurses.spec
+--- ncurses-6.3-20220219+/package/mingw-ncurses.spec   2022-02-19 
12:13:47.000000000 +0000
++++ ncurses-6.3-20220226/package/mingw-ncurses.spec    2022-02-26 
12:23:15.000000000 +0000
+@@ -3,7 +3,7 @@
+ Summary: shared libraries for terminal handling
+ Name: mingw32-ncurses6
+ Version: 6.3
+-Release: 20220219
++Release: 20220226
+ License: X11
+ Group: Development/Libraries
+ Source: ncurses-%{version}-%{release}.tgz
+Index: package/ncurses.spec
+--- ncurses-6.3-20220219+/package/ncurses.spec 2022-02-19 12:13:47.000000000 
+0000
++++ ncurses-6.3-20220226/package/ncurses.spec  2022-02-26 12:23:15.000000000 
+0000
+@@ -1,7 +1,7 @@
+ Summary: shared libraries for terminal handling
+ Name: ncurses6
+ Version: 6.3
+-Release: 20220219
++Release: 20220226
+ License: X11
+ Group: Development/Libraries
+ Source: ncurses-%{version}-%{release}.tgz
+Index: package/ncursest.spec
+--- ncurses-6.3-20220219+/package/ncursest.spec        2022-02-19 
12:13:47.000000000 +0000
++++ ncurses-6.3-20220226/package/ncursest.spec 2022-02-26 12:23:15.000000000 
+0000
+@@ -1,7 +1,7 @@
+ Summary: Curses library with POSIX thread support.
+ Name: ncursest6
+ Version: 6.3
+-Release: 20220219
++Release: 20220226
+ License: X11
+ Group: Development/Libraries
+ Source: ncurses-%{version}-%{release}.tgz
+Index: progs/infocmp.c
+Prereq:  1.151 
+--- ncurses-6.3-20220219+/progs/infocmp.c      2021-06-17 21:11:08.000000000 
+0000
++++ ncurses-6.3-20220226/progs/infocmp.c       2022-02-26 23:25:55.000000000 
+0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright 2020,2021 Thomas E. Dickey                                     *
++ * Copyright 2020-2021,2022 Thomas E. Dickey                                *
+  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+@@ -43,7 +43,7 @@
+ 
+ #include <dump_entry.h>
+ 
+-MODULE_ID("$Id: infocmp.c,v 1.151 2021/06/17 21:11:08 tom Exp $")
++MODULE_ID("$Id: infocmp.c,v 1.152 2022/02/26 23:25:55 tom Exp $")
+ 
+ #define MAX_STRING    1024    /* maximum formatted string */
+ 
+@@ -125,16 +125,20 @@
+ }
+ 
+ static char *
+-canonical_name(char *ptr, char *buf)
++canonical_name(char *source, char *target)
+ /* extract the terminal type's primary name */
+ {
+-    char *bp;
++    int limit = NAMESIZE;
+ 
+-    _nc_STRCPY(buf, ptr, NAMESIZE);
+-    if ((bp = strchr(buf, '|')) != 0)
+-      *bp = '\0';
++    while (--limit > 0) {
++      char ch = *source++;
++      if (ch == '|')
++          break;
++      *target++ = ch;
++    }
++    *target = '\0';
+ 
+-    return (buf);
++    return (target);
+ }
+ 
+ static bool
+Index: progs/tabs.c
+Prereq:  1.50 
+--- ncurses-6.3-20220219+/progs/tabs.c 2021-10-10 00:54:41.000000000 +0000
++++ ncurses-6.3-20220226/progs/tabs.c  2022-02-26 22:44:44.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright 2020,2021 Thomas E. Dickey                                     *
++ * Copyright 2020-2021,2022 Thomas E. Dickey                                *
+  * Copyright 2008-2016,2017 Free Software Foundation, Inc.                  *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+@@ -39,7 +39,7 @@
+ #include <progs.priv.h>
+ #include <tty_settings.h>
+ 
+-MODULE_ID("$Id: tabs.c,v 1.50 2021/10/10 00:54:41 tom Exp $")
++MODULE_ID("$Id: tabs.c,v 1.51 2022/02/26 22:44:44 tom Exp $")
+ 
+ static GCC_NORETURN void usage(void);
+ 
+@@ -128,7 +128,7 @@
+     int prior = 0;
+     int ch;
+ 
+-    if (result == 0)
++    if (result == NULL)
+       failed("decode_tabs");
+ 
+     if (margin < 0)
+@@ -138,6 +138,8 @@
+       if (isdigit(UChar(ch))) {
+           value *= 10;
+           value += (ch - '0');
++          if (value > max_cols)
++              value = max_cols;
+       } else if (ch == ',') {
+           result[n] = value + prior + margin;
+           if (n > 0 && result[n] <= result[n - 1]) {
+Index: progs/tput.c
+Prereq:  1.97 
+--- ncurses-6.3-20220219+/progs/tput.c 2021-10-02 18:09:23.000000000 +0000
++++ ncurses-6.3-20220226/progs/tput.c  2022-02-26 23:19:31.000000000 +0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright 2018-2020,2021 Thomas E. Dickey                                *
++ * Copyright 2018-2021,2022 Thomas E. Dickey                                *
+  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
+  *                                                                          *
+  * Permission is hereby granted, free of charge, to any person obtaining a  *
+@@ -47,7 +47,7 @@
+ #include <transform.h>
+ #include <tty_settings.h>
+ 
+-MODULE_ID("$Id: tput.c,v 1.97 2021/10/02 18:09:23 tom Exp $")
++MODULE_ID("$Id: tput.c,v 1.99 2022/02/26 23:19:31 tom Exp $")
+ 
+ #define PUTS(s)               fputs(s, stdout)
+ 
+@@ -160,7 +160,7 @@
+     name = check_aliases(argv[0], FALSE);
+     *used = 1;
+     if (is_reset || is_init) {
+-      TTY oldmode;
++      TTY oldmode = *settings;
+ 
+       int terasechar = -1;    /* new erase character */
+       int intrchar = -1;      /* new interrupt character */
+@@ -180,6 +180,7 @@
+ #endif
+       set_control_chars(settings, terasechar, intrchar, tkillchar);
+       set_conversions(settings);
++
+       if (send_init_strings(fd, &oldmode)) {
+           reset_flush();
+       }
+@@ -336,6 +337,7 @@
+     int result = 0;
+     int fd;
+     int used;
++    TTY old_settings;
+     TTY tty_settings;
+     bool opt_x = FALSE;               /* clear scrollback if possible */
+     bool is_alias;
+@@ -391,6 +393,7 @@
+       quit(ErrUsage, "No value for $TERM and no -T specified");
+ 
+     fd = save_tty_settings(&tty_settings, need_tty);
++    old_settings = tty_settings;
+ 
+     if (setupterm(term, fd, &errret) != OK && errret <= 0)
+       quit(ErrTermType, "unknown terminal \"%s\"", term);
+@@ -400,6 +403,7 @@
+       if ((argc <= 0) && !is_alias)
+           usage(NULL);
+       while (argc > 0) {
++          tty_settings = old_settings;
+           code = tput_cmd(fd, &tty_settings, opt_x, argc, argv, &used);
+           if (code != 0)
+               break;
+@@ -433,7 +437,9 @@
+ 
+       argnow = argvec;
+       while (argnum > 0) {
+-          int code = tput_cmd(fd, &tty_settings, opt_x, argnum, argnow, 
&used);
++          int code;
++          tty_settings = old_settings;
++          code = tput_cmd(fd, &tty_settings, opt_x, argnum, argnow, &used);
+           if (code != 0) {
+               if (result == 0)
+                   result = ErrSystem(0);      /* will return value >4 */
+Index: test/ncurses.c
+Prereq:  1.527 
+--- ncurses-6.3-20220219+/test/ncurses.c       2021-09-04 10:31:03.000000000 
+0000
++++ ncurses-6.3-20220226/test/ncurses.c        2022-02-26 22:41:02.000000000 
+0000
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+- * Copyright 2018-2020,2021 Thomas E. Dickey                                *
++ * Copyright 2018-2021,2022 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 @@
+    Author: Eric S. Raymond <e...@snark.thyrsus.com> 1993
+            Thomas E. Dickey (beginning revision 1.27 in 1996).
+ 
+-$Id: ncurses.c,v 1.527 2021/09/04 10:31:03 tom Exp $
++$Id: ncurses.c,v 1.528 2022/02/26 22:41:02 tom Exp $
+ 
+ ***************************************************************************/
+ 
+@@ -2885,6 +2885,10 @@
+           while (fgets(buffer, sizeof(buffer), fp) != 0) {
+               if (sscanf(buffer, "scale:%d", &c) == 1) {
+                   scale = c;
++                  if (scale < 100)
++                      scale = 100;
++                  if (scale > 1000)
++                      scale = 1000;
+               } else if (sscanf(buffer, "%d:%d %d %d",
+                                 &c,
+                                 &red,

Reply via email to