ncurses 6.0 - patch 20161210

+ add configure script option --disable-wattr-macros for use in cases
  where one wants to use the same headers for ncurses5/ncurses6
  development, by suppressing the wattr* macros which differ due to
  the introduction of extended colors (prompted by comments in
  Debian #230990, Redhat #1270534).
+ add test/tput-initc to demonstrate tput used to initialize palette
  from a data file.
+ modify test/xterm*.dat to use the newer color4/color12 values.
This commit is contained in:
Thomas E. Dickey 2016-12-11 02:45:02 +00:00
parent 1dd25cc025
commit 1b540608ea
19 changed files with 2236 additions and 2067 deletions

24
INSTALL
View File

@ -1,5 +1,5 @@
-------------------------------------------------------------------------------
-- Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. --
-- Copyright (c) 1998-2015,2016 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 --
@ -25,7 +25,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: INSTALL,v 1.194 2015/10/24 19:03:42 Tomas.Cech Exp $
-- $Id: INSTALL,v 1.195 2016/12/11 00:41:03 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
@ -470,6 +470,26 @@ SUMMARY OF CONFIGURE OPTIONS:
list documented in X/Open. ncurses provides varargs support for this
function. Use --disable-tparm-varargs to disable this support.
--disable-wattr-macros
The 6.0 ABI adds support for extended colors and for extended mouse.
The former is a noticeable problem when developers inadvertantly
compile using the ncurses6 header files and link with an ncurses5
library, because the wattr* macros use a new field in the WINDOW
structure. These macros are used in several applications.
Since ncurses provides an actual function for each of these macros,
suppressing them from the curses.h header allows the ncurses5 libraries
to be used in most applications.
NOTE: The extended colors also are used in the cchar_t structure, but
fewer applications use that.
NOTE: This workaround does not help with mismatches in the ncurses
mouse version. The extended mouse feature uses one less fewer bit for
each button, so that only the first button will work as expected with
a mismatch between header and library. Again, most applications will
work, since most use only the first button.
--enable-assertions
For testing, compile-in assertion code. This is used only for a few
places where ncurses cannot easily recover by returning an error code.

View File

@ -1174,6 +1174,7 @@
./test/testaddch.c
./test/testcurs.c
./test/testscanw.c
./test/tput-initc
./test/tracemunch
./test/view.c
./test/widechars-utf8.txt

12
NEWS
View File

@ -25,7 +25,7 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
-- $Id: NEWS,v 1.2705 2016/12/04 01:02:15 tom Exp $
-- $Id: NEWS,v 1.2708 2016/12/11 00:24:06 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@ -45,6 +45,16 @@ 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.
20161210
+ add configure script option --disable-wattr-macros for use in cases
where one wants to use the same headers for ncurses5/ncurses6
development, by suppressing the wattr* macros which differ due to
the introduction of extended colors (prompted by comments in
Debian #230990, Redhat #1270534).
+ add test/tput-initc to demonstrate tput used to initialize palette
from a data file.
+ modify test/xterm*.dat to use the newer color4/color12 values.
20161203
+ improve discussion of field validation in form_driver.3x manual page.
+ update curs_trace.3x manual page.

View File

@ -1 +1 @@
5:0:9 6.0 20161203
5:0:9 6.0 20161210

4085
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -28,14 +28,14 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
dnl $Id: configure.in,v 1.631 2016/06/04 22:47:54 tom Exp $
dnl $Id: configure.in,v 1.633 2016/12/11 02:17:55 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl See http://invisible-island.net/autoconf/ for additional information.
dnl
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.52.20030208)
AC_REVISION($Revision: 1.631 $)
AC_REVISION($Revision: 1.633 $)
AC_INIT(ncurses/base/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
@ -926,6 +926,21 @@ else
with_tic_depends=no
fi
### use option --disable-wattr-macros to suppress wattr* macros from curses.h
AC_MSG_CHECKING(if you want to suppress wattr* macros to help with ncurses5/ncurses6 transition)
AC_ARG_ENABLE(wattr-macros,
[ --disable-wattr-macros suppress wattr* macros to help with ncurses5/ncurses6 transition],
[with_wattr_macros=$enableval],
[with_wattr_macros=yes])
if [[ "x$with_wattr_macros" != xyes ]]; then
NCURSES_WATTR_MACROS=0
AC_MSG_RESULT(yes)
else
NCURSES_WATTR_MACROS=1
AC_MSG_RESULT(no)
fi
AC_SUBST(NCURSES_WATTR_MACROS)
### use option --with-bool to override bool's type
AC_MSG_CHECKING(for type of bool)
AC_ARG_WITH(bool,

View File

@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: dist.mk,v 1.1135 2016/12/03 16:11:11 tom Exp $
# $Id: dist.mk,v 1.1136 2016/12/10 12:47:46 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 = 0
NCURSES_PATCH = 20161203
NCURSES_PATCH = 20161210
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)

View File

@ -32,7 +32,7 @@
* and: Thomas E. Dickey 1996-on *
****************************************************************************/
/* $Id: curses.h.in,v 1.243 2016/01/23 22:20:31 tom Exp $ */
/* $Id: curses.h.in,v 1.244 2016/12/10 23:56:23 tom Exp $ */
#ifndef __NCURSES_H
#define __NCURSES_H
@ -110,6 +110,15 @@
#define NCURSES_OPAQUE @NCURSES_OPAQUE@
#endif
/*
* Definition used to optionally suppress wattr* macros to help with the
* transition from ncurses5 to ncurses6 by allowing the header files to
* be shared across development packages for ncursesw in both ABIs.
*/
#ifndef NCURSES_WATTR_MACROS
#define NCURSES_WATTR_MACROS @NCURSES_WATTR_MACROS@
#endif
/*
* The reentrant code relies on the opaque setting, but adds features.
*/
@ -1153,6 +1162,7 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /*
#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
#if !NCURSES_OPAQUE
#if NCURSES_WATTR_MACROS
#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@
#define wattrset(win,at) ((win) \
? ((win)->_color = NCURSES_CAST(int, PAIR_NUMBER(at)), \
@ -1165,6 +1175,7 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /*
OK) \
: ERR)
#endif
#endif /* NCURSES_WATTR_MACROS */
#endif /* NCURSES_OPAQUE */
#define scroll(win) wscrl(win,1)
@ -1301,6 +1312,7 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /*
#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
#if !NCURSES_OPAQUE
#if NCURSES_WATTR_MACROS
#if NCURSES_WIDECHAR && @NCURSES_EXT_COLORS@
#define wattr_set(win,a,p,opts) (((win) \
? ((win)->_attrs = ((a) & ~A_COLOR), \
@ -1319,6 +1331,7 @@ extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int); /*
(void)(((p) != (void *)0) ? (*(p) = (NCURSES_PAIRS_T) ((win) ? PAIR_NUMBER((win)->_attrs) : 0)) : OK), \
OK)
#endif
#endif /* NCURSES_WATTR_MACROS */
#endif /* NCURSES_OPAQUE */
/*

View File

@ -2,7 +2,7 @@
#
# MKlib_gen.sh -- generate sources from curses.h macro definitions
#
# ($Id: MKlib_gen.sh,v 1.54 2016/07/09 21:43:05 tom Exp $)
# ($Id: MKlib_gen.sh,v 1.55 2016/12/11 00:07:14 tom Exp $)
#
##############################################################################
# Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. #
@ -62,7 +62,7 @@ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
if test "${LC_COLLATE+set}" = set; then LC_COLLATE=C; export LC_COLLATE; fi
preprocessor="$1 -DNCURSES_INTERNALS -I../include"
preprocessor="$1 -DNCURSES_WATTR_MACROS -DNCURSES_INTERNALS -I../include"
AWK="$2"
USE="$3"

View File

@ -1,8 +1,8 @@
ncurses6 (6.0+20161203) unstable; urgency=low
ncurses6 (6.0+20161210) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Dec 2016 11:11:11 -0500
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 10 Dec 2016 07:47:46 -0500
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.0+20161203) unstable; urgency=low
ncurses6 (6.0+20161210) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Dec 2016 11:11:11 -0500
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 10 Dec 2016 07:47:46 -0500
ncurses6 (5.9-20131005) unstable; urgency=low

View File

@ -1,8 +1,8 @@
ncurses6 (6.0+20161203) unstable; urgency=low
ncurses6 (6.0+20161210) unstable; urgency=low
* latest weekly patch
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Dec 2016 11:11:11 -0500
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 10 Dec 2016 07:47:46 -0500
ncurses6 (5.9-20120608) unstable; urgency=low

View File

@ -1,4 +1,4 @@
; $Id: mingw-ncurses.nsi,v 1.187 2016/12/03 16:11:11 tom Exp $
; $Id: mingw-ncurses.nsi,v 1.188 2016/12/10 12:47:46 tom Exp $
; TODO add examples
; TODO bump ABI to 6
@ -10,7 +10,7 @@
!define VERSION_MAJOR "6"
!define VERSION_MINOR "0"
!define VERSION_YYYY "2016"
!define VERSION_MMDD "1203"
!define VERSION_MMDD "1210"
!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.0
Release: 20161203
Release: 20161210
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.0
Release: 20161203
Release: 20161210
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz

87
test/tput-initc Normal file
View File

@ -0,0 +1,87 @@
#!/bin/sh
##############################################################################
# Copyright (c) 2016 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 "Software"), #
# to deal in the Software without restriction, including without limitation #
# the rights to use, copy, modify, merge, publish, distribute, distribute #
# with modifications, sublicense, and/or sell copies of the Software, and to #
# permit persons to whom the Software is furnished to do so, subject to the #
# following conditions: #
# #
# The above copyright notice and this permission notice shall be included in #
# all copies or substantial portions of the Software. #
# #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
# DEALINGS IN THE SOFTWARE. #
# #
# Except as contained in this notice, the name(s) of the above copyright #
# holders shall not be used in advertising or otherwise to promote the sale, #
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: tput-initc,v 1.1 2016/12/10 23:35:46 tom Exp $
# Some of the ".dat" files in ncurses' test-directory give r/g/b numbers for
# default palettes of xterm and Linux console. This script reads the numbers
# and (assuming the same or compatible terminal) uses tput to (re)initialize
# the palette using those numbers.
failed() {
printf "?? $*\n" >&2
exit 1
}
if [ $# = 1 ]
then
file=$1
elif [ $# = 0 ]
then
file=$TERM.dat
else
failed "expected one parameter or none"
fi
if [ ! -f "$file" ]
then
if [ -f "$file.dat" ]
then
file="$file.dat"
else
failed "no such file: $file"
fi
fi
myterm=${file%%.dat}
colors=$(tput -T $myterm colors 2>/dev/null)
if [ ${colors:-0} -le 0 ]
then
myterm=${myterm%%-color}
colors=$(tput -T $myterm colors 2>/dev/null)
fi
if [ ${colors:-0} -le 0 ]
then
failed "terminal $myterm does not support color"
fi
cat $file |\
awk -v myterm=$myterm '
BEGIN { limit=1000; }
function scaled(n) {
return (n * 1000)/limit;
}
/^scale:[0-9]+/{
sub("^scale:","",$0);
limit = $0;
}
/^[0-9]+:/{
sub(":","",$1);
printf "tput -T%s initc %d %d %d %d\n", myterm, $1,scaled($2),scaled($3),scaled($4);
}' |sh -

View File

@ -1,5 +1,5 @@
##############################################################################
# Copyright (c) 2004,2006 Free Software Foundation, Inc. #
# Copyright (c) 2004-2006,2016 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 "Software"), #
@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: xterm-16color.dat,v 1.2 2006/04/22 21:40:00 tom Exp $
# $Id: xterm-16color.dat,v 1.3 2016/12/10 22:34:58 tom Exp $
# This illustrates the predefined colors for XFree86 xterm's "xterm-16color".
# If you set $TERM to "xterm-88color" (and have xterm compiled to support the
# 88-color or 256-color feature), you can use the ncurses 'd' screen to
@ -33,13 +33,13 @@
# the first 16 colors, and xterm happens to use the same first 16 colors in
# the extended color models that support initc.
#
# The colors shown are for xterm patch #189.
# The colors shown are for xterm patch #192.
scale:255
0: 0 0 0 black
1: 205 0 0 red3
2: 0 205 0 green3
3: 205 205 0 yellow3
4: 30 144 255 DodgerBlue1
4: 0 0 238 blue2
5: 205 0 205 magenta3
6: 0 205 205 cyan3
7: 229 229 229 gray90
@ -47,7 +47,7 @@ scale:255
9: 255 0 0 red
10: 0 255 0 green
11: 255 255 0 yellow
12: 99 184 255 SteelBlue1
12: 92 92 255 customblue
13: 255 0 255 magenta
14: 0 255 255 cyan
15: 255 255 255 white

View File

@ -1,5 +1,5 @@
##############################################################################
# Copyright (c) 2009 Free Software Foundation, Inc. #
# Copyright (c) 2009,2016 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 "Software"), #
@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: xterm-256color.dat,v 1.1 2009/10/30 22:33:40 tom Exp $
# $Id: xterm-256color.dat,v 1.2 2016/12/10 22:39:28 tom Exp $
# This illustrates the predefined colors for xterm's "xterm-256color" feature.
# If you set $TERM to "xterm-256color" (and have xterm compiled to support the
# 256-color feature), you can use the ncurses 'd' screen to
@ -33,13 +33,13 @@
# the first 16 colors, and xterm happens to use the same first 16 colors in
# the extended color models that support initc.
#
# The colors shown are for xterm patch #189.
# The colors shown are for xterm patch #192.
scale:255
0: 0 0 0 black
1: 205 0 0 red3
2: 0 205 0 green3
3: 205 205 0 yellow3
4: 30 144 255 DodgerBlue1
4: 0 0 238 blue2
5: 205 0 205 magenta3
6: 0 205 205 cyan3
7: 229 229 229 gray90
@ -47,7 +47,7 @@ scale:255
9: 255 0 0 red
10: 0 255 0 green
11: 255 255 0 yellow
12: 99 184 255 SteelBlue1
12: 92 92 255 customblue
13: 255 0 255 magenta
14: 0 255 255 cyan
15: 255 255 255 white

View File

@ -1,5 +1,5 @@
##############################################################################
# Copyright (c) 2005-2006,2009 Free Software Foundation, Inc. #
# Copyright (c) 2005-2009,2016 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 "Software"), #
@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: xterm-88color.dat,v 1.3 2009/10/30 22:33:56 tom Exp $
# $Id: xterm-88color.dat,v 1.4 2016/12/10 23:06:43 tom Exp $
# This illustrates the predefined colors for xterm's "xterm-88color" feature.
# If you set $TERM to "xterm-88color" (and have xterm compiled to support the
# 88-color or 256-color feature), you can use the ncurses 'd' screen to
@ -33,13 +33,13 @@
# the first 16 colors, and xterm happens to use the same first 16 colors in
# the extended color models that support initc.
#
# The colors shown are for xterm patch #189.
# The colors shown are for xterm patch #192.
scale:255
0: 0 0 0 black
1: 205 0 0 red3
2: 0 205 0 green3
3: 205 205 0 yellow3
4: 30 144 255 DodgerBlue1
4: 0 0 238 blue2
5: 205 0 205 magenta3
6: 0 205 205 cyan3
7: 229 229 229 gray90
@ -47,7 +47,7 @@ scale:255
9: 255 0 0 red
10: 0 255 0 green
11: 255 255 0 yellow
12: 99 184 255 SteelBlue1
12: 92 92 255 customblue
13: 255 0 255 magenta
14: 0 255 255 cyan
15: 255 255 255 white