From a50b059f71e787a32e396c0e5b40cee4230c997e Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 13 Jun 2021 01:18:49 +0000 Subject: [PATCH] ncurses 6.2 - patch 20210612 + fixes for scan-build, valgrind build/testing. + update config.guess --- NEWS | 6 ++++- VERSION | 2 +- config.guess | 46 +++++++++++++++----------------- dist.mk | 4 +-- 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/dump_entry.c | 4 +-- progs/infocmp.c | 4 ++- test/move_field.c | 3 ++- test/padview.c | 24 ++++++++++++----- test/view.c | 24 ++++++++++++----- 16 files changed, 82 insertions(+), 57 deletions(-) diff --git a/NEWS b/NEWS index efbbf5c0..3265d19f 100644 --- a/NEWS +++ b/NEWS @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3671 2021/06/05 23:45:46 tom Exp $ +-- $Id: NEWS,v 1.3673 2021/06/13 00:16:30 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,10 @@ See the AUTHORS file for the corresponding full names. Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20210612 + + fixes for scan-build, valgrind build/testing. + + update config.guess + 20210605 + add a summary of ncurses-specific preprocessor symbols to curses.h (prompted by discussion with Peter Farley, Bill Gray). diff --git a/VERSION b/VERSION index 3a8bdb0c..9c6a6134 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.2 20210605 +5:0:10 6.2 20210612 diff --git a/config.guess b/config.guess index ec94a102..9c65c6c1 100755 --- a/config.guess +++ b/config.guess @@ -3,7 +3,7 @@ # Copyright 2021 Thomas E. Dickey # Copyright 1992-2021 Free Software Foundation, Inc. -timestamp='2021-04-21' +timestamp='2021-05-24' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -137,7 +137,7 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "$UNAME_SYSTEM" in +case $UNAME_SYSTEM in Linux|GNU|GNU/*) LIBC=unknown @@ -177,7 +177,7 @@ esac # Note: order is significant - the case branches are not exclusive. -case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -193,7 +193,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; @@ -209,7 +209,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; @@ -230,7 +230,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in ;; esac # Determine ABI tags. - case "$UNAME_MACHINE_ARCH" in + case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` @@ -241,7 +241,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "$UNAME_VERSION" in + case $UNAME_VERSION in Debian*) release='-gnu' ;; @@ -301,6 +301,8 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in echo mips-dec-osf1 exit ;; alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` @@ -314,7 +316,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in + case $ALPHA_CPU_TYPE in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") @@ -352,10 +354,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 - exit $exitcode ;; + exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; @@ -436,7 +435,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in + case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; @@ -450,7 +449,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 - case "`/bin/arch`" in + case `/bin/arch` in sun3) echo m68k-sun-sunos"$UNAME_RELEASE" ;; @@ -666,18 +665,18 @@ EOF exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` - case "$UNAME_MACHINE" in + case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "$sc_cpu_version" in + case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "$sc_kernel_bits" in + case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 @@ -878,7 +877,7 @@ EOF exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case "$UNAME_PROCESSOR" in + case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) @@ -902,7 +901,7 @@ EOF echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case "$UNAME_MACHINE" in + case $UNAME_MACHINE in x86) echo i586-pc-interix"$UNAME_RELEASE" exit ;; @@ -1439,10 +1438,9 @@ EOF # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. - # shellcheck disable=SC2154 - if test "$cputype" = 386; then + if test "${cputype-}" = 386; then UNAME_MACHINE=i386 - else + elif test "x${cputype-}" != x; then UNAME_MACHINE="$cputype" fi echo "$UNAME_MACHINE"-unknown-plan9 @@ -1473,7 +1471,7 @@ EOF exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "$UNAME_MACHINE" in + case $UNAME_MACHINE in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1640,7 +1638,7 @@ test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } echo "$0: unable to guess system type" >&2 -case "$UNAME_MACHINE:$UNAME_SYSTEM" in +case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 < Sat, 05 Jun 2021 19:45:46 -0400 + -- Thomas E. Dickey Sat, 12 Jun 2021 06:37:34 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog index ac04dff6..c4511180 100644 --- a/package/debian-mingw64/changelog +++ b/package/debian-mingw64/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.2+20210605) unstable; urgency=low +ncurses6 (6.2+20210612) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 05 Jun 2021 19:45:46 -0400 + -- Thomas E. Dickey Sat, 12 Jun 2021 06:37:34 -0400 ncurses6 (5.9-20131005) unstable; urgency=low diff --git a/package/debian/changelog b/package/debian/changelog index e9c84afe..39b5f904 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,8 +1,8 @@ -ncurses6 (6.2+20210605) unstable; urgency=low +ncurses6 (6.2+20210612) unstable; urgency=low * latest weekly patch - -- Thomas E. Dickey Sat, 05 Jun 2021 19:45:46 -0400 + -- Thomas E. Dickey Sat, 12 Jun 2021 06:37:34 -0400 ncurses6 (5.9-20120608) unstable; urgency=low diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi index bf4730e0..878b3a59 100644 --- a/package/mingw-ncurses.nsi +++ b/package/mingw-ncurses.nsi @@ -1,4 +1,4 @@ -; $Id: mingw-ncurses.nsi,v 1.461 2021/06/05 23:45:46 tom Exp $ +; $Id: mingw-ncurses.nsi,v 1.462 2021/06/12 10:37:34 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 "0605" +!define VERSION_MMDD "0612" !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD} !define MY_ABI "5" diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec index 5916c3ce..c6054af1 100644 --- a/package/mingw-ncurses.spec +++ b/package/mingw-ncurses.spec @@ -3,7 +3,7 @@ Summary: shared libraries for terminal handling Name: mingw32-ncurses6 Version: 6.2 -Release: 20210605 +Release: 20210612 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/package/ncurses.spec b/package/ncurses.spec index b7e86c8e..9c5b712d 100644 --- a/package/ncurses.spec +++ b/package/ncurses.spec @@ -1,7 +1,7 @@ Summary: shared libraries for terminal handling Name: ncurses6 Version: 6.2 -Release: 20210605 +Release: 20210612 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/package/ncursest.spec b/package/ncursest.spec index de458e08..725a17cf 100644 --- a/package/ncursest.spec +++ b/package/ncursest.spec @@ -1,7 +1,7 @@ Summary: Curses library with POSIX thread support. Name: ncursest6 Version: 6.2 -Release: 20210605 +Release: 20210612 License: X11 Group: Development/Libraries Source: ncurses-%{version}-%{release}.tgz diff --git a/progs/dump_entry.c b/progs/dump_entry.c index dda1b681..9c0c8155 100644 --- a/progs/dump_entry.c +++ b/progs/dump_entry.c @@ -40,7 +40,7 @@ #include /* this C file is generated */ #include /* so is this */ -MODULE_ID("$Id: dump_entry.c,v 1.186 2021/04/18 11:33:08 tom Exp $") +MODULE_ID("$Id: dump_entry.c,v 1.187 2021/06/12 22:06:55 tom Exp $") #define DISCARD(string) string = ABSENT_STRING #define PRINTF (void) printf @@ -549,7 +549,7 @@ fill_spaces(const char *src) if (pass) { result[d] = '\0'; } else { - result = malloc(need + 1); + result = calloc(need + 1, sizeof(char)); if (result == 0) failed("fill_spaces"); } diff --git a/progs/infocmp.c b/progs/infocmp.c index adc53ba0..e2f442b0 100644 --- a/progs/infocmp.c +++ b/progs/infocmp.c @@ -43,7 +43,7 @@ #include -MODULE_ID("$Id: infocmp.c,v 1.149 2021/04/17 15:24:04 tom Exp $") +MODULE_ID("$Id: infocmp.c,v 1.150 2021/06/12 21:52:06 tom Exp $") #define MAX_STRING 1024 /* maximum formatted string */ @@ -1513,6 +1513,8 @@ show_databases(void) #if NO_LEAKS #define MAIN_LEAKS() \ + _nc_free_termtype2(&entries[0].tterm); \ + _nc_free_termtype2(&entries[1].tterm); \ free(myargv); \ free(tfile); \ free(tname) diff --git a/test/move_field.c b/test/move_field.c index 5e7fc82e..b5ec9438 100644 --- a/test/move_field.c +++ b/test/move_field.c @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: move_field.c,v 1.8 2021/03/27 23:41:57 tom Exp $ + * $Id: move_field.c,v 1.9 2021/06/12 21:30:34 tom Exp $ * * Demonstrate move_field(). */ @@ -395,6 +395,7 @@ do_demo(FORM *form) refresh(); } } + free(old_fields); free(new_fields); } } diff --git a/test/padview.c b/test/padview.c index c99fddd9..fb1d9fca 100644 --- a/test/padview.c +++ b/test/padview.c @@ -29,7 +29,7 @@ /* * clone of view.c, using pads * - * $Id: padview.c,v 1.17 2021/03/20 16:04:45 tom Exp $ + * $Id: padview.c,v 1.18 2021/06/12 23:16:31 tom Exp $ */ #include @@ -144,9 +144,12 @@ read_file(const char *filename) } len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp); - my_blob[sb.st_size] = '\0'; fclose(fp); + if (len > (size_t) sb.st_size) + len = (size_t) sb.st_size; + my_blob[len] = '\0'; + for (pass = 0; pass < 2; ++pass) { char *base = my_blob; k = 0; @@ -160,12 +163,19 @@ read_file(const char *filename) ++k; } } + if (base != (my_blob + j)) { + if (pass) + my_vec[k] = base; + ++k; + } num_lines = k; - if (base != (my_blob + j)) - ++num_lines; - if (!pass && - ((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) { - failed("cannot allocate line-vector #1"); + if (pass == 0) { + if (((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) { + failed("cannot allocate line-vector #1"); + } + } else { + if (my_vec[0] == NULL) + my_vec[0] = my_blob; } } diff --git a/test/view.c b/test/view.c index c4c53c79..b368f5b7 100644 --- a/test/view.c +++ b/test/view.c @@ -52,7 +52,7 @@ * scroll operation worked, and the refresh() code only had to do a * partial repaint. * - * $Id: view.c,v 1.141 2021/05/08 15:57:04 tom Exp $ + * $Id: view.c,v 1.142 2021/06/12 23:16:31 tom Exp $ */ #include @@ -257,9 +257,12 @@ read_file(const char *filename) } len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp); - my_blob[sb.st_size] = '\0'; fclose(fp); + if (len > (size_t) sb.st_size) + len = (size_t) sb.st_size; + my_blob[len] = '\0'; + for (pass = 0; pass < 2; ++pass) { char *base = my_blob; k = 0; @@ -273,12 +276,19 @@ read_file(const char *filename) ++k; } } + if (base != (my_blob + j)) { + if (pass) + my_vec[k] = base; + ++k; + } num_lines = k; - if (base != (my_blob + j)) - ++num_lines; - if (!pass && - ((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) { - failed("cannot allocate line-vector #1"); + if (pass == 0) { + if (((my_vec = typeCalloc(char *, (size_t) k + 2)) == 0)) { + failed("cannot allocate line-vector #1"); + } + } else { + if (my_vec[0] == NULL) + my_vec[0] = my_blob; } } -- 2.44.0