ncurses 6.3 - patch 20220529

+ expanded notes for teken/syscons -TD
+ fix overlooked copying of extended string-heap in copy_termtype
  (cf: 20220430).
+ update config.guess
This commit is contained in:
Thomas E. Dickey 2022-05-30 00:05:21 +00:00
parent 1ddfa997c0
commit 66dce3ce75
17 changed files with 118 additions and 43 deletions

8
NEWS
View File

@ -26,7 +26,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: NEWS,v 1.3809 2022/05/21 21:10:54 tom Exp $
-- $Id: NEWS,v 1.3813 2022/05/29 18:40:52 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@ -46,6 +46,12 @@ 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.
20220529
+ expanded notes for teken/syscons -TD
+ fix overlooked copying of extended string-heap in copy_termtype
(cf: 20220430).
+ update config.guess
20220521
+ improve memory-leak checking in several test-programs.
+ set trailing null on string passed from winsnstr() to wins_nwstr().

View File

@ -1 +1 @@
5:0:10 6.3 20220521
5:0:10 6.3 20220529

27
config.guess vendored
View File

@ -4,7 +4,7 @@
# shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2022-01-09'
timestamp='2022-05-08'
# 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
@ -1151,16 +1151,27 @@ EOF
;;
x86_64:Linux:*:*)
set_cc_for_build
CPU=$UNAME_MACHINE
LIBCABI=$LIBC
if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_X32 >/dev/null
then
LIBCABI=${LIBC}x32
fi
ABI=64
sed 's/^ //' << EOF > "$dummy.c"
#ifdef __i386__
ABI=x86
#else
#ifdef __ILP32__
ABI=x32
#endif
#endif
EOF
cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
eval "$cc_set_abi"
case $ABI in
x86) CPU=i686 ;;
x32) LIBCABI=${LIBC}x32 ;;
esac
fi
GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
GUESS=$CPU-pc-linux-$LIBCABI
;;
xtensa*:Linux:*:*)
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC

View File

@ -26,7 +26,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: dist.mk,v 1.1481 2022/05/21 15:40:09 tom Exp $
# $Id: dist.mk,v 1.1483 2022/05/29 18:40:52 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
@ -38,7 +38,7 @@ SHELL = /bin/sh
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 3
NCURSES_PATCH = 20220521
NCURSES_PATCH = 20220529
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Copyright 2018-2020,2021 Thomas E. Dickey *
* Copyright 2018-2021,2022 Thomas E. Dickey *
* Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
@ -33,7 +33,7 @@
* and: Thomas E. Dickey 1998-on *
****************************************************************************/
/* $Id: term_entry.h,v 1.61 2021/09/04 10:52:55 tom Exp $ */
/* $Id: term_entry.h,v 1.62 2022/05/28 17:59:42 tom Exp $ */
/*
* term_entry.h -- interface to entry-manipulation code
@ -176,6 +176,7 @@ extern NCURSES_EXPORT(void) _nc_wrap_entry (ENTRY *const, bool);
extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE2 *, TERMTYPE2 *);
/* free_ttype.c: elementary allocation code */
extern NCURSES_EXPORT(void) _nc_free_termtype1 (TERMTYPE *);
extern NCURSES_EXPORT(void) _nc_free_termtype2 (TERMTYPE2 *);
/* lib_termcap.c: trim sgr0 string for termcap users */

View File

@ -6,8 +6,8 @@
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
# $Revision: 1.1002 $
# $Date: 2022/04/30 23:24:59 $
# $Revision: 1.1003 $
# $Date: 2022/05/28 20:05:41 $
#
# The original header is preserved below for reference. It is noted that there
# is a "newer" version which differs in some cosmetic details (but actually
@ -1953,6 +1953,8 @@ mgterm|MGL/MGL2 MobileGear Graphic Library,
vpa=\E[%i%p1%dd, use=ecma+index,
#### FreeBSD console entries
# Originally from termcap:
#
# From: Andrey Chernov <ache@astral.msk.su> 29 Mar 1996
# Andrey Chernov maintains the FreeBSD termcap distributions.
@ -1964,8 +1966,9 @@ mgterm|MGL/MGL2 MobileGear Graphic Library,
# I have seen FreeBSD-2.1.5R... The old el1 bug changed, but it is still there.
# Now el1 clears not only to the line beginning, but also a large chunk
# of previous line. But there is another bug - ech does not work at all.
#
# syscons, sc - the console driver
#
# for syscons
# common entry without semigraphics
# Bug: The <op> capability resets attributes.
@ -1976,7 +1979,7 @@ mgterm|MGL/MGL2 MobileGear Graphic Library,
# Setting colors turns off reverse; we cannot guarantee order, so use ncv.
# Note that this disables standout with color.
#
# The emulator sends difference strings based on shift- and control-keys,
# The emulator sends different strings based on shift- and control-keys,
# like scoansi:
# F13-F24 are shifted F1-F12
# F25-F36 are control F1-F12
@ -2077,21 +2080,50 @@ cons60l1|cons60-iso|FreeBSD console w/iso 8859-1 chars (60 lines),
cons60l1-m|cons60-iso-m|FreeBSD console w/iso 8859-1 chars (60-line mono),
lines#60, use=cons25l1-m,
# vt - virtual terminal console driver
#
# Starting with FreeBSD 8, an alternative configuration for syscons is provided,
# which is intended to be xterm-compatible. See for example
# http://svnweb.freebsd.org/base/stable/8/sys/dev/syscons/
# in particular scterm-teken.c
#
# Some of the documentation refers to this as "vt"; its proper name is "teken".
#
# The sc(4) manual page states that it is possible to switch between the two
# by editing /boot/loader.conf, adding
# kern.vty=sc
# Doing that does not change the default TERM variable. That is hard-coded in
# /etc/ttys, rather than deriving it from the kernel state.
#
# For FreeBSD 12 and 13:
# ---------------------
# In newer releases, it is no longer possible to boot into a configuration that
# works with syscons. teken's "cons25" configuration supports only the first
# 12 function keys. One may switch at runtime between the two flavors of
# function keys using vidcontrol:
# works with syscons. According to efi(4),
# "The vt(4) system console is automatically selected when booting via UEFI."
# See FreeBSD #264226.
#
# FreeBSD 13 supports 64-bit machines which boot with UEFI:
# https://www.freebsd.org/platforms/
# The i386 platform does not use UEFI (and modifying the loader configuration
# does load sysconf); however because no updates (fixes) are available, most
# developers will regard that as unsupported.
#
# With FreeBSD 13, even when syscons is loaded (e.g., with the i386 platform),
# its function-keys are not configured. Using
# vidcontrol -T cons25
# repairs this.
#
# When teken is loaded, vidcontrol can switch at runtime between the
# teken/cons25 function keys:
# vidcontrol -T cons25
# vidcontrol -T xterm
# But for each, teken implements only about a quarter of the imitated terminal's
# terminal descriptions.
# However due to a limitation in the implementation, only the first 12 function
# keys are available. The real syscons supports 48 function keys (using the
# shift and control modifiers), while xterm supports more than twice as many.
#
# vidcontrol does not change the emulation. As a result, the quarter (17/73) of
# non-function key capabilities which differ between syscons and teken are
# unsupported in the UEFI-based configurations.
#
# tack:
# VT100 line-drawing does not work (UTF-8 equivalents do).
@ -27516,4 +27548,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
# + modify samples for xterm mouse 1002/1003 modes to use 1006 mode, and
# also provide for focus in/out responses -TD
#
# 2022-05-28
# + expanded notes for teken/syscons -TD
#
######## SHANTIH! SHANTIH! SHANTIH!

View File

@ -43,7 +43,7 @@
#include <tic.h>
MODULE_ID("$Id: alloc_ttype.c,v 1.40 2022/05/08 00:11:44 tom Exp $")
MODULE_ID("$Id: alloc_ttype.c,v 1.43 2022/05/29 17:56:55 tom Exp $")
#if NCURSES_XNAMES
/*
@ -557,7 +557,7 @@ copy_termtype(TERMTYPE2 *dst, const TERMTYPE2 *src, int mode)
strcpy(dst->term_names + str_size, src->term_names);
}
str_size += strlen(src->term_names) + 1;
for (i = 0; i < NUM_STRINGS(dst); ++i) {
for (i = 0; i < STRCOUNT; ++i) {
if (VALID_STRING(src->Strings[i])) {
if (pass) {
strcpy(new_table + str_size, src->Strings[i]);
@ -625,6 +625,19 @@ copy_termtype(TERMTYPE2 *dst, const TERMTYPE2 *src, int mode)
new_table = NULL;
for (pass = 0; pass < 2; ++pass) {
size_t str_size = 0;
char *raw_data = src->ext_str_table;
if (raw_data != NULL) {
for (i = 0; i < src->ext_Strings; ++i) {
size_t skip = strlen(raw_data) + 1;
if (skip != 1) {
if (pass) {
strcpy(new_table + str_size, raw_data);
}
str_size += skip;
raw_data += skip;
}
}
}
for (i = 0; i < NUM_EXT_NAMES(dst); ++i) {
if (VALID_STRING(src->ext_Names[i])) {
if (pass) {
@ -638,7 +651,7 @@ copy_termtype(TERMTYPE2 *dst, const TERMTYPE2 *src, int mode)
dst->ext_str_table = new_table;
} else {
++str_size;
new_table = malloc(str_size);
new_table = calloc(str_size, 1);
}
}
} else {

View File

@ -43,7 +43,7 @@
#include <tic.h>
MODULE_ID("$Id: free_ttype.c,v 1.20 2022/05/15 12:42:13 tom Exp $")
MODULE_ID("$Id: free_ttype.c,v 1.21 2022/05/28 18:02:33 tom Exp $")
static void
really_free_termtype(TERMTYPE2 *ptr, bool freeStrings)
@ -67,7 +67,7 @@ really_free_termtype(TERMTYPE2 *ptr, bool freeStrings)
}
/*
* This entrypoint is used by tack 1.07
* This entrypoint was used by tack 1.07; deprecated with ncurses 6.2
*/
NCURSES_EXPORT(void)
_nc_free_termtype(TERMTYPE *ptr)
@ -75,6 +75,15 @@ _nc_free_termtype(TERMTYPE *ptr)
really_free_termtype((TERMTYPE2 *) ptr, !NCURSES_EXT_NUMBERS);
}
/*
* These similar entrypoints are not used outside of ncurses.
*/
NCURSES_EXPORT(void)
_nc_free_termtype1(TERMTYPE *ptr)
{
really_free_termtype((TERMTYPE2 *) ptr, TRUE);
}
#if NCURSES_EXT_NUMBERS
NCURSES_EXPORT(void)
_nc_free_termtype2(TERMTYPE2 *ptr)

