ncurses 6.1 - patch 20190427

+ corrected problem in terminfo load/realignment which prevented
  infocmp from comparing extended capabilities with the same name
  but different types.
This commit is contained in:
Thomas E. Dickey 2019-04-28 01:27:21 +00:00
parent 8b6693ef8f
commit b3969973c9
11 changed files with 65 additions and 31 deletions

11
NEWS
View File

@ -25,7 +25,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: NEWS,v 1.3310 2019/04/20 20:23:58 tom Exp $
-- $Id: NEWS,v 1.3311 2019/04/21 12:57:18 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@ -45,6 +45,11 @@ 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.
20190427
+ corrected problem in terminfo load/realignment which prevented
infocmp from comparing extended capabilities with the same name
but different types.
20190420
+ improve ifdef's for TABSIZE variable, to help with AIX/HPUX ports.
@ -150,7 +155,7 @@ it is not possible to add this information.
+ add -p option to test/pair_content, test/color_content to show the
return values from the tested functions.
+ improve manual page curs_color.3x discussion of error returns and
extensions.
extensions.
+ add O_INPUT_FIELD extension to form library (patch by Leon Winter).
+ override/suppress --enable-db-install if --disable-database configure
option was given.
@ -168,7 +173,7 @@ it is not possible to add this information.
20190105
+ add dummy "check" rule in top-level and test-Makefile to simply
building test-packages for Arch.
+ modify configure script to avoid conflict with a non-POSIX feature
+ modify configure script to avoid conflict with a non-POSIX feature
that enables all parts of the system headers by default. Some
packagers have come to rely upon this behavior (FreeBSD #234049).
+ update config.guess, config.sub

View File

@ -1 +1 @@
5:0:10 6.1 20190420
5:0:10 6.1 20190427

View File

@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: dist.mk,v 1.1279 2019/04/20 15:00:19 tom Exp $
# $Id: dist.mk,v 1.1280 2019/04/21 12:56:30 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
@ -37,7 +37,7 @@ SHELL = /bin/sh
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 1
NCURSES_PATCH = 20190420
NCURSES_PATCH = 20190427
# 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 (c) 1999-2017,2018 Free Software Foundation, Inc. *
* Copyright (c) 1999-2018,2019 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@ -42,7 +42,7 @@
#include <tic.h>
MODULE_ID("$Id: alloc_ttype.c,v 1.30 2018/04/14 19:24:54 tom Exp $")
MODULE_ID("$Id: alloc_ttype.c,v 1.31 2019/04/27 23:28:31 tom Exp $")
#if NCURSES_XNAMES
/*
@ -61,7 +61,7 @@ merge_names(char **dst, char **a, int na, char **b, int nb)
} else if (cmp > 0) {
dst[n++] = *b++;
nb--;
} else if (cmp == 0) {
} else {
dst[n++] = *a;
a++, b++;
na--, nb--;
@ -78,19 +78,27 @@ merge_names(char **dst, char **a, int na, char **b, int nb)
}
static bool
find_name(char **table, int length, char *name)
find_name(char **table, int item, int length, const char *name)
{
while (length-- > 0) {
if (!strcmp(*table++, name)) {
DEBUG(4, ("found name '%s'", name));
return TRUE;
int n;
int result = -1;
for (n = item; n < length; ++n) {
if (!strcmp(table[n], name)) {
DEBUG(4, ("found name '%s' @%d", name, n));
result = n;
break;
}
}
DEBUG(4, ("did not find name '%s'", name));
return FALSE;
if (result < 0) {
DEBUG(4, ("did not find name '%s'", name));
}
return (result >= 0);
}
#define EXTEND_NUM(num, ext) \
DEBUG(4, ("extending " #num " from %d to %d", \
to->num, (unsigned short) (to->num + (ext - to->ext)))); \
to->num = (unsigned short) (to->num + (ext - to->ext))
static void
@ -100,15 +108,29 @@ realign_data(TERMTYPE2 *to, char **ext_Names,
int ext_Strings)
{
int n, m, base;
int limit = (to->ext_Booleans + to->ext_Numbers + to->ext_Strings);
int to_Booleans = to->ext_Booleans;
int to_Numbers = to->ext_Numbers;
int to_Strings = to->ext_Strings;
int to1, to2, from;
DEBUG(4, ("realign_data %d/%d/%d vs %d/%d/%d",
ext_Booleans,
ext_Numbers,
ext_Strings,
to->ext_Booleans,
to->ext_Numbers,
to->ext_Strings));
if (to->ext_Booleans != ext_Booleans) {
to1 = 0;
to2 = to_Booleans + to1;
from = 0;
EXTEND_NUM(num_Booleans, ext_Booleans);
TYPE_REALLOC(NCURSES_SBOOL, to->num_Booleans, to->Booleans);
for (n = to->ext_Booleans - 1,
m = ext_Booleans - 1,
base = to->num_Booleans - (m + 1); m >= 0; m--) {
if (find_name(to->ext_Names, limit, ext_Names[m])) {
if (find_name(to->ext_Names, to1, to2, ext_Names[m + from])) {
to->Booleans[base + m] = to->Booleans[base + n--];
} else {
to->Booleans[base + m] = FALSE;
@ -118,12 +140,15 @@ realign_data(TERMTYPE2 *to, char **ext_Names,
}
if (to->ext_Numbers != ext_Numbers) {
to1 = to_Booleans;
to2 = to_Numbers + to1;
from = ext_Booleans;
EXTEND_NUM(num_Numbers, ext_Numbers);
TYPE_REALLOC(NCURSES_INT2, to->num_Numbers, to->Numbers);
for (n = to->ext_Numbers - 1,
m = ext_Numbers - 1,
base = to->num_Numbers - (m + 1); m >= 0; m--) {
if (find_name(to->ext_Names, limit, ext_Names[m + ext_Booleans])) {
if (find_name(to->ext_Names, to1, to2, ext_Names[m + from])) {
to->Numbers[base + m] = to->Numbers[base + n--];
} else {
to->Numbers[base + m] = ABSENT_NUMERIC;
@ -131,13 +156,17 @@ realign_data(TERMTYPE2 *to, char **ext_Names,
}
to->ext_Numbers = UShort(ext_Numbers);
}
if (to->ext_Strings != ext_Strings) {
to1 = to_Booleans + to_Numbers;
to2 = to_Strings + to1;
from = ext_Booleans + ext_Numbers;
EXTEND_NUM(num_Strings, ext_Strings);
TYPE_REALLOC(char *, to->num_Strings, to->Strings);
for (n = to->ext_Strings - 1,
m = ext_Strings - 1,
base = to->num_Strings - (m + 1); m >= 0; m--) {
if (find_name(to->ext_Names, limit, ext_Names[m + ext_Booleans + ext_Numbers])) {
if (find_name(to->ext_Names, to1, to2, ext_Names[m + from])) {
to->Strings[base + m] = to->Strings[base + n--];
} else {
to->Strings[base + m] = ABSENT_STRING;

View File

@ -1,8 +1,8 @@
ncurses6 (6.1+20190420) unstable; urgency=low
ncurses6 (6.1+20190427) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 20 Apr 2019 11:00:19 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 21 Apr 2019 08:56:30 -0400
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.1+20190420) unstable; urgency=low
ncurses6 (6.1+20190427) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 20 Apr 2019 11:00:19 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 21 Apr 2019 08:56:30 -0400
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.1+20190420) unstable; urgency=low
ncurses6 (6.1+20190427) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 20 Apr 2019 11:00:19 -0400
-- Thomas E. Dickey <dickey@invisible-island.net> Sun, 21 Apr 2019 08:56:30 -0400
ncurses6 (5.9-20120608) unstable; urgency=low

View File

@ -1,4 +1,4 @@
; $Id: mingw-ncurses.nsi,v 1.325 2019/04/20 15:00:19 tom Exp $
; $Id: mingw-ncurses.nsi,v 1.326 2019/04/21 12:56:30 tom Exp $
; TODO add examples
; TODO bump ABI to 6
@ -10,7 +10,7 @@
!define VERSION_MAJOR "6"
!define VERSION_MINOR "1"
!define VERSION_YYYY "2019"
!define VERSION_MMDD "0420"
!define VERSION_MMDD "0427"
!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.1
Release: 20190420
Release: 20190427
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.1
Release: 20190420
Release: 20190427
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.1
Release: 20190420
Release: 20190427
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz