ncurses 5.9 - patch 20110409

+ fixes to build c++ binding with clang 3.0 (patch by Alexander
  Kolesen).
+ add check for unctrl.h in test/configure, to work around breakage in
  some ncurses packages.
+ add "--disable-widec" option to test/configure script.
+ add "--with-curses-colr" and "--with-curses-5lib" options to the
  test/configure script to address testing with very old machines.
This commit is contained in:
Thomas E. Dickey 2011-04-10 00:33:46 +00:00
parent 9de646fe8f
commit e8685f5e41
9 changed files with 1751 additions and 1865 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.1682 2011/04/04 00:02:42 tom Exp $
-- $Id: NEWS,v 1.1686 2011/04/10 00:05:44 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
@ -45,6 +45,15 @@ 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.
20110409
+ fixes to build c++ binding with clang 3.0 (patch by Alexander
Kolesen).
+ add check for unctrl.h in test/configure, to work around breakage in
some ncurses packages.
+ add "--disable-widec" option to test/configure script.
+ add "--with-curses-colr" and "--with-curses-5lib" options to the
test/configure script to address testing with very old machines.
20110404 5.9 release for upload to ftp.gnu.org
20110402

View File

@ -1,6 +1,6 @@
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
* Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* Copyright (c) 1998-2005,2011 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 *
@ -31,7 +31,7 @@
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
// $Id: cursesf.h,v 1.28 2005/08/13 18:08:24 tom Exp $
// $Id: cursesf.h,v 1.29 2011/04/09 18:07:01 Alexander.Kolesen Exp $
#ifndef NCURSES_CURSESF_H_incl
#define NCURSES_CURSESF_H_incl 1
@ -681,7 +681,7 @@ public:
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Fields=FALSE)
: NCursesForm (Fields, with_frame, autoDelete_Fields) {
: NCursesForm (&Fields, with_frame, autoDelete_Fields) {
if (form)
set_user (const_cast<void *>(p_UserData));
};
@ -694,7 +694,7 @@ public:
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Fields=FALSE)
: NCursesForm (Fields, nlines, ncols, begin_y, begin_x,
: NCursesForm (&Fields, nlines, ncols, begin_y, begin_x,
with_frame, autoDelete_Fields) {
if (form)
set_user (const_cast<void *>(p_UserData));

View File

@ -1,6 +1,6 @@
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
* Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* Copyright (c) 1998-2005,2011 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 *
@ -31,7 +31,7 @@
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
// $Id: cursesm.h,v 1.25 2005/08/13 18:10:36 tom Exp $
// $Id: cursesm.h,v 1.26 2011/04/09 18:07:08 Alexander.Kolesen Exp $
#ifndef NCURSES_CURSESM_H_incl
#define NCURSES_CURSESM_H_incl 1
@ -639,7 +639,7 @@ public:
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Items=FALSE)
: NCursesMenu (Items, with_frame, autoDelete_Items) {
: NCursesMenu (&Items, with_frame, autoDelete_Items) {
if (menu)
set_user (const_cast<void *>(p_UserData));
};
@ -651,7 +651,7 @@ public:
int begin_x = 0,
const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE)
: NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) {
: NCursesMenu (&Items, nlines, ncols, begin_y, begin_x, with_frame) {
if (menu)
set_user (const_cast<void *>(p_UserData));
};

View File

@ -25,7 +25,7 @@
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
# $Id: dist.mk,v 1.810 2011/04/04 22:42:20 tom Exp $
# $Id: dist.mk,v 1.811 2011/04/09 16:14: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 = 5
NCURSES_MINOR = 9
NCURSES_PATCH = 20110404
NCURSES_PATCH = 20110409
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)

View File

@ -1,4 +1,4 @@
# $Id: ncurses_defs,v 1.46 2011/03/22 09:17:59 tom Exp $
# $Id: ncurses_defs,v 1.47 2011/04/09 20:40:48 tom Exp $
##############################################################################
# Copyright (c) 2000-2010,2011 Free Software Foundation, Inc. #
# #
@ -153,6 +153,7 @@ HAVE_TYPEAHEAD 1
HAVE_TYPEINFO
HAVE_TYPE_ATTR_T
HAVE_TYPE_SIGACTION
HAVE_UNCTRL_H 1
HAVE_UNISTD_H
HAVE_UNLINK
HAVE_USE_DEFAULT_COLORS

132
test/aclocal.m4 vendored
View File

@ -26,7 +26,7 @@ dnl sale, use or other dealings in this Software without prior written *
dnl authorization. *
dnl***************************************************************************
dnl
dnl $Id: aclocal.m4,v 1.50 2011/03/24 08:28:07 tom Exp $
dnl $Id: aclocal.m4,v 1.52 2011/04/09 22:22:11 tom Exp $
dnl
dnl Author: Thomas E. Dickey
dnl
@ -533,7 +533,7 @@ CF_NCURSES_VERSION
CF_CURSES_LIBS
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CURSES_CPPFLAGS version: 10 updated: 2009/01/06 19:34:11
dnl CF_CURSES_CPPFLAGS version: 11 updated: 2011/04/09 14:51:08
dnl ------------------
dnl Look for the curses headers.
AC_DEFUN([CF_CURSES_CPPFLAGS],[
@ -542,13 +542,19 @@ AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
cf_cv_curses_incdir=no
case $host_os in #(vi
hpux10.*) #(vi
test -d /usr/include/curses_colr && \
cf_cv_curses_incdir="-I/usr/include/curses_colr"
if test "x$cf_cv_screen" = "xcurses_colr"
then
test -d /usr/include/curses_colr && \
cf_cv_curses_incdir="-I/usr/include/curses_colr"
fi
;;
sunos3*|sunos4*)
test -d /usr/5lib && \
test -d /usr/5include && \
cf_cv_curses_incdir="-I/usr/5include"
if test "x$cf_cv_screen" = "xcurses_5lib"
then
test -d /usr/5lib && \
test -d /usr/5include && \
cf_cv_curses_incdir="-I/usr/5include"
fi
;;
esac
])
@ -558,7 +564,7 @@ CF_CURSES_HEADER
CF_TERM_HEADER
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CURSES_FUNCS version: 15 updated: 2010/10/23 15:52:32
dnl CF_CURSES_FUNCS version: 16 updated: 2011/04/09 18:19:55
dnl ---------------
dnl Curses-functions are a little complicated, since a lot of them are macros.
AC_DEFUN([CF_CURSES_FUNCS],
@ -566,6 +572,7 @@ AC_DEFUN([CF_CURSES_FUNCS],
AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
AC_REQUIRE([CF_XOPEN_CURSES])
AC_REQUIRE([CF_CURSES_TERM_H])
AC_REQUIRE([CF_CURSES_UNCTRL_H])
for cf_func in $1
do
CF_UPPER(cf_tr_func,$cf_func)
@ -624,7 +631,7 @@ fi
AC_CHECK_HEADERS($cf_cv_ncurses_header)
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CURSES_LIBS version: 33 updated: 2011/03/06 12:37:18
dnl CF_CURSES_LIBS version: 34 updated: 2011/04/09 14:51:08
dnl --------------
dnl Look for the curses libraries. Older curses implementations may require
dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
@ -644,16 +651,23 @@ freebsd*) #(vi
AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
;;
hpux10.*) #(vi
AC_CHECK_LIB(cur_colr,initscr,[
CF_ADD_LIBS(-lcur_colr)
ac_cv_func_initscr=yes
],[
AC_CHECK_LIB(Hcurses,initscr,[
# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
CF_ADD_LIBS(-lHcurses)
CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
ac_cv_func_initscr=yes
])])
# Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
# next (1998), and xcurses "newer" (2000). There is no header file for
# Hcurses; the subdirectory curses_colr has the headers (curses.h and
# term.h) for cur_colr
if test "x$cf_cv_screen" = "xcurses_colr"
then
AC_CHECK_LIB(cur_colr,initscr,[
CF_ADD_LIBS(-lcur_colr)
ac_cv_func_initscr=yes
],[
AC_CHECK_LIB(Hcurses,initscr,[
# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
CF_ADD_LIBS(-lHcurses)
CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
ac_cv_func_initscr=yes
])])
fi
;;
linux*)
case `arch 2>/dev/null` in
@ -671,9 +685,12 @@ linux*)
esac
;;
sunos3*|sunos4*)
if test -d /usr/5lib ; then
CF_ADD_LIBDIR(/usr/5lib)
CF_ADD_LIBS(-lcurses -ltermcap)
if test "x$cf_cv_screen" = "xcurses_5lib"
then
if test -d /usr/5lib ; then
CF_ADD_LIBDIR(/usr/5lib)
CF_ADD_LIBS(-lcurses -ltermcap)
fi
fi
ac_cv_func_initscr=yes
;;
@ -738,7 +755,7 @@ fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CURSES_TERM_H version: 8 updated: 2010/10/23 15:54:49
dnl CF_CURSES_TERM_H version: 9 updated: 2011/04/09 18:19:55
dnl ----------------
dnl SVr4 curses should have term.h as well (where it puts the definitions of
dnl the low-level interface). This may not be true in old/broken implementations,
@ -752,9 +769,17 @@ AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
# for <term.h> if we do not find the variant.
for cf_header in \
`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%/.*%/%'`term.h \
term.h
cf_header_list="term.h ncurses/term.h ncursesw/term.h"
case ${cf_cv_ncurses_header:-curses.h} in #(vi
*/*)
cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
cf_header_list="$cf_header_item $cf_header_list"
;;
esac
for cf_header in $cf_header_list
do
AC_TRY_COMPILE([
#include <${cf_cv_ncurses_header:-curses.h}>
@ -800,6 +825,61 @@ ncursesw/term.h)
esac
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CURSES_UNCTRL_H version: 1 updated: 2011/04/09 18:19:55
dnl ------------------
dnl Any X/Open curses implementation must have unctrl.h, but ncurses packages
dnl may put it in a subdirectory (along with ncurses' other headers, of
dnl course). Packages which put the headers in inconsistent locations are
dnl broken).
AC_DEFUN([CF_CURSES_UNCTRL_H],
[
AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
AC_CACHE_CHECK(for unctrl.h, cf_cv_unctrl_header,[
# If we found <ncurses/curses.h>, look for <ncurses/unctrl.h>, but always look
# for <unctrl.h> if we do not find the variant.
cf_header_list="unctrl.h ncurses/unctrl.h ncursesw/unctrl.h"
case ${cf_cv_ncurses_header:-curses.h} in #(vi
*/*)
cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`unctrl.h
cf_header_list="$cf_header_item $cf_header_list"
;;
esac
for cf_header in $cf_header_list
do
AC_TRY_COMPILE([
#include <${cf_cv_ncurses_header:-curses.h}>
#include <${cf_header}>],
[WINDOW *x],
[cf_cv_unctrl_header=$cf_header
break],
[cf_cv_unctrl_header=no])
done
case $cf_cv_unctrl_header in #(vi
no)
AC_MSG_WARN(unctrl.h header not found)
;;
esac
])
case $cf_cv_unctrl_header in #(vi
unctrl.h) #(vi
AC_DEFINE(HAVE_UNCTRL_H)
;;
ncurses/unctrl.h) #(vi
AC_DEFINE(HAVE_NCURSES_UNCTRL_H)
;;
ncursesw/unctrl.h)
AC_DEFINE(HAVE_NCURSESW_UNCTRL_H)
;;
esac
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CURSES_WACS_MAP version: 5 updated: 2011/01/15 11:28:59
dnl ------------------
dnl Check for likely values of wacs_map[].

3331
test/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -28,7 +28,7 @@ dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey 1996, etc.
dnl
dnl $Id: configure.in,v 1.90 2011/03/22 09:15:08 tom Exp $
dnl $Id: configure.in,v 1.93 2011/04/09 20:11:47 tom Exp $
dnl This is a simple configuration-script for the ncurses test programs that
dnl allows the test-directory to be separately configured against a reference
dnl system (i.e., sysvr4 curses)
@ -101,16 +101,21 @@ CF_DISABLE_ECHO
CF_ENABLE_WARNINGS
CF_DISABLE_LEAKS
CF_WITH_CURSES_DIR
dnl SunOS 4.x
AC_ARG_WITH(5lib,
[ --with-5lib use SunOS sysv-libraries],
[LIBS="-L/usr/5lib $LIBS"
CPPFLAGS="$CPPFLAGS -I/usr/5include"])
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING(if you want to check for wide-character functions)
CF_ARG_DISABLE(widec,
[--disable-widec disable checks for wide-character functions],
cf_enable_widec=no,
cf_enable_widec=yes,
yes)
AC_MSG_RESULT($cf_enable_widec)
CF_WITH_CURSES_DIR
dnl ---------------------------------------------------------------------------
dnl NcursesW, installed in conventional location
AC_MSG_CHECKING(for specified curses library type)
AC_ARG_WITH(ncursesw,
[ --with-ncursesw use wide ncurses-libraries (installed)],
[cf_cv_screen=ncursesw],[
@ -122,10 +127,20 @@ AC_ARG_WITH(ncurses,
AC_ARG_WITH(pdcurses,
[ --with-pdcurses compile/link with pdcurses X11 library],
[cf_cv_screen=pdcurses])])])
[cf_cv_screen=pdcurses],[
AC_ARG_WITH(curses-colr,
[ --with-curses-colr compile/link with HPUX 10.x color-curses],
[cf_cv_screen=curses_colr],[
AC_ARG_WITH(curses-5lib,
[ --with-curses-5lib compile/link with SunOS 5lib curses],
[cf_cv_screen=curses_5lib])])])])])
AC_MSG_RESULT($cf_cv_screen)
case $cf_cv_screen in
curses)
curses|curses_*)
CF_CURSES_CONFIG
CF_NETBSD_FORM_H
CF_NETBSD_MENU_H
@ -187,16 +202,21 @@ unistd.h \
AC_CHECK_FUNCS( \
gettimeofday \
strdup \
)
if test "$cf_enable_widec" = yes; then
AC_CHECK_FUNCS( \
mblen \
mbrlen \
mbrtowc \
mbsrtowcs \
mbstowcs \
mbtowc \
strdup \
wcsrtombs \
wcstombs \
)
fi
CF_CURSES_FUNCS( \
chgat \
@ -235,46 +255,55 @@ wsyncdown \
CF_NCURSES_EXT_FUNCS
AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
AC_TRY_LINK([
if test "$cf_enable_widec" = yes
then
AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
AC_TRY_LINK([
#include <${cf_cv_ncurses_header:-curses.h}>],
[
static wchar_t src_wchar[2];
static cchar_t dst_cchar;
setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
],
[cf_cv_widechar_funcs=yes],
[cf_cv_widechar_funcs=no])
])
if test "$cf_cv_widechar_funcs" != no ; then
AC_DEFINE(USE_WIDEC_SUPPORT,1)
[
static wchar_t src_wchar[2];
static cchar_t dst_cchar;
setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
],
[cf_cv_widechar_funcs=yes],
[cf_cv_widechar_funcs=no])
])
if test "$cf_cv_widechar_funcs" != no ; then
AC_DEFINE(USE_WIDEC_SUPPORT,1)
else
AC_DEFINE(USE_WIDEC_SUPPORT,0)
fi
else
AC_DEFINE(USE_WIDEC_SUPPORT,0)
fi
AC_FUNC_VFORK
CF_SYS_TIME_SELECT
CF_FUNC_CURSES_VERSION
CF_CURSES_ACS_MAP
CF_CURSES_WACS_MAP
CF_CURSES_WACS_SYMBOLS
if test "$cf_enable_widec" = yes; then
CF_CURSES_WACS_MAP
CF_CURSES_WACS_SYMBOLS
fi
CF_CURSES_CHECK_TYPE(attr_t,long)
CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T)
CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
if test "$cf_enable_widec" = yes; then
CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T)
CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T)
CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
CF_CURSES_CHECK_TYPE(mbstate_t,long)
fi
if test "$NCURSES_OK_MBSTATE_T" = 0 ; then
CF_CURSES_CHECK_TYPE(mbstate_t,long)
fi
if test "$NCURSES_OK_WCHAR_T" = 0 ; then
CF_CURSES_CHECK_TYPE(wchar_t,long)
fi
if test "$NCURSES_OK_WCHAR_T" = 0 ; then
CF_CURSES_CHECK_TYPE(wchar_t,long)
fi
if test "$NCURSES_OK_WINT_T" = 0 ; then
CF_CURSES_CHECK_TYPE(wint_t,long)
if test "$NCURSES_OK_WINT_T" = 0 ; then
CF_CURSES_CHECK_TYPE(wint_t,long)
fi
fi
CF_CURSES_CHECK_DATA(boolnames)

View File

@ -29,7 +29,7 @@
/****************************************************************************
* Author: Thomas E. Dickey 1996-on *
****************************************************************************/
/* $Id: test.priv.h,v 1.103 2011/03/22 09:15:45 tom Exp $ */
/* $Id: test.priv.h,v 1.105 2011/04/09 20:41:51 tom Exp $ */
#ifndef __TEST_PRIV_H
#define __TEST_PRIV_H 1
@ -222,6 +222,13 @@
#define NO_LEAKS 0
#endif
/*
* Workaround for HPUX
*/
#if defined(__hpux) && !defined(NCURSES_VERSION)
#define _ACS_COMPAT_CODE /* needed for acs_map vs __acs_map */
#endif
#include <stdlib.h>
#include <stdarg.h>
#include <string.h>
@ -269,17 +276,14 @@
/*
* Not all curses.h implementations include unctrl.h,
* Solaris 10 xpg4 for example.
*/
#if defined(NCURSES_VERSION) || defined(_XOPEN_CURSES)
#if defined(HAVE_NCURSESW_NCURSES_H)
#if defined(HAVE_NCURSESW_UNCTRL_H)
#include <ncursesw/unctrl.h>
#elif defined(HAVE_NCURSES_NCURSES_H)
#elif defined(HAVE_NCURSES_UNCTRL_H)
#include <ncurses/unctrl.h>
#else
#elif defined(HAVE_UNCTRL_H)
#include <unctrl.h>
#endif
#endif
#if HAVE_GETOPT_H
#include <getopt.h>