View File

@ -41,7 +41,7 @@
#include <termcap.h> /* ospeed */
#include <tic.h> /* VALID_STRING */
MODULE_ID("$Id: lib_cur_term.c,v 1.48 2022/05/21 22:58:20 tom Exp $")
MODULE_ID("$Id: lib_cur_term.c,v 1.49 2022/05/28 17:56:55 tom Exp $")
#undef CUR
#define CUR TerminalType(termp).
@ -148,7 +148,7 @@ NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL *termp)
#if NCURSES_EXT_NUMBERS
#if NCURSES_EXT_COLORS
_nc_free_termtype(&termp->type);
_nc_free_termtype1(&termp->type);
#else
_nc_free_termtype2(&termp->type);
#endif

View File

@ -1,8 +1,8 @@
ncurses6 (6.3+20220521) unstable; urgency=low
ncurses6 (6.3+20220529) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 15 May 2022 08:43:22 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 29 May 2022 14:40:52 -0400
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.3+20220521) unstable; urgency=low
ncurses6 (6.3+20220529) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 15 May 2022 08:43:22 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 29 May 2022 14:40:52 -0400
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.3+20220521) unstable; urgency=low
ncurses6 (6.3+20220529) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 15 May 2022 08:43:22 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 29 May 2022 14:40:52 -0400
ncurses6 (5.9-20120608) unstable; urgency=low

View File

@ -1,4 +1,4 @@
; $Id: mingw-ncurses.nsi,v 1.521 2022/05/21 15:40:09 tom Exp $
; $Id: mingw-ncurses.nsi,v 1.523 2022/05/29 18:40:52 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 "0521"
!define VERSION_MMDD "0529"
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
!define MY_ABI "5"

View File

@ -3,7 +3,7 @@
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.3
Release: 20220521
Release: 20220529
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz

View File

@ -1,7 +1,7 @@
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.3
Release: 20220521
Release: 20220529
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz

View File

@ -1,7 +1,7 @@
Summary: Curses library with POSIX thread support.
Name: ncursest6
Version: 6.3
Release: 20220521
Release: 20220529
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz

View File

@ -26,7 +26,7 @@
* authorization. *
****************************************************************************/
/*
* $Id: pair_content.c,v 1.16 2022/05/15 15:46:28 tom Exp $
* $Id: pair_content.c,v 1.17 2022/05/28 20:15:06 tom Exp $
*/
#define NEED_TIME_H
@ -62,7 +62,7 @@ static struct timeval initial_time;
static struct timeval finish_time;
#endif
static void
static GCC_NORETURN void
finish(int code)
{
free(expected);