-- 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
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().
-5:0:10 6.3 20220521
+5:0:10 6.3 20220529
# 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
;;
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
# 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
# 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)
/****************************************************************************
- * 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 *
* 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
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 */
# 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
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.
# 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.
# 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
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).
# + 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!
#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
/*
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]);
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) {
dst->ext_str_table = new_table;
} else {
++str_size;
- new_table = malloc(str_size);
+ new_table = calloc(str_size, 1);
}
}
} else {
#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)
}
/*
- * 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)
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)
#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).
#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
-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
-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
-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
-; $Id: mingw-ncurses.nsi,v 1.521 2022/05/21 15:40:09 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.523 2022/05/29 18:40:52 tom Exp $\r
\r
; TODO add examples\r
; TODO bump ABI to 6\r
!define VERSION_MAJOR "6"\r
!define VERSION_MINOR "3"\r
!define VERSION_YYYY "2022"\r
-!define VERSION_MMDD "0521"\r
+!define VERSION_MMDD "0529"\r
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
\r
!define MY_ABI "5"\r
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
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
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
* 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
static struct timeval finish_time;
#endif
-static void
+static GCC_NORETURN void
finish(int code)
{
free(expected);