Submitted By: Jim Gifford (jim at cross-lfs dot org)
Date: 06-05-2009
Initial Package Version: 5.7
Origin: Upstream
Upstream Status: Applied
Description: This is a branch update for NCurses-5.7, and should be
             rechecked periodically. This patch covers up to 5.7-20090530.

diff -Naur ncurses-5.7.orig/aclocal.m4 ncurses-5.7/aclocal.m4
--- ncurses-5.7.orig/aclocal.m4	2008-10-25 15:15:32.000000000 -0700
+++ ncurses-5.7/aclocal.m4	2009-06-05 14:01:31.000000000 -0700
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2008,2009 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -28,7 +28,7 @@
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.470 2008/10/25 22:15:32 tom Exp $
+dnl $Id: aclocal.m4,v 1.487 2009/04/04 22:32:42 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -86,7 +86,7 @@
 AC_SUBST(ACPPFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
+dnl CF_ADD_CFLAGS version: 8 updated: 2009/01/06 19:33:30
 dnl -------------
 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
 dnl The second parameter if given makes this macro verbose.
@@ -156,7 +156,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 	ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -168,7 +168,7 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 9 updated: 2008/02/09 13:15:34
+dnl CF_ADD_INCDIR version: 12 updated: 2009/01/18 10:00:47
 dnl -------------
 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
@@ -195,7 +195,7 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
@@ -211,11 +211,11 @@
 
 		if test "$cf_have_incdir" = no ; then
 		  CF_VERBOSE(adding $cf_add_incdir to include-path)
-		  ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
+		  ifelse($2,,CPPFLAGS,$2)="$ifelse($2,,CPPFLAGS,$2) -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -225,7 +225,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_LIBDIR version: 6 updated: 2008/02/09 13:15:34
+dnl CF_ADD_LIBDIR version: 8 updated: 2009/01/18 10:01:08
 dnl -------------
 dnl	Adds to the library-path
 dnl
@@ -254,7 +254,7 @@
       fi
       if test "$cf_have_libdir" = no ; then
         CF_VERBOSE(adding $cf_add_libdir to library-path)
-        ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
+        ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,$2)"
       fi
     fi
   done
@@ -353,7 +353,41 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_AWK_BIG_PRINTF version: 2 updated: 2008/10/04 17:16:18
+dnl CF_AR_FLAGS version: 4 updated: 2009/02/07 13:42:23
+dnl -----------
+dnl Check for suitable "ar" (archiver) options for updating an archive.
+AC_DEFUN([CF_AR_FLAGS],[
+AC_REQUIRE([CF_PROG_AR])
+
+AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
+	cf_cv_ar_flags=unknown
+	for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
+	do
+		rm -f conftest.$ac_cv_objext
+		rm -f conftest.a
+
+		cat >conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+int	testdata[[3]] = { 123, 456, 789 };
+EOF
+		if AC_TRY_EVAL(ac_compile) ; then
+			$AR $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
+			if test -f conftest.a ; then
+				cf_cv_ar_flags=$cf_ar_flags
+				break
+			fi
+		else
+			CF_VERBOSE(cannot compile test-program)
+			break
+		fi
+	done
+	rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+])
+test -z "$ARFLAGS" && ARFLAGS=$cf_cv_ar_flags
+AC_SUBST(ARFLAGS,$cf_cv_ar_flags)
+])
+dnl ---------------------------------------------------------------------------
+dnl CF_AWK_BIG_PRINTF version: 3 updated: 2008/12/27 12:30:03
 dnl -----------------
 dnl Check if awk can handle big strings using printf.  Some older versions of
 dnl awk choke on large strings passed via "%s".
@@ -362,19 +396,19 @@
 dnl $2 = variable to set with result
 AC_DEFUN([CF_AWK_BIG_PRINTF],
 [
-    case x$AWK in #(vi
-    x)
-        eval $2=no
-        ;;
-    *) #(vi
-        if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
-            | $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
-            eval $2=yes
-        else
-            eval $2=no
-        fi
-        ;;
-    esac
+	case x$AWK in #(vi
+	x)
+		eval $2=no
+		;;
+	*) #(vi
+		if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < $1) { xx = xx "x"; }; printf("%s\n", xx); }' \
+			| $AWK '{ printf "%d\n", length([$]0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ([$]0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
+			eval $2=yes
+		else
+			eval $2=no
+		fi
+		;;
+	esac
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18
@@ -1019,7 +1053,7 @@
 CXXFLAGS="$cf_save_CXXFLAGS"
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_FIND_LINKAGE version: 12 updated: 2007/07/29 20:13:53
+dnl CF_FIND_LINKAGE version: 13 updated: 2008/12/24 07:59:55
 dnl ---------------
 dnl Find a library (specifically the linkage used in the code fragment),
 dnl searching for it if it is not already in the library path.
@@ -1052,6 +1086,7 @@
     cf_cv_find_linkage_$3=yes,[
     cf_cv_find_linkage_$3=no
 
+    CF_VERBOSE(find linkage for $3 library)
     CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
 
     cf_save_CPPFLAGS="$CPPFLAGS"
@@ -1451,7 +1486,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 23 updated: 2008/07/26 17:54:02
+dnl CF_GCC_WARNINGS version: 24 updated: 2009/02/01 15:21:00
 dnl ---------------
 dnl Check if the compiler supports useful warning options.  There's a few that
 dnl we don't use, simply because they're too noisy:
@@ -1484,7 +1519,6 @@
 then
 # The "-wdXXX" options suppress warnings:
 # remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
 # remark #193: zero used for undefined preprocessing identifier
@@ -1492,19 +1526,18 @@
 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
 # remark #869: parameter "tw" was never referenced
 # remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
+# warning #279: controlling expression is constant
 
 	AC_CHECKING([for $CC warning options])
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-Wall"
 	for cf_opt in \
 		wd1419 \
-		wd1682 \
 		wd1683 \
 		wd1684 \
 		wd193 \
-		wd279 \
 		wd593 \
+		wd279 \
 		wd810 \
 		wd869 \
 		wd981
@@ -1998,11 +2031,31 @@
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
+dnl CF_HEADER_PATH version: 9 updated: 2008/12/07 19:38:31
 dnl --------------
-dnl Construct a search-list for a nonstandard header-file
+dnl Construct a search-list of directories for a nonstandard header-file
+dnl
+dnl Parameters
+dnl	$1 = the variable to return as result
+dnl	$2 = the package name
 AC_DEFUN([CF_HEADER_PATH],
-[CF_SUBDIR_PATH($1,$2,include)
+[
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
+			cf_header_path_list="$cf_header_path_list [$]$1"
+			;;
+		esac
+	done
+fi
+
+CF_SUBDIR_PATH($1,$2,include)
+
 test "$includedir" != NONE && \
 test "$includedir" != "/usr/include" && \
 test -d "$includedir" && {
@@ -2017,6 +2070,7 @@
 	test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
 }
 
+$1="$cf_header_path_list [$]$1"
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
@@ -2026,7 +2080,7 @@
 [AC_DIVERT_HELP([$1])dnl
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_INCLUDE_DIRS version: 5 updated: 2006/10/14 15:23:15
+dnl CF_INCLUDE_DIRS version: 6 updated: 2009/01/06 19:37:40
 dnl ---------------
 dnl Construct the list of include-options according to whether we're building
 dnl in the source directory or using '--srcdir=DIR' option.  If we're building
@@ -2034,9 +2088,9 @@
 dnl since that usually breaks gcc's shadow-includes.
 AC_DEFUN([CF_INCLUDE_DIRS],
 [
-CPPFLAGS="-I. -I../include $CPPFLAGS"
+CPPFLAGS="$CPPFLAGS -I. -I../include"
 if test "$srcdir" != "."; then
-	CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
 fi
 if test "$GCC" != yes; then
 	CPPFLAGS="$CPPFLAGS -I\${includedir}"
@@ -2143,7 +2197,7 @@
 ])
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_LDFLAGS_STATIC version: 4 updated: 2008/10/18 17:58:20
+dnl CF_LDFLAGS_STATIC version: 7 updated: 2009/04/04 18:31:04
 dnl -----------------
 dnl Check for compiler/linker flags used to temporarily force usage of static
 dnl libraries.  This depends on the compiler and platform.  Use this to help
@@ -2153,7 +2207,7 @@
 
 if test "$GCC" = yes ; then
 	case $cf_cv_system_name in #(
-	OS/2*|os2*|aix[[45]]*) 	#( vi
+	OS/2*|os2*|aix[[4]]*|solaris2.1[[0-9]]|darwin*) 	#( vi
 		LDFLAGS_STATIC=
 		LDFLAGS_SHARED=
 		;;
@@ -2164,7 +2218,7 @@
     esac
 else
 	case $cf_cv_system_name in #(
-	aix[[45]]*) 	#( from ld manpage
+	aix[[456]]*) 	#( from ld manpage
 		LDFLAGS_STATIC=-bstatic
 		LDFLAGS_SHARED=-bdynamic
 		;;
@@ -2179,7 +2233,7 @@
 		;;
 	osf[[45]]*)	#( from ld manpage osf4.0d, osf5.1
 		# alternative "-oldstyle_liblookup" (not in cc manpage)
-		LDFLAGS_STATIC=-noso 
+		LDFLAGS_STATIC=-noso
 		LDFLAGS_SHARED=-so_archive
 		;;
 	solaris2*)
@@ -2193,11 +2247,33 @@
 AC_SUBST(LDFLAGS_SHARED)
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
+dnl CF_LIBRARY_PATH version: 8 updated: 2008/12/07 19:38:31
 dnl ---------------
-dnl Construct a search-list for a nonstandard library-file
+dnl Construct a search-list of directories for a nonstandard library-file
+dnl
+dnl Parameters
+dnl	$1 = the variable to return as result
+dnl	$2 = the package name
 AC_DEFUN([CF_LIBRARY_PATH],
-[CF_SUBDIR_PATH($1,$2,lib)])dnl
+[
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
+			cf_library_path_list="$cf_library_path_list [$]$1"
+			;;
+		esac
+	done
+fi
+
+CF_SUBDIR_PATH($1,$2,lib)
+
+$1="$cf_library_path_list [$]$1"
+])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
 dnl -------------
@@ -2216,7 +2292,7 @@
 	AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 53 updated: 2008/09/20 19:51:59
+dnl CF_LIB_RULES version: 55 updated: 2008/12/13 16:17:38
 dnl ------------
 dnl Append definitions and rules for the given models to the subdirectory
 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
@@ -2504,18 +2580,28 @@
 install.libs uninstall.libs \\
 install.data uninstall.data ::
 $MAKE_TERMINFO	cd misc && \${MAKE} \${CF_MFLAGS} \[$]@
+CF_EOF
+
+if test "x$cf_with_manpages" = xyes; then
+cat >> Makefile <<CF_EOF
 
 install.man \\
 uninstall.man ::
 	cd man && \${MAKE} \${CF_MFLAGS} \[$]@
+CF_EOF
+fi
+
+cat >> Makefile <<CF_EOF
 
 distclean ::
 	rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
 	rm -f headers.sh headers.sed mk_shared_lib.sh
+	rm -f edit_man.* man_alias.*
 	rm -rf \${DIRS_TO_MAKE}
 CF_EOF
 
 # Special case: tack's manpage lives in its own directory.
+if test "x$cf_with_manpages" = xyes; then
 if test -d tack ; then
 if test -f $srcdir/$tack.h; then
 cat >> Makefile <<CF_EOF
@@ -2526,6 +2612,7 @@
 CF_EOF
 fi
 fi
+fi
 
 dnl If we're installing into a subdirectory of /usr/include, etc., we should
 dnl prepend the subdirectory's name to the "#include" paths.  It won't hurt
@@ -2679,7 +2766,7 @@
 ])
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_SUFFIX version: 15 updated: 2008/09/13 11:54:48
+dnl CF_LIB_SUFFIX version: 16 updated: 2008/12/27 12:30:03
 dnl -------------
 dnl Compute the library file-suffix from the given model name
 dnl $1 = model name
@@ -2689,40 +2776,44 @@
 AC_DEFUN([CF_LIB_SUFFIX],
 [
 	AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
-	case $1 in
-	libtool)
+	case $1 in #(vi
+	libtool) #(vi
 		$2='.la'
 		$3=[$]$2
 		;;
-	normal)
+	normal) #(vi
 		$2='.a'
 		$3=[$]$2
 		;;
-	debug)
+	debug) #(vi
 		$2='_g.a'
 		$3=[$]$2
 		;;
-	profile)
+	profile) #(vi
 		$2='_p.a'
 		$3=[$]$2
 		;;
-	shared)
+	shared) #(vi
 		case $cf_cv_system_name in
-		cygwin*)
+		aix[[56]]*) #(vi
+			$2='.a'
+			$3=[$]$2
+			;;
+		cygwin*) #(vi
 			$2='.dll'
 			$3='.dll.a'
 			;;
-		darwin*)
+		darwin*) #(vi
 			$2='.dylib'
 			$3=[$]$2
 			;;
-		hpux*)
+		hpux*) #(vi
 			case $target in
-			ia64*)
+			ia64*) #(vi
 				$2='.so'
 				$3=[$]$2
 				;;
-			*)
+			*) #(vi
 				$2='.sl'
 				$3=[$]$2
 				;;
@@ -2755,7 +2846,7 @@
 	test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LINK_DATAONLY version: 8 updated: 2006/12/16 12:33:30
+dnl CF_LINK_DATAONLY version: 9 updated: 2009/01/01 20:21:38
 dnl ----------------
 dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
 dnl only data (i.e., no functions), for example NeXT.  On those systems we'll
@@ -2772,7 +2863,7 @@
 EOF
 	if AC_TRY_EVAL(ac_compile) ; then
 		mv conftest.o data.o && \
-		( $AR $AR_OPTS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
+		( $AR $ARFLAGS conftest.a data.o ) 2>&AC_FD_CC 1>/dev/null
 	fi
 	rm -f conftest.$ac_ext data.o
 	cat >conftest.$ac_ext <<EOF
@@ -2791,7 +2882,7 @@
 EOF
 	if AC_TRY_EVAL(ac_compile); then
 		mv conftest.o func.o && \
-		( $AR $AR_OPTS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
+		( $AR $ARFLAGS conftest.a func.o ) 2>&AC_FD_CC 1>/dev/null
 	fi
 	rm -f conftest.$ac_ext func.o
 	( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null
@@ -2956,7 +3047,7 @@
 AC_SUBST(MAKE_LOWER_TAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34
+dnl CF_MANPAGE_FORMAT version: 8 updated: 2009/01/11 20:30:50
 dnl -----------------
 dnl Option to allow user to override automatic configuration of manpage format.
 dnl There are several special cases:
@@ -2998,7 +3089,7 @@
   cf_catonly=yes
   cf_example=date
 
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
   for cf_dir in $MANPATH; do
     test -z "$cf_dir" && cf_dir=/usr/man
     for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
@@ -3687,17 +3778,17 @@
 	esac
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
+dnl CF_PATHSEP version: 4 updated: 2009/01/11 20:30:23
 dnl ----------
 dnl Provide a value for the $PATH and similar separator
 AC_DEFUN([CF_PATHSEP],
 [
 	case $cf_cv_system_name in
-	os2*)	PATHSEP=';'  ;;
-	*)	PATHSEP=':'  ;;
+	os2*)	PATH_SEPARATOR=';'  ;;
+	*)	PATH_SEPARATOR=':'  ;;
 	esac
-ifelse($1,,,[$1=$PATHSEP])
-	AC_SUBST(PATHSEP)
+ifelse($1,,,[$1=$PATH_SEPARATOR])
+	AC_SUBST(PATH_SEPARATOR)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
@@ -3737,6 +3828,38 @@
 esac
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_PKG_CONFIG version: 3 updated: 2009/01/25 10:55:09
+dnl -------------
+dnl Check for the package-config program, unless disabled by command-line.
+AC_DEFUN([CF_PKG_CONFIG],
+[
+AC_MSG_CHECKING(if you want to use pkg-config)
+AC_ARG_WITH(pkg-config,
+	[  --with-pkg-config{=path} enable/disable use of pkg-config],
+	[cf_pkg_config=$withval],
+	[cf_pkg_config=yes])
+AC_MSG_RESULT($cf_pkg_config)
+
+case $cf_pkg_config in #(vi
+no) #(vi
+	PKG_CONFIG=none
+	;;
+yes) #(vi
+	AC_PATH_PROG(PKG_CONFIG, pkg-config, none)
+	;;
+*)
+	PKG_CONFIG=$withval
+	;;
+esac
+
+test -z "$PKG_CONFIG" && PKG_CONFIG=none
+if test "$PKG_CONFIG" != none ; then
+	CF_PATH_SYNTAX(PKG_CONFIG)
+fi
+
+AC_SUBST(PKG_CONFIG)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
 dnl -----------------
 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
@@ -3872,6 +3995,13 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
+dnl ----------
+dnl Check for archiver "ar".
+AC_DEFUN([CF_PROG_AR],[
+AC_CHECK_TOOL(AR, ar, ar)
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_PROG_AWK version: 1 updated: 2006/09/16 11:40:59
 dnl -----------
 dnl Check for awk, ensure that the check found something.
@@ -4003,7 +4133,7 @@
 esac
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55
+dnl CF_PROG_LDCONFIG version: 2 updated: 2008/12/13 14:08:40
 dnl ----------------
 dnl Check for ldconfig, needed to fixup shared libraries that would be built
 dnl and then used in the install.
@@ -4012,7 +4142,7 @@
   LDCONFIG=:
 else
 case "$cf_cv_system_name" in #(vi
-freebsd*) #(vi
+dragonfly*|freebsd*) #(vi
   test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
   ;;
 *) LDPATH=$PATH:/sbin:/usr/sbin
@@ -4147,7 +4277,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 53 updated: 2008/10/25 18:14:20
+dnl CF_SHARED_OPTS version: 57 updated: 2009/01/17 16:10:05
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -4176,6 +4306,7 @@
 	AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
 	LOCAL_LDFLAGS=
 	LOCAL_LDFLAGS2=
+	LD_RPATH_OPT=
 	LD_SHARED_OPTS=
 	INSTALL_LIB="-m 644"
 
@@ -4219,6 +4350,12 @@
 	cf_cv_shlib_version_infix=no
 
 	case $cf_cv_system_name in
+	aix[[56]]*)
+		if test "$GCC" = yes; then
+			CC_SHARED_OPTS=
+			MK_SHARED_LIB="$(CC) -shared"
+		fi
+		;;
 	beos*)
 		MK_SHARED_LIB='${CC} ${CFLAGS} -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0'
 		;;
@@ -4239,7 +4376,7 @@
 EOF
 		exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
 CF_EOF
-		chmod +x mk_shared_lib.sh 
+		chmod +x mk_shared_lib.sh
 		;;
 	darwin*)
 		EXTRA_CFLAGS="-no-cpp-precomp"
@@ -4272,10 +4409,10 @@
 	irix*)
 		if test "$cf_cv_ld_rpath" = yes ; then
 			if test "$GCC" = yes; then
-				cf_ld_rpath_opt="-Wl,-rpath,"
+				LD_RPATH_OPT="-Wl,-rpath,"
 				EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
 			else
-				cf_ld_rpath_opt="-rpath "
+				LD_RPATH_OPT="-rpath "
 				EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
 			fi
 		fi
@@ -4294,7 +4431,7 @@
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
 		fi
 		if test "$cf_cv_ld_rpath" = yes ; then
-			cf_ld_rpath_opt="-Wl,-rpath,"
+			LD_RPATH_OPT="-Wl,-rpath,"
 			EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
 		fi
 		CF_SHARED_SONAME
@@ -4306,12 +4443,12 @@
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
 		fi
 		if test "$cf_cv_ld_rpath" = yes ; then
-			cf_ld_rpath_opt="-Wl,-rpath,"
+			LD_RPATH_OPT="-Wl,-rpath,"
 			EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
 		fi
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
 		CF_SHARED_SONAME
-		MK_SHARED_LIB='${CC} ${CFLAGS} -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
+		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
 		;;
 	nto-qnx*|openbsd*|freebsd[[12]].*)
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
@@ -4323,15 +4460,15 @@
 		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
 			LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
 			LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
-			cf_ld_rpath_opt="-rpath "
+			LD_RPATH_OPT="-rpath "
 			EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
 		fi
 		CF_SHARED_SONAME
-		MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $[@]` -o $[@]'
+		MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
 		;;
 	netbsd*)
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
-		test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
+		test "$cf_cv_ld_rpath" = yes && LD_RPATH_OPT="-Wl,-rpath,"
 		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
 			LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
@@ -4346,7 +4483,7 @@
 			CF_SHARED_SONAME
 			MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
 		else
-			MK_SHARED_LIB='${LD} -Bshareable -o $[@]'
+			MK_SHARED_LIB='${LD} -shared -Bshareable -o $[@]'
 		fi
 		;;
 	osf*|mls+*)
@@ -4365,7 +4502,7 @@
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
 		fi
 		if test "$cf_cv_ld_rpath" = yes ; then
-			cf_ld_rpath_opt="-rpath"
+			LD_RPATH_OPT="-rpath"
 			# EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
 		fi
 		cf_cv_rm_so_locs=yes
@@ -4400,12 +4537,19 @@
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
 		fi
 		if test "$cf_cv_ld_rpath" = yes ; then
-			cf_ld_rpath_opt="-R"
+			LD_RPATH_OPT="-R"
 			EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
 		fi
 		CF_SHARED_SONAME
 		if test "$GCC" != yes; then
-			CC_SHARED_OPTS='-xcode=pic32'
+			cf_save_CFLAGS="$CFLAGS"
+			for cf_shared_opts in -xcode=pic13 -xcode=pic32 -Kpic -KPIC -O
+			do
+				CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
+				AC_TRY_COMPILE([#include <stdio.h>],[printf("Hello\n");],[break])
+			done
+			CFLAGS="$cf_save_CFLAGS"
+			CC_SHARED_OPTS=$cf_shared_opts
 			MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
 		else
 			MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
@@ -4438,18 +4582,19 @@
 		;;
 	esac
 
-	if test -n "$cf_ld_rpath_opt" ; then
+	if test -n "$LD_RPATH_OPT" ; then
 		AC_MSG_CHECKING(if we need a space after rpath option)
 		cf_save_LIBS="$LIBS"
-		LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
+		LIBS="$LIBS ${LD_RPATH_OPT}$libdir"
 		AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes)
 		LIBS="$cf_save_LIBS"
 		AC_MSG_RESULT($cf_rpath_space)
-		test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
-		MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
+		test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
+		MK_SHARED_LIB="$MK_SHARED_LIB $LD_RPATH_OPT\${libdir}"
 	fi
 
 	AC_SUBST(CC_SHARED_OPTS)
+	AC_SUBST(LD_RPATH_OPT)
 	AC_SUBST(LD_SHARED_OPTS)
 	AC_SUBST(MK_SHARED_LIB)
 	AC_SUBST(LINK_PROGS)
@@ -4642,7 +4787,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54
+dnl CF_SRC_MODULES version: 20 updated: 2008/12/27 12:30:03
 dnl --------------
 dnl For each parameter, test if the source-directory exists, and if it contains
 dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
@@ -4717,7 +4862,11 @@
 AC_SUBST(TEST_ARG2)
 AC_SUBST(TEST_DEP2)
 
-SRC_SUBDIRS="man include"
+SRC_SUBDIRS=
+if test "x$cf_with_manpages" != xno ; then
+	SRC_SUBDIRS="$SRC_SUBDIRS man"
+fi
+SRC_SUBDIRS="$SRC_SUBDIRS include"
 for cf_dir in $cf_cv_src_modules
 do
 	SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
@@ -4728,8 +4877,8 @@
 
 ADA_SUBDIRS=
 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
-   SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
-   ADA_SUBDIRS="gen src samples"
+	SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
+	ADA_SUBDIRS="gen src samples"
 fi
 
 SUB_MAKEFILES=
@@ -4739,11 +4888,11 @@
 done
 
 if test -n "$ADA_SUBDIRS"; then
-   for cf_dir in $ADA_SUBDIRS
-   do
-      SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
-   done
-   AC_SUBST(ADA_SUBDIRS)
+	for cf_dir in $ADA_SUBDIRS
+	do
+		SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
+	done
+	AC_SUBST(ADA_SUBDIRS)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -5241,7 +5390,7 @@
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_LIBTOOL version: 19 updated: 2008/03/29 15:46:43
+dnl CF_WITH_LIBTOOL version: 23 updated: 2009/03/28 14:26:27
 dnl ---------------
 dnl Provide a configure option to incorporate libtool.  Define several useful
 dnl symbols for the makefile rules.
@@ -5261,18 +5410,18 @@
 dnl		echo cannot find libtool.m4 file
 dnl		exit 1
 dnl	fi
-dnl	
+dnl
 dnl	LOCAL=aclocal.m4
 dnl	ORIG=aclocal.m4.orig
-dnl	
+dnl
 dnl	trap "mv $ORIG $LOCAL" 0 1 2 5 15
 dnl	rm -f $ORIG
 dnl	mv $LOCAL $ORIG
-dnl	
+dnl
 dnl	# sed the LIBTOOL= assignment to omit the current directory?
 dnl	sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL
 dnl	cat $ORIG >>$LOCAL
-dnl	
+dnl
 dnl	autoconf-257 $*
 dnl
 AC_DEFUN([CF_WITH_LIBTOOL],
@@ -5306,17 +5455,17 @@
 	AC_PROG_LIBTOOL
 	# missing_content_AC_PROG_LIBTOOL}}
 ],[
- 	if test "$with_libtool" != "yes" ; then
+	if test "$with_libtool" != "yes" ; then
 		CF_PATH_SYNTAX(with_libtool)
 		LIBTOOL=$with_libtool
 	else
- 		AC_PATH_PROG(LIBTOOL,libtool)
- 	fi
- 	if test -z "$LIBTOOL" ; then
- 		AC_MSG_ERROR(Cannot find libtool)
- 	fi
+		AC_PATH_PROG(LIBTOOL,libtool)
+	fi
+	if test -z "$LIBTOOL" ; then
+		AC_MSG_ERROR(Cannot find libtool)
+	fi
 ])dnl
-	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
+	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
 	LIB_OBJECT='${OBJECTS:.o=.lo}'
 	LIB_SUFFIX=.la
 	LIB_CLEAN='${LIBTOOL} --mode=clean'
@@ -5331,16 +5480,25 @@
 
 	# Save the version in a cache variable - this is not entirely a good
 	# thing, but the version string from libtool is very ugly, and for
-	# bug reports it might be useful to have the original string.
+	# bug reports it might be useful to have the original string. "("
 	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
 	AC_MSG_RESULT($cf_cv_libtool_version)
 	if test -z "$cf_cv_libtool_version" ; then
 		AC_MSG_ERROR(This is not GNU libtool)
 	fi
 
+	# special hack to add -no-undefined (which libtool should do for itself)
+	LT_UNDEF=
+	case "$cf_cv_system_name" in #(vi
+	cygwin*|mingw32*|uwin*|aix[[456]]) #(vi
+		LT_UNDEF=-no-undefined
+		;;
+	esac
+	AC_SUBST([LT_UNDEF])
+
 	# special hack to add --tag option for C++ compiler
-	case $cf_cv_libtool_version in
-	1.[[5-9]]*|[[2-9]]*)
+	case $cf_cv_libtool_version in #(vi
+	1.[[5-9]]*|[[2-9]].[[0-9.a-z]]*) #(vi
 		LIBTOOL_CXX="$LIBTOOL --tag=CXX"
 		LIBTOOL="$LIBTOOL --tag=CC"
 		;;
@@ -5393,7 +5551,7 @@
 AC_SUBST($3)dnl
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30
+dnl CF_WITH_PATHLIST version: 6 updated: 2009/01/11 20:30:23
 dnl ----------------
 dnl Process an option specifying a list of colon-separated paths.
 dnl
@@ -5409,7 +5567,7 @@
 AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),,
 ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl
 
-IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
+IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
 cf_dst_path=
 for cf_src_path in $withval
 do
@@ -5535,7 +5693,7 @@
 	[USE_VALGRIND])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 26 updated: 2008/07/27 11:26:57
+dnl CF_XOPEN_SOURCE version: 28 updated: 2008/12/27 12:30:03
 dnl ---------------
 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
 dnl or adapt to the vendor's definitions to get equivalent functionality,
@@ -5552,7 +5710,7 @@
 cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
 
 case $host_os in #(vi
-aix[[45]]*) #(vi
+aix[[456]]*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
 	;;
 freebsd*|dragonfly*) #(vi
@@ -5569,7 +5727,7 @@
 irix[[56]].*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
 	;;
-linux*|gnu*|k*bsd*-gnu) #(vi
+linux*|gnu*|mint*|k*bsd*-gnu) #(vi
 	CF_GNU_SOURCE
 	;;
 mirbsd*) #(vi
diff -Naur ncurses-5.7.orig/Ada95/gen/adacurses-config.in ncurses-5.7/Ada95/gen/adacurses-config.in
--- ncurses-5.7.orig/Ada95/gen/adacurses-config.in	2007-04-07 14:06:50.000000000 -0700
+++ ncurses-5.7/Ada95/gen/adacurses-config.in	2009-06-05 14:01:07.000000000 -0700
@@ -1,18 +1,47 @@
 #! /bin/sh
-# $Id: adacurses-config.in,v 1.2 2007/04/07 21:06:50 tom Exp $
-#
-# This script will return the option to add to `gnatmake' for using
-# AdaCurses.
+# $Id: adacurses-config.in,v 1.5 2009/01/11 00:08:19 tom Exp $
+##############################################################################
+# Copyright (c) 2007,2009 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.                                                             #
+##############################################################################
 #
+# This script returns the options to add to `gnatmake' for using AdaCurses.
+
+DESTDIR=@DESTDIR@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
 
-prefix="@prefix@"
-exec_prefix="@exec_prefix@"
-libdir="@libdir@"
+ADA_INCLUDE=@ADA_INCLUDE@
+ADA_OBJECTS=@ADA_OBJECTS@
 
-VERSION="@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@"
+VERSION=@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@
 
-CFLAGS="-I$libdir/adacurses -L$libdir/adacurses"
-LIBS="-L$prefix/lib -lAdaCurses"
+CFLAGS="-I$ADA_INCLUDE -aO$ADA_OBJECTS"
+LIBS="-L$ADA_OBJECTS -lAdaCurses"
 
 case "x$1" in
     x--version)
@@ -26,10 +55,10 @@
         ;;
     x)
     	# if no parameter is given, give what gnatmake needs
-        echo $CFLAGS -largs $LIBS
+        echo "$CFLAGS -i -largs $LIBS"
         ;;
     *)
-        echo 'Usage: adacurses-config [--version | --cflags | --libs]' >&2
+        echo 'Usage: adacurses@DFT_ARG_SUFFIX@-config [--version | --cflags | --libs]' >&2
         exit 1
         ;;
 esac
diff -Naur ncurses-5.7.orig/Ada95/gen/gen.c ncurses-5.7/Ada95/gen/gen.c
--- ncurses-5.7.orig/Ada95/gen/gen.c	2008-10-04 14:59:37.000000000 -0700
+++ ncurses-5.7/Ada95/gen/gen.c	2009-06-05 14:01:24.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998,2008,2009 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            *
@@ -32,7 +32,7 @@
 
 /*
     Version Control
-    $Id: gen.c,v 1.49 2008/10/04 21:59:37 tom Exp $
+    $Id: gen.c,v 1.50 2009/03/21 21:34:20 tom Exp $
   --------------------------------------------------------------------------*/
 /*
   This program generates various record structures and constants from the
@@ -778,7 +778,9 @@
 #if USE_REENTRANT || BROKEN_LINKER
   printf("   type C_ACS_Ptr is access C_ACS_Map;\n");
   printf("   function ACS_Map return C_ACS_Ptr;\n");
-  printf("   pragma Import (C, ACS_Map, \"_nc_acs_map\");\n");
+  printf("   pragma Import (C, ACS_Map, \""
+	 NCURSES_WRAP_PREFIX
+	 "acs_map\");\n");
 #else
   printf("   ACS_Map : C_ACS_Map;\n");
   printf("   pragma Import (C, ACS_Map, \"acs_map\");\n");
@@ -1034,7 +1036,7 @@
   printf("   function %s return %s\n", ada_func, ada_type);
   printf("   is\n");
   printf("      function Result return %s;\n", c_type);
-  printf("      pragma Import (C, Result, \"_nc_%s\");\n", c_var);
+  printf("      pragma Import (C, Result, \"" NCURSES_WRAP_PREFIX "%s\");\n", c_var);
   printf("   begin\n");
   if (strcmp(c_type, ada_type))
     printf("      return %s (Result);\n", ada_type);
diff -Naur ncurses-5.7.orig/Ada95/gen/Makefile.in ncurses-5.7/Ada95/gen/Makefile.in
--- ncurses-5.7.orig/Ada95/gen/Makefile.in	2008-10-04 15:58:31.000000000 -0700
+++ ncurses-5.7/Ada95/gen/Makefile.in	2009-06-05 14:01:07.000000000 -0700
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2008,2009 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"), #
@@ -28,7 +28,7 @@
 #
 #  Author:  Juergen Pfeifer, 1996
 #
-#  $Id: Makefile.in,v 1.61 2008/10/04 22:58:31 tom Exp $
+#  $Id: Makefile.in,v 1.63 2009/01/11 01:11:35 tom Exp $
 #
 .SUFFIXES:
 
@@ -81,7 +81,7 @@
 M4		= m4
 M4FLAGS		= -DNCURSES_EXT_FUNCS=@NCURSES_EXT_FUNCS@
 
-ADACURSES_CONFIG = adacurses-config
+ADACURSES_CONFIG = adacurses@DFT_ARG_SUFFIX@-config
 
 WRAPPER		= sh $(top_srcdir)/misc/shlib
 GENERATE	= ./gen$x '@DFT_ARG_SUFFIX@'
@@ -166,6 +166,7 @@
 
 sources:
 
+$(DESTDIR)$(bindir) \
 $(ADA_INCLUDE) \
 $(ADA_OBJECTS) :
 	sh $(top_srcdir)/mkdirs.sh $@
@@ -187,8 +188,8 @@
 	@-chmod u+x $(ADA_SRCDIR)/*.ali
 
 install \
-install.libs :: $(DESTDIR)$(bindir) adacurses-config
-	$(INSTALL_PROG) adacurses-config $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
+install.libs :: $(DESTDIR)$(bindir) $(ADACURSES_CONFIG)
+	$(INSTALL_PROG) $(ADACURSES_CONFIG) $(DESTDIR)$(bindir)/$(ADACURSES_CONFIG)
 
 uninstall \
 uninstall.libs ::
@@ -398,7 +399,7 @@
 	-rm -f $(GEN_TARGETS) instab.tmp *.ad[bs] *.html *.ali *.tmp
 
 distclean :: clean
-	-rm -f adacurses-config
+	-rm -f $(ADACURSES_CONFIG)
 	-rm -f Makefile
 
 realclean :: distclean
diff -Naur ncurses-5.7.orig/Ada95/samples/Makefile.in ncurses-5.7/Ada95/samples/Makefile.in
--- ncurses-5.7.orig/Ada95/samples/Makefile.in	2006-12-17 08:45:02.000000000 -0800
+++ ncurses-5.7/Ada95/samples/Makefile.in	2009-06-05 14:01:07.000000000 -0700
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2008,2009 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"), #
@@ -28,7 +28,7 @@
 #
 #  Author:  Juergen Pfeifer, 1996
 #
-#  $Id: Makefile.in,v 1.34 2006/12/17 16:45:02 tom Exp $
+#  $Id: Makefile.in,v 1.36 2009/01/11 01:11:54 tom Exp $
 #
 .SUFFIXES:
 
@@ -88,8 +88,8 @@
 
 CARGS        =-cargs $(ADAFLAGS)
 LARGS        =-largs @TEST_ARG2@ $(LD_FLAGS) -lAdaCurses
- 
-PROGS        = tour rain ncurses 
+
+PROGS        = tour rain ncurses
 
 TOUR_OBJS    =	tour.o sample.o sample-curses_demo.o sample-explanation.o 	\
 		sample-form_demo.o sample-function_key_setting.o 		\
@@ -145,7 +145,7 @@
 
 clean :: mostlyclean
 	rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] \
-	explain.msg trace screendump 
+	explain.msg trace screendump b~*.ad[bs]
 
 distclean :: clean
 	rm -f Makefile
diff -Naur ncurses-5.7.orig/Ada95/src/Makefile.in ncurses-5.7/Ada95/src/Makefile.in
--- ncurses-5.7.orig/Ada95/src/Makefile.in	2007-09-15 11:22:24.000000000 -0700
+++ ncurses-5.7/Ada95/src/Makefile.in	2009-06-05 14:01:07.000000000 -0700
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2009 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"), #
@@ -28,7 +28,7 @@
 #
 #  Author:  Juergen Pfeifer, 1996
 #
-#  $Id: Makefile.in,v 1.31 2007/09/15 18:22:24 tom Exp $
+#  $Id: Makefile.in,v 1.34 2009/01/11 01:11:44 tom Exp $
 #
 .SUFFIXES:
 
@@ -36,17 +36,22 @@
 THIS		= Makefile
 
 MODEL		= ../../@DFT_OBJ_SUBDIR@
+
 DESTDIR		= @DESTDIR@
+
+top_srcdir	= @top_srcdir@
 srcdir		= @srcdir@
 prefix		= @prefix@
 exec_prefix	= @exec_prefix@
-ADA_INCLUDE	= @ADA_INCLUDE@
+
+ADA_INCLUDE	= $(DESTDIR)@ADA_INCLUDE@
+ADA_OBJECTS	= $(DESTDIR)@ADA_OBJECTS@
 
 INSTALL		= @INSTALL@
-INSTALL_DATA	= @INSTALL_DATA@
+INSTALL_LIB	= @INSTALL@ @INSTALL_LIB@
 
 AR		= @AR@
-AR_OPTS		= @AR_OPTS@
+ARFLAGS		= @ARFLAGS@
 AWK		= @AWK@
 LN_S		= @LN_S@
 
@@ -75,11 +80,12 @@
 ADAFLAGS        = @ADAFLAGS@ -I. -I$(srcdir)
 
 ADAMAKE         = @cf_ada_make@
-ADAMAKEFLAGS    = 
+ADAMAKEFLAGS    =
 
 CARGS           = -cargs $(ADAFLAGS)
 LARGS           =
 
+LIBRARY_FILE	= libAdaCurses.a
 ALIB            = @cf_ada_package@
 ABASE           = $(ALIB)-curses
 
@@ -164,21 +170,25 @@
 	$(ABASE)-text_io-complex_io.o
 
 
-all ::  libAdaCurses.a
+all ::  $(LIBRARY_FILE)
 	@echo done
 
-libAdaCurses.a :: dotouch $(LIBOBJS) @cf_generic_objects@
-	$(AR) $(AR_OPTS) $@ $(LIBOBJS) @cf_generic_objects@
-
-dotouch :
-	@sh -c 'for f in $(LIBALIS) $(GENALIS); do test -f $$f || touch $$f; done'
+$(LIBRARY_FILE) :: $(LIBOBJS) @cf_generic_objects@
+	$(AR) $(ARFLAGS) $@ $(LIBOBJS) @cf_generic_objects@
 
 sources :
 	@echo made $@
 
 libs \
 install \
-install.libs \
+install.libs :: $(LIBRARY_FILE)
+	@echo made $(LIBRARY_FILE)
+
+install \
+install.libs :: $(LIBRARY_FILE)
+	@$(top_srcdir)/tar-copy.sh $(LIBRARY_FILE) . $(ADA_OBJECTS)
+	@echo made $@
+
 uninstall \
 uninstall.libs ::
 	@echo made $@
diff -Naur ncurses-5.7.orig/Ada95/src/terminal_interface-curses-mouse.adb ncurses-5.7/Ada95/src/terminal_interface-curses-mouse.adb
--- ncurses-5.7.orig/Ada95/src/terminal_interface-curses-mouse.adb	2008-07-26 11:51:11.000000000 -0700
+++ ncurses-5.7/Ada95/src/terminal_interface-curses-mouse.adb	2009-06-05 14:00:52.000000000 -0700
@@ -35,8 +35,8 @@
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.22 $
---  $Date: 2008/07/26 18:51:11 $
+--  $Revision: 1.23 $
+--  $Date: 2008/11/16 00:19:59 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
 with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
@@ -50,7 +50,7 @@
    function Has_Mouse return Boolean
    is
       function Mouse_Avail return C_Int;
-      pragma Import (C, Mouse_Avail, "_nc_has_mouse");
+      pragma Import (C, Mouse_Avail, "has_mouse");
    begin
       if Has_Key (Key_Mouse) or else Mouse_Avail /= 0 then
          return True;
diff -Naur ncurses-5.7.orig/c++/cursesw.cc ncurses-5.7/c++/cursesw.cc
--- ncurses-5.7.orig/c++/cursesw.cc	2007-12-15 15:01:57.000000000 -0800
+++ ncurses-5.7/c++/cursesw.cc	2009-06-05 14:01:30.000000000 -0700
@@ -1,6 +1,6 @@
 // * this is for making emacs happy: -*-Mode: C++;-*-
 /****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2007-2008,2009 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 "internal.h"
 #include "cursesw.h"
 
-MODULE_ID("$Id: cursesw.cc,v 1.49 2007/12/15 23:01:57 tom Exp $")
+MODULE_ID("$Id: cursesw.cc,v 1.51 2009/03/28 21:31:37 tom Exp $")
 
 #define COLORS_NEED_INITIALIZATION  -1
 #define COLORS_NOT_INITIALIZED       0
@@ -287,7 +287,6 @@
 {
     initialize();
     w = win;
-    assert((w->_maxx +1 ) == ncols);
 }
 
 int _nc_xx_ripoff_init(WINDOW *w, int ncols)
@@ -296,8 +295,7 @@
 
     RIPOFFINIT init = *prip++;
     if (init) {
-	NCursesWindow* W = new NCursesWindow(w,ncols);
-	res = init(*W);
+	res = init(*(new NCursesWindow(w,ncols)));
     }
     return res;
 }
@@ -464,7 +462,7 @@
 #if HAVE_HAS_KEY
 bool NCursesWindow::has_mouse() const
 {
-    return ((::has_key(KEY_MOUSE) || ::_nc_has_mouse())
+    return ((::has_key(KEY_MOUSE) || ::has_mouse())
 	     ? TRUE : FALSE);
 }
 #endif
diff -Naur ncurses-5.7.orig/c++/demo.cc ncurses-5.7/c++/demo.cc
--- ncurses-5.7.orig/c++/demo.cc	2008-08-04 10:16:57.000000000 -0700
+++ ncurses-5.7/c++/demo.cc	2009-06-05 14:01:49.000000000 -0700
@@ -35,7 +35,7 @@
  *   Demo code for NCursesMenu and NCursesForm written by
  *   Juergen Pfeifer
  *
- * $Id: demo.cc,v 1.38 2008/08/04 17:16:57 tom Exp $
+ * $Id: demo.cc,v 1.39 2008/12/07 02:07:34 juergen Exp $
  */
 
 #include "internal.h"
@@ -43,7 +43,13 @@
 #include "cursesm.h"
 #include "cursesf.h"
 
+#ifdef __MINGW32__
+#undef KEY_EVENT
+#endif
+
+#ifndef __MINGW32__
 extern "C" unsigned int sleep(unsigned int);
+#endif
 
 #undef index // needed for NeXT
 
diff -Naur ncurses-5.7.orig/c++/internal.h ncurses-5.7/c++/internal.h
--- ncurses-5.7.orig/c++/internal.h	2008-10-25 14:35:44.000000000 -0700
+++ ncurses-5.7/c++/internal.h	2009-06-05 14:01:49.000000000 -0700
@@ -31,7 +31,7 @@
  *   Author: Juergen Pfeifer, 1997                                          *
  ****************************************************************************/
 
-// $Id: internal.h,v 1.16 2008/10/25 21:35:44 tom Exp $
+// $Id: internal.h,v 1.17 2008/12/07 02:07:34 juergen Exp $
 
 #ifndef NCURSES_CPLUS_INTERNAL_H
 #define NCURSES_CPLUS_INTERNAL_H 1
@@ -44,6 +44,11 @@
 #define MODULE_ID(id) /*nothing*/
 #endif
 
+#ifdef __MINGW32__
+#include <nc_mingw.h>
+#undef KEY_EVENT
+#endif
+
 #ifndef _QNX_SOURCE
 #include <stdlib.h>
 #include <string.h>
diff -Naur ncurses-5.7.orig/c++/Makefile.in ncurses-5.7/c++/Makefile.in
--- ncurses-5.7.orig/c++/Makefile.in	2007-04-28 08:29:12.000000000 -0700
+++ ncurses-5.7/c++/Makefile.in	2009-06-05 14:01:30.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.84 2007/04/28 15:29:12 tom Exp $
+# $Id: Makefile.in,v 1.87 2009/03/28 18:22:39 Charles.Wilson Exp $
 ##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2009 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"), #
@@ -55,16 +55,17 @@
 LIBTOOL_LINK	= @LIB_LINK@
 LIBTOOL_INSTALL	= @LIB_INSTALL@
 LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+LT_UNDEF	= @LT_UNDEF@
 
 INSTALL		= @INSTALL@
 INSTALL_LIB	= @INSTALL@ @INSTALL_LIB@
 INSTALL_DATA	= @INSTALL_DATA@
 
 AR		= @AR@
-AR_OPTS		= @AR_OPTS@
+ARFLAGS		= @ARFLAGS@
 
 CXX_AR		= @CXX_AR@
-CXX_AR_OPTS	= @CXX_AR_OPTS@
+CXX_ARFLAGS	= @CXX_ARFLAGS@
 RANLIB		= @LIB_PREP@
 
 CXX		= @CXX@
@@ -95,7 +96,7 @@
 
 LINK		= @LINK_PROGS@ $(LIBTOOL_LINK) @CXXLDFLAGS@
 SHLIB_DIRS	= -L../lib
-SHLIB_LIST	= $(SHLIB_DIRS) -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
+SHLIB_LIST	= $(SHLIB_DIRS) -lform@LIB_SUFFIX@ -lmenu@LIB_SUFFIX@ -lpanel@LIB_SUFFIX@ -lncurses@LIB_SUFFIX@ @SHLIB_LIST@
 
 LIBROOT		= ncurses++
 
@@ -153,14 +154,14 @@
 	$(MODEL)/cursesmain$o
 
 ../lib/$(LIBNAME_NORMAL) : $(LIB_OBJS)
-	$(CXX_AR) $(CXX_AR_OPTS) $@ $?
+	$(CXX_AR) $(CXX_ARFLAGS) $@ $?
 	$(RANLIB) $@
 
 ../lib/$(LIBNAME_LIBTOOL) : $(LIB_OBJS)
 	cd ../lib && $(LIBTOOL_LINK) $(CXX) $(CXXFLAGS) \
 		-o $(LIBNAME) $(LIB_OBJS:$o=.lo) \
 		-rpath $(INSTALL_PREFIX)$(libdir) \
-		-version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(SHLIB_LIST)
+		-version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)
 
 OBJS_DEMO = $(MODEL)/demo$o
 
diff -Naur ncurses-5.7.orig/config.guess ncurses-5.7/config.guess
--- ncurses-5.7.orig/config.guess	2008-08-30 13:25:07.000000000 -0700
+++ ncurses-5.7/config.guess	2009-06-05 14:01:03.000000000 -0700
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2008-04-14'
+timestamp='2008-12-19'
 
 # 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
@@ -331,7 +331,20 @@
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
@@ -796,7 +809,7 @@
 	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
-	    EM64T | authenticamd)
+	    EM64T | authenticamd | genuineintel)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
 	    IA64)
@@ -935,6 +948,9 @@
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
 	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
+	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -1138,6 +1154,16 @@
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
diff -Naur ncurses-5.7.orig/config.sub ncurses-5.7/config.sub
--- ncurses-5.7.orig/config.sub	2008-08-30 13:25:02.000000000 -0700
+++ ncurses-5.7/config.sub	2009-06-05 14:01:03.000000000 -0700
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2008-06-16'
+timestamp='2008-12-11'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -249,6 +249,7 @@
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
 	| maxq | mb | microblaze | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
@@ -279,7 +280,7 @@
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
 	| score \
-	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -288,7 +289,7 @@
 	| v850 | v850e \
 	| we32k \
 	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-	| z8k)
+	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
 	m6811 | m68hc11 | m6812 | m68hc12)
@@ -331,6 +332,7 @@
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
 	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
@@ -362,7 +364,7 @@
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
 	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
@@ -375,7 +377,7 @@
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
 	| xstormy16-* | xtensa*-* \
 	| ymp-* \
-	| z8k-*)
+	| z8k-* | z80-*)
 		;;
 	# Recognize the basic CPU types without company name, with glob match.
 	xtensa*)
@@ -1140,6 +1142,10 @@
 		basic_machine=z8k-unknown
 		os=-sim
 		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
 	none)
 		basic_machine=none-none
 		os=-none
@@ -1178,7 +1184,7 @@
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
 	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
diff -Naur ncurses-5.7.orig/configure ncurses-5.7/configure
--- ncurses-5.7.orig/configure	2008-10-25 17:04:38.000000000 -0700
+++ ncurses-5.7/configure	2009-06-05 14:01:31.000000000 -0700
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.in Revision: 1.454 .
+# From configure.in Revision: 1.470 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by Autoconf 2.52.20080325.
+# Generated by Autoconf 2.52.20081225.
 #
 # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
 # Free Software Foundation, Inc.
@@ -697,8 +697,11 @@
   --without-cxx           do not adjust ncurses bool to match C++
   --without-cxx-binding   do not build C++ binding and demo
   --without-ada           suppress check for Ada95, don't build demo
+  --without-manpages      suppress install of manpages
   --without-progs         suppress build with programs (e.g., tic)
   --without-curses-h      install curses.h as ncurses.h only
+  --with-pkg-config{=path} enable/disable use of pkg-config
+  --enable-pc-files       generate and install .pc files for pkg-config
   --enable-mixed-case     tic should assume mixed-case filenames
   --with-install-prefix   prefixes actual install-location ($DESTDIR)
 Build-Tools Needed to Compile Temporary Applications for Cross-compiling:
@@ -762,6 +765,7 @@
   --with-manpage-tbl      specify manpage processing with tbl
 Extensions:
   --disable-ext-funcs     disable function-extensions
+  --enable-sp-funcs       disable experimental SCREEN-extensions
   --enable-const          compile with extra/non-standard const
   --enable-ext-colors     compile for 256-color support
   --enable-ext-mouse      compile for extended mouse-encoding
@@ -780,6 +784,7 @@
   --with-pthread          use POSIX thread library
   --enable-weak-symbols   enable weak-symbols for pthreads
   --enable-reentrant      compile with experimental reentrant code
+  --with-wrap-prefix=XXX  override prefix used for public variables
   --enable-safe-sprintf   compile with experimental safe-sprintf code
   --disable-scroll-hints  compile without scroll-hints code
   --enable-wgetch-events  compile with experimental wgetch-events code
@@ -870,7 +875,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.52.20080325.  Invocation command line was
+generated by GNU Autoconf 2.52.20081225.  Invocation command line was
 
   $ $0 $@
 
@@ -994,7 +999,7 @@
 fi
 for ac_site_file in $CONFIG_SITE; do
   if test -r "$ac_site_file"; then
-    { echo "$as_me:997: loading site script $ac_site_file" >&5
+    { echo "$as_me:1002: loading site script $ac_site_file" >&5
 echo "$as_me: loading site script $ac_site_file" >&6;}
     cat "$ac_site_file" >&5
     . "$ac_site_file"
@@ -1005,7 +1010,7 @@
   # Some versions of bash will fail to source /dev/null (special
   # files actually), so we avoid doing that.
   if test -f "$cache_file"; then
-    { echo "$as_me:1008: loading cache $cache_file" >&5
+    { echo "$as_me:1013: loading cache $cache_file" >&5
 echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . $cache_file;;
@@ -1013,7 +1018,7 @@
     esac
   fi
 else
-  { echo "$as_me:1016: creating cache $cache_file" >&5
+  { echo "$as_me:1021: creating cache $cache_file" >&5
 echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
@@ -1029,21 +1034,21 @@
   eval ac_new_val="\$ac_env_${ac_var}_value"
   case $ac_old_set,$ac_new_set in
     set,)
-      { echo "$as_me:1032: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+      { echo "$as_me:1037: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { echo "$as_me:1036: error: \`$ac_var' was not set in the previous run" >&5
+      { echo "$as_me:1041: error: \`$ac_var' was not set in the previous run" >&5
 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
       if test "x$ac_old_val" != "x$ac_new_val"; then
-        { echo "$as_me:1042: error: \`$ac_var' has changed since the previous run:" >&5
+        { echo "$as_me:1047: error: \`$ac_var' has changed since the previous run:" >&5
 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-        { echo "$as_me:1044:   former value:  $ac_old_val" >&5
+        { echo "$as_me:1049:   former value:  $ac_old_val" >&5
 echo "$as_me:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:1046:   current value: $ac_new_val" >&5
+        { echo "$as_me:1051:   current value: $ac_new_val" >&5
 echo "$as_me:   current value: $ac_new_val" >&2;}
         ac_cache_corrupted=:
       fi;;
@@ -1062,9 +1067,9 @@
   fi
 done
 if $ac_cache_corrupted; then
-  { echo "$as_me:1065: error: changes in the environment can compromise the build" >&5
+  { echo "$as_me:1070: error: changes in the environment can compromise the build" >&5
 echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:1067: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+  { { echo "$as_me:1072: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1085,10 +1090,10 @@
 echo "#! $SHELL" >conftest.sh
 echo  "exit 0"   >>conftest.sh
 chmod +x conftest.sh
-if { (echo "$as_me:1088: PATH=\".;.\"; conftest.sh") >&5
+if { (echo "$as_me:1093: PATH=\".;.\"; conftest.sh") >&5
   (PATH=".;."; conftest.sh) 2>&5
   ac_status=$?
-  echo "$as_me:1091: \$? = $ac_status" >&5
+  echo "$as_me:1096: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   ac_path_separator=';'
 else
@@ -1101,7 +1106,7 @@
 
 top_builddir=`pwd`
 
-echo "$as_me:1104: checking for egrep" >&5
+echo "$as_me:1109: checking for egrep" >&5
 echo $ECHO_N "checking for egrep... $ECHO_C" >&6
 if test "${ac_cv_prog_egrep+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1111,11 +1116,11 @@
     else ac_cv_prog_egrep='egrep'
     fi
 fi
-echo "$as_me:1114: result: $ac_cv_prog_egrep" >&5
+echo "$as_me:1119: result: $ac_cv_prog_egrep" >&5
 echo "${ECHO_T}$ac_cv_prog_egrep" >&6
  EGREP=$ac_cv_prog_egrep
 
-test -z "$EGREP" && { { echo "$as_me:1118: error: No egrep program found" >&5
+test -z "$EGREP" && { { echo "$as_me:1123: error: No egrep program found" >&5
 echo "$as_me: error: No egrep program found" >&2;}
    { (exit 1); exit 1; }; }
 
@@ -1125,7 +1130,7 @@
 cf_cv_abi_version=${NCURSES_MAJOR}
 cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
 cf_cv_timestamp=`date`
-echo "$as_me:1128: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
+echo "$as_me:1133: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
 echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
 
 test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
@@ -1133,7 +1138,7 @@
 # Check whether --with-rel-version or --without-rel-version was given.
 if test "${with_rel_version+set}" = set; then
   withval="$with_rel_version"
-  { echo "$as_me:1136: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
+  { echo "$as_me:1141: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
 echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;}
  cf_cv_rel_version=$withval
 fi;
@@ -1146,13 +1151,13 @@
   [0-9]*) #(vi
  	;;
   *)
-	{ { echo "$as_me:1149: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
+	{ { echo "$as_me:1154: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
 echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;}
    { (exit 1); exit 1; }; }
  	;;
   esac
 else
-  { { echo "$as_me:1155: error: Release major-version value is empty" >&5
+  { { echo "$as_me:1160: error: Release major-version value is empty" >&5
 echo "$as_me: error: Release major-version value is empty" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1162,13 +1167,13 @@
   [0-9]*) #(vi
  	;;
   *)
-	{ { echo "$as_me:1165: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
+	{ { echo "$as_me:1170: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
 echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;}
    { (exit 1); exit 1; }; }
  	;;
   esac
 else
-  { { echo "$as_me:1171: error: Release minor-version value is empty" >&5
+  { { echo "$as_me:1176: error: Release minor-version value is empty" >&5
 echo "$as_me: error: Release minor-version value is empty" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1178,7 +1183,7 @@
 # Check whether --with-abi-version or --without-abi-version was given.
 if test "${with_abi_version+set}" = set; then
   withval="$with_abi_version"
-  { echo "$as_me:1181: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
+  { echo "$as_me:1186: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
 echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;}
  cf_cv_abi_version=$withval
 fi;
@@ -1188,13 +1193,13 @@
   [0-9]*) #(vi
  	;;
   *)
-	{ { echo "$as_me:1191: error: ABI version is not a number: $cf_cv_abi_version" >&5
+	{ { echo "$as_me:1196: error: ABI version is not a number: $cf_cv_abi_version" >&5
 echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;}
    { (exit 1); exit 1; }; }
  	;;
   esac
 else
-  { { echo "$as_me:1197: error: ABI version value is empty" >&5
+  { { echo "$as_me:1202: error: ABI version value is empty" >&5
 echo "$as_me: error: ABI version value is empty" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1216,7 +1221,7 @@
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:1219: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+  { { echo "$as_me:1224: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1226,11 +1231,11 @@
 
 # Make sure we can run config.sub.
 $ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:1229: error: cannot run $ac_config_sub" >&5
+  { { echo "$as_me:1234: error: cannot run $ac_config_sub" >&5
 echo "$as_me: error: cannot run $ac_config_sub" >&2;}
    { (exit 1); exit 1; }; }
 
-echo "$as_me:1233: checking build system type" >&5
+echo "$as_me:1238: checking build system type" >&5
 echo $ECHO_N "checking build system type... $ECHO_C" >&6
 if test "${ac_cv_build+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1239,23 +1244,23 @@
 test -z "$ac_cv_build_alias" &&
   ac_cv_build_alias=`$ac_config_guess`
 test -z "$ac_cv_build_alias" &&
-  { { echo "$as_me:1242: error: cannot guess build type; you must specify one" >&5
+  { { echo "$as_me:1247: error: cannot guess build type; you must specify one" >&5
 echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
    { (exit 1); exit 1; }; }
 ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-  { { echo "$as_me:1246: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+  { { echo "$as_me:1251: error: $ac_config_sub $ac_cv_build_alias failed." >&5
 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-echo "$as_me:1251: result: $ac_cv_build" >&5
+echo "$as_me:1256: result: $ac_cv_build" >&5
 echo "${ECHO_T}$ac_cv_build" >&6
 build=$ac_cv_build
 build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
 build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
-echo "$as_me:1258: checking host system type" >&5
+echo "$as_me:1263: checking host system type" >&5
 echo $ECHO_N "checking host system type... $ECHO_C" >&6
 if test "${ac_cv_host+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1264,12 +1269,12 @@
 test -z "$ac_cv_host_alias" &&
   ac_cv_host_alias=$ac_cv_build_alias
 ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-  { { echo "$as_me:1267: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+  { { echo "$as_me:1272: error: $ac_config_sub $ac_cv_host_alias failed" >&5
 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-echo "$as_me:1272: result: $ac_cv_host" >&5
+echo "$as_me:1277: result: $ac_cv_host" >&5
 echo "${ECHO_T}$ac_cv_host" >&6
 host=$ac_cv_host
 host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1277,7 +1282,7 @@
 host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 
 if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
-	echo "$as_me:1280: checking target system type" >&5
+	echo "$as_me:1285: checking target system type" >&5
 echo $ECHO_N "checking target system type... $ECHO_C" >&6
 if test "${ac_cv_target+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1286,12 +1291,12 @@
 test "x$ac_cv_target_alias" = "x" &&
   ac_cv_target_alias=$ac_cv_host_alias
 ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
-  { { echo "$as_me:1289: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+  { { echo "$as_me:1294: error: $ac_config_sub $ac_cv_target_alias failed" >&5
 echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-echo "$as_me:1294: result: $ac_cv_target" >&5
+echo "$as_me:1299: result: $ac_cv_target" >&5
 echo "${ECHO_T}$ac_cv_target" >&6
 target=$ac_cv_target
 target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
@@ -1322,13 +1327,13 @@
 fi
 
 test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$as_me:1325: result: Configuring for $cf_cv_system_name" >&5
+test -n "$cf_cv_system_name" && echo "$as_me:1330: result: Configuring for $cf_cv_system_name" >&5
 echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
 
 if test ".$system_name" != ".$cf_cv_system_name" ; then
-	echo "$as_me:1329: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+	echo "$as_me:1334: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
 echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
-	{ { echo "$as_me:1331: error: \"Please remove config.cache and try again.\"" >&5
+	{ { echo "$as_me:1336: error: \"Please remove config.cache and try again.\"" >&5
 echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -1336,7 +1341,7 @@
 # Check whether --with-system-type or --without-system-type was given.
 if test "${with_system_type+set}" = set; then
   withval="$with_system_type"
-  { echo "$as_me:1339: WARNING: overriding system type to $withval" >&5
+  { echo "$as_me:1344: WARNING: overriding system type to $withval" >&5
 echo "$as_me: WARNING: overriding system type to $withval" >&2;}
  cf_cv_system_name=$withval
 fi;
@@ -1346,7 +1351,7 @@
 
 ###	Default install-location
 
-echo "$as_me:1349: checking for prefix" >&5
+echo "$as_me:1354: checking for prefix" >&5
 echo $ECHO_N "checking for prefix... $ECHO_C" >&6
 if test "x$prefix" = "xNONE" ; then
 	case "$cf_cv_system_name" in
@@ -1358,11 +1363,11 @@
 		;;
 	esac
 fi
-echo "$as_me:1361: result: $prefix" >&5
+echo "$as_me:1366: result: $prefix" >&5
 echo "${ECHO_T}$prefix" >&6
 
 if test "x$prefix" = "xNONE" ; then
-echo "$as_me:1365: checking for default include-directory" >&5
+echo "$as_me:1370: checking for default include-directory" >&5
 echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
 test -n "$verbose" && echo 1>&6
 for cf_symbol in \
@@ -1385,7 +1390,7 @@
 	fi
 	test -n "$verbose"  && echo "	tested $cf_dir" 1>&6
 done
-echo "$as_me:1388: result: $includedir" >&5
+echo "$as_me:1393: result: $includedir" >&5
 echo "${ECHO_T}$includedir" >&6
 fi
 
@@ -1399,7 +1404,7 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:1402: checking for $ac_word" >&5
+echo "$as_me:1407: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1414,7 +1419,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_CC="${ac_tool_prefix}gcc"
-echo "$as_me:1417: found $ac_dir/$ac_word" >&5
+echo "$as_me:1422: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1422,10 +1427,10 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1425: result: $CC" >&5
+  echo "$as_me:1430: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1428: result: no" >&5
+  echo "$as_me:1433: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1434,7 +1439,7 @@
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-echo "$as_me:1437: checking for $ac_word" >&5
+echo "$as_me:1442: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1449,7 +1454,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CC="gcc"
-echo "$as_me:1452: found $ac_dir/$ac_word" >&5
+echo "$as_me:1457: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1457,10 +1462,10 @@
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1460: result: $ac_ct_CC" >&5
+  echo "$as_me:1465: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1463: result: no" >&5
+  echo "$as_me:1468: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1473,7 +1478,7 @@
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:1476: checking for $ac_word" >&5
+echo "$as_me:1481: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1488,7 +1493,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_CC="${ac_tool_prefix}cc"
-echo "$as_me:1491: found $ac_dir/$ac_word" >&5
+echo "$as_me:1496: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1496,10 +1501,10 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1499: result: $CC" >&5
+  echo "$as_me:1504: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1502: result: no" >&5
+  echo "$as_me:1507: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1508,7 +1513,7 @@
   ac_ct_CC=$CC
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:1511: checking for $ac_word" >&5
+echo "$as_me:1516: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1523,7 +1528,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CC="cc"
-echo "$as_me:1526: found $ac_dir/$ac_word" >&5
+echo "$as_me:1531: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1531,10 +1536,10 @@
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1534: result: $ac_ct_CC" >&5
+  echo "$as_me:1539: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1537: result: no" >&5
+  echo "$as_me:1542: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1547,7 +1552,7 @@
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-echo "$as_me:1550: checking for $ac_word" >&5
+echo "$as_me:1555: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1567,7 +1572,7 @@
   continue
 fi
 ac_cv_prog_CC="cc"
-echo "$as_me:1570: found $ac_dir/$ac_word" >&5
+echo "$as_me:1575: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1589,10 +1594,10 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1592: result: $CC" >&5
+  echo "$as_me:1597: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1595: result: no" >&5
+  echo "$as_me:1600: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1603,7 +1608,7 @@
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:1606: checking for $ac_word" >&5
+echo "$as_me:1611: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1618,7 +1623,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-echo "$as_me:1621: found $ac_dir/$ac_word" >&5
+echo "$as_me:1626: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1626,10 +1631,10 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:1629: result: $CC" >&5
+  echo "$as_me:1634: result: $CC" >&5
 echo "${ECHO_T}$CC" >&6
 else
-  echo "$as_me:1632: result: no" >&5
+  echo "$as_me:1637: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1642,7 +1647,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:1645: checking for $ac_word" >&5
+echo "$as_me:1650: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1657,7 +1662,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CC="$ac_prog"
-echo "$as_me:1660: found $ac_dir/$ac_word" >&5
+echo "$as_me:1665: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -1665,10 +1670,10 @@
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  echo "$as_me:1668: result: $ac_ct_CC" >&5
+  echo "$as_me:1673: result: $ac_ct_CC" >&5
 echo "${ECHO_T}$ac_ct_CC" >&6
 else
-  echo "$as_me:1671: result: no" >&5
+  echo "$as_me:1676: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -1680,32 +1685,32 @@
 
 fi
 
-test -z "$CC" && { { echo "$as_me:1683: error: no acceptable cc found in \$PATH" >&5
+test -z "$CC" && { { echo "$as_me:1688: error: no acceptable cc found in \$PATH" >&5
 echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
-echo "$as_me:1688:" \
+echo "$as_me:1693:" \
      "checking for C compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:1691: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1696: \"$ac_compiler --version </dev/null >&5\"") >&5
   (eval $ac_compiler --version </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:1694: \$? = $ac_status" >&5
+  echo "$as_me:1699: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:1696: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1701: \"$ac_compiler -v </dev/null >&5\"") >&5
   (eval $ac_compiler -v </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:1699: \$? = $ac_status" >&5
+  echo "$as_me:1704: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:1701: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1706: \"$ac_compiler -V </dev/null >&5\"") >&5
   (eval $ac_compiler -V </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:1704: \$? = $ac_status" >&5
+  echo "$as_me:1709: \$? = $ac_status" >&5
   (exit $ac_status); }
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 1708 "configure"
+#line 1713 "configure"
 #include "confdefs.h"
 
 int
@@ -1721,13 +1726,13 @@
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-echo "$as_me:1724: checking for C compiler default output" >&5
+echo "$as_me:1729: checking for C compiler default output" >&5
 echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:1727: \"$ac_link_default\"") >&5
+if { (eval echo "$as_me:1732: \"$ac_link_default\"") >&5
   (eval $ac_link_default) 2>&5
   ac_status=$?
-  echo "$as_me:1730: \$? = $ac_status" >&5
+  echo "$as_me:1735: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # Find the output, starting from the most likely.  This scheme is
 # not robust to junk in `.', hence go to wildcards (a.*) only as a last
@@ -1736,7 +1741,7 @@
                 ls a.out conftest 2>/dev/null;
                 ls a.* conftest.* 2>/dev/null`; do
   case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.dbg | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
     a.out ) # We found the default executable, but exeext='' is most
             # certainly right.
             break;;
@@ -1750,34 +1755,34 @@
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-{ { echo "$as_me:1753: error: C compiler cannot create executables" >&5
+{ { echo "$as_me:1758: error: C compiler cannot create executables" >&5
 echo "$as_me: error: C compiler cannot create executables" >&2;}
    { (exit 77); exit 77; }; }
 fi
 
 ac_exeext=$ac_cv_exeext
-echo "$as_me:1759: result: $ac_file" >&5
+echo "$as_me:1764: result: $ac_file" >&5
 echo "${ECHO_T}$ac_file" >&6
 
 # Check the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:1764: checking whether the C compiler works" >&5
+echo "$as_me:1769: checking whether the C compiler works" >&5
 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
   if { ac_try='./$ac_file'
-  { (eval echo "$as_me:1770: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1775: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1773: \$? = $ac_status" >&5
+  echo "$as_me:1778: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { echo "$as_me:1780: error: cannot run C compiled programs.
+	{ { echo "$as_me:1785: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'." >&5
 echo "$as_me: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'." >&2;}
@@ -1785,24 +1790,24 @@
     fi
   fi
 fi
-echo "$as_me:1788: result: yes" >&5
+echo "$as_me:1793: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 
 rm -f a.out a.exe conftest$ac_cv_exeext
 ac_clean_files=$ac_clean_files_save
 # Check the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:1795: checking whether we are cross compiling" >&5
+echo "$as_me:1800: checking whether we are cross compiling" >&5
 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1797: result: $cross_compiling" >&5
+echo "$as_me:1802: result: $cross_compiling" >&5
 echo "${ECHO_T}$cross_compiling" >&6
 
-echo "$as_me:1800: checking for executable suffix" >&5
+echo "$as_me:1805: checking for executable suffix" >&5
 echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1802: \"$ac_link\"") >&5
+if { (eval echo "$as_me:1807: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:1805: \$? = $ac_status" >&5
+  echo "$as_me:1810: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
@@ -1810,7 +1815,7 @@
 # `rm'.
 for ac_file in `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do
   case $ac_file in
-    *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.dbg | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
           export ac_cv_exeext
           break;;
@@ -1818,25 +1823,25 @@
   esac
 done
 else
-  { { echo "$as_me:1821: error: cannot compute EXEEXT: cannot compile and link" >&5
+  { { echo "$as_me:1826: error: cannot compute EXEEXT: cannot compile and link" >&5
 echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 rm -f conftest$ac_cv_exeext
-echo "$as_me:1827: result: $ac_cv_exeext" >&5
+echo "$as_me:1832: result: $ac_cv_exeext" >&5
 echo "${ECHO_T}$ac_cv_exeext" >&6
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-echo "$as_me:1833: checking for object suffix" >&5
+echo "$as_me:1838: checking for object suffix" >&5
 echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
 if test "${ac_cv_objext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 1839 "configure"
+#line 1844 "configure"
 #include "confdefs.h"
 
 int
@@ -1848,14 +1853,14 @@
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1851: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1856: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1854: \$? = $ac_status" >&5
+  echo "$as_me:1859: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.dbg | *.pdb | *.xSYM | *.map | *.inf ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
@@ -1863,24 +1868,24 @@
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
-{ { echo "$as_me:1866: error: cannot compute OBJEXT: cannot compile" >&5
+{ { echo "$as_me:1871: error: cannot compute OBJEXT: cannot compile" >&5
 echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-echo "$as_me:1873: result: $ac_cv_objext" >&5
+echo "$as_me:1878: result: $ac_cv_objext" >&5
 echo "${ECHO_T}$ac_cv_objext" >&6
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-echo "$as_me:1877: checking whether we are using the GNU C compiler" >&5
+echo "$as_me:1882: checking whether we are using the GNU C compiler" >&5
 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 1883 "configure"
+#line 1888 "configure"
 #include "confdefs.h"
 
 int
@@ -1895,16 +1900,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1898: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1903: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1901: \$? = $ac_status" >&5
+  echo "$as_me:1906: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1904: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1909: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1907: \$? = $ac_status" >&5
+  echo "$as_me:1912: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_compiler_gnu=yes
 else
@@ -1916,19 +1921,19 @@
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:1919: result: $ac_cv_c_compiler_gnu" >&5
+echo "$as_me:1924: result: $ac_cv_c_compiler_gnu" >&5
 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
 GCC=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
 CFLAGS="-g"
-echo "$as_me:1925: checking whether $CC accepts -g" >&5
+echo "$as_me:1930: checking whether $CC accepts -g" >&5
 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
 if test "${ac_cv_prog_cc_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 1931 "configure"
+#line 1936 "configure"
 #include "confdefs.h"
 
 int
@@ -1940,16 +1945,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1943: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1948: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1946: \$? = $ac_status" >&5
+  echo "$as_me:1951: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1949: \"$ac_try\"") >&5
+  { (eval echo "$as_me:1954: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1952: \$? = $ac_status" >&5
+  echo "$as_me:1957: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cc_g=yes
 else
@@ -1959,7 +1964,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:1962: result: $ac_cv_prog_cc_g" >&5
+echo "$as_me:1967: result: $ac_cv_prog_cc_g" >&5
 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -1986,16 +1991,16 @@
 #endif
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1989: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1994: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:1992: \$? = $ac_status" >&5
+  echo "$as_me:1997: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:1995: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2000: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:1998: \$? = $ac_status" >&5
+  echo "$as_me:2003: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   for ac_declaration in \
    ''\
@@ -2007,7 +2012,7 @@
    'void exit (int);'
 do
   cat >conftest.$ac_ext <<_ACEOF
-#line 2010 "configure"
+#line 2015 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 $ac_declaration
@@ -2020,16 +2025,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2023: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2028: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2026: \$? = $ac_status" >&5
+  echo "$as_me:2031: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2029: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2034: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2032: \$? = $ac_status" >&5
+  echo "$as_me:2037: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -2039,7 +2044,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 2042 "configure"
+#line 2047 "configure"
 #include "confdefs.h"
 $ac_declaration
 int
@@ -2051,16 +2056,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2054: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2059: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2057: \$? = $ac_status" >&5
+  echo "$as_me:2062: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2060: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2065: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2063: \$? = $ac_status" >&5
+  echo "$as_me:2068: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -2090,11 +2095,11 @@
 
 GCC_VERSION=none
 if test "$GCC" = yes ; then
-	echo "$as_me:2093: checking version of $CC" >&5
+	echo "$as_me:2098: checking version of $CC" >&5
 echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
 	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
 	test -z "$GCC_VERSION" && GCC_VERSION=unknown
-	echo "$as_me:2097: result: $GCC_VERSION" >&5
+	echo "$as_me:2102: result: $GCC_VERSION" >&5
 echo "${ECHO_T}$GCC_VERSION" >&6
 fi
 
@@ -2104,7 +2109,7 @@
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 ac_main_return=return
-echo "$as_me:2107: checking how to run the C preprocessor" >&5
+echo "$as_me:2112: checking how to run the C preprocessor" >&5
 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
@@ -2125,18 +2130,18 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2128 "configure"
+#line 2133 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:2133: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2138: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2139: \$? = $ac_status" >&5
+  echo "$as_me:2144: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2159,17 +2164,17 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2162 "configure"
+#line 2167 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:2166: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2171: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2172: \$? = $ac_status" >&5
+  echo "$as_me:2177: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2206,7 +2211,7 @@
 else
   ac_cv_prog_CPP=$CPP
 fi
-echo "$as_me:2209: result: $CPP" >&5
+echo "$as_me:2214: result: $CPP" >&5
 echo "${ECHO_T}$CPP" >&6
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
@@ -2216,18 +2221,18 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2219 "configure"
+#line 2224 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:2224: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2229: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2230: \$? = $ac_status" >&5
+  echo "$as_me:2235: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2250,17 +2255,17 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 2253 "configure"
+#line 2258 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:2257: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2262: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:2263: \$? = $ac_status" >&5
+  echo "$as_me:2268: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -2288,7 +2293,7 @@
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:2291: error: C preprocessor \"$CPP\" fails sanity check" >&5
+  { { echo "$as_me:2296: error: C preprocessor \"$CPP\" fails sanity check" >&5
 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -2301,14 +2306,14 @@
 ac_main_return=return
 
 if test $ac_cv_c_compiler_gnu = yes; then
-    echo "$as_me:2304: checking whether $CC needs -traditional" >&5
+    echo "$as_me:2309: checking whether $CC needs -traditional" >&5
 echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
 if test "${ac_cv_prog_gcc_traditional+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
     ac_pattern="Autoconf.*'x'"
   cat >conftest.$ac_ext <<_ACEOF
-#line 2311 "configure"
+#line 2316 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 int Autoconf = TIOCGETP;
@@ -2323,7 +2328,7 @@
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat >conftest.$ac_ext <<_ACEOF
-#line 2326 "configure"
+#line 2331 "configure"
 #include "confdefs.h"
 #include <termio.h>
 int Autoconf = TCGETA;
@@ -2336,14 +2341,14 @@
 
   fi
 fi
-echo "$as_me:2339: result: $ac_cv_prog_gcc_traditional" >&5
+echo "$as_me:2344: result: $ac_cv_prog_gcc_traditional" >&5
 echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
   if test $ac_cv_prog_gcc_traditional = yes; then
     CC="$CC -traditional"
   fi
 fi
 
-echo "$as_me:2346: checking whether $CC understands -c and -o together" >&5
+echo "$as_me:2351: checking whether $CC understands -c and -o together" >&5
 echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
 if test "${cf_cv_prog_CC_c_o+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2359,15 +2364,15 @@
 # We do the test twice because some compilers refuse to overwrite an
 # existing .o file with -o, though they will create one.
 ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-if { (eval echo "$as_me:2362: \"$ac_try\"") >&5
+if { (eval echo "$as_me:2367: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2365: \$? = $ac_status" >&5
+  echo "$as_me:2370: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-  test -f conftest2.$ac_objext && { (eval echo "$as_me:2367: \"$ac_try\"") >&5
+  test -f conftest2.$ac_objext && { (eval echo "$as_me:2372: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2370: \$? = $ac_status" >&5
+  echo "$as_me:2375: \$? = $ac_status" >&5
   (exit $ac_status); };
 then
   eval cf_cv_prog_CC_c_o=yes
@@ -2378,19 +2383,19 @@
 
 fi
 if test $cf_cv_prog_CC_c_o = yes; then
-  echo "$as_me:2381: result: yes" >&5
+  echo "$as_me:2386: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 else
-  echo "$as_me:2384: result: no" >&5
+  echo "$as_me:2389: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:2388: checking for POSIXized ISC" >&5
+echo "$as_me:2393: checking for POSIXized ISC" >&5
 echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
 if test -d /etc/conf/kconfig.d &&
    grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
 then
-  echo "$as_me:2393: result: yes" >&5
+  echo "$as_me:2398: result: yes" >&5
 echo "${ECHO_T}yes" >&6
   ISC=yes # If later tests want to check for ISC.
 
@@ -2404,12 +2409,12 @@
     CC="$CC -Xp"
   fi
 else
-  echo "$as_me:2407: result: no" >&5
+  echo "$as_me:2412: result: no" >&5
 echo "${ECHO_T}no" >&6
   ISC=
 fi
 
-echo "$as_me:2412: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "$as_me:2417: checking for ${CC-cc} option to accept ANSI C" >&5
 echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
 if test "${cf_cv_ansi_cc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2494,7 +2499,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -2503,7 +2508,7 @@
 fi
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 2506 "configure"
+#line 2511 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -2524,16 +2529,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2527: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2532: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2530: \$? = $ac_status" >&5
+  echo "$as_me:2535: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2533: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2538: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2536: \$? = $ac_status" >&5
+  echo "$as_me:2541: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_ansi_cc="$cf_arg"; break
 else
@@ -2546,7 +2551,7 @@
 CPPFLAGS="$cf_save_CPPFLAGS"
 
 fi
-echo "$as_me:2549: result: $cf_cv_ansi_cc" >&5
+echo "$as_me:2554: result: $cf_cv_ansi_cc" >&5
 echo "${ECHO_T}$cf_cv_ansi_cc" >&6
 
 if test "$cf_cv_ansi_cc" != "no"; then
@@ -2612,7 +2617,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -2629,7 +2634,7 @@
 fi
 
 if test "$cf_cv_ansi_cc" = "no"; then
-	{ { echo "$as_me:2632: error: Your compiler does not appear to recognize prototypes.
+	{ { echo "$as_me:2637: error: Your compiler does not appear to recognize prototypes.
 You have the following choices:
 	a. adjust your compiler options
 	b. get an up-to-date compiler
@@ -2663,13 +2668,13 @@
   LDCONFIG=:
 else
 case "$cf_cv_system_name" in #(vi
-freebsd*) #(vi
+dragonfly*|freebsd*) #(vi
   test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R"
   ;;
 *) LDPATH=$PATH:/sbin:/usr/sbin
   # Extract the first word of "ldconfig", so it can be a program name with args.
 set dummy ldconfig; ac_word=$2
-echo "$as_me:2672: checking for $ac_word" >&5
+echo "$as_me:2677: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_LDCONFIG+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2686,7 +2691,7 @@
   test -z "$ac_dir" && ac_dir=.
   if $as_executable_p "$ac_dir/$ac_word"; then
    ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
-   echo "$as_me:2689: found $ac_dir/$ac_word" >&5
+   echo "$as_me:2694: found $ac_dir/$ac_word" >&5
    break
 fi
 done
@@ -2697,10 +2702,10 @@
 LDCONFIG=$ac_cv_path_LDCONFIG
 
 if test -n "$LDCONFIG"; then
-  echo "$as_me:2700: result: $LDCONFIG" >&5
+  echo "$as_me:2705: result: $LDCONFIG" >&5
 echo "${ECHO_T}$LDCONFIG" >&6
 else
-  echo "$as_me:2703: result: no" >&5
+  echo "$as_me:2708: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2708,7 +2713,7 @@
 esac
 fi
 
-echo "$as_me:2711: checking if you want to ensure bool is consistent with C++" >&5
+echo "$as_me:2716: checking if you want to ensure bool is consistent with C++" >&5
 echo $ECHO_N "checking if you want to ensure bool is consistent with C++... $ECHO_C" >&6
 
 # Check whether --with-cxx or --without-cxx was given.
@@ -2718,7 +2723,7 @@
 else
   cf_with_cxx=yes
 fi;
-echo "$as_me:2721: result: $cf_with_cxx" >&5
+echo "$as_me:2726: result: $cf_with_cxx" >&5
 echo "${ECHO_T}$cf_with_cxx" >&6
 if test "X$cf_with_cxx" = Xno ; then
 	CXX=""
@@ -2736,7 +2741,7 @@
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:2739: checking for $ac_word" >&5
+echo "$as_me:2744: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2751,7 +2756,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-echo "$as_me:2754: found $ac_dir/$ac_word" >&5
+echo "$as_me:2759: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -2759,10 +2764,10 @@
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  echo "$as_me:2762: result: $CXX" >&5
+  echo "$as_me:2767: result: $CXX" >&5
 echo "${ECHO_T}$CXX" >&6
 else
-  echo "$as_me:2765: result: no" >&5
+  echo "$as_me:2770: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2775,7 +2780,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:2778: checking for $ac_word" >&5
+echo "$as_me:2783: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -2790,7 +2795,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_CXX="$ac_prog"
-echo "$as_me:2793: found $ac_dir/$ac_word" >&5
+echo "$as_me:2798: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -2798,10 +2803,10 @@
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  echo "$as_me:2801: result: $ac_ct_CXX" >&5
+  echo "$as_me:2806: result: $ac_ct_CXX" >&5
 echo "${ECHO_T}$ac_ct_CXX" >&6
 else
-  echo "$as_me:2804: result: no" >&5
+  echo "$as_me:2809: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -2813,32 +2818,32 @@
 fi
 
 # Provide some information about the compiler.
-echo "$as_me:2816:" \
+echo "$as_me:2821:" \
      "checking for C++ compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:2819: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2824: \"$ac_compiler --version </dev/null >&5\"") >&5
   (eval $ac_compiler --version </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:2822: \$? = $ac_status" >&5
+  echo "$as_me:2827: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:2824: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2829: \"$ac_compiler -v </dev/null >&5\"") >&5
   (eval $ac_compiler -v </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:2827: \$? = $ac_status" >&5
+  echo "$as_me:2832: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:2829: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2834: \"$ac_compiler -V </dev/null >&5\"") >&5
   (eval $ac_compiler -V </dev/null >&5) 2>&5
   ac_status=$?
-  echo "$as_me:2832: \$? = $ac_status" >&5
+  echo "$as_me:2837: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-echo "$as_me:2835: checking whether we are using the GNU C++ compiler" >&5
+echo "$as_me:2840: checking whether we are using the GNU C++ compiler" >&5
 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 2841 "configure"
+#line 2846 "configure"
 #include "confdefs.h"
 
 int
@@ -2853,16 +2858,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2856: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2861: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2859: \$? = $ac_status" >&5
+  echo "$as_me:2864: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2862: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2867: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2865: \$? = $ac_status" >&5
+  echo "$as_me:2870: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_compiler_gnu=yes
 else
@@ -2874,19 +2879,19 @@
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:2877: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "$as_me:2882: result: $ac_cv_cxx_compiler_gnu" >&5
 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
 GXX=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
 CXXFLAGS="-g"
-echo "$as_me:2883: checking whether $CXX accepts -g" >&5
+echo "$as_me:2888: checking whether $CXX accepts -g" >&5
 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
 if test "${ac_cv_prog_cxx_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 2889 "configure"
+#line 2894 "configure"
 #include "confdefs.h"
 
 int
@@ -2898,16 +2903,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2901: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2906: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2904: \$? = $ac_status" >&5
+  echo "$as_me:2909: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2907: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2912: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2910: \$? = $ac_status" >&5
+  echo "$as_me:2915: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cxx_g=yes
 else
@@ -2917,7 +2922,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:2920: result: $ac_cv_prog_cxx_g" >&5
+echo "$as_me:2925: result: $ac_cv_prog_cxx_g" >&5
 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
 if test "$ac_test_CXXFLAGS" = set; then
   CXXFLAGS=$ac_save_CXXFLAGS
@@ -2944,7 +2949,7 @@
    'void exit (int);'
 do
   cat >conftest.$ac_ext <<_ACEOF
-#line 2947 "configure"
+#line 2952 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 $ac_declaration
@@ -2957,16 +2962,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2960: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2965: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2963: \$? = $ac_status" >&5
+  echo "$as_me:2968: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2966: \"$ac_try\"") >&5
+  { (eval echo "$as_me:2971: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:2969: \$? = $ac_status" >&5
+  echo "$as_me:2974: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -2976,7 +2981,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 2979 "configure"
+#line 2984 "configure"
 #include "confdefs.h"
 $ac_declaration
 int
@@ -2988,16 +2993,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2991: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2996: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:2994: \$? = $ac_status" >&5
+  echo "$as_me:2999: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:2997: \"$ac_try\"") >&5
+  { (eval echo "$as_me:3002: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:3000: \$? = $ac_status" >&5
+  echo "$as_me:3005: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -3024,7 +3029,7 @@
 	if test "$CXX" = "g++" ; then
 		# Extract the first word of "g++", so it can be a program name with args.
 set dummy g++; ac_word=$2
-echo "$as_me:3027: checking for $ac_word" >&5
+echo "$as_me:3032: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_CXX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3041,7 +3046,7 @@
   test -z "$ac_dir" && ac_dir=.
   if $as_executable_p "$ac_dir/$ac_word"; then
    ac_cv_path_CXX="$ac_dir/$ac_word"
-   echo "$as_me:3044: found $ac_dir/$ac_word" >&5
+   echo "$as_me:3049: found $ac_dir/$ac_word" >&5
    break
 fi
 done
@@ -3052,16 +3057,16 @@
 CXX=$ac_cv_path_CXX
 
 if test -n "$CXX"; then
-  echo "$as_me:3055: result: $CXX" >&5
+  echo "$as_me:3060: result: $CXX" >&5
 echo "${ECHO_T}$CXX" >&6
 else
-  echo "$as_me:3058: result: no" >&5
+  echo "$as_me:3063: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
 	fi
 	if test "$CXX" = "g++" ; then
-		{ echo "$as_me:3064: WARNING: ignoring hardcoded g++" >&5
+		{ echo "$as_me:3069: WARNING: ignoring hardcoded g++" >&5
 echo "$as_me: WARNING: ignoring hardcoded g++" >&2;}
 		cf_with_cxx=no; CXX=""; GXX="";
 	fi
@@ -3069,11 +3074,11 @@
 
 GXX_VERSION=none
 if test "$GXX" = yes; then
-	echo "$as_me:3072: checking version of g++" >&5
+	echo "$as_me:3077: checking version of g++" >&5
 echo $ECHO_N "checking version of g++... $ECHO_C" >&6
 	GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
 	test -z "$GXX_VERSION" && GXX_VERSION=unknown
-	echo "$as_me:3076: result: $GXX_VERSION" >&5
+	echo "$as_me:3081: result: $GXX_VERSION" >&5
 echo "${ECHO_T}$GXX_VERSION" >&6
 fi
 
@@ -3081,12 +3086,12 @@
 1*|2.[0-6]*)
 	# GXX=""; CXX=""; ac_cv_prog_gxx=no
 	# cf_cxx_library=no
-	{ echo "$as_me:3084: WARNING: templates do not work" >&5
+	{ echo "$as_me:3089: WARNING: templates do not work" >&5
 echo "$as_me: WARNING: templates do not work" >&2;}
 	;;
 esac
 
-echo "$as_me:3089: checking if you want to build C++ binding and demo" >&5
+echo "$as_me:3094: checking if you want to build C++ binding and demo" >&5
 echo $ECHO_N "checking if you want to build C++ binding and demo... $ECHO_C" >&6
 
 # Check whether --with-cxx-binding or --without-cxx-binding was given.
@@ -3096,10 +3101,10 @@
 else
   cf_with_cxx_binding=$cf_with_cxx
 fi;
-echo "$as_me:3099: result: $cf_with_cxx_binding" >&5
+echo "$as_me:3104: result: $cf_with_cxx_binding" >&5
 echo "${ECHO_T}$cf_with_cxx_binding" >&6
 
-echo "$as_me:3102: checking if you want to build with Ada95" >&5
+echo "$as_me:3107: checking if you want to build with Ada95" >&5
 echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6
 
 # Check whether --with-ada or --without-ada was given.
@@ -3109,10 +3114,23 @@
 else
   cf_with_ada=yes
 fi;
-echo "$as_me:3112: result: $cf_with_ada" >&5
+echo "$as_me:3117: result: $cf_with_ada" >&5
 echo "${ECHO_T}$cf_with_ada" >&6
 
-echo "$as_me:3115: checking if you want to build programs such as tic" >&5
+echo "$as_me:3120: checking if you want to install manpages" >&5
+echo $ECHO_N "checking if you want to install manpages... $ECHO_C" >&6
+
+# Check whether --with-manpages or --without-manpages was given.
+if test "${with_manpages+set}" = set; then
+  withval="$with_manpages"
+  cf_with_manpages=$withval
+else
+  cf_with_manpages=yes
+fi;
+echo "$as_me:3130: result: $cf_with_manpages" >&5
+echo "${ECHO_T}$cf_with_manpages" >&6
+
+echo "$as_me:3133: checking if you want to build programs such as tic" >&5
 echo $ECHO_N "checking if you want to build programs such as tic... $ECHO_C" >&6
 
 # Check whether --with-progs or --without-progs was given.
@@ -3122,10 +3140,10 @@
 else
   cf_with_progs=yes
 fi;
-echo "$as_me:3125: result: $cf_with_progs" >&5
+echo "$as_me:3143: result: $cf_with_progs" >&5
 echo "${ECHO_T}$cf_with_progs" >&6
 
-echo "$as_me:3128: checking if you wish to install curses.h" >&5
+echo "$as_me:3146: checking if you wish to install curses.h" >&5
 echo $ECHO_N "checking if you wish to install curses.h... $ECHO_C" >&6
 
 # Check whether --with-curses-h or --without-curses-h was given.
@@ -3135,7 +3153,7 @@
 else
   with_curses_h=yes
 fi;
-echo "$as_me:3138: result: $with_curses_h" >&5
+echo "$as_me:3156: result: $with_curses_h" >&5
 echo "${ECHO_T}$with_curses_h" >&6
 
 modules_to_build="ncurses"
@@ -3161,7 +3179,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:3164: checking for $ac_word" >&5
+echo "$as_me:3182: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_AWK+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3176,7 +3194,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_AWK="$ac_prog"
-echo "$as_me:3179: found $ac_dir/$ac_word" >&5
+echo "$as_me:3197: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3184,21 +3202,21 @@
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  echo "$as_me:3187: result: $AWK" >&5
+  echo "$as_me:3205: result: $AWK" >&5
 echo "${ECHO_T}$AWK" >&6
 else
-  echo "$as_me:3190: result: no" >&5
+  echo "$as_me:3208: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
   test -n "$AWK" && break
 done
 
-test -z "$AWK" && { { echo "$as_me:3197: error: No awk program found" >&5
+test -z "$AWK" && { { echo "$as_me:3215: error: No awk program found" >&5
 echo "$as_me: error: No awk program found" >&2;}
    { (exit 1); exit 1; }; }
 
-echo "$as_me:3201: checking for egrep" >&5
+echo "$as_me:3219: checking for egrep" >&5
 echo $ECHO_N "checking for egrep... $ECHO_C" >&6
 if test "${ac_cv_prog_egrep+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3208,11 +3226,11 @@
     else ac_cv_prog_egrep='egrep'
     fi
 fi
-echo "$as_me:3211: result: $ac_cv_prog_egrep" >&5
+echo "$as_me:3229: result: $ac_cv_prog_egrep" >&5
 echo "${ECHO_T}$ac_cv_prog_egrep" >&6
  EGREP=$ac_cv_prog_egrep
 
-test -z "$EGREP" && { { echo "$as_me:3215: error: No egrep program found" >&5
+test -z "$EGREP" && { { echo "$as_me:3233: error: No egrep program found" >&5
 echo "$as_me: error: No egrep program found" >&2;}
    { (exit 1); exit 1; }; }
 
@@ -3228,7 +3246,7 @@
 # AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:3231: checking for a BSD compatible install" >&5
+echo "$as_me:3249: checking for a BSD compatible install" >&5
 echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
@@ -3277,7 +3295,7 @@
     INSTALL=$ac_install_sh
   fi
 fi
-echo "$as_me:3280: result: $INSTALL" >&5
+echo "$as_me:3298: result: $INSTALL" >&5
 echo "${ECHO_T}$INSTALL" >&6
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -3302,7 +3320,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:3305: checking for $ac_word" >&5
+echo "$as_me:3323: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_LINT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3317,7 +3335,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_LINT="$ac_prog"
-echo "$as_me:3320: found $ac_dir/$ac_word" >&5
+echo "$as_me:3338: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3325,28 +3343,28 @@
 fi
 LINT=$ac_cv_prog_LINT
 if test -n "$LINT"; then
-  echo "$as_me:3328: result: $LINT" >&5
+  echo "$as_me:3346: result: $LINT" >&5
 echo "${ECHO_T}$LINT" >&6
 else
-  echo "$as_me:3331: result: no" >&5
+  echo "$as_me:3349: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
   test -n "$LINT" && break
 done
 
-echo "$as_me:3338: checking whether ln -s works" >&5
+echo "$as_me:3356: checking whether ln -s works" >&5
 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  echo "$as_me:3342: result: yes" >&5
+  echo "$as_me:3360: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 else
-  echo "$as_me:3345: result: no, using $LN_S" >&5
+  echo "$as_me:3363: result: no, using $LN_S" >&5
 echo "${ECHO_T}no, using $LN_S" >&6
 fi
 
-echo "$as_me:3349: checking for long file names" >&5
+echo "$as_me:3367: checking for long file names" >&5
 echo $ECHO_N "checking for long file names... $ECHO_C" >&6
 if test "${ac_cv_sys_long_file_names+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3385,7 +3403,7 @@
   rm -rf $ac_xdir 2>/dev/null
 done
 fi
-echo "$as_me:3388: result: $ac_cv_sys_long_file_names" >&5
+echo "$as_me:3406: result: $ac_cv_sys_long_file_names" >&5
 echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
 if test $ac_cv_sys_long_file_names = yes; then
 
@@ -3395,7 +3413,136 @@
 
 fi
 
-echo "$as_me:3398: checking if we should assume mixed-case filenames" >&5
+# if we find pkg-config, check if we should install the ".pc" files.
+
+echo "$as_me:3418: checking if you want to use pkg-config" >&5
+echo $ECHO_N "checking if you want to use pkg-config... $ECHO_C" >&6
+
+# Check whether --with-pkg-config or --without-pkg-config was given.
+if test "${with_pkg_config+set}" = set; then
+  withval="$with_pkg_config"
+  cf_pkg_config=$withval
+else
+  cf_pkg_config=yes
+fi;
+echo "$as_me:3428: result: $cf_pkg_config" >&5
+echo "${ECHO_T}$cf_pkg_config" >&6
+
+case $cf_pkg_config in #(vi
+no) #(vi
+	PKG_CONFIG=none
+	;;
+yes) #(vi
+	# Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:3438: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  if $as_executable_p "$ac_dir/$ac_word"; then
+   ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+   echo "$as_me:3455: found $ac_dir/$ac_word" >&5
+   break
+fi
+done
+
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="none"
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+  echo "$as_me:3467: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+  echo "$as_me:3470: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+	;;
+*)
+	PKG_CONFIG=$withval
+	;;
+esac
+
+test -z "$PKG_CONFIG" && PKG_CONFIG=none
+if test "$PKG_CONFIG" != none ; then
+
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
+fi
+
+case ".$PKG_CONFIG" in #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(vi
+  eval PKG_CONFIG="$PKG_CONFIG"
+  case ".$PKG_CONFIG" in #(vi
+  .NONE/*)
+    PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+    ;;
+  esac
+  ;; #(vi
+.no|.NONE/*)
+  PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+  ;;
+*)
+  { { echo "$as_me:3508: error: expected a pathname, not \"$PKG_CONFIG\"" >&5
+echo "$as_me: error: expected a pathname, not \"$PKG_CONFIG\"" >&2;}
+   { (exit 1); exit 1; }; }
+  ;;
+esac
+
+fi
+
+if test "$PKG_CONFIG" != no ; then
+	echo "$as_me:3517: checking if we should install .pc files for $PKG_CONFIG" >&5
+echo $ECHO_N "checking if we should install .pc files for $PKG_CONFIG... $ECHO_C" >&6
+
+	# Leave this as something that can be overridden in the environment.
+	if test -z "$PKG_CONFIG_LIBDIR" ; then
+		PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[^/]*/[^/]*$,,'`/lib/pkgconfig
+	fi
+
+	if test -d "$PKG_CONFIG_LIBDIR" ; then
+
+# Check whether --enable-pc-files or --disable-pc-files was given.
+if test "${enable_pc_files+set}" = set; then
+  enableval="$enable_pc_files"
+  enable_pc_files=$enableval
+else
+  enable_pc_files=no
+fi;
+		echo "$as_me:3534: result: $enable_pc_files" >&5
+echo "${ECHO_T}$enable_pc_files" >&6
+	else
+		echo "$as_me:3537: result: no" >&5
+echo "${ECHO_T}no" >&6
+		{ echo "$as_me:3539: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&5
+echo "$as_me: WARNING: did not find library $PKG_CONFIG_LIBDIR" >&2;}
+		enable_pc_files=no
+	fi
+fi
+
+echo "$as_me:3545: checking if we should assume mixed-case filenames" >&5
 echo $ECHO_N "checking if we should assume mixed-case filenames... $ECHO_C" >&6
 
 # Check whether --enable-mixed-case or --disable-mixed-case was given.
@@ -3405,11 +3552,11 @@
 else
   enable_mixedcase=auto
 fi;
-echo "$as_me:3408: result: $enable_mixedcase" >&5
+echo "$as_me:3555: result: $enable_mixedcase" >&5
 echo "${ECHO_T}$enable_mixedcase" >&6
 if test "$enable_mixedcase" = "auto" ; then
 
-echo "$as_me:3412: checking if filesystem supports mixed-case filenames" >&5
+echo "$as_me:3559: checking if filesystem supports mixed-case filenames" >&5
 echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
 if test "${cf_cv_mixedcase+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3436,7 +3583,7 @@
 fi
 
 fi
-echo "$as_me:3439: result: $cf_cv_mixedcase" >&5
+echo "$as_me:3586: result: $cf_cv_mixedcase" >&5
 echo "${ECHO_T}$cf_cv_mixedcase" >&6
 test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
 #define MIXEDCASE_FILENAMES 1
@@ -3453,7 +3600,7 @@
 fi
 
 # do this after mixed-case option (tags/TAGS is not as important as tic).
-echo "$as_me:3456: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "$as_me:3603: checking whether ${MAKE-make} sets \${MAKE}" >&5
 echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
 if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
@@ -3473,18 +3620,18 @@
 rm -f conftest.make
 fi
 if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:3476: result: yes" >&5
+  echo "$as_me:3623: result: yes" >&5
 echo "${ECHO_T}yes" >&6
   SET_MAKE=
 else
-  echo "$as_me:3480: result: no" >&5
+  echo "$as_me:3627: result: no" >&5
 echo "${ECHO_T}no" >&6
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
 # Extract the first word of "ctags", so it can be a program name with args.
 set dummy ctags; ac_word=$2
-echo "$as_me:3487: checking for $ac_word" >&5
+echo "$as_me:3634: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3499,7 +3646,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_MAKE_LOWER_TAGS="yes"
-echo "$as_me:3502: found $ac_dir/$ac_word" >&5
+echo "$as_me:3649: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3508,17 +3655,17 @@
 fi
 MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
 if test -n "$MAKE_LOWER_TAGS"; then
-  echo "$as_me:3511: result: $MAKE_LOWER_TAGS" >&5
+  echo "$as_me:3658: result: $MAKE_LOWER_TAGS" >&5
 echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
 else
-  echo "$as_me:3514: result: no" >&5
+  echo "$as_me:3661: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
 if test "$cf_cv_mixedcase" = yes ; then
 	# Extract the first word of "etags", so it can be a program name with args.
 set dummy etags; ac_word=$2
-echo "$as_me:3521: checking for $ac_word" >&5
+echo "$as_me:3668: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3533,7 +3680,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_MAKE_UPPER_TAGS="yes"
-echo "$as_me:3536: found $ac_dir/$ac_word" >&5
+echo "$as_me:3683: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3542,10 +3689,10 @@
 fi
 MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
 if test -n "$MAKE_UPPER_TAGS"; then
-  echo "$as_me:3545: result: $MAKE_UPPER_TAGS" >&5
+  echo "$as_me:3692: result: $MAKE_UPPER_TAGS" >&5
 echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
 else
-  echo "$as_me:3548: result: no" >&5
+  echo "$as_me:3695: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3565,7 +3712,7 @@
 	MAKE_LOWER_TAGS="#"
 fi
 
-echo "$as_me:3568: checking for makeflags variable" >&5
+echo "$as_me:3715: checking for makeflags variable" >&5
 echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6
 if test "${cf_cv_makeflags+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3599,13 +3746,13 @@
 	rm -f cf_makeflags.tmp
 
 fi
-echo "$as_me:3602: result: $cf_cv_makeflags" >&5
+echo "$as_me:3749: result: $cf_cv_makeflags" >&5
 echo "${ECHO_T}$cf_cv_makeflags" >&6
 
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:3608: checking for $ac_word" >&5
+echo "$as_me:3755: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3620,7 +3767,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-echo "$as_me:3623: found $ac_dir/$ac_word" >&5
+echo "$as_me:3770: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3628,10 +3775,10 @@
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  echo "$as_me:3631: result: $RANLIB" >&5
+  echo "$as_me:3778: result: $RANLIB" >&5
 echo "${ECHO_T}$RANLIB" >&6
 else
-  echo "$as_me:3634: result: no" >&5
+  echo "$as_me:3781: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3640,7 +3787,7 @@
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-echo "$as_me:3643: checking for $ac_word" >&5
+echo "$as_me:3790: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3655,7 +3802,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_RANLIB="ranlib"
-echo "$as_me:3658: found $ac_dir/$ac_word" >&5
+echo "$as_me:3805: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3664,10 +3811,10 @@
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  echo "$as_me:3667: result: $ac_ct_RANLIB" >&5
+  echo "$as_me:3814: result: $ac_ct_RANLIB" >&5
 echo "${ECHO_T}$ac_ct_RANLIB" >&6
 else
-  echo "$as_me:3670: result: no" >&5
+  echo "$as_me:3817: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3679,7 +3826,7 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ld; ac_word=$2
-echo "$as_me:3682: checking for $ac_word" >&5
+echo "$as_me:3829: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_LD+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3694,7 +3841,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_LD="${ac_tool_prefix}ld"
-echo "$as_me:3697: found $ac_dir/$ac_word" >&5
+echo "$as_me:3844: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3702,10 +3849,10 @@
 fi
 LD=$ac_cv_prog_LD
 if test -n "$LD"; then
-  echo "$as_me:3705: result: $LD" >&5
+  echo "$as_me:3852: result: $LD" >&5
 echo "${ECHO_T}$LD" >&6
 else
-  echo "$as_me:3708: result: no" >&5
+  echo "$as_me:3855: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3714,7 +3861,7 @@
   ac_ct_LD=$LD
   # Extract the first word of "ld", so it can be a program name with args.
 set dummy ld; ac_word=$2
-echo "$as_me:3717: checking for $ac_word" >&5
+echo "$as_me:3864: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3729,7 +3876,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_LD="ld"
-echo "$as_me:3732: found $ac_dir/$ac_word" >&5
+echo "$as_me:3879: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3738,10 +3885,10 @@
 fi
 ac_ct_LD=$ac_cv_prog_ac_ct_LD
 if test -n "$ac_ct_LD"; then
-  echo "$as_me:3741: result: $ac_ct_LD" >&5
+  echo "$as_me:3888: result: $ac_ct_LD" >&5
 echo "${ECHO_T}$ac_ct_LD" >&6
 else
-  echo "$as_me:3744: result: no" >&5
+  echo "$as_me:3891: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3753,7 +3900,7 @@
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:3756: checking for $ac_word" >&5
+echo "$as_me:3903: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_AR+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3768,7 +3915,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_AR="${ac_tool_prefix}ar"
-echo "$as_me:3771: found $ac_dir/$ac_word" >&5
+echo "$as_me:3918: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3776,10 +3923,10 @@
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  echo "$as_me:3779: result: $AR" >&5
+  echo "$as_me:3926: result: $AR" >&5
 echo "${ECHO_T}$AR" >&6
 else
-  echo "$as_me:3782: result: no" >&5
+  echo "$as_me:3929: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3788,7 +3935,7 @@
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-echo "$as_me:3791: checking for $ac_word" >&5
+echo "$as_me:3938: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3803,7 +3950,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_ac_ct_AR="ar"
-echo "$as_me:3806: found $ac_dir/$ac_word" >&5
+echo "$as_me:3953: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3812,10 +3959,10 @@
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  echo "$as_me:3815: result: $ac_ct_AR" >&5
+  echo "$as_me:3962: result: $ac_ct_AR" >&5
 echo "${ECHO_T}$ac_ct_AR" >&6
 else
-  echo "$as_me:3818: result: no" >&5
+  echo "$as_me:3965: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3824,25 +3971,123 @@
   AR="$ac_cv_prog_AR"
 fi
 
-if test "${cf_cv_subst_AR_OPTS+set}" = set; then
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+echo "$as_me:3977: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_AR="${ac_tool_prefix}ar"
+echo "$as_me:3992: found $ac_dir/$ac_word" >&5
+break
+done
 
-echo "$as_me:3831: checking for archiver options (symbol AR_OPTS)" >&5
-echo $ECHO_N "checking for archiver options (symbol AR_OPTS)... $ECHO_C" >&6
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  echo "$as_me:4000: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+  echo "$as_me:4003: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
 
-if test -z "$AR_OPTS" ; then
-	AR_OPTS=rv
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo "$as_me:4012: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+  ac_save_IFS=$IFS; IFS=$ac_path_separator
+ac_dummy="$PATH"
+for ac_dir in $ac_dummy; do
+  IFS=$ac_save_IFS
+  test -z "$ac_dir" && ac_dir=.
+  $as_executable_p "$ac_dir/$ac_word" || continue
+ac_cv_prog_ac_ct_AR="ar"
+echo "$as_me:4027: found $ac_dir/$ac_word" >&5
+break
+done
 
+  test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="ar"
+fi
 fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  echo "$as_me:4036: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6
+else
+  echo "$as_me:4039: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  AR=$ac_ct_AR
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+echo "$as_me:4048: checking for options to update archives" >&5
+echo $ECHO_N "checking for options to update archives... $ECHO_C" >&6
+if test "${cf_cv_ar_flags+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+	cf_cv_ar_flags=unknown
+	for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
+	do
+		rm -f conftest.$ac_cv_objext
+		rm -f conftest.a
 
-cf_cv_subst_AR_OPTS=$AR_OPTS
-echo "$as_me:3840: result: $AR_OPTS" >&5
-echo "${ECHO_T}$AR_OPTS" >&6
+		cat >conftest.$ac_ext <<EOF
+#line 4061 "configure"
+int	testdata[3] = { 123, 456, 789 };
+EOF
+		if { (eval echo "$as_me:4064: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:4067: \$? = $ac_status" >&5
+  (exit $ac_status); } ; then
+			$AR $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null
+			if test -f conftest.a ; then
+				cf_cv_ar_flags=$cf_ar_flags
+				break
+			fi
+		else
+			test -n "$verbose" && echo "	cannot compile test-program" 1>&6
+
+echo "${as_me-configure}:4077: testing cannot compile test-program ..." 1>&5
+
+			break
+		fi
+	done
+	rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
 
 fi
+echo "$as_me:4085: result: $cf_cv_ar_flags" >&5
+echo "${ECHO_T}$cf_cv_ar_flags" >&6
+test -z "$ARFLAGS" && ARFLAGS=$cf_cv_ar_flags
+ARFLAGS=$cf_cv_ar_flags
 
-echo "$as_me:3845: checking if you have specified an install-prefix" >&5
+echo "$as_me:4090: checking if you have specified an install-prefix" >&5
 echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
 
 # Check whether --with-install-prefix or --without-install-prefix was given.
@@ -3855,7 +4100,7 @@
 		;;
 	esac
 fi;
-echo "$as_me:3858: result: $DESTDIR" >&5
+echo "$as_me:4103: result: $DESTDIR" >&5
 echo "${ECHO_T}$DESTDIR" >&6
 
 ###############################################################################
@@ -3883,7 +4128,7 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:3886: checking for $ac_word" >&5
+echo "$as_me:4131: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_BUILD_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -3898,7 +4143,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_BUILD_CC="$ac_prog"
-echo "$as_me:3901: found $ac_dir/$ac_word" >&5
+echo "$as_me:4146: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -3906,10 +4151,10 @@
 fi
 BUILD_CC=$ac_cv_prog_BUILD_CC
 if test -n "$BUILD_CC"; then
-  echo "$as_me:3909: result: $BUILD_CC" >&5
+  echo "$as_me:4154: result: $BUILD_CC" >&5
 echo "${ECHO_T}$BUILD_CC" >&6
 else
-  echo "$as_me:3912: result: no" >&5
+  echo "$as_me:4157: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -3917,12 +4162,12 @@
 done
 
 fi;
-	echo "$as_me:3920: checking for native build C compiler" >&5
+	echo "$as_me:4165: checking for native build C compiler" >&5
 echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
-	echo "$as_me:3922: result: $BUILD_CC" >&5
+	echo "$as_me:4167: result: $BUILD_CC" >&5
 echo "${ECHO_T}$BUILD_CC" >&6
 
-	echo "$as_me:3925: checking for native build C preprocessor" >&5
+	echo "$as_me:4170: checking for native build C preprocessor" >&5
 echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
 
 # Check whether --with-build-cpp or --without-build-cpp was given.
@@ -3932,10 +4177,10 @@
 else
   BUILD_CPP='${BUILD_CC} -E'
 fi;
-	echo "$as_me:3935: result: $BUILD_CPP" >&5
+	echo "$as_me:4180: result: $BUILD_CPP" >&5
 echo "${ECHO_T}$BUILD_CPP" >&6
 
-	echo "$as_me:3938: checking for native build C flags" >&5
+	echo "$as_me:4183: checking for native build C flags" >&5
 echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
 
 # Check whether --with-build-cflags or --without-build-cflags was given.
@@ -3943,10 +4188,10 @@
   withval="$with_build_cflags"
   BUILD_CFLAGS="$withval"
 fi;
-	echo "$as_me:3946: result: $BUILD_CFLAGS" >&5
+	echo "$as_me:4191: result: $BUILD_CFLAGS" >&5
 echo "${ECHO_T}$BUILD_CFLAGS" >&6
 
-	echo "$as_me:3949: checking for native build C preprocessor-flags" >&5
+	echo "$as_me:4194: checking for native build C preprocessor-flags" >&5
 echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
 
 # Check whether --with-build-cppflags or --without-build-cppflags was given.
@@ -3954,10 +4199,10 @@
   withval="$with_build_cppflags"
   BUILD_CPPFLAGS="$withval"
 fi;
-	echo "$as_me:3957: result: $BUILD_CPPFLAGS" >&5
+	echo "$as_me:4202: result: $BUILD_CPPFLAGS" >&5
 echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
 
-	echo "$as_me:3960: checking for native build linker-flags" >&5
+	echo "$as_me:4205: checking for native build linker-flags" >&5
 echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
 
 # Check whether --with-build-ldflags or --without-build-ldflags was given.
@@ -3965,10 +4210,10 @@
   withval="$with_build_ldflags"
   BUILD_LDFLAGS="$withval"
 fi;
-	echo "$as_me:3968: result: $BUILD_LDFLAGS" >&5
+	echo "$as_me:4213: result: $BUILD_LDFLAGS" >&5
 echo "${ECHO_T}$BUILD_LDFLAGS" >&6
 
-	echo "$as_me:3971: checking for native build linker-libraries" >&5
+	echo "$as_me:4216: checking for native build linker-libraries" >&5
 echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
 
 # Check whether --with-build-libs or --without-build-libs was given.
@@ -3976,7 +4221,7 @@
   withval="$with_build_libs"
   BUILD_LIBS="$withval"
 fi;
-	echo "$as_me:3979: result: $BUILD_LIBS" >&5
+	echo "$as_me:4224: result: $BUILD_LIBS" >&5
 echo "${ECHO_T}$BUILD_LIBS" >&6
 
 	# this assumes we're on Unix.
@@ -3986,7 +4231,7 @@
 	: ${BUILD_CC:='${CC}'}
 
 	if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
-		{ { echo "$as_me:3989: error: Cross-build requires two compilers.
+		{ { echo "$as_me:4234: error: Cross-build requires two compilers.
 Use --with-build-cc to specify the native compiler." >&5
 echo "$as_me: error: Cross-build requires two compilers.
 Use --with-build-cc to specify the native compiler." >&2;}
@@ -4027,7 +4272,7 @@
 LIB_INSTALL=
 LIB_UNINSTALL=
 
-echo "$as_me:4030: checking if you want to build libraries with libtool" >&5
+echo "$as_me:4275: checking if you want to build libraries with libtool" >&5
 echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6
 
 # Check whether --with-libtool or --without-libtool was given.
@@ -4037,11 +4282,11 @@
 else
   with_libtool=no
 fi;
-echo "$as_me:4040: result: $with_libtool" >&5
+echo "$as_me:4285: result: $with_libtool" >&5
 echo "${ECHO_T}$with_libtool" >&6
 if test "$with_libtool" != "no"; then
 
- 	if test "$with_libtool" != "yes" ; then
+	if test "$with_libtool" != "yes" ; then
 
 if test "x$prefix" != xNONE; then
   cf_path_syntax="$prefix"
@@ -4068,7 +4313,7 @@
   with_libtool=`echo $with_libtool | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:4071: error: expected a pathname, not \"$with_libtool\"" >&5
+  { { echo "$as_me:4316: error: expected a pathname, not \"$with_libtool\"" >&5
 echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -4076,9 +4321,9 @@
 
 		LIBTOOL=$with_libtool
 	else
- 		# Extract the first word of "libtool", so it can be a program name with args.
+		# Extract the first word of "libtool", so it can be a program name with args.
 set dummy libtool; ac_word=$2
-echo "$as_me:4081: checking for $ac_word" >&5
+echo "$as_me:4326: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_LIBTOOL+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4095,7 +4340,7 @@
   test -z "$ac_dir" && ac_dir=.
   if $as_executable_p "$ac_dir/$ac_word"; then
    ac_cv_path_LIBTOOL="$ac_dir/$ac_word"
-   echo "$as_me:4098: found $ac_dir/$ac_word" >&5
+   echo "$as_me:4343: found $ac_dir/$ac_word" >&5
    break
 fi
 done
@@ -4106,20 +4351,20 @@
 LIBTOOL=$ac_cv_path_LIBTOOL
 
 if test -n "$LIBTOOL"; then
-  echo "$as_me:4109: result: $LIBTOOL" >&5
+  echo "$as_me:4354: result: $LIBTOOL" >&5
 echo "${ECHO_T}$LIBTOOL" >&6
 else
-  echo "$as_me:4112: result: no" >&5
+  echo "$as_me:4357: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
- 	fi
- 	if test -z "$LIBTOOL" ; then
- 		{ { echo "$as_me:4118: error: Cannot find libtool" >&5
+	fi
+	if test -z "$LIBTOOL" ; then
+		{ { echo "$as_me:4363: error: Cannot find libtool" >&5
 echo "$as_me: error: Cannot find libtool" >&2;}
    { (exit 1); exit 1; }; }
- 	fi
-	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
+	fi
+	LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} ${LT_UNDEF} -o'
 	LIB_OBJECT='${OBJECTS:.o=.lo}'
 	LIB_SUFFIX=.la
 	LIB_CLEAN='${LIBTOOL} --mode=clean'
@@ -4130,24 +4375,32 @@
 	LIB_PREP=:
 
 	# Show the version of libtool
-	echo "$as_me:4133: checking version of libtool" >&5
+	echo "$as_me:4378: checking version of libtool" >&5
 echo $ECHO_N "checking version of libtool... $ECHO_C" >&6
 
 	# Save the version in a cache variable - this is not entirely a good
 	# thing, but the version string from libtool is very ugly, and for
-	# bug reports it might be useful to have the original string.
+	# bug reports it might be useful to have the original string. "("
 	cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
-	echo "$as_me:4140: result: $cf_cv_libtool_version" >&5
+	echo "$as_me:4385: result: $cf_cv_libtool_version" >&5
 echo "${ECHO_T}$cf_cv_libtool_version" >&6
 	if test -z "$cf_cv_libtool_version" ; then
-		{ { echo "$as_me:4143: error: This is not GNU libtool" >&5
+		{ { echo "$as_me:4388: error: This is not GNU libtool" >&5
 echo "$as_me: error: This is not GNU libtool" >&2;}
    { (exit 1); exit 1; }; }
 	fi
 
+	# special hack to add -no-undefined (which libtool should do for itself)
+	LT_UNDEF=
+	case "$cf_cv_system_name" in #(vi
+	cygwin*|mingw32*|uwin*|aix[456]) #(vi
+		LT_UNDEF=-no-undefined
+		;;
+	esac
+
 	# special hack to add --tag option for C++ compiler
-	case $cf_cv_libtool_version in
-	1.[5-9]*|[2-9]*)
+	case $cf_cv_libtool_version in #(vi
+	1.[5-9]*|[2-9].[0-9.a-z]*) #(vi
 		LIBTOOL_CXX="$LIBTOOL --tag=CXX"
 		LIBTOOL="$LIBTOOL --tag=CC"
 		;;
@@ -4168,7 +4421,7 @@
 
 else
 
-echo "$as_me:4171: checking if you want to build shared libraries" >&5
+echo "$as_me:4424: checking if you want to build shared libraries" >&5
 echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6
 
 # Check whether --with-shared or --without-shared was given.
@@ -4178,11 +4431,11 @@
 else
   with_shared=no
 fi;
-echo "$as_me:4181: result: $with_shared" >&5
+echo "$as_me:4434: result: $with_shared" >&5
 echo "${ECHO_T}$with_shared" >&6
 test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
 
-echo "$as_me:4185: checking if you want to build static libraries" >&5
+echo "$as_me:4438: checking if you want to build static libraries" >&5
 echo $ECHO_N "checking if you want to build static libraries... $ECHO_C" >&6
 
 # Check whether --with-normal or --without-normal was given.
@@ -4192,11 +4445,11 @@
 else
   with_normal=yes
 fi;
-echo "$as_me:4195: result: $with_normal" >&5
+echo "$as_me:4448: result: $with_normal" >&5
 echo "${ECHO_T}$with_normal" >&6
 test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
 
-echo "$as_me:4199: checking if you want to build debug libraries" >&5
+echo "$as_me:4452: checking if you want to build debug libraries" >&5
 echo $ECHO_N "checking if you want to build debug libraries... $ECHO_C" >&6
 
 # Check whether --with-debug or --without-debug was given.
@@ -4206,11 +4459,11 @@
 else
   with_debug=yes
 fi;
-echo "$as_me:4209: result: $with_debug" >&5
+echo "$as_me:4462: result: $with_debug" >&5
 echo "${ECHO_T}$with_debug" >&6
 test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
 
-echo "$as_me:4213: checking if you want to build profiling libraries" >&5
+echo "$as_me:4466: checking if you want to build profiling libraries" >&5
 echo $ECHO_N "checking if you want to build profiling libraries... $ECHO_C" >&6
 
 # Check whether --with-profile or --without-profile was given.
@@ -4220,7 +4473,7 @@
 else
   with_profile=no
 fi;
-echo "$as_me:4223: result: $with_profile" >&5
+echo "$as_me:4476: result: $with_profile" >&5
 echo "${ECHO_T}$with_profile" >&6
 test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
 
@@ -4228,19 +4481,19 @@
 
 ###############################################################################
 
-echo "$as_me:4231: checking for specified models" >&5
+echo "$as_me:4484: checking for specified models" >&5
 echo $ECHO_N "checking for specified models... $ECHO_C" >&6
 test -z "$cf_list_models" && cf_list_models=normal
 test "$with_libtool" != "no" && cf_list_models=libtool
-echo "$as_me:4235: result: $cf_list_models" >&5
+echo "$as_me:4488: result: $cf_list_models" >&5
 echo "${ECHO_T}$cf_list_models" >&6
 
 ### Use the first model as the default, and save its suffix for use in building
 ### up test-applications.
-echo "$as_me:4240: checking for default model" >&5
+echo "$as_me:4493: checking for default model" >&5
 echo $ECHO_N "checking for default model... $ECHO_C" >&6
 DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
-echo "$as_me:4243: result: $DFT_LWR_MODEL" >&5
+echo "$as_me:4496: result: $DFT_LWR_MODEL" >&5
 echo "${ECHO_T}$DFT_LWR_MODEL" >&6
 
 DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
@@ -4269,7 +4522,7 @@
 
 ###############################################################################
 
-echo "$as_me:4272: checking if you want to build a separate terminfo library" >&5
+echo "$as_me:4525: checking if you want to build a separate terminfo library" >&5
 echo $ECHO_N "checking if you want to build a separate terminfo library... $ECHO_C" >&6
 
 # Check whether --with-termlib or --without-termlib was given.
@@ -4279,10 +4532,10 @@
 else
   with_termlib=no
 fi;
-echo "$as_me:4282: result: $with_termlib" >&5
+echo "$as_me:4535: result: $with_termlib" >&5
 echo "${ECHO_T}$with_termlib" >&6
 
-echo "$as_me:4285: checking if you want to build a separate tic library" >&5
+echo "$as_me:4538: checking if you want to build a separate tic library" >&5
 echo $ECHO_N "checking if you want to build a separate tic library... $ECHO_C" >&6
 
 # Check whether --with-ticlib or --without-ticlib was given.
@@ -4292,13 +4545,13 @@
 else
   with_ticlib=no
 fi;
-echo "$as_me:4295: result: $with_ticlib" >&5
+echo "$as_me:4548: result: $with_ticlib" >&5
 echo "${ECHO_T}$with_ticlib" >&6
 
 ### Checks for special libraries, must be done up-front.
 SHLIB_LIST=""
 
-echo "$as_me:4301: checking if you want to link with the GPM mouse library" >&5
+echo "$as_me:4554: checking if you want to link with the GPM mouse library" >&5
 echo $ECHO_N "checking if you want to link with the GPM mouse library... $ECHO_C" >&6
 
 # Check whether --with-gpm or --without-gpm was given.
@@ -4308,27 +4561,27 @@
 else
   with_gpm=maybe
 fi;
-echo "$as_me:4311: result: $with_gpm" >&5
+echo "$as_me:4564: result: $with_gpm" >&5
 echo "${ECHO_T}$with_gpm" >&6
 
 if test "$with_gpm" != no ; then
-	echo "$as_me:4315: checking for gpm.h" >&5
+	echo "$as_me:4568: checking for gpm.h" >&5
 echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6
 if test "${ac_cv_header_gpm_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 4321 "configure"
+#line 4574 "configure"
 #include "confdefs.h"
 #include <gpm.h>
 _ACEOF
-if { (eval echo "$as_me:4325: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:4578: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:4331: \$? = $ac_status" >&5
+  echo "$as_me:4584: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -4347,7 +4600,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:4350: result: $ac_cv_header_gpm_h" >&5
+echo "$as_me:4603: result: $ac_cv_header_gpm_h" >&5
 echo "${ECHO_T}$ac_cv_header_gpm_h" >&6
 if test $ac_cv_header_gpm_h = yes; then
 
@@ -4358,14 +4611,14 @@
 		if test "$with_gpm" != yes && test "$with_gpm" != maybe ; then
 			test -n "$verbose" && echo "	assuming we really have GPM library" 1>&6
 
-echo "${as_me-configure}:4361: testing assuming we really have GPM library ..." 1>&5
+echo "${as_me-configure}:4614: testing assuming we really have GPM library ..." 1>&5
 
 			cat >>confdefs.h <<\EOF
 #define HAVE_LIBGPM 1
 EOF
 
 		else
-			echo "$as_me:4368: checking for Gpm_Open in -lgpm" >&5
+			echo "$as_me:4621: checking for Gpm_Open in -lgpm" >&5
 echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
 if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4373,7 +4626,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgpm  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 4376 "configure"
+#line 4629 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -4392,16 +4645,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4395: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4648: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4398: \$? = $ac_status" >&5
+  echo "$as_me:4651: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4401: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4654: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4404: \$? = $ac_status" >&5
+  echo "$as_me:4657: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_gpm_Gpm_Open=yes
 else
@@ -4412,13 +4665,13 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:4415: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:4668: result: $ac_cv_lib_gpm_Gpm_Open" >&5
 echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
 if test $ac_cv_lib_gpm_Gpm_Open = yes; then
   :
 else
 
-				{ { echo "$as_me:4421: error: Cannot link with GPM library" >&5
+				{ { echo "$as_me:4674: error: Cannot link with GPM library" >&5
 echo "$as_me: error: Cannot link with GPM library" >&2;}
    { (exit 1); exit 1; }; }
 		fi
@@ -4428,7 +4681,7 @@
 
 else
 
-		test "$with_gpm" != maybe && { echo "$as_me:4431: WARNING: Cannot find GPM header" >&5
+		test "$with_gpm" != maybe && { echo "$as_me:4684: WARNING: Cannot find GPM header" >&5
 echo "$as_me: WARNING: Cannot find GPM header" >&2;}
 		with_gpm=no
 
@@ -4437,7 +4690,7 @@
 fi
 
 if test "$with_gpm" != no ; then
-	echo "$as_me:4440: checking if you want to load GPM dynamically" >&5
+	echo "$as_me:4693: checking if you want to load GPM dynamically" >&5
 echo $ECHO_N "checking if you want to load GPM dynamically... $ECHO_C" >&6
 
 # Check whether --with-dlsym or --without-dlsym was given.
@@ -4447,18 +4700,18 @@
 else
   with_dlsym=yes
 fi;
-	echo "$as_me:4450: result: $with_dlsym" >&5
+	echo "$as_me:4703: result: $with_dlsym" >&5
 echo "${ECHO_T}$with_dlsym" >&6
 	if test "$with_dlsym" = yes ; then
 
 cf_have_dlsym=no
-echo "$as_me:4455: checking for dlsym" >&5
+echo "$as_me:4708: checking for dlsym" >&5
 echo $ECHO_N "checking for dlsym... $ECHO_C" >&6
 if test "${ac_cv_func_dlsym+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 4461 "configure"
+#line 4714 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dlsym (); below.  */
@@ -4489,16 +4742,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4492: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4745: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4495: \$? = $ac_status" >&5
+  echo "$as_me:4748: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4498: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4751: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4501: \$? = $ac_status" >&5
+  echo "$as_me:4754: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_dlsym=yes
 else
@@ -4508,14 +4761,14 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:4511: result: $ac_cv_func_dlsym" >&5
+echo "$as_me:4764: result: $ac_cv_func_dlsym" >&5
 echo "${ECHO_T}$ac_cv_func_dlsym" >&6
 if test $ac_cv_func_dlsym = yes; then
   cf_have_dlsym=yes
 else
 
 cf_have_libdl=no
-echo "$as_me:4518: checking for dlsym in -ldl" >&5
+echo "$as_me:4771: checking for dlsym in -ldl" >&5
 echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6
 if test "${ac_cv_lib_dl_dlsym+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4523,7 +4776,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 4526 "configure"
+#line 4779 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -4542,16 +4795,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4545: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4798: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4548: \$? = $ac_status" >&5
+  echo "$as_me:4801: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4551: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4804: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4554: \$? = $ac_status" >&5
+  echo "$as_me:4807: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dl_dlsym=yes
 else
@@ -4562,7 +4815,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:4565: result: $ac_cv_lib_dl_dlsym" >&5
+echo "$as_me:4818: result: $ac_cv_lib_dl_dlsym" >&5
 echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6
 if test $ac_cv_lib_dl_dlsym = yes; then
 
@@ -4575,10 +4828,10 @@
 if test "$cf_have_dlsym" = yes ; then
 	test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
 
-	echo "$as_me:4578: checking whether able to link to dl*() functions" >&5
+	echo "$as_me:4831: checking whether able to link to dl*() functions" >&5
 echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6
 	cat >conftest.$ac_ext <<_ACEOF
-#line 4581 "configure"
+#line 4834 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 int
@@ -4596,16 +4849,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4599: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4852: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4602: \$? = $ac_status" >&5
+  echo "$as_me:4855: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4605: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4858: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4608: \$? = $ac_status" >&5
+  echo "$as_me:4861: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 		cat >>confdefs.h <<\EOF
@@ -4616,15 +4869,15 @@
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 
-		{ { echo "$as_me:4619: error: Cannot link test program for libdl" >&5
+		{ { echo "$as_me:4872: error: Cannot link test program for libdl" >&5
 echo "$as_me: error: Cannot link test program for libdl" >&2;}
    { (exit 1); exit 1; }; }
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-	echo "$as_me:4624: result: ok" >&5
+	echo "$as_me:4877: result: ok" >&5
 echo "${ECHO_T}ok" >&6
 else
-	{ { echo "$as_me:4627: error: Cannot find dlsym function" >&5
+	{ { echo "$as_me:4880: error: Cannot find dlsym function" >&5
 echo "$as_me: error: Cannot find dlsym function" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -4632,12 +4885,12 @@
 		if test "$with_gpm" != yes ; then
 			test -n "$verbose" && echo "	assuming soname for gpm is $with_gpm" 1>&6
 
-echo "${as_me-configure}:4635: testing assuming soname for gpm is $with_gpm ..." 1>&5
+echo "${as_me-configure}:4888: testing assuming soname for gpm is $with_gpm ..." 1>&5
 
 			cf_cv_gpm_soname="$with_gpm"
 		else
 
-echo "$as_me:4640: checking for soname of gpm library" >&5
+echo "$as_me:4893: checking for soname of gpm library" >&5
 echo $ECHO_N "checking for soname of gpm library... $ECHO_C" >&6
 if test "${cf_cv_gpm_soname+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4655,15 +4908,15 @@
 CF_EOF
 cf_save_LIBS="$LIBS"
 	LIBS="-lgpm $LIBS"
-	if { (eval echo "$as_me:4658: \"$ac_compile\"") >&5
+	if { (eval echo "$as_me:4911: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4661: \$? = $ac_status" >&5
+  echo "$as_me:4914: \$? = $ac_status" >&5
   (exit $ac_status); } ; then
-		if { (eval echo "$as_me:4663: \"$ac_link\"") >&5
+		if { (eval echo "$as_me:4916: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4666: \$? = $ac_status" >&5
+  echo "$as_me:4919: \$? = $ac_status" >&5
   (exit $ac_status); } ; then
 			cf_cv_gpm_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep libgpm.`
 			test -z "$cf_cv_gpm_soname" && cf_cv_gpm_soname=unknown
@@ -4674,7 +4927,7 @@
 fi
 
 fi
-echo "$as_me:4677: result: $cf_cv_gpm_soname" >&5
+echo "$as_me:4930: result: $cf_cv_gpm_soname" >&5
 echo "${ECHO_T}$cf_cv_gpm_soname" >&6
 
 		fi
@@ -4690,7 +4943,7 @@
 #define HAVE_LIBGPM 1
 EOF
 
-echo "$as_me:4693: checking for Gpm_Wgetch in -lgpm" >&5
+echo "$as_me:4946: checking for Gpm_Wgetch in -lgpm" >&5
 echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6
 if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4698,7 +4951,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgpm  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 4701 "configure"
+#line 4954 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -4717,16 +4970,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4720: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4973: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4723: \$? = $ac_status" >&5
+  echo "$as_me:4976: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:4726: \"$ac_try\"") >&5
+  { (eval echo "$as_me:4979: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4729: \$? = $ac_status" >&5
+  echo "$as_me:4982: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_gpm_Gpm_Wgetch=yes
 else
@@ -4737,11 +4990,11 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:4740: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
+echo "$as_me:4993: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
 echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6
 if test $ac_cv_lib_gpm_Gpm_Wgetch = yes; then
 
-echo "$as_me:4744: checking if GPM is weakly bound to curses library" >&5
+echo "$as_me:4997: checking if GPM is weakly bound to curses library" >&5
 echo $ECHO_N "checking if GPM is weakly bound to curses library... $ECHO_C" >&6
 if test "${cf_cv_check_gpm_wgetch+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -4765,15 +5018,15 @@
 	# to rely on the static library, noting that some packagers may not
 	# include it.
 	LIBS="-static -lgpm -dynamic $LIBS"
-	if { (eval echo "$as_me:4768: \"$ac_compile\"") >&5
+	if { (eval echo "$as_me:5021: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4771: \$? = $ac_status" >&5
+  echo "$as_me:5024: \$? = $ac_status" >&5
   (exit $ac_status); } ; then
-		if { (eval echo "$as_me:4773: \"$ac_link\"") >&5
+		if { (eval echo "$as_me:5026: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:4776: \$? = $ac_status" >&5
+  echo "$as_me:5029: \$? = $ac_status" >&5
   (exit $ac_status); } ; then
 			cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[vVwW]\>'`
 			test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
@@ -4785,11 +5038,11 @@
 fi
 
 fi
-echo "$as_me:4788: result: $cf_cv_check_gpm_wgetch" >&5
+echo "$as_me:5041: result: $cf_cv_check_gpm_wgetch" >&5
 echo "${ECHO_T}$cf_cv_check_gpm_wgetch" >&6
 
 if test "$cf_cv_check_gpm_wgetch" != yes ; then
-	{ echo "$as_me:4792: WARNING: GPM library is already linked with curses - read the FAQ" >&5
+	{ echo "$as_me:5045: WARNING: GPM library is already linked with curses - read the FAQ" >&5
 echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;}
 fi
 
@@ -4799,7 +5052,7 @@
 
 # not everyone has "test -c"
 if test -c /dev/sysmouse 2>/dev/null ; then
-echo "$as_me:4802: checking if you want to use sysmouse" >&5
+echo "$as_me:5055: checking if you want to use sysmouse" >&5
 echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
 
 # Check whether --with-sysmouse or --without-sysmouse was given.
@@ -4811,7 +5064,7 @@
 fi;
 	if test "$cf_with_sysmouse" != no ; then
 	cat >conftest.$ac_ext <<_ACEOF
-#line 4814 "configure"
+#line 5067 "configure"
 #include "confdefs.h"
 
 #include <osreldate.h>
@@ -4834,16 +5087,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4837: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5090: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4840: \$? = $ac_status" >&5
+  echo "$as_me:5093: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:4843: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5096: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4846: \$? = $ac_status" >&5
+  echo "$as_me:5099: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_with_sysmouse=yes
 else
@@ -4853,7 +5106,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 	fi
-echo "$as_me:4856: result: $cf_with_sysmouse" >&5
+echo "$as_me:5109: result: $cf_with_sysmouse" >&5
 echo "${ECHO_T}$cf_with_sysmouse" >&6
 test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
 #define USE_SYSMOUSE 1
@@ -4871,7 +5124,7 @@
 	test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
 fi
 
-echo "$as_me:4874: checking for default loader flags" >&5
+echo "$as_me:5127: checking for default loader flags" >&5
 echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
 case $DFT_LWR_MODEL in
 libtool) LD_MODEL=''   ;;
@@ -4880,13 +5133,13 @@
 profile) LD_MODEL='-pg';;
 shared)  LD_MODEL=''   ;;
 esac
-echo "$as_me:4883: result: $LD_MODEL" >&5
+echo "$as_me:5136: result: $LD_MODEL" >&5
 echo "${ECHO_T}$LD_MODEL" >&6
 
 case $DFT_LWR_MODEL in
 shared)
 
-echo "$as_me:4889: checking if rpath option should be used" >&5
+echo "$as_me:5142: checking if rpath option should be used" >&5
 echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6
 
 # Check whether --enable-rpath or --disable-rpath was given.
@@ -4896,10 +5149,10 @@
 else
   cf_cv_ld_rpath=no
 fi;
-echo "$as_me:4899: result: $cf_cv_ld_rpath" >&5
+echo "$as_me:5152: result: $cf_cv_ld_rpath" >&5
 echo "${ECHO_T}$cf_cv_ld_rpath" >&6
 
-echo "$as_me:4902: checking if shared libraries should be relinked during install" >&5
+echo "$as_me:5155: checking if shared libraries should be relinked during install" >&5
 echo $ECHO_N "checking if shared libraries should be relinked during install... $ECHO_C" >&6
 
 # Check whether --enable-relink or --disable-relink was given.
@@ -4909,19 +5162,20 @@
 else
   cf_cv_do_relink=yes
 fi;
-echo "$as_me:4912: result: $cf_cv_do_relink" >&5
+echo "$as_me:5165: result: $cf_cv_do_relink" >&5
 echo "${ECHO_T}$cf_cv_do_relink" >&6
 	;;
 esac
 
 	LOCAL_LDFLAGS=
 	LOCAL_LDFLAGS2=
+	LD_RPATH_OPT=
 	LD_SHARED_OPTS=
 	INSTALL_LIB="-m 644"
 
 	cf_cv_do_symlinks=no
 
-	echo "$as_me:4924: checking if release/abi version should be used for shared libs" >&5
+	echo "$as_me:5178: checking if release/abi version should be used for shared libs" >&5
 echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
 
 # Check whether --with-shlib-version or --without-shlib-version was given.
@@ -4936,7 +5190,7 @@
 		cf_cv_shlib_version=$withval
 		;;
 	*)
-		{ { echo "$as_me:4939: error: option value must be one of: rel, abi, auto or no" >&5
+		{ { echo "$as_me:5193: error: option value must be one of: rel, abi, auto or no" >&5
 echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
    { (exit 1); exit 1; }; }
 		;;
@@ -4945,7 +5199,7 @@
 else
   cf_cv_shlib_version=auto
 fi;
-	echo "$as_me:4948: result: $cf_cv_shlib_version" >&5
+	echo "$as_me:5202: result: $cf_cv_shlib_version" >&5
 echo "${ECHO_T}$cf_cv_shlib_version" >&6
 
 	cf_cv_rm_so_locs=no
@@ -4954,14 +5208,14 @@
 	CC_SHARED_OPTS=
 	if test "$GCC" = yes
 	then
-		echo "$as_me:4957: checking which $CC option to use" >&5
+		echo "$as_me:5211: checking which $CC option to use" >&5
 echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
 		cf_save_CFLAGS="$CFLAGS"
 		for CC_SHARED_OPTS in -fPIC -fpic ''
 		do
 			CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
 			cat >conftest.$ac_ext <<_ACEOF
-#line 4964 "configure"
+#line 5218 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int
@@ -4973,16 +5227,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4976: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:5230: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:4979: \$? = $ac_status" >&5
+  echo "$as_me:5233: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:4982: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5236: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:4985: \$? = $ac_status" >&5
+  echo "$as_me:5239: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -4991,7 +5245,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 		done
-		echo "$as_me:4994: result: $CC_SHARED_OPTS" >&5
+		echo "$as_me:5248: result: $CC_SHARED_OPTS" >&5
 echo "${ECHO_T}$CC_SHARED_OPTS" >&6
 		CFLAGS="$cf_save_CFLAGS"
 	fi
@@ -4999,6 +5253,12 @@
 	cf_cv_shlib_version_infix=no
 
 	case $cf_cv_system_name in
+	aix[56]*)
+		if test "$GCC" = yes; then
+			CC_SHARED_OPTS=
+			MK_SHARED_LIB="$(CC) -shared"
+		fi
+		;;
 	beos*)
 		MK_SHARED_LIB='${CC} ${CFLAGS} -o $@ -Xlinker -soname=`basename $@` -nostart -e 0'
 		;;
@@ -5027,7 +5287,7 @@
 		MK_SHARED_LIB='${CC} ${CFLAGS} -dynamiclib -install_name ${libdir}/`basename $@` -compatibility_version ${ABI_VERSION} -current_version ${ABI_VERSION} -o $@'
 		test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi
 		cf_cv_shlib_version_infix=yes
-		echo "$as_me:5030: checking if ld -search_paths_first works" >&5
+		echo "$as_me:5290: checking if ld -search_paths_first works" >&5
 echo $ECHO_N "checking if ld -search_paths_first works... $ECHO_C" >&6
 if test "${cf_cv_ldflags_search_paths_first+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5036,7 +5296,7 @@
 			cf_save_LDFLAGS=$LDFLAGS
 			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
 			cat >conftest.$ac_ext <<_ACEOF
-#line 5039 "configure"
+#line 5299 "configure"
 #include "confdefs.h"
 
 int
@@ -5048,16 +5308,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5051: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5311: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5054: \$? = $ac_status" >&5
+  echo "$as_me:5314: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:5057: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5317: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5060: \$? = $ac_status" >&5
+  echo "$as_me:5320: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_ldflags_search_paths_first=yes
 else
@@ -5068,7 +5328,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 				LDFLAGS=$cf_save_LDFLAGS
 fi
-echo "$as_me:5071: result: $cf_cv_ldflags_search_paths_first" >&5
+echo "$as_me:5331: result: $cf_cv_ldflags_search_paths_first" >&5
 echo "${ECHO_T}$cf_cv_ldflags_search_paths_first" >&6
 		if test $cf_cv_ldflags_search_paths_first = yes; then
 			LDFLAGS="$LDFLAGS -Wl,-search_paths_first"
@@ -5090,10 +5350,10 @@
 	irix*)
 		if test "$cf_cv_ld_rpath" = yes ; then
 			if test "$GCC" = yes; then
-				cf_ld_rpath_opt="-Wl,-rpath,"
+				LD_RPATH_OPT="-Wl,-rpath,"
 				EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
 			else
-				cf_ld_rpath_opt="-rpath "
+				LD_RPATH_OPT="-rpath "
 				EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
 			fi
 		fi
@@ -5112,7 +5372,7 @@
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
 		fi
 		if test "$cf_cv_ld_rpath" = yes ; then
-			cf_ld_rpath_opt="-Wl,-rpath,"
+			LD_RPATH_OPT="-Wl,-rpath,"
 			EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
 		fi
 
@@ -5131,7 +5391,7 @@
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
 		fi
 		if test "$cf_cv_ld_rpath" = yes ; then
-			cf_ld_rpath_opt="-Wl,-rpath,"
+			LD_RPATH_OPT="-Wl,-rpath,"
 			EXTRA_LDFLAGS="-Wl,-rpath,\${libdir} $EXTRA_LDFLAGS"
 		fi
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
@@ -5143,7 +5403,7 @@
 		cf_cv_shared_soname='`basename $@`'
 	fi
 
-		MK_SHARED_LIB='${CC} ${CFLAGS} -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
+		MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $@'
 		;;
 	nto-qnx*|openbsd*|freebsd[12].*)
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
@@ -5155,7 +5415,7 @@
 		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
 			LOCAL_LDFLAGS="-rpath \$(LOCAL_LIBDIR)"
 			LOCAL_LDFLAGS2="-rpath \${libdir} $LOCAL_LDFLAGS"
-			cf_ld_rpath_opt="-rpath "
+			LD_RPATH_OPT="-rpath "
 			EXTRA_LDFLAGS="-rpath \${libdir} $EXTRA_LDFLAGS"
 		fi
 
@@ -5166,11 +5426,11 @@
 		cf_cv_shared_soname='`basename $@`'
 	fi
 
-		MK_SHARED_LIB='${LD} -Bshareable -soname=`basename $@` -o $@'
+		MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $@` -o $@'
 		;;
 	netbsd*)
 		CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
-		test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath,"
+		test "$cf_cv_ld_rpath" = yes && LD_RPATH_OPT="-Wl,-rpath,"
 		if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then
 			LOCAL_LDFLAGS="-Wl,-rpath,\$(LOCAL_LIBDIR)"
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
@@ -5192,7 +5452,7 @@
 
 			MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $@'
 		else
-			MK_SHARED_LIB='${LD} -Bshareable -o $@'
+			MK_SHARED_LIB='${LD} -shared -Bshareable -o $@'
 		fi
 		;;
 	osf*|mls+*)
@@ -5211,7 +5471,7 @@
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
 		fi
 		if test "$cf_cv_ld_rpath" = yes ; then
-			cf_ld_rpath_opt="-rpath"
+			LD_RPATH_OPT="-rpath"
 			# EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
 		fi
 		cf_cv_rm_so_locs=yes
@@ -5246,7 +5506,7 @@
 			LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
 		fi
 		if test "$cf_cv_ld_rpath" = yes ; then
-			cf_ld_rpath_opt="-R"
+			LD_RPATH_OPT="-R"
 			EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS"
 		fi
 
@@ -5258,7 +5518,43 @@
 	fi
 
 		if test "$GCC" != yes; then
-			CC_SHARED_OPTS='-xcode=pic32'
+			cf_save_CFLAGS="$CFLAGS"
+			for cf_shared_opts in -xcode=pic13 -xcode=pic32 -Kpic -KPIC -O
+			do
+				CFLAGS="$cf_shared_opts $cf_save_CFLAGS"
+				cat >conftest.$ac_ext <<_ACEOF
+#line 5526 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int
+main ()
+{
+printf("Hello\n");
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:5538: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:5541: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+         { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:5544: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:5547: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+			done
+			CFLAGS="$cf_save_CFLAGS"
+			CC_SHARED_OPTS=$cf_shared_opts
 			MK_SHARED_LIB='${CC} -dy -G -h '$cf_cv_shared_soname' -o $@'
 		else
 			MK_SHARED_LIB='${CC} -shared -dy -G -h '$cf_cv_shared_soname' -o $@'
@@ -5285,20 +5581,20 @@
 			test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
 			;;
 		*)
-			{ echo "$as_me:5288: WARNING: ignored --with-shlib-version" >&5
+			{ echo "$as_me:5584: WARNING: ignored --with-shlib-version" >&5
 echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
 			;;
 		esac
 		;;
 	esac
 
-	if test -n "$cf_ld_rpath_opt" ; then
-		echo "$as_me:5296: checking if we need a space after rpath option" >&5
+	if test -n "$LD_RPATH_OPT" ; then
+		echo "$as_me:5592: checking if we need a space after rpath option" >&5
 echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
 		cf_save_LIBS="$LIBS"
-		LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
+		LIBS="$LIBS ${LD_RPATH_OPT}$libdir"
 		cat >conftest.$ac_ext <<_ACEOF
-#line 5301 "configure"
+#line 5597 "configure"
 #include "confdefs.h"
 
 int
@@ -5310,16 +5606,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5313: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5609: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5316: \$? = $ac_status" >&5
+  echo "$as_me:5612: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:5319: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5615: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5322: \$? = $ac_status" >&5
+  echo "$as_me:5618: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_rpath_space=no
 else
@@ -5329,16 +5625,16 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 		LIBS="$cf_save_LIBS"
-		echo "$as_me:5332: result: $cf_rpath_space" >&5
+		echo "$as_me:5628: result: $cf_rpath_space" >&5
 echo "${ECHO_T}$cf_rpath_space" >&6
-		test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
-		MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${libdir}"
+		test "$cf_rpath_space" = yes && LD_RPATH_OPT="$LD_RPATH_OPT "
+		MK_SHARED_LIB="$MK_SHARED_LIB $LD_RPATH_OPT\${libdir}"
 	fi
 
 if test "$CC_SHARED_OPTS" = "unknown"; then
 	for model in $cf_list_models; do
 		if test "$model" = "shared"; then
-			{ { echo "$as_me:5341: error: Shared libraries are not supported in this version" >&5
+			{ { echo "$as_me:5637: error: Shared libraries are not supported in this version" >&5
 echo "$as_me: error: Shared libraries are not supported in this version" >&2;}
    { (exit 1); exit 1; }; }
 		fi
@@ -5348,7 +5644,7 @@
 ###############################################################################
 
 ###	use option --disable-overwrite to leave out the link to -lcurses
-echo "$as_me:5351: checking if you wish to install ncurses overwriting curses" >&5
+echo "$as_me:5647: checking if you wish to install ncurses overwriting curses" >&5
 echo $ECHO_N "checking if you wish to install ncurses overwriting curses... $ECHO_C" >&6
 
 # Check whether --enable-overwrite or --disable-overwrite was given.
@@ -5358,10 +5654,10 @@
 else
   if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
 fi;
-echo "$as_me:5361: result: $with_overwrite" >&5
+echo "$as_me:5657: result: $with_overwrite" >&5
 echo "${ECHO_T}$with_overwrite" >&6
 
-echo "$as_me:5364: checking if external terminfo-database is used" >&5
+echo "$as_me:5660: checking if external terminfo-database is used" >&5
 echo $ECHO_N "checking if external terminfo-database is used... $ECHO_C" >&6
 
 # Check whether --enable-database or --disable-database was given.
@@ -5371,7 +5667,7 @@
 else
   use_database=yes
 fi;
-echo "$as_me:5374: result: $use_database" >&5
+echo "$as_me:5670: result: $use_database" >&5
 echo "${ECHO_T}$use_database" >&6
 
 case $host_os in #(vi
@@ -5384,8 +5680,8 @@
 esac
 
 	case $cf_cv_system_name in
-	os2*)	PATHSEP=';'  ;;
-	*)	PATHSEP=':'  ;;
+	os2*)	PATH_SEPARATOR=';'  ;;
+	*)	PATH_SEPARATOR=':'  ;;
 	esac
 
 if test "$use_database" != no ; then
@@ -5393,7 +5689,7 @@
 #define USE_DATABASE 1
 EOF
 
-	echo "$as_me:5396: checking which terminfo source-file will be installed" >&5
+	echo "$as_me:5692: checking which terminfo source-file will be installed" >&5
 echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6
 
 # Check whether --enable-database or --disable-database was given.
@@ -5401,10 +5697,10 @@
   enableval="$enable_database"
   TERMINFO_SRC=$withval
 fi;
-	echo "$as_me:5404: result: $TERMINFO_SRC" >&5
+	echo "$as_me:5700: result: $TERMINFO_SRC" >&5
 echo "${ECHO_T}$TERMINFO_SRC" >&6
 
-	echo "$as_me:5407: checking whether to use hashed database instead of directory/tree" >&5
+	echo "$as_me:5703: checking whether to use hashed database instead of directory/tree" >&5
 echo $ECHO_N "checking whether to use hashed database instead of directory/tree... $ECHO_C" >&6
 
 # Check whether --with-hashed-db or --without-hashed-db was given.
@@ -5414,13 +5710,13 @@
 else
   with_hashed_db=no
 fi;
-	echo "$as_me:5417: result: $with_hashed_db" >&5
+	echo "$as_me:5713: result: $with_hashed_db" >&5
 echo "${ECHO_T}$with_hashed_db" >&6
 else
 	with_hashed_db=no
 fi
 
-echo "$as_me:5423: checking for list of fallback descriptions" >&5
+echo "$as_me:5719: checking for list of fallback descriptions" >&5
 echo $ECHO_N "checking for list of fallback descriptions... $ECHO_C" >&6
 
 # Check whether --with-fallbacks or --without-fallbacks was given.
@@ -5430,11 +5726,11 @@
 else
   with_fallback=
 fi;
-echo "$as_me:5433: result: $with_fallback" >&5
+echo "$as_me:5729: result: $with_fallback" >&5
 echo "${ECHO_T}$with_fallback" >&6
 FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
 
-echo "$as_me:5437: checking if you want modern xterm or antique" >&5
+echo "$as_me:5733: checking if you want modern xterm or antique" >&5
 echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6
 
 # Check whether --with-xterm-new or --without-xterm-new was given.
@@ -5448,7 +5744,7 @@
 no)	with_xterm_new=xterm-old;;
 *)	with_xterm_new=xterm-new;;
 esac
-echo "$as_me:5451: result: $with_xterm_new" >&5
+echo "$as_me:5747: result: $with_xterm_new" >&5
 echo "${ECHO_T}$with_xterm_new" >&6
 WHICH_XTERM=$with_xterm_new
 
@@ -5458,7 +5754,7 @@
 	MAKE_TERMINFO="#"
 else
 
-echo "$as_me:5461: checking for list of terminfo directories" >&5
+echo "$as_me:5757: checking for list of terminfo directories" >&5
 echo $ECHO_N "checking for list of terminfo directories... $ECHO_C" >&6
 
 # Check whether --with-terminfo-dirs or --without-terminfo-dirs was given.
@@ -5468,7 +5764,7 @@
 else
   withval=${TERMINFO_DIRS-${datadir}/terminfo}
 fi;
-IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
+IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
 cf_dst_path=
 for cf_src_path in $withval
 do
@@ -5498,7 +5794,7 @@
   cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:5501: error: expected a pathname, not \"$cf_src_path\"" >&5
+  { { echo "$as_me:5797: error: expected a pathname, not \"$cf_src_path\"" >&5
 echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -5511,13 +5807,13 @@
 
 eval 'TERMINFO_DIRS="$cf_dst_path"'
 
-echo "$as_me:5514: result: $TERMINFO_DIRS" >&5
+echo "$as_me:5810: result: $TERMINFO_DIRS" >&5
 echo "${ECHO_T}$TERMINFO_DIRS" >&6
 test -n "$TERMINFO_DIRS" && cat >>confdefs.h <<EOF
 #define TERMINFO_DIRS "$TERMINFO_DIRS"
 EOF
 
-echo "$as_me:5520: checking for default terminfo directory" >&5
+echo "$as_me:5816: checking for default terminfo directory" >&5
 echo $ECHO_N "checking for default terminfo directory... $ECHO_C" >&6
 
 # Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given.
@@ -5553,7 +5849,7 @@
   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:5556: error: expected a pathname, not \"$withval\"" >&5
+  { { echo "$as_me:5852: error: expected a pathname, not \"$withval\"" >&5
 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -5562,7 +5858,7 @@
 fi
 TERMINFO="$withval"
 
-echo "$as_me:5565: result: $TERMINFO" >&5
+echo "$as_me:5861: result: $TERMINFO" >&5
 echo "${ECHO_T}$TERMINFO" >&6
 cat >>confdefs.h <<EOF
 #define TERMINFO "$TERMINFO"
@@ -5572,7 +5868,7 @@
 
 ###	use option --disable-big-core to make tic run on small machines
 ###	We need 4Mb, check if we can allocate 50% more than that.
-echo "$as_me:5575: checking if big-core option selected" >&5
+echo "$as_me:5871: checking if big-core option selected" >&5
 echo $ECHO_N "checking if big-core option selected... $ECHO_C" >&6
 
 # Check whether --enable-big-core or --disable-big-core was given.
@@ -5584,7 +5880,7 @@
   with_big_core=no
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 5587 "configure"
+#line 5883 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -5598,15 +5894,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:5601: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5897: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5604: \$? = $ac_status" >&5
+  echo "$as_me:5900: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:5606: \"$ac_try\"") >&5
+  { (eval echo "$as_me:5902: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5609: \$? = $ac_status" >&5
+  echo "$as_me:5905: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   with_big_core=yes
 else
@@ -5618,7 +5914,7 @@
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi;
-echo "$as_me:5621: result: $with_big_core" >&5
+echo "$as_me:5917: result: $with_big_core" >&5
 echo "${ECHO_T}$with_big_core" >&6
 test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF
 #define HAVE_BIG_CORE 1
@@ -5627,7 +5923,7 @@
 ### ISO C only guarantees 512-char strings, we have tables which load faster
 ### when constructed using "big" strings.  More than the C compiler, the awk
 ### program is a limit on most vendor UNIX systems.  Check that we can build.
-echo "$as_me:5630: checking if big-strings option selected" >&5
+echo "$as_me:5926: checking if big-strings option selected" >&5
 echo $ECHO_N "checking if big-strings option selected... $ECHO_C" >&6
 
 # Check whether --enable-big-strings or --disable-big-strings was given.
@@ -5636,29 +5932,29 @@
   with_big_strings=$enableval
 else
 
-    case x$AWK in #(vi
-    x)
-        eval with_big_strings=no
-        ;;
-    *) #(vi
-        if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < 12000) { xx = xx "x"; }; printf("%s\n", xx); }' \
-            | $AWK '{ printf "%d\n", length($0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ($0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
-            eval with_big_strings=yes
-        else
-            eval with_big_strings=no
-        fi
-        ;;
-    esac
+	case x$AWK in #(vi
+	x)
+		eval with_big_strings=no
+		;;
+	*) #(vi
+		if ( ${AWK} 'BEGIN { xx = "x"; while (length(xx) < 12000) { xx = xx "x"; }; printf("%s\n", xx); }' \
+			| $AWK '{ printf "%d\n", length($0); }' | $AWK 'BEGIN { eqls=0; recs=0; } { recs++; if ($0 == 12000) eqls++; } END { if (recs != 1 || eqls != 1) exit 1; }' 2>/dev/null >/dev/null ) ; then
+			eval with_big_strings=yes
+		else
+			eval with_big_strings=no
+		fi
+		;;
+	esac
 
 fi;
-echo "$as_me:5654: result: $with_big_strings" >&5
+echo "$as_me:5950: result: $with_big_strings" >&5
 echo "${ECHO_T}$with_big_strings" >&6
 
 USE_BIG_STRINGS=0
 test "$with_big_strings" = "yes" && USE_BIG_STRINGS=1
 
 ###	use option --enable-termcap to compile in the termcap fallback support
-echo "$as_me:5661: checking if you want termcap-fallback support" >&5
+echo "$as_me:5957: checking if you want termcap-fallback support" >&5
 echo $ECHO_N "checking if you want termcap-fallback support... $ECHO_C" >&6
 
 # Check whether --enable-termcap or --disable-termcap was given.
@@ -5668,13 +5964,13 @@
 else
   with_termcap=no
 fi;
-echo "$as_me:5671: result: $with_termcap" >&5
+echo "$as_me:5967: result: $with_termcap" >&5
 echo "${ECHO_T}$with_termcap" >&6
 
 if test "$with_termcap" != "yes" ; then
 	if test "$use_database" = no ; then
 		if test -z "$with_fallback" ; then
-			{ { echo "$as_me:5677: error: You have disabled the database w/o specifying fallbacks" >&5
+			{ { echo "$as_me:5973: error: You have disabled the database w/o specifying fallbacks" >&5
 echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;}
    { (exit 1); exit 1; }; }
 		fi
@@ -5686,7 +5982,7 @@
 else
 
 if test "$with_ticlib" != no ; then
-	{ { echo "$as_me:5689: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
+	{ { echo "$as_me:5985: error: Options --with-ticlib and --enable-termcap cannot be combined" >&5
 echo "$as_me: error: Options --with-ticlib and --enable-termcap cannot be combined" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -5695,7 +5991,7 @@
 #define USE_TERMCAP 1
 EOF
 
-echo "$as_me:5698: checking for list of termcap files" >&5
+echo "$as_me:5994: checking for list of termcap files" >&5
 echo $ECHO_N "checking for list of termcap files... $ECHO_C" >&6
 
 # Check whether --with-termpath or --without-termpath was given.
@@ -5705,7 +6001,7 @@
 else
   withval=${TERMPATH-/etc/termcap:/usr/share/misc/termcap}
 fi;
-IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${PATHSEP}"
+IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${PATH_SEPARATOR}"
 cf_dst_path=
 for cf_src_path in $withval
 do
@@ -5735,7 +6031,7 @@
   cf_src_path=`echo $cf_src_path | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:5738: error: expected a pathname, not \"$cf_src_path\"" >&5
+  { { echo "$as_me:6034: error: expected a pathname, not \"$cf_src_path\"" >&5
 echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -5748,14 +6044,14 @@
 
 eval 'TERMPATH="$cf_dst_path"'
 
-echo "$as_me:5751: result: $TERMPATH" >&5
+echo "$as_me:6047: result: $TERMPATH" >&5
 echo "${ECHO_T}$TERMPATH" >&6
 test -n "$TERMPATH" && cat >>confdefs.h <<EOF
 #define TERMPATH "$TERMPATH"
 EOF
 
 ###	use option --enable-getcap to use a hacked getcap for reading termcaps
-echo "$as_me:5758: checking if fast termcap-loader is needed" >&5
+echo "$as_me:6054: checking if fast termcap-loader is needed" >&5
 echo $ECHO_N "checking if fast termcap-loader is needed... $ECHO_C" >&6
 
 # Check whether --enable-getcap or --disable-getcap was given.
@@ -5765,13 +6061,13 @@
 else
   with_getcap=no
 fi;
-echo "$as_me:5768: result: $with_getcap" >&5
+echo "$as_me:6064: result: $with_getcap" >&5
 echo "${ECHO_T}$with_getcap" >&6
 test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_GETCAP 1
 EOF
 
-echo "$as_me:5774: checking if translated termcaps will be cached in ~/.terminfo" >&5
+echo "$as_me:6070: checking if translated termcaps will be cached in ~/.terminfo" >&5
 echo $ECHO_N "checking if translated termcaps will be cached in ~/.terminfo... $ECHO_C" >&6
 
 # Check whether --enable-getcap-cache or --disable-getcap-cache was given.
@@ -5781,7 +6077,7 @@
 else
   with_getcap_cache=no
 fi;
-echo "$as_me:5784: result: $with_getcap_cache" >&5
+echo "$as_me:6080: result: $with_getcap_cache" >&5
 echo "${ECHO_T}$with_getcap_cache" >&6
 test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_GETCAP_CACHE 1
@@ -5790,7 +6086,7 @@
 fi
 
 ###   Use option --disable-home-terminfo to completely remove ~/.terminfo
-echo "$as_me:5793: checking if ~/.terminfo is wanted" >&5
+echo "$as_me:6089: checking if ~/.terminfo is wanted" >&5
 echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6
 
 # Check whether --enable-home-terminfo or --disable-home-terminfo was given.
@@ -5800,13 +6096,13 @@
 else
   with_home_terminfo=yes
 fi;
-echo "$as_me:5803: result: $with_home_terminfo" >&5
+echo "$as_me:6099: result: $with_home_terminfo" >&5
 echo "${ECHO_T}$with_home_terminfo" >&6
 test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF
 #define USE_HOME_TERMINFO 1
 EOF
 
-echo "$as_me:5809: checking if you want to use restricted environment when running as root" >&5
+echo "$as_me:6105: checking if you want to use restricted environment when running as root" >&5
 echo $ECHO_N "checking if you want to use restricted environment when running as root... $ECHO_C" >&6
 
 # Check whether --enable-root-environ or --disable-root-environ was given.
@@ -5816,7 +6112,7 @@
 else
   with_root_environ=yes
 fi;
-echo "$as_me:5819: result: $with_root_environ" >&5
+echo "$as_me:6115: result: $with_root_environ" >&5
 echo "${ECHO_T}$with_root_environ" >&6
 test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
 #define USE_ROOT_ENVIRON 1
@@ -5830,13 +6126,13 @@
 	unlink
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5833: checking for $ac_func" >&5
+echo "$as_me:6129: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 5839 "configure"
+#line 6135 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -5867,16 +6163,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5870: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6166: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5873: \$? = $ac_status" >&5
+  echo "$as_me:6169: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:5876: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6172: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5879: \$? = $ac_status" >&5
+  echo "$as_me:6175: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -5886,7 +6182,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:5889: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:6185: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -5903,13 +6199,13 @@
 		symlink
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5906: checking for $ac_func" >&5
+echo "$as_me:6202: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 5912 "configure"
+#line 6208 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -5940,16 +6236,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5943: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6239: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:5946: \$? = $ac_status" >&5
+  echo "$as_me:6242: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:5949: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6245: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:5952: \$? = $ac_status" >&5
+  echo "$as_me:6248: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -5959,7 +6255,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:5962: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:6258: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -5970,7 +6266,7 @@
 done
 
 else
-	echo "$as_me:5973: checking if link/symlink functions work" >&5
+	echo "$as_me:6269: checking if link/symlink functions work" >&5
 echo $ECHO_N "checking if link/symlink functions work... $ECHO_C" >&6
 if test "${cf_cv_link_funcs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -5983,7 +6279,7 @@
 			eval 'ac_cv_func_'$cf_func'=error'
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 5986 "configure"
+#line 6282 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -6013,15 +6309,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:6016: \"$ac_link\"") >&5
+if { (eval echo "$as_me:6312: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:6019: \$? = $ac_status" >&5
+  echo "$as_me:6315: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:6021: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6317: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6024: \$? = $ac_status" >&5
+  echo "$as_me:6320: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 			cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
@@ -6039,7 +6335,7 @@
 		test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
 
 fi
-echo "$as_me:6042: result: $cf_cv_link_funcs" >&5
+echo "$as_me:6338: result: $cf_cv_link_funcs" >&5
 echo "${ECHO_T}$cf_cv_link_funcs" >&6
 	test "$ac_cv_func_link"    = yes && cat >>confdefs.h <<\EOF
 #define HAVE_LINK 1
@@ -6057,7 +6353,7 @@
 # soft links (symbolic links) are useful for some systems where hard links do
 # not work, or to make it simpler to copy terminfo trees around.
 if test "$ac_cv_func_symlink" = yes ; then
-    echo "$as_me:6060: checking if tic should use symbolic links" >&5
+    echo "$as_me:6356: checking if tic should use symbolic links" >&5
 echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6
 
 # Check whether --enable-symlinks or --disable-symlinks was given.
@@ -6067,21 +6363,21 @@
 else
   with_symlinks=no
 fi;
-    echo "$as_me:6070: result: $with_symlinks" >&5
+    echo "$as_me:6366: result: $with_symlinks" >&5
 echo "${ECHO_T}$with_symlinks" >&6
 fi
 
 # If we have hard links and did not choose to use soft links instead, there is
 # no reason to make this choice optional - use the hard links.
 if test "$with_symlinks" = no ; then
-    echo "$as_me:6077: checking if tic should use hard links" >&5
+    echo "$as_me:6373: checking if tic should use hard links" >&5
 echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6
     if test "$ac_cv_func_link" = yes ; then
 	with_links=yes
     else
 	with_links=no
     fi
-    echo "$as_me:6084: result: $with_links" >&5
+    echo "$as_me:6380: result: $with_links" >&5
 echo "${ECHO_T}$with_links" >&6
 fi
 
@@ -6094,7 +6390,7 @@
 EOF
 
 ###   use option --enable-broken-linker to force on use of broken-linker support
-echo "$as_me:6097: checking if you want broken-linker support code" >&5
+echo "$as_me:6393: checking if you want broken-linker support code" >&5
 echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
 
 # Check whether --enable-broken_linker or --disable-broken_linker was given.
@@ -6104,7 +6400,7 @@
 else
   with_broken_linker=${BROKEN_LINKER-no}
 fi;
-echo "$as_me:6107: result: $with_broken_linker" >&5
+echo "$as_me:6403: result: $with_broken_linker" >&5
 echo "${ECHO_T}$with_broken_linker" >&6
 
 BROKEN_LINKER=0
@@ -6124,14 +6420,14 @@
 		BROKEN_LINKER=1
 		test -n "$verbose" && echo "	cygwin linker is broken anyway" 1>&6
 
-echo "${as_me-configure}:6127: testing cygwin linker is broken anyway ..." 1>&5
+echo "${as_me-configure}:6423: testing cygwin linker is broken anyway ..." 1>&5
 
 		;;
 	esac
 fi
 
 ###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
-echo "$as_me:6134: checking if tputs should process BSD-style prefix padding" >&5
+echo "$as_me:6430: checking if tputs should process BSD-style prefix padding" >&5
 echo $ECHO_N "checking if tputs should process BSD-style prefix padding... $ECHO_C" >&6
 
 # Check whether --enable-bsdpad or --disable-bsdpad was given.
@@ -6141,7 +6437,7 @@
 else
   with_bsdpad=no
 fi;
-echo "$as_me:6144: result: $with_bsdpad" >&5
+echo "$as_me:6440: result: $with_bsdpad" >&5
 echo "${ECHO_T}$with_bsdpad" >&6
 test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
 #define BSD_TPUTS 1
@@ -6158,7 +6454,7 @@
 
 # Check to define _XOPEN_SOURCE "automatically"
 
-echo "$as_me:6161: checking if $CC -U and -D options work together" >&5
+echo "$as_me:6457: checking if $CC -U and -D options work together" >&5
 echo $ECHO_N "checking if $CC -U and -D options work together... $ECHO_C" >&6
 if test "${cf_cv_cc_u_d_options+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6167,7 +6463,7 @@
 	cf_save_CPPFLAGS="$CPPFLAGS"
 	CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6170 "configure"
+#line 6466 "configure"
 #include "confdefs.h"
 
 int
@@ -6186,16 +6482,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6189: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6485: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6192: \$? = $ac_status" >&5
+  echo "$as_me:6488: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6195: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6491: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6198: \$? = $ac_status" >&5
+  echo "$as_me:6494: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 	cf_cv_cc_u_d_options=yes
@@ -6209,14 +6505,14 @@
 	CPPFLAGS="$cf_save_CPPFLAGS"
 
 fi
-echo "$as_me:6212: result: $cf_cv_cc_u_d_options" >&5
+echo "$as_me:6508: result: $cf_cv_cc_u_d_options" >&5
 echo "${ECHO_T}$cf_cv_cc_u_d_options" >&6
 
 cf_XOPEN_SOURCE=500
 cf_POSIX_C_SOURCE=199506L
 
 case $host_os in #(vi
-aix[45]*) #(vi
+aix[456]*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
 	;;
 freebsd*|dragonfly*) #(vi
@@ -6233,16 +6529,16 @@
 irix[56].*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
 	;;
-linux*|gnu*|k*bsd*-gnu) #(vi
+linux*|gnu*|mint*|k*bsd*-gnu) #(vi
 
-echo "$as_me:6238: checking if we must define _GNU_SOURCE" >&5
+echo "$as_me:6534: checking if we must define _GNU_SOURCE" >&5
 echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
 if test "${cf_cv_gnu_source+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 6245 "configure"
+#line 6541 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6257,16 +6553,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6260: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6556: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6263: \$? = $ac_status" >&5
+  echo "$as_me:6559: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6266: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6562: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6269: \$? = $ac_status" >&5
+  echo "$as_me:6565: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_gnu_source=no
 else
@@ -6275,7 +6571,7 @@
 cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
 	 cat >conftest.$ac_ext <<_ACEOF
-#line 6278 "configure"
+#line 6574 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6290,16 +6586,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6293: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6589: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6296: \$? = $ac_status" >&5
+  echo "$as_me:6592: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6299: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6595: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6302: \$? = $ac_status" >&5
+  echo "$as_me:6598: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_gnu_source=no
 else
@@ -6314,7 +6610,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:6317: result: $cf_cv_gnu_source" >&5
+echo "$as_me:6613: result: $cf_cv_gnu_source" >&5
 echo "${ECHO_T}$cf_cv_gnu_source" >&6
 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
 
@@ -6341,14 +6637,14 @@
 	CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
 	;;
 *)
-	echo "$as_me:6344: checking if we should define _XOPEN_SOURCE" >&5
+	echo "$as_me:6640: checking if we should define _XOPEN_SOURCE" >&5
 echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
 if test "${cf_cv_xopen_source+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6351 "configure"
+#line 6647 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6363,16 +6659,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6366: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6662: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6369: \$? = $ac_status" >&5
+  echo "$as_me:6665: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6372: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6668: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6375: \$? = $ac_status" >&5
+  echo "$as_me:6671: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_xopen_source=no
 else
@@ -6381,7 +6677,7 @@
 cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
 	 cat >conftest.$ac_ext <<_ACEOF
-#line 6384 "configure"
+#line 6680 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6396,16 +6692,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6399: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6695: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6402: \$? = $ac_status" >&5
+  echo "$as_me:6698: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6405: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6701: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6408: \$? = $ac_status" >&5
+  echo "$as_me:6704: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_xopen_source=no
 else
@@ -6420,7 +6716,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:6423: result: $cf_cv_xopen_source" >&5
+echo "$as_me:6719: result: $cf_cv_xopen_source" >&5
 echo "${ECHO_T}$cf_cv_xopen_source" >&6
 	if test "$cf_cv_xopen_source" != no ; then
 
@@ -6454,16 +6750,16 @@
 	sed	-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?[ 	]/ /g' \
 		-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?$//g'`
 
-echo "$as_me:6457: checking if we should define _POSIX_C_SOURCE" >&5
+echo "$as_me:6753: checking if we should define _POSIX_C_SOURCE" >&5
 echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
 if test "${cf_cv_posix_c_source+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
-echo "${as_me-configure}:6463: testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me-configure}:6759: testing if the symbol is already defined go no further ..." 1>&5
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6466 "configure"
+#line 6762 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6478,16 +6774,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6481: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6777: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6484: \$? = $ac_status" >&5
+  echo "$as_me:6780: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6487: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6783: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6490: \$? = $ac_status" >&5
+  echo "$as_me:6786: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_posix_c_source=no
 else
@@ -6508,7 +6804,7 @@
 	 esac
 	 if test "$cf_want_posix_source" = yes ; then
 		cat >conftest.$ac_ext <<_ACEOF
-#line 6511 "configure"
+#line 6807 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6523,16 +6819,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6526: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6822: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6529: \$? = $ac_status" >&5
+  echo "$as_me:6825: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6532: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6828: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6535: \$? = $ac_status" >&5
+  echo "$as_me:6831: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -6543,15 +6839,15 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 	 fi
 
-echo "${as_me-configure}:6546: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me-configure}:6842: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
 
 	 CFLAGS="$cf_trim_CFLAGS"
 	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
 
-echo "${as_me-configure}:6551: testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me-configure}:6847: testing if the second compile does not leave our definition intact error ..." 1>&5
 
 	 cat >conftest.$ac_ext <<_ACEOF
-#line 6554 "configure"
+#line 6850 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int
@@ -6566,16 +6862,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6569: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6865: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6572: \$? = $ac_status" >&5
+  echo "$as_me:6868: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6575: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6871: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6578: \$? = $ac_status" >&5
+  echo "$as_me:6874: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -6591,7 +6887,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:6594: result: $cf_cv_posix_c_source" >&5
+echo "$as_me:6890: result: $cf_cv_posix_c_source" >&5
 echo "${ECHO_T}$cf_cv_posix_c_source" >&6
 
 if test "$cf_cv_posix_c_source" != no ; then
@@ -6610,14 +6906,14 @@
 
 # Work around breakage on OS X
 
-echo "$as_me:6613: checking if SIGWINCH is defined" >&5
+echo "$as_me:6909: checking if SIGWINCH is defined" >&5
 echo $ECHO_N "checking if SIGWINCH is defined... $ECHO_C" >&6
 if test "${cf_cv_define_sigwinch+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6620 "configure"
+#line 6916 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -6632,23 +6928,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6635: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6931: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6638: \$? = $ac_status" >&5
+  echo "$as_me:6934: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6641: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6937: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6644: \$? = $ac_status" >&5
+  echo "$as_me:6940: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_define_sigwinch=yes
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 6651 "configure"
+#line 6947 "configure"
 #include "confdefs.h"
 
 #undef _XOPEN_SOURCE
@@ -6666,16 +6962,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6669: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6965: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6672: \$? = $ac_status" >&5
+  echo "$as_me:6968: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6675: \"$ac_try\"") >&5
+  { (eval echo "$as_me:6971: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6678: \$? = $ac_status" >&5
+  echo "$as_me:6974: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_define_sigwinch=maybe
 else
@@ -6689,11 +6985,11 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:6692: result: $cf_cv_define_sigwinch" >&5
+echo "$as_me:6988: result: $cf_cv_define_sigwinch" >&5
 echo "${ECHO_T}$cf_cv_define_sigwinch" >&6
 
 if test "$cf_cv_define_sigwinch" = maybe ; then
-echo "$as_me:6696: checking for actual SIGWINCH definition" >&5
+echo "$as_me:6992: checking for actual SIGWINCH definition" >&5
 echo $ECHO_N "checking for actual SIGWINCH definition... $ECHO_C" >&6
 if test "${cf_cv_fixup_sigwinch+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6704,7 +7000,7 @@
 while test $cf_sigwinch != 1
 do
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6707 "configure"
+#line 7003 "configure"
 #include "confdefs.h"
 
 #undef _XOPEN_SOURCE
@@ -6726,16 +7022,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6729: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7025: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6732: \$? = $ac_status" >&5
+  echo "$as_me:7028: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6735: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7031: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6738: \$? = $ac_status" >&5
+  echo "$as_me:7034: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_fixup_sigwinch=$cf_sigwinch
 	 break
@@ -6749,7 +7045,7 @@
 done
 
 fi
-echo "$as_me:6752: result: $cf_cv_fixup_sigwinch" >&5
+echo "$as_me:7048: result: $cf_cv_fixup_sigwinch" >&5
 echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6
 
 	if test "$cf_cv_fixup_sigwinch" != unknown ; then
@@ -6759,13 +7055,13 @@
 
 # Checks for CODESET support.
 
-  echo "$as_me:6762: checking for nl_langinfo and CODESET" >&5
+  echo "$as_me:7058: checking for nl_langinfo and CODESET" >&5
 echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
 if test "${am_cv_langinfo_codeset+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 6768 "configure"
+#line 7064 "configure"
 #include "confdefs.h"
 #include <langinfo.h>
 int
@@ -6777,16 +7073,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:6780: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7076: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:6783: \$? = $ac_status" >&5
+  echo "$as_me:7079: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:6786: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7082: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6789: \$? = $ac_status" >&5
+  echo "$as_me:7085: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   am_cv_langinfo_codeset=yes
 else
@@ -6797,7 +7093,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:6800: result: $am_cv_langinfo_codeset" >&5
+echo "$as_me:7096: result: $am_cv_langinfo_codeset" >&5
 echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
   if test $am_cv_langinfo_codeset = yes; then
 
@@ -6811,7 +7107,7 @@
 NCURSES_OK_WCHAR_T=
 NCURSES_OK_WINT_T=
 
-echo "$as_me:6814: checking if you want wide-character code" >&5
+echo "$as_me:7110: checking if you want wide-character code" >&5
 echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
 
 # Check whether --enable-widec or --disable-widec was given.
@@ -6821,7 +7117,7 @@
 else
   with_widec=no
 fi;
-echo "$as_me:6824: result: $with_widec" >&5
+echo "$as_me:7120: result: $with_widec" >&5
 echo "${ECHO_T}$with_widec" >&6
 if test "$with_widec" = yes ; then
 	LIB_SUFFIX="w${LIB_SUFFIX}"
@@ -6829,10 +7125,10 @@
 #define USE_WIDEC_SUPPORT 1
 EOF
 
-echo "$as_me:6832: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+echo "$as_me:7128: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
 echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
-#line 6835 "configure"
+#line 7131 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 
@@ -6848,16 +7144,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6851: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7147: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6854: \$? = $ac_status" >&5
+  echo "$as_me:7150: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6857: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7153: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6860: \$? = $ac_status" >&5
+  echo "$as_me:7156: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_result=no
 else
@@ -6866,16 +7162,16 @@
 cf_result=yes
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:6869: result: $cf_result" >&5
+echo "$as_me:7165: result: $cf_result" >&5
 echo "${ECHO_T}$cf_result" >&6
 
 if test "$cf_result" = yes ; then
 	CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
 elif test "x" != "x" ; then
-	echo "$as_me:6875: checking checking for compatible value versus " >&5
+	echo "$as_me:7171: checking checking for compatible value versus " >&5
 echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6
 	cat >conftest.$ac_ext <<_ACEOF
-#line 6878 "configure"
+#line 7174 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 
@@ -6891,16 +7187,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6894: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7190: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:6897: \$? = $ac_status" >&5
+  echo "$as_me:7193: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:6900: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7196: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6903: \$? = $ac_status" >&5
+  echo "$as_me:7199: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_result=yes
 else
@@ -6909,7 +7205,7 @@
 cf_result=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-	echo "$as_me:6912: result: $cf_result" >&5
+	echo "$as_me:7208: result: $cf_result" >&5
 echo "${ECHO_T}$cf_result" >&6
 	if test "$cf_result" = no ; then
 		# perhaps we can override it - try...
@@ -6923,13 +7219,13 @@
 for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:6926: checking for $ac_func" >&5
+echo "$as_me:7222: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 6932 "configure"
+#line 7228 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -6960,16 +7256,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:6963: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7259: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:6966: \$? = $ac_status" >&5
+  echo "$as_me:7262: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:6969: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7265: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:6972: \$? = $ac_status" >&5
+  echo "$as_me:7268: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -6979,7 +7275,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:6982: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:7278: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -6991,7 +7287,7 @@
 
 	if test "$ac_cv_func_putwc" != yes ; then
 
-echo "$as_me:6994: checking for multibyte character support" >&5
+echo "$as_me:7290: checking for multibyte character support" >&5
 echo $ECHO_N "checking for multibyte character support... $ECHO_C" >&6
 if test "${cf_cv_utf8_lib+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -6999,7 +7295,7 @@
 
 	cf_save_LIBS="$LIBS"
 	cat >conftest.$ac_ext <<_ACEOF
-#line 7002 "configure"
+#line 7298 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7012,16 +7308,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7015: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7311: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7018: \$? = $ac_status" >&5
+  echo "$as_me:7314: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7021: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7317: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7024: \$? = $ac_status" >&5
+  echo "$as_me:7320: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_utf8_lib=yes
 else
@@ -7033,10 +7329,10 @@
 cf_cv_header_path_utf8=
 cf_cv_library_path_utf8=
 
-echo "${as_me-configure}:7036: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me-configure}:7332: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 7039 "configure"
+#line 7335 "configure"
 #include "confdefs.h"
 
 #include <libutf8.h>
@@ -7049,16 +7345,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7052: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7348: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7055: \$? = $ac_status" >&5
+  echo "$as_me:7351: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7058: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7354: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7061: \$? = $ac_status" >&5
+  echo "$as_me:7357: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_find_linkage_utf8=yes
 else
@@ -7067,12 +7363,41 @@
 
     cf_cv_find_linkage_utf8=no
 
-echo "${as_me-configure}:7070: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
+    test -n "$verbose" && echo "	find linkage for utf8 library" 1>&6
+
+echo "${as_me-configure}:7368: testing find linkage for utf8 library ..." 1>&5
+
+echo "${as_me-configure}:7370: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
 
     cf_save_CPPFLAGS="$CPPFLAGS"
     cf_test_CPPFLAGS="$CPPFLAGS"
 
-    cf_search=""
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/utf8 &&       cf_search="$cf_search $cf_header_path/include/utf8"
+	test -d $cf_header_path/include/utf8/include &&    cf_search="$cf_search $cf_header_path/include/utf8/include"
+	test -d $cf_header_path/utf8/include &&       cf_search="$cf_search $cf_header_path/utf8/include"
+	test -d $cf_header_path/utf8/include/utf8 &&    cf_search="$cf_search $cf_header_path/utf8/include/utf8"
+}
+
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+cf_search=""
 
 test "/usr" != "$prefix" && \
 test -d "/usr" && \
@@ -7143,16 +7468,18 @@
 	test -d $oldincludedir/utf8 && cf_search="$cf_search $oldincludedir/utf8"
 }
 
+cf_search="$cf_header_path_list $cf_search"
+
     for cf_cv_header_path_utf8 in $cf_search
     do
       if test -d $cf_cv_header_path_utf8 ; then
         test -n "$verbose" && echo "	... testing $cf_cv_header_path_utf8" 1>&6
 
-echo "${as_me-configure}:7151: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
+echo "${as_me-configure}:7478: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
 
         CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
         cat >conftest.$ac_ext <<_ACEOF
-#line 7155 "configure"
+#line 7482 "configure"
 #include "confdefs.h"
 
 #include <libutf8.h>
@@ -7165,21 +7492,21 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7168: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7495: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7171: \$? = $ac_status" >&5
+  echo "$as_me:7498: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7174: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7501: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7177: \$? = $ac_status" >&5
+  echo "$as_me:7504: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
             test -n "$verbose" && echo "	... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
 
-echo "${as_me-configure}:7182: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+echo "${as_me-configure}:7509: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
 
             cf_cv_find_linkage_utf8=maybe
             cf_test_CPPFLAGS="$CPPFLAGS"
@@ -7197,13 +7524,39 @@
 
     if test "$cf_cv_find_linkage_utf8" = maybe ; then
 
-echo "${as_me-configure}:7200: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+echo "${as_me-configure}:7527: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
 
       cf_save_LIBS="$LIBS"
       cf_save_LDFLAGS="$LDFLAGS"
 
       if test "$cf_cv_find_linkage_utf8" != yes ; then
-        cf_search=""
+
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/utf8 &&       cf_search="$cf_search $cf_library_path/lib/utf8"
+	test -d $cf_library_path/lib/utf8/lib &&    cf_search="$cf_search $cf_library_path/lib/utf8/lib"
+	test -d $cf_library_path/utf8/lib &&       cf_search="$cf_search $cf_library_path/utf8/lib"
+	test -d $cf_library_path/utf8/lib/utf8 &&    cf_search="$cf_search $cf_library_path/utf8/lib/utf8"
+}
+
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+cf_search=""
 
 test "/usr" != "$prefix" && \
 test -d "/usr" && \
@@ -7260,18 +7613,20 @@
 	test -d $HOME/utf8/lib/utf8 &&    cf_search="$cf_search $HOME/utf8/lib/utf8"
 }
 
+cf_search="$cf_library_path_list $cf_search"
+
         for cf_cv_library_path_utf8 in $cf_search
         do
           if test -d $cf_cv_library_path_utf8 ; then
             test -n "$verbose" && echo "	... testing $cf_cv_library_path_utf8" 1>&6
 
-echo "${as_me-configure}:7268: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
+echo "${as_me-configure}:7623: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
 
             CPPFLAGS="$cf_test_CPPFLAGS"
             LIBS="-lutf8  $cf_save_LIBS"
             LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
             cat >conftest.$ac_ext <<_ACEOF
-#line 7274 "configure"
+#line 7629 "configure"
 #include "confdefs.h"
 
 #include <libutf8.h>
@@ -7284,21 +7639,21 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7287: \"$ac_link\"") >&5
+if { (eval echo "$as_me:7642: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:7290: \$? = $ac_status" >&5
+  echo "$as_me:7645: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:7293: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7648: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7296: \$? = $ac_status" >&5
+  echo "$as_me:7651: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
                 test -n "$verbose" && echo "	... found utf8 library in $cf_cv_library_path_utf8" 1>&6
 
-echo "${as_me-configure}:7301: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+echo "${as_me-configure}:7656: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
 
                 cf_cv_find_linkage_utf8=yes
                 cf_cv_library_file_utf8="-lutf8"
@@ -7336,7 +7691,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:7339: result: $cf_cv_utf8_lib" >&5
+echo "$as_me:7694: result: $cf_cv_utf8_lib" >&5
 echo "${ECHO_T}$cf_cv_utf8_lib" >&6
 
 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
@@ -7364,13 +7719,13 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 			  cat >conftest.$ac_ext <<_ACEOF
-#line 7373 "configure"
+#line 7728 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int
@@ -7382,16 +7737,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7385: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7740: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7388: \$? = $ac_status" >&5
+  echo "$as_me:7743: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7391: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7746: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7394: \$? = $ac_status" >&5
+  echo "$as_me:7749: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -7408,13 +7763,13 @@
 		if test "$cf_have_incdir" = no ; then
 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-echo "${as_me-configure}:7411: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me-configure}:7766: testing adding $cf_add_incdir to include-path ..." 1>&5
 
-		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -7442,7 +7797,7 @@
       if test "$cf_have_libdir" = no ; then
         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
 
-echo "${as_me-configure}:7445: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me-configure}:7800: testing adding $cf_add_libdir to library-path ..." 1>&5
 
         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
       fi
@@ -7459,14 +7814,14 @@
 	fi
 
 # This is needed on Tru64 5.0 to declare mbstate_t
-echo "$as_me:7462: checking if we must include wchar.h to declare mbstate_t" >&5
+echo "$as_me:7817: checking if we must include wchar.h to declare mbstate_t" >&5
 echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
 if test "${cf_cv_mbstate_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 7469 "configure"
+#line 7824 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7484,23 +7839,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7487: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7842: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7490: \$? = $ac_status" >&5
+  echo "$as_me:7845: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7493: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7848: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7496: \$? = $ac_status" >&5
+  echo "$as_me:7851: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_mbstate_t=no
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 7503 "configure"
+#line 7858 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7519,16 +7874,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7522: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7877: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7525: \$? = $ac_status" >&5
+  echo "$as_me:7880: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7528: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7883: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7531: \$? = $ac_status" >&5
+  echo "$as_me:7886: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_mbstate_t=yes
 else
@@ -7540,7 +7895,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:7543: result: $cf_cv_mbstate_t" >&5
+echo "$as_me:7898: result: $cf_cv_mbstate_t" >&5
 echo "${ECHO_T}$cf_cv_mbstate_t" >&6
 
 if test "$cf_cv_mbstate_t" = yes ; then
@@ -7557,14 +7912,14 @@
 fi
 
 # This is needed on Tru64 5.0 to declare wchar_t
-echo "$as_me:7560: checking if we must include wchar.h to declare wchar_t" >&5
+echo "$as_me:7915: checking if we must include wchar.h to declare wchar_t" >&5
 echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
 if test "${cf_cv_wchar_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 7567 "configure"
+#line 7922 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7582,23 +7937,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7585: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7940: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7588: \$? = $ac_status" >&5
+  echo "$as_me:7943: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7591: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7946: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7594: \$? = $ac_status" >&5
+  echo "$as_me:7949: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_wchar_t=no
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 7601 "configure"
+#line 7956 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7617,16 +7972,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7620: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7975: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7623: \$? = $ac_status" >&5
+  echo "$as_me:7978: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7626: \"$ac_try\"") >&5
+  { (eval echo "$as_me:7981: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7629: \$? = $ac_status" >&5
+  echo "$as_me:7984: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_wchar_t=yes
 else
@@ -7638,7 +7993,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:7641: result: $cf_cv_wchar_t" >&5
+echo "$as_me:7996: result: $cf_cv_wchar_t" >&5
 echo "${ECHO_T}$cf_cv_wchar_t" >&6
 
 if test "$cf_cv_wchar_t" = yes ; then
@@ -7660,14 +8015,14 @@
 fi
 
 # This is needed on Tru64 5.0 to declare wint_t
-echo "$as_me:7663: checking if we must include wchar.h to declare wint_t" >&5
+echo "$as_me:8018: checking if we must include wchar.h to declare wint_t" >&5
 echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
 if test "${cf_cv_wint_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 7670 "configure"
+#line 8025 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7685,23 +8040,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7688: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8043: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7691: \$? = $ac_status" >&5
+  echo "$as_me:8046: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7694: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8049: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7697: \$? = $ac_status" >&5
+  echo "$as_me:8052: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_wint_t=no
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 7704 "configure"
+#line 8059 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7720,16 +8075,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7723: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8078: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7726: \$? = $ac_status" >&5
+  echo "$as_me:8081: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7729: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8084: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7732: \$? = $ac_status" >&5
+  echo "$as_me:8087: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_wint_t=yes
 else
@@ -7741,7 +8096,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:7744: result: $cf_cv_wint_t" >&5
+echo "$as_me:8099: result: $cf_cv_wint_t" >&5
 echo "${ECHO_T}$cf_cv_wint_t" >&6
 
 if test "$cf_cv_wint_t" = yes ; then
@@ -7780,7 +8135,7 @@
 	;;
 esac
 
-echo "$as_me:7783: checking whether to enable _LP64 definition in curses.h" >&5
+echo "$as_me:8138: checking whether to enable _LP64 definition in curses.h" >&5
 echo $ECHO_N "checking whether to enable _LP64 definition in curses.h... $ECHO_C" >&6
 
 # Check whether --enable-lp64 or --disable-lp64 was given.
@@ -7790,7 +8145,7 @@
 else
   with_lp64=$default_with_lp64
 fi;
-echo "$as_me:7793: result: $with_lp64" >&5
+echo "$as_me:8148: result: $with_lp64" >&5
 echo "${ECHO_T}$with_lp64" >&6
 
 if test "$with_lp64" = yes ; then
@@ -7806,7 +8161,7 @@
 fi;
 if test "$enable_largefile" != no; then
 
-  echo "$as_me:7809: checking for special C compiler options needed for large files" >&5
+  echo "$as_me:8164: checking for special C compiler options needed for large files" >&5
 echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
 if test "${ac_cv_sys_largefile_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7818,7 +8173,7 @@
      	 # IRIX 6.2 and later do not support large files by default,
      	 # so use the C compiler's -n32 option if that helps.
          cat >conftest.$ac_ext <<_ACEOF
-#line 7821 "configure"
+#line 8176 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -7838,16 +8193,16 @@
 }
 _ACEOF
      	 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7841: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8196: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7844: \$? = $ac_status" >&5
+  echo "$as_me:8199: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7847: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8202: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7850: \$? = $ac_status" >&5
+  echo "$as_me:8205: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -7857,16 +8212,16 @@
 rm -f conftest.$ac_objext
      	 CC="$CC -n32"
      	 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7860: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8215: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7863: \$? = $ac_status" >&5
+  echo "$as_me:8218: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7866: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8221: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7869: \$? = $ac_status" >&5
+  echo "$as_me:8224: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sys_largefile_CC=' -n32'; break
 else
@@ -7880,13 +8235,13 @@
        rm -f conftest.$ac_ext
     fi
 fi
-echo "$as_me:7883: result: $ac_cv_sys_largefile_CC" >&5
+echo "$as_me:8238: result: $ac_cv_sys_largefile_CC" >&5
 echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
   if test "$ac_cv_sys_largefile_CC" != no; then
     CC=$CC$ac_cv_sys_largefile_CC
   fi
 
-  echo "$as_me:7889: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+  echo "$as_me:8244: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
 if test "${ac_cv_sys_file_offset_bits+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7894,7 +8249,7 @@
   while :; do
   ac_cv_sys_file_offset_bits=no
   cat >conftest.$ac_ext <<_ACEOF
-#line 7897 "configure"
+#line 8252 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -7914,16 +8269,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7917: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8272: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7920: \$? = $ac_status" >&5
+  echo "$as_me:8275: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7923: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8278: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7926: \$? = $ac_status" >&5
+  echo "$as_me:8281: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -7932,7 +8287,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 7935 "configure"
+#line 8290 "configure"
 #include "confdefs.h"
 #define _FILE_OFFSET_BITS 64
 #include <sys/types.h>
@@ -7953,16 +8308,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7956: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8311: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:7959: \$? = $ac_status" >&5
+  echo "$as_me:8314: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:7962: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8317: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:7965: \$? = $ac_status" >&5
+  echo "$as_me:8320: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sys_file_offset_bits=64; break
 else
@@ -7973,7 +8328,7 @@
   break
 done
 fi
-echo "$as_me:7976: result: $ac_cv_sys_file_offset_bits" >&5
+echo "$as_me:8331: result: $ac_cv_sys_file_offset_bits" >&5
 echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
 if test "$ac_cv_sys_file_offset_bits" != no; then
 
@@ -7983,7 +8338,7 @@
 
 fi
 rm -f conftest*
-  echo "$as_me:7986: checking for _LARGE_FILES value needed for large files" >&5
+  echo "$as_me:8341: checking for _LARGE_FILES value needed for large files" >&5
 echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
 if test "${ac_cv_sys_large_files+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -7991,7 +8346,7 @@
   while :; do
   ac_cv_sys_large_files=no
   cat >conftest.$ac_ext <<_ACEOF
-#line 7994 "configure"
+#line 8349 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
  /* Check that off_t can represent 2**63 - 1 correctly.
@@ -8011,16 +8366,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8014: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8369: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8017: \$? = $ac_status" >&5
+  echo "$as_me:8372: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8020: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8375: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8023: \$? = $ac_status" >&5
+  echo "$as_me:8378: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -8029,7 +8384,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 8032 "configure"
+#line 8387 "configure"
 #include "confdefs.h"
 #define _LARGE_FILES 1
 #include <sys/types.h>
@@ -8050,16 +8405,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8053: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8408: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8056: \$? = $ac_status" >&5
+  echo "$as_me:8411: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8059: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8414: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8062: \$? = $ac_status" >&5
+  echo "$as_me:8417: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sys_large_files=1; break
 else
@@ -8070,7 +8425,7 @@
   break
 done
 fi
-echo "$as_me:8073: result: $ac_cv_sys_large_files" >&5
+echo "$as_me:8428: result: $ac_cv_sys_large_files" >&5
 echo "${ECHO_T}$ac_cv_sys_large_files" >&6
 if test "$ac_cv_sys_large_files" != no; then
 
@@ -8083,7 +8438,7 @@
 fi
 
     if test "$enable_largefile" != no ; then
-	echo "$as_me:8086: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+	echo "$as_me:8441: checking for _LARGEFILE_SOURCE value needed for large files" >&5
 echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
 if test "${ac_cv_sys_largefile_source+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -8091,7 +8446,7 @@
   while :; do
   ac_cv_sys_largefile_source=no
   cat >conftest.$ac_ext <<_ACEOF
-#line 8094 "configure"
+#line 8449 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int
@@ -8103,16 +8458,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8106: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8461: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8109: \$? = $ac_status" >&5
+  echo "$as_me:8464: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8112: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8467: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8115: \$? = $ac_status" >&5
+  echo "$as_me:8470: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   break
 else
@@ -8121,7 +8476,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line 8124 "configure"
+#line 8479 "configure"
 #include "confdefs.h"
 #define _LARGEFILE_SOURCE 1
 #include <stdio.h>
@@ -8134,16 +8489,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8137: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8492: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8140: \$? = $ac_status" >&5
+  echo "$as_me:8495: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8143: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8498: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8146: \$? = $ac_status" >&5
+  echo "$as_me:8501: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sys_largefile_source=1; break
 else
@@ -8154,7 +8509,7 @@
   break
 done
 fi
-echo "$as_me:8157: result: $ac_cv_sys_largefile_source" >&5
+echo "$as_me:8512: result: $ac_cv_sys_largefile_source" >&5
 echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
 if test "$ac_cv_sys_largefile_source" != no; then
 
@@ -8168,13 +8523,13 @@
 # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
 # in glibc 2.1.3, but that breaks too many other things.
 # If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-echo "$as_me:8171: checking for fseeko" >&5
+echo "$as_me:8526: checking for fseeko" >&5
 echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
 if test "${ac_cv_func_fseeko+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 8177 "configure"
+#line 8532 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int
@@ -8186,16 +8541,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8189: \"$ac_link\"") >&5
+if { (eval echo "$as_me:8544: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:8192: \$? = $ac_status" >&5
+  echo "$as_me:8547: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:8195: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8550: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8198: \$? = $ac_status" >&5
+  echo "$as_me:8553: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_fseeko=yes
 else
@@ -8205,7 +8560,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:8208: result: $ac_cv_func_fseeko" >&5
+echo "$as_me:8563: result: $ac_cv_func_fseeko" >&5
 echo "${ECHO_T}$ac_cv_func_fseeko" >&6
 if test $ac_cv_func_fseeko = yes; then
 
@@ -8226,14 +8581,14 @@
 	test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
 	test "$ac_cv_sys_file_offset_bits" != no && CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits "
 
-	echo "$as_me:8229: checking whether to use struct dirent64" >&5
+	echo "$as_me:8584: checking whether to use struct dirent64" >&5
 echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
 if test "${cf_cv_struct_dirent64+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 		cat >conftest.$ac_ext <<_ACEOF
-#line 8236 "configure"
+#line 8591 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -8254,16 +8609,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8257: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:8612: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:8260: \$? = $ac_status" >&5
+  echo "$as_me:8615: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:8263: \"$ac_try\"") >&5
+  { (eval echo "$as_me:8618: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:8266: \$? = $ac_status" >&5
+  echo "$as_me:8621: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_struct_dirent64=yes
 else
@@ -8274,7 +8629,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:8277: result: $cf_cv_struct_dirent64" >&5
+echo "$as_me:8632: result: $cf_cv_struct_dirent64" >&5
 echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
 	test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_STRUCT_DIRENT64 1
@@ -8283,7 +8638,7 @@
     fi
 
 ###   use option --disable-tparm-varargs to make tparm() conform to X/Open
-echo "$as_me:8286: checking if you want tparm not to use X/Open fixed-parameter list" >&5
+echo "$as_me:8641: checking if you want tparm not to use X/Open fixed-parameter list" >&5
 echo $ECHO_N "checking if you want tparm not to use X/Open fixed-parameter list... $ECHO_C" >&6
 
 # Check whether --enable-tparm-varargs or --disable-tparm-varargs was given.
@@ -8293,14 +8648,14 @@
 else
   with_tparm_varargs=yes
 fi;
-echo "$as_me:8296: result: $with_tparm_varargs" >&5
+echo "$as_me:8651: result: $with_tparm_varargs" >&5
 echo "${ECHO_T}$with_tparm_varargs" >&6
 NCURSES_TPARM_VARARGS=0
 test "$with_tparm_varargs" = yes && NCURSES_TPARM_VARARGS=1
 
 ###   use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw
 if test "$with_ticlib" != no ; then
-echo "$as_me:8303: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5
+echo "$as_me:8658: checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library" >&5
 echo $ECHO_N "checking if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library... $ECHO_C" >&6
 
 # Check whether --enable-tic-depends or --disable-tic-depends was given.
@@ -8310,14 +8665,14 @@
 else
   with_tic_depends=yes
 fi;
-echo "$as_me:8313: result: $with_tic_depends" >&5
+echo "$as_me:8668: result: $with_tic_depends" >&5
 echo "${ECHO_T}$with_tic_depends" >&6
 else
 	with_tic_depends=no
 fi
 
 ###   use option --with-bool to override bool's type
-echo "$as_me:8320: checking for type of bool" >&5
+echo "$as_me:8675: checking for type of bool" >&5
 echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
 
 # Check whether --with-bool or --without-bool was given.
@@ -8327,10 +8682,10 @@
 else
   NCURSES_BOOL=auto
 fi;
-echo "$as_me:8330: result: $NCURSES_BOOL" >&5
+echo "$as_me:8685: result: $NCURSES_BOOL" >&5
 echo "${ECHO_T}$NCURSES_BOOL" >&6
 
-echo "$as_me:8333: checking for alternate terminal capabilities file" >&5
+echo "$as_me:8688: checking for alternate terminal capabilities file" >&5
 echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6
 
 # Check whether --with-caps or --without-caps was given.
@@ -8341,11 +8696,11 @@
   TERMINFO_CAPS=Caps
 fi;
 test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps
-echo "$as_me:8344: result: $TERMINFO_CAPS" >&5
+echo "$as_me:8699: result: $TERMINFO_CAPS" >&5
 echo "${ECHO_T}$TERMINFO_CAPS" >&6
 
 ###   use option --with-chtype to override chtype's type
-echo "$as_me:8348: checking for type of chtype" >&5
+echo "$as_me:8703: checking for type of chtype" >&5
 echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
 
 # Check whether --with-chtype or --without-chtype was given.
@@ -8355,11 +8710,11 @@
 else
   NCURSES_CHTYPE=auto
 fi;
-echo "$as_me:8358: result: $NCURSES_CHTYPE" >&5
+echo "$as_me:8713: result: $NCURSES_CHTYPE" >&5
 echo "${ECHO_T}$NCURSES_CHTYPE" >&6
 
 ###   use option --with-ospeed to override ospeed's type
-echo "$as_me:8362: checking for type of ospeed" >&5
+echo "$as_me:8717: checking for type of ospeed" >&5
 echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6
 
 # Check whether --with-ospeed or --without-ospeed was given.
@@ -8369,11 +8724,11 @@
 else
   NCURSES_OSPEED=short
 fi;
-echo "$as_me:8372: result: $NCURSES_OSPEED" >&5
+echo "$as_me:8727: result: $NCURSES_OSPEED" >&5
 echo "${ECHO_T}$NCURSES_OSPEED" >&6
 
 ###   use option --with-mmask-t to override mmask_t's type
-echo "$as_me:8376: checking for type of mmask_t" >&5
+echo "$as_me:8731: checking for type of mmask_t" >&5
 echo $ECHO_N "checking for type of mmask_t... $ECHO_C" >&6
 
 # Check whether --with-mmask-t or --without-mmask-t was given.
@@ -8383,11 +8738,11 @@
 else
   NCURSES_MMASK_T=auto
 fi;
-echo "$as_me:8386: result: $NCURSES_MMASK_T" >&5
+echo "$as_me:8741: result: $NCURSES_MMASK_T" >&5
 echo "${ECHO_T}$NCURSES_MMASK_T" >&6
 
 ### Enable compiling-in rcs id's
-echo "$as_me:8390: checking if RCS identifiers should be compiled-in" >&5
+echo "$as_me:8745: checking if RCS identifiers should be compiled-in" >&5
 echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
 
 # Check whether --with-rcs-ids or --without-rcs-ids was given.
@@ -8397,7 +8752,7 @@
 else
   with_rcs_ids=no
 fi;
-echo "$as_me:8400: result: $with_rcs_ids" >&5
+echo "$as_me:8755: result: $with_rcs_ids" >&5
 echo "${ECHO_T}$with_rcs_ids" >&6
 test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
 #define USE_RCS_IDS 1
@@ -8405,7 +8760,7 @@
 
 ###############################################################################
 
-echo "$as_me:8408: checking format of man-pages" >&5
+echo "$as_me:8763: checking format of man-pages" >&5
 echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
 
 # Check whether --with-manpage-format or --without-manpage-format was given.
@@ -8433,7 +8788,7 @@
   cf_catonly=yes
   cf_example=date
 
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
   for cf_dir in $MANPATH; do
     test -z "$cf_dir" && cf_dir=/usr/man
     for cf_name in $cf_dir/man*/$cf_example.[01]* $cf_dir/cat*/$cf_example.[01]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
@@ -8494,14 +8849,14 @@
   ;;
 esac
 
-echo "$as_me:8497: result: $MANPAGE_FORMAT" >&5
+echo "$as_me:8852: result: $MANPAGE_FORMAT" >&5
 echo "${ECHO_T}$MANPAGE_FORMAT" >&6
 if test -n "$cf_unknown" ; then
-  { echo "$as_me:8500: WARNING: Unexpected manpage-format $cf_unknown" >&5
+  { echo "$as_me:8855: WARNING: Unexpected manpage-format $cf_unknown" >&5
 echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
 fi
 
-echo "$as_me:8504: checking for manpage renaming" >&5
+echo "$as_me:8859: checking for manpage renaming" >&5
 echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6
 
 # Check whether --with-manpage-renames or --without-manpage-renames was given.
@@ -8529,7 +8884,7 @@
   if test -f $srcdir/man/$MANPAGE_RENAMES ; then
     MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
   elif test ! -f $MANPAGE_RENAMES ; then
-    { { echo "$as_me:8532: error: not a filename: $MANPAGE_RENAMES" >&5
+    { { echo "$as_me:8887: error: not a filename: $MANPAGE_RENAMES" >&5
 echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
    { (exit 1); exit 1; }; }
   fi
@@ -8543,10 +8898,10 @@
   fi
 fi
 
-echo "$as_me:8546: result: $MANPAGE_RENAMES" >&5
+echo "$as_me:8901: result: $MANPAGE_RENAMES" >&5
 echo "${ECHO_T}$MANPAGE_RENAMES" >&6
 
-echo "$as_me:8549: checking if manpage aliases will be installed" >&5
+echo "$as_me:8904: checking if manpage aliases will be installed" >&5
 echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
 
 # Check whether --with-manpage-aliases or --without-manpage-aliases was given.
@@ -8557,7 +8912,7 @@
   MANPAGE_ALIASES=yes
 fi;
 
-echo "$as_me:8560: result: $MANPAGE_ALIASES" >&5
+echo "$as_me:8915: result: $MANPAGE_ALIASES" >&5
 echo "${ECHO_T}$MANPAGE_ALIASES" >&6
 
 if test "$LN_S" = "ln -s"; then
@@ -8568,7 +8923,7 @@
 
 MANPAGE_SYMLINKS=no
 if test "$MANPAGE_ALIASES" = yes ; then
-echo "$as_me:8571: checking if manpage symlinks should be used" >&5
+echo "$as_me:8926: checking if manpage symlinks should be used" >&5
 echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
 
 # Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
@@ -8581,17 +8936,17 @@
 
 if test "$$cf_use_symlinks" = no; then
 if test "$MANPAGE_SYMLINKS" = yes ; then
-	{ echo "$as_me:8584: WARNING: cannot make symlinks" >&5
+	{ echo "$as_me:8939: WARNING: cannot make symlinks" >&5
 echo "$as_me: WARNING: cannot make symlinks" >&2;}
 	MANPAGE_SYMLINKS=no
 fi
 fi
 
-echo "$as_me:8590: result: $MANPAGE_SYMLINKS" >&5
+echo "$as_me:8945: result: $MANPAGE_SYMLINKS" >&5
 echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
 fi
 
-echo "$as_me:8594: checking for manpage tbl" >&5
+echo "$as_me:8949: checking for manpage tbl" >&5
 echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6
 
 # Check whether --with-manpage-tbl or --without-manpage-tbl was given.
@@ -8602,7 +8957,7 @@
   MANPAGE_TBL=no
 fi;
 
-echo "$as_me:8605: result: $MANPAGE_TBL" >&5
+echo "$as_me:8960: result: $MANPAGE_TBL" >&5
 echo "${ECHO_T}$MANPAGE_TBL" >&6
 
   if test "$prefix" = "NONE" ; then
@@ -8718,7 +9073,7 @@
 		s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
 CF_EOF
 
-	for cf_name in  captoinfo clear infocmp infotocap tic toe tput
+	for cf_name in  captoinfo clear infocmp infotocap tabs tic toe tput tset
 	do
 		cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 		cf_name=`echo $cf_name|sed "$program_transform_name"`
@@ -8913,7 +9268,7 @@
 ###############################################################################
 
 ### Note that some functions (such as const) are normally disabled anyway.
-echo "$as_me:8916: checking if you want to build with function extensions" >&5
+echo "$as_me:9271: checking if you want to build with function extensions" >&5
 echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
 
 # Check whether --enable-ext-funcs or --disable-ext-funcs was given.
@@ -8923,7 +9278,7 @@
 else
   with_ext_funcs=yes
 fi;
-echo "$as_me:8926: result: $with_ext_funcs" >&5
+echo "$as_me:9281: result: $with_ext_funcs" >&5
 echo "${ECHO_T}$with_ext_funcs" >&6
 if test "$with_ext_funcs" = yes ; then
 	NCURSES_EXT_FUNCS=1
@@ -8955,12 +9310,38 @@
 #define NCURSES_EXT_FUNCS 1
 EOF
 
+	GENERATED_EXT_FUNCS=generated
 else
 	NCURSES_EXT_FUNCS=0
+	GENERATED_EXT_FUNCS=
+fi
+
+echo "$as_me:9319: checking if you want to build with experimental SCREEN extensions" >&5
+echo $ECHO_N "checking if you want to build with experimental SCREEN extensions... $ECHO_C" >&6
+
+# Check whether --enable-sp-funcs or --disable-sp-funcs was given.
+if test "${enable_sp_funcs+set}" = set; then
+  enableval="$enable_sp_funcs"
+  with_sp_funcs=$enableval
+else
+  with_sp_funcs=no
+fi;
+echo "$as_me:9329: result: $with_sp_funcs" >&5
+echo "${ECHO_T}$with_sp_funcs" >&6
+if test "$with_sp_funcs" = yes ; then
+	NCURSES_SP_FUNCS=1
+	cat >>confdefs.h <<\EOF
+#define NCURSES_SP_FUNCS 1
+EOF
+
+	GENERATED_SP_FUNCS=generated
+else
+	NCURSES_SP_FUNCS=0
+	GENERATED_SP_FUNCS=
 fi
 
 ###   use option --enable-const to turn on use of const beyond that in XSI.
-echo "$as_me:8963: checking for extended use of const keyword" >&5
+echo "$as_me:9344: checking for extended use of const keyword" >&5
 echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
 
 # Check whether --enable-const or --disable-const was given.
@@ -8970,7 +9351,7 @@
 else
   with_ext_const=no
 fi;
-echo "$as_me:8973: result: $with_ext_const" >&5
+echo "$as_me:9354: result: $with_ext_const" >&5
 echo "${ECHO_T}$with_ext_const" >&6
 NCURSES_CONST='/*nothing*/'
 if test "$with_ext_const" = yes ; then
@@ -8978,7 +9359,7 @@
 fi
 
 ###   use option --enable-ext-colors to turn on use of colors beyond 16.
-echo "$as_me:8981: checking if you want to use extended colors" >&5
+echo "$as_me:9362: checking if you want to use extended colors" >&5
 echo $ECHO_N "checking if you want to use extended colors... $ECHO_C" >&6
 
 # Check whether --enable-ext-colors or --disable-ext-colors was given.
@@ -8988,12 +9369,12 @@
 else
   with_ext_colors=no
 fi;
-echo "$as_me:8991: result: $with_ext_colors" >&5
+echo "$as_me:9372: result: $with_ext_colors" >&5
 echo "${ECHO_T}$with_ext_colors" >&6
 NCURSES_EXT_COLORS=0
 if test "$with_ext_colors" = yes ; then
 	if test "$with_widec" != yes ; then
-		{ { echo "$as_me:8996: error: This option applies only to wide-character library" >&5
+		{ { echo "$as_me:9377: error: This option applies only to wide-character library" >&5
 echo "$as_me: error: This option applies only to wide-character library" >&2;}
    { (exit 1); exit 1; }; }
 	else
@@ -9004,7 +9385,7 @@
 	5.*)
 		cf_cv_rel_version=6.0
 		cf_cv_abi_version=6
-		{ echo "$as_me:9007: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+		{ echo "$as_me:9388: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
 echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
 		;;
 	esac
@@ -9019,7 +9400,7 @@
 fi
 
 ###   use option --enable-ext-mouse to modify coding to support 5-button mice
-echo "$as_me:9022: checking if you want to use extended mouse encoding" >&5
+echo "$as_me:9403: checking if you want to use extended mouse encoding" >&5
 echo $ECHO_N "checking if you want to use extended mouse encoding... $ECHO_C" >&6
 
 # Check whether --enable-ext-mouse or --disable-ext-mouse was given.
@@ -9029,7 +9410,7 @@
 else
   with_ext_mouse=no
 fi;
-echo "$as_me:9032: result: $with_ext_mouse" >&5
+echo "$as_me:9413: result: $with_ext_mouse" >&5
 echo "${ECHO_T}$with_ext_mouse" >&6
 NCURSES_MOUSE_VERSION=1
 if test "$with_ext_mouse" = yes ; then
@@ -9040,7 +9421,7 @@
 	5.*)
 		cf_cv_rel_version=6.0
 		cf_cv_abi_version=6
-		{ echo "$as_me:9043: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+		{ echo "$as_me:9424: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
 echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
 		;;
 	esac
@@ -9048,7 +9429,7 @@
 
 fi
 
-echo "$as_me:9051: checking if you want \$NCURSES_NO_PADDING code" >&5
+echo "$as_me:9432: checking if you want \$NCURSES_NO_PADDING code" >&5
 echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
 
 # Check whether --enable-no-padding or --disable-no-padding was given.
@@ -9058,19 +9439,19 @@
 else
   with_no_padding=$with_ext_funcs
 fi;
-echo "$as_me:9061: result: $with_no_padding" >&5
+echo "$as_me:9442: result: $with_no_padding" >&5
 echo "${ECHO_T}$with_no_padding" >&6
 test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
 #define NCURSES_NO_PADDING 1
 EOF
 
-echo "$as_me:9067: checking for ANSI C header files" >&5
+echo "$as_me:9448: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9073 "configure"
+#line 9454 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -9078,13 +9459,13 @@
 #include <float.h>
 
 _ACEOF
-if { (eval echo "$as_me:9081: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:9462: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:9087: \$? = $ac_status" >&5
+  echo "$as_me:9468: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -9106,7 +9487,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 9109 "configure"
+#line 9490 "configure"
 #include "confdefs.h"
 #include <string.h>
 
@@ -9124,7 +9505,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 9127 "configure"
+#line 9508 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 
@@ -9145,7 +9526,7 @@
   :
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9148 "configure"
+#line 9529 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
@@ -9171,15 +9552,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:9174: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9555: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9177: \$? = $ac_status" >&5
+  echo "$as_me:9558: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:9179: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9560: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9182: \$? = $ac_status" >&5
+  echo "$as_me:9563: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -9192,7 +9573,7 @@
 fi
 fi
 fi
-echo "$as_me:9195: result: $ac_cv_header_stdc" >&5
+echo "$as_me:9576: result: $ac_cv_header_stdc" >&5
 echo "${ECHO_T}$ac_cv_header_stdc" >&6
 if test $ac_cv_header_stdc = yes; then
 
@@ -9208,28 +9589,28 @@
                   inttypes.h stdint.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:9211: checking for $ac_header" >&5
+echo "$as_me:9592: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9217 "configure"
+#line 9598 "configure"
 #include "confdefs.h"
 $ac_includes_default
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9223: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9604: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9226: \$? = $ac_status" >&5
+  echo "$as_me:9607: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9229: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9610: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9232: \$? = $ac_status" >&5
+  echo "$as_me:9613: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_Header=yes"
 else
@@ -9239,7 +9620,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9242: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:9623: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -9249,13 +9630,13 @@
 fi
 done
 
-echo "$as_me:9252: checking for signed char" >&5
+echo "$as_me:9633: checking for signed char" >&5
 echo $ECHO_N "checking for signed char... $ECHO_C" >&6
 if test "${ac_cv_type_signed_char+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9258 "configure"
+#line 9639 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9270,16 +9651,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9273: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9654: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9276: \$? = $ac_status" >&5
+  echo "$as_me:9657: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9279: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9660: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9282: \$? = $ac_status" >&5
+  echo "$as_me:9663: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_signed_char=yes
 else
@@ -9289,10 +9670,10 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:9292: result: $ac_cv_type_signed_char" >&5
+echo "$as_me:9673: result: $ac_cv_type_signed_char" >&5
 echo "${ECHO_T}$ac_cv_type_signed_char" >&6
 
-echo "$as_me:9295: checking size of signed char" >&5
+echo "$as_me:9676: checking size of signed char" >&5
 echo $ECHO_N "checking size of signed char... $ECHO_C" >&6
 if test "${ac_cv_sizeof_signed_char+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -9301,7 +9682,7 @@
   if test "$cross_compiling" = yes; then
   # Depending upon the size, compute the lo and hi bounds.
 cat >conftest.$ac_ext <<_ACEOF
-#line 9304 "configure"
+#line 9685 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9313,21 +9694,21 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9316: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9697: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9319: \$? = $ac_status" >&5
+  echo "$as_me:9700: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9322: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9703: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9325: \$? = $ac_status" >&5
+  echo "$as_me:9706: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_lo=0 ac_mid=0
   while :; do
     cat >conftest.$ac_ext <<_ACEOF
-#line 9330 "configure"
+#line 9711 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9339,16 +9720,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9342: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9723: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9345: \$? = $ac_status" >&5
+  echo "$as_me:9726: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9348: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9729: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9351: \$? = $ac_status" >&5
+  echo "$as_me:9732: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_hi=$ac_mid; break
 else
@@ -9364,7 +9745,7 @@
 ac_hi=-1 ac_mid=-1
   while :; do
     cat >conftest.$ac_ext <<_ACEOF
-#line 9367 "configure"
+#line 9748 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9376,16 +9757,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9379: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9760: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9382: \$? = $ac_status" >&5
+  echo "$as_me:9763: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9385: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9766: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9388: \$? = $ac_status" >&5
+  echo "$as_me:9769: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_lo=$ac_mid; break
 else
@@ -9401,7 +9782,7 @@
 while test "x$ac_lo" != "x$ac_hi"; do
   ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
   cat >conftest.$ac_ext <<_ACEOF
-#line 9404 "configure"
+#line 9785 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9413,16 +9794,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9416: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9797: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9419: \$? = $ac_status" >&5
+  echo "$as_me:9800: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9422: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9803: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9425: \$? = $ac_status" >&5
+  echo "$as_me:9806: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_hi=$ac_mid
 else
@@ -9435,12 +9816,12 @@
 ac_cv_sizeof_signed_char=$ac_lo
 else
   if test "$cross_compiling" = yes; then
-  { { echo "$as_me:9438: error: cannot run test program while cross compiling" >&5
+  { { echo "$as_me:9819: error: cannot run test program while cross compiling" >&5
 echo "$as_me: error: cannot run test program while cross compiling" >&2;}
    { (exit 1); exit 1; }; }
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9443 "configure"
+#line 9824 "configure"
 #include "confdefs.h"
 $ac_includes_default
 int
@@ -9456,15 +9837,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:9459: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9840: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9462: \$? = $ac_status" >&5
+  echo "$as_me:9843: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:9464: \"$ac_try\"") >&5
+  { (eval echo "$as_me:9845: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9467: \$? = $ac_status" >&5
+  echo "$as_me:9848: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_sizeof_signed_char=`cat conftest.val`
 else
@@ -9480,7 +9861,7 @@
   ac_cv_sizeof_signed_char=0
 fi
 fi
-echo "$as_me:9483: result: $ac_cv_sizeof_signed_char" >&5
+echo "$as_me:9864: result: $ac_cv_sizeof_signed_char" >&5
 echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6
 cat >>confdefs.h <<EOF
 #define SIZEOF_SIGNED_CHAR $ac_cv_sizeof_signed_char
@@ -9491,7 +9872,7 @@
 else
 	NCURSES_SBOOL="char"
 fi
-echo "$as_me:9494: checking if you want to use signed Boolean array in term.h" >&5
+echo "$as_me:9875: checking if you want to use signed Boolean array in term.h" >&5
 echo $ECHO_N "checking if you want to use signed Boolean array in term.h... $ECHO_C" >&6
 
 # Check whether --enable-signed-char or --disable-signed-char was given.
@@ -9501,12 +9882,12 @@
 else
   with_signed_char=no
 fi;
-echo "$as_me:9504: result: $with_signed_char" >&5
+echo "$as_me:9885: result: $with_signed_char" >&5
 echo "${ECHO_T}$with_signed_char" >&6
 test "$with_signed_char" != yes && NCURSES_SBOOL="char"
 
 ###   use option --enable-sigwinch to turn on use of SIGWINCH logic
-echo "$as_me:9509: checking if you want SIGWINCH handler" >&5
+echo "$as_me:9890: checking if you want SIGWINCH handler" >&5
 echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
 
 # Check whether --enable-sigwinch or --disable-sigwinch was given.
@@ -9516,14 +9897,14 @@
 else
   with_sigwinch=$with_ext_funcs
 fi;
-echo "$as_me:9519: result: $with_sigwinch" >&5
+echo "$as_me:9900: result: $with_sigwinch" >&5
 echo "${ECHO_T}$with_sigwinch" >&6
 test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
 #define USE_SIGWINCH 1
 EOF
 
 ###   use option --enable-tcap-names to allow user to define new capabilities
-echo "$as_me:9526: checking if you want user-definable terminal capabilities like termcap" >&5
+echo "$as_me:9907: checking if you want user-definable terminal capabilities like termcap" >&5
 echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
 
 # Check whether --enable-tcap-names or --disable-tcap-names was given.
@@ -9533,7 +9914,7 @@
 else
   with_tcap_names=$with_ext_funcs
 fi;
-echo "$as_me:9536: result: $with_tcap_names" >&5
+echo "$as_me:9917: result: $with_tcap_names" >&5
 echo "${ECHO_T}$with_tcap_names" >&6
 NCURSES_XNAMES=0
 test "$with_tcap_names" = yes && NCURSES_XNAMES=1
@@ -9541,7 +9922,7 @@
 ###############################################################################
 # These options are relatively safe to experiment with.
 
-echo "$as_me:9544: checking if you want all development code" >&5
+echo "$as_me:9925: checking if you want all development code" >&5
 echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
 
 # Check whether --with-develop or --without-develop was given.
@@ -9551,11 +9932,11 @@
 else
   with_develop=no
 fi;
-echo "$as_me:9554: result: $with_develop" >&5
+echo "$as_me:9935: result: $with_develop" >&5
 echo "${ECHO_T}$with_develop" >&6
 
 ###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
-echo "$as_me:9558: checking if you want hard-tabs code" >&5
+echo "$as_me:9939: checking if you want hard-tabs code" >&5
 echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
 
 # Check whether --enable-hard-tabs or --disable-hard-tabs was given.
@@ -9565,14 +9946,14 @@
 else
   enable_hard_tabs=$with_develop
 fi;
-echo "$as_me:9568: result: $enable_hard_tabs" >&5
+echo "$as_me:9949: result: $enable_hard_tabs" >&5
 echo "${ECHO_T}$enable_hard_tabs" >&6
 test "$enable_hard_tabs" = yes && cat >>confdefs.h <<\EOF
 #define USE_HARD_TABS 1
 EOF
 
 ###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-echo "$as_me:9575: checking if you want limited support for xmc" >&5
+echo "$as_me:9956: checking if you want limited support for xmc" >&5
 echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
 
 # Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
@@ -9582,7 +9963,7 @@
 else
   enable_xmc_glitch=$with_develop
 fi;
-echo "$as_me:9585: result: $enable_xmc_glitch" >&5
+echo "$as_me:9966: result: $enable_xmc_glitch" >&5
 echo "${ECHO_T}$enable_xmc_glitch" >&6
 test "$enable_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
 #define USE_XMC_SUPPORT 1
@@ -9591,7 +9972,7 @@
 ###############################################################################
 # These are just experimental, probably should not be in a package:
 
-echo "$as_me:9594: checking if you do not want to assume colors are white-on-black" >&5
+echo "$as_me:9975: checking if you do not want to assume colors are white-on-black" >&5
 echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
 
 # Check whether --enable-assumed-color or --disable-assumed-color was given.
@@ -9601,14 +9982,14 @@
 else
   with_assumed_color=yes
 fi;
-echo "$as_me:9604: result: $with_assumed_color" >&5
+echo "$as_me:9985: result: $with_assumed_color" >&5
 echo "${ECHO_T}$with_assumed_color" >&6
 test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
 #define USE_ASSUMED_COLOR 1
 EOF
 
 ###   use option --enable-hashmap to turn on use of hashmap scrolling logic
-echo "$as_me:9611: checking if you want hashmap scrolling-optimization code" >&5
+echo "$as_me:9992: checking if you want hashmap scrolling-optimization code" >&5
 echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
 
 # Check whether --enable-hashmap or --disable-hashmap was given.
@@ -9618,14 +9999,14 @@
 else
   with_hashmap=yes
 fi;
-echo "$as_me:9621: result: $with_hashmap" >&5
+echo "$as_me:10002: result: $with_hashmap" >&5
 echo "${ECHO_T}$with_hashmap" >&6
 test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
 #define USE_HASHMAP 1
 EOF
 
 ###   use option --enable-colorfgbg to turn on use of $COLORFGBG environment
-echo "$as_me:9628: checking if you want colorfgbg code" >&5
+echo "$as_me:10009: checking if you want colorfgbg code" >&5
 echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
 
 # Check whether --enable-colorfgbg or --disable-colorfgbg was given.
@@ -9635,7 +10016,7 @@
 else
   with_colorfgbg=no
 fi;
-echo "$as_me:9638: result: $with_colorfgbg" >&5
+echo "$as_me:10019: result: $with_colorfgbg" >&5
 echo "${ECHO_T}$with_colorfgbg" >&6
 test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
 #define USE_COLORFGBG 1
@@ -9644,7 +10025,7 @@
 # This is still experimental (20080329), but should ultimately be moved to
 # the script-block --with-normal, etc.
 
-echo "$as_me:9647: checking if you want to link with the pthread library" >&5
+echo "$as_me:10028: checking if you want to link with the pthread library" >&5
 echo $ECHO_N "checking if you want to link with the pthread library... $ECHO_C" >&6
 
 # Check whether --with-pthread or --without-pthread was given.
@@ -9654,27 +10035,27 @@
 else
   with_pthread=no
 fi;
-echo "$as_me:9657: result: $with_pthread" >&5
+echo "$as_me:10038: result: $with_pthread" >&5
 echo "${ECHO_T}$with_pthread" >&6
 
 if test "$with_pthread" != no ; then
-    echo "$as_me:9661: checking for pthread.h" >&5
+    echo "$as_me:10042: checking for pthread.h" >&5
 echo $ECHO_N "checking for pthread.h... $ECHO_C" >&6
 if test "${ac_cv_header_pthread_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 9667 "configure"
+#line 10048 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 _ACEOF
-if { (eval echo "$as_me:9671: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:10052: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:9677: \$? = $ac_status" >&5
+  echo "$as_me:10058: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -9693,7 +10074,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:9696: result: $ac_cv_header_pthread_h" >&5
+echo "$as_me:10077: result: $ac_cv_header_pthread_h" >&5
 echo "${ECHO_T}$ac_cv_header_pthread_h" >&6
 if test $ac_cv_header_pthread_h = yes; then
 
@@ -9701,12 +10082,12 @@
 #define HAVE_PTHREADS_H 1
 EOF
 
-        echo "$as_me:9704: checking if we can link with the pthread library" >&5
+        echo "$as_me:10085: checking if we can link with the pthread library" >&5
 echo $ECHO_N "checking if we can link with the pthread library... $ECHO_C" >&6
         cf_save_LIBS="$LIBS"
         LIBS="-lpthread $LIBS"
         cat >conftest.$ac_ext <<_ACEOF
-#line 9709 "configure"
+#line 10090 "configure"
 #include "confdefs.h"
 
 #include <pthread.h>
@@ -9722,16 +10103,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9725: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10106: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:9728: \$? = $ac_status" >&5
+  echo "$as_me:10109: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:9731: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10112: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9734: \$? = $ac_status" >&5
+  echo "$as_me:10115: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   with_pthread=yes
 else
@@ -9741,7 +10122,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
         LIBS="$cf_save_LIBS"
-        echo "$as_me:9744: result: $with_pthread" >&5
+        echo "$as_me:10125: result: $with_pthread" >&5
 echo "${ECHO_T}$with_pthread" >&6
 
         if test "$with_pthread" = yes ; then
@@ -9751,7 +10132,7 @@
 EOF
 
         else
-            { { echo "$as_me:9754: error: Cannot link with pthread library" >&5
+            { { echo "$as_me:10135: error: Cannot link with pthread library" >&5
 echo "$as_me: error: Cannot link with pthread library" >&2;}
    { (exit 1); exit 1; }; }
         fi
@@ -9760,7 +10141,7 @@
 
 fi
 
-echo "$as_me:9763: checking if you want to use weak-symbols for pthreads" >&5
+echo "$as_me:10144: checking if you want to use weak-symbols for pthreads" >&5
 echo $ECHO_N "checking if you want to use weak-symbols for pthreads... $ECHO_C" >&6
 
 # Check whether --enable-weak-symbols or --disable-weak-symbols was given.
@@ -9770,18 +10151,18 @@
 else
   use_weak_symbols=no
 fi;
-echo "$as_me:9773: result: $use_weak_symbols" >&5
+echo "$as_me:10154: result: $use_weak_symbols" >&5
 echo "${ECHO_T}$use_weak_symbols" >&6
 if test "$use_weak_symbols" = yes ; then
 
-echo "$as_me:9777: checking if $CC supports weak symbols" >&5
+echo "$as_me:10158: checking if $CC supports weak symbols" >&5
 echo $ECHO_N "checking if $CC supports weak symbols... $ECHO_C" >&6
 if test "${cf_cv_weak_symbols+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 9784 "configure"
+#line 10165 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -9807,16 +10188,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9810: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10191: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:9813: \$? = $ac_status" >&5
+  echo "$as_me:10194: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:9816: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10197: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:9819: \$? = $ac_status" >&5
+  echo "$as_me:10200: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_weak_symbols=yes
 else
@@ -9827,7 +10208,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:9830: result: $cf_cv_weak_symbols" >&5
+echo "$as_me:10211: result: $cf_cv_weak_symbols" >&5
 echo "${ECHO_T}$cf_cv_weak_symbols" >&6
 
 else
@@ -9857,7 +10238,7 @@
 # opaque outside of that, so there is no --enable-opaque option.  We can use
 # this option without --with-pthreads, but this will be always set for
 # pthreads.
-echo "$as_me:9860: checking if you want experimental reentrant code" >&5
+echo "$as_me:10241: checking if you want experimental reentrant code" >&5
 echo $ECHO_N "checking if you want experimental reentrant code... $ECHO_C" >&6
 
 # Check whether --enable-reentrant or --disable-reentrant was given.
@@ -9867,21 +10248,21 @@
 else
   with_reentrant=no
 fi;
-echo "$as_me:9870: result: $with_reentrant" >&5
+echo "$as_me:10251: result: $with_reentrant" >&5
 echo "${ECHO_T}$with_reentrant" >&6
 if test "$with_reentrant" = yes ; then
 	cf_cv_enable_reentrant=1
 	cf_cv_enable_opaque="NCURSES_INTERNALS"
 	NCURSES_OPAQUE=1
 	NCURSES_SIZE_T=int
-    if test $cf_cv_weak_symbols = yes ; then
+	if test $cf_cv_weak_symbols = yes ; then
 
 # remove pthread library from $LIBS
 LIBS=`echo "$LIBS" | sed -e 's/-lpthread[ 	]//g' -e 's/-lpthread$//'`
 
-    else
-        LIB_SUFFIX="t${LIB_SUFFIX}"
-    fi
+	else
+		LIB_SUFFIX="t${LIB_SUFFIX}"
+	fi
 	cat >>confdefs.h <<\EOF
 #define USE_REENTRANT 1
 EOF
@@ -9891,7 +10272,7 @@
 	5.*)
 		cf_cv_rel_version=6.0
 		cf_cv_abi_version=6
-		{ echo "$as_me:9894: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+		{ echo "$as_me:10275: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
 echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
 		;;
 	esac
@@ -9904,7 +10285,29 @@
 	NCURSES_SIZE_T=short
 fi
 
-echo "$as_me:9907: checking if you want experimental safe-sprintf code" >&5
+### Allow using a different wrap-prefix
+if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
+	echo "$as_me:10290: checking for prefix used to wrap public variables" >&5
+echo $ECHO_N "checking for prefix used to wrap public variables... $ECHO_C" >&6
+
+# Check whether --with-wrap-prefix or --without-wrap-prefix was given.
+if test "${with_wrap_prefix+set}" = set; then
+  withval="$with_wrap_prefix"
+  NCURSES_WRAP_PREFIX=$withval
+else
+  NCURSES_WRAP_PREFIX=_nc_
+fi;
+	echo "$as_me:10300: result: $NCURSES_WRAP_PREFIX" >&5
+echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6
+else
+	NCURSES_WRAP_PREFIX=_nc_
+fi
+
+cat >>confdefs.h <<EOF
+#define NCURSES_WRAP_PREFIX "$NCURSES_WRAP_PREFIX"
+EOF
+
+echo "$as_me:10310: checking if you want experimental safe-sprintf code" >&5
 echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6
 
 # Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
@@ -9914,7 +10317,7 @@
 else
   with_safe_sprintf=no
 fi;
-echo "$as_me:9917: result: $with_safe_sprintf" >&5
+echo "$as_me:10320: result: $with_safe_sprintf" >&5
 echo "${ECHO_T}$with_safe_sprintf" >&6
 test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
 #define USE_SAFE_SPRINTF 1
@@ -9923,7 +10326,7 @@
 ###   use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
 # when hashmap is used scroll hints are useless
 if test "$with_hashmap" = no ; then
-echo "$as_me:9926: checking if you want to experiment without scrolling-hints code" >&5
+echo "$as_me:10329: checking if you want to experiment without scrolling-hints code" >&5
 echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
 
 # Check whether --enable-scroll-hints or --disable-scroll-hints was given.
@@ -9933,7 +10336,7 @@
 else
   with_scroll_hints=yes
 fi;
-echo "$as_me:9936: result: $with_scroll_hints" >&5
+echo "$as_me:10339: result: $with_scroll_hints" >&5
 echo "${ECHO_T}$with_scroll_hints" >&6
 test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
 #define USE_SCROLL_HINTS 1
@@ -9941,7 +10344,7 @@
 
 fi
 
-echo "$as_me:9944: checking if you want experimental wgetch-events code" >&5
+echo "$as_me:10347: checking if you want experimental wgetch-events code" >&5
 echo $ECHO_N "checking if you want experimental wgetch-events code... $ECHO_C" >&6
 
 # Check whether --enable-wgetch-events or --disable-wgetch-events was given.
@@ -9951,7 +10354,7 @@
 else
   with_wgetch_events=no
 fi;
-echo "$as_me:9954: result: $with_wgetch_events" >&5
+echo "$as_me:10357: result: $with_wgetch_events" >&5
 echo "${ECHO_T}$with_wgetch_events" >&6
 test "$with_wgetch_events" = yes && cat >>confdefs.h <<\EOF
 #define NCURSES_WGETCH_EVENTS 1
@@ -9960,7 +10363,7 @@
 ###############################################################################
 
 ###	use option --disable-echo to suppress full display compiling commands
-echo "$as_me:9963: checking if you want to display full commands during build" >&5
+echo "$as_me:10366: checking if you want to display full commands during build" >&5
 echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
 
 # Check whether --enable-echo or --disable-echo was given.
@@ -9977,11 +10380,11 @@
 	test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
 	test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent"
 fi
-echo "$as_me:9980: result: $with_echo" >&5
+echo "$as_me:10383: result: $with_echo" >&5
 echo "${ECHO_T}$with_echo" >&6
 
 ###	use option --enable-warnings to turn on all gcc warnings
-echo "$as_me:9984: checking if you want to see compiler warnings" >&5
+echo "$as_me:10387: checking if you want to see compiler warnings" >&5
 echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
 
 # Check whether --enable-warnings or --disable-warnings was given.
@@ -9989,7 +10392,7 @@
   enableval="$enable_warnings"
   with_warnings=$enableval
 fi;
-echo "$as_me:9992: result: $with_warnings" >&5
+echo "$as_me:10395: result: $with_warnings" >&5
 echo "${ECHO_T}$with_warnings" >&6
 
 if test "x$with_warnings" = "xyes"; then
@@ -10000,12 +10403,12 @@
 if test "$GCC" = yes ; then
 	case $host_os in
 	linux*|gnu*)
-		echo "$as_me:10003: checking if this is really Intel C compiler" >&5
+		echo "$as_me:10406: checking if this is really Intel C compiler" >&5
 echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
 		cf_save_CFLAGS="$CFLAGS"
 		CFLAGS="$CFLAGS -no-gcc"
 		cat >conftest.$ac_ext <<_ACEOF
-#line 10008 "configure"
+#line 10411 "configure"
 #include "confdefs.h"
 
 int
@@ -10022,16 +10425,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10025: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10428: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10028: \$? = $ac_status" >&5
+  echo "$as_me:10431: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10031: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10434: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10034: \$? = $ac_status" >&5
+  echo "$as_me:10437: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   INTEL_COMPILER=yes
 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
@@ -10042,14 +10445,14 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 		CFLAGS="$cf_save_CFLAGS"
-		echo "$as_me:10045: result: $INTEL_COMPILER" >&5
+		echo "$as_me:10448: result: $INTEL_COMPILER" >&5
 echo "${ECHO_T}$INTEL_COMPILER" >&6
 		;;
 	esac
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 10052 "${as_me-configure}"
+#line 10455 "${as_me-configure}"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
 
@@ -10057,7 +10460,6 @@
 then
 # The "-wdXXX" options suppress warnings:
 # remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
 # remark #193: zero used for undefined preprocessing identifier
@@ -10065,31 +10467,30 @@
 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
 # remark #869: parameter "tw" was never referenced
 # remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
+# warning #279: controlling expression is constant
 
-	{ echo "$as_me:10070: checking for $CC warning options..." >&5
+	{ echo "$as_me:10472: checking for $CC warning options..." >&5
 echo "$as_me: checking for $CC warning options..." >&6;}
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-Wall"
 	for cf_opt in \
 		wd1419 \
-		wd1682 \
 		wd1683 \
 		wd1684 \
 		wd193 \
-		wd279 \
 		wd593 \
+		wd279 \
 		wd810 \
 		wd869 \
 		wd981
 	do
 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-		if { (eval echo "$as_me:10087: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:10488: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10090: \$? = $ac_status" >&5
+  echo "$as_me:10491: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:10092: result: ... -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:10493: result: ... -$cf_opt" >&5
 echo "${ECHO_T}... -$cf_opt" >&6
 			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
 		fi
@@ -10098,7 +10499,7 @@
 
 elif test "$GCC" = yes
 then
-	{ echo "$as_me:10101: checking for $CC warning options..." >&5
+	{ echo "$as_me:10502: checking for $CC warning options..." >&5
 echo "$as_me: checking for $CC warning options..." >&6;}
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-W -Wall"
@@ -10118,12 +10519,12 @@
 		Wundef $cf_warn_CONST Wdeclaration-after-statement Wextra Wno-unknown-pragmas Wswitch-enum
 	do
 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-		if { (eval echo "$as_me:10121: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:10522: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10124: \$? = $ac_status" >&5
+  echo "$as_me:10525: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:10126: result: ... -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:10527: result: ... -$cf_opt" >&5
 echo "${ECHO_T}... -$cf_opt" >&6
 			case $cf_opt in #(vi
 			Wcast-qual) #(vi
@@ -10134,7 +10535,7 @@
 				[34].*)
 					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
 
-echo "${as_me-configure}:10137: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+echo "${as_me-configure}:10538: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
 
 					continue;;
 				esac
@@ -10154,12 +10555,12 @@
 if test "$GCC" = yes ; then
 	case $host_os in
 	linux*|gnu*)
-		echo "$as_me:10157: checking if this is really Intel C++ compiler" >&5
+		echo "$as_me:10558: checking if this is really Intel C++ compiler" >&5
 echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6
 		cf_save_CFLAGS="$CXXFLAGS"
 		CXXFLAGS="$CXXFLAGS -no-gcc"
 		cat >conftest.$ac_ext <<_ACEOF
-#line 10162 "configure"
+#line 10563 "configure"
 #include "confdefs.h"
 
 int
@@ -10176,16 +10577,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10179: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10580: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10182: \$? = $ac_status" >&5
+  echo "$as_me:10583: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:10185: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10586: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10188: \$? = $ac_status" >&5
+  echo "$as_me:10589: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   INTEL_CPLUSPLUS=yes
 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
@@ -10196,7 +10597,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 		CXXFLAGS="$cf_save_CFLAGS"
-		echo "$as_me:10199: result: $INTEL_CPLUSPLUS" >&5
+		echo "$as_me:10600: result: $INTEL_CPLUSPLUS" >&5
 echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
 		;;
 	esac
@@ -10210,7 +10611,7 @@
 ac_main_return=return
 
 cat > conftest.$ac_ext <<EOF
-#line 10213 "configure"
+#line 10614 "configure"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
 
@@ -10228,7 +10629,7 @@
 # remark #981: operands are evaluated in unspecified order
 # warning #269: invalid format string conversion
 
-	{ echo "$as_me:10231: checking for $CC warning options..." >&5
+	{ echo "$as_me:10632: checking for $CC warning options..." >&5
 echo "$as_me: checking for $CC warning options..." >&6;}
 	cf_save_CXXFLAGS="$CXXFLAGS"
 	EXTRA_CXXFLAGS="-Wall"
@@ -10245,12 +10646,12 @@
 		wd981
 	do
 		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
-		if { (eval echo "$as_me:10248: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:10649: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10251: \$? = $ac_status" >&5
+  echo "$as_me:10652: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:10253: result: ... -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:10654: result: ... -$cf_opt" >&5
 echo "${ECHO_T}... -$cf_opt" >&6
 			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
 		fi
@@ -10259,7 +10660,7 @@
 
 elif test "$GXX" = yes
 then
-	{ echo "$as_me:10262: checking for $CXX warning options..." >&5
+	{ echo "$as_me:10663: checking for $CXX warning options..." >&5
 echo "$as_me: checking for $CXX warning options..." >&6;}
 	cf_save_CXXFLAGS="$CXXFLAGS"
 	EXTRA_CXXFLAGS="-W -Wall"
@@ -10288,16 +10689,16 @@
 		Wundef $cf_gxx_extra_warnings Wno-unused
 	do
 		CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
-		if { (eval echo "$as_me:10291: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:10692: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10294: \$? = $ac_status" >&5
+  echo "$as_me:10695: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:10296: result: ... -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:10697: result: ... -$cf_opt" >&5
 echo "${ECHO_T}... -$cf_opt" >&6
 			EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
 		else
-			test -n "$verbose" && echo "$as_me:10300: result: ... no -$cf_opt" >&5
+			test -n "$verbose" && echo "$as_me:10701: result: ... no -$cf_opt" >&5
 echo "${ECHO_T}... no -$cf_opt" >&6
 		fi
 	done
@@ -10333,10 +10734,10 @@
 EOF
 if test "$GCC" = yes
 then
-	{ echo "$as_me:10336: checking for $CC __attribute__ directives..." >&5
+	{ echo "$as_me:10737: checking for $CC __attribute__ directives..." >&5
 echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
 cat > conftest.$ac_ext <<EOF
-#line 10339 "${as_me-configure}"
+#line 10740 "${as_me-configure}"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -10374,12 +10775,12 @@
 EOF
 			;;
 		esac
-		if { (eval echo "$as_me:10377: \"$ac_compile\"") >&5
+		if { (eval echo "$as_me:10778: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:10380: \$? = $ac_status" >&5
+  echo "$as_me:10781: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-			test -n "$verbose" && echo "$as_me:10382: result: ... $cf_attribute" >&5
+			test -n "$verbose" && echo "$as_me:10783: result: ... $cf_attribute" >&5
 echo "${ECHO_T}... $cf_attribute" >&6
 			cat conftest.h >>confdefs.h
 		fi
@@ -10391,7 +10792,7 @@
 fi
 
 ###	use option --enable-assertions to turn on generation of assertion code
-echo "$as_me:10394: checking if you want to enable runtime assertions" >&5
+echo "$as_me:10795: checking if you want to enable runtime assertions" >&5
 echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
 
 # Check whether --enable-assertions or --disable-assertions was given.
@@ -10401,7 +10802,7 @@
 else
   with_assertions=no
 fi;
-echo "$as_me:10404: result: $with_assertions" >&5
+echo "$as_me:10805: result: $with_assertions" >&5
 echo "${ECHO_T}$with_assertions" >&6
 if test -n "$GCC"
 then
@@ -10419,7 +10820,7 @@
 
 ###	use option --disable-leaks to suppress "permanent" leaks, for testing
 
-echo "$as_me:10422: checking if you want to use dmalloc for testing" >&5
+echo "$as_me:10823: checking if you want to use dmalloc for testing" >&5
 echo $ECHO_N "checking if you want to use dmalloc for testing... $ECHO_C" >&6
 
 # Check whether --with-dmalloc or --without-dmalloc was given.
@@ -10435,7 +10836,7 @@
 else
   with_dmalloc=
 fi;
-echo "$as_me:10438: result: ${with_dmalloc:-no}" >&5
+echo "$as_me:10839: result: ${with_dmalloc:-no}" >&5
 echo "${ECHO_T}${with_dmalloc:-no}" >&6
 
 case .$with_cflags in #(vi
@@ -10505,7 +10906,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -10519,23 +10920,23 @@
 esac
 
 if test "$with_dmalloc" = yes ; then
-	echo "$as_me:10522: checking for dmalloc.h" >&5
+	echo "$as_me:10923: checking for dmalloc.h" >&5
 echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
 if test "${ac_cv_header_dmalloc_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10528 "configure"
+#line 10929 "configure"
 #include "confdefs.h"
 #include <dmalloc.h>
 _ACEOF
-if { (eval echo "$as_me:10532: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:10933: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:10538: \$? = $ac_status" >&5
+  echo "$as_me:10939: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -10554,11 +10955,11 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:10557: result: $ac_cv_header_dmalloc_h" >&5
+echo "$as_me:10958: result: $ac_cv_header_dmalloc_h" >&5
 echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
 if test $ac_cv_header_dmalloc_h = yes; then
 
-echo "$as_me:10561: checking for dmalloc_debug in -ldmalloc" >&5
+echo "$as_me:10962: checking for dmalloc_debug in -ldmalloc" >&5
 echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
 if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10566,7 +10967,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldmalloc  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 10569 "configure"
+#line 10970 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -10585,16 +10986,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10588: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10989: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10591: \$? = $ac_status" >&5
+  echo "$as_me:10992: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10594: \"$ac_try\"") >&5
+  { (eval echo "$as_me:10995: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10597: \$? = $ac_status" >&5
+  echo "$as_me:10998: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dmalloc_dmalloc_debug=yes
 else
@@ -10605,7 +11006,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:10608: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+echo "$as_me:11009: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
 echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
 if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
   cat >>confdefs.h <<EOF
@@ -10620,7 +11021,7 @@
 
 fi
 
-echo "$as_me:10623: checking if you want to use dbmalloc for testing" >&5
+echo "$as_me:11024: checking if you want to use dbmalloc for testing" >&5
 echo $ECHO_N "checking if you want to use dbmalloc for testing... $ECHO_C" >&6
 
 # Check whether --with-dbmalloc or --without-dbmalloc was given.
@@ -10636,7 +11037,7 @@
 else
   with_dbmalloc=
 fi;
-echo "$as_me:10639: result: ${with_dbmalloc:-no}" >&5
+echo "$as_me:11040: result: ${with_dbmalloc:-no}" >&5
 echo "${ECHO_T}${with_dbmalloc:-no}" >&6
 
 case .$with_cflags in #(vi
@@ -10706,7 +11107,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -10720,23 +11121,23 @@
 esac
 
 if test "$with_dbmalloc" = yes ; then
-	echo "$as_me:10723: checking for dbmalloc.h" >&5
+	echo "$as_me:11124: checking for dbmalloc.h" >&5
 echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
 if test "${ac_cv_header_dbmalloc_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 10729 "configure"
+#line 11130 "configure"
 #include "confdefs.h"
 #include <dbmalloc.h>
 _ACEOF
-if { (eval echo "$as_me:10733: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:11134: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:10739: \$? = $ac_status" >&5
+  echo "$as_me:11140: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -10755,11 +11156,11 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:10758: result: $ac_cv_header_dbmalloc_h" >&5
+echo "$as_me:11159: result: $ac_cv_header_dbmalloc_h" >&5
 echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
 if test $ac_cv_header_dbmalloc_h = yes; then
 
-echo "$as_me:10762: checking for debug_malloc in -ldbmalloc" >&5
+echo "$as_me:11163: checking for debug_malloc in -ldbmalloc" >&5
 echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
 if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -10767,7 +11168,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldbmalloc  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 10770 "configure"
+#line 11171 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -10786,16 +11187,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10789: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11190: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:10792: \$? = $ac_status" >&5
+  echo "$as_me:11193: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:10795: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11196: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:10798: \$? = $ac_status" >&5
+  echo "$as_me:11199: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dbmalloc_debug_malloc=yes
 else
@@ -10806,7 +11207,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:10809: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+echo "$as_me:11210: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
 echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
 if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
   cat >>confdefs.h <<EOF
@@ -10821,7 +11222,7 @@
 
 fi
 
-echo "$as_me:10824: checking if you want to use valgrind for testing" >&5
+echo "$as_me:11225: checking if you want to use valgrind for testing" >&5
 echo $ECHO_N "checking if you want to use valgrind for testing... $ECHO_C" >&6
 
 # Check whether --with-valgrind or --without-valgrind was given.
@@ -10837,7 +11238,7 @@
 else
   with_valgrind=
 fi;
-echo "$as_me:10840: result: ${with_valgrind:-no}" >&5
+echo "$as_me:11241: result: ${with_valgrind:-no}" >&5
 echo "${ECHO_T}${with_valgrind:-no}" >&6
 
 case .$with_cflags in #(vi
@@ -10907,7 +11308,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -10920,7 +11321,7 @@
 	;;
 esac
 
-echo "$as_me:10923: checking if you want to perform memory-leak testing" >&5
+echo "$as_me:11324: checking if you want to perform memory-leak testing" >&5
 echo $ECHO_N "checking if you want to perform memory-leak testing... $ECHO_C" >&6
 
 # Check whether --enable-leaks or --disable-leaks was given.
@@ -10930,7 +11331,7 @@
 else
   : ${with_no_leaks:=no}
 fi;
-echo "$as_me:10933: result: $with_no_leaks" >&5
+echo "$as_me:11334: result: $with_no_leaks" >&5
 echo "${ECHO_T}$with_no_leaks" >&6
 
 if test "$with_no_leaks" = yes ; then
@@ -10975,7 +11376,7 @@
 	;;
 esac
 
-echo "$as_me:10978: checking whether to add trace feature to all models" >&5
+echo "$as_me:11379: checking whether to add trace feature to all models" >&5
 echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
 
 # Check whether --with-trace or --without-trace was given.
@@ -10985,7 +11386,7 @@
 else
   cf_with_trace=$cf_all_traces
 fi;
-echo "$as_me:10988: result: $cf_with_trace" >&5
+echo "$as_me:11389: result: $cf_with_trace" >&5
 echo "${ECHO_T}$cf_with_trace" >&6
 
 if test "$cf_with_trace" = yes ; then
@@ -11052,7 +11453,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -11066,13 +11467,17 @@
 fi
 
 ###	Checks for libraries.
-echo "$as_me:11069: checking for gettimeofday" >&5
+case $cf_cv_system_name in #(vi
+*mingw32*) #(vi
+	;;
+*)
+echo "$as_me:11474: checking for gettimeofday" >&5
 echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
 if test "${ac_cv_func_gettimeofday+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11075 "configure"
+#line 11480 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gettimeofday (); below.  */
@@ -11103,16 +11508,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11106: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11511: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11109: \$? = $ac_status" >&5
+  echo "$as_me:11514: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11112: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11517: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11115: \$? = $ac_status" >&5
+  echo "$as_me:11520: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_gettimeofday=yes
 else
@@ -11122,7 +11527,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:11125: result: $ac_cv_func_gettimeofday" >&5
+echo "$as_me:11530: result: $ac_cv_func_gettimeofday" >&5
 echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
 if test $ac_cv_func_gettimeofday = yes; then
   cat >>confdefs.h <<\EOF
@@ -11131,7 +11536,7 @@
 
 else
 
-echo "$as_me:11134: checking for gettimeofday in -lbsd" >&5
+echo "$as_me:11539: checking for gettimeofday in -lbsd" >&5
 echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
 if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11139,7 +11544,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lbsd  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 11142 "configure"
+#line 11547 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -11158,16 +11563,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11161: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11566: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11164: \$? = $ac_status" >&5
+  echo "$as_me:11569: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11167: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11572: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11170: \$? = $ac_status" >&5
+  echo "$as_me:11575: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_bsd_gettimeofday=yes
 else
@@ -11178,7 +11583,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:11181: result: $ac_cv_lib_bsd_gettimeofday" >&5
+echo "$as_me:11586: result: $ac_cv_lib_bsd_gettimeofday" >&5
 echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
 if test $ac_cv_lib_bsd_gettimeofday = yes; then
   cat >>confdefs.h <<\EOF
@@ -11189,15 +11594,17 @@
 fi
 
 fi
+	;;
+esac
 
-echo "$as_me:11193: checking if -lm needed for math functions" >&5
+echo "$as_me:11600: checking if -lm needed for math functions" >&5
 echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
 if test "${cf_cv_need_libm+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 11200 "configure"
+#line 11607 "configure"
 #include "confdefs.h"
 
 	#include <stdio.h>
@@ -11212,16 +11619,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11215: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11622: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11218: \$? = $ac_status" >&5
+  echo "$as_me:11625: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11221: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11628: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11224: \$? = $ac_status" >&5
+  echo "$as_me:11631: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_need_libm=no
 else
@@ -11231,7 +11638,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:11234: result: $cf_cv_need_libm" >&5
+echo "$as_me:11641: result: $cf_cv_need_libm" >&5
 echo "${ECHO_T}$cf_cv_need_libm" >&6
 if test "$cf_cv_need_libm" = yes
 then
@@ -11239,13 +11646,13 @@
 fi
 
 ###	Checks for header files.
-echo "$as_me:11242: checking for ANSI C header files" >&5
+echo "$as_me:11649: checking for ANSI C header files" >&5
 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11248 "configure"
+#line 11655 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -11253,13 +11660,13 @@
 #include <float.h>
 
 _ACEOF
-if { (eval echo "$as_me:11256: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:11663: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:11262: \$? = $ac_status" >&5
+  echo "$as_me:11669: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -11281,7 +11688,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 11284 "configure"
+#line 11691 "configure"
 #include "confdefs.h"
 #include <string.h>
 
@@ -11299,7 +11706,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line 11302 "configure"
+#line 11709 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 
@@ -11320,7 +11727,7 @@
   :
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11323 "configure"
+#line 11730 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #if ((' ' & 0x0FF) == 0x020)
@@ -11346,15 +11753,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:11349: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11756: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11352: \$? = $ac_status" >&5
+  echo "$as_me:11759: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:11354: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11761: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11357: \$? = $ac_status" >&5
+  echo "$as_me:11764: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -11367,7 +11774,7 @@
 fi
 fi
 fi
-echo "$as_me:11370: result: $ac_cv_header_stdc" >&5
+echo "$as_me:11777: result: $ac_cv_header_stdc" >&5
 echo "${ECHO_T}$ac_cv_header_stdc" >&6
 if test $ac_cv_header_stdc = yes; then
 
@@ -11380,13 +11787,13 @@
 ac_header_dirent=no
 for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
   as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-echo "$as_me:11383: checking for $ac_hdr that defines DIR" >&5
+echo "$as_me:11790: checking for $ac_hdr that defines DIR" >&5
 echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11389 "configure"
+#line 11796 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -11401,16 +11808,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11404: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11811: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11407: \$? = $ac_status" >&5
+  echo "$as_me:11814: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11410: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11817: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11413: \$? = $ac_status" >&5
+  echo "$as_me:11820: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_Header=yes"
 else
@@ -11420,7 +11827,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:11423: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:11830: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -11433,7 +11840,7 @@
 done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
-  echo "$as_me:11436: checking for opendir in -ldir" >&5
+  echo "$as_me:11843: checking for opendir in -ldir" >&5
 echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
 if test "${ac_cv_lib_dir_opendir+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11441,7 +11848,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldir  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 11444 "configure"
+#line 11851 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -11460,16 +11867,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11463: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11870: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11466: \$? = $ac_status" >&5
+  echo "$as_me:11873: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11469: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11876: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11472: \$? = $ac_status" >&5
+  echo "$as_me:11879: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_dir_opendir=yes
 else
@@ -11480,14 +11887,14 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:11483: result: $ac_cv_lib_dir_opendir" >&5
+echo "$as_me:11890: result: $ac_cv_lib_dir_opendir" >&5
 echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
 if test $ac_cv_lib_dir_opendir = yes; then
   LIBS="$LIBS -ldir"
 fi
 
 else
-  echo "$as_me:11490: checking for opendir in -lx" >&5
+  echo "$as_me:11897: checking for opendir in -lx" >&5
 echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
 if test "${ac_cv_lib_x_opendir+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11495,7 +11902,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lx  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 11498 "configure"
+#line 11905 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -11514,16 +11921,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11517: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11924: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11520: \$? = $ac_status" >&5
+  echo "$as_me:11927: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11523: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11930: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11526: \$? = $ac_status" >&5
+  echo "$as_me:11933: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_x_opendir=yes
 else
@@ -11534,7 +11941,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:11537: result: $ac_cv_lib_x_opendir" >&5
+echo "$as_me:11944: result: $ac_cv_lib_x_opendir" >&5
 echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
 if test $ac_cv_lib_x_opendir = yes; then
   LIBS="$LIBS -lx"
@@ -11542,13 +11949,13 @@
 
 fi
 
-echo "$as_me:11545: checking whether time.h and sys/time.h may both be included" >&5
+echo "$as_me:11952: checking whether time.h and sys/time.h may both be included" >&5
 echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
 if test "${ac_cv_header_time+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11551 "configure"
+#line 11958 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -11564,16 +11971,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11567: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11974: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11570: \$? = $ac_status" >&5
+  echo "$as_me:11977: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11573: \"$ac_try\"") >&5
+  { (eval echo "$as_me:11980: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11576: \$? = $ac_status" >&5
+  echo "$as_me:11983: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_header_time=yes
 else
@@ -11583,7 +11990,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:11586: result: $ac_cv_header_time" >&5
+echo "$as_me:11993: result: $ac_cv_header_time" >&5
 echo "${ECHO_T}$ac_cv_header_time" >&6
 if test $ac_cv_header_time = yes; then
 
@@ -11593,14 +12000,14 @@
 
 fi
 
-echo "$as_me:11596: checking for regular-expression headers" >&5
+echo "$as_me:12003: checking for regular-expression headers" >&5
 echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
 if test "${cf_cv_regex+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 11603 "configure"
+#line 12010 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <regex.h>
@@ -11618,16 +12025,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11621: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12028: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11624: \$? = $ac_status" >&5
+  echo "$as_me:12031: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11627: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12034: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11630: \$? = $ac_status" >&5
+  echo "$as_me:12037: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_regex="regex.h"
 else
@@ -11635,7 +12042,7 @@
 cat conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 11638 "configure"
+#line 12045 "configure"
 #include "confdefs.h"
 #include <regexp.h>
 int
@@ -11650,16 +12057,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11653: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12060: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11656: \$? = $ac_status" >&5
+  echo "$as_me:12063: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11659: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12066: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11662: \$? = $ac_status" >&5
+  echo "$as_me:12069: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_regex="regexp.h"
 else
@@ -11669,7 +12076,7 @@
 		cf_save_LIBS="$LIBS"
 		LIBS="-lgen $LIBS"
 		cat >conftest.$ac_ext <<_ACEOF
-#line 11672 "configure"
+#line 12079 "configure"
 #include "confdefs.h"
 #include <regexpr.h>
 int
@@ -11684,16 +12091,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11687: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12094: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11690: \$? = $ac_status" >&5
+  echo "$as_me:12097: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11693: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12100: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11696: \$? = $ac_status" >&5
+  echo "$as_me:12103: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_regex="regexpr.h"
 else
@@ -11709,7 +12116,7 @@
 
 fi
 
-echo "$as_me:11712: result: $cf_cv_regex" >&5
+echo "$as_me:12119: result: $cf_cv_regex" >&5
 echo "${ECHO_T}$cf_cv_regex" >&6
 case $cf_cv_regex in
 	regex.h)   cat >>confdefs.h <<\EOF
@@ -11745,23 +12152,23 @@
 
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:11748: checking for $ac_header" >&5
+echo "$as_me:12155: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 11754 "configure"
+#line 12161 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:11758: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12165: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:11764: \$? = $ac_status" >&5
+  echo "$as_me:12171: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -11780,7 +12187,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:11783: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:12190: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -11794,7 +12201,7 @@
 # Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
 if test "$ISC" = yes ; then
 
-echo "$as_me:11797: checking for main in -lcposix" >&5
+echo "$as_me:12204: checking for main in -lcposix" >&5
 echo $ECHO_N "checking for main in -lcposix... $ECHO_C" >&6
 if test "${ac_cv_lib_cposix_main+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11802,7 +12209,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcposix  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 11805 "configure"
+#line 12212 "configure"
 #include "confdefs.h"
 
 int
@@ -11814,16 +12221,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11817: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12224: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11820: \$? = $ac_status" >&5
+  echo "$as_me:12227: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11823: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12230: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11826: \$? = $ac_status" >&5
+  echo "$as_me:12233: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_cposix_main=yes
 else
@@ -11834,7 +12241,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:11837: result: $ac_cv_lib_cposix_main" >&5
+echo "$as_me:12244: result: $ac_cv_lib_cposix_main" >&5
 echo "${ECHO_T}$ac_cv_lib_cposix_main" >&6
 if test $ac_cv_lib_cposix_main = yes; then
   cat >>confdefs.h <<EOF
@@ -11845,7 +12252,7 @@
 
 fi
 
-	echo "$as_me:11848: checking for bzero in -linet" >&5
+	echo "$as_me:12255: checking for bzero in -linet" >&5
 echo $ECHO_N "checking for bzero in -linet... $ECHO_C" >&6
 if test "${ac_cv_lib_inet_bzero+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11853,7 +12260,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-linet  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 11856 "configure"
+#line 12263 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -11872,16 +12279,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11875: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12282: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:11878: \$? = $ac_status" >&5
+  echo "$as_me:12285: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:11881: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12288: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11884: \$? = $ac_status" >&5
+  echo "$as_me:12291: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_inet_bzero=yes
 else
@@ -11892,21 +12299,21 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:11895: result: $ac_cv_lib_inet_bzero" >&5
+echo "$as_me:12302: result: $ac_cv_lib_inet_bzero" >&5
 echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
 if test $ac_cv_lib_inet_bzero = yes; then
   LIBS="$LIBS -linet"
 fi
 fi
 
-echo "$as_me:11902: checking if sys/time.h works with sys/select.h" >&5
+echo "$as_me:12309: checking if sys/time.h works with sys/select.h" >&5
 echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
 if test "${cf_cv_sys_time_select+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 11909 "configure"
+#line 12316 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -11926,16 +12333,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11929: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12336: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:11932: \$? = $ac_status" >&5
+  echo "$as_me:12339: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:11935: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12342: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:11938: \$? = $ac_status" >&5
+  echo "$as_me:12345: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_sys_time_select=yes
 else
@@ -11947,7 +12354,7 @@
 
 fi
 
-echo "$as_me:11950: result: $cf_cv_sys_time_select" >&5
+echo "$as_me:12357: result: $cf_cv_sys_time_select" >&5
 echo "${ECHO_T}$cf_cv_sys_time_select" >&6
 test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_SYS_TIME_SELECT 1
@@ -11961,7 +12368,7 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 ac_main_return=return
 
-echo "$as_me:11964: checking for $CC option to accept ANSI C" >&5
+echo "$as_me:12371: checking for $CC option to accept ANSI C" >&5
 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
 if test "${ac_cv_prog_cc_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -11969,7 +12376,7 @@
   ac_cv_prog_cc_stdc=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
-#line 11972 "configure"
+#line 12379 "configure"
 #include "confdefs.h"
 #include <stdarg.h>
 #include <stdio.h>
@@ -12018,16 +12425,16 @@
 do
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12021: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12428: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12024: \$? = $ac_status" >&5
+  echo "$as_me:12431: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12027: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12434: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12030: \$? = $ac_status" >&5
+  echo "$as_me:12437: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_prog_cc_stdc=$ac_arg
 break
@@ -12044,21 +12451,21 @@
 
 case "x$ac_cv_prog_cc_stdc" in
   x|xno)
-    echo "$as_me:12047: result: none needed" >&5
+    echo "$as_me:12454: result: none needed" >&5
 echo "${ECHO_T}none needed" >&6 ;;
   *)
-    echo "$as_me:12050: result: $ac_cv_prog_cc_stdc" >&5
+    echo "$as_me:12457: result: $ac_cv_prog_cc_stdc" >&5
 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
     CC="$CC $ac_cv_prog_cc_stdc" ;;
 esac
 
-echo "$as_me:12055: checking for an ANSI C-conforming const" >&5
+echo "$as_me:12462: checking for an ANSI C-conforming const" >&5
 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
 if test "${ac_cv_c_const+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12061 "configure"
+#line 12468 "configure"
 #include "confdefs.h"
 
 int
@@ -12116,16 +12523,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12119: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12526: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12122: \$? = $ac_status" >&5
+  echo "$as_me:12529: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12125: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12532: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12128: \$? = $ac_status" >&5
+  echo "$as_me:12535: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_const=yes
 else
@@ -12135,7 +12542,7 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:12138: result: $ac_cv_c_const" >&5
+echo "$as_me:12545: result: $ac_cv_c_const" >&5
 echo "${ECHO_T}$ac_cv_c_const" >&6
 if test $ac_cv_c_const = no; then
 
@@ -12145,7 +12552,7 @@
 
 fi
 
-echo "$as_me:12148: checking for inline" >&5
+echo "$as_me:12555: checking for inline" >&5
 echo $ECHO_N "checking for inline... $ECHO_C" >&6
 if test "${ac_cv_c_inline+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12153,7 +12560,7 @@
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat >conftest.$ac_ext <<_ACEOF
-#line 12156 "configure"
+#line 12563 "configure"
 #include "confdefs.h"
 #ifndef __cplusplus
 static $ac_kw int static_foo () {return 0; }
@@ -12162,16 +12569,16 @@
 
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12165: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12572: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12168: \$? = $ac_status" >&5
+  echo "$as_me:12575: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12171: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12578: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12174: \$? = $ac_status" >&5
+  echo "$as_me:12581: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_c_inline=$ac_kw; break
 else
@@ -12182,7 +12589,7 @@
 done
 
 fi
-echo "$as_me:12185: result: $ac_cv_c_inline" >&5
+echo "$as_me:12592: result: $ac_cv_c_inline" >&5
 echo "${ECHO_T}$ac_cv_c_inline" >&6
 case $ac_cv_c_inline in
   inline | yes) ;;
@@ -12205,7 +12612,7 @@
     :
   elif test "$GCC" = yes
   then
-    echo "$as_me:12208: checking if gcc supports options to tune inlining" >&5
+    echo "$as_me:12615: checking if gcc supports options to tune inlining" >&5
 echo $ECHO_N "checking if gcc supports options to tune inlining... $ECHO_C" >&6
 if test "${cf_cv_gcc_inline+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12214,7 +12621,7 @@
       cf_save_CFLAGS=$CFLAGS
       CFLAGS="$CFLAGS --param max-inline-insns-single=1200"
       cat >conftest.$ac_ext <<_ACEOF
-#line 12217 "configure"
+#line 12624 "configure"
 #include "confdefs.h"
 inline int foo(void) { return 1; }
 int
@@ -12226,16 +12633,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12229: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12636: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12232: \$? = $ac_status" >&5
+  echo "$as_me:12639: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12235: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12642: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12238: \$? = $ac_status" >&5
+  echo "$as_me:12645: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_gcc_inline=yes
 else
@@ -12247,7 +12654,7 @@
       CFLAGS=$cf_save_CFLAGS
 
 fi
-echo "$as_me:12250: result: $cf_cv_gcc_inline" >&5
+echo "$as_me:12657: result: $cf_cv_gcc_inline" >&5
 echo "${ECHO_T}$cf_cv_gcc_inline" >&6
     if test "$cf_cv_gcc_inline" = yes ; then
 
@@ -12311,7 +12718,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -12323,7 +12730,7 @@
   fi
 fi
 
-echo "$as_me:12326: checking for signal global datatype" >&5
+echo "$as_me:12733: checking for signal global datatype" >&5
 echo $ECHO_N "checking for signal global datatype... $ECHO_C" >&6
 if test "${cf_cv_sig_atomic_t+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12335,7 +12742,7 @@
 		"int"
 	do
 	cat >conftest.$ac_ext <<_ACEOF
-#line 12338 "configure"
+#line 12745 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -12358,16 +12765,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12361: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12768: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12364: \$? = $ac_status" >&5
+  echo "$as_me:12771: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12367: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12774: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12370: \$? = $ac_status" >&5
+  echo "$as_me:12777: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_sig_atomic_t=$cf_type
 else
@@ -12381,7 +12788,7 @@
 
 fi
 
-echo "$as_me:12384: result: $cf_cv_sig_atomic_t" >&5
+echo "$as_me:12791: result: $cf_cv_sig_atomic_t" >&5
 echo "${ECHO_T}$cf_cv_sig_atomic_t" >&6
 test "$cf_cv_sig_atomic_t" != no && cat >>confdefs.h <<EOF
 #define SIG_ATOMIC_T $cf_cv_sig_atomic_t
@@ -12389,7 +12796,7 @@
 
 if test $NCURSES_CHTYPE = auto ; then
 
-echo "$as_me:12392: checking for type of chtype" >&5
+echo "$as_me:12799: checking for type of chtype" >&5
 echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
 if test "${cf_cv_typeof_chtype+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12399,7 +12806,7 @@
   cf_cv_typeof_chtype=long
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12402 "configure"
+#line 12809 "configure"
 #include "confdefs.h"
 
 #define WANT_BITS 31
@@ -12434,15 +12841,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:12437: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12844: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12440: \$? = $ac_status" >&5
+  echo "$as_me:12847: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:12442: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12849: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12445: \$? = $ac_status" >&5
+  echo "$as_me:12852: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_typeof_chtype=`cat cf_test.out`
 else
@@ -12457,7 +12864,7 @@
 
 fi
 
-echo "$as_me:12460: result: $cf_cv_typeof_chtype" >&5
+echo "$as_me:12867: result: $cf_cv_typeof_chtype" >&5
 echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
 
 cat >>confdefs.h <<EOF
@@ -12469,14 +12876,14 @@
 fi
 test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype=""
 
-echo "$as_me:12472: checking if unsigned literals are legal" >&5
+echo "$as_me:12879: checking if unsigned literals are legal" >&5
 echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6
 if test "${cf_cv_unsigned_literals+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 12479 "configure"
+#line 12886 "configure"
 #include "confdefs.h"
 
 int
@@ -12488,16 +12895,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12491: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12898: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12494: \$? = $ac_status" >&5
+  echo "$as_me:12901: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12497: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12904: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12500: \$? = $ac_status" >&5
+  echo "$as_me:12907: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_unsigned_literals=yes
 else
@@ -12509,7 +12916,7 @@
 
 fi
 
-echo "$as_me:12512: result: $cf_cv_unsigned_literals" >&5
+echo "$as_me:12919: result: $cf_cv_unsigned_literals" >&5
 echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
 
 cf_cv_1UL="1"
@@ -12525,14 +12932,14 @@
 
 ###	Checks for external-data
 
-echo "$as_me:12528: checking if external errno is declared" >&5
+echo "$as_me:12935: checking if external errno is declared" >&5
 echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6
 if test "${cf_cv_dcl_errno+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
-#line 12535 "configure"
+#line 12942 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_STDLIB_H
@@ -12550,16 +12957,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12553: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12960: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12556: \$? = $ac_status" >&5
+  echo "$as_me:12963: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12559: \"$ac_try\"") >&5
+  { (eval echo "$as_me:12966: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12562: \$? = $ac_status" >&5
+  echo "$as_me:12969: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_dcl_errno=yes
 else
@@ -12570,7 +12977,7 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 
 fi
-echo "$as_me:12573: result: $cf_cv_dcl_errno" >&5
+echo "$as_me:12980: result: $cf_cv_dcl_errno" >&5
 echo "${ECHO_T}$cf_cv_dcl_errno" >&6
 
 if test "$cf_cv_dcl_errno" = no ; then
@@ -12585,14 +12992,14 @@
 
 # It's possible (for near-UNIX clones) that the data doesn't exist
 
-echo "$as_me:12588: checking if external errno exists" >&5
+echo "$as_me:12995: checking if external errno exists" >&5
 echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6
 if test "${cf_cv_have_errno+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
-#line 12595 "configure"
+#line 13002 "configure"
 #include "confdefs.h"
 
 #undef errno
@@ -12607,16 +13014,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12610: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13017: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12613: \$? = $ac_status" >&5
+  echo "$as_me:13020: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12616: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13023: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12619: \$? = $ac_status" >&5
+  echo "$as_me:13026: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_have_errno=yes
 else
@@ -12627,7 +13034,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:12630: result: $cf_cv_have_errno" >&5
+echo "$as_me:13037: result: $cf_cv_have_errno" >&5
 echo "${ECHO_T}$cf_cv_have_errno" >&6
 
 if test "$cf_cv_have_errno" = yes ; then
@@ -12640,7 +13047,7 @@
 
 fi
 
-echo "$as_me:12643: checking if data-only library module links" >&5
+echo "$as_me:13050: checking if data-only library module links" >&5
 echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
 if test "${cf_cv_link_dataonly+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -12648,20 +13055,20 @@
 
 	rm -f conftest.a
 	cat >conftest.$ac_ext <<EOF
-#line 12651 "configure"
+#line 13058 "configure"
 int	testdata[3] = { 123, 456, 789 };
 EOF
-	if { (eval echo "$as_me:12654: \"$ac_compile\"") >&5
+	if { (eval echo "$as_me:13061: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12657: \$? = $ac_status" >&5
+  echo "$as_me:13064: \$? = $ac_status" >&5
   (exit $ac_status); } ; then
 		mv conftest.o data.o && \
-		( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null
+		( $AR $ARFLAGS conftest.a data.o ) 2>&5 1>/dev/null
 	fi
 	rm -f conftest.$ac_ext data.o
 	cat >conftest.$ac_ext <<EOF
-#line 12664 "configure"
+#line 13071 "configure"
 int	testfunc()
 {
 #if defined(NeXT)
@@ -12674,13 +13081,13 @@
 #endif
 }
 EOF
-	if { (eval echo "$as_me:12677: \"$ac_compile\"") >&5
+	if { (eval echo "$as_me:13084: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12680: \$? = $ac_status" >&5
+  echo "$as_me:13087: \$? = $ac_status" >&5
   (exit $ac_status); }; then
 		mv conftest.o func.o && \
-		( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
+		( $AR $ARFLAGS conftest.a func.o ) 2>&5 1>/dev/null
 	fi
 	rm -f conftest.$ac_ext func.o
 	( eval $RANLIB conftest.a ) 2>&5 >/dev/null
@@ -12690,7 +13097,7 @@
   cf_cv_link_dataonly=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12693 "configure"
+#line 13100 "configure"
 #include "confdefs.h"
 
 	int main()
@@ -12701,15 +13108,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:12704: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13111: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12707: \$? = $ac_status" >&5
+  echo "$as_me:13114: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:12709: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13116: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12712: \$? = $ac_status" >&5
+  echo "$as_me:13119: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_link_dataonly=yes
 else
@@ -12724,7 +13131,7 @@
 
 fi
 
-echo "$as_me:12727: result: $cf_cv_link_dataonly" >&5
+echo "$as_me:13134: result: $cf_cv_link_dataonly" >&5
 echo "${ECHO_T}$cf_cv_link_dataonly" >&6
 
 if test "$cf_cv_link_dataonly" = no ; then
@@ -12759,13 +13166,13 @@
 
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:12762: checking for $ac_func" >&5
+echo "$as_me:13169: checking for $ac_func" >&5
 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
 if eval "test \"\${$as_ac_var+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 12768 "configure"
+#line 13175 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.  */
@@ -12796,16 +13203,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12799: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13206: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12802: \$? = $ac_status" >&5
+  echo "$as_me:13209: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12805: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13212: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12808: \$? = $ac_status" >&5
+  echo "$as_me:13215: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   eval "$as_ac_var=yes"
 else
@@ -12815,7 +13222,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:12818: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:13225: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -12827,14 +13234,14 @@
 
 if test "$with_getcap" = "yes" ; then
 
-echo "$as_me:12830: checking for terminal-capability database functions" >&5
+echo "$as_me:13237: checking for terminal-capability database functions" >&5
 echo $ECHO_N "checking for terminal-capability database functions... $ECHO_C" >&6
 if test "${cf_cv_cgetent+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 12837 "configure"
+#line 13244 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -12854,16 +13261,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12857: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13264: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12860: \$? = $ac_status" >&5
+  echo "$as_me:13267: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12863: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13270: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12866: \$? = $ac_status" >&5
+  echo "$as_me:13273: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cgetent=yes
 else
@@ -12875,7 +13282,7 @@
 
 fi
 
-echo "$as_me:12878: result: $cf_cv_cgetent" >&5
+echo "$as_me:13285: result: $cf_cv_cgetent" >&5
 echo "${ECHO_T}$cf_cv_cgetent" >&6
 test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_BSD_CGETENT 1
@@ -12883,14 +13290,14 @@
 
 fi
 
-echo "$as_me:12886: checking for isascii" >&5
+echo "$as_me:13293: checking for isascii" >&5
 echo $ECHO_N "checking for isascii... $ECHO_C" >&6
 if test "${cf_cv_have_isascii+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 12893 "configure"
+#line 13300 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 int
@@ -12902,16 +13309,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:12905: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13312: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:12908: \$? = $ac_status" >&5
+  echo "$as_me:13315: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:12911: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13318: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12914: \$? = $ac_status" >&5
+  echo "$as_me:13321: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_have_isascii=yes
 else
@@ -12922,17 +13329,17 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:12925: result: $cf_cv_have_isascii" >&5
+echo "$as_me:13332: result: $cf_cv_have_isascii" >&5
 echo "${ECHO_T}$cf_cv_have_isascii" >&6
 test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_ISASCII 1
 EOF
 
 if test "$ac_cv_func_sigaction" = yes; then
-echo "$as_me:12932: checking whether sigaction needs _POSIX_SOURCE" >&5
+echo "$as_me:13339: checking whether sigaction needs _POSIX_SOURCE" >&5
 echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
-#line 12935 "configure"
+#line 13342 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -12946,16 +13353,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12949: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13356: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12952: \$? = $ac_status" >&5
+  echo "$as_me:13359: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12955: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13362: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12958: \$? = $ac_status" >&5
+  echo "$as_me:13365: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   sigact_bad=no
 else
@@ -12963,7 +13370,7 @@
 cat conftest.$ac_ext >&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 12966 "configure"
+#line 13373 "configure"
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
@@ -12978,16 +13385,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:12981: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13388: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:12984: \$? = $ac_status" >&5
+  echo "$as_me:13391: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:12987: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13394: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:12990: \$? = $ac_status" >&5
+  echo "$as_me:13397: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   sigact_bad=yes
 	 cat >>confdefs.h <<\EOF
@@ -13002,11 +13409,11 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:13005: result: $sigact_bad" >&5
+echo "$as_me:13412: result: $sigact_bad" >&5
 echo "${ECHO_T}$sigact_bad" >&6
 fi
 
-echo "$as_me:13009: checking if nanosleep really works" >&5
+echo "$as_me:13416: checking if nanosleep really works" >&5
 echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6
 if test "${cf_cv_func_nanosleep+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13016,7 +13423,7 @@
   cf_cv_func_nanosleep=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13019 "configure"
+#line 13426 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -13041,15 +13448,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:13044: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13451: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13047: \$? = $ac_status" >&5
+  echo "$as_me:13454: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:13049: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13456: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13052: \$? = $ac_status" >&5
+  echo "$as_me:13459: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_nanosleep=yes
 else
@@ -13061,7 +13468,7 @@
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-echo "$as_me:13064: result: $cf_cv_func_nanosleep" >&5
+echo "$as_me:13471: result: $cf_cv_func_nanosleep" >&5
 echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
 
 test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF
@@ -13075,23 +13482,23 @@
 
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:13078: checking for $ac_header" >&5
+echo "$as_me:13485: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13084 "configure"
+#line 13491 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:13088: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:13495: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:13094: \$? = $ac_status" >&5
+  echo "$as_me:13501: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -13110,7 +13517,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:13113: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:13520: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -13125,23 +13532,23 @@
 for ac_header in sys/termio.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:13128: checking for $ac_header" >&5
+echo "$as_me:13535: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13134 "configure"
+#line 13541 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:13138: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:13545: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:13144: \$? = $ac_status" >&5
+  echo "$as_me:13551: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -13160,7 +13567,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:13163: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:13570: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -13178,10 +13585,10 @@
 	*)	termios_bad=maybe ;;
 	esac
 	if test "$termios_bad" = maybe ; then
-	echo "$as_me:13181: checking whether termios.h needs _POSIX_SOURCE" >&5
+	echo "$as_me:13588: checking whether termios.h needs _POSIX_SOURCE" >&5
 echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6
 	cat >conftest.$ac_ext <<_ACEOF
-#line 13184 "configure"
+#line 13591 "configure"
 #include "confdefs.h"
 #include <termios.h>
 int
@@ -13193,16 +13600,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13196: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13603: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13199: \$? = $ac_status" >&5
+  echo "$as_me:13606: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13202: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13609: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13205: \$? = $ac_status" >&5
+  echo "$as_me:13612: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   termios_bad=no
 else
@@ -13210,7 +13617,7 @@
 cat conftest.$ac_ext >&5
 
 		cat >conftest.$ac_ext <<_ACEOF
-#line 13213 "configure"
+#line 13620 "configure"
 #include "confdefs.h"
 
 #define _POSIX_SOURCE
@@ -13224,16 +13631,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13227: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:13634: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13230: \$? = $ac_status" >&5
+  echo "$as_me:13637: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13233: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13640: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13236: \$? = $ac_status" >&5
+  echo "$as_me:13643: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   termios_bad=unknown
 else
@@ -13248,19 +13655,19 @@
 
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-	echo "$as_me:13251: result: $termios_bad" >&5
+	echo "$as_me:13658: result: $termios_bad" >&5
 echo "${ECHO_T}$termios_bad" >&6
 	fi
 fi
 
-echo "$as_me:13256: checking for tcgetattr" >&5
+echo "$as_me:13663: checking for tcgetattr" >&5
 echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6
 if test "${cf_cv_have_tcgetattr+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 13263 "configure"
+#line 13670 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -13288,16 +13695,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13291: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13698: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13294: \$? = $ac_status" >&5
+  echo "$as_me:13701: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13297: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13704: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13300: \$? = $ac_status" >&5
+  echo "$as_me:13707: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_have_tcgetattr=yes
 else
@@ -13307,20 +13714,20 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:13310: result: $cf_cv_have_tcgetattr" >&5
+echo "$as_me:13717: result: $cf_cv_have_tcgetattr" >&5
 echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
 test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_TCGETATTR 1
 EOF
 
-echo "$as_me:13316: checking for vsscanf function or workaround" >&5
+echo "$as_me:13723: checking for vsscanf function or workaround" >&5
 echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6
 if test "${cf_cv_func_vsscanf+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 13323 "configure"
+#line 13730 "configure"
 #include "confdefs.h"
 
 #include <stdarg.h>
@@ -13336,16 +13743,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13339: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13746: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13342: \$? = $ac_status" >&5
+  echo "$as_me:13749: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13345: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13752: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13348: \$? = $ac_status" >&5
+  echo "$as_me:13755: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_vsscanf=vsscanf
 else
@@ -13353,7 +13760,7 @@
 cat conftest.$ac_ext >&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 13356 "configure"
+#line 13763 "configure"
 #include "confdefs.h"
 
 #include <stdarg.h>
@@ -13375,16 +13782,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13378: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13785: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13381: \$? = $ac_status" >&5
+  echo "$as_me:13788: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13384: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13791: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13387: \$? = $ac_status" >&5
+  echo "$as_me:13794: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_vsscanf=vfscanf
 else
@@ -13392,7 +13799,7 @@
 cat conftest.$ac_ext >&5
 
 cat >conftest.$ac_ext <<_ACEOF
-#line 13395 "configure"
+#line 13802 "configure"
 #include "confdefs.h"
 
 #include <stdarg.h>
@@ -13414,16 +13821,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13417: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13824: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13420: \$? = $ac_status" >&5
+  echo "$as_me:13827: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13423: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13830: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13426: \$? = $ac_status" >&5
+  echo "$as_me:13833: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_vsscanf=_doscan
 else
@@ -13438,7 +13845,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:13441: result: $cf_cv_func_vsscanf" >&5
+echo "$as_me:13848: result: $cf_cv_func_vsscanf" >&5
 echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
 
 case $cf_cv_func_vsscanf in #(vi
@@ -13456,7 +13863,7 @@
 ;;
 esac
 
-echo "$as_me:13459: checking for working mkstemp" >&5
+echo "$as_me:13866: checking for working mkstemp" >&5
 echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
 if test "${cf_cv_func_mkstemp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13464,13 +13871,13 @@
 
 rm -f conftest*
 if test "$cross_compiling" = yes; then
-  echo "$as_me:13467: checking for mkstemp" >&5
+  echo "$as_me:13874: checking for mkstemp" >&5
 echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
 if test "${ac_cv_func_mkstemp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13473 "configure"
+#line 13880 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char mkstemp (); below.  */
@@ -13501,16 +13908,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13504: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13911: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13507: \$? = $ac_status" >&5
+  echo "$as_me:13914: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13510: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13917: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13513: \$? = $ac_status" >&5
+  echo "$as_me:13920: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_mkstemp=yes
 else
@@ -13520,12 +13927,12 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:13523: result: $ac_cv_func_mkstemp" >&5
+echo "$as_me:13930: result: $ac_cv_func_mkstemp" >&5
 echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
 
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13528 "configure"
+#line 13935 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -13563,15 +13970,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:13566: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13973: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13569: \$? = $ac_status" >&5
+  echo "$as_me:13976: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:13571: \"$ac_try\"") >&5
+  { (eval echo "$as_me:13978: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13574: \$? = $ac_status" >&5
+  echo "$as_me:13981: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_func_mkstemp=yes
 
@@ -13586,7 +13993,7 @@
 fi
 
 fi
-echo "$as_me:13589: result: $cf_cv_func_mkstemp" >&5
+echo "$as_me:13996: result: $cf_cv_func_mkstemp" >&5
 echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
 if test "$cf_cv_func_mkstemp" = yes ; then
 	cat >>confdefs.h <<\EOF
@@ -13604,21 +14011,21 @@
 fi
 
 if test "$cross_compiling" = yes ; then
-	{ echo "$as_me:13607: WARNING: cross compiling: assume setvbuf params not reversed" >&5
+	{ echo "$as_me:14014: WARNING: cross compiling: assume setvbuf params not reversed" >&5
 echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;}
 else
-	echo "$as_me:13610: checking whether setvbuf arguments are reversed" >&5
+	echo "$as_me:14017: checking whether setvbuf arguments are reversed" >&5
 echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6
 if test "${ac_cv_func_setvbuf_reversed+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   if test "$cross_compiling" = yes; then
-  { { echo "$as_me:13616: error: cannot run test program while cross compiling" >&5
+  { { echo "$as_me:14023: error: cannot run test program while cross compiling" >&5
 echo "$as_me: error: cannot run test program while cross compiling" >&2;}
    { (exit 1); exit 1; }; }
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13621 "configure"
+#line 14028 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 /* If setvbuf has the reversed format, exit 0. */
@@ -13635,15 +14042,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:13638: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14045: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13641: \$? = $ac_status" >&5
+  echo "$as_me:14048: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:13643: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14050: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13646: \$? = $ac_status" >&5
+  echo "$as_me:14053: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_setvbuf_reversed=yes
 else
@@ -13656,7 +14063,7 @@
 fi
 rm -f core core.* *.core
 fi
-echo "$as_me:13659: result: $ac_cv_func_setvbuf_reversed" >&5
+echo "$as_me:14066: result: $ac_cv_func_setvbuf_reversed" >&5
 echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6
 if test $ac_cv_func_setvbuf_reversed = yes; then
 
@@ -13667,13 +14074,13 @@
 fi
 
 fi
-echo "$as_me:13670: checking return type of signal handlers" >&5
+echo "$as_me:14077: checking return type of signal handlers" >&5
 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
 if test "${ac_cv_type_signal+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13676 "configure"
+#line 14083 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -13695,16 +14102,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13698: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14105: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13701: \$? = $ac_status" >&5
+  echo "$as_me:14108: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13704: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14111: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13707: \$? = $ac_status" >&5
+  echo "$as_me:14114: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_type_signal=void
 else
@@ -13714,21 +14121,21 @@
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:13717: result: $ac_cv_type_signal" >&5
+echo "$as_me:14124: result: $ac_cv_type_signal" >&5
 echo "${ECHO_T}$ac_cv_type_signal" >&6
 
 cat >>confdefs.h <<EOF
 #define RETSIGTYPE $ac_cv_type_signal
 EOF
 
-echo "$as_me:13724: checking for type sigaction_t" >&5
+echo "$as_me:14131: checking for type sigaction_t" >&5
 echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6
 if test "${cf_cv_type_sigaction+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 13731 "configure"
+#line 14138 "configure"
 #include "confdefs.h"
 
 #include <signal.h>
@@ -13741,16 +14148,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13744: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14151: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13747: \$? = $ac_status" >&5
+  echo "$as_me:14154: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13750: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14157: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13753: \$? = $ac_status" >&5
+  echo "$as_me:14160: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_type_sigaction=yes
 else
@@ -13761,13 +14168,13 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 fi
 
-echo "$as_me:13764: result: $cf_cv_type_sigaction" >&5
+echo "$as_me:14171: result: $cf_cv_type_sigaction" >&5
 echo "${ECHO_T}$cf_cv_type_sigaction" >&6
 test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF
 #define HAVE_TYPE_SIGACTION 1
 EOF
 
-echo "$as_me:13770: checking declaration of size-change" >&5
+echo "$as_me:14177: checking declaration of size-change" >&5
 echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6
 if test "${cf_cv_sizechange+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -13782,7 +14189,7 @@
     CPPFLAGS="$cf_save_CPPFLAGS"
     test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
     cat >conftest.$ac_ext <<_ACEOF
-#line 13785 "configure"
+#line 14192 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_TERMIOS_H
@@ -13826,16 +14233,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:13829: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14236: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:13832: \$? = $ac_status" >&5
+  echo "$as_me:14239: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:13835: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14242: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13838: \$? = $ac_status" >&5
+  echo "$as_me:14245: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_sizechange=yes
 else
@@ -13854,7 +14261,7 @@
 done
 
 fi
-echo "$as_me:13857: result: $cf_cv_sizechange" >&5
+echo "$as_me:14264: result: $cf_cv_sizechange" >&5
 echo "${ECHO_T}$cf_cv_sizechange" >&6
 if test "$cf_cv_sizechange" != no ; then
 	cat >>confdefs.h <<\EOF
@@ -13871,13 +14278,13 @@
 	esac
 fi
 
-echo "$as_me:13874: checking for memmove" >&5
+echo "$as_me:14281: checking for memmove" >&5
 echo $ECHO_N "checking for memmove... $ECHO_C" >&6
 if test "${ac_cv_func_memmove+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13880 "configure"
+#line 14287 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char memmove (); below.  */
@@ -13908,16 +14315,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13911: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14318: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13914: \$? = $ac_status" >&5
+  echo "$as_me:14321: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13917: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14324: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13920: \$? = $ac_status" >&5
+  echo "$as_me:14327: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_memmove=yes
 else
@@ -13927,19 +14334,19 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:13930: result: $ac_cv_func_memmove" >&5
+echo "$as_me:14337: result: $ac_cv_func_memmove" >&5
 echo "${ECHO_T}$ac_cv_func_memmove" >&6
 if test $ac_cv_func_memmove = yes; then
   :
 else
 
-echo "$as_me:13936: checking for bcopy" >&5
+echo "$as_me:14343: checking for bcopy" >&5
 echo $ECHO_N "checking for bcopy... $ECHO_C" >&6
 if test "${ac_cv_func_bcopy+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 13942 "configure"
+#line 14349 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char bcopy (); below.  */
@@ -13970,16 +14377,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:13973: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14380: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:13976: \$? = $ac_status" >&5
+  echo "$as_me:14383: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:13979: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14386: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:13982: \$? = $ac_status" >&5
+  echo "$as_me:14389: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_func_bcopy=yes
 else
@@ -13989,11 +14396,11 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:13992: result: $ac_cv_func_bcopy" >&5
+echo "$as_me:14399: result: $ac_cv_func_bcopy" >&5
 echo "${ECHO_T}$ac_cv_func_bcopy" >&6
 if test $ac_cv_func_bcopy = yes; then
 
-	echo "$as_me:13996: checking if bcopy does overlapping moves" >&5
+	echo "$as_me:14403: checking if bcopy does overlapping moves" >&5
 echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6
 if test "${cf_cv_good_bcopy+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14003,7 +14410,7 @@
   cf_cv_good_bcopy=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 14006 "configure"
+#line 14413 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -14017,15 +14424,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:14020: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14427: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14023: \$? = $ac_status" >&5
+  echo "$as_me:14430: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:14025: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14432: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14028: \$? = $ac_status" >&5
+  echo "$as_me:14435: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_good_bcopy=yes
 else
@@ -14038,7 +14445,7 @@
 fi
 
 fi
-echo "$as_me:14041: result: $cf_cv_good_bcopy" >&5
+echo "$as_me:14448: result: $cf_cv_good_bcopy" >&5
 echo "${ECHO_T}$cf_cv_good_bcopy" >&6
 
 else
@@ -14059,7 +14466,7 @@
 
 fi
 
-echo "$as_me:14062: checking if poll really works" >&5
+echo "$as_me:14469: checking if poll really works" >&5
 echo $ECHO_N "checking if poll really works... $ECHO_C" >&6
 if test "${cf_cv_working_poll+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14069,7 +14476,7 @@
   cf_cv_working_poll=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 14072 "configure"
+#line 14479 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -14090,15 +14497,15 @@
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:14093: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14500: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14096: \$? = $ac_status" >&5
+  echo "$as_me:14503: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:14098: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14505: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14101: \$? = $ac_status" >&5
+  echo "$as_me:14508: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_working_poll=yes
 else
@@ -14110,7 +14517,7 @@
 rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
-echo "$as_me:14113: result: $cf_cv_working_poll" >&5
+echo "$as_me:14520: result: $cf_cv_working_poll" >&5
 echo "${ECHO_T}$cf_cv_working_poll" >&6
 test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
 #define HAVE_WORKING_POLL 1
@@ -14118,7 +14525,7 @@
 
 # special check for test/ditto.c
 
-echo "$as_me:14121: checking for openpty in -lutil" >&5
+echo "$as_me:14528: checking for openpty in -lutil" >&5
 echo $ECHO_N "checking for openpty in -lutil... $ECHO_C" >&6
 if test "${ac_cv_lib_util_openpty+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14126,7 +14533,7 @@
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lutil  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
-#line 14129 "configure"
+#line 14536 "configure"
 #include "confdefs.h"
 
 /* Override any gcc2 internal prototype to avoid an error.  */
@@ -14145,16 +14552,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:14148: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14555: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14151: \$? = $ac_status" >&5
+  echo "$as_me:14558: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:14154: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14561: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14157: \$? = $ac_status" >&5
+  echo "$as_me:14564: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   ac_cv_lib_util_openpty=yes
 else
@@ -14165,7 +14572,7 @@
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:14168: result: $ac_cv_lib_util_openpty" >&5
+echo "$as_me:14575: result: $ac_cv_lib_util_openpty" >&5
 echo "${ECHO_T}$ac_cv_lib_util_openpty" >&6
 if test $ac_cv_lib_util_openpty = yes; then
   cf_cv_lib_util=yes
@@ -14173,7 +14580,7 @@
   cf_cv_lib_util=no
 fi
 
-echo "$as_me:14176: checking for openpty header" >&5
+echo "$as_me:14583: checking for openpty header" >&5
 echo $ECHO_N "checking for openpty header... $ECHO_C" >&6
 if test "${cf_cv_func_openpty+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14184,7 +14591,7 @@
     for cf_header in pty.h libutil.h util.h
     do
     cat >conftest.$ac_ext <<_ACEOF
-#line 14187 "configure"
+#line 14594 "configure"
 #include "confdefs.h"
 
 #include <$cf_header>
@@ -14201,16 +14608,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:14204: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14611: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14207: \$? = $ac_status" >&5
+  echo "$as_me:14614: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:14210: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14617: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14213: \$? = $ac_status" >&5
+  echo "$as_me:14620: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
         cf_cv_func_openpty=$cf_header
@@ -14228,7 +14635,7 @@
     LIBS="$cf_save_LIBS"
 
 fi
-echo "$as_me:14231: result: $cf_cv_func_openpty" >&5
+echo "$as_me:14638: result: $cf_cv_func_openpty" >&5
 echo "${ECHO_T}$cf_cv_func_openpty" >&6
 
 if test "$cf_cv_func_openpty" != no ; then
@@ -14274,13 +14681,13 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 			  cat >conftest.$ac_ext <<_ACEOF
-#line 14283 "configure"
+#line 14690 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int
@@ -14292,16 +14699,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14295: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14702: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:14298: \$? = $ac_status" >&5
+  echo "$as_me:14705: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:14301: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14708: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14304: \$? = $ac_status" >&5
+  echo "$as_me:14711: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
@@ -14318,13 +14725,13 @@
 		if test "$cf_have_incdir" = no ; then
 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-echo "${as_me-configure}:14321: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me-configure}:14728: testing adding $cf_add_incdir to include-path ..." 1>&5
 
-		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -14352,7 +14759,7 @@
       if test "$cf_have_libdir" = no ; then
         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
 
-echo "${as_me-configure}:14355: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me-configure}:14762: testing adding $cf_add_libdir to library-path ..." 1>&5
 
         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
       fi
@@ -14363,23 +14770,23 @@
     fi
 esac
 
-echo "$as_me:14366: checking for db.h" >&5
+echo "$as_me:14773: checking for db.h" >&5
 echo $ECHO_N "checking for db.h... $ECHO_C" >&6
 if test "${ac_cv_header_db_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 14372 "configure"
+#line 14779 "configure"
 #include "confdefs.h"
 #include <db.h>
 _ACEOF
-if { (eval echo "$as_me:14376: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:14783: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:14382: \$? = $ac_status" >&5
+  echo "$as_me:14789: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
@@ -14398,11 +14805,11 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:14401: result: $ac_cv_header_db_h" >&5
+echo "$as_me:14808: result: $ac_cv_header_db_h" >&5
 echo "${ECHO_T}$ac_cv_header_db_h" >&6
 if test $ac_cv_header_db_h = yes; then
 
-echo "$as_me:14405: checking for version of db" >&5
+echo "$as_me:14812: checking for version of db" >&5
 echo $ECHO_N "checking for version of db... $ECHO_C" >&6
 if test "${cf_cv_hashed_db_version+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14413,10 +14820,10 @@
 for cf_db_version in 1 2 3 4 5
 do
 
-echo "${as_me-configure}:14416: testing checking for db version $cf_db_version ..." 1>&5
+echo "${as_me-configure}:14823: testing checking for db version $cf_db_version ..." 1>&5
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 14419 "configure"
+#line 14826 "configure"
 #include "confdefs.h"
 
 $ac_includes_default
@@ -14446,16 +14853,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14449: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:14856: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:14452: \$? = $ac_status" >&5
+  echo "$as_me:14859: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:14455: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14862: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14458: \$? = $ac_status" >&5
+  echo "$as_me:14865: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 	cf_cv_hashed_db_version=$cf_db_version
@@ -14469,16 +14876,16 @@
 done
 
 fi
-echo "$as_me:14472: result: $cf_cv_hashed_db_version" >&5
+echo "$as_me:14879: result: $cf_cv_hashed_db_version" >&5
 echo "${ECHO_T}$cf_cv_hashed_db_version" >&6
 
 if test "$cf_cv_hashed_db_version" = unknown ; then
-	{ { echo "$as_me:14476: error: Cannot determine version of db" >&5
+	{ { echo "$as_me:14883: error: Cannot determine version of db" >&5
 echo "$as_me: error: Cannot determine version of db" >&2;}
    { (exit 1); exit 1; }; }
 else
 
-echo "$as_me:14481: checking for db libraries" >&5
+echo "$as_me:14888: checking for db libraries" >&5
 echo $ECHO_N "checking for db libraries... $ECHO_C" >&6
 if test "${cf_cv_hashed_db_libs+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14492,10 +14899,10 @@
 		LIBS="-l$cf_db_libs $LIBS"
 	fi
 
-echo "${as_me-configure}:14495: testing checking for library "$cf_db_libs" ..." 1>&5
+echo "${as_me-configure}:14902: testing checking for library "$cf_db_libs" ..." 1>&5
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 14498 "configure"
+#line 14905 "configure"
 #include "confdefs.h"
 
 $ac_includes_default
@@ -14550,16 +14957,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:14553: \"$ac_link\"") >&5
+if { (eval echo "$as_me:14960: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14556: \$? = $ac_status" >&5
+  echo "$as_me:14963: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:14559: \"$ac_try\"") >&5
+  { (eval echo "$as_me:14966: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14562: \$? = $ac_status" >&5
+  echo "$as_me:14969: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 	if test -n "$cf_db_libs" ; then
@@ -14579,11 +14986,11 @@
 done
 
 fi
-echo "$as_me:14582: result: $cf_cv_hashed_db_libs" >&5
+echo "$as_me:14989: result: $cf_cv_hashed_db_libs" >&5
 echo "${ECHO_T}$cf_cv_hashed_db_libs" >&6
 
 	if test "$cf_cv_hashed_db_libs" = unknown ; then
-		{ { echo "$as_me:14586: error: Cannot determine library for db" >&5
+		{ { echo "$as_me:14993: error: Cannot determine library for db" >&5
 echo "$as_me: error: Cannot determine library for db" >&2;}
    { (exit 1); exit 1; }; }
 	elif test "$cf_cv_hashed_db_libs" != default ; then
@@ -14593,7 +15000,7 @@
 
 else
 
-	{ { echo "$as_me:14596: error: Cannot find db.h" >&5
+	{ { echo "$as_me:15003: error: Cannot find db.h" >&5
 echo "$as_me: error: Cannot find db.h" >&2;}
    { (exit 1); exit 1; }; }
 
@@ -14608,7 +15015,7 @@
 
 # Just in case, check if the C compiler has a bool type.
 
-echo "$as_me:14611: checking if we should include stdbool.h" >&5
+echo "$as_me:15018: checking if we should include stdbool.h" >&5
 echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
 
 if test "${cf_cv_header_stdbool_h+set}" = set; then
@@ -14616,7 +15023,7 @@
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 14619 "configure"
+#line 15026 "configure"
 #include "confdefs.h"
 
 int
@@ -14628,23 +15035,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14631: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15038: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:14634: \$? = $ac_status" >&5
+  echo "$as_me:15041: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:14637: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15044: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14640: \$? = $ac_status" >&5
+  echo "$as_me:15047: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=0
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 14647 "configure"
+#line 15054 "configure"
 #include "confdefs.h"
 
 #ifndef __BEOS__
@@ -14660,16 +15067,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14663: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15070: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:14666: \$? = $ac_status" >&5
+  echo "$as_me:15073: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:14669: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15076: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14672: \$? = $ac_status" >&5
+  echo "$as_me:15079: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=1
 else
@@ -14683,13 +15090,13 @@
 fi
 
 if test "$cf_cv_header_stdbool_h" = 1
-then	echo "$as_me:14686: result: yes" >&5
+then	echo "$as_me:15093: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else	echo "$as_me:14688: result: no" >&5
+else	echo "$as_me:15095: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:14692: checking for builtin bool type" >&5
+echo "$as_me:15099: checking for builtin bool type" >&5
 echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
 
 if test "${cf_cv_cc_bool_type+set}" = set; then
@@ -14697,7 +15104,7 @@
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 14700 "configure"
+#line 15107 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -14712,16 +15119,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:14715: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15122: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:14718: \$? = $ac_status" >&5
+  echo "$as_me:15125: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:14721: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15128: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14724: \$? = $ac_status" >&5
+  echo "$as_me:15131: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cc_bool_type=1
 else
@@ -14734,9 +15141,9 @@
 fi
 
 if test "$cf_cv_cc_bool_type" = 1
-then	echo "$as_me:14737: result: yes" >&5
+then	echo "$as_me:15144: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else	echo "$as_me:14739: result: no" >&5
+else	echo "$as_me:15146: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -14758,7 +15165,7 @@
 	cf_stdcpp_libname=stdc++
 	;;
 esac
-echo "$as_me:14761: checking for library $cf_stdcpp_libname" >&5
+echo "$as_me:15168: checking for library $cf_stdcpp_libname" >&5
 echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6
 if test "${cf_cv_libstdcpp+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14767,7 +15174,7 @@
 	cf_save="$LIBS"
 	LIBS="$LIBS -l$cf_stdcpp_libname"
 cat >conftest.$ac_ext <<_ACEOF
-#line 14770 "configure"
+#line 15177 "configure"
 #include "confdefs.h"
 
 #include <strstream.h>
@@ -14783,16 +15190,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:14786: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15193: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14789: \$? = $ac_status" >&5
+  echo "$as_me:15196: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:14792: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15199: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14795: \$? = $ac_status" >&5
+  echo "$as_me:15202: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_libstdcpp=yes
 else
@@ -14804,12 +15211,12 @@
 	LIBS="$cf_save"
 
 fi
-echo "$as_me:14807: result: $cf_cv_libstdcpp" >&5
+echo "$as_me:15214: result: $cf_cv_libstdcpp" >&5
 echo "${ECHO_T}$cf_cv_libstdcpp" >&6
 test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
 fi
 
-	echo "$as_me:14812: checking whether $CXX understands -c and -o together" >&5
+	echo "$as_me:15219: checking whether $CXX understands -c and -o together" >&5
 echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6
 if test "${cf_cv_prog_CXX_c_o+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -14825,15 +15232,15 @@
 # We do the test twice because some compilers refuse to overwrite an
 # existing .o file with -o, though they will create one.
 ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-if { (eval echo "$as_me:14828: \"$ac_try\"") >&5
+if { (eval echo "$as_me:15235: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14831: \$? = $ac_status" >&5
+  echo "$as_me:15238: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-  test -f conftest2.$ac_objext && { (eval echo "$as_me:14833: \"$ac_try\"") >&5
+  test -f conftest2.$ac_objext && { (eval echo "$as_me:15240: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14836: \$? = $ac_status" >&5
+  echo "$as_me:15243: \$? = $ac_status" >&5
   (exit $ac_status); };
 then
   eval cf_cv_prog_CXX_c_o=yes
@@ -14844,10 +15251,10 @@
 
 fi
 if test $cf_cv_prog_CXX_c_o = yes; then
-  echo "$as_me:14847: result: yes" >&5
+  echo "$as_me:15254: result: yes" >&5
 echo "${ECHO_T}yes" >&6
 else
-  echo "$as_me:14850: result: no" >&5
+  echo "$as_me:15257: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -14867,12 +15274,12 @@
 	;;
 esac
 if test "$GXX" = yes; then
-	echo "$as_me:14870: checking for lib$cf_gpp_libname" >&5
+	echo "$as_me:15277: checking for lib$cf_gpp_libname" >&5
 echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
 	cf_save="$LIBS"
 	LIBS="$LIBS -l$cf_gpp_libname"
 	cat >conftest.$ac_ext <<_ACEOF
-#line 14875 "configure"
+#line 15282 "configure"
 #include "confdefs.h"
 
 #include <$cf_gpp_libname/builtin.h>
@@ -14886,16 +15293,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:14889: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15296: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14892: \$? = $ac_status" >&5
+  echo "$as_me:15299: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:14895: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15302: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14898: \$? = $ac_status" >&5
+  echo "$as_me:15305: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cxx_library=yes
 	 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
@@ -14914,7 +15321,7 @@
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 14917 "configure"
+#line 15324 "configure"
 #include "confdefs.h"
 
 #include <builtin.h>
@@ -14928,16 +15335,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:14931: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15338: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:14934: \$? = $ac_status" >&5
+  echo "$as_me:15341: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:14937: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15344: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:14940: \$? = $ac_status" >&5
+  echo "$as_me:15347: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cxx_library=yes
 	 CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
@@ -14954,7 +15361,7 @@
 fi
 rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
 	LIBS="$cf_save"
-	echo "$as_me:14957: result: $cf_cxx_library" >&5
+	echo "$as_me:15364: result: $cf_cxx_library" >&5
 echo "${ECHO_T}$cf_cxx_library" >&6
 fi
 
@@ -14970,7 +15377,7 @@
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 ac_main_return=return
-echo "$as_me:14973: checking how to run the C++ preprocessor" >&5
+echo "$as_me:15380: checking how to run the C++ preprocessor" >&5
 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
 if test -z "$CXXCPP"; then
   if test "${ac_cv_prog_CXXCPP+set}" = set; then
@@ -14987,18 +15394,18 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 14990 "configure"
+#line 15397 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:14995: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:15402: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:15001: \$? = $ac_status" >&5
+  echo "$as_me:15408: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -15021,17 +15428,17 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 15024 "configure"
+#line 15431 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:15028: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:15435: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:15034: \$? = $ac_status" >&5
+  echo "$as_me:15441: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -15068,7 +15475,7 @@
 else
   ac_cv_prog_CXXCPP=$CXXCPP
 fi
-echo "$as_me:15071: result: $CXXCPP" >&5
+echo "$as_me:15478: result: $CXXCPP" >&5
 echo "${ECHO_T}$CXXCPP" >&6
 ac_preproc_ok=false
 for ac_cxx_preproc_warn_flag in '' yes
@@ -15078,18 +15485,18 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line 15081 "configure"
+#line 15488 "configure"
 #include "confdefs.h"
 #include <assert.h>
                      Syntax error
 _ACEOF
-if { (eval echo "$as_me:15086: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:15493: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:15092: \$? = $ac_status" >&5
+  echo "$as_me:15499: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -15112,17 +15519,17 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line 15115 "configure"
+#line 15522 "configure"
 #include "confdefs.h"
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:15119: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:15526: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:15125: \$? = $ac_status" >&5
+  echo "$as_me:15532: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -15150,7 +15557,7 @@
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:15153: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+  { { echo "$as_me:15560: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
    { (exit 1); exit 1; }; }
 fi
@@ -15165,23 +15572,23 @@
 for ac_header in iostream typeinfo
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:15168: checking for $ac_header" >&5
+echo "$as_me:15575: checking for $ac_header" >&5
 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 15174 "configure"
+#line 15581 "configure"
 #include "confdefs.h"
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:15178: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:15585: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
   ac_status=$?
   egrep -v '^ *\+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:15184: \$? = $ac_status" >&5
+  echo "$as_me:15591: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_cxx_preproc_warn_flag
@@ -15200,7 +15607,7 @@
 fi
 rm -f conftest.err conftest.$ac_ext
 fi
-echo "$as_me:15203: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:15610: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<EOF
@@ -15211,10 +15618,10 @@
 done
 
     if test x"$ac_cv_header_iostream" = xyes ; then
-        echo "$as_me:15214: checking if iostream uses std-namespace" >&5
+        echo "$as_me:15621: checking if iostream uses std-namespace" >&5
 echo $ECHO_N "checking if iostream uses std-namespace... $ECHO_C" >&6
         cat >conftest.$ac_ext <<_ACEOF
-#line 15217 "configure"
+#line 15624 "configure"
 #include "confdefs.h"
 
 #include <iostream>
@@ -15231,16 +15638,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:15234: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15641: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:15237: \$? = $ac_status" >&5
+  echo "$as_me:15644: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:15240: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15647: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:15243: \$? = $ac_status" >&5
+  echo "$as_me:15650: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_iostream_namespace=yes
 else
@@ -15249,7 +15656,7 @@
 cf_iostream_namespace=no
 fi
 rm -f conftest.$ac_objext conftest.$ac_ext
-        echo "$as_me:15252: result: $cf_iostream_namespace" >&5
+        echo "$as_me:15659: result: $cf_iostream_namespace" >&5
 echo "${ECHO_T}$cf_iostream_namespace" >&6
         if test "$cf_iostream_namespace" = yes ; then
             cat >>confdefs.h <<\EOF
@@ -15259,7 +15666,7 @@
         fi
     fi
 
-echo "$as_me:15262: checking if we should include stdbool.h" >&5
+echo "$as_me:15669: checking if we should include stdbool.h" >&5
 echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
 
 if test "${cf_cv_header_stdbool_h+set}" = set; then
@@ -15267,7 +15674,7 @@
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 15270 "configure"
+#line 15677 "configure"
 #include "confdefs.h"
 
 int
@@ -15279,23 +15686,23 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:15282: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15689: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:15285: \$? = $ac_status" >&5
+  echo "$as_me:15692: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:15288: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15695: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:15291: \$? = $ac_status" >&5
+  echo "$as_me:15698: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=0
 else
   echo "$as_me: failed program was:" >&5
 cat conftest.$ac_ext >&5
 cat >conftest.$ac_ext <<_ACEOF
-#line 15298 "configure"
+#line 15705 "configure"
 #include "confdefs.h"
 
 #ifndef __BEOS__
@@ -15311,16 +15718,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:15314: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15721: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:15317: \$? = $ac_status" >&5
+  echo "$as_me:15724: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:15320: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15727: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:15323: \$? = $ac_status" >&5
+  echo "$as_me:15730: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_header_stdbool_h=1
 else
@@ -15334,13 +15741,13 @@
 fi
 
 if test "$cf_cv_header_stdbool_h" = 1
-then	echo "$as_me:15337: result: yes" >&5
+then	echo "$as_me:15744: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else	echo "$as_me:15339: result: no" >&5
+else	echo "$as_me:15746: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:15343: checking for builtin bool type" >&5
+echo "$as_me:15750: checking for builtin bool type" >&5
 echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
 
 if test "${cf_cv_builtin_bool+set}" = set; then
@@ -15348,7 +15755,7 @@
 else
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 15351 "configure"
+#line 15758 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -15363,16 +15770,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:15366: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15773: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:15369: \$? = $ac_status" >&5
+  echo "$as_me:15776: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:15372: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15779: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:15375: \$? = $ac_status" >&5
+  echo "$as_me:15782: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_builtin_bool=1
 else
@@ -15385,13 +15792,13 @@
 fi
 
 if test "$cf_cv_builtin_bool" = 1
-then	echo "$as_me:15388: result: yes" >&5
+then	echo "$as_me:15795: result: yes" >&5
 echo "${ECHO_T}yes" >&6
-else	echo "$as_me:15390: result: no" >&5
+else	echo "$as_me:15797: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-echo "$as_me:15394: checking for size of bool" >&5
+echo "$as_me:15801: checking for size of bool" >&5
 echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
 if test "${cf_cv_type_of_bool+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15402,7 +15809,7 @@
   cf_cv_type_of_bool=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 15405 "configure"
+#line 15812 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -15444,15 +15851,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:15447: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15854: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:15450: \$? = $ac_status" >&5
+  echo "$as_me:15857: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:15452: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15859: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:15455: \$? = $ac_status" >&5
+  echo "$as_me:15862: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_type_of_bool=`cat cf_test.out`
 		 if test -z "$cf_cv_type_of_bool"; then
@@ -15470,18 +15877,18 @@
 fi
 
 	rm -f cf_test.out
-echo "$as_me:15473: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:15880: result: $cf_cv_type_of_bool" >&5
 echo "${ECHO_T}$cf_cv_type_of_bool" >&6
 if test "$cf_cv_type_of_bool" = unknown ; then
 	case .$NCURSES_BOOL in #(vi
 	.auto|.) NCURSES_BOOL=unsigned;;
 	esac
-	{ echo "$as_me:15479: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+	{ echo "$as_me:15886: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
 echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
 	cf_cv_type_of_bool=$NCURSES_BOOL
 fi
 
-echo "$as_me:15484: checking for special defines needed for etip.h" >&5
+echo "$as_me:15891: checking for special defines needed for etip.h" >&5
 echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6
 cf_save_CXXFLAGS="$CXXFLAGS"
 cf_result="none"
@@ -15493,7 +15900,7 @@
 	test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
 	test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
 cat >conftest.$ac_ext <<_ACEOF
-#line 15496 "configure"
+#line 15903 "configure"
 #include "confdefs.h"
 
 #include <etip.h.in>
@@ -15507,16 +15914,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:15510: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:15917: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:15513: \$? = $ac_status" >&5
+  echo "$as_me:15920: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:15516: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15923: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:15519: \$? = $ac_status" >&5
+  echo "$as_me:15926: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
 
 	test -n "$cf_math" && cat >>confdefs.h <<EOF
@@ -15537,12 +15944,12 @@
 rm -f conftest.$ac_objext conftest.$ac_ext
 done
 done
-echo "$as_me:15540: result: $cf_result" >&5
+echo "$as_me:15947: result: $cf_result" >&5
 echo "${ECHO_T}$cf_result" >&6
 CXXFLAGS="$cf_save_CXXFLAGS"
 
 if test -n "$CXX"; then
-echo "$as_me:15545: checking if $CXX accepts parameter initialization" >&5
+echo "$as_me:15952: checking if $CXX accepts parameter initialization" >&5
 echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6
 if test "${cf_cv_cpp_param_init+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15559,7 +15966,7 @@
   cf_cv_cpp_param_init=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 15562 "configure"
+#line 15969 "configure"
 #include "confdefs.h"
 
 class TEST {
@@ -15578,15 +15985,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:15581: \"$ac_link\"") >&5
+if { (eval echo "$as_me:15988: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:15584: \$? = $ac_status" >&5
+  echo "$as_me:15991: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:15586: \"$ac_try\"") >&5
+  { (eval echo "$as_me:15993: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:15589: \$? = $ac_status" >&5
+  echo "$as_me:15996: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cpp_param_init=yes
 else
@@ -15605,7 +16012,7 @@
 ac_main_return=return
 
 fi
-echo "$as_me:15608: result: $cf_cv_cpp_param_init" >&5
+echo "$as_me:16015: result: $cf_cv_cpp_param_init" >&5
 echo "${ECHO_T}$cf_cv_cpp_param_init" >&6
 fi
 test "$cf_cv_cpp_param_init" = yes && cat >>confdefs.h <<\EOF
@@ -15614,7 +16021,7 @@
 
 if test -n "$CXX"; then
 
-echo "$as_me:15617: checking if $CXX accepts static_cast" >&5
+echo "$as_me:16024: checking if $CXX accepts static_cast" >&5
 echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6
 if test "${cf_cv_cpp_static_cast+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15628,7 +16035,7 @@
 ac_main_return=return
 
 	cat >conftest.$ac_ext <<_ACEOF
-#line 15631 "configure"
+#line 16038 "configure"
 #include "confdefs.h"
 
 class NCursesPanel
@@ -15672,16 +16079,16 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:15675: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:16082: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:15678: \$? = $ac_status" >&5
+  echo "$as_me:16085: \$? = $ac_status" >&5
   (exit $ac_status); } &&
          { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:15681: \"$ac_try\"") >&5
+  { (eval echo "$as_me:16088: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:15684: \$? = $ac_status" >&5
+  echo "$as_me:16091: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_cpp_static_cast=yes
 else
@@ -15699,7 +16106,7 @@
 ac_main_return=return
 
 fi
-echo "$as_me:15702: result: $cf_cv_cpp_static_cast" >&5
+echo "$as_me:16109: result: $cf_cv_cpp_static_cast" >&5
 echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6
 
 fi
@@ -15709,12 +16116,12 @@
 EOF
 
 	CXX_AR='$(AR)'
-	CXX_AR_OPTS='$(AR_OPTS)'
+	CXX_ARFLAGS='$(ARFLAGS)'
 	case $cf_cv_system_name in #(vi
 	irix*) #(vi
 	    if test "$GXX" != yes ; then
 		CXX_AR='$(CXX)'
-		CXX_AR_OPTS='-ar -o'
+		CXX_ARFLAGS='-ar -o'
 	    fi
 	    ;;
 	sco3.2v5*) #(vi
@@ -15723,7 +16130,7 @@
 	solaris2*)
 	    if test "$GXX" != yes ; then
 		CXX_AR='$(CXX)'
-		CXX_AR_OPTS='-xar -o'
+		CXX_ARFLAGS='-xar -o'
 	    fi
 	    ;;
 	esac
@@ -15747,7 +16154,7 @@
 	else
 		if test "$cf_cv_header_stdbool_h" = 1 ; then
 
-echo "$as_me:15750: checking for size of bool" >&5
+echo "$as_me:16157: checking for size of bool" >&5
 echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
 if test "${cf_cv_type_of_bool+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15758,7 +16165,7 @@
   cf_cv_type_of_bool=unknown
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line 15761 "configure"
+#line 16168 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -15800,15 +16207,15 @@
 
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:15803: \"$ac_link\"") >&5
+if { (eval echo "$as_me:16210: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:15806: \$? = $ac_status" >&5
+  echo "$as_me:16213: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:15808: \"$ac_try\"") >&5
+  { (eval echo "$as_me:16215: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:15811: \$? = $ac_status" >&5
+  echo "$as_me:16218: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   cf_cv_type_of_bool=`cat cf_test.out`
 		 if test -z "$cf_cv_type_of_bool"; then
@@ -15826,25 +16233,25 @@
 fi
 
 	rm -f cf_test.out
-echo "$as_me:15829: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:16236: result: $cf_cv_type_of_bool" >&5
 echo "${ECHO_T}$cf_cv_type_of_bool" >&6
 if test "$cf_cv_type_of_bool" = unknown ; then
 	case .$NCURSES_BOOL in #(vi
 	.auto|.) NCURSES_BOOL=unsigned;;
 	esac
-	{ echo "$as_me:15835: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+	{ echo "$as_me:16242: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
 echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
 	cf_cv_type_of_bool=$NCURSES_BOOL
 fi
 
 		else
-			echo "$as_me:15841: checking for fallback type of bool" >&5
+			echo "$as_me:16248: checking for fallback type of bool" >&5
 echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6
 			case "$host_cpu" in #(vi
 			i?86)	cf_cv_type_of_bool=char	;; #(vi
 			*)	cf_cv_type_of_bool=int	;;
 			esac
-			echo "$as_me:15847: result: $cf_cv_type_of_bool" >&5
+			echo "$as_me:16254: result: $cf_cv_type_of_bool" >&5
 echo "${ECHO_T}$cf_cv_type_of_bool" >&6
 		fi
 	fi
@@ -15873,7 +16280,7 @@
 
 if test "$cf_with_ada" != "no" ; then
     if test "$with_libtool" != "no"; then
-	{ echo "$as_me:15876: WARNING: libtool does not support Ada - disabling feature" >&5
+	{ echo "$as_me:16283: WARNING: libtool does not support Ada - disabling feature" >&5
 echo "$as_me: WARNING: libtool does not support Ada - disabling feature" >&2;}
 	cf_with_ada=no
     fi
@@ -15883,7 +16290,7 @@
 cf_ada_make=gnatmake
 # Extract the first word of "$cf_ada_make", so it can be a program name with args.
 set dummy $cf_ada_make; ac_word=$2
-echo "$as_me:15886: checking for $ac_word" >&5
+echo "$as_me:16293: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_gnat_exists+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15898,7 +16305,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_gnat_exists="yes"
-echo "$as_me:15901: found $ac_dir/$ac_word" >&5
+echo "$as_me:16308: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -15907,10 +16314,10 @@
 fi
 gnat_exists=$ac_cv_prog_gnat_exists
 if test -n "$gnat_exists"; then
-  echo "$as_me:15910: result: $gnat_exists" >&5
+  echo "$as_me:16317: result: $gnat_exists" >&5
 echo "${ECHO_T}$gnat_exists" >&6
 else
-  echo "$as_me:15913: result: no" >&5
+  echo "$as_me:16320: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -15918,11 +16325,11 @@
    cf_ada_make=
 else
 
-echo "$as_me:15921: checking for gnat version" >&5
+echo "$as_me:16328: checking for gnat version" >&5
 echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
 cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
   sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
-echo "$as_me:15925: result: $cf_gnat_version" >&5
+echo "$as_me:16332: result: $cf_gnat_version" >&5
 echo "${ECHO_T}$cf_gnat_version" >&6
 
 case $cf_gnat_version in
@@ -15945,7 +16352,7 @@
 
    # Extract the first word of "m4", so it can be a program name with args.
 set dummy m4; ac_word=$2
-echo "$as_me:15948: checking for $ac_word" >&5
+echo "$as_me:16355: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_prog_M4_exists+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -15960,7 +16367,7 @@
   test -z "$ac_dir" && ac_dir=.
   $as_executable_p "$ac_dir/$ac_word" || continue
 ac_cv_prog_M4_exists="yes"
-echo "$as_me:15963: found $ac_dir/$ac_word" >&5
+echo "$as_me:16370: found $ac_dir/$ac_word" >&5
 break
 done
 
@@ -15969,10 +16376,10 @@
 fi
 M4_exists=$ac_cv_prog_M4_exists
 if test -n "$M4_exists"; then
-  echo "$as_me:15972: result: $M4_exists" >&5
+  echo "$as_me:16379: result: $M4_exists" >&5
 echo "${ECHO_T}$M4_exists" >&6
 else
-  echo "$as_me:15975: result: no" >&5
+  echo "$as_me:16382: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -15981,7 +16388,7 @@
       echo Ada95 binding required program m4 not found. Ada95 binding disabled.
    fi
    if test "$cf_cv_prog_gnat_correct" = yes; then
-      echo "$as_me:15984: checking if GNAT works" >&5
+      echo "$as_me:16391: checking if GNAT works" >&5
 echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
 
 rm -f conftest*
@@ -16009,14 +16416,14 @@
 fi
 rm -f conftest*
 
-      echo "$as_me:16012: result: $cf_cv_prog_gnat_correct" >&5
+      echo "$as_me:16419: result: $cf_cv_prog_gnat_correct" >&5
 echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
    fi
 fi
 if test	"$cf_cv_prog_gnat_correct" = yes; then
    ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
 
-   echo "$as_me:16019: checking if GNAT pragma Unreferenced works" >&5
+   echo "$as_me:16426: checking if GNAT pragma Unreferenced works" >&5
 echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
 
 rm -f conftest*
@@ -16043,7 +16450,7 @@
 fi
 rm -f conftest*
 
-   echo "$as_me:16046: result: $cf_cv_pragma_unreferenced" >&5
+   echo "$as_me:16453: result: $cf_cv_pragma_unreferenced" >&5
 echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
 
    # if the pragma is supported, use it (needed in the Trace code).
@@ -16096,7 +16503,7 @@
   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:16099: error: expected a pathname, not \"$withval\"" >&5
+  { { echo "$as_me:16506: error: expected a pathname, not \"$withval\"" >&5
 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -16138,7 +16545,7 @@
   withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  { { echo "$as_me:16141: error: expected a pathname, not \"$withval\"" >&5
+  { { echo "$as_me:16548: error: expected a pathname, not \"$withval\"" >&5
 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
    { (exit 1); exit 1; }; }
   ;;
@@ -16163,7 +16570,7 @@
 ### chooses to split module lists into libraries.
 ###
 ### (see CF_LIB_RULES).
-echo "$as_me:16166: checking for library subsets" >&5
+echo "$as_me:16573: checking for library subsets" >&5
 echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
 LIB_SUBSETS=
 
@@ -16176,7 +16583,17 @@
 	fi
 fi
 
-LIB_SUBSETS="${LIB_SUBSETS}termlib"
+LIB_SUBSETS="${LIB_SUBSETS}termlib+port_drivers"
+
+case $cf_cv_system_name in #(vi
+*mingw32*) #(vi
+	LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con"
+	;;
+*) #(vi
+	LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo"
+	;;
+esac
+
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
 if test "$with_termlib" != no ; then
 	LIB_SUBSETS="${LIB_SUBSETS} "
@@ -16185,17 +16602,18 @@
 fi
 
 LIB_SUBSETS="${LIB_SUBSETS}base"
+
 test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
 
-echo "$as_me:16191: result: $LIB_SUBSETS" >&5
+echo "$as_me:16609: result: $LIB_SUBSETS" >&5
 echo "${ECHO_T}$LIB_SUBSETS" >&6
 
 ### Construct the list of include-directories to be generated
 
-CPPFLAGS="-I. -I../include $CPPFLAGS"
+CPPFLAGS="$CPPFLAGS -I. -I../include"
 if test "$srcdir" != "."; then
-	CPPFLAGS="-I\${srcdir}/../include $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS -I\${srcdir}/../include"
 fi
 if test "$GCC" != yes; then
 	CPPFLAGS="$CPPFLAGS -I\${includedir}"
@@ -16226,7 +16644,7 @@
 fi
 
 ### Build up pieces for makefile rules
-echo "$as_me:16229: checking default library suffix" >&5
+echo "$as_me:16647: checking default library suffix" >&5
 echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
 
 	case $DFT_LWR_MODEL in
@@ -16237,46 +16655,50 @@
 	shared)  DFT_ARG_SUFFIX=''   ;;
 	esac
 	test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
-echo "$as_me:16240: result: $DFT_ARG_SUFFIX" >&5
+echo "$as_me:16658: result: $DFT_ARG_SUFFIX" >&5
 echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
 
-echo "$as_me:16243: checking default library-dependency suffix" >&5
+echo "$as_me:16661: checking default library-dependency suffix" >&5
 echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
 
-	case $DFT_LWR_MODEL in
-	libtool)
+	case $DFT_LWR_MODEL in #(vi
+	libtool) #(vi
 		DFT_LIB_SUFFIX='.la'
 		DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
 		;;
-	normal)
+	normal) #(vi
 		DFT_LIB_SUFFIX='.a'
 		DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
 		;;
-	debug)
+	debug) #(vi
 		DFT_LIB_SUFFIX='_g.a'
 		DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
 		;;
-	profile)
+	profile) #(vi
 		DFT_LIB_SUFFIX='_p.a'
 		DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
 		;;
-	shared)
+	shared) #(vi
 		case $cf_cv_system_name in
-		cygwin*)
+		aix[56]*) #(vi
+			DFT_LIB_SUFFIX='.a'
+			DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
+			;;
+		cygwin*) #(vi
 			DFT_LIB_SUFFIX='.dll'
 			DFT_DEP_SUFFIX='.dll.a'
 			;;
-		darwin*)
+		darwin*) #(vi
 			DFT_LIB_SUFFIX='.dylib'
 			DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
 			;;
-		hpux*)
+		hpux*) #(vi
 			case $target in
-			ia64*)
+			ia64*) #(vi
 				DFT_LIB_SUFFIX='.so'
 				DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
 				;;
-			*)
+			*) #(vi
 				DFT_LIB_SUFFIX='.sl'
 				DFT_DEP_SUFFIX=$DFT_LIB_SUFFIX
 				;;
@@ -16289,10 +16711,10 @@
 	esac
 	test -n "$LIB_SUFFIX" && DFT_LIB_SUFFIX="${LIB_SUFFIX}${DFT_LIB_SUFFIX}"
 	test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}"
-echo "$as_me:16292: result: $DFT_DEP_SUFFIX" >&5
+echo "$as_me:16714: result: $DFT_DEP_SUFFIX" >&5
 echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
 
-echo "$as_me:16295: checking default object directory" >&5
+echo "$as_me:16717: checking default object directory" >&5
 echo $ECHO_N "checking default object directory... $ECHO_C" >&6
 
 	case $DFT_LWR_MODEL in
@@ -16308,51 +16730,55 @@
 			DFT_OBJ_SUBDIR='obj_s' ;;
 		esac
 	esac
-echo "$as_me:16311: result: $DFT_OBJ_SUBDIR" >&5
+echo "$as_me:16733: result: $DFT_OBJ_SUBDIR" >&5
 echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
 
 # libtool thinks it can make c++ shared libraries (perhaps only g++)
 if test "$cf_with_cxx" = yes ; then
-echo "$as_me:16316: checking c++ library-dependency suffix" >&5
+echo "$as_me:16738: checking c++ library-dependency suffix" >&5
 echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
 if test "$with_libtool" != "no"; then
 	CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
 else
 
-	case normal in
-	libtool)
+	case normal in #(vi
+	libtool) #(vi
 		CXX_LIB_SUFFIX='.la'
 		CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
 		;;
-	normal)
+	normal) #(vi
 		CXX_LIB_SUFFIX='.a'
 		CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
 		;;
-	debug)
+	debug) #(vi
 		CXX_LIB_SUFFIX='_g.a'
 		CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
 		;;
-	profile)
+	profile) #(vi
 		CXX_LIB_SUFFIX='_p.a'
 		CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
 		;;
-	shared)
+	shared) #(vi
 		case $cf_cv_system_name in
-		cygwin*)
+		aix[56]*) #(vi
+			CXX_LIB_SUFFIX='.a'
+			CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
+			;;
+		cygwin*) #(vi
 			CXX_LIB_SUFFIX='.dll'
 			CXX_DEP_SUFFIX='.dll.a'
 			;;
-		darwin*)
+		darwin*) #(vi
 			CXX_LIB_SUFFIX='.dylib'
 			CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
 			;;
-		hpux*)
+		hpux*) #(vi
 			case $target in
-			ia64*)
+			ia64*) #(vi
 				CXX_LIB_SUFFIX='.so'
 				CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
 				;;
-			*)
+			*) #(vi
 				CXX_LIB_SUFFIX='.sl'
 				CXX_DEP_SUFFIX=$CXX_LIB_SUFFIX
 				;;
@@ -16366,7 +16792,7 @@
 	test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
 	test -n "$LIB_SUFFIX" && CXX_DEP_SUFFIX="${LIB_SUFFIX}${CXX_DEP_SUFFIX}"
 fi
-echo "$as_me:16369: result: $CXX_LIB_SUFFIX" >&5
+echo "$as_me:16795: result: $CXX_LIB_SUFFIX" >&5
 echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
 
 fi
@@ -16431,6 +16857,8 @@
 		TEST_ARGS="${TEST_DEPS}"
 		TEST_ARG2="${TEST_DEP2}"
 		TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+		TICS_LIST="$SHLIB_LIST $TEST_ARGS"
+		SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS"
 	else
 		TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
 		TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
@@ -16480,7 +16908,7 @@
 
 if test "$GCC" = yes ; then
 	case $cf_cv_system_name in #(
-	OS/2*|os2*|aix[45]*) 	#( vi
+	OS/2*|os2*|aix[4]*|solaris2.1[0-9]|darwin*) 	#( vi
 		LDFLAGS_STATIC=
 		LDFLAGS_SHARED=
 		;;
@@ -16491,7 +16919,7 @@
     esac
 else
 	case $cf_cv_system_name in #(
-	aix[45]*) 	#( from ld manpage
+	aix[456]*) 	#( from ld manpage
 		LDFLAGS_STATIC=-bstatic
 		LDFLAGS_SHARED=-bdynamic
 		;;
@@ -16519,12 +16947,12 @@
 	;;
 esac
 
-echo "$as_me:16522: checking where we will install curses.h" >&5
+echo "$as_me:16950: checking where we will install curses.h" >&5
 echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6
 test "$with_overwrite" = no && \
 test "x$includedir" = 'x${prefix}/include' && \
 	includedir='${prefix}/include/ncurses'${LIB_SUFFIX}
-echo "$as_me:16527: result: $includedir" >&5
+echo "$as_me:16955: result: $includedir" >&5
 echo "${ECHO_T}$includedir" >&6
 
 ### Resolve a conflict between normal and wide-curses by forcing applications
@@ -16532,10 +16960,11 @@
 if test "$with_overwrite" != no ; then
 if test "$NCURSES_LIBUTF8" = 1 ; then
 	NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
-	{ echo "$as_me:16535: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
+	{ echo "$as_me:16963: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
 echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;}
 fi
 fi
+WITH_OVERWRITE=$with_overwrite
 
 # used to separate tack out of the tree
 NCURSES_TREE=
@@ -16548,7 +16977,7 @@
 ### Construct the list of subdirectories for which we'll customize makefiles
 ### with the appropriate compile-rules.
 
-echo "$as_me:16551: checking for src modules" >&5
+echo "$as_me:16980: checking for src modules" >&5
 echo $ECHO_N "checking for src modules... $ECHO_C" >&6
 
 # dependencies and linker-arguments for test-programs
@@ -16611,13 +17040,17 @@
 		fi
 	fi
 done
-echo "$as_me:16614: result: $cf_cv_src_modules" >&5
+echo "$as_me:17043: result: $cf_cv_src_modules" >&5
 echo "${ECHO_T}$cf_cv_src_modules" >&6
 
 TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
 TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
 
-SRC_SUBDIRS="man include"
+SRC_SUBDIRS=
+if test "x$cf_with_manpages" != xno ; then
+	SRC_SUBDIRS="$SRC_SUBDIRS man"
+fi
+SRC_SUBDIRS="$SRC_SUBDIRS include"
 for cf_dir in $cf_cv_src_modules
 do
 	SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir"
@@ -16628,8 +17061,8 @@
 
 ADA_SUBDIRS=
 if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then
-   SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
-   ADA_SUBDIRS="gen src samples"
+	SRC_SUBDIRS="$SRC_SUBDIRS Ada95"
+	ADA_SUBDIRS="gen src samples"
 fi
 
 SUB_MAKEFILES=
@@ -16639,15 +17072,15 @@
 done
 
 if test -n "$ADA_SUBDIRS"; then
-   for cf_dir in $ADA_SUBDIRS
-   do
-      SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
-   done
+	for cf_dir in $ADA_SUBDIRS
+	do
+		SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile"
+	done
 
 fi
 
 if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
-   SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
+   SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in"
 fi
 
 DIRS_TO_MAKE="lib"
@@ -16680,7 +17113,7 @@
 done
 
 cat >>confdefs.h <<EOF
-#define NCURSES_PATHSEP '$PATHSEP'
+#define NCURSES_PATHSEP '$PATH_SEPARATOR'
 EOF
 
 cat >>confdefs.h <<EOF
@@ -16749,7 +17182,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -16760,18 +17193,18 @@
 ### If we're building with rpath, try to link non-standard libs that way too.
 if test "$DFT_LWR_MODEL" = "shared"; then
 
-echo "$as_me:16763: checking for updated LDFLAGS" >&5
+echo "$as_me:17196: checking for updated LDFLAGS" >&5
 echo $ECHO_N "checking for updated LDFLAGS... $ECHO_C" >&6
 if test -n "$LDFLAGS" ; then
-echo "$as_me:16766: result: maybe" >&5
+echo "$as_me:17199: result: maybe" >&5
 echo "${ECHO_T}maybe" >&6
 test -n "$verbose" && echo "	...checking LDFLAGS $LDFLAGS" 1>&6
 
-echo "${as_me-configure}:16770: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
+echo "${as_me-configure}:17203: testing ...checking LDFLAGS $LDFLAGS ..." 1>&5
 
 test -n "$verbose" && echo "	...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
 
-echo "${as_me-configure}:16774: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+echo "${as_me-configure}:17207: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
 
 case "$EXTRA_LDFLAGS" in #(vi
 -Wl,-rpath,*) #(vi
@@ -16793,7 +17226,7 @@
 	do
 		test -n "$verbose" && echo "	Filtering $cf_rpath_src" 1>&6
 
-echo "${as_me-configure}:16796: testing Filtering $cf_rpath_src ..." 1>&5
+echo "${as_me-configure}:17229: testing Filtering $cf_rpath_src ..." 1>&5
 
 		case $cf_rpath_src in #(vi
 		-L*) #(vi
@@ -16804,7 +17237,7 @@
 			fi
 			test -n "$verbose" && echo "	...Filter $cf_rpath_tmp" 1>&6
 
-echo "${as_me-configure}:16807: testing ...Filter $cf_rpath_tmp ..." 1>&5
+echo "${as_me-configure}:17240: testing ...Filter $cf_rpath_tmp ..." 1>&5
 
 			EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS"
 			;;
@@ -16814,15 +17247,15 @@
 	LDFLAGS=$cf_rpath_dst
 	test -n "$verbose" && echo "	...checked LDFLAGS $LDFLAGS" 1>&6
 
-echo "${as_me-configure}:16817: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
+echo "${as_me-configure}:17250: testing ...checked LDFLAGS $LDFLAGS ..." 1>&5
 
 	test -n "$verbose" && echo "	...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS" 1>&6
 
-echo "${as_me-configure}:16821: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
+echo "${as_me-configure}:17254: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5
 
 fi
 else
-echo "$as_me:16825: result: no" >&5
+echo "$as_me:17258: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
@@ -16849,8 +17282,18 @@
 fi
 
 ################################################################################
-test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+test "$use_database" = yes && \
+SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+
 SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
+
+if test x"$enable_pc_files" = xyes ; then \
+SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
+MAKE_PC_FILES=
+else
+MAKE_PC_FILES="#"
+fi
+
 ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/termcap.h include/unctrl.h $SUB_MAKEFILES Makefile"
 ac_config_commands="$ac_config_commands default"
 cat >confcache <<\_ACEOF
@@ -16932,7 +17375,7 @@
 : ${CONFIG_STATUS=./config.status}
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:16935: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:17378: creating $CONFIG_STATUS" >&5
 echo "$as_me: creating $CONFIG_STATUS" >&6;}
 cat >$CONFIG_STATUS <<_ACEOF
 #! $SHELL
@@ -17064,7 +17507,7 @@
 cat >>$CONFIG_STATUS <<EOF
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.52.20080325,
+configured by $0, generated by GNU Autoconf 2.52.20081225,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
 Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
@@ -17108,7 +17551,7 @@
     echo "$ac_cs_version"; exit 0 ;;
   --he | --h)
     # Conflict between --help and --header
-    { { echo "$as_me:17111: error: ambiguous option: $1
+    { { echo "$as_me:17554: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&5
 echo "$as_me: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&2;}
@@ -17127,7 +17570,7 @@
     ac_need_defaults=false;;
 
   # This is an error.
-  -*) { { echo "$as_me:17130: error: unrecognized option: $1
+  -*) { { echo "$as_me:17573: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&5
 echo "$as_me: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&2;}
@@ -17146,7 +17589,7 @@
 ## Running config.status.  ##
 ## ----------------------- ##
 
-This file was extended by $as_me 2.52.20080325, executed with
+This file was extended by $as_me 2.52.20081225, executed with
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
   CONFIG_LINKS    = $CONFIG_LINKS
@@ -17181,13 +17624,13 @@
 NCURSES_PATCH="$NCURSES_PATCH"
 SRC_SUBDIRS="$SRC_SUBDIRS"
 TERMINFO="$TERMINFO"
+TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
+TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
+TICS_NAME="$TICS_NAME"
 TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
 TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
 TINFO_NAME="$TINFO_NAME"
 TINFO_SUFFIX="$TINFO_SUFFIX"
-TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
-TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
-TICS_NAME="$TICS_NAME"
 WITH_CURSES_H="$with_curses_h"
 WITH_ECHO="$with_echo"
 WITH_OVERWRITE="$with_overwrite"
@@ -17206,6 +17649,7 @@
 cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
 cf_cv_system_name="$cf_cv_system_name"
 cf_with_cxx_binding="$cf_with_cxx_binding"
+cf_with_manpages="$cf_with_manpages"
 host="$host"
 target="$target"
 
@@ -17224,7 +17668,7 @@
   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
   "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
   "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
-  *) { { echo "$as_me:17227: error: invalid argument: $ac_config_target" >&5
+  *) { { echo "$as_me:17671: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
@@ -17349,6 +17793,8 @@
 s,@LINT@,$LINT,;t t
 s,@LINT_OPTS@,$LINT_OPTS,;t t
 s,@LN_S@,$LN_S,;t t
+s,@PKG_CONFIG@,$PKG_CONFIG,;t t
+s,@PKG_CONFIG_LIBDIR@,$PKG_CONFIG_LIBDIR,;t t
 s,@SET_MAKE@,$SET_MAKE,;t t
 s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t
 s,@MAKE_UPPER_TAGS@,$MAKE_UPPER_TAGS,;t t
@@ -17359,7 +17805,7 @@
 s,@ac_ct_LD@,$ac_ct_LD,;t t
 s,@AR@,$AR,;t t
 s,@ac_ct_AR@,$ac_ct_AR,;t t
-s,@AR_OPTS@,$AR_OPTS,;t t
+s,@ARFLAGS@,$ARFLAGS,;t t
 s,@DESTDIR@,$DESTDIR,;t t
 s,@BUILD_CC@,$BUILD_CC,;t t
 s,@BUILD_CPP@,$BUILD_CPP,;t t
@@ -17371,6 +17817,7 @@
 s,@BUILD_OBJEXT@,$BUILD_OBJEXT,;t t
 s,@cf_list_models@,$cf_list_models,;t t
 s,@LIBTOOL@,$LIBTOOL,;t t
+s,@LT_UNDEF@,$LT_UNDEF,;t t
 s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t
 s,@LIBTOOL_OPTS@,$LIBTOOL_OPTS,;t t
 s,@LIB_CREATE@,$LIB_CREATE,;t t
@@ -17392,6 +17839,7 @@
 s,@CXX_G_OPT@,$CXX_G_OPT,;t t
 s,@LD_MODEL@,$LD_MODEL,;t t
 s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t
+s,@LD_RPATH_OPT@,$LD_RPATH_OPT,;t t
 s,@LD_SHARED_OPTS@,$LD_SHARED_OPTS,;t t
 s,@MK_SHARED_LIB@,$MK_SHARED_LIB,;t t
 s,@LINK_PROGS@,$LINK_PROGS,;t t
@@ -17401,7 +17849,6 @@
 s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t
 s,@INSTALL_LIB@,$INSTALL_LIB,;t t
 s,@TERMINFO_SRC@,$TERMINFO_SRC,;t t
-s,@PATHSEP@,$PATHSEP,;t t
 s,@FALLBACK_LIST@,$FALLBACK_LIST,;t t
 s,@WHICH_XTERM@,$WHICH_XTERM,;t t
 s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t
@@ -17425,6 +17872,9 @@
 s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t
 s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
 s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
+s,@GENERATED_EXT_FUNCS@,$GENERATED_EXT_FUNCS,;t t
+s,@NCURSES_SP_FUNCS@,$NCURSES_SP_FUNCS,;t t
+s,@GENERATED_SP_FUNCS@,$GENERATED_SP_FUNCS,;t t
 s,@NCURSES_CONST@,$NCURSES_CONST,;t t
 s,@NCURSES_EXT_COLORS@,$NCURSES_EXT_COLORS,;t t
 s,@NCURSES_MOUSE_VERSION@,$NCURSES_MOUSE_VERSION,;t t
@@ -17435,6 +17885,7 @@
 s,@cf_cv_enable_opaque@,$cf_cv_enable_opaque,;t t
 s,@NCURSES_OPAQUE@,$NCURSES_OPAQUE,;t t
 s,@NCURSES_SIZE_T@,$NCURSES_SIZE_T,;t t
+s,@NCURSES_WRAP_PREFIX@,$NCURSES_WRAP_PREFIX,;t t
 s,@ECHO_LINK@,$ECHO_LINK,;t t
 s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
 s,@EXTRA_CXXFLAGS@,$EXTRA_CXXFLAGS,;t t
@@ -17449,7 +17900,7 @@
 s,@CXXCPP@,$CXXCPP,;t t
 s,@CXXLDFLAGS@,$CXXLDFLAGS,;t t
 s,@CXX_AR@,$CXX_AR,;t t
-s,@CXX_AR_OPTS@,$CXX_AR_OPTS,;t t
+s,@CXX_ARFLAGS@,$CXX_ARFLAGS,;t t
 s,@CXXLIBS@,$CXXLIBS,;t t
 s,@USE_CXX_BOOL@,$USE_CXX_BOOL,;t t
 s,@gnat_exists@,$gnat_exists,;t t
@@ -17493,6 +17944,7 @@
 s,@HAVE_TCGETATTR@,$HAVE_TCGETATTR,;t t
 s,@HAVE_TERMIO_H@,$HAVE_TERMIO_H,;t t
 s,@HAVE_TERMIOS_H@,$HAVE_TERMIOS_H,;t t
+s,@MAKE_PC_FILES@,$MAKE_PC_FILES,;t t
 CEOF
 
 EOF
@@ -17607,7 +18059,7 @@
   esac
 
   if test x"$ac_file" != x-; then
-    { echo "$as_me:17610: creating $ac_file" >&5
+    { echo "$as_me:18062: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
     rm -f "$ac_file"
   fi
@@ -17625,7 +18077,7 @@
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:17628: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:18080: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -17638,7 +18090,7 @@
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:17641: error: cannot find input file: $f" >&5
+           { { echo "$as_me:18093: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
@@ -17704,7 +18156,7 @@
   * )   ac_file_in=$ac_file.in ;;
   esac
 
-  test x"$ac_file" != x- && { echo "$as_me:17707: creating $ac_file" >&5
+  test x"$ac_file" != x- && { echo "$as_me:18159: creating $ac_file" >&5
 echo "$as_me: creating $ac_file" >&6;}
 
   # First look for the input files in the build tree, otherwise in the
@@ -17715,7 +18167,7 @@
       -) echo $tmp/stdin ;;
       [\\/$]*)
          # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:17718: error: cannot find input file: $f" >&5
+         test -f "$f" || { { echo "$as_me:18170: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          echo $f;;
@@ -17728,7 +18180,7 @@
            echo $srcdir/$f
          else
            # /dev/null tree
-           { { echo "$as_me:17731: error: cannot find input file: $f" >&5
+           { { echo "$as_me:18183: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
          fi;;
@@ -17786,7 +18238,7 @@
   rm -f $tmp/in
   if test x"$ac_file" != x-; then
     if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
-      { echo "$as_me:17789: $ac_file is unchanged" >&5
+      { echo "$as_me:18241: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
       ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
@@ -17873,40 +18325,44 @@
 		for cf_item in $cf_LIST_MODELS
 		do
 
-	case $cf_item in
-	libtool)
+	case $cf_item in #(vi
+	libtool) #(vi
 		cf_suffix='.la'
 		cf_depsuf=$cf_suffix
 		;;
-	normal)
+	normal) #(vi
 		cf_suffix='.a'
 		cf_depsuf=$cf_suffix
 		;;
-	debug)
+	debug) #(vi
 		cf_suffix='_g.a'
 		cf_depsuf=$cf_suffix
 		;;
-	profile)
+	profile) #(vi
 		cf_suffix='_p.a'
 		cf_depsuf=$cf_suffix
 		;;
-	shared)
+	shared) #(vi
 		case $cf_cv_system_name in
-		cygwin*)
+		aix[56]*) #(vi
+			cf_suffix='.a'
+			cf_depsuf=$cf_suffix
+			;;
+		cygwin*) #(vi
 			cf_suffix='.dll'
 			cf_depsuf='.dll.a'
 			;;
-		darwin*)
+		darwin*) #(vi
 			cf_suffix='.dylib'
 			cf_depsuf=$cf_suffix
 			;;
-		hpux*)
+		hpux*) #(vi
 			case $target in
-			ia64*)
+			ia64*) #(vi
 				cf_suffix='.so'
 				cf_depsuf=$cf_suffix
 				;;
-			*)
+			*) #(vi
 				cf_suffix='.sl'
 				cf_depsuf=$cf_suffix
 				;;
@@ -18020,40 +18476,44 @@
 
 cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-	case $cf_item in
-	libtool)
+	case $cf_item in #(vi
+	libtool) #(vi
 		cf_suffix='.la'
 		cf_depsuf=$cf_suffix
 		;;
-	normal)
+	normal) #(vi
 		cf_suffix='.a'
 		cf_depsuf=$cf_suffix
 		;;
-	debug)
+	debug) #(vi
 		cf_suffix='_g.a'
 		cf_depsuf=$cf_suffix
 		;;
-	profile)
+	profile) #(vi
 		cf_suffix='_p.a'
 		cf_depsuf=$cf_suffix
 		;;
-	shared)
+	shared) #(vi
 		case $cf_cv_system_name in
-		cygwin*)
+		aix[56]*) #(vi
+			cf_suffix='.a'
+			cf_depsuf=$cf_suffix
+			;;
+		cygwin*) #(vi
 			cf_suffix='.dll'
 			cf_depsuf='.dll.a'
 			;;
-		darwin*)
+		darwin*) #(vi
 			cf_suffix='.dylib'
 			cf_depsuf=$cf_suffix
 			;;
-		hpux*)
+		hpux*) #(vi
 			case $target in
-			ia64*)
+			ia64*) #(vi
 				cf_suffix='.so'
 				cf_depsuf=$cf_suffix
 				;;
-			*)
+			*) #(vi
 				cf_suffix='.sl'
 				cf_depsuf=$cf_suffix
 				;;
@@ -18234,18 +18694,28 @@
 install.libs uninstall.libs \\
 install.data uninstall.data ::
 $MAKE_TERMINFO	cd misc && \${MAKE} \${CF_MFLAGS} \$@
+CF_EOF
+
+if test "x$cf_with_manpages" = xyes; then
+cat >> Makefile <<CF_EOF
 
 install.man \\
 uninstall.man ::
 	cd man && \${MAKE} \${CF_MFLAGS} \$@
+CF_EOF
+fi
+
+cat >> Makefile <<CF_EOF
 
 distclean ::
 	rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
 	rm -f headers.sh headers.sed mk_shared_lib.sh
+	rm -f edit_man.* man_alias.*
 	rm -rf \${DIRS_TO_MAKE}
 CF_EOF
 
 # Special case: tack's manpage lives in its own directory.
+if test "x$cf_with_manpages" = xyes; then
 if test -d tack ; then
 if test -f $srcdir/$tack.h; then
 cat >> Makefile <<CF_EOF
@@ -18256,6 +18726,7 @@
 CF_EOF
 fi
 fi
+fi
 
 rm -f headers.sed headers.sh
 
diff -Naur ncurses-5.7.orig/configure.in ncurses-5.7/configure.in
--- ncurses-5.7.orig/configure.in	2008-10-18 07:53:32.000000000 -0700
+++ ncurses-5.7/configure.in	2009-06-05 14:01:30.000000000 -0700
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2008,2009 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -28,14 +28,14 @@
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: configure.in,v 1.454 2008/10/18 14:53:32 tom Exp $
+dnl $Id: configure.in,v 1.470 2009/03/28 18:22:39 Charles.Wilson 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.13.20020210)
-AC_REVISION($Revision: 1.454 $)
+AC_REVISION($Revision: 1.470 $)
 AC_INIT(ncurses/base/lib_initscr.c)
 AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
 
@@ -122,6 +122,13 @@
 	[cf_with_ada=yes])
 AC_MSG_RESULT($cf_with_ada)
 
+AC_MSG_CHECKING(if you want to install manpages)
+AC_ARG_WITH(manpages,
+	[  --without-manpages      suppress install of manpages],
+	[cf_with_manpages=$withval],
+	[cf_with_manpages=yes])
+AC_MSG_RESULT($cf_with_manpages)
+
 AC_MSG_CHECKING(if you want to build programs such as tic)
 AC_ARG_WITH(progs,
 	[  --without-progs         suppress build with programs (e.g., tic)],
@@ -152,6 +159,31 @@
 
 AC_SYS_LONG_FILE_NAMES
 
+# if we find pkg-config, check if we should install the ".pc" files.
+CF_PKG_CONFIG
+
+if test "$PKG_CONFIG" != no ; then
+	AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
+
+	# Leave this as something that can be overridden in the environment.
+	if test -z "$PKG_CONFIG_LIBDIR" ; then
+		PKG_CONFIG_LIBDIR=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`/lib/pkgconfig
+	fi
+
+	if test -d "$PKG_CONFIG_LIBDIR" ; then
+		AC_ARG_ENABLE(pc-files,
+			[  --enable-pc-files       generate and install .pc files for pkg-config],
+			[enable_pc_files=$enableval],
+			[enable_pc_files=no])
+		AC_MSG_RESULT($enable_pc_files)
+	else
+		AC_MSG_RESULT(no)
+		AC_MSG_WARN(did not find library $PKG_CONFIG_LIBDIR)
+		enable_pc_files=no
+	fi
+fi
+AC_SUBST(PKG_CONFIG_LIBDIR)
+
 AC_MSG_CHECKING(if we should assume mixed-case filenames)
 AC_ARG_ENABLE(mixed-case,
 	[  --enable-mixed-case     tic should assume mixed-case filenames],
@@ -176,7 +208,7 @@
 AC_CHECK_TOOL(RANLIB, ranlib, ':')
 AC_CHECK_TOOL(LD, ld, ld)
 AC_CHECK_TOOL(AR, ar, ar)
-CF_SUBST(archiver options,AR_OPTS,rv)
+CF_AR_FLAGS
 
 dnl Special option for use by system-builders: the install-prefix is used to
 dnl adjust the location into which the actual install is done, so that an
@@ -807,7 +839,7 @@
 test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)
 
 ###############################################################################
-CF_MAN_PAGES([ captoinfo clear infocmp infotocap tic toe tput ])
+CF_MAN_PAGES([ captoinfo clear infocmp infotocap tabs tic toe tput tset ])
 
 ###############################################################################
 CF_HELP_MESSAGE(Extensions:)
@@ -828,10 +860,30 @@
 	AC_DEFINE(HAVE_USE_DEFAULT_COLORS)
 	AC_DEFINE(HAVE_WRESIZE)
 	AC_DEFINE(NCURSES_EXT_FUNCS)
+	GENERATED_EXT_FUNCS=generated
 else
 	NCURSES_EXT_FUNCS=0
+	GENERATED_EXT_FUNCS=
 fi
 AC_SUBST(NCURSES_EXT_FUNCS)
+AC_SUBST(GENERATED_EXT_FUNCS)
+
+AC_MSG_CHECKING(if you want to build with experimental SCREEN extensions)
+AC_ARG_ENABLE(sp-funcs,
+	[  --enable-sp-funcs       disable experimental SCREEN-extensions],
+	[with_sp_funcs=$enableval],
+	[with_sp_funcs=no])
+AC_MSG_RESULT($with_sp_funcs)
+if test "$with_sp_funcs" = yes ; then
+	NCURSES_SP_FUNCS=1
+	AC_DEFINE(NCURSES_SP_FUNCS)
+	GENERATED_SP_FUNCS=generated
+else
+	NCURSES_SP_FUNCS=0
+	GENERATED_SP_FUNCS=
+fi
+AC_SUBST(NCURSES_SP_FUNCS)
+AC_SUBST(GENERATED_SP_FUNCS)
 
 ###   use option --enable-const to turn on use of const beyond that in XSI.
 AC_MSG_CHECKING(for extended use of const keyword)
@@ -1024,11 +1076,11 @@
 	cf_cv_enable_opaque="NCURSES_INTERNALS"
 	NCURSES_OPAQUE=1
 	NCURSES_SIZE_T=int
-    if test $cf_cv_weak_symbols = yes ; then
-        CF_REMOVE_LIB(LIBS,$LIBS,pthread)
-    else
-        LIB_SUFFIX="t${LIB_SUFFIX}"
-    fi
+	if test $cf_cv_weak_symbols = yes ; then
+		CF_REMOVE_LIB(LIBS,$LIBS,pthread)
+	else
+		LIB_SUFFIX="t${LIB_SUFFIX}"
+	fi
 	AC_DEFINE(USE_REENTRANT)
 	CF_NCURSES_ABI_6
 else
@@ -1042,6 +1094,20 @@
 AC_SUBST(NCURSES_OPAQUE)
 AC_SUBST(NCURSES_SIZE_T)
 
+### Allow using a different wrap-prefix
+if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then
+	AC_MSG_CHECKING(for prefix used to wrap public variables)
+	AC_ARG_WITH(wrap-prefix,
+		[  --with-wrap-prefix=XXX  override prefix used for public variables],
+		[NCURSES_WRAP_PREFIX=$withval],
+		[NCURSES_WRAP_PREFIX=_nc_])
+	AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
+else
+	NCURSES_WRAP_PREFIX=_nc_
+fi
+AC_SUBST(NCURSES_WRAP_PREFIX)
+AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX")
+
 AC_MSG_CHECKING(if you want experimental safe-sprintf code)
 AC_ARG_ENABLE(safe-sprintf,
 	[  --enable-safe-sprintf   compile with experimental safe-sprintf code],
@@ -1165,12 +1231,18 @@
 AC_SUBST(ADA_TRACE)
 
 ###	Checks for libraries.
+case $cf_cv_system_name in #(vi
+*mingw32*) #(vi
+	;;
+*)
 AC_CHECK_FUNC(gettimeofday,
 	AC_DEFINE(HAVE_GETTIMEOFDAY),[
 
 AC_CHECK_LIB(bsd, gettimeofday,
 	AC_DEFINE(HAVE_GETTIMEOFDAY)
 	LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday
+	;;
+esac
 
 CF_MATH_LIB(MATH_LIB,sin(x))
 AC_SUBST(MATH_LIB)
@@ -1354,12 +1426,12 @@
 	CF_CPP_STATIC_CAST
 
 	CXX_AR='$(AR)'
-	CXX_AR_OPTS='$(AR_OPTS)'
+	CXX_ARFLAGS='$(ARFLAGS)'
 	case $cf_cv_system_name in #(vi
 	irix*) #(vi
 	    if test "$GXX" != yes ; then
 		CXX_AR='$(CXX)'
-		CXX_AR_OPTS='-ar -o'
+		CXX_ARFLAGS='-ar -o'
 	    fi
 	    ;;
 	sco3.2v5*) #(vi
@@ -1368,13 +1440,13 @@
 	solaris2*)
 	    if test "$GXX" != yes ; then
 		CXX_AR='$(CXX)'
-		CXX_AR_OPTS='-xar -o'
+		CXX_ARFLAGS='-xar -o'
 	    fi
 	    ;;
 	esac
 	AC_SUBST(CXXLDFLAGS)
 	AC_SUBST(CXX_AR)
-	AC_SUBST(CXX_AR_OPTS)
+	AC_SUBST(CXX_ARFLAGS)
 else
 	cf_cxx_library=no
 	cf_cv_builtin_bool=1
@@ -1552,7 +1624,17 @@
 	fi
 fi
 
-LIB_SUBSETS="${LIB_SUBSETS}termlib"
+LIB_SUBSETS="${LIB_SUBSETS}termlib+port_drivers"
+
+case $cf_cv_system_name in #(vi
+*mingw32*) #(vi
+	LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con"
+	;;
+*) #(vi
+	LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo"
+	;;
+esac
+
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
 if test "$with_termlib" != no ; then
 	LIB_SUBSETS="${LIB_SUBSETS} "
@@ -1561,6 +1643,7 @@
 fi
 
 LIB_SUBSETS="${LIB_SUBSETS}base"
+
 test "$with_widec"     = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
 test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
 
@@ -1656,6 +1739,8 @@
 		TEST_ARGS="${TEST_DEPS}"
 		TEST_ARG2="${TEST_DEP2}"
 		TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+		TICS_LIST="$SHLIB_LIST $TEST_ARGS"
+		SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS"
 	else
 		TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
 		TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
@@ -1723,6 +1808,7 @@
 	AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h)
 fi
 fi
+WITH_OVERWRITE=$with_overwrite
 
 AC_SUBST(WITH_OVERWRITE)
 AC_SUBST(TICS_LIST)
@@ -1742,12 +1828,12 @@
 CF_SRC_MODULES($modules_to_build)
 
 if test "$cf_with_ada" != "no" && test "$cf_cv_prog_gnat_correct" != "no"; then
-   SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses-config"
+   SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${DFT_ARG_SUFFIX}-config:Ada95/gen/adacurses-config.in"
 fi
 
 CF_DIRS_TO_MAKE
 
-AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP')
+AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR')
 
 AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}")
 
@@ -1765,8 +1851,19 @@
 CF_SUBST_IF(["$ac_cv_header_termios_h" = yes], HAVE_TERMIOS_H, 1, 0)
 
 ################################################################################
-test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+test "$use_database" = yes && \
+SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
+
 SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in"
+
+if test x"$enable_pc_files" = xyes ; then \
+SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in"
+MAKE_PC_FILES=
+else
+MAKE_PC_FILES="#"
+fi
+AC_SUBST(MAKE_PC_FILES)
+
 AC_OUTPUT( \
 	include/MKterm.h.awk \
 	include/curses.head:include/curses.h.in \
@@ -1796,13 +1893,13 @@
 NCURSES_PATCH="$NCURSES_PATCH"
 SRC_SUBDIRS="$SRC_SUBDIRS"
 TERMINFO="$TERMINFO"
+TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
+TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
+TICS_NAME="$TICS_NAME"
 TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
 TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
 TINFO_NAME="$TINFO_NAME"
 TINFO_SUFFIX="$TINFO_SUFFIX"
-TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX"
-TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX"
-TICS_NAME="$TICS_NAME"
 WITH_CURSES_H="$with_curses_h"
 WITH_ECHO="$with_echo"
 WITH_OVERWRITE="$with_overwrite"
@@ -1821,6 +1918,7 @@
 cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix"
 cf_cv_system_name="$cf_cv_system_name"
 cf_with_cxx_binding="$cf_with_cxx_binding"
+cf_with_manpages="$cf_with_manpages"
 host="$host"
 target="$target"
 
diff -Naur ncurses-5.7.orig/dist.mk ncurses-5.7/dist.mk
--- ncurses-5.7.orig/dist.mk	2008-11-01 17:58:38.000000000 -0700
+++ ncurses-5.7/dist.mk	2009-06-05 14:01:55.000000000 -0700
@@ -25,7 +25,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: dist.mk,v 1.671 2008/11/02 00:58:38 tom Exp $
+# $Id: dist.mk,v 1.702 2009/05/30 13:36:52 tom Exp $
 # Makefile for creating ncurses distributions.
 #
 # This only needs to be used directly as a makefile by developers, but
@@ -37,7 +37,7 @@
 # These define the major/minor/patch versions of ncurses.
 NCURSES_MAJOR = 5
 NCURSES_MINOR = 7
-NCURSES_PATCH = 20081102
+NCURSES_PATCH = 20090530
 
 # We don't append the patch to the version, since this only applies to releases
 VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
diff -Naur ncurses-5.7.orig/form/fld_def.c ncurses-5.7/form/fld_def.c
--- ncurses-5.7.orig/form/fld_def.c	2007-10-13 12:29:58.000000000 -0700
+++ ncurses-5.7/form/fld_def.c	2009-06-05 14:01:18.000000000 -0700
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_def.c,v 1.36 2007/10/13 19:29:58 tom Exp $")
+MODULE_ID("$Id: fld_def.c,v 1.37 2009/02/28 19:00:51 juergen Exp $")
 
 /* this can't be readonly */
 static FIELD default_field =
@@ -252,8 +252,8 @@
   if (field->type != 0)
     {
       field->type->ref--;
+      _nc_Free_Argument(field->type, (TypeArgument *)(field->arg));
     }
-  _nc_Free_Argument(field->type, (TypeArgument *)(field->arg));
 }
 
 /*---------------------------------------------------------------------------
diff -Naur ncurses-5.7.orig/form/fld_newftyp.c ncurses-5.7/form/fld_newftyp.c
--- ncurses-5.7.orig/form/fld_newftyp.c	2007-10-13 12:30:55.000000000 -0700
+++ ncurses-5.7/form/fld_newftyp.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -32,9 +32,9 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: fld_newftyp.c,v 1.15 2007/10/13 19:30:55 tom Exp $")
+MODULE_ID("$Id: fld_newftyp.c,v 1.16 2009/04/11 21:27:33 tom Exp $")
 
-static FIELDTYPE const default_fieldtype =
+static FIELDTYPE default_fieldtype =
 {
   0,				/* status                                      */
   0L,				/* reference count                             */
@@ -49,7 +49,7 @@
   NULL				/* enumerate previous function                 */
 };
 
-NCURSES_EXPORT_VAR(const FIELDTYPE *)
+NCURSES_EXPORT_VAR(FIELDTYPE *)
 _nc_Default_FieldType = &default_fieldtype;
 
 /*---------------------------------------------------------------------------
diff -Naur ncurses-5.7.orig/form/form.priv.h ncurses-5.7/form/form.priv.h
--- ncurses-5.7.orig/form/form.priv.h	2008-09-08 13:29:05.000000000 -0700
+++ ncurses-5.7/form/form.priv.h	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,7 +30,7 @@
  *   Author:  Juergen Pfeifer, 1995,1997                                    *
  ****************************************************************************/
 
-/* $Id: form.priv.h,v 0.27 2008/09/08 20:29:05 tom Exp $ */
+/* $Id: form.priv.h,v 0.28 2009/04/11 21:27:04 tom Exp $ */
 
 #ifndef FORM_PRIV_H
 #define FORM_PRIV_H 1
@@ -62,6 +62,13 @@
 
 #include "form.h"
 
+	/***********************
+	*   Default objects    *
+	***********************/
+extern NCURSES_EXPORT_VAR(FORM *)      _nc_Default_Form;
+extern NCURSES_EXPORT_VAR(FIELD *)     _nc_Default_Field;
+extern NCURSES_EXPORT_VAR(FIELDTYPE *) _nc_Default_FieldType;
+
 /* form  status values */
 #define _OVLMODE         (0x04U) /* Form is in overlay mode                */
 #define _WINDOW_MODIFIED (0x10U) /* Current field window has been modified */
@@ -91,6 +98,11 @@
 #define Normalize_Field(field) \
   ((field) = (field != 0) ? (field) : _nc_Default_Field)
 
+#if NCURSES_SP_FUNCS
+#define Get_Form_Screen(form) \
+  ((form)->win ? _nc_screen_of((form->win)):CURRENT_SCREEN)
+#endif
+
 /* Retrieve forms window */
 #define Get_Form_Window(form) \
   ((form)->sub?(form)->sub:((form)->win?(form)->win:stdscr))
@@ -144,8 +156,6 @@
 
 #define C_ZEROS '\0'
 
-extern NCURSES_EXPORT_VAR(const FIELDTYPE *) _nc_Default_FieldType;
-
 extern NCURSES_EXPORT(TypeArgument *) _nc_Make_Argument (const FIELDTYPE*, va_list*, int*);
 extern NCURSES_EXPORT(TypeArgument *) _nc_Copy_Argument (const FIELDTYPE*, const TypeArgument*, int*);
 extern NCURSES_EXPORT(void) _nc_Free_Argument (const FIELDTYPE*, TypeArgument*);
@@ -176,8 +186,8 @@
 extern NCURSES_EXPORT(FIELD **)	    _nc_retrace_field_ptr (FIELD **);
 extern NCURSES_EXPORT(FIELD *)	    _nc_retrace_field (FIELD *);
 extern NCURSES_EXPORT(FIELDTYPE *)  _nc_retrace_field_type (FIELDTYPE *);
-extern NCURSES_EXPORT(FORM *)  _nc_retrace_form (FORM *);
-extern NCURSES_EXPORT(Form_Hook)  _nc_retrace_form_hook (Form_Hook);
+extern NCURSES_EXPORT(FORM *)       _nc_retrace_form (FORM *);
+extern NCURSES_EXPORT(Form_Hook)    _nc_retrace_form_hook (Form_Hook);
 
 #else /* !TRACE */
 
diff -Naur ncurses-5.7.orig/form/frm_driver.c ncurses-5.7/form/frm_driver.c
--- ncurses-5.7.orig/form/frm_driver.c	2008-10-18 09:25:00.000000000 -0700
+++ ncurses-5.7/form/frm_driver.c	2009-06-05 14:00:55.000000000 -0700
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_driver.c,v 1.88 2008/10/18 16:25:00 tom Exp $")
+MODULE_ID("$Id: frm_driver.c,v 1.89 2008/12/06 23:08:12 tom Exp $")
 
 /*----------------------------------------------------------------------------
   This is the core module of the form library. It contains the majority
@@ -4366,6 +4366,7 @@
       delwin(field->working);
       field->working = newpad(field->drows, field->dcols);
     }
+  len = Buffer_Length(field);
   wclear(field->working);
   mvwaddstr(field->working, 0, 0, value);
 
diff -Naur ncurses-5.7.orig/form/frm_sub.c ncurses-5.7/form/frm_sub.c
--- ncurses-5.7.orig/form/frm_sub.c	2004-12-11 14:13:39.000000000 -0800
+++ ncurses-5.7/form/frm_sub.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2009 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            *
@@ -27,12 +27,12 @@
  ****************************************************************************/
 
 /****************************************************************************
- *   Author:  Juergen Pfeifer, 1995,1997                                    *
+ *   Author:  Juergen Pfeifer, 1995-1997,2009                               *
  ****************************************************************************/
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_sub.c,v 1.9 2004/12/11 22:13:39 tom Exp $")
+MODULE_ID("$Id: frm_sub.c,v 1.10 2009/04/11 18:32:47 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -50,9 +50,18 @@
 
   if (form && (form->status & _POSTED))
     RETURN(E_POSTED);
-
-  Normalize_Form(form)->sub = win;
-  RETURN(E_OK);
+  else
+    {
+#if NCURSES_SP_FUNCS
+      FORM *f = Normalize_Form(form);
+
+      f->sub = win ? win : Get_Form_Screen(f)->_stdscr;
+      RETURN(E_OK);
+#else
+      Normalize_Form(form)->sub = win;
+      RETURN(E_OK);
+#endif
+    }
 }
 
 /*---------------------------------------------------------------------------
diff -Naur ncurses-5.7.orig/form/frm_win.c ncurses-5.7/form/frm_win.c
--- ncurses-5.7.orig/form/frm_win.c	2004-12-11 14:15:27.000000000 -0800
+++ ncurses-5.7/form/frm_win.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2009 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            *
@@ -32,7 +32,7 @@
 
 #include "form.priv.h"
 
-MODULE_ID("$Id: frm_win.c,v 1.13 2004/12/11 22:15:27 tom Exp $")
+MODULE_ID("$Id: frm_win.c,v 1.14 2009/04/18 18:38:57 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -50,9 +50,18 @@
 
   if (form && (form->status & _POSTED))
     RETURN(E_POSTED);
-
-  Normalize_Form(form)->win = win;
-  RETURN(E_OK);
+  else
+    {
+#if NCURSES_SP_FUNCS
+      FORM *f = Normalize_Form(form);
+
+      f->win = win ? win : Get_Form_Screen(f)->_stdscr;
+      RETURN(E_OK);
+#else
+      Normalize_Form(form)->win = win;
+      RETURN(E_OK);
+#endif
+    }
 }
 
 /*---------------------------------------------------------------------------
@@ -66,12 +75,18 @@
 NCURSES_EXPORT(WINDOW *)
 form_win(const FORM *form)
 {
+  WINDOW *result;
   const FORM *f;
 
   T((T_CALLED("form_win(%p)"), form));
 
   f = Normalize_Form(form);
-  returnWin(f->win ? f->win : stdscr);
+#if NCURSES_SP_FUNCS
+  result = (f->win ? f->win : Get_Form_Screen(f)->_stdscr);
+#else
+  result = (f->win ? f->win : stdscr);
+#endif
+  returnWin(result);
 }
 
 /* frm_win.c ends here */
diff -Naur ncurses-5.7.orig/form/Makefile.in ncurses-5.7/form/Makefile.in
--- ncurses-5.7.orig/form/Makefile.in	2007-04-28 07:56:11.000000000 -0700
+++ ncurses-5.7/form/Makefile.in	2009-06-05 14:01:30.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.47 2007/04/28 14:56:11 tom Exp $
+# $Id: Makefile.in,v 1.49 2009/03/28 18:22:39 Charles.Wilson Exp $
 ##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2009 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"), #
@@ -63,6 +63,7 @@
 LIBTOOL_LINK	= @LIB_LINK@
 LIBTOOL_INSTALL	= @LIB_INSTALL@
 LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+LT_UNDEF	= @LT_UNDEF@
 
 INSTALL		= @INSTALL@
 INSTALL_LIB	= @INSTALL@ @INSTALL_LIB@
@@ -70,7 +71,7 @@
 INSTALL_DATA	= @INSTALL_DATA@
 
 AR		= @AR@
-AR_OPTS		= @AR_OPTS@
+ARFLAGS		= @ARFLAGS@
 AWK		= @AWK@
 LD		= @LD@
 LN_S		= @LN_S@
diff -Naur ncurses-5.7.orig/include/capdefaults.c ncurses-5.7/include/capdefaults.c
--- ncurses-5.7.orig/include/capdefaults.c	2008-08-04 05:33:42.000000000 -0700
+++ ncurses-5.7/include/capdefaults.c	2009-06-05 14:01:16.000000000 -0700
@@ -32,7 +32,7 @@
  *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
-/* $Id: capdefaults.c,v 1.13 2008/08/04 12:33:42 tom Exp $ */
+/* $Id: capdefaults.c,v 1.14 2008/11/16 00:19:59 juergen Exp $ */
 
     /*
      * Compute obsolete capabilities.  The reason this is an include file is
@@ -44,11 +44,11 @@
      * postprocess_termcap().
      */
 {
-    char *sp;
+    char *strp;
     short capval;
 
 #define EXTRACT_DELAY(str) \
-    	(short) (sp = strchr(str, '*'), sp ? atoi(sp+1) : 0)
+    	(short) (strp = strchr(str, '*'), strp ? atoi(strp+1) : 0)
 
     /* current (4.4BSD) capabilities marked obsolete */
     if (VALID_STRING(carriage_return)
diff -Naur ncurses-5.7.orig/include/curses.h.in ncurses-5.7/include/curses.h.in
--- ncurses-5.7.orig/include/curses.h.in	2008-08-30 13:11:29.000000000 -0700
+++ ncurses-5.7/include/curses.h.in	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -32,7 +32,7 @@
  *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
-/* $Id: curses.h.in,v 1.187 2008/08/30 20:11:29 tom Exp $ */
+/* $Id: curses.h.in,v 1.201 2009/05/23 21:31:35 tom Exp $ */
 
 #ifndef __NCURSES_H
 #define __NCURSES_H
@@ -40,12 +40,6 @@
 #define CURSES 1
 #define CURSES_H 1
 
-/* This should be defined for the enhanced functionality to be visible.
- * However, some of the wide-character (enhanced) functionality is missing.
- * So we do not define it (yet).
-#define _XOPEN_CURSES 1
- */
-
 /* These are defined only in curses.h, and are used for conditional compiles */
 #define NCURSES_VERSION_MAJOR @NCURSES_MAJOR@
 #define NCURSES_VERSION_MINOR @NCURSES_MINOR@
@@ -110,6 +104,20 @@
 #endif
 
 /*
+ * The reentrant code relies on the opaque setting, but adds features.
+ */
+#ifndef NCURSES_REENTRANT
+#define NCURSES_REENTRANT @cf_cv_enable_reentrant@
+#endif
+
+/*
+ * For reentrant code, we map the various global variables into SCREEN by
+ * using functions to access them.
+ */
+#define NCURSES_PUBLIC_VAR(name) @NCURSES_WRAP_PREFIX@##name
+#define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void)
+
+/*
  * The internal type used for window dimensions.
  */
 #undef	NCURSES_SIZE_T
@@ -138,7 +146,6 @@
 #endif
 
 #include <stdio.h>
-#include <unctrl.h>
 #include <stdarg.h>	/* we need va_list */
 #ifdef _XOPEN_SOURCE_EXTENDED
 #include <stddef.h>	/* we want wchar_t */
@@ -224,9 +231,9 @@
 
 /* line graphics */
 
-#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@
+#if @BROKEN_LINKER@ || NCURSES_REENTRANT
 NCURSES_WRAPPED_VAR(chtype*, acs_map);
-#define acs_map (_nc_acs_map())
+#define acs_map NCURSES_PUBLIC_VAR(acs_map())
 #else
 extern NCURSES_EXPORT_VAR(chtype) acs_map[];
 #endif
@@ -511,6 +518,12 @@
 #endif
 
 /*
+ * Curses uses a helper function.  Define our type for this to simplify
+ * extending it for the sp-funcs feature.
+ */
+typedef int (*NCURSES_OUTC)(int);
+
+/*
  * Function prototypes.  This is the complete X/Open Curses list of required
  * functions.  Those marked `generated' will have sources generated from the
  * macro definitions later in this file, in order to satisfy XPG4.2
@@ -646,7 +659,7 @@
 extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int);		/* generated */
 extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype);		/* generated */
 extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int);	/* generated */
-extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *);		/* generated */
+extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *);	/* generated */
 extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *);		/* generated */
 extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...)	/* implemented */
 		GCC_PRINTFLIKE(4,5);
@@ -654,9 +667,9 @@
 		GCC_SCANFLIKE(4,5);
 extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int);	/* generated */
 extern NCURSES_EXPORT(int) napms (int);					/* implemented */
-extern NCURSES_EXPORT(WINDOW *) newpad (int,int);				/* implemented */
+extern NCURSES_EXPORT(WINDOW *) newpad (int,int);		       	/* implemented */
 extern NCURSES_EXPORT(SCREEN *) newterm (NCURSES_CONST char *,FILE *,FILE *);	/* implemented */
-extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int);			/* implemented */
+extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int);	       	/* implemented */
 extern NCURSES_EXPORT(int) nl (void);					/* implemented */
 extern NCURSES_EXPORT(int) nocbreak (void);				/* implemented */
 extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool);			/* implemented */
@@ -710,7 +723,7 @@
 extern NCURSES_EXPORT(int) slk_refresh (void);				/* implemented */
 extern NCURSES_EXPORT(int) slk_restore (void);				/* implemented */
 extern NCURSES_EXPORT(int) slk_set (int,const char *,int);		/* implemented */
-extern NCURSES_EXPORT(int) slk_touch (void);				/* implemented */
+extern NCURSES_EXPORT(int) slk_touch (void);	      	       		/* implemented */
 extern NCURSES_EXPORT(int) standout (void);				/* generated */
 extern NCURSES_EXPORT(int) standend (void);				/* generated */
 extern NCURSES_EXPORT(int) start_color (void);				/* implemented */
@@ -727,7 +740,7 @@
 extern NCURSES_EXPORT(int) untouchwin (WINDOW *);			/* generated */
 extern NCURSES_EXPORT(void) use_env (bool);				/* implemented */
 extern NCURSES_EXPORT(int) vidattr (chtype);				/* implemented */
-extern NCURSES_EXPORT(int) vidputs (chtype, int (*)(int));		/* implemented */
+extern NCURSES_EXPORT(int) vidputs (chtype, NCURSES_OUTC);		/* implemented */
 extern NCURSES_EXPORT(int) vline (chtype, int);				/* generated */
 extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *,va_list);	/* implemented */
 extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *,va_list);	/* generated */
@@ -856,23 +869,133 @@
  * These extensions provide access to information stored in the WINDOW even
  * when NCURSES_OPAQUE is set:
  */
-extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *);	/* generated */
-extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *);	/* generated */
-extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *);		/* generated */
-extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *);		/* generated */
-extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *);	/* generated */
-extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *);		/* generated */
-extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *);	/* generated */
-extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *);	/* generated */
-extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *);	/* generated */
-extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *);	/* generated */
-extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *);		/* generated */
-extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */
+extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *);	/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *);	/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *);		/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *);		/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *);	/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *);		/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *);	/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *);	/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *);	/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *);	/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *);		/* @GENERATED_EXT_FUNCS@ */
+extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* @GENERATED_EXT_FUNCS@ */
 
 #else
 #define curses_version() NCURSES_VERSION
 #endif
 
+/*
+ * Extra extension-functions, which pass a SCREEN pointer rather than using
+ * a global variable SP.
+ */
+#if @NCURSES_SP_FUNCS@
+#undef  NCURSES_SP_FUNCS
+#define NCURSES_SP_FUNCS @NCURSES_PATCH@
+#define NCURSES_SP_NAME(name) name##_sp
+
+/* Define the sp-funcs helper function */
+#define NCURSES_SP_OUTC NCURSES_SP_NAME(NCURSES_OUTC)
+typedef int (*NCURSES_SP_OUTC)(SCREEN*, int);
+
+extern NCURSES_EXPORT(SCREEN*) new_prescr(void); /* implemented */
+
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(baudrate) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(beep) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(can_change_color) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(cbreak) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(curs_set) (SCREEN*, int); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(color_content) (SCREEN*, short, short*, short*, short*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_prog_mode) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(def_shell_mode) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(delay_output) (SCREEN*, int); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(doupdate) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(echo) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(endwin) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(char) NCURSES_SP_NAME(erasechar) (SCREEN*);/* implemented */
+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(filter) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flash) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(flushinp) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(getwin) (SCREEN*, FILE *);			/* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(halfdelay)(SCREEN*, int); /* implemented */
+extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_colors) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_ic) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(has_il) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_color) (SCREEN*, short, short, short, short); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(init_pair) (SCREEN*, short, short, short); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(intrflush) (SCREEN*, WINDOW*, bool);	/* implemented */
+extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(isendwin) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(keyname) (SCREEN*, int); /* implemented */
+extern NCURSES_EXPORT(char) NCURSES_SP_NAME(killchar) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(longname) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mvcur) (SCREEN*, int, int, int, int); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(napms) (SCREEN*, int); /* implemented */
+extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newpad) (SCREEN*, int, int); /* implemented */
+extern NCURSES_EXPORT(SCREEN*) NCURSES_SP_NAME(newterm) (SCREEN*, NCURSES_CONST char *, FILE *, FILE *); /* implemented */
+extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(newwin) (SCREEN*, int, int, int, int); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nl) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nocbreak) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noecho) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(nonl) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(noqiflush) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(noraw) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(pair_content) (SCREEN*, short, short*, short*); /* implemented */
+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(qiflush) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(raw) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_prog_mode) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(reset_shell_mode) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resetty) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (SCREEN*, int, int (*)(WINDOW *, int));	/* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(savetty) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_init) (SCREEN*, const char *); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_restore) (SCREEN*, const char *); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(scr_set) (SCREEN*, const char *); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attroff) (SCREEN*, const chtype); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attron) (SCREEN*, const chtype); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attrset) (SCREEN*, const chtype); /* implemented */
+extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(slk_attr) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_attr_set) (SCREEN*, const attr_t, short, void*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_clear) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_color) (SCREEN*, short); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_init) (SCREEN*, int); /* implemented */
+extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(slk_label) (SCREEN*, int); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_noutrefresh) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_refresh) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_restore) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_set) (SCREEN*, int, const char *, int); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(slk_touch) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(start_color) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(chtype) NCURSES_SP_NAME(termattrs) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(termname) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(typeahead) (SCREEN*, int); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(ungetch) (SCREEN*, int); /* implemented */
+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(use_env) (SCREEN*, bool); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidattr) (SCREEN*, chtype);	/* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vidputs) (SCREEN*, chtype, NCURSES_SP_OUTC); /* implemented */
+#if @NCURSES_EXT_FUNCS@
+extern NCURSES_EXPORT(char *) NCURSES_SP_NAME(keybound) (SCREEN*, int, int);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(assume_default_colors) (SCREEN*, int, int);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(define_key) (SCREEN*, const char *, int);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(get_escdelay) (SCREEN*);
+extern NCURSES_EXPORT(bool) NCURSES_SP_NAME(is_term_resized) (SCREEN*, int, int);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(key_defined)(SCREEN*, const char *);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(keyok) (SCREEN*, int, bool);
+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(nofilter) (SCREEN*); /* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resize_term) (SCREEN*, int, int);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(resizeterm) (SCREEN*, int, int);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_escdelay) (SCREEN*, int);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(set_tabsize) (SCREEN*, int);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_default_colors) (SCREEN*);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(use_legacy_coding) (SCREEN*, int);
+#endif
+#else
+#undef  NCURSES_SP_FUNCS
+#define NCURSES_SP_FUNCS 0
+#define NCURSES_SP_NAME(name) name
+#define NCURSES_SP_OUTC NCURSES_OUTC
+#endif
+
 /* attributes */
 
 #define NCURSES_ATTR_SHIFT       8
@@ -971,9 +1094,9 @@
 #if !NCURSES_OPAQUE
 #if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
 #define wattrset(win,at)	((win)->_color = PAIR_NUMBER(at), \
-				 (win)->_attrs = (at))
+                                 NCURSES_CAST(int, (win)->_attrs = (at)))
 #else
-#define wattrset(win,at)	((win)->_attrs = (at))
+#define wattrset(win,at)        NCURSES_CAST(int, (win)->_attrs = (at))
 #endif
 #endif /* NCURSES_OPAQUE */
 
@@ -1173,7 +1296,7 @@
  *	   It gives the ESC expire time in milliseconds.
  *	b. ttytype is needed for backward compatibility
  */
-#if @cf_cv_enable_reentrant@
+#if NCURSES_REENTRANT
 
 NCURSES_WRAPPED_VAR(WINDOW *, curscr);
 NCURSES_WRAPPED_VAR(WINDOW *, newscr);
diff -Naur ncurses-5.7.orig/include/curses.tail ncurses-5.7/include/curses.tail
--- ncurses-5.7.orig/include/curses.tail	2008-07-05 13:20:38.000000000 -0700
+++ ncurses-5.7/include/curses.tail	2009-06-05 14:01:54.000000000 -0700
@@ -1,4 +1,4 @@
-/* $Id: curses.tail,v 1.16 2008/07/05 20:20:38 tom Exp $ */
+/* $Id: curses.tail,v 1.19 2009/05/23 19:19:43 tom Exp $ */
 /*
  * vile:cmode:
  * This file is part of ncurses, designed to be appended after curses.h.in
@@ -94,13 +94,22 @@
 }
 MEVENT;
 
-extern NCURSES_EXPORT(int) getmouse (MEVENT *);
-extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);
+extern NCURSES_EXPORT(bool)    has_mouse(void);
+extern NCURSES_EXPORT(int)     getmouse (MEVENT *);
+extern NCURSES_EXPORT(int)     ungetmouse (MEVENT *);
 extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);
-extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);
-extern NCURSES_EXPORT(int) mouseinterval (int);
-extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool);
-extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool);              /* generated */
+extern NCURSES_EXPORT(bool)    wenclose (const WINDOW *, int, int);
+extern NCURSES_EXPORT(int)     mouseinterval (int);
+extern NCURSES_EXPORT(bool)    wmouse_trafo (const WINDOW*, int*, int*, bool);
+extern NCURSES_EXPORT(bool)    mouse_trafo (int*, int*, bool);              /* generated */
+
+#if NCURSES_SP_FUNCS
+extern NCURSES_EXPORT(bool)    NCURSES_SP_NAME(has_mouse) (SCREEN*);
+extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(getmouse) (SCREEN*, MEVENT *);
+extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(ungetmouse) (SCREEN*,MEVENT *);
+extern NCURSES_EXPORT(mmask_t) NCURSES_SP_NAME(mousemask) (SCREEN*, mmask_t, mmask_t *);
+extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(mouseinterval) (SCREEN*, int);
+#endif
 
 #define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
 
@@ -109,6 +118,11 @@
 extern NCURSES_EXPORT(int) mcprint (char *, int);	/* direct data to printer */
 extern NCURSES_EXPORT(int) has_key (int);		/* do we have given key? */
 
+#if NCURSES_SP_FUNCS
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(has_key) (SCREEN*, int);    /* do we have given key? */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(mcprint) (SCREEN*, char *, int);	/* direct data to printer */
+#endif
+
 /* Debugging : use with libncurses_g.a */
 
 extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
@@ -160,6 +174,8 @@
 #define OPTIMIZE_ALL		0xff	/* enable all optimizations (dflt) */
 #endif
 
+#include <unctrl.h>
+
 #ifdef __cplusplus
 
 #ifndef NCURSES_NOMACROS
diff -Naur ncurses-5.7.orig/include/curses.wide ncurses-5.7/include/curses.wide
--- ncurses-5.7.orig/include/curses.wide	2007-03-10 09:52:23.000000000 -0800
+++ ncurses-5.7/include/curses.wide	2009-06-05 14:01:51.000000000 -0700
@@ -1,9 +1,11 @@
-/* $Id: curses.wide,v 1.34 2007/03/10 17:52:23 tom Exp $ */
+/* $Id: curses.wide,v 1.39 2009/05/09 15:43:00 tom Exp $ */
 /*
  * vile:cmode:
  * This file is part of ncurses, designed to be appended after curses.h.in
  * (see that file for the relevant copyright).
  */
+#define _XOPEN_CURSES 1
+
 #ifdef _XOPEN_SOURCE_EXTENDED
 
 extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
@@ -138,7 +140,7 @@
 extern NCURSES_EXPORT(attr_t) term_attrs (void);			/* implemented */
 extern NCURSES_EXPORT(int) unget_wch (const wchar_t);			/* implemented */
 extern NCURSES_EXPORT(int) vid_attr (attr_t, short, void *);		/* implemented */
-extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, int (*)(int)); /* implemented */
+extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, NCURSES_OUTC); /* implemented */
 extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int);		/* generated:WIDEC */
 extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *);		/* implemented */
 extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int);	/* implemented */
@@ -165,6 +167,14 @@
 extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *);			/* implemented */
 extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int);	/* implemented */
 
+#if NCURSES_SP_FUNCS
+extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(term_attrs) (SCREEN*);		/* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(unget_wch) (SCREEN*, const wchar_t);	/* implemented */
+extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *);	/* implemented */
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, short, void *);
+extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, short, void *, NCURSES_SP_OUTC);
+#endif
+
 #ifndef NCURSES_NOMACROS
 
 /*
diff -Naur ncurses-5.7.orig/include/MKterm.h.awk.in ncurses-5.7/include/MKterm.h.awk.in
--- ncurses-5.7.orig/include/MKterm.h.awk.in	2008-05-24 16:13:59.000000000 -0700
+++ ncurses-5.7/include/MKterm.h.awk.in	2009-06-05 14:01:51.000000000 -0700
@@ -1,7 +1,7 @@
 # vile:awkmode
 BEGIN		{
 		    print  "/****************************************************************************"
-		    print  " * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *"
+		    print  " * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc.              *"
 		    print  " *                                                                          *"
 		    print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
 		    print  " * copy of this software and associated documentation files (the            *"
@@ -34,7 +34,7 @@
 		    print  "/*    and: Thomas E. Dickey                        1995-on                  */"
 		    print  "/****************************************************************************/"
 		    print  ""
-		    print  "/* $Id: MKterm.h.awk.in,v 1.50 2008/05/24 23:13:59 tom Exp $ */"
+		    print  "/* $Id: MKterm.h.awk.in,v 1.57 2009/05/09 15:54:50 tom Exp $ */"
 		    print  ""
 		    print  "/*"
 		    print  "**	term.h -- Definition of struct term"
@@ -130,11 +130,15 @@
 		    print  ""
 		    print  "#else /* !HAVE_TERMIO_H */"
 		    print  ""
+		    print  "#if __MINGW32__"
+		    print  "#  include <ncurses_mingw.h>"
+		    print  "#  define TTY struct termios"
+		    print  "#else"
 		    print  "#undef TERMIOS"
 		    print  "#include <sgtty.h>"
 		    print  "#include <sys/ioctl.h>"
 		    print  "#define TTY struct sgttyb"
-		    print  ""
+		    print  "#endif /* MINGW32 */"
 		    print  "#endif /* HAVE_TERMIO_H */"
 		    print  ""
 		    print  "#endif /* HAVE_TERMIOS_H */"
@@ -228,8 +232,16 @@
 			print  "    char *      _termname;      /* used for termname() */"
 			print  "} TERMINAL;"
 			print  ""
-			print  "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
+			print  "#if @BROKEN_LINKER@ && !@cf_cv_enable_reentrant@"
+			print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
+			print  "#elif @cf_cv_enable_reentrant@"
 			print  "NCURSES_WRAPPED_VAR(TERMINAL *, cur_term);"
+			print  "#define cur_term   NCURSES_PUBLIC_VAR(cur_term())"
+			print  "#else"
+			print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
+			print  "#endif"
+			print  ""
+			print  "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
 			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);"
 			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);"
 			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);"
@@ -240,7 +252,6 @@
 			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);"
 			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);"
 			print  ""
-			print  "#define cur_term   NCURSES_PUBLIC_VAR(cur_term())"
 			print  "#define boolnames  NCURSES_PUBLIC_VAR(boolnames())"
 			print  "#define boolcodes  NCURSES_PUBLIC_VAR(boolcodes())"
 			print  "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
@@ -253,8 +264,6 @@
 			print  ""
 			print  "#else"
 			print  ""
-			print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
-			print  ""
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
 			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
@@ -312,6 +321,37 @@
 			print  "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));"
 			print  "#endif /* NCURSES_TERMCAP_H_incl */"
 			print  ""
+			print  "/*"
+			print  " * Include curses.h before term.h to enable these extensions."
+			print  " */"
+			print  "#if defined(NCURSES_SP_FUNCS) && (NCURSES_SP_FUNCS != 0)"
+			print  ""
+			print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tigetstr) (SCREEN*, NCURSES_CONST char *);"
+			print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(putp) (SCREEN*, const char *);"
+			print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetflag) (SCREEN*, NCURSES_CONST char *);"
+			print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tigetnum) (SCREEN*, NCURSES_CONST char *);"
+			print  ""
+			print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
+			print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, NCURSES_CONST char *, ...);	/* special */"
+			print  "#else"
+			print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm) (SCREEN*, NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* special */"
+			print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tparm_varargs) (SCREEN*, NCURSES_CONST char *, ...);	/* special */"
+			print  "#endif"
+			print  ""
+			print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
+			print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tgetstr) (SCREEN*, NCURSES_CONST char *, char **);"
+			print  "extern NCURSES_EXPORT(char *)  NCURSES_SP_NAME(tgoto) (SCREEN*, const char *, int, int);"
+			print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetent) (SCREEN*, char *, const char *);"
+			print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetflag) (SCREEN*, NCURSES_CONST char *);"
+			print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tgetnum) (SCREEN*, NCURSES_CONST char *);"
+			print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(tputs) (SCREEN*, const char *, int, NCURSES_SP_OUTC);"
+			print  ""
+			print  "extern NCURSES_EXPORT(TERMINAL *) NCURSES_SP_NAME(set_curterm) (SCREEN*, TERMINAL *);"
+			print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(del_curterm) (SCREEN*, TERMINAL *);"
+			print  ""
+			print  "extern NCURSES_EXPORT(int)     NCURSES_SP_NAME(restartterm) (SCREEN*, NCURSES_CONST char *, int, int *);"
+			print  "#endif /* NCURSES_SP_FUNCS */"
+			print  ""
 			print  "#ifdef __cplusplus"
 			print  "}"
 			print  "#endif"
diff -Naur ncurses-5.7.orig/include/nc_alloc.h ncurses-5.7/include/nc_alloc.h
--- ncurses-5.7.orig/include/nc_alloc.h	2008-09-27 15:30:33.000000000 -0700
+++ ncurses-5.7/include/nc_alloc.h	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -29,7 +29,7 @@
 /****************************************************************************
  *  Author: Thomas E. Dickey                    1996-on                     *
  ****************************************************************************/
-/* $Id: nc_alloc.h,v 1.16 2008/09/27 22:30:33 tom Exp $ */
+/* $Id: nc_alloc.h,v 1.17 2009/04/18 20:48:19 tom Exp $ */
 
 #ifndef NC_ALLOC_included
 #define NC_ALLOC_included 1
@@ -74,9 +74,15 @@
 extern NCURSES_EXPORT(void) _nc_free_tparm(void);
 extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
 extern NCURSES_EXPORT(void) _nc_leaks_tic(void);
-#define ExitProgram(code) _nc_free_and_exit(code)
+
+#if NCURSES_SP_FUNCS
+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int) GCC_NORETURN;
 #endif
 
+#define ExitProgram(code) _nc_free_and_exit(code)
+
+#endif /* NO_LEAKS, etc */
+
 #ifndef HAVE_NC_FREEALL
 #define HAVE_NC_FREEALL 0
 #endif
diff -Naur ncurses-5.7.orig/include/nc_panel.h ncurses-5.7/include/nc_panel.h
--- ncurses-5.7.orig/include/nc_panel.h	2008-08-04 11:26:46.000000000 -0700
+++ ncurses-5.7/include/nc_panel.h	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -33,7 +33,7 @@
 
 
 /*
- * $Id: nc_panel.h,v 1.5 2008/08/04 18:26:46 tom Exp $
+ * $Id: nc_panel.h,v 1.6 2009/04/11 21:17:57 tom Exp $
  *
  *	nc_panel.h
  *
@@ -62,6 +62,10 @@
 /* Retrieve the panelhook of the current screen */
 extern NCURSES_EXPORT(struct panelhook*) _nc_panelhook (void);
 
+#if NCURSES_SP_FUNCS
+extern NCURSES_EXPORT(struct panelhook*) NCURSES_SP_NAME(_nc_panelhook) (SCREEN *);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff -Naur ncurses-5.7.orig/include/ncurses_defs ncurses-5.7/include/ncurses_defs
--- ncurses-5.7.orig/include/ncurses_defs	2008-09-06 08:57:41.000000000 -0700
+++ ncurses-5.7/include/ncurses_defs	2009-06-05 14:01:49.000000000 -0700
@@ -1,4 +1,4 @@
-# $Id: ncurses_defs,v 1.40 2008/09/06 15:57:41 tom Exp $
+# $Id: ncurses_defs,v 1.41 2008/11/16 00:19:59 juergen Exp $
 ##############################################################################
 # Copyright (c) 2000-2007,2008 Free Software Foundation, Inc.                #
 #                                                                            #
@@ -171,7 +171,6 @@
 NCURSES_EXT_FUNCS
 NCURSES_NO_PADDING
 NCURSES_PATHSEP	':'
-NDEBUG
 NEED_PTEM_H
 NO_LEAKS
 PURE_TERMINFO
diff -Naur ncurses-5.7.orig/include/ncurses_dll.h ncurses-5.7/include/ncurses_dll.h
--- ncurses-5.7.orig/include/ncurses_dll.h	2007-03-10 11:21:49.000000000 -0800
+++ ncurses-5.7/include/ncurses_dll.h	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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: ncurses_dll.h,v 1.6 2007/03/10 19:21:49 tom Exp $ */
+/* $Id: ncurses_dll.h,v 1.8 2009/04/04 22:26:27 tom Exp $ */
 
 #ifndef NCURSES_DLL_H_incl
 #define NCURSES_DLL_H_incl 1
@@ -37,7 +37,7 @@
 #undef NCURSES_DLL
 #define NCURSES_STATIC
 
-#if defined(__CYGWIN__)
+#if defined(__CYGWIN__) || defined(__MINGW32__)
 #  if defined(NCURSES_DLL)
 #    if defined(NCURSES_STATIC)
 #      undef NCURSES_STATIC
@@ -76,11 +76,4 @@
 #  define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
 #endif
 
-/*
- * For reentrant code, we map the various global variables into SCREEN by
- * using functions to access them.
- */
-#define NCURSES_PUBLIC_VAR(name) _nc_##name
-#define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void)
-
 #endif /* NCURSES_DLL_H_incl */
diff -Naur ncurses-5.7.orig/include/term_entry.h ncurses-5.7/include/term_entry.h
--- ncurses-5.7.orig/include/term_entry.h	2008-08-16 09:16:03.000000000 -0700
+++ ncurses-5.7/include/term_entry.h	2009-06-05 14:01:33.000000000 -0700
@@ -32,7 +32,7 @@
  *     and: Thomas E. Dickey                        1998-on                 *
  ****************************************************************************/
 
-/* $Id: term_entry.h,v 1.35 2008/08/16 16:16:03 tom Exp $ */
+/* $Id: term_entry.h,v 1.36 2008/11/16 00:19:59 juergen Exp $ */
 
 /*
  *	term_entry.h -- interface to entry-manipulation code
@@ -81,7 +81,7 @@
 #define EXT_NAMES(tp,i,limit,index,table) table[i]
 #endif
 
-#define NUM_EXT_NAMES(tp) ((tp)->ext_Booleans + (tp)->ext_Numbers + (tp)->ext_Strings)
+#define NUM_EXT_NAMES(tp) (unsigned) ((tp)->ext_Booleans + (tp)->ext_Numbers + (tp)->ext_Strings)
 
 #define for_each_boolean(n,tp) for(n = 0; n < NUM_BOOLEANS(tp); n++)
 #define for_each_number(n,tp)  for(n = 0; n < NUM_NUMBERS(tp);  n++)
diff -Naur ncurses-5.7.orig/include/unctrl.h.in ncurses-5.7/include/unctrl.h.in
--- ncurses-5.7.orig/include/unctrl.h.in	2001-03-24 13:53:25.000000000 -0800
+++ ncurses-5.7/include/unctrl.h.in	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -39,7 +39,7 @@
  * as ^?. Printable characters are displayed as is.
  */
 
-/* $Id: unctrl.h.in,v 1.10 2001/03/24 21:53:25 tom Exp $ */
+/* $Id: unctrl.h.in,v 1.11 2009/04/18 21:00:52 tom Exp $ */
 
 #ifndef NCURSES_UNCTRL_H_incl
 #define NCURSES_UNCTRL_H_incl	1
@@ -56,6 +56,10 @@
 #undef unctrl
 NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype);
 
+#if @NCURSES_SP_FUNCS@
+NCURSES_EXPORT(NCURSES_CONST char *) NCURSES_SP_NAME(unctrl) (SCREEN*, chtype);
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff -Naur ncurses-5.7.orig/INSTALL ncurses-5.7/INSTALL
--- ncurses-5.7.orig/INSTALL	2008-11-02 13:13:51.000000000 -0800
+++ ncurses-5.7/INSTALL	2009-06-05 14:01:24.000000000 -0700
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.               --
+-- Copyright (c) 1998-2008,2009 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.135 2008/11/02 21:13:51 tom Exp $
+-- $Id: INSTALL,v 1.138 2009/03/21 20:23:29 tom Exp $
 ---------------------------------------------------------------------
              How to install Ncurses/Terminfo on your system
 ---------------------------------------------------------------------
@@ -525,6 +525,11 @@
 	terminfo entries.  This is the default, unless you have disabled the
 	extended functions.
 
+    --enable-pc-files
+	If pkg-config is found (see --with-pkg-config), generate ".pc" files
+	for each of the libraries, and install them in pkg-config's library
+	directory.
+
     --enable-reentrant
 	Compile experimental configuration which improves reentrant use of the
 	library by reducing global and static variables.  This option is also
@@ -850,6 +855,9 @@
 	those using termcap, do not use the higher speeds.  Your application
 	(or system, in general) may or may not.
 
+    --with-pkg-config=[DIR]
+	Check for pkg-config, optionally specifying its path.
+
     --with-profile
 	Generate profile-libraries These are named by adding "_p" to the root,
 	e.g., libncurses_p.a
@@ -946,6 +954,17 @@
 	For testing, compile with debug option.
 	This also sets the --disable-leaks option.
 
+    --with-wrap-prefix=XXX
+	When using the --enable-reentrant option, ncurses redefines variables
+	that would be global in curses, e.g., LINES, as a macro that calls a
+	"wrapping" function which fetches the data from the current SCREEN
+	structure.  Normally that function is named by prepending "_nc_" to the
+	variable's name.  The function is technically private (since portable
+	applications would not refer directly to it).  But according to one
+	line of reasoning, it is not the same type of "private" as functions
+	which applications should not call even via a macro.  This configure
+	option lets you choose the prefix for these wrapped variables.
+
     --without-ada
 	Suppress the configure script's check for Ada95, do not build the
 	Ada95 binding and related demo.
@@ -975,6 +994,9 @@
     --without-dlsym
 	Do not use dlsym() to load GPM dynamically.
 
+    --without-manpages
+	Tell the configure script to suppress the install of ncurses' manpages.
+
     --without-progs
 	Tell the configure script to suppress the build of ncurses' application
 	programs (e.g., tic).  The test applications will still be built if you
diff -Naur ncurses-5.7.orig/man/curs_color.3x ncurses-5.7/man/curs_color.3x
--- ncurses-5.7.orig/man/curs_color.3x	2005-12-17 16:00:37.000000000 -0800
+++ ncurses-5.7/man/curs_color.3x	2009-06-05 14:01:11.000000000 -0700
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2005,2009 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            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_color.3x,v 1.28 2005/12/18 00:00:37 tom Exp $
+.\" $Id: curs_color.3x,v 1.29 2009/01/24 23:10:02 tom Exp $
 .TH curs_color 3X ""
 .na
 .hy 0
@@ -96,7 +96,10 @@
 .TP 5
 -
 The value of the first argument
-must be between \fB1\fR and \fBCOLOR_PAIRS-1\fR.
+must be between \fB1\fR and \fBCOLOR_PAIRS-1\fR,
+except that if default colors are used (see \fBuse_default_colors\fP)
+the upper limit is adjusted to allow for extra pairs which use
+a default color in foreground and/or background.
 .TP 5
 -
 The value of the second and
diff -Naur ncurses-5.7.orig/man/curs_mouse.3x ncurses-5.7/man/curs_mouse.3x
--- ncurses-5.7.orig/man/curs_mouse.3x	2006-12-30 15:43:34.000000000 -0800
+++ ncurses-5.7/man/curs_mouse.3x	2009-06-05 14:00:52.000000000 -0700
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2008 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            *
@@ -27,11 +27,12 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_mouse.3x,v 1.30 2006/12/30 23:43:34 tom Exp $
+.\" $Id: curs_mouse.3x,v 1.31 2008/11/23 00:09:53 tom Exp $
 .TH curs_mouse 3X ""
 .na
 .hy 0
 .SH NAME
+\fBhas_mouse\fR,
 \fBgetmouse\fR, \fBungetmouse\fR,
 \fBmousemask\fR, \fBwenclose\fR,
 \fBmouse_trafo\fR, \fBwmouse_trafo\fR,
@@ -53,7 +54,9 @@
 MEVENT;\fR
 .fi
 .br
-\fBint getmouse(MEVENT *event);\fR
+\fBbool has_mouse(void);\fR
+.br
+-\fBint getmouse(MEVENT *event);\fR
 .br
 \fBint ungetmouse(MEVENT *event);\fR
 .br
@@ -197,6 +200,9 @@
 Use \fBmouseinterval(-1)\fR to obtain the interval without altering it.
 The default is one sixth of a second.
 .PP
+The \fBhas_mouse\fP function returns TRUE if the mouse driver has been
+successfully initialized.
+.PP
 Note that mouse events will be ignored when input is in cooked mode, and will
 cause an error beep when cooked mode is being simulated in a window by a
 function such as \fBgetstr\fR that expects a linefeed for input-loop
diff -Naur ncurses-5.7.orig/man/form_field_validation.3x ncurses-5.7/man/form_field_validation.3x
--- ncurses-5.7.orig/man/form_field_validation.3x	2006-12-24 08:08:08.000000000 -0800
+++ ncurses-5.7/man/form_field_validation.3x	2009-06-05 14:01:33.000000000 -0700
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: form_field_validation.3x,v 1.16 2006/12/24 16:08:08 tom Exp $
+.\" $Id: form_field_validation.3x,v 1.17 2008/12/14 19:22:16 juergen Exp $
 .TH form_field_validation 3X ""
 .SH NAME
 \fBform_field_validation\fR - data type validation for fields
@@ -70,9 +70,7 @@
 case-sensitivity; and a fifth \fBint\fR flag argument specifying whether a partial
 match must be a unique one (if this flag is off, a prefix matches the first
 of any set of more than one list elements with that prefix). Please notice
-that the string list is not copied, only a reference to it is stored in the
-field. So you should avoid using a list that lives in automatic variables
-on the stack.
+that the string list is copied. So you may use a list that lives in automatic variables on the stack.
 .TP 5
 TYPE_INTEGER
 Integer data, parsable to an integer by \fBatoi(3)\fR.  Requires a third
diff -Naur ncurses-5.7.orig/man/keybound.3x ncurses-5.7/man/keybound.3x
--- ncurses-5.7.orig/man/keybound.3x	2006-02-25 13:47:06.000000000 -0800
+++ ncurses-5.7/man/keybound.3x	2009-06-05 14:00:57.000000000 -0700
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1999-2003,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1999-2006,2008 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            *
@@ -28,8 +28,8 @@
 .\"
 .\" Author: Thomas E. Dickey 1999
 .\"
-.\" $Id: keybound.3x,v 1.6 2006/02/25 21:47:06 tom Exp $
-.TH keyok 3X ""
+.\" $Id: keybound.3x,v 1.7 2008/12/13 18:19:07 Frederic.Culot Exp $
+.TH keybound 3X ""
 .SH NAME
 \fBkeybound\fP \- return definition of keycode
 .SH SYNOPSIS
diff -Naur ncurses-5.7.orig/man/tabs.1 ncurses-5.7/man/tabs.1
--- ncurses-5.7.orig/man/tabs.1	1969-12-31 16:00:00.000000000 -0800
+++ ncurses-5.7/man/tabs.1	2009-06-05 14:00:50.000000000 -0700
@@ -0,0 +1,143 @@
+.\"***************************************************************************
+.\" Copyright (c) 2008 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: tabs.1,v 1.2 2008/11/15 23:03:45 tom Exp $
+.TH @TABS@ 1M ""
+.ds n 5
+.SH NAME
+\fBtabs\fR - set tabs on a terminal
+.SH SYNOPSIS
+\fBtabs\fR [\fB-v\fR[\fIn\fR]] [\fB-ahuUV\fR] \fIfile...\fR
+.br
+.SH DESCRIPTION
+.PP
+The \fBtabs\fP program clears and sets tab-stops on the terminal.
+This uses the terminfo \fIclear_all_tabs\fP and \fIset_tab\fP capabilities.
+If either is absent, \fBtabs\fP is unable to clear/set tab-stops.
+The terminal should be configured to use hard tabs, e.g.,
+.sp
+.RS
+stty tab0
+.RE
+.SH OPTIONS
+.SS General Options
+.TP 5
+.BI -T "name"
+Tell \fBtabs\fP which terminal type to use.
+If this option is not given, \fBtabs\fP will use the \fB$TERM\fP
+environment variable.
+If that is not set, it will use the \fIansi+tabs\fP entry.
+.TP 5
+.B -d
+The debugging option shows a ruler line, followed by two data lines.
+The first data line shows the expected tab-stops marked with asterisks.
+The second data line shows the actual tab-stops, marked with asterisks.
+.TP 5
+.B -n
+This option tells \fBtabs\fP to check the options and run any debugging
+option, but not to modify the terminal settings.
+.PP
+The \fBtabs\fP program processes a single list of tab stops.
+The last option to be processed which defines a list is the one that
+determines the list to be processed.
+.SS Implicit Lists
+Use a single number as an option, e.g., "\fB-5\fP" to set tabs at the given
+interval (in this case 1, 6, 11, 16, 21, etc.).  Tabs are repeated up to
+the right margin of the screen.
+.SS Explicit Lists
+An explicit list can be defined after the options (this does not use a "-").
+The values in the list must be in increasing numeric order, and greater than
+zero.  They are separated by a comma or a blank, for example,
+.sp
+.RS
+tabs 1,6,11,16,21
+.br
+tabs 1 6 11 16 21
+.RE
+Use a '+' to treat a number as an increment relative to the previous value,
+e.g.,
+.sp
+.RS
+tabs 1,+5,+5,+5,+5
+.RE
+which is equivalent to the 1,6,11,16,21 example.
+.SS Predefined Tab-Stops
+X/Open defines several predefined lists of tab stops.
+.TP 5
+.B -a
+Assembler, IBM S/370, first format
+.TP 5
+.B -a2
+Assembler, IBM S/370, second format
+.TP 5
+.B -c
+COBOL, normal format
+.TP 5
+.B -c2
+COBOL compact format
+.TP 5
+.B -c3
+COBOL compact format extended
+.TP 5
+.B -f
+FORTRAN
+.TP 5
+.B -p
+PL/I
+.TP 5
+.B -s
+SNOBOL
+.TP 5
+.B -u
+UNIVAC 1100 Assembler
+.SH PORTABILITY
+.PP
+X/Open describes a \fB+m\fP option, to set a terminal's left-margin.
+None of the entries in the terminal database provide this capability.
+.PP
+The \fB-d\fP (debug) and \fB-n\fP (no-op) options are extensions not provided
+by other implementations.
+.PP
+Documentation for other implementations states that there is a limit on the
+number of tab stops.  While some terminals may not accept an arbitrary number
+of tab stops, this implementation will attempt to set tab stops up to the
+right margin of the screen, if the given list happens to be that long.
+.SH SEE ALSO
+\fB@TSET@\fR(1),
+\fB@INFOCMP@\fR(1M),
+\fBcurses\fR(3X),
+\fBterminfo\fR(\*n).
+.PP
+This describes \fBncurses\fR
+version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+.\"#
+.\"# The following sets edit modes for GNU EMACS
+.\"# Local Variables:
+.\"# mode:nroff
+.\"# fill-column:79
+.\"# End:
diff -Naur ncurses-5.7.orig/man/tset.1 ncurses-5.7/man/tset.1
--- ncurses-5.7.orig/man/tset.1	2006-12-24 07:00:30.000000000 -0800
+++ ncurses-5.7/man/tset.1	2009-06-05 14:00:50.000000000 -0700
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2006,2008 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            *
@@ -26,8 +26,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tset.1,v 1.19 2006/12/24 15:00:30 tom Exp $
-.TH tset 1 ""
+.\" $Id: tset.1,v 1.20 2008/11/15 23:14:06 tom Exp $
+.TH @TSET@ 1 ""
 .SH NAME
 \fBtset\fR, \fBreset\fR - terminal initialization
 .SH SYNOPSIS
diff -Naur ncurses-5.7.orig/MANIFEST ncurses-5.7/MANIFEST
--- ncurses-5.7.orig/MANIFEST	2008-10-25 16:47:24.000000000 -0700
+++ ncurses-5.7/MANIFEST	2009-06-05 14:01:21.000000000 -0700
@@ -640,6 +640,7 @@
 ./man/ncurses.3x
 ./man/panel.3x
 ./man/resizeterm.3x
+./man/tabs.1
 ./man/term.5
 ./man/term.7
 ./man/terminfo.head
@@ -694,6 +695,7 @@
 ./misc/emx.src
 ./misc/form.def
 ./misc/form.ref
+./misc/gen-pkgconfig.in
 ./misc/gen_edit.sh
 ./misc/jpf-indent
 ./misc/makedef.cmd
@@ -947,9 +949,11 @@
 ./progs/infocmp.c
 ./progs/modules
 ./progs/progs.priv.h
+./progs/tabs.c
 ./progs/tic.c
 ./progs/toe.c
 ./progs/tput.c
+./progs/transform.c
 ./progs/tset.c
 ./tar-copy.sh
 ./test/Makefile.in
@@ -963,6 +967,7 @@
 ./test/cardfile.c
 ./test/cardfile.dat
 ./test/chgat.c
+./test/clip_printw.c
 ./test/color_set.c
 ./test/configure
 ./test/configure.in
@@ -990,6 +995,7 @@
 ./test/inch_wide.c
 ./test/inchs.c
 ./test/ins_wide.c
+./test/insdelln.c
 ./test/inserts.c
 ./test/key_names.c
 ./test/keynames.c
diff -Naur ncurses-5.7.orig/menu/Makefile.in ncurses-5.7/menu/Makefile.in
--- ncurses-5.7.orig/menu/Makefile.in	2007-04-28 07:56:11.000000000 -0700
+++ ncurses-5.7/menu/Makefile.in	2009-06-05 14:01:30.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.48 2007/04/28 14:56:11 tom Exp $
+# $Id: Makefile.in,v 1.50 2009/03/28 18:22:39 Charles.Wilson Exp $
 ##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2009 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"), #
@@ -63,6 +63,7 @@
 LIBTOOL_LINK	= @LIB_LINK@
 LIBTOOL_INSTALL	= @LIB_INSTALL@
 LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+LT_UNDEF	= @LT_UNDEF@
 
 INSTALL		= @INSTALL@
 INSTALL_LIB	= @INSTALL@ @INSTALL_LIB@
@@ -70,7 +71,7 @@
 INSTALL_DATA	= @INSTALL_DATA@
 
 AR		= @AR@
-AR_OPTS		= @AR_OPTS@
+ARFLAGS		= @ARFLAGS@
 AWK		= @AWK@
 LD		= @LD@
 LN_S		= @LN_S@
diff -Naur ncurses-5.7.orig/menu/m_attribs.c ncurses-5.7/menu/m_attribs.c
--- ncurses-5.7.orig/menu/m_attribs.c	2004-12-11 15:29:12.000000000 -0800
+++ ncurses-5.7/menu/m_attribs.c	2009-06-05 14:01:33.000000000 -0700
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_attribs.c,v 1.14 2004/12/11 23:29:12 tom Exp $")
+MODULE_ID("$Id: m_attribs.c,v 1.15 2008/11/16 00:19:59 juergen Exp $")
 
 /* Macro to redraw menu if it is posted and changed */
 #define Refresh_Menu(menu) \
@@ -49,9 +49,9 @@
 
 /* "Template" macro to generate a function to set a menus attribute */
 #define GEN_MENU_ATTR_SET_FCT( name ) \
-NCURSES_IMPEXP int NCURSES_API set_menu_ ## name (MENU * menu, chtype attr)\
+NCURSES_IMPEXP int NCURSES_API set_menu_ ## name (MENU* menu, chtype attr) \
 {\
-   T((T_CALLED("set_menu_" #name "(%p,%s)"), menu, _traceattr(attr)));\
+  T((T_CALLED("set_menu_" #name "(%p,%s)"), menu, _traceattr(attr))); \
    if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\
       RETURN(E_BAD_ARGUMENT);\
    if (menu && ( menu -> name != attr))\
@@ -140,4 +140,5 @@
 |   Return Values :  Attribute value
 +--------------------------------------------------------------------------*/
 GEN_MENU_ATTR_GET_FCT(grey)
+
 /* m_attribs.c ends here */
diff -Naur ncurses-5.7.orig/menu/m_cursor.c ncurses-5.7/menu/m_cursor.c
--- ncurses-5.7.orig/menu/m_cursor.c	2005-10-22 16:03:32.000000000 -0700
+++ ncurses-5.7/menu/m_cursor.c	2009-06-05 14:01:18.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_cursor.c,v 1.20 2005/10/22 23:03:32 tom Exp $")
+MODULE_ID("$Id: m_cursor.c,v 1.21 2009/02/28 21:02:46 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
@@ -90,7 +90,7 @@
 
   if (E_OK == err)
     {
-      win = menu->userwin ? menu->userwin : stdscr;
+      win = Get_Menu_UserWin(menu);
       sub = menu->usersub ? menu->usersub : win;
       assert(win && sub);
 
diff -Naur ncurses-5.7.orig/menu/m_driver.c ncurses-5.7/menu/m_driver.c
--- ncurses-5.7.orig/menu/m_driver.c	2008-08-03 15:08:22.000000000 -0700
+++ ncurses-5.7/menu/m_driver.c	2009-06-05 14:01:18.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_driver.c,v 1.27 2008/08/03 22:08:22 tom Exp $")
+MODULE_ID("$Id: m_driver.c,v 1.28 2009/02/28 21:02:46 juergen Exp $")
 
 /* Macros */
 
@@ -197,7 +197,7 @@
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
-|   Function      :  int menu_driver(MENU *menu, int c)
+|   Function      :  int menu_driver(MENU* menu, int c)
 |
 |   Description   :  Central dispatcher for the menu. Translates the logical
 |                    request 'c' into a menu action.
diff -Naur ncurses-5.7.orig/menu/menu.h ncurses-5.7/menu/menu.h
--- ncurses-5.7.orig/menu/menu.h	2007-02-24 09:32:13.000000000 -0800
+++ ncurses-5.7/menu/menu.h	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -30,7 +30,7 @@
  *   Author:  Juergen Pfeifer, 1995,1997                                    *
  ****************************************************************************/
 
-/* $Id: menu.h,v 1.19 2007/02/24 17:32:13 tom Exp $ */
+/* $Id: menu.h,v 1.20 2009/04/05 00:28:07 tom Exp $ */
 
 #ifndef ETI_MENU
 #define ETI_MENU
@@ -249,6 +249,10 @@
 
 extern NCURSES_EXPORT(void)	menu_format (const MENU *,int *,int *);
 
+#if NCURSES_SP_FUNCS
+extern NCURSES_EXPORT(MENU *)	NCURSES_SP_NAME(new_menu) (SCREEN*, ITEM **);
+#endif
+
 #ifdef __cplusplus
   }
 #endif
diff -Naur ncurses-5.7.orig/menu/menu.priv.h ncurses-5.7/menu/menu.priv.h
--- ncurses-5.7.orig/menu/menu.priv.h	2005-01-15 17:02:23.000000000 -0800
+++ ncurses-5.7/menu/menu.priv.h	2009-06-05 14:01:18.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -30,7 +30,7 @@
  *   Author:  Juergen Pfeifer, 1995,1997                                    *
  ****************************************************************************/
 
-/* $Id: menu.priv.h,v 1.22 2005/01/16 01:02:23 tom Exp $ */
+/* $Id: menu.priv.h,v 1.23 2009/02/28 21:02:57 juergen Exp $ */
 
 /***************************************************************************
 * Module menu.priv.h                                                       *
@@ -56,8 +56,12 @@
 /* Normalize menu to default if none was given */
 #define Normalize_Menu( menu ) ((menu)=(menu)?(menu):&_nc_Default_Menu)
 
+#define Get_Menu_Screen( menu ) (menu->userwin ? \
+				 _nc_screen_of(menu->userwin) : CURRENT_SCREEN)
+
 /* Get the user defined (framing) window of the menu */
-#define Get_Menu_UserWin(menu) ((menu)->userwin ? (menu)->userwin : stdscr)
+#define Get_Menu_UserWin(menu) ((menu)->userwin ? \
+    (menu)->userwin : CURRENT_SCREEN->_stdscr)
 
 /* Normalize menu window */
 #define Get_Menu_Window(  menu ) \
diff -Naur ncurses-5.7.orig/menu/m_global.c ncurses-5.7/menu/m_global.c
--- ncurses-5.7.orig/menu/m_global.c	2005-12-31 13:51:52.000000000 -0800
+++ ncurses-5.7/menu/m_global.c	2009-06-05 14:01:18.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_global.c,v 1.23 2005/12/31 21:51:52 tom Exp $")
+MODULE_ID("$Id: m_global.c,v 1.24 2009/02/28 21:02:46 juergen Exp $")
 
 static char mark[] = "-";
 /* *INDENT-OFF* */
@@ -496,7 +496,7 @@
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
-|   Function      :  void _nc_Show_Menu(const MENU *menu)
+|   Function      :  void _nc_Show_Menu(const MENU* menu)
 |   
 |   Description   :  Update the window that is associated with the menu
 |
@@ -543,8 +543,10 @@
 |   Return Values :  -
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(void)
-  _nc_New_TopRow_and_CurrentItem
-  (MENU * menu, int new_toprow, ITEM * new_current_item)
+_nc_New_TopRow_and_CurrentItem(
+				MENU * menu,
+				int new_toprow,
+				ITEM * new_current_item)
 {
   ITEM *cur_item;
   bool mterm_called = FALSE;
diff -Naur ncurses-5.7.orig/menu/m_new.c ncurses-5.7/menu/m_new.c
--- ncurses-5.7.orig/menu/m_new.c	2006-11-04 11:04:06.000000000 -0800
+++ ncurses-5.7/menu/m_new.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2009 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            *
@@ -37,11 +37,11 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_new.c,v 1.18 2006/11/04 19:04:06 tom Exp $")
+MODULE_ID("$Id: m_new.c,v 1.19 2009/04/05 00:32:13 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
-|   Function      :  MENU *new_menu(ITEM **items)
+|   Function      :  MENU* _nc_new_menu(SCREEN*, ITEM **items)
 |   
 |   Description   :  Creates a new menu connected to the item pointer
 |                    array items and returns a pointer to the new menu.
@@ -51,18 +51,25 @@
 |   Return Values :  NULL on error
 +--------------------------------------------------------------------------*/
 NCURSES_EXPORT(MENU *)
-new_menu(ITEM ** items)
+NCURSES_SP_NAME(new_menu) (NCURSES_SP_DCLx ITEM ** items)
 {
   int err = E_SYSTEM_ERROR;
   MENU *menu = (MENU *) calloc(1, sizeof(MENU));
 
-  T((T_CALLED("new_menu(%p)"), items));
+  T((T_CALLED("new_menu(%p,%p)"), SP_PARM, items));
   if (menu)
     {
       *menu = _nc_Default_Menu;
       menu->status = 0;
       menu->rows = menu->frows;
       menu->cols = menu->fcols;
+#if NCURSES_SP_FUNCS
+      /* This ensures userwin and usersub are always non-null,
+         so we can derive always the SCREEN that this menu is
+         running on. */
+      menu->userwin = SP_PARM->_stdscr;
+      menu->usersub = SP_PARM->_stdscr;
+#endif
       if (items && *items)
 	{
 	  if (!_nc_Connect_Items(menu, items))
@@ -71,6 +78,8 @@
 	      free(menu);
 	      menu = (MENU *) 0;
 	    }
+	  else
+	    err = E_OK;
 	}
     }
 
@@ -82,6 +91,25 @@
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
+|   Function      :  MENU *new_menu(ITEM **items)
+|   
+|   Description   :  Creates a new menu connected to the item pointer
+|                    array items and returns a pointer to the new menu.
+|                    The new menu is initialized with the values from the
+|                    default menu.
+|
+|   Return Values :  NULL on error
++--------------------------------------------------------------------------*/
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(MENU *)
+new_menu(ITEM ** items)
+{
+  return NCURSES_SP_NAME(new_menu) (CURRENT_SCREEN, items);
+}
+#endif
+
+/*---------------------------------------------------------------------------
+|   Facility      :  libnmenu  
 |   Function      :  int free_menu(MENU *menu)  
 |   
 |   Description   :  Disconnects menu from its associated item pointer 
diff -Naur ncurses-5.7.orig/menu/m_pad.c ncurses-5.7/menu/m_pad.c
--- ncurses-5.7.orig/menu/m_pad.c	2004-12-25 13:40:58.000000000 -0800
+++ ncurses-5.7/menu/m_pad.c	2009-06-05 14:01:33.000000000 -0700
@@ -37,19 +37,19 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_pad.c,v 1.10 2004/12/25 21:40:58 tom Exp $")
+MODULE_ID("$Id: m_pad.c,v 1.11 2009/02/07 23:11:44 tom Exp $")
 
 /* Macro to redraw menu if it is posted and changed */
 #define Refresh_Menu(menu) \
    if ( (menu) && ((menu)->status & _POSTED) )\
    {\
       _nc_Draw_Menu( menu );\
-      _nc_Show_Menu( menu );\
+      _nc_Show_Menu( menu ); \
    }
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
-|   Function      :  int set_menu_pad(MENU *menu, int pad)
+|   Function      :  int set_menu_pad(MENU* menu, int pad)
 |   
 |   Description   :  Set the character to be used to separate the item name
 |                    from its description. This must be a printable 
diff -Naur ncurses-5.7.orig/menu/m_post.c ncurses-5.7/menu/m_post.c
--- ncurses-5.7.orig/menu/m_post.c	2004-12-25 15:57:04.000000000 -0800
+++ ncurses-5.7/menu/m_post.c	2009-06-05 14:01:18.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2009 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            *
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_post.c,v 1.26 2004/12/25 23:57:04 tom Exp $")
+MODULE_ID("$Id: m_post.c,v 1.27 2009/02/28 21:02:46 juergen Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
@@ -255,7 +255,7 @@
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
-|   Function      :  int post_menu(MENU *)
+|   Function      :  int post_menu(MENU* menu)
 |
 |   Description   :  Post a menu to the screen. This makes it visible.
 |
@@ -329,7 +329,7 @@
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu
-|   Function      :  int unpost_menu(MENU *)
+|   Function      :  int unpost_menu(MENU*)
 |
 |   Description   :  Detach menu from screen
 |
diff -Naur ncurses-5.7.orig/menu/m_sub.c ncurses-5.7/menu/m_sub.c
--- ncurses-5.7.orig/menu/m_sub.c	2004-12-25 13:38:31.000000000 -0800
+++ ncurses-5.7/menu/m_sub.c	2009-06-05 14:01:33.000000000 -0700
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_sub.c,v 1.10 2004/12/25 21:38:31 tom Exp $")
+MODULE_ID("$Id: m_sub.c,v 1.11 2009/04/05 00:35:51 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -57,8 +57,22 @@
     {
       if (menu->status & _POSTED)
 	RETURN(E_POSTED);
-      menu->usersub = win;
-      _nc_Calculate_Item_Length_and_Width(menu);
+      else
+#if NCURSES_SP_FUNCS
+	{
+	  /* We ensure that usersub is never null. So even if a null
+	     WINDOW parameter is passed, we store the SCREENS stdscr.
+	     The only MENU that can have a null usersub is the static
+	     _nc_default_Menu.
+	   */
+	  SCREEN *sp = _nc_screen_of(menu->usersub);
+
+	  menu->usersub = win ? win : sp->_stdscr;
+	  _nc_Calculate_Item_Length_and_Width(menu);
+	}
+#else
+	menu->usersub = win;
+#endif
     }
   else
     _nc_Default_Menu.usersub = win;
@@ -68,7 +82,7 @@
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
-|   Function      :  WINDOW *menu_sub(const MENU *menu)
+|   Function      :  WINDOW* menu_sub(const MENU *menu)
 |   
 |   Description   :  Returns a pointer to the subwindow of the menu
 |
diff -Naur ncurses-5.7.orig/menu/m_win.c ncurses-5.7/menu/m_win.c
--- ncurses-5.7.orig/menu/m_win.c	2004-12-25 13:39:20.000000000 -0800
+++ ncurses-5.7/menu/m_win.c	2009-06-05 14:01:33.000000000 -0700
@@ -37,7 +37,7 @@
 
 #include "menu.priv.h"
 
-MODULE_ID("$Id: m_win.c,v 1.15 2004/12/25 21:39:20 tom Exp $")
+MODULE_ID("$Id: m_win.c,v 1.16 2009/04/05 00:38:22 tom Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
@@ -57,8 +57,22 @@
     {
       if (menu->status & _POSTED)
 	RETURN(E_POSTED);
-      menu->userwin = win;
-      _nc_Calculate_Item_Length_and_Width(menu);
+      else
+#if NCURSES_SP_FUNCS
+	{
+	  /* We ensure that userwin is never null. So even if a null
+	     WINDOW parameter is passed, we store the SCREENS stdscr.
+	     The only MENU that can have a null userwin is the static
+	     _nc_default_Menu.
+	   */
+	  SCREEN *sp = _nc_screen_of(menu->userwin);
+
+	  menu->userwin = win ? win : sp->_stdscr;
+	  _nc_Calculate_Item_Length_and_Width(menu);
+	}
+#else
+	menu->userwin = win;
+#endif
     }
   else
     _nc_Default_Menu.userwin = win;
@@ -68,7 +82,7 @@
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnmenu  
-|   Function      :  WINDOW *menu_win(const MENU *)
+|   Function      :  WINDOW* menu_win(const MENU*)
 |   
 |   Description   :  Returns pointer to the window of the menu
 |
@@ -80,7 +94,7 @@
   const MENU *m = Normalize_Menu(menu);
 
   T((T_CALLED("menu_win(%p)"), menu));
-  returnWin(m->userwin ? m->userwin : stdscr);
+  returnWin(Get_Menu_UserWin(m));
 }
 
 /* m_win.c ends here */
diff -Naur ncurses-5.7.orig/misc/gen-pkgconfig.in ncurses-5.7/misc/gen-pkgconfig.in
--- ncurses-5.7.orig/misc/gen-pkgconfig.in	1969-12-31 16:00:00.000000000 -0800
+++ ncurses-5.7/misc/gen-pkgconfig.in	2009-06-05 14:01:21.000000000 -0700
@@ -0,0 +1,140 @@
+#!@SHELL@
+# $Id: gen-pkgconfig.in,v 1.7 2009/03/14 20:37:54 tom Exp $
+##############################################################################
+# Copyright (c) 2009 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.                                                             #
+##############################################################################
+#
+# Author: Thomas E. Dickey, 2009
+#
+# The complete configure script for ncurses is the ncurses5-config (or similar
+# name, depending on the flavor, e.g., ncursesw5-config, ncurses6-config, etc).
+# That provides more information than pkg-config, and is the portable and
+# recommended solution.
+#
+# For each library, generate a ".pc" file which depends on the base ncurses
+# library, except that the tinfo library does not depend on ncurses.
+LIB_NAME=@LIB_NAME@
+TINFO_NAME=@TINFO_NAME@
+PANEL_NAME=panel # @PANEL_NAME@
+MENU_NAME=menu # @MENU_NAME@
+FORM_NAME=form # @FORM_NAME@
+CXX_NAME=ncurses++ # @CXX_NAME@
+DFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@
+CXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@
+
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+includedir="@includedir@"
+libdir="@libdir@"
+
+show_prefix='@prefix@'
+show_exec_prefix='@exec_prefix@'
+show_includedir='@includedir@'
+show_libdir='@libdir@'
+
+MAIN_LIBRARY="${LIB_NAME}@DFT_ARG_SUFFIX@"
+SUB_LIBRARY="${TINFO_NAME}@DFT_ARG_SUFFIX@"
+PANEL_LIBRARY="${PANEL_NAME}@DFT_ARG_SUFFIX@"
+MENU_LIBRARY="${MENU_NAME}@DFT_ARG_SUFFIX@"
+FORM_LIBRARY="${FORM_NAME}@DFT_ARG_SUFFIX@"
+
+SUB_LIBRARY_REQ=${SUB_LIBRARY}
+TINFO_NAME_REQ=${TINFO_NAME}
+if test $TINFO_NAME = $LIB_NAME ; then
+	SUB_LIBRARY_REQ=
+	TINFO_NAME_REQ=
+fi
+
+for lib in ../lib/*
+do
+	name=`basename $lib`
+	if test "$name" = "*" ; then
+		break
+	fi
+
+	root=`basename $name "$DFT_DEP_SUFFIX"`
+	if test "$name" = "$root" ; then
+		root=`basename $name "$CXX_LIB_SUFFIX"`
+		if test "$name" = "$root" ; then
+			continue
+		fi
+	fi
+
+	name=`echo "$name" | sed -e 's/^lib//' -e 's/\..*$//'`
+
+	desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@"
+	if test $name = $MAIN_LIBRARY ; then
+		reqs=$TINFO_NAME_REQ
+		desc="$desc library"
+	elif test $name = $SUB_LIBRARY ; then
+		reqs=
+		desc="$desc terminal interface library"
+	elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then
+		reqs="$PANEL_LIBRARY $MENU_LIBRARY $FORM_LIBRARY $MAIN_LIBRARY $SUB_LIBRARY_REQ"
+		desc="$desc add-on library"
+	else
+		reqs="$MAIN_LIBRARY $SUB_LIBRARY_REQ"
+		desc="$desc add-on library"
+	fi
+
+	if test "$includedir" = "/usr/include" ; then
+		cflags=
+	else
+		cflags="-I\${includedir}"
+	fi
+
+	if test "$libdir" = "/usr/lib" ; then
+		libs=
+	else
+		libs="-L\${libdir}"
+	fi
+	libs="$libs -l$name"
+
+	# add dependencies that pkg-config cannot guess about
+	if test -z "$reqs" ; then
+		libs="$libs @LIBS@"
+	fi
+
+	echo "** creating ${name}.pc"
+	cat >${name}.pc <<EOF
+prefix=$show_prefix
+exec_prefix=$show_exec_prefix
+libdir=$show_libdir
+includedir=$show_includedir
+major_version=@NCURSES_MAJOR@
+version=@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@
+
+Name: $name
+Description: $desc
+Version: \${version}
+Requires: $reqs
+Libs: $libs
+Cflags: $cflags
+EOF
+	# pr -f ${name}.pc
+done
+# vile:shmode
diff -Naur ncurses-5.7.orig/misc/Makefile.in ncurses-5.7/misc/Makefile.in
--- ncurses-5.7.orig/misc/Makefile.in	2007-03-31 08:54:17.000000000 -0700
+++ ncurses-5.7/misc/Makefile.in	2009-06-05 14:01:12.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.43 2007/03/31 15:54:17 tom Exp $
+# $Id: Makefile.in,v 1.51 2009/02/07 18:17:17 Miroslav.Lichvar Exp $
 ##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2008,2009 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"), #
@@ -66,15 +66,17 @@
 source		= @TERMINFO_SRC@
 
 INSTALL		= @INSTALL@
-INSTALL_PROG	= @INSTALL_PROGRAM@
+INSTALL_PROG	= @INSTALL_SCRIPT@
 INSTALL_DATA	= @INSTALL_DATA@
 
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+
 ################################################################################
 all :	terminfo.tmp
 
 depend :
 
-sources :
+sources :: terminfo.tmp 
 
 install : install.data install.libs
 
@@ -103,9 +105,17 @@
 
 NCURSES_CONFIG	= ncurses@DFT_ARG_SUFFIX@@cf_cv_abi_version@-config
 
-install.libs : $(DESTDIR)$(bindir) ncurses-config
+install.libs :: $(DESTDIR)$(bindir) ncurses-config
 	$(INSTALL_PROG) ncurses-config $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
 
+@MAKE_PC_FILES@install.libs :: pc-files $(DESTDIR)$(PKG_CONFIG_LIBDIR)
+@MAKE_PC_FILES@	$(SHELL) -c 'for name in *.pc; do $(INSTALL_DATA) $$name $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
+
+@MAKE_PC_FILES@sources :: pc-files
+@MAKE_PC_FILES@pc-files :
+@MAKE_PC_FILES@	$(SHELL) ./gen-pkgconfig
+@MAKE_PC_FILES@	touch $@
+
 terminfo.tmp : run_tic.sed $(source)
 	echo '** adjusting tabset paths'
 	sed -f run_tic.sed $(source) >terminfo.tmp
@@ -118,7 +128,8 @@
 $(DESTDIR)$(bindir) \
 $(DESTDIR)$(libdir) \
 $(DESTDIR)$(datadir) \
-$(DESTDIR)$(tabsetdir) :
+$(DESTDIR)$(tabsetdir) \
+$(DESTDIR)$(PKG_CONFIG_LIBDIR) :
 	$(SHELL) $(top_srcdir)/mkdirs.sh $@
 
 uninstall : uninstall.data uninstall.libs
@@ -130,6 +141,7 @@
 
 uninstall.libs :
 	-rm -f $(DESTDIR)$(bindir)/$(NCURSES_CONFIG)
+@MAKE_PC_FILES@	$(SHELL) 'for name in *.pc; do rm -f $(DESTDIR)$(PKG_CONFIG_LIBDIR)/$$name; done'
 
 tags :
 
@@ -138,11 +150,13 @@
 mostlyclean :
 	-rm -f terminfo.tmp
 	-rm -f run_tic.sed
+@MAKE_PC_FILES@	-rm -f *.pc pc-files
 	-rm -f core tags TAGS *~ *.bak *.ln *.atac trace
 
 clean :: mostlyclean
 
 distclean : clean
+@MAKE_PC_FILES@	-rm -f gen-pkgconfig
 	-rm -f Makefile run_tic.sh ncurses-config
 
 realclean : distclean
diff -Naur ncurses-5.7.orig/misc/ncu-indent ncurses-5.7/misc/ncu-indent
--- ncurses-5.7.orig/misc/ncu-indent	2008-08-03 08:46:44.000000000 -0700
+++ ncurses-5.7/misc/ncu-indent	2009-06-05 14:01:18.000000000 -0700
@@ -26,7 +26,7 @@
 #* sale, use or other dealings in this Software without prior written       *
 #* authorization.                                                           *
 #****************************************************************************/
-# $Id: ncu-indent,v 1.17 2008/08/03 15:46:44 tom Exp $
+# $Id: ncu-indent,v 1.20 2009/02/21 20:56:23 tom Exp $
 NOOP=no
 OPTS='
 --blank-lines-after-procedures
@@ -44,6 +44,8 @@
 --swallow-optional-blank-lines
 --tab-size8
 
+-T NCURSES_SP_ARGx
+-T NCURSES_SP_DCLx
 -T NCURSES_EXPORT_VAR
 -T NCURSES_INLINE
 -T SCREEN
@@ -88,11 +90,12 @@
 		mv "$name" "$save"
 		sed \
 			-e '/EMPTY_MODULE(/s/)$/);/' \
+			-e 's,\(MODULEID(\),//\1,' \
 			-e '/MODULE_ID(/s/)$/);/' \
 			-e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
 			-e 's,\<GCC_PRINTFLIKE(,;//GCC_PRINTFLIKE(,' \
 			-e 's,\<GCC_SCANFLIKE(,;//GCC_SCANFLIKE(,' \
-			-e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
+			-e 's,\(\<NCURSES_EXPORT_VAR\>.*;\),//\1,' \
 			"$save" >"$test"
 		cp "$test" "$name"
 		chmod u+w "$name"
@@ -100,11 +103,12 @@
 		${INDENT_PROG-indent} -npro $OPTS "$name"
 		sed \
 			-e '/EMPTY_MODULE(/s/);$/)/' \
+			-e 's,//\(MODULEID(\),\1,' \
 			-e '/MODULE_ID(/s/);$/)/' \
 			-e 's,;[ 	]*//GCC_NORETURN;, GCC_NORETURN;,' \
 			-e 's,;[ 	]*//GCC_PRINTFLIKE(, GCC_PRINTFLIKE(,' \
 			-e 's,;[ 	]*//GCC_SCANFLIKE(, GCC_SCANFLIKE(,' \
-			-e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
+			-e 's,//\(\<NCURSES_EXPORT_VAR\>[ ]*\),\1,' \
 			"$name" >"$test"
 		mv "$test" "$name"
 		rm -f "${name}~"
diff -Naur ncurses-5.7.orig/misc/ncurses-config.in ncurses-5.7/misc/ncurses-config.in
--- ncurses-5.7.orig/misc/ncurses-config.in	2007-03-17 13:02:19.000000000 -0700
+++ ncurses-5.7/misc/ncurses-config.in	2009-06-05 14:01:21.000000000 -0700
@@ -1,7 +1,7 @@
 #!@SHELL@
-# $Id: ncurses-config.in,v 1.12 2007/03/17 20:02:19 tom Exp $
+# $Id: ncurses-config.in,v 1.23 2009/03/14 19:20:57 Charles.Wilson Exp $
 ##############################################################################
-# Copyright (c) 2006,2007 Free Software Foundation, Inc.                     #
+# Copyright (c) 2006-2007,2009 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"), #
@@ -28,67 +28,70 @@
 # authorization.                                                             #
 ##############################################################################
 #
-# Author: Thomas E. Dickey, 2006
+# Author: Thomas E. Dickey, 2006-on
 
 prefix="@prefix@"
 exec_prefix="@exec_prefix@"
 
 bindir="@bindir@"
+includedir="@includedir@"
 libdir="@libdir@"
 datadir="@datadir@"
 mandir="@mandir@"
 
-THIS="ncurses@DFT_ARG_SUFFIX@"
+THIS="@LIB_NAME@@DFT_ARG_SUFFIX@"
+TINFO_LIB="@TINFO_NAME@@DFT_ARG_SUFFIX@"
 
 LANG=C;		export LANG
 LANGUAGE=C;	export LANGUAGE
 LC_ALL=C;	export LC_ALL
 LC_CTYPE=C;	export LC_CTYPE
 
-test $# = 0 && exec @SHELL@ $0 --error
-
-while test $# -gt 0; do
-	case "$1" in
-	-*=*)
-		ARG=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
-		;;
-	*)
-		ARG=
+# with --disable-overwrite, we installed into a subdirectory, but transformed
+# the headers to include like this:
+#	<ncurses@LIB_SUFFIX@/curses.h>
+if test x@WITH_OVERWRITE@ = xno ; then
+	case $includedir in
+	$prefix/include/ncurses@LIB_SUFFIX@)
+		includedir=`echo "$includedir" | sed -e 's,/[^/]*$,,'`
 		;;
 	esac
+fi
+
+test $# = 0 && exec @SHELL@ $0 --error
 
+while test $# -gt 0; do
 	case "$1" in
 	# basic configuration
-	--prefix=*)
-		prefix="$ARG"
-		test -z "$exec_prefix" && exec_prefix="$ARG"
-		;;
 	--prefix)
 		echo "$prefix"
 		;;
-	--exec-prefix=*)
-		exec_prefix="$ARG"
-		;;
 	--exec-prefix)
 		echo "$exec_prefix"
 		;;
 	# compile/link
 	--cflags)
 		INCS=
-		if test "${prefix}/include" != /usr/include ; then
-			INCS="-I${prefix}/include"
+		if test "${includedir}" != /usr/include ; then
+			INCS="-I${includedir}"
 		fi
-		if test "@WITH_OVERWRITE@" != no ; then
-			INCS="$INCS -I${prefix}/include/${THIS}"
+		if test "x@WITH_OVERWRITE@" = xno ; then
+			INCS="$INCS -I${includedir}/${THIS}"
 		fi
 		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
 			$INCS
 ENDECHO
 		;;
 	--libs)
+		if test @TINFO_NAME@ = @LIB_NAME@ ; then
 		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
-			-L${exec_prefix}/lib @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
+			-L$libdir @EXTRA_LDFLAGS@ -l${THIS} @LIBS@
 ENDECHO
+		else
+		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
+			-L$libdir @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@
+ENDECHO
+		fi
 		;;
 	# identification
 	--version)
@@ -107,6 +110,9 @@
 	--datadir)
 		echo "${datadir}"
 		;;
+	--includedir)
+		echo "${includedir}"
+		;;
 	--libdir)
 		echo "${libdir}"
 		;;
@@ -129,9 +135,7 @@
 
 Options:
   --prefix           echos the package-prefix of ${THIS}
-  --prefix=ARG       sets the package-prefix of ${THIS}
   --exec-prefix      echos the executable-prefix of ${THIS}
-  --exec-prefix=ARG  sets the executable-prefix of ${THIS}
 
   --cflags           echos the C compiler flags needed to compile with ${THIS}
   --libs             echos the libraries needed to link with ${THIS}
@@ -142,6 +146,7 @@
 
   --bindir           echos the directory containing ${THIS} programs
   --datadir          echos the directory containing ${THIS} data
+  --includedir       echos the directory containing ${THIS} header files
   --libdir           echos the directory containing ${THIS} libraries
   --mandir           echos the directory containing ${THIS} manpages
   --terminfo         echos the \$TERMINFO terminfo database path
diff -Naur ncurses-5.7.orig/misc/terminfo.src ncurses-5.7/misc/terminfo.src
--- ncurses-5.7.orig/misc/terminfo.src	2008-10-12 16:03:54.000000000 -0700
+++ ncurses-5.7/misc/terminfo.src	2009-06-05 14:01:49.000000000 -0700
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #	bug-ncurses@gnu.org
 #
-#	$Revision: 1.341 $
-#	$Date: 2008/10/12 23:03:54 $
+#	$Revision: 1.348 $
+#	$Date: 2009/05/02 22:23:20 $
 #
 # 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
@@ -340,7 +340,7 @@
 	cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
 	cuu=\E[%p1%dA, use=ansi+local1,
 ansi+tabs,
-	cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[2g,
+	cbt=\E[Z, ht=^I, hts=\EH, tbc=\E[3g,
 ansi+inittabs,
 	it#8, use=ansi+tabs,
 ansi+erase,
@@ -545,7 +545,7 @@
 	cud1=\E[B, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A,
 	dch1=\E[P, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H, ht=^I,
 	hts=\EH, il1=\E[L, ind=^J, kbs=^H, kcub1=\E[D, kcud1=\E[B,
-	kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[2g,
+	kcuf1=\E[C, kcuu1=\E[A, khome=\E[H, tbc=\E[3g,
 	use=klone+sgr-dumb,
 pcansi-25-m|pcansi25m|ibm-pc terminal programs with 25 lines (mono mode),
 	lines#25, use=pcansi-m,
@@ -576,7 +576,7 @@
 	kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
 	kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,
 	rep=%p1%c\E[%p2%{1}%-%db, rin=\E[%p1%dT, s0ds=\E(B,
-	s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[2g,
+	s1ds=\E)B, s2ds=\E*B, s3ds=\E+B, tbc=\E[3g,
 	vpa=\E[%i%p1%dd, use=pcansi-m,
 
 ansi+enq|ncurses extension for ANSI ENQ,
@@ -617,11 +617,45 @@
 	clear=\E[2J, cub1=^H, cud1=\E[B, cuf1=\E[C,
 	cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, el=\E[k, home=\E[H,
 	is2=\E[m\E[?7h, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K,
-	khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s", rc=\E[u,
+	khome=^^, pfkey=\E[0;%p1%{58}%+%d;%p2"%s"p, rc=\E[u,
 	rmam=\E[?7l, sc=\E[s, smam=\E[?7h, u6=\E[%i%d;%dR,
 	u7=\E[6n, use=klone+color, use=klone+sgr8,
+
+# Keypad:	Home=\0G	Up=\0H	PrPag=\0I
+#		ka1,kh		kcuu1		kpp,ka3
+#
+#		Left=\0K	5=\0L		Right=\0M
+#		kcub1		kb2		kcuf1
+#
+#		End=\0O		Down=\0P	NxPag=\0Q
+#		kc1,kend	kcud1		kc3,knp
+#
+#		Ins=\0R		Del=\0S
+#		kich1		kdch1
+#
+# On keyboard with 12 function keys,
+#	shifted f-keys: F13-F24
+#	control f-keys: F25-F36
+#	alt f-keys:     F37-F48
+# The shift/control/alt keys do not modify each other, but alt overrides both,
+# and control overrides shift.
+#
+# <pfkey> capability for F1-F48 -TD
 ansi.sys|ANSI.SYS 3.1 and later versions,
-	el=\E[K, use=ansi.sys-old,
+	el=\E[K, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
+	kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
+	kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
+	kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
+	kf17=\0X, kf18=\0Y, kf19=\0Z, kf2=\0<, kf20=\0[, kf21=\0\\,
+	kf22=\0], kf23=\0\207, kf24=\0\210, kf25=\0\^, kf26=\0_,
+	kf27=\0`, kf28=\0a, kf29=\0b, kf3=\0=, kf30=\0c, kf31=\0d,
+	kf32=\0e, kf33=\0f, kf34=\0g, kf35=\0\211, kf36=\0\212,
+	kf37=\0h, kf38=\0i, kf39=\0j, kf4=\0>, kf40=\0k, kf41=\0l,
+	kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
+	kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
+	kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
+	pfkey=\E[0;%?%p1%{11}%<%t%'\:'%e%?%p1%{13}%<%t%'z'%e%?%p1%{23}%<%t%'G'%e%?%p1%{25}%<%t%'p'%e%?%p1%'#'%<%t%'E'%e%?%p1%'%'%<%t%'f'%e%?%p1%'/'%<%t%'C'%e%{92}%;%;%;%;%;%;%;%p1%+%d;%p2"%s"p,
+	use=ansi.sys-old,
 
 #
 # Define IBM PC keypad keys for vi as per MS-Kermit while using ANSI.SYS.
@@ -1005,7 +1039,7 @@
 	sc=\E7,
 	sgr=\E[10m\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p9%t;12%e;10%;%?%p7%t;9%;m,
 	sgr0=\E[0;10m, smacs=\E[12m, smso=\E[7m, smul=\E[4m,
-	tbc=\E[2g, vpa=\E[%i%p1%dd, use=klone+color,
+	tbc=\E[3g, vpa=\E[%i%p1%dd, use=klone+color,
 # (pc6300plus: removed ":KM=/usr/lib/ua/kmap.s5:"; renamed BO/EE/CI/CV -- esr)
 pc6300plus|AT&T 6300 plus,
 	OTbs, am, xon,
@@ -1416,7 +1450,7 @@
 	setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
 	sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1%|%t;7%;%?%p7%t;9%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[2g,
+	smul=\E[4m, tbc=\E[3g,
 	tsl=\E7\E1;24r\E[?6l\E[25;%i%p1%dH,
 #
 qansi|QNX ansi with console writes,
@@ -4285,6 +4319,30 @@
 	smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR,
 	u7=\E[6n, vpa=\E[%i%p1%dd,
 
+#### VWM
+#
+# vwmterm is a terminal emulator written for the VWM console window manager
+#
+vwmterm|(vwm term),
+	am, bce, ccc, mir, msgr, npc, xenl, xon,
+	colors#8, pairs#64,
+	acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+	clear=\E[H\E[J, cnorm=\E[?25h, cr=^M, cub1=^H,
+	cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+	cvvis=\E[?25h, dim=\E[2m, ed=\E[J, el=\E[K, home=\E[H,
+	il1=\E[L, ind=^J, invis=\E[8m, kcub1=\E[D, kcud1=\E[B,
+	kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
+	kf10=\E[21~, kf11=\E[22~, kf12=\E[23~, kf2=\E[[B,
+	kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
+	kf8=\E[19~, kf9=\E[20~, khome=\E[1~, knp=\E[6~, kpp=\E[5~,
+	rev=\E[7m, rmacs=\E[10m, rmam=\E[?7l, rmcup=\E[?1049l,
+	rs1=\E[H\E[J\E[m\Ec, setab=\E[4%p1%dm,
+	setaf=\E[3%p1%dm,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+	sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h,
+	smcup=\E[?1049h, smso=\E[3m, smul=\E[4m,
+
 #### MGR
 #
 # MGR is a Bell Labs window system lighter-weight than X.
@@ -4357,6 +4415,26 @@
 	sgr0=\E[m, smcup=\E7\E[?47h, smir=\E[4h, smso=\E[7m,
 	smul=\E[4m,
 
+# The codes supported by the term.el terminal emulation in GNU Emacs 22.2
+eterm-color|Emacs term.el terminal emulator term-protocol-version 0.96,
+	am, mir, msgr, xenl,
+	colors#8, cols#80, lines#24, pairs#64,
+	bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[J, cr=^M,
+	csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+	cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+	dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
+	el=\E[K, el1=\E[1K, home=\E[H, ht=^I, ich=\E[%p1%d@,
+	il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kbs=\177,
+	kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+	kdch1=\E[3~, kend=\E[4~, khome=\E[1~, kich1=\E[2~,
+	knp=\E[6~, kpp=\E[5~, op=\E[39;49m, rc=\E8, rev=\E[7m,
+	ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+	sc=\E7, setab=\E[%p1%'('%+%dm, setaf=\E[%p1%{30}%+%dm,
+	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;m,
+	sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+	u6=\E[%i%d;%dR, u7=\E[6n,
+
 # Entries for use by the `screen' program by Juergen Weigert,
 # Michael Schroeder, Oliver Laumann.  The screen and
 # screen-w entries came with version 3.7.1.  The screen2 and screen3 entries
@@ -4497,6 +4575,8 @@
 	cvvis@, flash@, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
 	kcuu1=\EOA, use=screen+fkeys, use=vt100+enq,
 	use=rxvt+pcfkeys, use=vt220+keypad, use=screen,
+screen.Eterm|screen in Eterm,
+	use=screen+fkeys, use=Eterm,
 # fix the backspace key
 screen.linux|screen in linux console,
 	bw,
@@ -5042,44 +5122,13 @@
 
 ### EMX termcap.dat compatibility modes
 #
-# Keypad:	Home=\0G	Up=\0H	PrPag=\0I
-#		ka1,kh		kcuu1		kpp,ka3
-#
-#		Left=\0K	5=\0L		Right=\0M
-#		kcub1		kb2		kcuf1
-#
-#		End=\0O		Down=\0P	NxPag=\0Q
-#		kc1,kend	kcud1		kc3,knp
-#
-#		Ins=\0R		Del=\0S
-#		kich1		kdch1
-#
-# On keyboard with 12 function keys,
-#	shifted f-keys: F13-F24
-#	control f-keys: F25-F36
-#	alt f-keys:     F37-F48
-# The shift/control/alt keys do not modify each other, but alt overrides both,
-# and control overrides shift.
-#
 # Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
 # no_color_video to inform the application that standout(1), underline(2)
 # reverse(4) and invisible(64) don't work with color.
 emx-base|DOS special keys,
 	bce, bw,
 	it#8, ncv#71,
-	bel=^G, ka1=\0G, ka3=\0I, kb2=\0L, kbs=^H, kc1=\0O, kc3=\0Q,
-	kcbt=\0^O, kcub1=\0K, kcud1=\0P, kcuf1=\0M, kcuu1=\0H,
-	kdch1=\0S, kend=\0O, kf1=\0;, kf10=\0D, kf11=\0\205,
-	kf12=\0\206, kf13=\0T, kf14=\0U, kf15=\0V, kf16=\0W,
-	kf17=\0X, kf18=\0Y, kf19=\0Z, kf2=\0<, kf20=\0[, kf21=\0\\,
-	kf22=\0], kf23=\0\207, kf24=\0\210, kf25=\0\^, kf26=\0_,
-	kf27=\0`, kf28=\0a, kf29=\0b, kf3=\0=, kf30=\0c, kf31=\0d,
-	kf32=\0e, kf33=\0f, kf34=\0g, kf35=\0\211, kf36=\0\212,
-	kf37=\0h, kf38=\0i, kf39=\0j, kf4=\0>, kf40=\0k, kf41=\0l,
-	kf42=\0m, kf43=\0n, kf44=\0o, kf45=\0p, kf46=\0q,
-	kf47=\0\213, kf48=\0\214, kf5=\0?, kf6=\0@, kf7=\0A, kf8=\0B,
-	kf9=\0C, khome=\0G, kich1=\0R, knp=\0Q, kpp=\0I,
-	use=ansi.sys,
+	bel=^G, use=ansi.sys,
 
 # Except for the "-emx" suffixes, these are as distributed with EMX 0.9b,
 # a Unix-style environment used on OS/2.  (Note that the suffix makes some
@@ -5247,7 +5296,7 @@
 	setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
 	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
 	sgr0=\E[0;10m, smacs=\E[11m, smir=\E[4h, smso=\E[7m,
-	smul=\E[4m, tbc=\E[2g, vpa=\E[%i%p1%dd, use=vt102+enq,
+	smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd, use=vt102+enq,
 
 # Key definitions:
 # The encodings for unshifted arrow keys, F1-F12, Home, Insert, etc.  match the
@@ -11060,7 +11109,7 @@
 	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
 	sgr0=\E[m,
 	smkx=\EP`>z~[[J`8xz~[[A`4xz~[[D`6xz~[[C`2xz~[[B\E\\,
-	smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
+	smm=\E[>52h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
 	vpa=\E[%p1%{1}%+%dd,
 
 aaa+rv|ann arbor ambassador in reverse video,
@@ -12147,7 +12196,7 @@
 	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
 	sgr0=\E[m, smacs=\017$<1>, smcup=\E[=4l\E[1;24w\E2\r,
 	smir=\E[4h, smkx=\E[1!z\E[0;3u, smso=\E[7m, smul=\E[4m,
-	tbc=\E[2g, vpa=\E[%p1%{1}%+%dd,
+	tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
 avt-rv-ns|concept avt in reverse video mode/no status line,
 	flash=\E[=205l$<200>\E[=205h, is1=\E[=103l\E[=205h,
 	use=avt-ns,
@@ -14584,7 +14633,7 @@
 	sc=\E[%y,
 	sgr=\E[%{0}%?%p1%p3%|%t%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;,
 	sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
-	tbc=\E[2g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
+	tbc=\E[3g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
 
 # p9-w: Prism-9 in 132 column mode
 # --------------------------------
@@ -16037,7 +16086,7 @@
 	rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, rmam=\E[?7l,
 	rmso=\E[m, rmul=\E[m,
 	sgr=\E[%?%p1%t7;%;%?%p2%t4;%;%?%p3%t7;%;%?%p4%t5;%;%?%p6%t1;%;m,
-	sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
+	sgr0=\E[m, smam=\E[?7h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
 	vpa=\E[%p1%{1}%+%dd,
 # The tek4125 emulates a vt100 incorrectly - the scrolling region
 # command is ignored.  The following entry replaces <csr> with the needed
@@ -17729,7 +17778,7 @@
 	rmul=\E[m, rs2=\E[?=h\Ec, s0ds=^O, s1ds=^N,
 	sgr=\E[0%?%p1%p3%|%t;7%;%?%p2%t;4%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
 	sgr0=\E[m\017, smacs=^N, smcup=\E[?>h\EPY99\:98\E\\,
-	smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[2g,
+	smir=\E[4h, smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
 	tsl=\EPY99\:98\E\\\E[0;98v\E[2;7m,
 tws2102-sna|dku7102-sna|BULL Questar tws2102 for SNA,
 	dsl=\E[0;98v\E[2J\E[v, fsl=\E[v, is3=\Eb, tsl=\E[0;98v,
@@ -21791,6 +21840,25 @@
 #	* add "aterm" -TD
 #	* add "linux2.6.26" -TD
 #
+# 2008-11-15
+#	* change several \E[2g (clear tab at current column) to \E[3g
+#	  (clear all tabs) to match definition for tbc capability -TD
+#
+# 2008-11-29
+#	* add eterm-color -TD
+#
+# 2009-01-10
+#	* add screen.Eterm -TD
+#
+# 2009-03-28
+#	* correct typo in pfkey of ansi.sys-old
+#	  (report by Kalle Olavi Niemitalo)
+#	* move function- and cursor-keys from emx-base to ansi.sys, and create
+#	  a pfkey capability which handles F1-F48 -TD
+#
+# 2009-05-02
+#	* add vwmterm entry (Bryan Christ)
+#
 # The following sets edit modes for GNU EMACS.
 # Local Variables:
 # fill-prefix:"\t"
diff -Naur ncurses-5.7.orig/mk-1st.awk ncurses-5.7/mk-1st.awk
--- ncurses-5.7.orig/mk-1st.awk	2007-03-24 15:10:55.000000000 -0700
+++ ncurses-5.7/mk-1st.awk	2009-06-05 14:01:30.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: mk-1st.awk,v 1.78 2007/03/24 22:10:55 tom Exp $
+# $Id: mk-1st.awk,v 1.81 2009/03/28 18:59:51 Charles.Wilson Exp $
 ##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2008,2009 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"), #
@@ -59,7 +59,7 @@
 		return ( subset ~ /^ticlib$/ );
 	}
 function is_termlib() {
-		return ( subset ~ /^(ticlib\+)?termlib(\+ext_tinfo)?$/ );
+		return ( subset ~ /^(ticlib\+)?termlib((\+[^+ ]+)*\+ext_tinfo)?$/ );
 	}
 # see lib_name
 function lib_name_of(a_name) {
@@ -386,7 +386,13 @@
 				}
 				end_name = lib_name;
 				printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
-				printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(SHLIB_LIST)\n", compile, lib_name, OBJS
+				if ( is_ticlib() ) {
+					printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TICS_LIST)\n", compile, lib_name, OBJS
+				} else if ( is_termlib() ) {
+					printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(TINFO_LIST)\n", compile, lib_name, OBJS
+				} else {
+					printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(LT_UNDEF) $(SHLIB_LIST)\n", compile, lib_name, OBJS
+				}
 				print  ""
 				print  "install \\"
 				print  "install.libs \\"
@@ -404,7 +410,7 @@
 			{
 				end_name = lib_name;
 				printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS
-				printf "\t$(AR) $(AR_OPTS) $@ $?\n"
+				printf "\t$(AR) $(ARFLAGS) $@ $?\n"
 				printf "\t$(RANLIB) $@\n"
 				if ( host == "vxworks" )
 				{
diff -Naur ncurses-5.7.orig/ncurses/base/define_key.c ncurses-5.7/ncurses/base/define_key.c
--- ncurses-5.7.orig/ncurses/base/define_key.c	2006-12-30 15:23:31.000000000 -0800
+++ ncurses-5.7/ncurses/base/define_key.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2009 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            *
@@ -27,33 +27,34 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey                    1997-on                     *
+ *  Author: Thomas E. Dickey                        1997-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: define_key.c,v 1.13 2006/12/30 23:23:31 tom Exp $")
+MODULE_ID("$Id: define_key.c,v 1.17 2009/05/09 18:30:16 tom Exp $")
 
 NCURSES_EXPORT(int)
-define_key(const char *str, int keycode)
+NCURSES_SP_NAME(define_key) (NCURSES_SP_DCLx const char *str, int keycode)
 {
     int code = ERR;
 
-    T((T_CALLED("define_key(%s,%d)"), _nc_visbuf(str), keycode));
-    if (SP == 0) {
+    T((T_CALLED("define_key(%p, %s,%d)"), SP_PARM, _nc_visbuf(str), keycode));
+    if (SP_PARM == 0 || !HasTInfoTerminal(SP_PARM)) {
 	code = ERR;
     } else if (keycode > 0) {
 	unsigned ukey = (unsigned) keycode;
 
 	if (str != 0) {
-	    define_key(str, 0);
-	} else if (has_key(keycode)) {
-	    while (_nc_remove_key(&(SP->_keytry), ukey))
+	    NCURSES_SP_NAME(define_key) (NCURSES_SP_ARGx str, 0);
+	} else if (NCURSES_SP_NAME(has_key) (NCURSES_SP_ARGx keycode)) {
+	    while (_nc_remove_key(&(SP_PARM->_keytry), ukey))
 		code = OK;
 	}
 	if (str != 0) {
-	    if (key_defined(str) == 0) {
-		if (_nc_add_to_try(&(SP->_keytry), str, ukey) == OK) {
+	    if (NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx str) == 0) {
+		if (_nc_add_to_try(&(SP_PARM->_keytry), str, ukey) == OK) {
 		    code = OK;
 		} else {
 		    code = ERR;
@@ -63,8 +64,16 @@
 	    }
 	}
     } else {
-	while (_nc_remove_string(&(SP->_keytry), str))
+	while (_nc_remove_string(&(SP_PARM->_keytry), str))
 	    code = OK;
     }
     returnCode(code);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+define_key(const char *str, int keycode)
+{
+    return NCURSES_SP_NAME(define_key) (CURRENT_SCREEN, str, keycode);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/keybound.c ncurses-5.7/ncurses/base/keybound.c
--- ncurses-5.7.orig/ncurses/base/keybound.c	2006-06-17 11:19:24.000000000 -0700
+++ ncurses-5.7/ncurses/base/keybound.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2006,2009 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            *
@@ -27,25 +27,34 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey                 1999-on                        *
+ *  Author: Thomas E. Dickey                        1999-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: keybound.c,v 1.7 2006/06/17 18:19:24 tom Exp $")
+MODULE_ID("$Id: keybound.c,v 1.9 2009/02/21 16:32:34 tom Exp $")
 
 /*
  * Returns the count'th string definition which is associated with the
  * given keycode.  The result is malloc'd, must be freed by the caller.
  */
 NCURSES_EXPORT(char *)
-keybound(int code, int count)
+NCURSES_SP_NAME(keybound) (NCURSES_SP_DCLx int code, int count)
 {
     char *result = 0;
 
-    T((T_CALLED("keybound(%d,%d)"), code, count));
-    if (SP != 0 && code >= 0) {
-	result = _nc_expand_try(SP->_keytry, (unsigned) code, &count, 0);
+    T((T_CALLED("keybound(%p, %d,%d)"), SP_PARM, code, count));
+    if (SP_PARM != 0 && code >= 0) {
+	result = _nc_expand_try(SP_PARM->_keytry, (unsigned) code, &count, 0);
     }
     returnPtr(result);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(char *)
+keybound(int code, int count)
+{
+    return NCURSES_SP_NAME(keybound) (CURRENT_SCREEN, code, count);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/key_defined.c ncurses-5.7/ncurses/base/key_defined.c
--- ncurses-5.7.orig/ncurses/base/key_defined.c	2006-12-30 15:22:55.000000000 -0800
+++ ncurses-5.7/ncurses/base/key_defined.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2003,2006 Free Software Foundation, Inc.                   *
+ * Copyright (c) 2003-2006,2009 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            *
@@ -32,7 +32,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: key_defined.c,v 1.6 2006/12/30 23:22:55 tom Exp $")
+MODULE_ID("$Id: key_defined.c,v 1.8 2009/02/21 16:24:26 tom Exp $")
 
 static int
 find_definition(TRIES * tree, const char *str)
@@ -65,14 +65,22 @@
  * Otherwise, return the keycode's value (neither OK/ERR).
  */
 NCURSES_EXPORT(int)
-key_defined(const char *str)
+NCURSES_SP_NAME(key_defined) (NCURSES_SP_DCLx const char *str)
 {
     int code = ERR;
 
-    T((T_CALLED("key_defined(%s)"), _nc_visbuf(str)));
-    if (SP != 0 && str != 0) {
-	code = find_definition(SP->_keytry, str);
+    T((T_CALLED("key_defined(%p, %s)"), SP_PARM, _nc_visbuf(str)));
+    if (SP_PARM != 0 && str != 0) {
+	code = find_definition(SP_PARM->_keytry, str);
     }
 
     returnCode(code);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+key_defined(const char *str)
+{
+    return NCURSES_SP_NAME(key_defined) (CURRENT_SCREEN, str);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/keyok.c ncurses-5.7/ncurses/base/keyok.c
--- ncurses-5.7.orig/ncurses/base/keyok.c	2006-12-30 08:22:33.000000000 -0800
+++ ncurses-5.7/ncurses/base/keyok.c	2009-06-05 14:01:14.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2009 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            *
@@ -27,12 +27,13 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey            1997-on                             *
+ *  Author: Thomas E. Dickey                        1997-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: keyok.c,v 1.7 2006/12/30 16:22:33 tom Exp $")
+MODULE_ID("$Id: keyok.c,v 1.8 2009/02/15 00:31:38 tom Exp $")
 
 /*
  * Enable (or disable) ncurses' interpretation of a keycode by adding (or
@@ -45,7 +46,7 @@
  */
 
 NCURSES_EXPORT(int)
-keyok(int c, bool flag)
+NCURSES_SP_NAME(keyok) (NCURSES_SP_DCLx int c, bool flag)
 {
     int code = ERR;
     int count = 0;
@@ -55,18 +56,18 @@
     if (c >= 0) {
 	unsigned ch = (unsigned) c;
 	if (flag) {
-	    while ((s = _nc_expand_try(SP->_key_ok, ch, &count, 0)) != 0
-		   && _nc_remove_key(&(SP->_key_ok), ch)) {
-		code = _nc_add_to_try(&(SP->_keytry), s, ch);
+	    while ((s = _nc_expand_try(SP_PARM->_key_ok, ch, &count, 0)) != 0
+		   && _nc_remove_key(&(SP_PARM->_key_ok), ch)) {
+		code = _nc_add_to_try(&(SP_PARM->_keytry), s, ch);
 		free(s);
 		count = 0;
 		if (code != OK)
 		    break;
 	    }
 	} else {
-	    while ((s = _nc_expand_try(SP->_keytry, ch, &count, 0)) != 0
-		   && _nc_remove_key(&(SP->_keytry), ch)) {
-		code = _nc_add_to_try(&(SP->_key_ok), s, ch);
+	    while ((s = _nc_expand_try(SP_PARM->_keytry, ch, &count, 0)) != 0
+		   && _nc_remove_key(&(SP_PARM->_keytry), ch)) {
+		code = _nc_add_to_try(&(SP_PARM->_key_ok), s, ch);
 		free(s);
 		count = 0;
 		if (code != OK)
@@ -76,3 +77,11 @@
     }
     returnCode(code);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+keyok(int c, bool flag)
+{
+    return NCURSES_SP_NAME(keyok) (CURRENT_SCREEN, c, flag);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/legacy_coding.c ncurses-5.7/ncurses/base/legacy_coding.c
--- ncurses-5.7.orig/ncurses/base/legacy_coding.c	2005-12-17 15:38:17.000000000 -0800
+++ ncurses-5.7/ncurses/base/legacy_coding.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2005 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2005,2009 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            *
@@ -27,22 +27,31 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey                                                *
+ *  Author: Thomas E. Dickey          2005                                  *
+ *          Juergen Pfeifer           2009                                  *
  ****************************************************************************/
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: legacy_coding.c,v 1.2 2005/12/17 23:38:17 tom Exp $")
+MODULE_ID("$Id: legacy_coding.c,v 1.4 2009/02/21 16:16:38 tom Exp $")
 
 NCURSES_EXPORT(int)
-use_legacy_coding(int level)
+NCURSES_SP_NAME(use_legacy_coding) (NCURSES_SP_DCLx int level)
 {
     int result = ERR;
 
-    T((T_CALLED("use_legacy_coding(%d)"), level));
-    if (level >= 0 && level <= 2 && SP != 0) {
-	result = SP->_legacy_coding;
-	SP->_legacy_coding = level;
+    T((T_CALLED("use_legacy_coding(%p,%d)"), SP_PARM, level));
+    if (level >= 0 && level <= 2 && SP_PARM != 0) {
+	result = SP_PARM->_legacy_coding;
+	SP_PARM->_legacy_coding = level;
     }
     returnCode(result);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+use_legacy_coding(int level)
+{
+    return NCURSES_SP_NAME(use_legacy_coding) (CURRENT_SCREEN, level);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_addch.c ncurses-5.7/ncurses/base/lib_addch.c
--- ncurses-5.7.orig/ncurses/base/lib_addch.c	2008-08-16 12:20:04.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_addch.c	2009-06-05 14:01:52.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -36,7 +36,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_addch.c,v 1.113 2008/08/16 19:20:04 tom Exp $")
+MODULE_ID("$Id: lib_addch.c,v 1.119 2009/05/15 23:47:26 tom Exp $")
 
 static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
 
@@ -260,20 +260,37 @@
     /*
      * Build up multibyte characters until we have a wide-character.
      */
+#if NCURSES_SP_FUNCS
+#define DeriveSP() SCREEN *sp = _nc_screen_of(win);
+#else
+#define DeriveSP() /*nothing*/
+#endif
     if_WIDEC({
+	DeriveSP();
 	if (WINDOW_EXT(win, addch_used) != 0 || !Charable(ch)) {
 	    int len = _nc_build_wch(win, CHREF(ch));
 
 	    if (len >= -1) {
-		/* handle EILSEQ */
+		attr_t attr = AttrOf(ch);
+
+		/* handle EILSEQ (i.e., when len >= -1) */
 		if (is8bits(CharOf(ch))) {
-		    const char *s = unctrl((chtype) CharOf(ch));
-		    if (s[1] != 0) {
-			return waddstr(win, s);
+		    int rc = OK;
+		    const char *s = NCURSES_SP_NAME(unctrl)
+		      (NCURSES_SP_ARGx (chtype) CharOf(ch));
+
+		    if (s[1] != '\0') {
+			while (*s != '\0') {
+			    rc = waddch(win, UChar(*s) | attr);
+			    if (rc != OK)
+				break;
+			    ++s;
+			}
+			return rc;
 		    }
 		}
 		if (len == -1)
-		    return waddch(win, ' ');
+		    return waddch(win, ' ' | attr);
 	    } else {
 		return OK;
 	    }
@@ -327,6 +344,7 @@
 		    return ERR;
 		x = win->_curx;
 		y = win->_cury;
+		line = win->_line + y;
 	    }
 	    /*
 	     * Check for cells which are orphaned by adding this character, set
@@ -394,8 +412,11 @@
 {
     NCURSES_SIZE_T x, y;
     chtype t = CharOf(ch);
-    const char *s = unctrl(t);
-
+#if USE_WIDEC_SUPPORT || NCURSES_SP_FUNCS || USE_REENTRANT
+    SCREEN *sp = _nc_screen_of(win);
+#endif
+    const char *s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx t);
+    int tabsize = 8;
     /*
      * If we are using the alternate character set, forget about locale.
      * Otherwise, if unctrl() returns a single-character or the locale
@@ -404,14 +425,14 @@
     if ((AttrOf(ch) & A_ALTCHARSET)
 	|| (
 #if USE_WIDEC_SUPPORT
-	       (SP != 0 && SP->_legacy_coding) &&
+	       (sp != 0 && sp->_legacy_coding) &&
 #endif
 	       s[1] == 0
 	)
 	|| (
 	       isprint(t)
 #if USE_WIDEC_SUPPORT
-	       || ((SP == 0 || !SP->_legacy_coding) &&
+	       || ((sp == 0 || !sp->_legacy_coding) &&
 		   (WINDOW_EXT(win, addch_used)
 		    || !_nc_is_charable(CharOf(ch))))
 #endif
@@ -427,8 +448,12 @@
 
     switch (t) {
     case '\t':
-	x += (TABSIZE - (x % TABSIZE));
-
+#if USE_REENTRANT
+	tabsize = sp->_TABSIZE;
+#else
+	tabsize = TABSIZE;
+#endif
+	x += (tabsize - (x % tabsize));
 	/*
 	 * Space-fill the tab on the bottom line so that we'll get the
 	 * "correct" cursor position.
diff -Naur ncurses-5.7.orig/ncurses/base/lib_beep.c ncurses-5.7/ncurses/base/lib_beep.c
--- ncurses-5.7.orig/ncurses/base/lib_beep.c	2005-04-09 08:20:04.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_beep.c	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -40,9 +41,12 @@
  */
 
 #include <curses.priv.h>
-#include <term.h>		/* beep, flash */
 
-MODULE_ID("$Id: lib_beep.c,v 1.10 2005/04/09 15:20:04 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
+
+MODULE_ID("$Id: lib_beep.c,v 1.14 2009/05/23 19:33:20 tom Exp $")
 
 /*
  *	beep()
@@ -53,12 +57,16 @@
  */
 
 NCURSES_EXPORT(int)
-beep(void)
+NCURSES_SP_NAME(beep) (NCURSES_SP_DCL0)
 {
     int res = ERR;
 
-    T((T_CALLED("beep()")));
+    T((T_CALLED("beep(%p)"), SP_PARM));
 
+#ifdef USE_TERM_DRIVER
+    if (SP_PARM != 0)
+	res = CallDriver_1(SP_PARM, doBeepOrFlash, TRUE);
+#else
     /* FIXME: should make sure that we are not in altchar mode */
     if (cur_term == 0) {
 	res = ERR;
@@ -71,6 +79,15 @@
 	res = putp(flash_screen);
 	_nc_flush();
     }
+#endif
 
     returnCode(res);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+beep(void)
+{
+    return NCURSES_SP_NAME(beep) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_color.c ncurses-5.7/ncurses/base/lib_color.c
--- ncurses-5.7.orig/ncurses/base/lib_color.c	2007-04-07 10:07:28.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_color.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /* lib_color.c
@@ -42,7 +43,11 @@
 #include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: lib_color.c,v 1.85 2007/04/07 17:07:28 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_color.c,v 1.91 2009/05/10 00:48:29 tom Exp $")
 
 /*
  * These should be screen structure members.  They need to be globals for
@@ -108,6 +113,13 @@
 };
 /* *INDENT-ON* */
 
+/*
+ * Ensure that we use color pairs only when colors have been started, and also
+ * that the index is within the limits of the table which we allocated.
+ */
+#define ValidPair(pair) \
+    ((SP != 0) && (pair >= 0) && (pair < SP->_pair_limit) && SP->_coloron)
+
 #if NCURSES_EXT_FUNCS
 /*
  * These are called from _nc_do_color(), which in turn is called from
@@ -147,31 +159,39 @@
 }
 
 static void
-set_background_color(int bg, int (*outc) (int))
+set_background_color(NCURSES_SP_DCLx int bg, NCURSES_SP_OUTC outc)
 {
     if (set_a_background) {
 	TPUTS_TRACE("set_a_background");
-	tputs(TPARM_1(set_a_background, bg), 1, outc);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_1(set_a_background, bg),
+				1, outc);
     } else {
 	TPUTS_TRACE("set_background");
-	tputs(TPARM_1(set_background, toggled_colors(bg)), 1, outc);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_1(set_background, toggled_colors(bg)),
+				1, outc);
     }
 }
 
 static void
-set_foreground_color(int fg, int (*outc) (int))
+set_foreground_color(NCURSES_SP_DCLx int fg, NCURSES_SP_OUTC outc)
 {
     if (set_a_foreground) {
 	TPUTS_TRACE("set_a_foreground");
-	tputs(TPARM_1(set_a_foreground, fg), 1, outc);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_1(set_a_foreground, fg),
+				1, outc);
     } else {
 	TPUTS_TRACE("set_foreground");
-	tputs(TPARM_1(set_foreground, toggled_colors(fg)), 1, outc);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_1(set_foreground, toggled_colors(fg)),
+				1, outc);
     }
 }
 
 static void
-init_color_table(void)
+init_color_table(NCURSES_SP_DCL0)
 {
     const color_t *tp;
     int n;
@@ -200,7 +220,7 @@
  * Reset the color pair, e.g., to whatever color pair 0 is.
  */
 static bool
-reset_color_pair(void)
+reset_color_pair(NCURSES_SP_DCL0)
 {
     bool result = FALSE;
 
@@ -220,13 +240,16 @@
 bool
 _nc_reset_colors(void)
 {
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = CURRENT_SCREEN;
+#endif
     int result = FALSE;
 
     T((T_CALLED("_nc_reset_colors()")));
     if (SP->_color_defs > 0)
 	SP->_color_defs = -(SP->_color_defs);
 
-    if (reset_color_pair())
+    if (reset_color_pair(NCURSES_SP_ARG))
 	result = TRUE;
     if (orig_colors != 0) {
 	TPUTS_TRACE("orig_colors");
@@ -237,45 +260,60 @@
 }
 
 NCURSES_EXPORT(int)
-start_color(void)
+NCURSES_SP_NAME(start_color) (NCURSES_SP_DCL0)
 {
     int result = ERR;
 
     T((T_CALLED("start_color()")));
 
-    if (SP == 0) {
+    if (SP_PARM == 0) {
 	result = ERR;
-    } else if (SP->_coloron) {
+    } else if (SP_PARM->_coloron) {
 	result = OK;
     } else {
 
-	if (reset_color_pair() != TRUE) {
-	    set_foreground_color(default_fg(), _nc_outch);
-	    set_background_color(default_bg(), _nc_outch);
+	if (reset_color_pair(NCURSES_SP_ARG) != TRUE) {
+	    set_foreground_color(NCURSES_SP_ARGx
+				 default_fg(),
+				 NCURSES_SP_NAME(_nc_outch));
+	    set_background_color(NCURSES_SP_ARGx
+				 default_bg(),
+				 NCURSES_SP_NAME(_nc_outch));
 	}
 
 	if (max_pairs > 0 && max_colors > 0) {
-	    SP->_pair_count = max_pairs;
-	    SP->_color_count = max_colors;
+	    SP_PARM->_pair_limit = max_pairs;
+
+#if NCURSES_EXT_FUNCS
+	    /*
+	     * If using default colors, allocate extra space in table to
+	     * allow for default-color as a component of a color-pair.
+	     */
+	    SP_PARM->_pair_limit += (1 + (2 * max_colors));
+#endif
+	    SP_PARM->_pair_count = max_pairs;
+	    SP_PARM->_color_count = max_colors;
 #if !USE_REENTRANT
 	    COLOR_PAIRS = max_pairs;
 	    COLORS = max_colors;
 #endif
 
-	    if ((SP->_color_pairs = TYPE_CALLOC(colorpair_t,
-						max_pairs)) != 0) {
-		if ((SP->_color_table = TYPE_CALLOC(color_t,
-						    max_colors)) != 0) {
-		    SP->_color_pairs[0] = PAIR_OF(default_fg(), default_bg());
-		    init_color_table();
+	    SP_PARM->_color_pairs = TYPE_CALLOC(colorpair_t,
+						SP_PARM->_pair_limit);
+	    if (SP_PARM->_color_pairs != 0) {
+		SP_PARM->_color_table = TYPE_CALLOC(color_t, max_colors);
+		if (SP_PARM->_color_table != 0) {
+		    SP_PARM->_color_pairs[0] = PAIR_OF(default_fg(),
+						       default_bg());
+		    init_color_table(NCURSES_SP_ARG);
 
 		    T(("started color: COLORS = %d, COLOR_PAIRS = %d",
 		       COLORS, COLOR_PAIRS));
 
-		    SP->_coloron = 1;
+		    SP_PARM->_coloron = 1;
 		    result = OK;
-		} else if (SP->_color_pairs != 0) {
-		    FreeAndNull(SP->_color_pairs);
+		} else if (SP_PARM->_color_pairs != 0) {
+		    FreeAndNull(SP_PARM->_color_pairs);
 		}
 	    }
 	} else {
@@ -285,6 +323,14 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+start_color(void)
+{
+    return NCURSES_SP_NAME(start_color) (CURRENT_SCREEN);
+}
+#endif
+
 /* This function was originally written by Daniel Weaver <danw@znyx.com> */
 static void
 rgb2hls(short r, short g, short b, short *h, short *l, short *s)
@@ -328,24 +374,72 @@
  * values.
  */
 NCURSES_EXPORT(int)
-init_pair(short pair, short f, short b)
+NCURSES_SP_NAME(init_pair) (NCURSES_SP_DCLx short pair, short f, short b)
 {
     colorpair_t result;
+    colorpair_t previous;
 
     T((T_CALLED("init_pair(%d,%d,%d)"), pair, f, b));
 
-    if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron)
+    if (!ValidPair(pair))
 	returnCode(ERR);
+
+    previous = SP_PARM->_color_pairs[pair];
 #if NCURSES_EXT_FUNCS
-    if (SP->_default_color) {
-	if (f < 0)
+    if (SP_PARM->_default_color) {
+	bool isDefault = FALSE;
+	bool wasDefault = FALSE;
+	int default_pairs = SP_PARM->_default_pairs;
+
+	/*
+	 * Map caller's color number, e.g., -1, 0, 1, .., 7, etc., into
+	 * internal unsigned values which we will store in the _color_pairs[]
+	 * table.
+	 */
+	if (isDefaultColor(f)) {
 	    f = COLOR_DEFAULT;
-	if (b < 0)
+	    isDefault = TRUE;
+	} else if (!OkColorHi(f)) {
+	    returnCode(ERR);
+	}
+
+	if (isDefaultColor(b)) {
 	    b = COLOR_DEFAULT;
-	if (!OkColorHi(f) && !isDefaultColor(f))
+	    isDefault = TRUE;
+	} else if (!OkColorHi(b)) {
 	    returnCode(ERR);
-	if (!OkColorHi(b) && !isDefaultColor(b))
+	}
+
+	/*
+	 * Check if the table entry that we are going to init/update used
+	 * default colors.
+	 */
+	if ((FORE_OF(previous) == COLOR_DEFAULT)
+	    || (BACK_OF(previous) == COLOR_DEFAULT))
+	    wasDefault = TRUE;
+
+	/*
+	 * Keep track of the number of entries in the color pair table which
+	 * used a default color.
+	 */
+	if (isDefault && !wasDefault) {
+	    ++default_pairs;
+	} else if (wasDefault && !isDefault) {
+	    --default_pairs;
+	}
+
+	/*
+	 * As an extension, ncurses allows the pair number to exceed the
+	 * terminal's color_pairs value for pairs using a default color.
+	 *
+	 * Note that updating a pair which used a default color with one
+	 * that does not will decrement the count - and possibly interfere
+	 * with sequentially adding new pairs.
+	 */
+	if (pair > (SP_PARM->_pair_count + default_pairs)) {
 	    returnCode(ERR);
+	}
+	SP_PARM->_default_pairs = default_pairs;
     } else
 #endif
     {
@@ -361,8 +455,8 @@
      * pair colors with the new ones).
      */
     result = PAIR_OF(f, b);
-    if (SP->_color_pairs[pair] != 0
-	&& SP->_color_pairs[pair] != result) {
+    if (previous != 0
+	&& previous != result) {
 	int y, x;
 
 	for (y = 0; y <= curscr->_maxy; y++) {
@@ -381,9 +475,9 @@
 		_nc_make_oldhash(y);
 	}
     }
-    SP->_color_pairs[pair] = result;
-    if (GET_SCREEN_PAIR(SP) == pair)
-	SET_SCREEN_PAIR(SP, (chtype) (~0));	/* force attribute update */
+    SP_PARM->_color_pairs[pair] = result;
+    if (GET_SCREEN_PAIR(SP_PARM) == pair)
+	SET_SCREEN_PAIR(SP_PARM, (chtype) (~0));	/* force attribute update */
 
     if (initialize_pair && InPalette(f) && InPalette(b)) {
 	const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette;
@@ -404,54 +498,79 @@
     returnCode(OK);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+init_pair(short pair, short f, short b)
+{
+    return NCURSES_SP_NAME(init_pair) (CURRENT_SCREEN, pair, f, b);
+}
+#endif
+
 #define okRGB(n) ((n) >= 0 && (n) <= 1000)
 
 NCURSES_EXPORT(int)
-init_color(short color, short r, short g, short b)
+NCURSES_SP_NAME(init_color) (NCURSES_SP_DCLx
+			     short color, short r, short g, short b)
 {
     int result = ERR;
 
     T((T_CALLED("init_color(%d,%d,%d,%d)"), color, r, g, b));
 
     if (initialize_color != NULL
-	&& SP != 0
-	&& SP->_coloron
+	&& SP_PARM != 0
+	&& SP_PARM->_coloron
 	&& (color >= 0 && OkColorHi(color))
 	&& (okRGB(r) && okRGB(g) && okRGB(b))) {
 
-	SP->_color_table[color].init = 1;
-	SP->_color_table[color].r = r;
-	SP->_color_table[color].g = g;
-	SP->_color_table[color].b = b;
+	SP_PARM->_color_table[color].init = 1;
+	SP_PARM->_color_table[color].r = r;
+	SP_PARM->_color_table[color].g = g;
+	SP_PARM->_color_table[color].b = b;
 
 	if (hue_lightness_saturation) {
 	    rgb2hls(r, g, b,
-		    &SP->_color_table[color].red,
-		    &SP->_color_table[color].green,
-		    &SP->_color_table[color].blue);
+		    &SP_PARM->_color_table[color].red,
+		    &SP_PARM->_color_table[color].green,
+		    &SP_PARM->_color_table[color].blue);
 	} else {
-	    SP->_color_table[color].red = r;
-	    SP->_color_table[color].green = g;
-	    SP->_color_table[color].blue = b;
+	    SP_PARM->_color_table[color].red = r;
+	    SP_PARM->_color_table[color].green = g;
+	    SP_PARM->_color_table[color].blue = b;
 	}
 
 	TPUTS_TRACE("initialize_color");
 	putp(TPARM_4(initialize_color, color, r, g, b));
-	SP->_color_defs = max(color + 1, SP->_color_defs);
+	SP_PARM->_color_defs = max(color + 1, SP_PARM->_color_defs);
 	result = OK;
     }
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+init_color(short color, short r, short g, short b)
+{
+    return NCURSES_SP_NAME(init_color) (CURRENT_SCREEN, color, r, g, b);
+}
+#endif
+
 NCURSES_EXPORT(bool)
-can_change_color(void)
+NCURSES_SP_NAME(can_change_color) (NCURSES_SP_DCL0)
 {
     T((T_CALLED("can_change_color()")));
     returnCode((can_change != 0) ? TRUE : FALSE);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(bool)
-has_colors(void)
+can_change_color(void)
+{
+    return NCURSES_SP_NAME(can_change_color) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(bool)
+NCURSES_SP_NAME(has_colors) (NCURSES_SP_DCL0)
 {
     T((T_CALLED("has_colors()")));
     returnCode((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs)
@@ -462,18 +581,27 @@
 		    || set_color_pair)) ? TRUE : FALSE);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(bool)
+has_colors(void)
+{
+    return NCURSES_SP_NAME(has_colors) (CURRENT_SCREEN);
+}
+#endif
+
 NCURSES_EXPORT(int)
-color_content(short color, short *r, short *g, short *b)
+NCURSES_SP_NAME(color_content) (NCURSES_SP_DCLx short color, short *r,
+				short *g, short *b)
 {
     int result;
 
     T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b));
-    if (color < 0 || !OkColorHi(color) || SP == 0 || !SP->_coloron) {
+    if (color < 0 || !OkColorHi(color) || SP_PARM == 0 || !SP_PARM->_coloron) {
 	result = ERR;
     } else {
-	NCURSES_COLOR_T c_r = SP->_color_table[color].red;
-	NCURSES_COLOR_T c_g = SP->_color_table[color].green;
-	NCURSES_COLOR_T c_b = SP->_color_table[color].blue;
+	NCURSES_COLOR_T c_r = SP_PARM->_color_table[color].red;
+	NCURSES_COLOR_T c_g = SP_PARM->_color_table[color].green;
+	NCURSES_COLOR_T c_b = SP_PARM->_color_table[color].blue;
 
 	if (r)
 	    *r = c_r;
@@ -489,18 +617,27 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-pair_content(short pair, short *f, short *b)
+color_content(short color, short *r, short *g, short *b)
+{
+    return NCURSES_SP_NAME(color_content) (CURRENT_SCREEN, color, r, g, b);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(pair_content) (NCURSES_SP_DCLx short pair, short *f,
+			       short *b)
 {
     int result;
 
     T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b));
 
-    if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron) {
+    if (!ValidPair(pair)) {
 	result = ERR;
     } else {
-	NCURSES_COLOR_T fg = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK);
-	NCURSES_COLOR_T bg = (SP->_color_pairs[pair] & C_MASK);
+	NCURSES_COLOR_T fg = FORE_OF(SP_PARM->_color_pairs[pair]);
+	NCURSES_COLOR_T bg = BACK_OF(SP_PARM->_color_pairs[pair]);
 
 #if NCURSES_EXT_FUNCS
 	if (fg == COLOR_DEFAULT)
@@ -520,19 +657,33 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+pair_content(short pair, short *f, short *b)
+{
+    return NCURSES_SP_NAME(pair_content) (CURRENT_SCREEN, pair, f, b);
+}
+#endif
+
 NCURSES_EXPORT(void)
-_nc_do_color(short old_pair, short pair, bool reverse, int (*outc) (int))
+NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_DCLx
+			       short old_pair,
+			       short pair,
+			       bool reverse,
+			       NCURSES_SP_OUTC outc)
 {
     NCURSES_COLOR_T fg = COLOR_DEFAULT;
     NCURSES_COLOR_T bg = COLOR_DEFAULT;
     NCURSES_COLOR_T old_fg, old_bg;
 
-    if (pair < 0 || pair >= COLOR_PAIRS) {
+    if (!ValidPair(pair)) {
 	return;
     } else if (pair != 0) {
 	if (set_color_pair) {
 	    TPUTS_TRACE("set_color_pair");
-	    tputs(TPARM_1(set_color_pair, pair), 1, outc);
+	    NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				    TPARM_1(set_color_pair, pair),
+				    1, outc);
 	    return;
 	} else if (SP != 0) {
 	    pair_content((short) pair, &fg, &bg);
@@ -553,17 +704,17 @@
 	    if (SP->_has_sgr_39_49
 		&& isDefaultColor(old_bg)
 		&& !isDefaultColor(old_fg)) {
-		tputs("\033[39m", 1, outc);
+		NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx "\033[39m", 1, outc);
 	    } else if (SP->_has_sgr_39_49
 		       && isDefaultColor(old_fg)
 		       && !isDefaultColor(old_bg)) {
-		tputs("\033[49m", 1, outc);
+		NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx "\033[49m", 1, outc);
 	    } else
 #endif
-		reset_color_pair();
+		reset_color_pair(NCURSES_SP_ARG);
 	}
     } else {
-	reset_color_pair();
+	reset_color_pair(NCURSES_SP_ARG);
 	if (old_pair < 0)
 	    return;
     }
@@ -585,9 +736,22 @@
 		     fg, bg));
 
     if (!isDefaultColor(fg)) {
-	set_foreground_color(fg, outc);
+	set_foreground_color(NCURSES_SP_ARGx fg, outc);
     }
     if (!isDefaultColor(bg)) {
-	set_background_color(bg, outc);
+	set_background_color(NCURSES_SP_ARGx bg, outc);
     }
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_do_color(short old_pair, short pair, bool reverse, NCURSES_OUTC outc)
+{
+    SetSafeOutcWrapper(outc);
+    NCURSES_SP_NAME(_nc_do_color) (CURRENT_SCREEN,
+				   old_pair,
+				   pair,
+				   reverse,
+				   _nc_outc_wrapper);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_colorset.c ncurses-5.7/ncurses/base/lib_colorset.c
--- ncurses-5.7.orig/ncurses/base/lib_colorset.c	2005-01-29 13:40:51.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_colorset.c	2009-06-05 14:01:11.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -28,7 +28,7 @@
 
 /****************************************************************************
  *  Author: Juergen Pfeifer,  1998                                          *
- *     and: Thomas E. Dickey, 2005                                          *
+ *     and: Thomas E. Dickey, 2005-on                                       *
  ****************************************************************************/
 
 /*
@@ -41,20 +41,23 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_colorset.c,v 1.11 2005/01/29 21:40:51 tom Exp $")
+MODULE_ID("$Id: lib_colorset.c,v 1.12 2009/01/25 00:44:40 tom Exp $")
 
 NCURSES_EXPORT(int)
 wcolor_set(WINDOW *win, short color_pair_number, void *opts)
 {
+    int code = ERR;
+
     T((T_CALLED("wcolor_set(%p,%d)"), win, color_pair_number));
     if (win
 	&& !opts
+	&& (SP != 0)
 	&& (color_pair_number >= 0)
-	&& (color_pair_number < COLOR_PAIRS)) {
+	&& (color_pair_number < SP->_pair_limit)) {
 	TR(TRACE_ATTRS, ("... current %ld", (long) GET_WINDOW_PAIR(win)));
 	SET_WINDOW_PAIR(win, color_pair_number);
 	if_EXT_COLORS(win->_color = color_pair_number);
-	returnCode(OK);
-    } else
-	returnCode(ERR);
+	code = OK;
+    }
+    returnCode(code);
 }
diff -Naur ncurses-5.7.orig/ncurses/base/lib_delwin.c ncurses-5.7/ncurses/base/lib_delwin.c
--- ncurses-5.7.orig/ncurses/base/lib_delwin.c	2008-06-07 07:10:56.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_delwin.c	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2008                    *
  ****************************************************************************/
 
 /*
@@ -40,15 +42,18 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_delwin.c,v 1.17 2008/06/07 14:10:56 tom Exp $")
+MODULE_ID("$Id: lib_delwin.c,v 1.19 2009/05/23 19:56:55 tom Exp $")
 
 static bool
 cannot_delete(WINDOW *win)
 {
     WINDOWLIST *p;
     bool result = TRUE;
+#ifdef USE_SP_WINDOWLIST
+    SCREEN *sp = _nc_screen_of(win);
+#endif
 
-    for (each_window(p)) {
+    for (each_window(SP_PARM, p)) {
 	if (&(p->win) == win) {
 	    result = FALSE;
 	} else if ((p->win._flags & _SUBWIN) != 0
@@ -72,11 +77,13 @@
 	    || cannot_delete(win)) {
 	    result = ERR;
 	} else {
-
+#if NCURSES_SP_FUNCS
+	    SCREEN *sp = _nc_screen_of(win);
+#endif
 	    if (win->_flags & _SUBWIN)
 		touchwin(win->_parent);
-	    else if (curscr != 0)
-		touchwin(curscr);
+	    else if (CurScreen(SP_PARM) != 0)
+		touchwin(CurScreen(SP_PARM));
 
 	    result = _nc_freewin(win);
 	}
diff -Naur ncurses-5.7.orig/ncurses/base/lib_dft_fgbg.c ncurses-5.7/ncurses/base/lib_dft_fgbg.c
--- ncurses-5.7.orig/ncurses/base/lib_dft_fgbg.c	2005-11-26 12:03:38.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_dft_fgbg.c	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -27,49 +27,73 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey                                                *
+ *  Author: Thomas E. Dickey          1998-on                               *
+ *          Juergen Pfeifer           2009                                  *
  ****************************************************************************/
 
 #include <curses.priv.h>
-#include <term.h>
 
-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.18 2005/11/26 20:03:38 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
+
+MODULE_ID("$Id: lib_dft_fgbg.c,v 1.24 2009/05/30 20:00:00 tom Exp $")
 
 /*
  * Modify the behavior of color-pair 0 so that the library doesn't assume that
  * it is white on black.  This is an extension to XSI curses.
  */
 NCURSES_EXPORT(int)
+NCURSES_SP_NAME(use_default_colors) (NCURSES_SP_DCL0)
+{
+    T((T_CALLED("use_default_colors(%p)"), SP_PARM));
+    returnCode(NCURSES_SP_NAME(assume_default_colors) (NCURSES_SP_ARGx -1, -1));
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
 use_default_colors(void)
 {
-    T((T_CALLED("use_default_colors()")));
-    returnCode(assume_default_colors(-1, -1));
+    return NCURSES_SP_NAME(use_default_colors) (CURRENT_SCREEN);
 }
+#endif
 
 /*
  * Modify the behavior of color-pair 0 so that the library assumes that it
  * is something specific, possibly not white on black.
  */
 NCURSES_EXPORT(int)
-assume_default_colors(int fg, int bg)
+NCURSES_SP_NAME(assume_default_colors) (NCURSES_SP_DCLx int fg, int bg)
 {
-    T((T_CALLED("assume_default_colors(%d,%d)"), fg, bg));
-
-    if (!orig_pair && !orig_colors)
-	returnCode(ERR);
+    int code = ERR;
 
-    if (initialize_pair)	/* don't know how to handle this */
-	returnCode(ERR);
-
-    SP->_default_color = isDefaultColor(fg) || isDefaultColor(bg);
-    SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE);
-    SP->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK);
-    SP->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
-    if (SP->_color_pairs != 0) {
-	bool save = SP->_default_color;
-	SP->_default_color = TRUE;
-	init_pair(0, (short) fg, (short) bg);
-	SP->_default_color = save;
+    T((T_CALLED("assume_default_colors(%p,%d,%d)"), SP_PARM, fg, bg));
+#ifdef USE_TERM_DRIVER
+    if (sp != 0)
+	code = CallDriver_2(sp, defaultcolors, fg, bg);
+#else
+    if ((orig_pair || orig_colors) && !initialize_pair) {
+
+	SP_PARM->_default_color = isDefaultColor(fg) || isDefaultColor(bg);
+	SP_PARM->_has_sgr_39_49 = (tigetflag("AX") == TRUE);
+	SP_PARM->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK);
+	SP_PARM->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
+	if (SP_PARM->_color_pairs != 0) {
+	    bool save = SP_PARM->_default_color;
+	    SP_PARM->_default_color = TRUE;
+	    init_pair(0, (short) fg, (short) bg);
+	    SP_PARM->_default_color = save;
+	}
+	code = OK;
     }
-    returnCode(OK);
+#endif
+    returnCode(code);
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+assume_default_colors(int fg, int bg)
+{
+    return NCURSES_SP_NAME(assume_default_colors) (CURRENT_SCREEN, fg, bg);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_echo.c ncurses-5.7/ncurses/base/lib_echo.c
--- ncurses-5.7.orig/ncurses/base/lib_echo.c	2000-12-09 18:43:27.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_echo.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -42,20 +44,40 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_echo.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_echo.c,v 1.7 2009/02/21 20:20:40 tom Exp $")
 
 NCURSES_EXPORT(int)
+NCURSES_SP_NAME(echo) (NCURSES_SP_DCL0)
+{
+    T((T_CALLED("echo(%p)"), SP_PARM));
+    if (0 == SP_PARM)
+	returnCode(ERR);
+    SP_PARM->_echo = TRUE;
+    returnCode(OK);
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
 echo(void)
 {
-    T((T_CALLED("echo()")));
-    SP->_echo = TRUE;
+    return NCURSES_SP_NAME(echo) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(noecho) (NCURSES_SP_DCL0)
+{
+    T((T_CALLED("noecho(%p)"), SP_PARM));
+    if (0 == SP_PARM)
+	returnCode(ERR);
+    SP_PARM->_echo = FALSE;
     returnCode(OK);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
 noecho(void)
 {
-    T((T_CALLED("noecho()")));
-    SP->_echo = FALSE;
-    returnCode(OK);
+    return NCURSES_SP_NAME(noecho) (CURRENT_SCREEN);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_endwin.c ncurses-5.7/ncurses/base/lib_endwin.c
--- ncurses-5.7.orig/ncurses/base/lib_endwin.c	2000-12-09 18:43:27.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_endwin.c	2009-06-05 14:01:14.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -41,16 +43,16 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_endwin.c,v 1.19 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_endwin.c,v 1.20 2009/02/15 00:35:00 tom Exp $")
 
 NCURSES_EXPORT(int)
-endwin(void)
+NCURSES_SP_NAME(endwin) (NCURSES_SP_DCL0)
 {
     T((T_CALLED("endwin()")));
 
-    if (SP) {
-	SP->_endwin = TRUE;
-	SP->_mouse_wrap(SP);
+    if (SP_PARM) {
+	SP_PARM->_endwin = TRUE;
+	SP_PARM->_mouse_wrap(SP_PARM);
 	_nc_screen_wrap();
 	_nc_mvcur_wrap();	/* wrap up cursor addressing */
 	returnCode(reset_shell_mode());
@@ -58,3 +60,11 @@
 
     returnCode(ERR);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+endwin(void)
+{
+    return NCURSES_SP_NAME(endwin) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_flash.c ncurses-5.7/ncurses/base/lib_flash.c
--- ncurses-5.7.orig/ncurses/base/lib_flash.c	2000-12-09 18:43:27.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_flash.c	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -39,9 +41,12 @@
  */
 
 #include <curses.priv.h>
-#include <term.h>		/* beep, flash */
 
-MODULE_ID("$Id: lib_flash.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
+
+MODULE_ID("$Id: lib_flash.c,v 1.10 2009/05/23 19:37:09 tom Exp $")
 
 /*
  *	flash()
@@ -52,12 +57,15 @@
  */
 
 NCURSES_EXPORT(int)
-flash(void)
+NCURSES_SP_NAME(flash) (NCURSES_SP_DCL0)
 {
     int res = ERR;
 
-    T((T_CALLED("flash()")));
-
+    T((T_CALLED("flash(%p)"), SP_PARM));
+#ifdef USE_TERM_DRIVER
+    if (SP_PARM != 0)
+	res = CallDriver_1(SP_PARM, doBeepOrFlash, FALSE);
+#else
     /* FIXME: should make sure that we are not in altchar mode */
     if (flash_screen) {
 	TPUTS_TRACE("flash_screen");
@@ -68,6 +76,14 @@
 	res = putp(bell);
 	_nc_flush();
     }
-
+#endif
     returnCode(res);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+flash(void)
+{
+    return NCURSES_SP_NAME(flash) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_freeall.c ncurses-5.7/ncurses/base/lib_freeall.c
--- ncurses-5.7.orig/ncurses/base/lib_freeall.c	2008-09-27 06:09:57.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_freeall.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -40,40 +40,40 @@
 extern int malloc_errfd;	/* FIXME */
 #endif
 
-MODULE_ID("$Id: lib_freeall.c,v 1.54 2008/09/27 13:09:57 tom Exp $")
+MODULE_ID("$Id: lib_freeall.c,v 1.58 2009/05/09 18:34:30 tom Exp $")
 
 /*
  * Free all ncurses data.  This is used for testing only (there's no practical
  * use for it as an extension).
  */
 NCURSES_EXPORT(void)
-_nc_freeall(void)
+NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_DCL0)
 {
     WINDOWLIST *p, *q;
     static va_list empty_va;
 
     T((T_CALLED("_nc_freeall()")));
 #if NO_LEAKS
-    if (SP != 0) {
-	if (SP->_oldnum_list != 0) {
-	    FreeAndNull(SP->_oldnum_list);
+    if (SP_PARM != 0) {
+	if (SP_PARM->_oldnum_list != 0) {
+	    FreeAndNull(SP_PARM->_oldnum_list);
 	}
-	if (SP->_panelHook.destroy != 0) {
-	    SP->_panelHook.destroy(SP->_panelHook.stdscr_pseudo_panel);
+	if (SP_PARM->_panelHook.destroy != 0) {
+	    SP_PARM->_panelHook.destroy(SP_PARM->_panelHook.stdscr_pseudo_panel);
 	}
     }
 #endif
-    if (SP != 0) {
+    if (SP_PARM != 0) {
 	_nc_lock_global(curses);
 
-	while (_nc_windows != 0) {
+	while (WindowList(SP_PARM) != 0) {
 	    bool deleted = FALSE;
 
 	    /* Delete only windows that're not a parent */
-	    for (each_window(p)) {
+	    for (each_window(SP_PARM, p)) {
 		bool found = FALSE;
 
-		for (each_window(q)) {
+		for (each_window(SP_PARM, q)) {
 		    if ((p != q)
 			&& (q->win._flags & _SUBWIN)
 			&& (&(p->win) == q->win._parent)) {
@@ -95,11 +95,9 @@
 	    if (!deleted)
 		break;
 	}
-	delscreen(SP);
+	delscreen(SP_PARM);
 	_nc_unlock_global(curses);
     }
-    if (cur_term != 0)
-	del_curterm(cur_term);
 
     (void) _nc_printf_string(0, empty_va);
 #ifdef TRACE
@@ -121,12 +119,20 @@
     returnVoid;
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(void)
-_nc_free_and_exit(int code)
+_nc_freeall(void)
+{
+    NCURSES_SP_NAME(_nc_freeall) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(void)
+NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code)
 {
-    char *last_setbuf = (SP != 0) ? SP->_setbuf : 0;
+    char *last_setbuf = (SP_PARM != 0) ? SP_PARM->_setbuf : 0;
 
-    _nc_freeall();
+    NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_ARG);
 #ifdef TRACE
     trace(0);			/* close trace file, freeing its setbuf */
     {
@@ -146,12 +152,21 @@
 }
 
 NCURSES_EXPORT(void)
-_nc_free_and_exit(int code)
+NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code)
 {
-    if (SP)
-	delscreen(SP);
-    if (cur_term != 0)
-	del_curterm(cur_term);
+    if (SP_PARM) {
+	delscreen(SP_PARM);
+	if (SP_PARM->_term)
+	    NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx SP_PARM->_term);
+    }
     exit(code);
 }
 #endif
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_free_and_exit(int code)
+{
+    NCURSES_SP_NAME(_nc_free_and_exit) (CURRENT_SCREEN, code);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_getch.c ncurses-5.7/ncurses/base/lib_getch.c
--- ncurses-5.7.orig/ncurses/base/lib_getch.c	2008-09-20 12:46:13.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_getch.c	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -41,40 +42,54 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_getch.c,v 1.99 2008/09/20 19:46:13 tom Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.103 2009/05/30 15:50:47 tom Exp $")
 
 #include <fifo_defs.h>
 
 #if USE_REENTRANT
 #define GetEscdelay(sp) (sp)->_ESCDELAY
+NCURSES_EXPORT(int *)
+_nc_ptr_Escdelay(SCREEN *sp)
+{
+    return ptrEscdelay(sp);
+}
 NCURSES_EXPORT(int)
 NCURSES_PUBLIC_VAR(ESCDELAY) (void)
 {
-    return SP ? GetEscdelay(SP) : 1000;
+    return *_nc_ptr_Escdelay(CURRENT_SCREEN);
 }
 #else
 #define GetEscdelay(sp) ESCDELAY
-NCURSES_EXPORT_VAR(int)
-ESCDELAY = 1000;		/* max interval betw. chars in funkeys, in millisecs */
+NCURSES_EXPORT_VAR (int)
+  ESCDELAY = 1000;		/* max interval betw. chars in funkeys, in millisecs */
 #endif
 
 #if NCURSES_EXT_FUNCS
 NCURSES_EXPORT(int)
-set_escdelay(int value)
+NCURSES_SP_NAME(set_escdelay) (NCURSES_SP_DCLx int value)
 {
     int code = OK;
 #if USE_REENTRANT
-    if (SP) {
-	SP->_ESCDELAY = value;
+    if (SP_PARM) {
+	SP_PARM->_ESCDELAY = value;
     } else {
 	code = ERR;
     }
 #else
+    (void) SP_PARM;
     ESCDELAY = value;
 #endif
     return code;
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+set_escdelay(int value)
+{
+    return NCURSES_SP_NAME(set_escdelay) (CURRENT_SCREEN, value);
+}
 #endif
+#endif /* NCURSES_EXT_FUNCS */
 
 static int
 _nc_use_meta(WINDOW *win)
@@ -84,9 +99,9 @@
 }
 
 #ifdef NCURSES_WGETCH_EVENTS
-#define TWAIT_MASK 7
+#define TWAIT_MASK (TW_ANY | TW_EVENT)
 #else
-#define TWAIT_MASK 3
+#define TWAIT_MASK TW_ANY
 #endif
 
 /*
@@ -109,7 +124,7 @@
 	&& (sp->_sysmouse_head < sp->_sysmouse_tail)
 	&& (rc == 0)
 	&& (errno == EINTR)) {
-	rc |= 2;
+	rc |= TW_MOUSE;
     }
 #endif
     return rc;
@@ -173,9 +188,9 @@
     } else
 	mask = 0;
 
-    if (mask & 4) {
+    if (mask & TW_EVENT) {
 	T(("fifo_push: ungetch KEY_EVENT"));
-	_nc_ungetch(sp, KEY_EVENT);
+	safe_ungetch(sp, KEY_EVENT);
 	return KEY_EVENT;
     }
 #elif USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE
@@ -185,7 +200,7 @@
 #endif
 
 #if USE_GPM_SUPPORT || USE_EMX_MOUSE
-    if ((sp->_mouse_fd >= 0) && (mask & 2)) {
+    if ((sp->_mouse_fd >= 0) && (mask & TW_MOUSE)) {
 	sp->_mouse_event(sp);
 	ch = KEY_MOUSE;
 	n = 1;
@@ -260,12 +275,12 @@
 {
 #ifdef USE_PTHREADS
     SCREEN *sp = _nc_screen_of(win);
-    if (_nc_use_pthreads && sp != SP) {
+    if (_nc_use_pthreads && sp != CURRENT_SCREEN) {
 	SCREEN *save_SP;
 
 	/* temporarily switch to the window's screen to check/refresh */
 	_nc_lock_global(curses);
-	save_SP = SP;
+	save_SP = CURRENT_SCREEN;
 	_nc_set_screen(sp);
 	recur_wrefresh(win);
 	_nc_set_screen(save_SP);
@@ -286,12 +301,12 @@
 
     if (sp != 0) {
 #ifdef USE_PTHREADS
-	if (_nc_use_pthreads && sp != SP) {
+	if (_nc_use_pthreads && sp != CURRENT_SCREEN) {
 	    SCREEN *save_SP;
 
 	    /* temporarily switch to the window's screen to get cooked input */
 	    _nc_lock_global(curses);
-	    save_SP = SP;
+	    save_SP = CURRENT_SCREEN;
 	    _nc_set_screen(sp);
 	    rc = recur_wgetnstr(win, buf);
 	    _nc_set_screen(save_SP);
@@ -362,9 +377,9 @@
 #ifdef NCURSES_WGETCH_EVENTS
 	if (rc != KEY_EVENT)
 #endif
-	    _nc_ungetch(sp, '\n');
+	    safe_ungetch(sp, '\n');
 	for (bufp = buf + strlen(buf); bufp > buf; bufp--)
-	    _nc_ungetch(sp, bufp[-1]);
+	    safe_ungetch(sp, bufp[-1]);
 
 #ifdef NCURSES_WGETCH_EVENTS
 	/* Return it first */
@@ -402,7 +417,7 @@
 	    rc = check_mouse_activity(sp, delay EVENTLIST_2nd(evl));
 
 #ifdef NCURSES_WGETCH_EVENTS
-	    if (rc & 4) {
+	    if (rc & TW_EVENT) {
 		*result = KEY_EVENT;
 		returnCode(KEY_CODE_YES);
 	    }
@@ -427,7 +442,7 @@
 	 * increase the wait with mouseinterval().
 	 */
 	int runcount = 0;
-	int rc;
+	int rc = 0;
 
 	do {
 	    ch = kgetch(sp EVENTLIST_2nd(evl));
@@ -442,11 +457,11 @@
 	    (ch == KEY_MOUSE
 	     && (((rc = check_mouse_activity(sp, sp->_maxclick
 					     EVENTLIST_2nd(evl))) != 0
-		  && !(rc & 4))
+		  && !(rc & TW_EVENT))
 		 || !sp->_mouse_parse(sp, runcount)));
 #ifdef NCURSES_WGETCH_EVENTS
-	if ((rc & 4) && !ch == KEY_EVENT) {
-	    _nc_ungetch(sp, ch);
+	if ((rc & TW_EVENT) && !(ch == KEY_EVENT)) {
+	    safe_ungetch(sp, ch);
 	    ch = KEY_EVENT;
 	}
 #endif
@@ -454,12 +469,12 @@
 #ifdef NCURSES_WGETCH_EVENTS
 	    /* mouse event sequence ended by an event, report event */
 	    if (ch == KEY_EVENT) {
-		_nc_ungetch(sp, KEY_MOUSE);	/* FIXME This interrupts a gesture... */
+		safe_ungetch(sp, KEY_MOUSE);	/* FIXME This interrupts a gesture... */
 	    } else
 #endif
 	    {
 		/* mouse event sequence ended by keystroke, store keystroke */
-		_nc_ungetch(sp, ch);
+		safe_ungetch(sp, ch);
 		ch = KEY_MOUSE;
 	    }
 	}
@@ -645,7 +660,7 @@
 	    TR(TRACE_IEVENT, ("waiting for rest of sequence"));
 	    rc = check_mouse_activity(sp, timeleft EVENTLIST_2nd(evl));
 #ifdef NCURSES_WGETCH_EVENTS
-	    if (rc & 4) {
+	    if (rc & TW_EVENT) {
 		TR(TRACE_IEVENT, ("interrupted by a user event"));
 		/* FIXME Should have preserved remainder timeleft for reuse... */
 		peek = head;	/* Restart interpreting later */
diff -Naur ncurses-5.7.orig/ncurses/base/lib_getstr.c ncurses-5.7/ncurses/base/lib_getstr.c
--- ncurses-5.7.orig/ncurses/base/lib_getstr.c	2008-08-16 12:20:04.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_getstr.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -39,9 +39,8 @@
 */
 
 #include <curses.priv.h>
-#include <term.h>
 
-MODULE_ID("$Id: lib_getstr.c,v 1.27 2008/08/16 19:20:04 tom Exp $")
+MODULE_ID("$Id: lib_getstr.c,v 1.28 2009/05/09 17:02:41 tom Exp $")
 
 /*
  * This wipes out the last character, no matter whether it was a tab, control
@@ -89,19 +88,19 @@
     if (!win)
 	returnCode(ERR);
 
-    _nc_get_tty_mode(&buf);
+    NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_ARGx &buf);
 
     oldnl = sp->_nl;
     oldecho = sp->_echo;
     oldraw = sp->_raw;
     oldcbreak = sp->_cbreak;
-    nl();
-    noecho();
-    noraw();
-    cbreak();
+    NCURSES_SP_NAME(nl) (NCURSES_SP_ARG);
+    NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG);
+    NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
+    NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG);
 
-    erasec = erasechar();
-    killc = killchar();
+    erasec = NCURSES_SP_NAME(erasechar) (NCURSES_SP_ARG);
+    killc = NCURSES_SP_NAME(killchar) (NCURSES_SP_ARG);
 
     oldstr = str;
     getyx(win, y, x);
@@ -144,7 +143,7 @@
 	    }
 	} else if (ch >= KEY_MIN
 		   || (maxlen >= 0 && str - oldstr >= maxlen)) {
-	    beep();
+	    NCURSES_SP_NAME(beep) (NCURSES_SP_ARG);
 	} else {
 	    *str++ = (char) ch;
 	    if (oldecho == TRUE) {
@@ -193,7 +192,7 @@
     sp->_raw = oldraw;
     sp->_cbreak = oldcbreak;
 
-    _nc_set_tty_mode(&buf);
+    NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf);
 
     *str = '\0';
     if (ch == ERR)
diff -Naur ncurses-5.7.orig/ncurses/base/lib_initscr.c ncurses-5.7/ncurses/base/lib_initscr.c
--- ncurses-5.7.orig/ncurses/base/lib_initscr.c	2008-08-16 14:20:48.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_initscr.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -45,7 +45,7 @@
 #include <sys/termio.h>		/* needed for ISC */
 #endif
 
-MODULE_ID("$Id: lib_initscr.c,v 1.38 2008/08/16 21:20:48 Werner.Fink Exp $")
+MODULE_ID("$Id: lib_initscr.c,v 1.39 2009/02/14 20:55:49 tom Exp $")
 
 NCURSES_EXPORT(WINDOW *)
 initscr(void)
@@ -90,7 +90,11 @@
 	}
 
 	/* def_shell_mode - done in newterm/_nc_setupscreen */
+#if NCURSES_SP_FUNCS
+	NCURSES_SP_NAME(def_prog_mode) (CURRENT_SCREEN);
+#else
 	def_prog_mode();
+#endif
     }
     result = stdscr;
     _nc_unlock_global(curses);
diff -Naur ncurses-5.7.orig/ncurses/base/lib_insch.c ncurses-5.7/ncurses/base/lib_insch.c
--- ncurses-5.7.orig/ncurses/base/lib_insch.c	2008-02-02 16:14:37.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_insch.c	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -43,24 +43,31 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_insch.c,v 1.25 2008/02/03 00:14:37 tom Exp $")
+MODULE_ID("$Id: lib_insch.c,v 1.29 2009/05/30 16:45:16 tom Exp $")
 
 /*
  * Insert the given character, updating the current location to simplify
  * inserting a string.
  */
 NCURSES_EXPORT(int)
-_nc_insert_ch(WINDOW *win, chtype ch)
+_nc_insert_ch(SCREEN *sp, WINDOW *win, chtype ch)
 {
     int code = OK;
     NCURSES_CH_T wch;
     int count;
     NCURSES_CONST char *s;
+    int tabsize =
+#if USE_REENTRANT
+    sp->_TABSIZE
+#else
+    TABSIZE
+#endif
+     ;
 
     switch (ch) {
     case '\t':
-	for (count = (TABSIZE - (win->_curx % TABSIZE)); count > 0; count--) {
-	    if ((code = _nc_insert_ch(win, ' ')) != OK)
+	for (count = (tabsize - (win->_curx % tabsize)); count > 0; count--) {
+	    if ((code = _nc_insert_ch(sp, win, ' ')) != OK)
 		break;
 	}
 	break;
@@ -76,7 +83,9 @@
 	       WINDOW_EXT(win, addch_used) == 0 &&
 #endif
 	       is8bits(ChCharOf(ch)) &&
-	       isprint(ChCharOf(ch))) {
+	       (isprint(ChCharOf(ch)) ||
+		(ChAttrOf(ch) & A_ALTCHARSET) ||
+		(sp != 0 && sp->_legacy_coding && !iscntrl(ChCharOf(ch))))) {
 	    if (win->_curx <= win->_maxx) {
 		struct ldat *line = &(win->_line[win->_cury]);
 		NCURSES_CH_T *end = &(line->text[win->_curx]);
@@ -93,9 +102,9 @@
 		win->_curx++;
 	    }
 	} else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) {
-	    s = unctrl(ChCharOf(ch));
+	    s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx ChCharOf(ch));
 	    while (*s != '\0') {
-		code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s));
+		code = _nc_insert_ch(sp, win, ChAttrOf(ch) | UChar(*s));
 		if (code != OK)
 		    break;
 		++s;
@@ -114,12 +123,17 @@
 	    } else if (count == -1) {
 		/* handle EILSEQ */
 		if (is8bits(ch)) {
-		    s = unctrl(ChCharOf(ch));
-		    while (*s != '\0') {
-			code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s));
-			if (code != OK)
-			    break;
-			++s;
+		    s = NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx ChCharOf(ch));
+		    if (strlen(s) > 1) {
+			while (*s != '\0') {
+			    code = _nc_insert_ch(sp, win,
+						 ChAttrOf(ch) | UChar(*s));
+			    if (code != OK)
+				break;
+			    ++s;
+			}
+		    } else {
+			code = ERR;
 		    }
 		} else {
 		    code = ERR;
@@ -145,7 +159,7 @@
 	oy = win->_cury;
 	ox = win->_curx;
 
-	code = _nc_insert_ch(win, c);
+	code = _nc_insert_ch(_nc_screen_of(win), win, c);
 
 	win->_curx = ox;
 	win->_cury = oy;
diff -Naur ncurses-5.7.orig/ncurses/base/lib_insnstr.c ncurses-5.7/ncurses/base/lib_insnstr.c
--- ncurses-5.7.orig/ncurses/base/lib_insnstr.c	2004-02-28 15:44:56.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_insnstr.c	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2004 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2004,2009 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            *
@@ -40,7 +40,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_insnstr.c,v 1.1 2004/02/28 23:44:56 tom Exp $")
+MODULE_ID("$Id: lib_insnstr.c,v 1.2 2009/05/30 14:53:49 tom Exp $")
 
 NCURSES_EXPORT(int)
 winsnstr(WINDOW *win, const char *s, int n)
@@ -54,10 +54,12 @@
     T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s, n), n));
 
     if (win != 0 && str != 0) {
+	SCREEN *sp = _nc_screen_of(win);
+
 	oy = win->_cury;
 	ox = win->_curx;
 	for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) {
-	    _nc_insert_ch(win, (chtype) UChar(*cp));
+	    _nc_insert_ch(sp, win, (chtype) UChar(*cp));
 	}
 	win->_curx = ox;
 	win->_cury = oy;
diff -Naur ncurses-5.7.orig/ncurses/base/lib_isendwin.c ncurses-5.7/ncurses/base/lib_isendwin.c
--- ncurses-5.7.orig/ncurses/base/lib_isendwin.c	2000-12-09 18:43:27.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_isendwin.c	2009-06-05 14:01:14.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -40,12 +42,20 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_isendwin.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_isendwin.c,v 1.7 2009/02/15 00:36:24 tom Exp $")
 
 NCURSES_EXPORT(bool)
-isendwin(void)
+NCURSES_SP_NAME(isendwin) (NCURSES_SP_DCL0)
 {
-    if (SP == NULL)
+    if (SP_PARM == NULL)
 	return FALSE;
-    return SP->_endwin;
+    return SP_PARM->_endwin;
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(bool)
+isendwin(void)
+{
+    return NCURSES_SP_NAME(isendwin) (CURRENT_SCREEN);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_mouse.c ncurses-5.7/ncurses/base/lib_mouse.c
--- ncurses-5.7.orig/ncurses/base/lib_mouse.c	2008-10-18 14:48:55.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_mouse.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -79,9 +79,12 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_mouse.c,v 1.102 2008/10/18 21:48:55 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_mouse.c,v 1.107 2009/05/10 00:48:29 tom Exp $")
 
-#include <term.h>
 #include <tic.h>
 
 #if USE_GPM_SUPPORT
@@ -150,7 +153,7 @@
 #define LIBGPM_SONAME "libgpm.so"
 #endif
 
-#define GET_DLSYM(name) (my_##name = (TYPE_##name) dlsym(SP->_dlopen_gpm, #name))
+#define GET_DLSYM(name) (my_##name = (TYPE_##name) dlsym(SP_PARM->_dlopen_gpm, #name))
 
 #endif				/* USE_GPM_SUPPORT */
 
@@ -164,13 +167,13 @@
 #define LastEV(sp)	((sp)->_mouse_events + EV_MAX - 1)
 
 #undef  NEXT
-#define NEXT(ep)	((ep >= LastEV(sp)) \
-			 ? FirstEV(sp) \
+#define NEXT(ep)	((ep >= LastEV(SP_PARM)) \
+			 ? FirstEV(SP_PARM) \
 			 : ep + 1)
 
 #undef  PREV
-#define PREV(ep)	((ep <= FirstEV(sp)) \
-			 ? LastEV(sp) \
+#define PREV(ep)	((ep <= FirstEV(SP_PARM)) \
+			 ? LastEV(SP_PARM) \
 			 : ep - 1)
 
 #define IndexEV(sp, ep)	(ep - FirstEV(sp))
@@ -340,7 +343,7 @@
 static void
 handle_sysmouse(int sig GCC_UNUSED)
 {
-    sysmouse_server(SP);
+    sysmouse_server(CURRENT_SCREEN);
 }
 #endif /* USE_SYSMOUSE */
 
@@ -359,7 +362,9 @@
 #if USE_EMX_MOUSE
     sp->_emxmouse_activated = enable;
 #else
-    putp(TPARM_1(sp->_mouse_xtermcap, enable));
+    NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+			       "xterm-mouse",
+			       TPARM_1(sp->_mouse_xtermcap, enable));
 #endif
     sp->_mouse_active = enable;
 }
@@ -398,7 +403,7 @@
 static void
 unload_gpm_library(SCREEN *sp)
 {
-    if (SP->_dlopen_gpm != 0) {
+    if (sp->_dlopen_gpm != 0) {
 	T(("unload GPM library"));
 	sp->_mouse_gpm_loaded = FALSE;
 	sp->_mouse_fd = -1;
@@ -694,11 +699,16 @@
 
 #if USE_GPM_SUPPORT
     case M_GPM:
-	{
+	if (sp->_mouse_fd >= 0) {
 	    /* query server for event, return TRUE if we find one */
 	    Gpm_Event ev;
 
-	    if (my_Gpm_GetEvent(&ev) == 1) {
+	    switch (my_Gpm_GetEvent(&ev)) {
+	    case 0:
+		/* Connection closed, drop the mouse. */
+		sp->_mouse_fd = -1;
+		break;
+	    case 1:
 		/* there's only one mouse... */
 		eventp->id = NORMAL_EVENT;
 
@@ -731,6 +741,7 @@
 		/* bump the next-free pointer into the circular list */
 		sp->_mouse_eventp = eventp = NEXT(eventp);
 		result = TRUE;
+		break;
 	    }
 	}
 	break;
@@ -937,7 +948,7 @@
 	switch (sp->_mouse_type) {
 	case M_XTERM:
 #if NCURSES_EXT_FUNCS
-	    keyok(KEY_MOUSE, on);
+	    NCURSES_SP_NAME(keyok) (NCURSES_SP_ARGx KEY_MOUSE, on);
 #endif
 	    TPUTS_TRACE("xterm mouse initialization");
 	    enable_xterm_mouse(sp, 1);
@@ -989,7 +1000,7 @@
 	    return;
 	}
     }
-    _nc_flush();
+    NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
 }
 
 /**************************************************************************
@@ -1264,13 +1275,13 @@
  *
  **************************************************************************/
 
-static int
-_nc_getmouse(SCREEN *sp, MEVENT * aevent)
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(getmouse) (NCURSES_SP_DCLx MEVENT * aevent)
 {
-    T((T_CALLED("getmouse(%p)"), aevent));
+    T((T_CALLED("getmouse(%p,%p)"), SP_PARM, aevent));
 
-    if ((aevent != 0) && (sp != 0) && (sp->_mouse_type != M_NONE)) {
-	MEVENT *eventp = sp->_mouse_eventp;
+    if ((aevent != 0) && (SP_PARM != 0) && (SP_PARM->_mouse_type != M_NONE)) {
+	MEVENT *eventp = SP_PARM->_mouse_eventp;
 	/* compute the current-event pointer */
 	MEVENT *prev = PREV(eventp);
 
@@ -1278,8 +1289,8 @@
 	*aevent = *prev;
 
 	TR(TRACE_IEVENT, ("getmouse: returning event %s from slot %ld",
-			  _nc_tracemouse(sp, prev),
-			  (long) IndexEV(sp, prev)));
+			  _nc_tracemouse(SP_PARM, prev),
+			  (long) IndexEV(SP_PARM, prev)));
 
 	prev->id = INVALID_EVENT;	/* so the queue slot becomes free */
 	returnCode(OK);
@@ -1287,57 +1298,61 @@
     returnCode(ERR);
 }
 
+#if NCURSES_SP_FUNCS
 /* grab a copy of the current mouse event */
 NCURSES_EXPORT(int)
 getmouse(MEVENT * aevent)
 {
-    return _nc_getmouse(SP, aevent);
+    return NCURSES_SP_NAME(getmouse) (CURRENT_SCREEN, aevent);
 }
+#endif
 
-static int
-_nc_ungetmouse(SCREEN *sp, MEVENT * aevent)
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(ungetmouse) (NCURSES_SP_DCLx MEVENT * aevent)
 {
     int result = ERR;
 
-    T((T_CALLED("ungetmouse(%p)"), aevent));
+    T((T_CALLED("ungetmouse(%p,%p)"), SP_PARM, aevent));
 
-    if (aevent != 0 && sp != 0) {
-	MEVENT *eventp = sp->_mouse_eventp;
+    if (aevent != 0 && SP_PARM != 0) {
+	MEVENT *eventp = SP_PARM->_mouse_eventp;
 
 	/* stick the given event in the next-free slot */
 	*eventp = *aevent;
 
 	/* bump the next-free pointer into the circular list */
-	sp->_mouse_eventp = NEXT(eventp);
+	SP_PARM->_mouse_eventp = NEXT(eventp);
 
 	/* push back the notification event on the keyboard queue */
-	result = _nc_ungetch(sp, KEY_MOUSE);
+	result = NCURSES_SP_NAME(ungetch) (NCURSES_SP_ARGx KEY_MOUSE);
     }
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
 /* enqueue a synthesized mouse event to be seen by the next wgetch() */
 NCURSES_EXPORT(int)
 ungetmouse(MEVENT * aevent)
 {
-    return _nc_ungetmouse(SP, aevent);
+    return NCURSES_SP_NAME(ungetmouse) (CURRENT_SCREEN, aevent);
 }
+#endif
 
 NCURSES_EXPORT(mmask_t)
-mousemask(mmask_t newmask, mmask_t * oldmask)
+NCURSES_SP_NAME(mousemask) (NCURSES_SP_DCLx mmask_t newmask, mmask_t * oldmask)
 /* set the mouse event mask */
 {
     mmask_t result = 0;
 
-    T((T_CALLED("mousemask(%#lx,%p)"), (unsigned long) newmask, oldmask));
+    T((T_CALLED("mousemask(%p,%#lx,%p)"), SP_PARM, (unsigned long) newmask, oldmask));
 
-    if (SP != 0) {
+    if (SP_PARM != 0) {
 	if (oldmask)
-	    *oldmask = SP->_mouse_mask;
+	    *oldmask = SP_PARM->_mouse_mask;
 
-	if (newmask || SP->_mouse_initialized) {
-	    _nc_mouse_init(SP);
-	    if (SP->_mouse_type != M_NONE) {
+	if (newmask || SP_PARM->_mouse_initialized) {
+	    _nc_mouse_init(SP_PARM);
+	    if (SP_PARM->_mouse_type != M_NONE) {
 		result = newmask &
 		    (REPORT_MOUSE_POSITION
 		     | BUTTON_ALT
@@ -1349,15 +1364,23 @@
 		     | BUTTON_DOUBLE_CLICKED
 		     | BUTTON_TRIPLE_CLICKED);
 
-		mouse_activate(SP, (bool) (result != 0));
+		mouse_activate(SP_PARM, (bool) (result != 0));
 
-		SP->_mouse_mask = result;
+		SP_PARM->_mouse_mask = result;
 	    }
 	}
     }
     returnBits(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(mmask_t)
+mousemask(mmask_t newmask, mmask_t * oldmask)
+{
+    return NCURSES_SP_NAME(mousemask) (CURRENT_SCREEN, newmask, oldmask);
+}
+#endif
+
 NCURSES_EXPORT(bool)
 wenclose(const WINDOW *win, int y, int x)
 /* check to see if given window encloses given screen location */
@@ -1377,17 +1400,17 @@
 }
 
 NCURSES_EXPORT(int)
-mouseinterval(int maxclick)
+NCURSES_SP_NAME(mouseinterval) (NCURSES_SP_DCLx int maxclick)
 /* set the maximum mouse interval within which to recognize a click */
 {
     int oldval;
 
-    T((T_CALLED("mouseinterval(%d)"), maxclick));
+    T((T_CALLED("mouseinterval(%p,%d)"), SP_PARM, maxclick));
 
-    if (SP != 0) {
-	oldval = SP->_maxclick;
+    if (SP_PARM != 0) {
+	oldval = SP_PARM->_maxclick;
 	if (maxclick >= 0)
-	    SP->_maxclick = maxclick;
+	    SP_PARM->_maxclick = maxclick;
     } else {
 	oldval = DEFAULT_MAXCLICK;
     }
@@ -1395,15 +1418,37 @@
     returnCode(oldval);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+mouseinterval(int maxclick)
+{
+    return NCURSES_SP_NAME(mouseinterval) (CURRENT_SCREEN, maxclick);
+}
+#endif
+
 /* This may be used by other routines to ask for the existence of mouse
    support */
-NCURSES_EXPORT(int)
-_nc_has_mouse(void)
+NCURSES_EXPORT(bool)
+_nc_has_mouse(SCREEN *sp)
 {
-    return (SP->_mouse_type == M_NONE ? 0 : 1);
+    return (((0 == sp) || (sp->_mouse_type == M_NONE)) ? FALSE : TRUE);
 }
 
 NCURSES_EXPORT(bool)
+NCURSES_SP_NAME(has_mouse) (NCURSES_SP_DCL0)
+{
+    return _nc_has_mouse(SP_PARM);
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(bool)
+has_mouse(void)
+{
+    return _nc_has_mouse(CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(bool)
 wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen)
 {
     bool result = FALSE;
diff -Naur ncurses-5.7.orig/ncurses/base/lib_mvwin.c ncurses-5.7/ncurses/base/lib_mvwin.c
--- ncurses-5.7.orig/ncurses/base/lib_mvwin.c	2006-02-25 14:53:46.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_mvwin.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2009 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            *
@@ -40,7 +40,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_mvwin.c,v 1.14 2006/02/25 22:53:46 tom Exp $")
+MODULE_ID("$Id: lib_mvwin.c,v 1.15 2009/04/18 18:25:37 tom Exp $")
 
 NCURSES_EXPORT(int)
 mvwin(WINDOW *win, int by, int bx)
@@ -96,8 +96,8 @@
     }
 #endif
 
-    if (by + win->_maxy > screen_lines - 1
-	|| bx + win->_maxx > screen_columns - 1
+    if (by + win->_maxy > screen_lines(CURRENT_SCREEN) - 1
+	|| bx + win->_maxx > screen_columns(CURRENT_SCREEN) - 1
 	|| by < 0
 	|| bx < 0)
 	returnCode(ERR);
diff -Naur ncurses-5.7.orig/ncurses/base/lib_newterm.c ncurses-5.7/ncurses/base/lib_newterm.c
--- ncurses-5.7.orig/ncurses/base/lib_newterm.c	2008-08-16 14:20:48.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_newterm.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -45,10 +46,14 @@
 #define _POSIX_SOURCE
 #endif
 
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
 #include <term.h>		/* clear_screen, cup & friends, cur_term */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_newterm.c,v 1.73 2008/08/16 21:20:48 Werner.Fink Exp $")
+MODULE_ID("$Id: lib_newterm.c,v 1.77 2009/05/10 00:48:29 tom Exp $")
 
 #ifndef ONLCR			/* Allows compilation under the QNX 4.2 OS */
 #define ONLCR 0
@@ -95,7 +100,7 @@
  * initialized.
  */
 NCURSES_EXPORT(void)
-filter(void)
+NCURSES_SP_NAME(filter) (NCURSES_SP_DCL0)
 {
     START_TRACE();
     T((T_CALLED("filter")));
@@ -103,23 +108,42 @@
     returnVoid;
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+filter(void)
+{
+    NCURSES_SP_NAME(filter) (CURRENT_SCREEN);
+}
+#endif
+
 #if NCURSES_EXT_FUNCS
 /*
  * An extension, allowing the application to open a new screen without
  * requiring it to also be filtered.
  */
 NCURSES_EXPORT(void)
-nofilter(void)
+NCURSES_SP_NAME(nofilter) (NCURSES_SP_DCL0)
 {
     START_TRACE();
     T((T_CALLED("nofilter")));
     _nc_prescreen.filter_mode = FALSE;
     returnVoid;
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+nofilter(void)
+{
+    NCURSES_SP_NAME(nofilter) (CURRENT_SCREEN);
+}
 #endif
+#endif /* NCURSES_EXT_FUNCS */
 
 NCURSES_EXPORT(SCREEN *)
-newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
+NCURSES_SP_NAME(newterm) (NCURSES_SP_DCLx
+			  NCURSES_CONST char *name,
+			  FILE *ofp,
+			  FILE *ifp)
 {
     int value;
     int errret;
@@ -133,8 +157,8 @@
     _nc_init_pthreads();
     _nc_lock_global(curses);
 
-    current = SP;
-    its_term = (SP ? SP->_term : 0);
+    current = SP_PARM;
+    its_term = (SP_PARM ? SP_PARM->_term : 0);
 
     /* this loads the capability entry, then sets LINES and COLS */
     if (setupterm(name, fileno(ofp), &errret) != ERR) {
@@ -159,7 +183,7 @@
 	    _nc_set_screen(current);
 	    result = 0;
 	} else {
-	    assert(SP != 0);
+	    assert(SP_PARM != 0);
 	    /*
 	     * In setupterm() we did a set_curterm(), but it was before we set
 	     * SP.  So the "current" screen's terminal pointer was overwritten
@@ -233,3 +257,11 @@
     _nc_unlock_global(curses);
     returnSP(result);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(SCREEN *)
+newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
+{
+    return NCURSES_SP_NAME(newterm) (CURRENT_SCREEN, name, ofp, ifp);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_newwin.c ncurses-5.7/ncurses/base/lib_newwin.c
--- ncurses-5.7.orig/ncurses/base/lib_newwin.c	2008-06-07 06:58:09.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_newwin.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -42,7 +43,7 @@
 #include <curses.priv.h>
 #include <stddef.h>
 
-MODULE_ID("$Id: lib_newwin.c,v 1.52 2008/06/07 13:58:09 tom Exp $")
+MODULE_ID("$Id: lib_newwin.c,v 1.57 2009/05/09 23:40:03 tom Exp $")
 
 #define window_is(name) ((sp)->_##name == win)
 
@@ -87,11 +88,11 @@
     if (win != 0) {
 	if (_nc_try_global(curses) == 0) {
 	    q = 0;
-	    for (each_window(p)) {
+	    for (each_window(SP, p)) {
 		if (&(p->win) == win) {
 		    remove_window_from_screen(win);
 		    if (q == 0)
-			_nc_windows = p->next;
+			WindowList(SP) = p->next;
 		    else
 			q->next = p->next;
 
@@ -115,7 +116,8 @@
 }
 
 NCURSES_EXPORT(WINDOW *)
-newwin(int num_lines, int num_columns, int begy, int begx)
+NCURSES_SP_NAME(newwin) (NCURSES_SP_DCLx
+			 int num_lines, int num_columns, int begy, int begx)
 {
     WINDOW *win;
     NCURSES_CH_T *ptr;
@@ -127,11 +129,13 @@
 	returnWin(0);
 
     if (num_lines == 0)
-	num_lines = SP->_lines_avail - begy;
+	num_lines = SP_PARM->_lines_avail - begy;
     if (num_columns == 0)
-	num_columns = screen_columns - begx;
+	num_columns = screen_columns(SP_PARM) - begx;
 
-    if ((win = _nc_makenew(num_lines, num_columns, begy, begx, 0)) == 0)
+    win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx
+					num_lines, num_columns, begy, begx, 0);
+    if (win == 0)
 	returnWin(0);
 
     for (i = 0; i < num_lines; i++) {
@@ -149,9 +153,22 @@
     returnWin(win);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(WINDOW *)
+newwin(int num_lines, int num_columns, int begy, int begx)
+{
+    return NCURSES_SP_NAME(newwin) (CURRENT_SCREEN,
+				    num_lines, num_columns,
+				    begy, begx);
+}
+#endif
+
 NCURSES_EXPORT(WINDOW *)
 derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx)
 {
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = CURRENT_SCREEN;
+#endif
     WINDOW *win;
     int i;
     int flags = _SUBWIN;
@@ -177,8 +194,10 @@
     if (orig->_flags & _ISPAD)
 	flags |= _ISPAD;
 
-    if ((win = _nc_makenew(num_lines, num_columns, orig->_begy + begy,
-			   orig->_begx + begx, flags)) == 0)
+    win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx num_lines, num_columns,
+					orig->_begy + begy,
+					orig->_begx + begx, flags);
+    if (win == 0)
 	returnWin(0);
 
     win->_pary = begy;
@@ -211,16 +230,22 @@
 }
 
 NCURSES_EXPORT(WINDOW *)
-_nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
+NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_DCLx
+			      int num_lines,
+			      int num_columns,
+			      int begy,
+			      int begx,
+			      int flags)
 {
     int i;
     WINDOWLIST *wp;
     WINDOW *win;
     bool is_pad = (flags & _ISPAD);
 
-    T((T_CALLED("_nc_makenew(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx));
+    T((T_CALLED("_nc_makenew(%p,%d,%d,%d,%d)"),
+       SP_PARM, num_lines, num_columns, begy, begx));
 
-    if (SP == 0)
+    if (SP_PARM == 0)
 	returnWin(0);
 
     if (!dimension_limit(num_lines) || !dimension_limit(num_columns))
@@ -244,14 +269,16 @@
     win->_maxx = num_columns - 1;
     win->_begy = begy;
     win->_begx = begx;
-    win->_yoffset = SP->_topstolen;
+    win->_yoffset = SP_PARM->_topstolen;
 
     win->_flags = flags;
     WINDOW_ATTRS(win) = A_NORMAL;
     SetChar(win->_nc_bkgd, BLANK_TEXT, BLANK_ATTR);
 
-    win->_clear = is_pad ? FALSE : (num_lines == screen_lines
-				    && num_columns == screen_columns);
+    win->_clear = (is_pad
+		   ? FALSE
+		   : (num_lines == screen_lines(SP_PARM)
+		      && num_columns == screen_columns(SP_PARM)));
     win->_idlok = FALSE;
     win->_idcok = TRUE;
     win->_scroll = FALSE;
@@ -300,19 +327,19 @@
 	if_USE_SCROLL_HINTS(win->_line[i].oldindex = i);
     }
 
-    if (!is_pad && (begx + num_columns == screen_columns)) {
+    if (!is_pad && (begx + num_columns == screen_columns(SP_PARM))) {
 	win->_flags |= _ENDLINE;
 
-	if (begx == 0 && num_lines == screen_lines && begy == 0)
+	if (begx == 0 && num_lines == screen_lines(SP_PARM) && begy == 0)
 	    win->_flags |= _FULLWIN;
 
-	if (begy + num_lines == screen_lines)
+	if (begy + num_lines == screen_lines(SP_PARM))
 	    win->_flags |= _SCROLLWIN;
     }
 
-    wp->next = _nc_windows;
-    wp->screen = SP;
-    _nc_windows = wp;
+    wp->next = WindowList(SP_PARM);
+    wp->screen = SP_PARM;
+    WindowList(SP_PARM) = wp;
 
     T((T_CREATE("window %p"), win));
 
@@ -320,6 +347,16 @@
     returnWin(win);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(WINDOW *)
+_nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags)
+{
+    return NCURSES_SP_NAME(_nc_makenew) (CURRENT_SCREEN,
+					 num_lines, num_columns,
+					 begy, begx, flags);
+}
+#endif
+
 /*
  * wgetch() and other functions with a WINDOW* parameter may use a SCREEN*
  * internally, and it is useful to allow those to be invoked without switching
@@ -336,3 +373,23 @@
     }
     return (sp);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(WINDOW *)
+_nc_curscr_of(SCREEN *sp)
+{
+    return sp == 0 ? 0 : sp->_curscr;
+}
+
+NCURSES_EXPORT(WINDOW *)
+_nc_newscr_of(SCREEN *sp)
+{
+    return sp == 0 ? 0 : sp->_newscr;
+}
+
+NCURSES_EXPORT(WINDOW *)
+_nc_stdscr_of(SCREEN *sp)
+{
+    return sp == 0 ? 0 : sp->_stdscr;
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_nl.c ncurses-5.7/ncurses/base/lib_nl.c
--- ncurses-5.7.orig/ncurses/base/lib_nl.c	2000-12-09 18:43:27.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_nl.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -42,38 +44,52 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_nl.c,v 1.8 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_nl.c,v 1.10 2009/02/21 20:58:21 tom Exp $")
 
 #ifdef __EMX__
 #include <io.h>
 #endif
 
 NCURSES_EXPORT(int)
-nl(void)
+NCURSES_SP_NAME(nl) (NCURSES_SP_DCL0)
 {
-    T((T_CALLED("nl()")));
-
-    SP->_nl = TRUE;
-
+    T((T_CALLED("nl(%p)"), SP_PARM));
+    if (0 == SP_PARM)
+	returnCode(ERR);
+    SP_PARM->_nl = TRUE;
 #ifdef __EMX__
     _nc_flush();
     _fsetmode(NC_OUTPUT, "t");
 #endif
-
     returnCode(OK);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-nonl(void)
+nl(void)
 {
-    T((T_CALLED("nonl()")));
-
-    SP->_nl = FALSE;
+    return NCURSES_SP_NAME(nl) (CURRENT_SCREEN);
+}
+#endif
 
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(nonl) (NCURSES_SP_DCL0)
+{
+    T((T_CALLED("nonl(%p)"), SP_PARM));
+    if (0 == SP_PARM)
+	returnCode(ERR);
+    SP_PARM->_nl = FALSE;
 #ifdef __EMX__
     _nc_flush();
     _fsetmode(NC_OUTPUT, "b");
 #endif
-
     returnCode(OK);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+nonl(void)
+{
+    return NCURSES_SP_NAME(nonl) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_pad.c ncurses-5.7/ncurses/base/lib_pad.c
--- ncurses-5.7.orig/ncurses/base/lib_pad.c	2006-10-14 13:47:13.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_pad.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2006 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2006,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -40,10 +42,10 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_pad.c,v 1.41 2006/10/14 20:47:13 tom Exp $")
+MODULE_ID("$Id: lib_pad.c,v 1.43 2009/04/18 18:25:37 tom Exp $")
 
 NCURSES_EXPORT(WINDOW *)
-newpad(int l, int c)
+NCURSES_SP_NAME(newpad) (NCURSES_SP_DCLx int l, int c)
 {
     WINDOW *win;
     NCURSES_CH_T *ptr;
@@ -70,6 +72,14 @@
     returnWin(win);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(WINDOW *)
+newpad(int l, int c)
+{
+    return NCURSES_SP_NAME(newpad) (CURRENT_SCREEN, l, c);
+}
+#endif
+
 NCURSES_EXPORT(WINDOW *)
 subpad(WINDOW *orig, int l, int c, int begy, int begx)
 {
@@ -162,8 +172,8 @@
 	pmaxcol = pmincol + smaxcol - smincol;
     }
 
-    if (smaxrow >= screen_lines
-	|| smaxcol >= screen_columns
+    if (smaxrow >= screen_lines(CURRENT_SCREEN)
+	|| smaxcol >= screen_columns(CURRENT_SCREEN)
 	|| sminrow > smaxrow
 	|| smincol > smaxcol)
 	returnCode(ERR);
diff -Naur ncurses-5.7.orig/ncurses/base/lib_printw.c ncurses-5.7/ncurses/base/lib_printw.c
--- ncurses-5.7.orig/ncurses/base/lib_printw.c	2006-12-17 11:21:39.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_printw.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -39,7 +39,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_printw.c,v 1.18 2006/12/17 19:21:39 tom Exp $")
+MODULE_ID("$Id: lib_printw.c,v 1.19 2009/04/18 18:45:55 tom Exp $")
 
 NCURSES_EXPORT(int)
 printw(const char *fmt,...)
@@ -128,10 +128,14 @@
 {
     char *buf;
     int code = ERR;
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = _nc_screen_of(win);
+#endif
 
     T((T_CALLED("vwprintw(%p,%s,va_list)"), win, _nc_visbuf(fmt)));
 
-    if ((buf = _nc_printf_string(fmt, argp)) != 0) {
+    buf = NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_ARGx fmt, argp);
+    if (buf != 0) {
 	code = waddstr(win, buf);
     }
     returnCode(code);
diff -Naur ncurses-5.7.orig/ncurses/base/lib_redrawln.c ncurses-5.7/ncurses/base/lib_redrawln.c
--- ncurses-5.7.orig/ncurses/base/lib_redrawln.c	2007-10-13 13:08:56.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_redrawln.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -39,7 +39,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_redrawln.c,v 1.12 2007/10/13 20:08:56 tom Exp $")
+MODULE_ID("$Id: lib_redrawln.c,v 1.13 2009/04/18 18:46:00 tom Exp $")
 
 NCURSES_EXPORT(int)
 wredrawln(WINDOW *win, int beg, int num)
@@ -47,37 +47,40 @@
     int i;
     int end;
     size_t len;
+    SCREEN *sp;
 
     T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num));
 
     if (win == 0)
 	returnCode(ERR);
 
+    sp = _nc_screen_of(win);
+
     if (beg < 0)
 	beg = 0;
 
     if (touchline(win, beg, num) == ERR)
 	returnCode(ERR);
 
-    if (touchline(curscr, beg + win->_begy, num) == ERR)
+    if (touchline(sp->_curscr, beg + win->_begy, num) == ERR)
 	returnCode(ERR);
 
     end = beg + num;
-    if (end > curscr->_maxy + 1)
-	end = curscr->_maxy + 1;
+    if (end > sp->_curscr->_maxy + 1)
+	end = sp->_curscr->_maxy + 1;
     if (end > win->_maxy + 1)
 	end = win->_maxy + 1;
 
     len = (win->_maxx + 1);
-    if (len > (size_t) (curscr->_maxx + 1))
-	len = (size_t) (curscr->_maxx + 1);
-    len *= sizeof(curscr->_line[0].text[0]);
+    if (len > (size_t) (sp->_curscr->_maxx + 1))
+	len = (size_t) (sp->_curscr->_maxx + 1);
+    len *= sizeof(sp->_curscr->_line[0].text[0]);
 
     for (i = beg; i < end; i++) {
 	int crow = i + win->_begy;
 
-	memset(curscr->_line[crow].text + win->_begx, 0, len);
-	_nc_make_oldhash(crow);
+	memset(sp->_curscr->_line[crow].text + win->_begx, 0, len);
+	NCURSES_SP_NAME(_nc_make_oldhash) (NCURSES_SP_ARGx crow);
     }
 
     returnCode(OK);
diff -Naur ncurses-5.7.orig/ncurses/base/lib_restart.c ncurses-5.7/ncurses/base/lib_restart.c
--- ncurses-5.7.orig/ncurses/base/lib_restart.c	2008-06-21 10:31:22.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_restart.c	2009-06-05 14:01:49.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2008                    *
  ****************************************************************************/
 
 /*
@@ -44,49 +45,52 @@
 #define _POSIX_SOURCE
 #endif
 
-#include <term.h>		/* lines, columns, cur_term */
-
-MODULE_ID("$Id: lib_restart.c,v 1.10 2008/06/21 17:31:22 tom Exp $")
+MODULE_ID("$Id: lib_restart.c,v 1.11 2009/05/02 20:47:42 tom Exp $")
 
 NCURSES_EXPORT(int)
-restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
+NCURSES_SP_NAME(restartterm) (NCURSES_SP_DCLx
+			      NCURSES_CONST char *termp,
+			      int filenum,
+			      int *errret)
 {
     int result;
 
-    T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret));
+    T((T_CALLED("restartterm(%p,%s,%d,%p)"), SP_PARM, termp, filenum, errret));
 
     if (setupterm(termp, filenum, errret) != OK) {
 	result = ERR;
-    } else if (SP != 0) {
-	int saveecho = SP->_echo;
-	int savecbreak = SP->_cbreak;
-	int saveraw = SP->_raw;
-	int savenl = SP->_nl;
-
-	if (saveecho)
-	    echo();
-	else
-	    noecho();
+    } else if (SP_PARM != 0) {
+	int saveecho = SP_PARM->_echo;
+	int savecbreak = SP_PARM->_cbreak;
+	int saveraw = SP_PARM->_raw;
+	int savenl = SP_PARM->_nl;
+
+	if (saveecho) {
+	    NCURSES_SP_NAME(echo) (NCURSES_SP_ARG);
+	} else {
+	    NCURSES_SP_NAME(noecho) (NCURSES_SP_ARG);
+	}
 
 	if (savecbreak) {
-	    cbreak();
-	    noraw();
+	    NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG);
+	    NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
 	} else if (saveraw) {
-	    nocbreak();
-	    raw();
+	    NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG);
+	    NCURSES_SP_NAME(raw) (NCURSES_SP_ARG);
+	} else {
+	    NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG);
+	    NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG);
+	}
+	if (savenl) {
+	    NCURSES_SP_NAME(nl) (NCURSES_SP_ARG);
 	} else {
-	    nocbreak();
-	    noraw();
+	    NCURSES_SP_NAME(nonl) (NCURSES_SP_ARG);
 	}
-	if (savenl)
-	    nl();
-	else
-	    nonl();
 
-	reset_prog_mode();
+	NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_ARG);
 
 #if USE_SIZECHANGE
-	_nc_update_screensize(SP);
+	_nc_update_screensize(SP_PARM);
 #endif
 
 	result = OK;
@@ -95,3 +99,11 @@
     }
     returnCode(result);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+restartterm(NCURSES_CONST char *termp, int filenum, int *errret)
+{
+    return NCURSES_SP_NAME(restartterm) (CURRENT_SCREEN, termp, filenum, errret);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_screen.c ncurses-5.7/ncurses/base/lib_screen.c
--- ncurses-5.7.orig/ncurses/base/lib_screen.c	2008-08-16 12:05:37.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_screen.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,11 +30,16 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996 on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_screen.c,v 1.31 2008/08/16 19:05:37 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_screen.c,v 1.34 2009/05/10 00:48:29 tom Exp $")
 
 #define MAX_SIZE 0x3fff		/* 16k is big enough for a window or pad */
 
@@ -141,7 +146,7 @@
 }
 
 NCURSES_EXPORT(int)
-scr_restore(const char *file)
+NCURSES_SP_NAME(scr_restore) (NCURSES_SP_DCLx const char *file)
 {
     FILE *fp = 0;
 
@@ -152,15 +157,23 @@
 	returnCode(ERR);
     } else {
 	delwin(newscr);
-	SP->_newscr = getwin(fp);
+	SP_PARM->_newscr = getwin(fp);
 #if !USE_REENTRANT
-	newscr = SP->_newscr;
+	newscr = SP_PARM->_newscr;
 #endif
 	(void) fclose(fp);
 	returnCode(OK);
     }
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+scr_restore(const char *file)
+{
+    return NCURSES_SP_NAME(scr_restore) (CURRENT_SCREEN, file);
+}
+#endif
+
 NCURSES_EXPORT(int)
 scr_dump(const char *file)
 {
@@ -179,7 +192,7 @@
 }
 
 NCURSES_EXPORT(int)
-scr_init(const char *file)
+NCURSES_SP_NAME(scr_init) (NCURSES_SP_DCLx const char *file)
 {
     FILE *fp = 0;
 
@@ -193,17 +206,25 @@
 	returnCode(ERR);
     } else {
 	delwin(curscr);
-	SP->_curscr = getwin(fp);
+	SP_PARM->_curscr = getwin(fp);
 #if !USE_REENTRANT
-	curscr = SP->_curscr;
+	curscr = SP_PARM->_curscr;
 #endif
 	(void) fclose(fp);
 	returnCode(OK);
     }
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-scr_set(const char *file)
+scr_init(const char *file)
+{
+    return NCURSES_SP_NAME(scr_init) (CURRENT_SCREEN, file);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(scr_set) (NCURSES_SP_DCLx const char *file)
 {
     T((T_CALLED("scr_set(%s)"), _nc_visbuf(file)));
 
@@ -211,10 +232,18 @@
 	returnCode(ERR);
     } else {
 	delwin(newscr);
-	SP->_newscr = dupwin(curscr);
+	SP_PARM->_newscr = dupwin(curscr);
 #if !USE_REENTRANT
-	newscr = SP->_newscr;
+	newscr = SP_PARM->_newscr;
 #endif
 	returnCode(OK);
     }
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+scr_set(const char *file)
+{
+    return NCURSES_SP_NAME(scr_set) (CURRENT_SCREEN, file);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_set_term.c ncurses-5.7/ncurses/base/lib_set_term.c
--- ncurses-5.7.orig/ncurses/base/lib_set_term.c	2008-08-04 11:11:12.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_set_term.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -44,7 +45,11 @@
 #include <term.h>		/* cur_term */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_set_term.c,v 1.117 2008/08/04 18:11:12 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_set_term.c,v 1.122 2009/05/10 00:48:29 tom Exp $")
 
 NCURSES_EXPORT(SCREEN *)
 set_term(SCREEN *screenp)
@@ -256,6 +261,9 @@
 		bool filtered,
 		int slk_format)
 {
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = CURRENT_SCREEN;
+#endif
     char *env;
     int bottom_stolen = 0;
     bool support_cookies = USE_XMC_SUPPORT;
@@ -555,8 +563,8 @@
     def_shell_mode();
     def_prog_mode();
 
-    for (rop = ripoff_stack;
-	 rop != ripoff_sp && (rop - ripoff_stack) < N_RIPS;
+    for (rop = safe_ripoff_stack;
+	 rop != safe_ripoff_sp && (rop - safe_ripoff_stack) < N_RIPS;
 	 rop++) {
 
 	/* If we must simulate soft labels, grab off the line to be used.
@@ -595,7 +603,7 @@
 	}
     }
     /* reset the stack */
-    ripoff_sp = ripoff_stack;
+    safe_ripoff_sp = safe_ripoff_stack;
 
     T(("creating stdscr"));
     assert((SP->_lines_avail + SP->_topstolen + bottom_stolen) == slines);
@@ -615,27 +623,39 @@
  * off from the top or bottom.
  */
 NCURSES_EXPORT(int)
-_nc_ripoffline(int line, int (*init) (WINDOW *, int))
+NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_DCLx
+				 int line,
+				 int (*init) (WINDOW *, int))
 {
     T((T_CALLED("_nc_ripoffline(%d, %p)"), line, init));
 
     if (line != 0) {
 
-	if (ripoff_sp == 0)
-	    ripoff_sp = ripoff_stack;
-	if (ripoff_sp >= ripoff_stack + N_RIPS)
+	if (safe_ripoff_sp == 0)
+	    safe_ripoff_sp = safe_ripoff_stack;
+	if (safe_ripoff_sp >= safe_ripoff_stack + N_RIPS)
 	    returnCode(ERR);
 
-	ripoff_sp->line = line;
-	ripoff_sp->hook = init;
-	ripoff_sp++;
+	safe_ripoff_sp->line = line;
+	safe_ripoff_sp->hook = init;
+	safe_ripoff_sp++;
     }
 
     returnCode(OK);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-ripoffline(int line, int (*init) (WINDOW *, int))
+_nc_ripoffline(int line, int (*init) (WINDOW *, int))
+{
+    return NCURSES_SP_NAME(_nc_ripoffline) (CURRENT_SCREEN, line, init);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(ripoffline) (NCURSES_SP_DCLx
+			     int line,
+			     int (*init) (WINDOW *, int))
 {
     START_TRACE();
     T((T_CALLED("ripoffline(%d,%p)"), line, init));
@@ -643,5 +663,15 @@
     if (line == 0)
 	returnCode(OK);
 
-    returnCode(_nc_ripoffline((line < 0) ? -1 : 1, init));
+    returnCode(NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx
+						(line < 0) ? -1 : 1,
+						init));
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+ripoffline(int line, int (*init) (WINDOW *, int))
+{
+    return NCURSES_SP_NAME(ripoffline) (CURRENT_SCREEN, line, init);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkatrof.c ncurses-5.7/ncurses/base/lib_slkatrof.c
--- ncurses-5.7.orig/ncurses/base/lib_slkatrof.c	2005-01-08 15:01:32.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slkatrof.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -38,21 +38,29 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatrof.c,v 1.8 2005/01/08 23:01:32 tom Exp $")
+MODULE_ID("$Id: lib_slkatrof.c,v 1.10 2009/02/21 17:35:28 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_attroff(const chtype attr)
+NCURSES_SP_NAME(slk_attroff) (NCURSES_SP_DCLx const chtype attr)
 {
-    T((T_CALLED("slk_attroff(%s)"), _traceattr(attr)));
+    T((T_CALLED("slk_attroff(%p,%s)"), SP_PARM, _traceattr(attr)));
 
-    if (SP != 0 && SP->_slk != 0) {
-	TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
-	RemAttr(SP->_slk->attr, attr);
+    if (SP_PARM != 0 && SP_PARM->_slk != 0) {
+	TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr))));
+	RemAttr(SP_PARM->_slk->attr, attr);
 	if ((attr & A_COLOR) != 0) {
-	    SetPair(SP->_slk->attr, 0);
+	    SetPair(SP_PARM->_slk->attr, 0);
 	}
-	TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
+	TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr))));
 	returnCode(OK);
     } else
 	returnCode(ERR);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_attroff(const chtype attr)
+{
+    return NCURSES_SP_NAME(slk_attroff) (CURRENT_SCREEN, attr);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkatron.c ncurses-5.7/ncurses/base/lib_slkatron.c
--- ncurses-5.7.orig/ncurses/base/lib_slkatron.c	2005-01-08 15:02:01.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slkatron.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -38,21 +38,29 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatron.c,v 1.8 2005/01/08 23:02:01 tom Exp $")
+MODULE_ID("$Id: lib_slkatron.c,v 1.10 2009/02/21 18:16:04 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_attron(const chtype attr)
+NCURSES_SP_NAME(slk_attron) (NCURSES_SP_DCLx const chtype attr)
 {
-    T((T_CALLED("slk_attron(%s)"), _traceattr(attr)));
+    T((T_CALLED("slk_attron(%p,%s)"), SP_PARM, _traceattr(attr)));
 
-    if (SP != 0 && SP->_slk != 0) {
-	TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
-	AddAttr(SP->_slk->attr, attr);
+    if (SP_PARM != 0 && SP_PARM->_slk != 0) {
+	TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr))));
+	AddAttr(SP_PARM->_slk->attr, attr);
 	if ((attr & A_COLOR) != 0) {
-	    SetPair(SP->_slk->attr, PAIR_NUMBER(attr));
+	    SetPair(SP_PARM->_slk->attr, PAIR_NUMBER(attr));
 	}
-	TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
+	TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr))));
 	returnCode(OK);
     } else
 	returnCode(ERR);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_attron(const chtype attr)
+{
+    return NCURSES_SP_NAME(slk_attron) (CURRENT_SCREEN, attr);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkatr_set.c ncurses-5.7/ncurses/base/lib_slkatr_set.c
--- ncurses-5.7.orig/ncurses/base/lib_slkatr_set.c	2005-01-28 13:11:53.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slkatr_set.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -28,7 +28,7 @@
 
 /****************************************************************************
  *  Author:  Juergen Pfeifer, 1998                                          *
- *     and:  Thomas E. Dickey 2005                                          *
+ *     and:  Thomas E. Dickey 2005-on                                       *
  ****************************************************************************/
 
 /*
@@ -38,22 +38,39 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatr_set.c,v 1.10 2005/01/28 21:11:53 tom Exp $")
+MODULE_ID("$Id: lib_slkatr_set.c,v 1.13 2009/02/21 17:20:17 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_attr_set(const attr_t attr, short color_pair_number, void *opts)
+NCURSES_SP_NAME(slk_attr_set) (NCURSES_SP_DCLx
+			       const attr_t attr,
+			       short color_pair_number,
+			       void *opts)
 {
-    T((T_CALLED("slk_attr_set(%s,%d)"), _traceattr(attr), color_pair_number));
+    int code = ERR;
+
+    T((T_CALLED("slk_attr_set(%p,%s,%d)"), SP_PARM, _traceattr(attr), color_pair_number));
 
-    if (SP != 0 && SP->_slk != 0 && !opts &&
-	color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) {
-	TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
-	SetAttr(SP->_slk->attr, attr);
+    if (SP_PARM != 0
+	&& SP_PARM->_slk != 0
+	&& !opts
+	&& color_pair_number >= 0
+	&& color_pair_number < SP_PARM->_pair_limit) {
+	TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP_PARM->_slk->attr))));
+	SetAttr(SP_PARM->_slk->attr, attr);
 	if (color_pair_number > 0) {
-	    SetPair(SP->_slk->attr, color_pair_number);
+	    SetPair(SP_PARM->_slk->attr, color_pair_number);
 	}
-	TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
-	returnCode(OK);
-    } else
-	returnCode(ERR);
+	TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr))));
+	code = OK;
+    }
+    returnCode(code);
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_attr_set(const attr_t attr, short color_pair_number, void *opts)
+{
+    return NCURSES_SP_NAME(slk_attr_set) (CURRENT_SCREEN, attr,
+					  color_pair_number, opts);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkatrset.c ncurses-5.7/ncurses/base/lib_slkatrset.c
--- ncurses-5.7.orig/ncurses/base/lib_slkatrset.c	2005-01-08 13:46:47.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slkatrset.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -38,16 +38,24 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkatrset.c,v 1.7 2005/01/08 21:46:47 tom Exp $")
+MODULE_ID("$Id: lib_slkatrset.c,v 1.9 2009/02/21 17:49:07 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_attrset(const chtype attr)
+NCURSES_SP_NAME(slk_attrset) (NCURSES_SP_DCLx const chtype attr)
 {
-    T((T_CALLED("slk_attrset(%s)"), _traceattr(attr)));
+    T((T_CALLED("slk_attrset(%p,%s)"), SP_PARM, _traceattr(attr)));
 
-    if (SP != 0 && SP->_slk != 0) {
-	SetAttr(SP->_slk->attr, attr);
+    if (SP_PARM != 0 && SP_PARM->_slk != 0) {
+	SetAttr(SP_PARM->_slk->attr, attr);
 	returnCode(OK);
     } else
 	returnCode(ERR);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_attrset(const chtype attr)
+{
+    return NCURSES_SP_NAME(slk_attrset) (CURRENT_SCREEN, attr);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkattr.c ncurses-5.7/ncurses/base/lib_slkattr.c
--- ncurses-5.7.orig/ncurses/base/lib_slkattr.c	2005-01-08 13:44:28.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slkattr.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2009 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            *
@@ -38,19 +38,27 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkattr.c,v 1.6 2005/01/08 21:44:28 tom Exp $")
+MODULE_ID("$Id: lib_slkattr.c,v 1.8 2009/02/21 17:48:14 tom Exp $")
 
 NCURSES_EXPORT(attr_t)
-slk_attr(void)
+NCURSES_SP_NAME(slk_attr) (NCURSES_SP_DCL0)
 {
-    T((T_CALLED("slk_attr()")));
+    T((T_CALLED("slk_attr(%p)"), SP_PARM));
 
-    if (SP != 0 && SP->_slk != 0) {
-	attr_t result = AttrOf(SP->_slk->attr) & ALL_BUT_COLOR;
-	int pair = GetPair(SP->_slk->attr);
+    if (SP_PARM != 0 && SP_PARM->_slk != 0) {
+	attr_t result = AttrOf(SP_PARM->_slk->attr) & ALL_BUT_COLOR;
+	int pair = GetPair(SP_PARM->_slk->attr);
 
 	result |= COLOR_PAIR(pair);
 	returnAttr(result);
     } else
 	returnAttr(0);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(attr_t)
+slk_attr(void)
+{
+    return NCURSES_SP_NAME(slk_attr) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slk.c ncurses-5.7/ncurses/base/lib_slk.c
--- ncurses-5.7.orig/ncurses/base/lib_slk.c	2008-09-27 07:07:33.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_slk.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -45,7 +45,11 @@
 #include <ctype.h>
 #include <term.h>		/* num_labels, label_*, plab_norm */
 
-MODULE_ID("$Id: lib_slk.c,v 1.35 2008/09/27 14:07:33 juergen Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_slk.c,v 1.38 2009/05/10 00:48:29 tom Exp $")
 
 /*
  * Free any memory related to soft labels, return an error.
@@ -68,6 +72,9 @@
 NCURSES_EXPORT(int)
 _nc_slk_initialize(WINDOW *stwin, int cols)
 {
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = CURRENT_SCREEN;
+#endif
     int i, x;
     int res = OK;
     unsigned max_length;
@@ -178,14 +185,22 @@
  * Restore the soft labels on the screen.
  */
 NCURSES_EXPORT(int)
-slk_restore(void)
+NCURSES_SP_NAME(slk_restore) (NCURSES_SP_DCL0)
 {
     T((T_CALLED("slk_restore()")));
 
-    if (SP->_slk == NULL)
+    if (SP_PARM->_slk == NULL)
 	return (ERR);
-    SP->_slk->hidden = FALSE;
-    SP->_slk->dirty = TRUE;
+    SP_PARM->_slk->hidden = FALSE;
+    SP_PARM->_slk->dirty = TRUE;
 
     returnCode(slk_refresh());
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_restore(void)
+{
+    return NCURSES_SP_NAME(slk_restore) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkclear.c ncurses-5.7/ncurses/base/lib_slkclear.c
--- ncurses-5.7.orig/ncurses/base/lib_slkclear.c	2007-12-29 09:51:47.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slkclear.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -40,27 +40,35 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkclear.c,v 1.10 2007/12/29 17:51:47 tom Exp $")
+MODULE_ID("$Id: lib_slkclear.c,v 1.12 2009/02/21 17:47:14 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_clear(void)
+NCURSES_SP_NAME(slk_clear) (NCURSES_SP_DCL0)
 {
     int rc = ERR;
 
-    T((T_CALLED("slk_clear()")));
+    T((T_CALLED("slk_clear(%p)"), SP_PARM));
 
-    if (SP != NULL && SP->_slk != NULL) {
-	SP->_slk->hidden = TRUE;
+    if (SP_PARM != 0 && SP_PARM->_slk != 0) {
+	SP_PARM->_slk->hidden = TRUE;
 	/* For simulated SLK's it looks much more natural to
 	   inherit those attributes from the standard screen */
-	SP->_slk->win->_nc_bkgd = stdscr->_nc_bkgd;
-	WINDOW_ATTRS(SP->_slk->win) = WINDOW_ATTRS(stdscr);
-	if (SP->_slk->win == stdscr) {
+	SP_PARM->_slk->win->_nc_bkgd = SP_PARM->_stdscr->_nc_bkgd;
+	WINDOW_ATTRS(SP_PARM->_slk->win) = WINDOW_ATTRS(SP_PARM->_stdscr);
+	if (SP_PARM->_slk->win == SP_PARM->_stdscr) {
 	    rc = OK;
 	} else {
-	    werase(SP->_slk->win);
-	    rc = wrefresh(SP->_slk->win);
+	    werase(SP_PARM->_slk->win);
+	    rc = wrefresh(SP_PARM->_slk->win);
 	}
     }
     returnCode(rc);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_clear(void)
+{
+    return NCURSES_SP_NAME(slk_clear) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkcolor.c ncurses-5.7/ncurses/base/lib_slkcolor.c
--- ncurses-5.7.orig/ncurses/base/lib_slkcolor.c	2005-01-28 13:11:53.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slkcolor.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -27,8 +27,8 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author:  Juergen Pfeifer, 1998                                          *
- *     and:  Thomas E. Dickey 2005                                          *
+ *  Author:  Juergen Pfeifer, 1998,2009                                     *
+ *     and:  Thomas E. Dickey 2005-on                                       *
  ****************************************************************************/
 
 /*
@@ -38,19 +38,31 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkcolor.c,v 1.12 2005/01/28 21:11:53 tom Exp $")
+MODULE_ID("$Id: lib_slkcolor.c,v 1.15 2009/02/21 16:59:50 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_color(short color_pair_number)
+NCURSES_SP_NAME(slk_color) (NCURSES_SP_DCLx short color_pair_number)
 {
-    T((T_CALLED("slk_color(%d)"), color_pair_number));
+    int code = ERR;
+
+    T((T_CALLED("slk_color(%p,%d)"), SP_PARM, color_pair_number));
+
+    if (SP_PARM != 0
+	&& SP_PARM->_slk != 0
+	&& color_pair_number >= 0
+	&& color_pair_number < SP_PARM->_pair_limit) {
+	TR(TRACE_ATTRS, ("... current is %s", _tracech_t(CHREF(SP_PARM->_slk->attr))));
+	SetPair(SP_PARM->_slk->attr, color_pair_number);
+	TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP_PARM->_slk->attr))));
+	code = OK;
+    }
+    returnCode(code);
+}
 
-    if (SP != 0 && SP->_slk != 0 &&
-	color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) {
-	TR(TRACE_ATTRS, ("... current is %s", _tracech_t(CHREF(SP->_slk->attr))));
-	SetPair(SP->_slk->attr, color_pair_number);
-	TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
-	returnCode(OK);
-    } else
-	returnCode(ERR);
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_color(short color_pair_number)
+{
+    return NCURSES_SP_NAME(slk_color) (CURRENT_SCREEN, color_pair_number);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkinit.c ncurses-5.7/ncurses/base/lib_slkinit.c
--- ncurses-5.7.orig/ncurses/base/lib_slkinit.c	2008-01-12 12:23:39.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slkinit.c	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -39,17 +40,40 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slkinit.c,v 1.7 2008/01/12 20:23:39 tom Exp $")
+MODULE_ID("$Id: lib_slkinit.c,v 1.11 2009/05/23 23:32:57 tom Exp $")
+
+#ifdef USE_SP_RIPOFF
+#define SoftkeyFormat SP_PARM->slk_format
+#else
+#define SoftkeyFormat _nc_globals.slk_format
+#endif
 
 NCURSES_EXPORT(int)
-slk_init(int format)
+NCURSES_SP_NAME(slk_init) (NCURSES_SP_DCLx int format)
 {
     int code = ERR;
 
-    T((T_CALLED("slk_init(%d)"), format));
-    if (format >= 0 && format <= 3 && !_nc_globals.slk_format) {
-	_nc_globals.slk_format = 1 + format;
-	code = _nc_ripoffline(-SLK_LINES(_nc_globals.slk_format), _nc_slk_initialize);
+    T((T_CALLED("slk_init(%p,%d)"), SP_PARM, format));
+
+    if (format >= 0
+	&& format <= 3
+#ifdef USE_SP_RIPOFF
+	&& SP_PARM
+	&& SP_PARM->_prescreen
+#endif
+	&& !SoftkeyFormat) {
+	SoftkeyFormat = 1 + format;
+	code = NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx
+						-SLK_LINES(SoftkeyFormat),
+						_nc_slk_initialize);
     }
     returnCode(code);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_init(int format)
+{
+    return NCURSES_SP_NAME(slk_init) (CURRENT_SCREEN_PRE, format);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slklab.c ncurses-5.7/ncurses/base/lib_slklab.c
--- ncurses-5.7.orig/ncurses/base/lib_slklab.c	2003-03-29 14:53:48.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slklab.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and:  Juergen Pfeifer,                       1998,2009               *
+ *     and:  Thomas E. Dickey                       1998-on                 *
  ****************************************************************************/
 
 /*
@@ -38,14 +40,22 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slklab.c,v 1.7 2003/03/29 22:53:48 tom Exp $")
+MODULE_ID("$Id: lib_slklab.c,v 1.9 2009/02/21 18:48:42 tom Exp $")
 
 NCURSES_EXPORT(char *)
-slk_label(int n)
+NCURSES_SP_NAME(slk_label) (NCURSES_SP_DCLx int n)
 {
-    T((T_CALLED("slk_label(%d)"), n));
+    T((T_CALLED("slk_label(%p,%d)"), SP_PARM, n));
 
-    if (SP == NULL || SP->_slk == NULL || n < 1 || n > SP->_slk->labcnt)
+    if (SP_PARM == 0 || SP_PARM->_slk == 0 || n < 1 || n > SP_PARM->_slk->labcnt)
 	returnPtr(0);
-    returnPtr(SP->_slk->ent[n - 1].ent_text);
+    returnPtr(SP_PARM->_slk->ent[n - 1].ent_text);
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(char *)
+slk_label(int n)
+{
+    return NCURSES_SP_NAME(slk_label) (CURRENT_SCREEN, n);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkrefr.c ncurses-5.7/ncurses/base/lib_slkrefr.c
--- ncurses-5.7.orig/ncurses/base/lib_slkrefr.c	2008-09-27 07:07:53.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_slkrefr.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -40,7 +40,11 @@
 #include <curses.priv.h>
 #include <term.h>		/* num_labels, label_*, plab_norm */
 
-MODULE_ID("$Id: lib_slkrefr.c,v 1.17 2008/09/27 14:07:53 juergen Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_slkrefr.c,v 1.20 2009/05/10 00:48:29 tom Exp $")
 
 /*
  * Paint the info line for the PC style SLK emulation.
@@ -68,6 +72,9 @@
 static void
 slk_intern_refresh(SLK * slk)
 {
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = CURRENT_SCREEN;
+#endif
     int i;
     int fmt = SP->slk_format;
 
@@ -113,32 +120,48 @@
  * Refresh the soft labels.
  */
 NCURSES_EXPORT(int)
-slk_noutrefresh(void)
+NCURSES_SP_NAME(slk_noutrefresh) (NCURSES_SP_DCL0)
 {
     T((T_CALLED("slk_noutrefresh()")));
 
-    if (SP == NULL || SP->_slk == NULL)
+    if (SP_PARM == NULL || SP_PARM->_slk == NULL)
 	returnCode(ERR);
-    if (SP->_slk->hidden)
+    if (SP_PARM->_slk->hidden)
 	returnCode(OK);
-    slk_intern_refresh(SP->_slk);
+    slk_intern_refresh(SP_PARM->_slk);
+
+    returnCode(wnoutrefresh(SP_PARM->_slk->win));
+}
 
-    returnCode(wnoutrefresh(SP->_slk->win));
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_noutrefresh(void)
+{
+    return NCURSES_SP_NAME(slk_noutrefresh) (CURRENT_SCREEN);
 }
+#endif
 
 /*
  * Refresh the soft labels.
  */
 NCURSES_EXPORT(int)
-slk_refresh(void)
+NCURSES_SP_NAME(slk_refresh) (NCURSES_SP_DCL0)
 {
     T((T_CALLED("slk_refresh()")));
 
-    if (SP == NULL || SP->_slk == NULL)
+    if (SP_PARM == NULL || SP_PARM->_slk == NULL)
 	returnCode(ERR);
-    if (SP->_slk->hidden)
+    if (SP_PARM->_slk->hidden)
 	returnCode(OK);
-    slk_intern_refresh(SP->_slk);
+    slk_intern_refresh(SP_PARM->_slk);
+
+    returnCode(wrefresh(SP_PARM->_slk->win));
+}
 
-    returnCode(wrefresh(SP->_slk->win));
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_refresh(void)
+{
+    return NCURSES_SP_NAME(slk_refresh) (CURRENT_SCREEN);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slkset.c ncurses-5.7/ncurses/base/lib_slkset.c
--- ncurses-5.7.orig/ncurses/base/lib_slkset.c	2007-10-13 13:08:46.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_slkset.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -44,10 +44,10 @@
 #endif
 #endif
 
-MODULE_ID("$Id: lib_slkset.c,v 1.17 2007/10/13 20:08:46 tom Exp $")
+MODULE_ID("$Id: lib_slkset.c,v 1.19 2009/02/21 17:34:06 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_set(int i, const char *astr, int format)
+NCURSES_SP_NAME(slk_set) (NCURSES_SP_DCLx int i, const char *astr, int format)
 {
     SLK *slk;
     int offset;
@@ -57,20 +57,20 @@
     const char *str = astr;
     const char *p;
 
-    T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format));
+    T((T_CALLED("slk_set(%p, %d, \"%s\", %d)"), SP_PARM, i, str, format));
 
-    if (SP == 0
-	|| (slk = SP->_slk) == 0
+    if (SP_PARM == 0
+	|| (slk = SP_PARM->_slk) == 0
 	|| i < 1
 	|| i > slk->labcnt
 	|| format < 0
 	|| format > 2)
 	returnCode(ERR);
-    if (str == NULL)
+    if (str == 0)
 	str = "";
     --i;			/* Adjust numbering of labels */
 
-    limit = MAX_SKEY_LEN(SP->slk_format);
+    limit = MAX_SKEY_LEN(SP_PARM->slk_format);
     while (isspace(UChar(*str)))
 	str++;			/* skip over leading spaces  */
     p = str;
@@ -147,3 +147,11 @@
     slk->ent[i].dirty = TRUE;
     returnCode(OK);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_set(int i, const char *astr, int format)
+{
+    return NCURSES_SP_NAME(slk_set) (CURRENT_SCREEN, i, astr, format);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_slktouch.c ncurses-5.7/ncurses/base/lib_slktouch.c
--- ncurses-5.7.orig/ncurses/base/lib_slktouch.c	2000-12-09 18:43:27.000000000 -0800
+++ ncurses-5.7/ncurses/base/lib_slktouch.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2009 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            *
@@ -27,8 +27,8 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
- *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *  Author: Juergen Pfeifer                         1997,2009               *
+ *     and: Thomas E. Dickey                        1996-on                 *
  ****************************************************************************/
 
 /*
@@ -38,16 +38,24 @@
  */
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_slktouch.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slktouch.c,v 1.7 2009/02/21 17:42:59 tom Exp $")
 
 NCURSES_EXPORT(int)
-slk_touch(void)
+NCURSES_SP_NAME(slk_touch) (NCURSES_SP_DCL0)
 {
-    T((T_CALLED("slk_touch()")));
+    T((T_CALLED("slk_touch(%p)"), SP_PARM));
 
-    if (SP == NULL || SP->_slk == NULL)
+    if (SP_PARM == 0 || SP_PARM->_slk == 0)
 	returnCode(ERR);
-    SP->_slk->dirty = TRUE;
+    SP_PARM->_slk->dirty = TRUE;
 
     returnCode(OK);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+slk_touch(void)
+{
+    return NCURSES_SP_NAME(slk_touch) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/lib_ungetch.c ncurses-5.7/ncurses/base/lib_ungetch.c
--- ncurses-5.7.orig/ncurses/base/lib_ungetch.c	2008-05-31 09:44:54.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_ungetch.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -41,7 +42,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_ungetch.c,v 1.11 2008/05/31 16:44:54 tom Exp $")
+MODULE_ID("$Id: lib_ungetch.c,v 1.13 2009/04/18 20:30:12 tom Exp $")
 
 #include <fifo_defs.h>
 
@@ -57,10 +58,12 @@
 #endif /* TRACE */
 
 NCURSES_EXPORT(int)
-_nc_ungetch(SCREEN *sp, int ch)
+safe_ungetch(SCREEN *sp, int ch)
 {
     int rc = ERR;
 
+    T((T_CALLED("ungetch(%p,%s)"), sp, _nc_tracechar(sp, ch)));
+
     if (tail != -1) {
 	if (head == -1) {
 	    head = 0;
@@ -79,12 +82,11 @@
 #endif
 	rc = OK;
     }
-    return rc;
+    returnCode(rc);
 }
 
 NCURSES_EXPORT(int)
 ungetch(int ch)
 {
-    T((T_CALLED("ungetch(%s)"), _nc_tracechar(SP, ch)));
-    returnCode(_nc_ungetch(SP, ch));
+    return safe_ungetch(CURRENT_SCREEN, ch);
 }
diff -Naur ncurses-5.7.orig/ncurses/base/lib_winch.c ncurses-5.7/ncurses/base/lib_winch.c
--- ncurses-5.7.orig/ncurses/base/lib_winch.c	2001-06-02 16:42:08.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_winch.c	2009-06-05 14:01:16.000000000 -0700
@@ -39,16 +39,16 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_winch.c,v 1.5 2001/06/02 23:42:08 skimo Exp $")
+MODULE_ID("$Id: lib_winch.c,v 1.6 2008/11/16 00:19:59 juergen Exp $")
 
 NCURSES_EXPORT(chtype)
 winch(WINDOW *win)
 {
     T((T_CALLED("winch(%p)"), win));
     if (win != 0) {
-	returnChar(CharOf(win->_line[win->_cury].text[win->_curx]) |
-		   AttrOf(win->_line[win->_cury].text[win->_curx]));
+	returnChtype(CharOf(win->_line[win->_cury].text[win->_curx]) |
+		     AttrOf(win->_line[win->_cury].text[win->_curx]));
     } else {
-	returnChar(0);
+	returnChtype(0);
     }
 }
diff -Naur ncurses-5.7.orig/ncurses/base/lib_window.c ncurses-5.7/ncurses/base/lib_window.c
--- ncurses-5.7.orig/ncurses/base/lib_window.c	2008-06-07 07:12:56.000000000 -0700
+++ ncurses-5.7/ncurses/base/lib_window.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -39,7 +39,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_window.c,v 1.25 2008/06/07 14:12:56 tom Exp $")
+MODULE_ID("$Id: lib_window.c,v 1.26 2009/04/18 18:46:09 tom Exp $")
 
 NCURSES_EXPORT(void)
 _nc_synchook(WINDOW *win)
@@ -185,16 +185,20 @@
     T((T_CALLED("dupwin(%p)"), win));
 
     if (win != 0) {
-
+#if NCURSES_SP_FUNCS
+	SCREEN *sp = _nc_screen_of(win);
+#endif
 	_nc_lock_global(curses);
 	if (win->_flags & _ISPAD) {
-	    nwin = newpad(win->_maxy + 1,
-			  win->_maxx + 1);
+	    nwin = NCURSES_SP_NAME(newpad) (NCURSES_SP_ARGx
+					    win->_maxy + 1,
+					    win->_maxx + 1);
 	} else {
-	    nwin = newwin(win->_maxy + 1,
-			  win->_maxx + 1,
-			  win->_begy,
-			  win->_begx);
+	    nwin = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx
+					    win->_maxy + 1,
+					    win->_maxx + 1,
+					    win->_begy,
+					    win->_begx);
 	}
 
 	if (nwin != 0) {
diff -Naur ncurses-5.7.orig/ncurses/base/MKkeyname.awk ncurses-5.7/ncurses/base/MKkeyname.awk
--- ncurses-5.7.orig/ncurses/base/MKkeyname.awk	2008-07-12 11:40:00.000000000 -0700
+++ ncurses-5.7/ncurses/base/MKkeyname.awk	2009-06-05 14:01:51.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: MKkeyname.awk,v 1.40 2008/07/12 18:40:00 tom Exp $
+# $Id: MKkeyname.awk,v 1.43 2009/05/09 19:01:49 tom Exp $
 ##############################################################################
-# Copyright (c) 1999-2007,2008 Free Software Foundation, Inc.                #
+# Copyright (c) 1999-2008,2009 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"), #
@@ -67,7 +67,8 @@
 	print "#define SIZEOF_TABLE 256"
 	print "#define MyTable _nc_globals.keyname_table"
 	print ""
-	print "NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *sp, int c)"
+	print "NCURSES_EXPORT(NCURSES_CONST char *)"
+	print "safe_keyname (SCREEN *sp, int c)"
 	print "{"
 	print "	int i;"
 	print "	char name[20];"
@@ -116,14 +117,14 @@
 	print "				result = MyTable[c];"
 	print "			}"
 	print "#if NCURSES_EXT_FUNCS && NCURSES_XNAMES"
-	print "		} else if (result == 0 && cur_term != 0) {"
+	print "		} else if (result == 0 && HasTerminal(sp)) {"
 	print "			int j, k;"
 	print "			char * bound;"
-	print "			TERMTYPE *tp = &(cur_term->type);"
+	print "			TERMTYPE *tp = &(TerminalOf(sp)->type);"
 	print "			int save_trace = _nc_tracing;"
 	print ""
 	print "			_nc_tracing = 0;	/* prevent recursion via keybound() */"
-	print "			for (j = 0; (bound = keybound(c, j)) != 0; ++j) {"
+	print "			for (j = 0; (bound = NCURSES_SP_NAME(keybound)(NCURSES_SP_ARGx c, j)) != 0; ++j) {"
 	print "				for(k = STRCOUNT; k < (int) NUM_STRINGS(tp);  k++) {"
 	print "					if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) {"
 	print "						result = ExtStrname(tp, k, strnames);"
@@ -141,9 +142,10 @@
 	print "	return result;"
 	print "}"
 	print ""
-	print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
+	print "NCURSES_EXPORT(NCURSES_CONST char *)"
+	print "keyname (int c)"
 	print "{"
-	print "\treturn _nc_keyname(SP, c);"
+	print "	return safe_keyname (CURRENT_SCREEN, c);"
 	print "}"
 	print ""
 	print "#if NO_LEAKS"
diff -Naur ncurses-5.7.orig/ncurses/base/MKlib_gen.sh ncurses-5.7/ncurses/base/MKlib_gen.sh
--- ncurses-5.7.orig/ncurses/base/MKlib_gen.sh	2008-08-30 12:20:50.000000000 -0700
+++ ncurses-5.7/ncurses/base/MKlib_gen.sh	2009-06-05 14:01:16.000000000 -0700
@@ -2,7 +2,7 @@
 #
 # MKlib_gen.sh -- generate sources from curses.h macro definitions
 #
-# ($Id: MKlib_gen.sh,v 1.34 2008/08/30 19:20:50 tom Exp $)
+# ($Id: MKlib_gen.sh,v 1.35 2008/11/16 00:19:59 juergen Exp $)
 #
 ##############################################################################
 # Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
@@ -199,7 +199,7 @@
 	}
 	second = first + 1;
 	if ( $first == "chtype" ) {
-		returnType = "Char";
+		returnType = "Chtype";
 	} else if ( $first == "SCREEN" ) {
 		returnType = "SP";
 	} else if ( $first == "WINDOW" ) {
diff -Naur ncurses-5.7.orig/ncurses/base/MKunctrl.awk ncurses-5.7/ncurses/base/MKunctrl.awk
--- ncurses-5.7.orig/ncurses/base/MKunctrl.awk	2008-10-04 14:40:24.000000000 -0700
+++ ncurses-5.7/ncurses/base/MKunctrl.awk	2009-06-05 14:01:44.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: MKunctrl.awk,v 1.23 2008/10/04 21:40:24 tom Exp $
+# $Id: MKunctrl.awk,v 1.25 2009/04/18 23:43:49 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2008,2009 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"), #
@@ -46,9 +46,8 @@
 		print ""
 	}
 END	{
-		print "NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *sp, chtype ch)"
+		print "NCURSES_EXPORT(NCURSES_CONST char *) safe_unctrl(SCREEN *sp, chtype ch)"
 		print "{"
-
 		blob=""
 		offset=0
 		if (bigstrings) {
@@ -187,6 +186,6 @@
 		print  ""
 		print  "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype ch)"
 		print  "{"
-		print  "\treturn _nc_unctrl(SP, ch);"
+		print  "\treturn safe_unctrl(CURRENT_SCREEN, ch);"
 		print  "}"
 	}
diff -Naur ncurses-5.7.orig/ncurses/base/nc_panel.c ncurses-5.7/ncurses/base/nc_panel.c
--- ncurses-5.7.orig/ncurses/base/nc_panel.c	2000-12-09 18:43:28.000000000 -0800
+++ ncurses-5.7/ncurses/base/nc_panel.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2009 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            *
@@ -32,10 +32,22 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: nc_panel.c,v 1.4 2000/12/10 02:43:28 tom Exp $")
+MODULE_ID("$Id: nc_panel.c,v 1.5 2009/04/11 21:05:10 tom Exp $")
 
 NCURSES_EXPORT(struct panelhook *)
+NCURSES_SP_NAME(_nc_panelhook) (NCURSES_SP_DCL0)
+{
+    return (SP_PARM
+	    ? &(SP_PARM->_panelHook)
+	    : (CURRENT_SCREEN
+	       ? &(CURRENT_SCREEN->_panelHook)
+	       : 0));
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(struct panelhook *)
 _nc_panelhook(void)
 {
-    return (SP ? &(SP->_panelHook) : NULL);
+    return NCURSES_SP_NAME(_nc_panelhook) (CURRENT_SCREEN);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/resizeterm.c ncurses-5.7/ncurses/base/resizeterm.c
--- ncurses-5.7.orig/ncurses/base/resizeterm.c	2008-06-07 06:58:40.000000000 -0700
+++ ncurses-5.7/ncurses/base/resizeterm.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -41,7 +41,11 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: resizeterm.c,v 1.34 2008/06/07 13:58:40 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: resizeterm.c,v 1.39 2009/05/10 00:48:29 tom Exp $")
 
 #define stolen_lines (screen_lines - SP->_lines_avail)
 
@@ -64,18 +68,23 @@
 static void
 show_window_sizes(const char *name)
 {
+    SCREEN *sp;
     WINDOWLIST *wp;
 
     _nc_lock_global(curses);
-    _tracef("%s resizing: %2d x %2d (%2d x %2d)", name, LINES, COLS,
-	    screen_lines, screen_columns);
-    for (each_window(wp)) {
-	_tracef("  window %p is %2ld x %2ld at %2ld,%2ld",
-		&(wp->win),
-		(long) wp->win._maxy + 1,
-		(long) wp->win._maxx + 1,
-		(long) wp->win._begy,
-		(long) wp->win._begx);
+    for (each_screen(sp)) {
+	_tracef("%s resizing: %p: %2d x %2d (%2d x %2d)", name, sp,
+		*(ptrLines(sp)),
+		*(ptrCols(sp)),
+		screen_lines(sp), screen_columns(sp));
+	for (each_window(sp, wp)) {
+	    _tracef("  window %p is %2ld x %2ld at %2ld,%2ld",
+		    &(wp->win),
+		    (long) wp->win._maxy + 1,
+		    (long) wp->win._maxx + 1,
+		    (long) wp->win._begy,
+		    (long) wp->win._begx);
+	}
     }
     _nc_unlock_global(curses);
 }
@@ -86,15 +95,23 @@
  * structure's size.
  */
 NCURSES_EXPORT(bool)
-is_term_resized(int ToLines, int ToCols)
+NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_DCLx int ToLines, int ToCols)
 {
-    T((T_CALLED("is_term_resized(%d, %d)"), ToLines, ToCols));
+    T((T_CALLED("is_term_resized(%p, %d, %d)"), SP_PARM, ToLines, ToCols));
     returnCode(ToLines > 0
 	       && ToCols > 0
-	       && (ToLines != screen_lines
-		   || ToCols != screen_columns));
+	       && (ToLines != screen_lines(SP_PARM)
+		   || ToCols != screen_columns(SP_PARM)));
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(bool)
+is_term_resized(int ToLines, int ToCols)
+{
+    return NCURSES_SP_NAME(is_term_resized) (CURRENT_SCREEN, ToLines, ToCols);
+}
+#endif
+
 /*
  */
 static ripoff_t *
@@ -104,6 +121,9 @@
     ripoff_t *rop;
 
     if (win != 0) {
+#if NCURSES_SP_FUNCS
+	SCREEN *sp = _nc_screen_of(win);
+#endif
 	for (each_ripoff(rop)) {
 	    if (rop->win == win && rop->line != 0) {
 		result = rop;
@@ -125,6 +145,9 @@
     ripoff_t *rop;
 
     if (win != 0) {
+#if NCURSES_SP_FUNCS
+	SCREEN *sp = _nc_screen_of(win);
+#endif
 	for (each_ripoff(rop)) {
 	    if (rop->line < 0) {
 		result -= rop->line;
@@ -146,9 +169,12 @@
     int depth = 0;
 
     if (cmp != 0) {
+#if NCURSES_SP_FUNCS
+	SCREEN *sp = _nc_screen_of(cmp);
+#endif
 	WINDOWLIST *wp;
 
-	for (each_window(wp)) {
+	for (each_window(sp, wp)) {
 	    WINDOW *tst = &(wp->win);
 	    if (tst->_parent == cmp) {
 		depth = 1 + child_depth(tst);
@@ -184,7 +210,7 @@
 adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen EXTRA_DCLS)
 {
     int result;
-    int bottom = CurLines + SP->_topstolen - stolen;
+    int bottom = CurLines + _nc_screen_of(win)->_topstolen - stolen;
     int myLines = win->_maxy + 1;
     int myCols = win->_maxx + 1;
     ripoff_t *rop = ripped_window(win);
@@ -239,19 +265,19 @@
  * children, decrease those to fit, then decrease the containing window, etc.
  */
 static int
-decrease_size(int ToLines, int ToCols, int stolen EXTRA_DCLS)
+decrease_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS)
 {
     bool found;
     int depth = 0;
     WINDOWLIST *wp;
 
-    T((T_CALLED("decrease_size(%d, %d)"), ToLines, ToCols));
+    T((T_CALLED("decrease_size(%p, %d, %d)"), SP_PARM, ToLines, ToCols));
 
     do {
 	found = FALSE;
 	TR(TRACE_UPDATE, ("decreasing size of windows to %dx%d, depth=%d",
 			  ToLines, ToCols, depth));
-	for (each_window(wp)) {
+	for (each_window(SP_PARM, wp)) {
 	    WINDOW *win = &(wp->win);
 
 	    if (!(win->_flags & _ISPAD)) {
@@ -273,19 +299,19 @@
  * parent, increase those to fit, then increase the contained window, etc.
  */
 static int
-increase_size(int ToLines, int ToCols, int stolen EXTRA_DCLS)
+increase_size(NCURSES_SP_DCLx int ToLines, int ToCols, int stolen EXTRA_DCLS)
 {
     bool found;
     int depth = 0;
     WINDOWLIST *wp;
 
-    T((T_CALLED("increase_size(%d, %d)"), ToLines, ToCols));
+    T((T_CALLED("increase_size(%p, %d, %d)"), SP_PARM, ToLines, ToCols));
 
     do {
 	found = FALSE;
 	TR(TRACE_UPDATE, ("increasing size of windows to %dx%d, depth=%d",
 			  ToLines, ToCols, depth));
-	for (each_window(wp)) {
+	for (each_window(SP_PARM, wp)) {
 	    WINDOW *win = &(wp->win);
 
 	    if (!(win->_flags & _ISPAD)) {
@@ -307,25 +333,26 @@
  * such as ungetch().
  */
 NCURSES_EXPORT(int)
-resize_term(int ToLines, int ToCols)
+NCURSES_SP_NAME(resize_term) (NCURSES_SP_DCLx int ToLines, int ToCols)
 {
     int result = OK EXTRA_ARGS;
     int was_stolen;
 
-    T((T_CALLED("resize_term(%d,%d) old(%d,%d)"),
-       ToLines, ToCols,
-       screen_lines, screen_columns));
+    T((T_CALLED("resize_term(%p,%d,%d) old(%d,%d)"),
+       SP_PARM, ToLines, ToCols,
+       SP_PARM == 0 ? -1 : screen_lines(SP_PARM),
+       SP_PARM == 0 ? -1 : screen_columns(SP_PARM)));
 
-    if (SP == 0) {
+    if (SP_PARM == 0) {
 	returnCode(ERR);
     }
 
     _nc_lock_global(curses);
 
-    was_stolen = (screen_lines - SP->_lines_avail);
-    if (is_term_resized(ToLines, ToCols)) {
-	int myLines = CurLines = screen_lines;
-	int myCols = CurCols = screen_columns;
+    was_stolen = (screen_lines(SP_PARM) - SP_PARM->_lines_avail);
+    if (NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_ARGx ToLines, ToCols)) {
+	int myLines = CurLines = screen_lines(SP_PARM);
+	int myCols = CurCols = screen_columns(SP_PARM);
 
 #ifdef TRACE
 	if (USE_TRACEF(TRACE_UPDATE)) {
@@ -333,33 +360,35 @@
 	    _nc_unlock_global(tracef);
 	}
 #endif
-	if (ToLines > screen_lines) {
-	    increase_size(myLines = ToLines, myCols, was_stolen EXTRA_ARGS);
+	if (ToLines > screen_lines(SP_PARM)) {
+	    increase_size(NCURSES_SP_ARGx
+			  myLines = ToLines, myCols, was_stolen EXTRA_ARGS);
 	    CurLines = myLines;
 	    CurCols = myCols;
 	}
 
-	if (ToCols > screen_columns) {
-	    increase_size(myLines, myCols = ToCols, was_stolen EXTRA_ARGS);
+	if (ToCols > screen_columns(SP_PARM)) {
+	    increase_size(NCURSES_SP_ARGx
+			  myLines, myCols = ToCols, was_stolen EXTRA_ARGS);
 	    CurLines = myLines;
 	    CurCols = myCols;
 	}
 
 	if (ToLines < myLines ||
 	    ToCols < myCols) {
-	    decrease_size(ToLines, ToCols, was_stolen EXTRA_ARGS);
+	    decrease_size(NCURSES_SP_ARGx ToLines, ToCols, was_stolen EXTRA_ARGS);
 	}
 
-	screen_lines = lines = ToLines;
-	screen_columns = columns = ToCols;
+	screen_lines(SP_PARM) = lines = ToLines;
+	screen_columns(SP_PARM) = columns = ToCols;
 
-	SP->_lines_avail = lines - was_stolen;
+	SP_PARM->_lines_avail = lines - was_stolen;
 
-	if (SP->oldhash) {
-	    FreeAndNull(SP->oldhash);
+	if (SP_PARM->oldhash) {
+	    FreeAndNull(SP_PARM->oldhash);
 	}
-	if (SP->newhash) {
-	    FreeAndNull(SP->newhash);
+	if (SP_PARM->newhash) {
+	    FreeAndNull(SP_PARM->newhash);
 	}
 #ifdef TRACE
 	if (USE_TRACEF(TRACE_UPDATE)) {
@@ -383,6 +412,18 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+resize_term(int ToLines, int ToCols)
+{
+    int res = ERR;
+    _nc_lock_global(curses);
+    res = NCURSES_SP_NAME(resize_term) (CURRENT_SCREEN, ToLines, ToCols);
+    _nc_unlock_global(curses);
+    return (res);
+}
+#endif
+
 /*
  * This function reallocates NCURSES window structures.  It is invoked in
  * response to a SIGWINCH interrupt.  Other user-defined windows may also need
@@ -392,34 +433,34 @@
  * invoked directly from the signal handler.
  */
 NCURSES_EXPORT(int)
-resizeterm(int ToLines, int ToCols)
+NCURSES_SP_NAME(resizeterm) (NCURSES_SP_DCLx int ToLines, int ToCols)
 {
     int result = ERR;
 
-    T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"),
-       ToLines, ToCols,
-       screen_lines, screen_columns));
+    T((T_CALLED("resizeterm(%p, %d,%d) old(%d,%d)"),
+       SP_PARM, ToLines, ToCols,
+       SP_PARM == 0 ? -1 : screen_lines(SP_PARM), screen_columns(SP_PARM)));
 
-    if (SP != 0) {
+    if (SP_PARM != 0) {
 	result = OK;
-	SP->_sig_winch = FALSE;
+	SP_PARM->_sig_winch = FALSE;
 
-	if (is_term_resized(ToLines, ToCols)) {
+	if (NCURSES_SP_NAME(is_term_resized) (NCURSES_SP_ARGx ToLines, ToCols)) {
 #if USE_SIGWINCH
 	    ripoff_t *rop;
-	    bool slk_visible = (SP != 0
-				&& SP->_slk != 0
-				&& !(SP->_slk->hidden));
+	    bool slk_visible = (SP_PARM != 0
+				&& SP_PARM->_slk != 0
+				&& !(SP_PARM->_slk->hidden));
 
 	    if (slk_visible) {
 		slk_clear();
 	    }
 #endif
-	    result = resize_term(ToLines, ToCols);
+	    result = NCURSES_SP_NAME(resize_term) (NCURSES_SP_ARGx ToLines, ToCols);
 
 #if USE_SIGWINCH
-	    _nc_ungetch(SP, KEY_RESIZE);	/* so application can know this */
-	    clearok(curscr, TRUE);	/* screen contents are unknown */
+	    safe_ungetch(SP_PARM, KEY_RESIZE);	/* so application can know this */
+	    clearok(CurScreen(SP_PARM), TRUE);	/* screen contents are unknown */
 
 	    /* ripped-off lines are a special case: if we did not lengthen
 	     * them, we haven't moved them either.  repaint them, too.
@@ -429,7 +470,7 @@
 	     * not know which are really on top.
 	     */
 	    for (each_ripoff(rop)) {
-		if (rop->win != stdscr
+		if (rop->win != StdScreen(SP_PARM)
 		    && rop->win != 0
 		    && rop->line < 0) {
 
@@ -442,10 +483,9 @@
 
 	    /* soft-keys are a special case: we _know_ how to repaint them */
 	    if (slk_visible) {
-		slk_restore();
-		slk_touch();
-
-		slk_refresh();
+		NCURSES_SP_NAME(slk_restore) (NCURSES_SP_ARG);
+		NCURSES_SP_NAME(slk_touch) (NCURSES_SP_ARG);
+		NCURSES_SP_NAME(slk_refresh) (NCURSES_SP_ARG);
 	    }
 #endif
 	}
@@ -453,3 +493,11 @@
 
     returnCode(result);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+resizeterm(int ToLines, int ToCols)
+{
+    return NCURSES_SP_NAME(resizeterm) (CURRENT_SCREEN, ToLines, ToCols);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/safe_sprintf.c ncurses-5.7/ncurses/base/safe_sprintf.c
--- ncurses-5.7.orig/ncurses/base/safe_sprintf.c	2007-04-21 15:28:06.000000000 -0700
+++ ncurses-5.7/ncurses/base/safe_sprintf.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -33,7 +33,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: safe_sprintf.c,v 1.20 2007/04/21 22:28:06 tom Exp $")
+MODULE_ID("$Id: safe_sprintf.c,v 1.22 2009/04/18 18:46:46 tom Exp $")
 
 #if USE_SAFE_SPRINTF
 
@@ -111,7 +111,7 @@
 		    }
 		    sprintf(fmt_arg, "%d", ival);
 		    fmt_len += strlen(fmt_arg);
-		    if ((format = realloc(format, fmt_len)) == 0) {
+		    if ((format = _nc_doalloc(format, fmt_len)) == 0) {
 			return -1;
 		    }
 		    strcpy(&format[--f], fmt_arg);
@@ -214,7 +214,9 @@
  * Wrapper for vsprintf that allocates a buffer big enough to hold the result.
  */
 NCURSES_EXPORT(char *)
-_nc_printf_string(const char *fmt, va_list ap)
+NCURSES_SP_NAME(_nc_printf_string) (NCURSES_SP_DCLx
+				    const char *fmt,
+				    va_list ap)
 {
     char *result = 0;
 
@@ -237,11 +239,11 @@
 #define MyCols _nc_globals.safeprint_cols
 #define MyRows _nc_globals.safeprint_rows
 
-	if (screen_lines > MyRows || screen_columns > MyCols) {
-	    if (screen_lines > MyRows)
-		MyRows = screen_lines;
-	    if (screen_columns > MyCols)
-		MyCols = screen_columns;
+	if (screen_lines(SP_PARM) > MyRows || screen_columns(SP_PARM) > MyCols) {
+	    if (screen_lines(SP_PARM) > MyRows)
+		MyRows = screen_lines(SP_PARM);
+	    if (screen_columns(SP_PARM) > MyCols)
+		MyCols = screen_columns(SP_PARM);
 	    my_length = (MyRows * (MyCols + 1)) + 1;
 	    my_buffer = typeRealloc(char, my_length, my_buffer);
 	}
@@ -262,3 +264,11 @@
     }
     return result;
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(char *)
+_nc_printf_string(const char *fmt, va_list ap)
+{
+    return NCURSES_SP_NAME(_nc_printf_string) (CURRENT_SCREEN, fmt, ap);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/base/tries.c ncurses-5.7/ncurses/base/tries.c
--- ncurses-5.7.orig/ncurses/base/tries.c	2008-08-16 12:22:55.000000000 -0700
+++ ncurses-5.7/ncurses/base/tries.c	2009-06-05 14:01:16.000000000 -0700
@@ -39,7 +39,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: tries.c,v 1.27 2008/08/16 19:22:55 tom Exp $")
+MODULE_ID("$Id: tries.c,v 1.28 2008/11/16 00:19:59 juergen Exp $")
 
 /*
  * Expand a keycode into the string that it corresponds to, returning null if
@@ -72,7 +72,9 @@
 	    *((unsigned char *) (result + len)) = 128;
 #ifdef TRACE
 	if (len == 0 && USE_TRACEF(TRACE_MAXIMUM)) {
-	    _tracef("expand_key %s %s", _nc_tracechar(SP, code), _nc_visbuf(result));
+	    _tracef("expand_key %s %s",
+		    _nc_tracechar(CURRENT_SCREEN, code),
+		    _nc_visbuf(result));
 	    _nc_unlock_global(tracef);
 	}
 #endif
diff -Naur ncurses-5.7.orig/ncurses/base/wresize.c ncurses-5.7/ncurses/base/wresize.c
--- ncurses-5.7.orig/ncurses/base/wresize.c	2008-06-07 06:59:01.000000000 -0700
+++ ncurses-5.7/ncurses/base/wresize.c	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -27,12 +27,13 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey 1996-2002                                      *
+ *  Author: Thomas E. Dickey 1996-on                                        *
+ *     and: Juergen Pfeifer                                                 *
  ****************************************************************************/
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: wresize.c,v 1.29 2008/06/07 13:59:01 tom Exp $")
+MODULE_ID("$Id: wresize.c,v 1.31 2009/05/23 19:50:16 tom Exp $")
 
 static int
 cleanup_lines(struct ldat *data, int length)
@@ -53,10 +54,13 @@
     WINDOWLIST *wp;
     struct ldat *pline = cmp->_line;
     int row;
+#ifdef USE_SP_WINDOWLIST
+    SCREEN *sp = _nc_screen_of(cmp);
+#endif
 
     _nc_lock_global(curses);
 
-    for (each_window(wp)) {
+    for (each_window(SP_PARM, wp)) {
 	WINDOW *tst = &(wp->win);
 
 	if (tst->_parent == cmp) {
diff -Naur ncurses-5.7.orig/ncurses/curses.priv.h ncurses-5.7/ncurses/curses.priv.h
--- ncurses-5.7.orig/ncurses/curses.priv.h	2008-10-04 14:37:45.000000000 -0700
+++ ncurses-5.7/ncurses/curses.priv.h	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,11 +30,12 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                                                 *
  ****************************************************************************/
 
 
 /*
- * $Id: curses.priv.h,v 1.394 2008/10/04 21:37:45 tom Exp $
+ * $Id: curses.priv.h,v 1.420 2009/05/30 15:53:46 tom Exp $
  *
  *	curses.priv.h
  *
@@ -97,8 +98,6 @@
 extern int errno;
 #endif
 
-#include <nc_panel.h>
-
 /* Some systems have a broken 'select()', but workable 'poll()'.  Use that */
 #if HAVE_WORKING_POLL
 #define USE_FUNC_POLL 1
@@ -195,6 +194,16 @@
 #endif
 
 /*
+ * Options for terminal drivers, etc...
+ */
+#if 0
+#define USE_SP_RIPOFF     1
+#define USE_SP_TERMTYPE   1
+#define USE_SP_WINDOWLIST 1
+#define USE_TERM_DRIVER   1
+#endif
+
+/*
  * Note:  ht/cbt expansion flakes out randomly under Linux 1.1.47, but only
  * when we're throwing control codes at the screen at high volume.  To see
  * this, re-enable USE_HARD_TABS and run worm for a while.  Other systems
@@ -257,8 +266,59 @@
 #define NCURSES_OPAQUE 0
 
 #include <curses.h>	/* we'll use -Ipath directive to get the right one! */
+
+/*
+ * If curses.h did not expose the SCREEN-functions, then we do not need the
+ * parameter in the corresponding unextended functions.
+ */
+#if NCURSES_SP_FUNCS
+#define SP_PARM         sp	/* use parameter */
+#define NCURSES_SP_ARG          SP_PARM
+#define NCURSES_SP_DCL  SCREEN *NCURSES_SP_ARG
+#define NCURSES_SP_DCL0 NCURSES_SP_DCL
+#define NCURSES_SP_ARGx         NCURSES_SP_ARG,
+#define NCURSES_SP_DCLx SCREEN *NCURSES_SP_ARGx
+#else
+#define SP_PARM         SP	/* use global variable */
+#define NCURSES_SP_ARG
+#define NCURSES_SP_DCL
+#define NCURSES_SP_DCL0 void
+#define NCURSES_SP_ARGx
+#define NCURSES_SP_DCLx
+#endif
+
+#include <nc_panel.h>
+
+#define IsPreScreen(sp)      (((sp) != 0) && sp->_prescreen)
+#define HasTerminal(sp)      (((sp) != 0) && (0 != ((sp)->_term)))
+#define IsValidScreen(sp)    (HasTerminal(sp) && !IsPreScreen(sp))
+
+#if BROKEN_LINKER || USE_REENTRANT
+#define CurTerm              _nc_prescreen._cur_term
+#else
+#define CurTerm              cur_term
+#endif
+
+#if NCURSES_SP_FUNCS
+#define TerminalOf(sp)       ((sp) ? ((sp)->_term ? (sp)->_term : CurTerm) : CurTerm)
+#else
+#define TerminalOf(sp)       CurTerm
+#endif
+
 #include <term.h>
+
+/*
+ * Reduce dependency on cur_term global by using terminfo data from SCREEN's
+ * pointer to this data.
+ */
+#ifdef USE_SP_TERMTYPE
+#undef CUR
+#endif
+
+#define SP_TERMTYPE TerminalOf(sp)->type.
+
 #include <term_entry.h>
+
 #include <nc_tparm.h>
 
 #if NCURSES_EXT_COLORS && USE_WIDEC_SUPPORT
@@ -272,8 +332,14 @@
 #define GET_WINDOW_PAIR(w)	(w)->_color
 #define SET_WINDOW_PAIR(w,p)	(w)->_color = (p)
 #define SameAttrOf(a,b)		(AttrOf(a) == AttrOf(b) && GetPair(a) == GetPair(b))
-#define VIDATTR(attr, pair)	vid_attr(attr, pair, 0)
+
+#if NCURSES_SP_FUNCS
+#define VIDATTR(sp,attr,pair)	NCURSES_SP_NAME(vid_attr)(sp, attr, pair, 0)
 #else
+#define VIDATTR(sp,attr,pair)	vid_attr(attr, pair, 0)
+#endif
+
+#else /* !(NCURSES_EXT_COLORS && USE_WIDEC_SUPPORT) */
 #define if_EXT_COLORS(stmt)	/* nothing */
 #define SetPair(value,p)	RemAttr(value, A_COLOR), \
 				SetAttr(value, AttrOf(value) | (A_COLOR & COLOR_PAIR(p)))
@@ -283,13 +349,19 @@
 #define SET_WINDOW_PAIR(w,p)	WINDOW_ATTRS(w) &= ALL_BUT_COLOR, \
 				WINDOW_ATTRS(w) |= (A_COLOR & COLOR_PAIR(p))
 #define SameAttrOf(a,b)		(AttrOf(a) == AttrOf(b))
-#define VIDATTR(attr, pair)	vidattr(attr)
+
+#if NCURSES_SP_FUNCS
+#define VIDATTR(sp,attr,pair)	NCURSES_SP_NAME(vidattr)(sp, attr)
+#else
+#define VIDATTR(sp,attr,pair)	vidattr(attr)
 #endif
 
+#endif /* NCURSES_EXT_COLORS && USE_WIDEC_SUPPORT */
+
 #if NCURSES_NO_PADDING
 #define GetNoPadding(sp)	((sp) ? (sp)->_no_padding : _nc_prescreen._no_padding)
 #define SetNoPadding(sp)	_nc_set_no_padding(sp)
-extern NCURSES_EXPORT(void) _nc_set_no_padding(SCREEN *);
+extern NCURSES_EXPORT(void)     _nc_set_no_padding(SCREEN *);
 #else
 #define GetNoPadding(sp)	FALSE
 #define SetNoPadding(sp)	/*nothing*/
@@ -302,17 +374,31 @@
 #define SET_SCREEN_PAIR(s,p)	SetPair(SCREEN_ATTRS(s), p)
 
 #if USE_REENTRANT
-NCURSES_EXPORT(int *) _nc_ptr_Lines (void);
-NCURSES_EXPORT(int *) _nc_ptr_Cols (void);
-#define ptrLines() (SP ? &(SP->_LINES) : &(_nc_prescreen._LINES))
-#define ptrCols()  (SP ? &(SP->_COLS)  : &(_nc_prescreen._COLS))
-#define SET_LINES(value) *_nc_ptr_Lines() = value
-#define SET_COLS(value)  *_nc_ptr_Cols() = value
-#else
-#define ptrLines() &LINES
-#define ptrCols()  &COLS
-#define SET_LINES(value) LINES = value
-#define SET_COLS(value)  COLS = value
+
+NCURSES_EXPORT(int *)        _nc_ptr_Lines (SCREEN *);
+NCURSES_EXPORT(int *)        _nc_ptr_Cols (SCREEN *);
+NCURSES_EXPORT(int *)        _nc_ptr_Tabsize (SCREEN *);
+NCURSES_EXPORT(int *)        _nc_ptr_Escdelay (SCREEN *);
+
+#define ptrLines(sp)         (sp ? &(sp->_LINES) : &(_nc_prescreen._LINES))
+#define ptrCols(sp)          (sp ? &(sp->_COLS) : &(_nc_prescreen._COLS))
+#define ptrTabsize(sp)       (sp ? &(sp->_TABSIZE) : &(_nc_prescreen._TABSIZE))
+#define ptrEscdelay(sp)      (sp ? &(sp->_ESCDELAY) : &(_nc_prescreen._ESCDELAY))
+
+#define SET_LINES(value)     *_nc_ptr_Lines(SP_PARM) = value
+#define SET_COLS(value)      *_nc_ptr_Cols(SP_PARM) = value
+#define SET_TABSIZE(value)   *_nc_ptr_Tabsize(SP_PARM) = value
+#define SET_ESCDELAY(value)  *_nc_ptr_Escdelay(SP_PARM) = value
+
+#else
+
+#define ptrLines(sp)         &LINES
+#define ptrCols(sp)          &COLS
+#define SET_LINES(value)     LINES = value
+#define SET_COLS(value)      COLS = value
+#define SET_TABSIZE(value)   TABSIZE = value
+#define SET_ESCDELAY(value)  ESCDELAY = value
+
 #endif
 
 #define TR_MUTEX(data) _tracef("%s@%d: me:%08lX COUNT:%2u/%2d/%6d/%2d/%s%9u: " #data, \
@@ -404,6 +490,8 @@
 #define C_SHIFT 9		/* we need more bits than there are colors */
 #define C_MASK			((1 << C_SHIFT) - 1)
 #define PAIR_OF(fg, bg)		((((fg) & C_MASK) << C_SHIFT) | ((bg) & C_MASK))
+#define FORE_OF(c)		(((c) >> C_SHIFT) & C_MASK)
+#define BACK_OF(c)		((c) & C_MASK)
 #define isDefaultColor(c)	((c) >= COLOR_DEFAULT || (c) < 0)
 
 #define COLOR_DEFAULT		C_MASK
@@ -464,13 +552,13 @@
 } slk_ent;
 
 typedef struct _SLK {
-	char dirty;		/* all labels have changed */
-	char hidden;		/* soft labels are hidden */
-	WINDOW *win;
+	bool    dirty;		/* all labels have changed */
+	bool    hidden;		/* soft labels are hidden */
+	WINDOW  *win;
 	slk_ent *ent;
-	short  maxlab;		/* number of available labels */
-	short  labcnt;		/* number of allocated labels */
-	short  maxlen;		/* length of labels */
+	short   maxlab;		/* number of available labels */
+	short   labcnt;		/* number of allocated labels */
+	short   maxlen;		/* length of labels */
 	NCURSES_CH_T attr;	/* soft label attribute */
 } SLK;
 
@@ -493,10 +581,10 @@
 typedef int (*TYPE_Gpm_Close) (void);
 typedef int (*TYPE_Gpm_GetEvent) (Gpm_Event *);
 
-#define my_gpm_fd       SP->_mouse_gpm_fd
-#define my_Gpm_Open     SP->_mouse_Gpm_Open
-#define my_Gpm_Close    SP->_mouse_Gpm_Close
-#define my_Gpm_GetEvent SP->_mouse_Gpm_GetEvent
+#define my_gpm_fd       SP_PARM->_mouse_gpm_fd
+#define my_Gpm_Open     SP_PARM->_mouse_Gpm_Open
+#define my_Gpm_Close    SP_PARM->_mouse_Gpm_Close
+#define my_Gpm_GetEvent SP_PARM->_mouse_Gpm_GetEvent
 #else
 /* link statically to GPM */
 #define my_gpm_fd       &gpm_fd
@@ -609,8 +697,10 @@
 	int		tgetent_index;
 	long		tgetent_sequence;
 
+#ifndef USE_SP_WINDOWLIST
 	WINDOWLIST	*_nc_windowlist;
-#define _nc_windows	_nc_globals._nc_windowlist
+#define WindowList(sp)	_nc_globals._nc_windowlist
+#endif
 
 #if USE_HOME_TERMINFO
 	char		*home_terminfo;
@@ -644,7 +734,9 @@
 	char		traceatr_color_buf[2][80];
 	int		traceatr_color_sel;
 	int		traceatr_color_last;
-
+#if !defined(USE_PTHREADS) && USE_REENTRANT
+	int		nested_tracef;
+#endif
 #endif	/* TRACE */
 
 #ifdef USE_PTHREADS
@@ -669,8 +761,10 @@
 	bool		use_env;
 	bool		filter_mode;
 	attr_t		previous_attr;
+#ifndef USE_SP_RIPOFF
 	ripoff_t	rippedoff[N_RIPS];
 	ripoff_t	*rsp;
+#endif
 	TPARM_STATE	tparm_state;
 	TTY		*saved_tty;	/* savetty/resetty information	    */
 #if NCURSES_NO_PADDING
@@ -680,6 +774,8 @@
 	chtype		*real_acs_map;
 	int		_LINES;
 	int		_COLS;
+	int		_TABSIZE;
+	int		_ESCDELAY;
 	TERMINAL	*_cur_term;
 #ifdef TRACE
 	long		_outchars;
@@ -688,8 +784,16 @@
 #endif
 } NCURSES_PRESCREEN;
 
-#define ripoff_sp	_nc_prescreen.rsp
-#define ripoff_stack	_nc_prescreen.rippedoff
+/*
+ * Use screen-specific ripoff data (for softkeys) rather than global.
+ */
+#ifdef USE_SP_RIPOFF
+#define safe_ripoff_sp     (sp)->rsp
+#define safe_ripoff_stack  (sp)->rippedoff
+#else
+#define safe_ripoff_sp	   _nc_prescreen.rsp
+#define safe_ripoff_stack  _nc_prescreen.rippedoff
+#endif
 
 extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
 
@@ -703,6 +807,8 @@
 	char		*_setbuf;	/* buffered I/O for output	    */
 	bool		_filtered;	/* filter() was called		    */
 	bool		_buffered;	/* setvbuf uses _setbuf data	    */
+	bool		_prescreen;	/* is in prescreen phase	    */
+	bool		_use_env;	/* LINES & COLS from environment?   */
 	int		_checkfd;	/* filedesc for typeahead check	    */
 	TERMINAL	*_term;		/* terminal type information	    */
 	TTY		_saved_tty;	/* savetty/resetty information	    */
@@ -716,6 +822,10 @@
 	WINDOW		*_newscr;	/* virtual screen to be updated to  */
 	WINDOW		*_stdscr;	/* screen's full-window context	    */
 
+#define CurScreen(sp)  (sp)->_curscr
+#define NewScreen(sp)  (sp)->_newscr
+#define StdScreen(sp)  (sp)->_stdscr
+
 	TRIES		*_keytry;	/* "Try" for use with keypad mode   */
 	TRIES		*_key_ok;	/* Disabled keys via keyok(,FALSE)  */
 	bool		_tried;		/* keypad mode was initialized	    */
@@ -794,11 +904,13 @@
 	int		_color_count;	/* count of colors in palette	     */
 	colorpair_t	*_color_pairs;	/* screen's color pair list	     */
 	int		_pair_count;	/* count of color pairs		     */
+	int		_pair_limit;	/* actual limit of color-pairs       */
 #if NCURSES_EXT_FUNCS
 	bool		_default_color; /* use default colors		     */
 	bool		_has_sgr_39_49; /* has ECMA default color support    */
 	int		_default_fg;	/* assumed default foreground	     */
 	int		_default_bg;	/* assumed default background	     */
+	int		_default_pairs;	/* count pairs using default color   */
 #endif
 	chtype		_ok_attributes; /* valid attributes for terminal     */
 	chtype		_xmc_suppress;	/* attributes to suppress if xmc     */
@@ -895,7 +1007,7 @@
 	int		_oldnum_size;
 
 	bool		_cleanup;	/* cleanup after int/quit signal */
-	int		(*_outch)(int); /* output handler if not putc */
+	NCURSES_SP_OUTC	_outch;		/* output handler if not putc */
 
 	int		_legacy_coding;	/* see use_legacy_coding() */
 
@@ -915,6 +1027,15 @@
 	char		tracechr_buf[40];
 	char		tracemse_buf[TRACEMSE_MAX];
 #endif
+#ifdef USE_SP_WINDOWLIST
+	WINDOWLIST*	_windowlist;
+#define WindowList(sp)  (sp)->_windowlist
+#endif
+	NCURSES_OUTC	jump;
+
+	ripoff_t	rippedoff[N_RIPS];
+	ripoff_t	*rsp;
+
 	/*
 	 * ncurses/ncursesw are the same up to this point.
 	 */
@@ -943,6 +1064,20 @@
 
 #define WINDOW_EXT(win,field) (((WINDOWLIST *)(win))->field)
 
+#define SP_PRE_INIT(sp)                         \
+    sp->_cursrow = -1;                          \
+    sp->_curscol = -1;                          \
+    sp->_nl = TRUE;                             \
+    sp->_raw = FALSE;                           \
+    sp->_cbreak = 0;                            \
+    sp->_echo = TRUE;                           \
+    sp->_fifohead = -1;                         \
+    sp->_endwin = TRUE;                         \
+    sp->_cursor = -1;                           \
+    WindowList(sp) = 0;                         \
+    sp->_outch = NCURSES_SP_NAME(_nc_outch);    \
+    sp->jump = 0                                \
+
 /* usually in <limits.h> */
 #ifndef UCHAR_MAX
 #define UCHAR_MAX 255
@@ -1112,7 +1247,7 @@
 				AttrOf(dst) |= (ext + 1)
 
 #define if_WIDEC(code)  code
-#define Charable(ch)	((SP != 0 && SP->_legacy_coding)		\
+#define Charable(ch)	((SP_PARM != 0 && SP_PARM->_legacy_coding)	\
 			 || (AttrOf(ch) & A_ALTCHARSET)			\
 			 || (!isWidecExt(ch) &&				\
 			     (ch).chars[1] == L'\0' &&			\
@@ -1214,8 +1349,8 @@
  * Standardize/simplify common loops
  */
 #define each_screen(p) p = _nc_screen_chain; p != 0; p = (p)->_next_screen
-#define each_window(p) p = _nc_windows; p != 0; p = (p)->next
-#define each_ripoff(p) p = ripoff_stack; (p - ripoff_stack) < N_RIPS; ++p
+#define each_window(sp,p) p = WindowList(sp); p != 0; p = (p)->next
+#define each_ripoff(p) p = safe_ripoff_stack; (p - safe_ripoff_stack) < N_RIPS; ++p
 
 /*
  * Prefixes for call/return points of library function traces.  We use these to
@@ -1263,7 +1398,7 @@
 #define returnBool(code)	TRACE_RETURN(code,bool)
 #define returnCPtr(code)	TRACE_RETURN(code,cptr)
 #define returnCVoidPtr(code)	TRACE_RETURN(code,cvoid_ptr)
-#define returnChar(code)	TRACE_RETURN(code,chtype)
+#define returnChtype(code)	TRACE_RETURN(code,chtype)
 #define returnCode(code)	TRACE_RETURN(code,int)
 #define returnPtr(code)		TRACE_RETURN(code,ptr)
 #define returnSP(code)		TRACE_RETURN(code,sp)
@@ -1322,7 +1457,7 @@
 #define returnBool(code)	return code
 #define returnCPtr(code)	return code
 #define returnCVoidPtr(code)	return code
-#define returnChar(code)	return code
+#define returnChtype(code)	return code
 #define returnCode(code)	return code
 #define returnPtr(code)		return code
 #define returnSP(code)		return code
@@ -1348,7 +1483,7 @@
 
 #define ALL_BUT_COLOR ((chtype)~(A_COLOR))
 #define NONBLANK_ATTR (A_NORMAL|A_BOLD|A_DIM|A_BLINK)
-#define XMC_CHANGES(c) ((c) & SP->_xmc_suppress)
+#define XMC_CHANGES(c) ((c) & SP_PARM->_xmc_suppress)
 
 #define toggle_attr_on(S,at) {\
    if (PAIR_NUMBER(at) > 0) {\
@@ -1367,38 +1502,38 @@
    }\
    TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}
 
-#define DelCharCost(count) \
+#define DelCharCost(sp,count) \
 		((parm_dch != 0) \
-		? SP->_dch_cost \
+		? sp->_dch_cost \
 		: ((delete_character != 0) \
-			? (SP->_dch1_cost * count) \
+			? (sp->_dch1_cost * count) \
 			: INFINITY))
 
-#define InsCharCost(count) \
+#define InsCharCost(sp,count) \
 		((parm_ich != 0) \
-		? SP->_ich_cost \
+		? sp->_ich_cost \
 		: ((enter_insert_mode && exit_insert_mode) \
-		  ? SP->_smir_cost + SP->_rmir_cost + (SP->_ip_cost * count) \
+		  ? sp->_smir_cost + sp->_rmir_cost + (sp->_ip_cost * count) \
 		  : ((insert_character != 0) \
-		    ? ((SP->_ich1_cost + SP->_ip_cost) * count) \
+		    ? ((sp->_ich1_cost + sp->_ip_cost) * count) \
 		    : INFINITY)))
 
 #if USE_XMC_SUPPORT
-#define UpdateAttrs(c)	if (!SameAttrOf(SCREEN_ATTRS(SP), c)) { \
-				attr_t chg = AttrOf(SCREEN_ATTRS(SP)); \
-				VIDATTR(AttrOf(c), GetPair(c)); \
+#define UpdateAttrs(sp,c)	if (!SameAttrOf(SCREEN_ATTRS(sp), c)) { \
+				attr_t chg = AttrOf(SCREEN_ATTRS(sp)); \
+				VIDATTR(sp, AttrOf(c), GetPair(c)); \
 				if (magic_cookie_glitch > 0 \
-				 && XMC_CHANGES((chg ^ AttrOf(SCREEN_ATTRS(SP))))) { \
+				 && XMC_CHANGES((chg ^ AttrOf(SCREEN_ATTRS(sp))))) { \
 					T(("%s @%d before glitch %d,%d", \
 						__FILE__, __LINE__, \
-						SP->_cursrow, \
-						SP->_curscol)); \
-					_nc_do_xmc_glitch(chg); \
+						sp->_cursrow, \
+						sp->_curscol)); \
+					NCURSES_SP_NAME(_nc_do_xmc_glitch)(NCURSES_SP_ARGx chg); \
 				} \
 			}
 #else
-#define UpdateAttrs(c)	if (!SameAttrOf(SCREEN_ATTRS(SP), c)) \
-				VIDATTR(AttrOf(c), GetPair(c));
+#define UpdateAttrs(sp,c)	if (!SameAttrOf(SCREEN_ATTRS(sp), c)) \
+				    VIDATTR(sp, AttrOf(c), GetPair(c));
 #endif
 
 /*
@@ -1483,8 +1618,8 @@
 #endif
 
 /* lib_acs.c */
-extern NCURSES_EXPORT(void) _nc_init_acs (void);	/* corresponds to traditional 'init_acs()' */
-extern NCURSES_EXPORT(int) _nc_msec_cost (const char *const, int);  /* used by 'tack' program */
+extern NCURSES_EXPORT(void) _nc_init_acs (void); /* corresponds to traditional 'init_acs()' */
+extern NCURSES_EXPORT(int)  _nc_msec_cost (const char *const, int);  /* used by 'tack' program */
 
 /* lib_addch.c */
 #if USE_WIDEC_SUPPORT
@@ -1503,7 +1638,7 @@
 extern NCURSES_EXPORT(int) _nc_wgetch(WINDOW *, unsigned long *, int EVENTLIST_2nd(_nc_eventlist *));
 
 /* lib_insch.c */
-extern NCURSES_EXPORT(int) _nc_insert_ch(WINDOW *, chtype);
+extern NCURSES_EXPORT(int) _nc_insert_ch(SCREEN *, WINDOW *, chtype);
 
 /* lib_mvcur.c */
 #define INFINITY	1000000	/* cost: too high to use */
@@ -1519,7 +1654,7 @@
 extern NCURSES_EXPORT(void) _nc_screen_wrap (void);
 
 /* lib_mouse.c */
-extern NCURSES_EXPORT(int) _nc_has_mouse (void);
+extern NCURSES_EXPORT(bool) _nc_has_mouse (SCREEN *);
 
 /* lib_mvcur.c */
 #define INFINITY	1000000	/* cost: too high to use */
@@ -1527,10 +1662,13 @@
 
 /* lib_setup.c */
 extern NCURSES_EXPORT(char *) _nc_get_locale(void);
-extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
-extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(TERMINAL *);
-extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int, int *, bool);
-extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, int *, int *);
+extern NCURSES_EXPORT(int)    _nc_unicode_locale(void);
+extern NCURSES_EXPORT(int)    _nc_locale_breaks_acs(TERMINAL *);
+extern NCURSES_EXPORT(int)    _nc_setupterm(NCURSES_CONST char *, int, int *, bool);
+extern NCURSES_EXPORT(void)   _nc_get_screensize(SCREEN *, int *, int *);
+
+/* lib_set_term.c */
+extern NCURSES_EXPORT(int)    _nc_ripoffline(int, int(*)(WINDOW*, int));
 
 /* lib_tstp.c */
 #if USE_SIGWINCH
@@ -1539,9 +1677,6 @@
 #define _nc_handle_sigwinch(a) /* nothing */
 #endif
 
-/* lib_ungetch.c */
-extern NCURSES_EXPORT(int) _nc_ungetch (SCREEN *, int);
-
 /* lib_wacs.c */
 #if USE_WIDEC_SUPPORT
 extern NCURSES_EXPORT(void) _nc_init_wacs(void);
@@ -1577,8 +1712,6 @@
 
 /* elsewhere ... */
 extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry (ENTRY *, TERMTYPE *);
-extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *, int);
-extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *, chtype);
 extern NCURSES_EXPORT(SCREEN *) _nc_screen_of (WINDOW *);
 extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int);
 extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);
@@ -1592,12 +1725,14 @@
 extern NCURSES_EXPORT(int) _nc_keypad (SCREEN *, bool);
 extern NCURSES_EXPORT(int) _nc_ospeed (int);
 extern NCURSES_EXPORT(int) _nc_outch (int);
+extern NCURSES_EXPORT(int) _nc_putp(const char *, const char *);
+extern NCURSES_EXPORT(int) _nc_putp_flush(const char *, const char *);
 extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE *const);
 extern NCURSES_EXPORT(int) _nc_setupscreen (int, int, FILE *, bool, int);
 extern NCURSES_EXPORT(int) _nc_timed_wait (SCREEN *, int, int, int * EVENTLIST_2nd(_nc_eventlist *));
-extern NCURSES_EXPORT(void) _nc_do_color (short, short, bool, int (*)(int));
+extern NCURSES_EXPORT(void) _nc_do_color (short, short, bool, NCURSES_OUTC);
 extern NCURSES_EXPORT(void) _nc_flush (void);
-extern NCURSES_EXPORT(void) _nc_free_and_exit (int);
+extern NCURSES_EXPORT(void) _nc_free_and_exit (int) GCC_NORETURN;
 extern NCURSES_EXPORT(void) _nc_free_entry (ENTRY *, TERMTYPE *);
 extern NCURSES_EXPORT(void) _nc_freeall (void);
 extern NCURSES_EXPORT(void) _nc_hash_map (void);
@@ -1661,9 +1796,9 @@
 
 #define USE_SETBUF_0 0
 
-#define NC_BUFFERED(flag) _nc_set_buffer(SP->_ofp, flag)
+#define NC_BUFFERED(sp,flag) NCURSES_SP_NAME(_nc_set_buffer)(NCURSES_SP_ARGx sp->_ofp, flag)
 
-#define NC_OUTPUT ((SP != 0) ? SP->_ofp : stdout)
+#define NC_OUTPUT(sp) ((sp != 0) ? sp->_ofp : stdout)
 
 /*
  * On systems with a broken linker, define 'SP' as a function to force the
@@ -1672,13 +1807,21 @@
 #if BROKEN_LINKER
 #define SP _nc_screen()
 extern NCURSES_EXPORT(SCREEN *) _nc_screen (void);
-extern NCURSES_EXPORT(int) _nc_alloc_screen (void);
-extern NCURSES_EXPORT(void) _nc_set_screen (SCREEN *);
+extern NCURSES_EXPORT(int)      _nc_alloc_screen (void);
+extern NCURSES_EXPORT(void)     _nc_set_screen (SCREEN *);
+#define CURRENT_SCREEN          _nc_screen()
 #else
 /* current screen is private data; avoid possible linking conflicts too */
 extern NCURSES_EXPORT_VAR(SCREEN *) SP;
-#define _nc_alloc_screen() ((SP = typeCalloc(SCREEN, 1)) != 0)
-#define _nc_set_screen(sp) SP = sp
+#define CURRENT_SCREEN SP
+#define _nc_alloc_screen()      ((SP = typeCalloc(SCREEN, 1)) != 0)
+#define _nc_set_screen(sp)      SP = sp
+#endif
+
+#if NCURSES_SP_FUNCS && 0
+#define CURRENT_SCREEN_PRE      (IsPreScreen(CURRENT_SCREEN) ? CURRENT_SCREEN : new_prescr())
+#else
+#define CURRENT_SCREEN_PRE      CURRENT_SCREEN
 #endif
 
 /*
@@ -1686,10 +1829,11 @@
  * if the application is running multiple screens under X, it's quite possible
  * they could all have type xterm but have different sizes!  So...
  */
-#define screen_lines	SP->_lines
-#define screen_columns	SP->_columns
+#define screen_lines(sp)        (sp)->_lines
+#define screen_columns(sp)      (sp)->_columns
 
 extern NCURSES_EXPORT(int) _nc_slk_initialize (WINDOW *, int);
+extern NCURSES_EXPORT(int) _nc_format_slks (SCREEN *, int);
 
 /*
  * Some constants related to SLK's
@@ -1707,14 +1851,243 @@
 #define MAX_SKEY(fmt)     (SLK_STDFMT(fmt)? MAX_SKEY_OLD : MAX_SKEY_PC)
 #define MAX_SKEY_LEN(fmt) (SLK_STDFMT(fmt)? MAX_SKEY_LEN_OLD : MAX_SKEY_LEN_PC)
 
-extern NCURSES_EXPORT(int) _nc_ripoffline (int line, int (*init)(WINDOW *,int));
-
 /*
  * Common error messages
  */
 #define MSG_NO_MEMORY "Out of memory"
 #define MSG_NO_INPUTS "Premature EOF"
 
+extern NCURSES_EXPORT(int) _nc_set_tty_mode(TTY *);
+extern NCURSES_EXPORT(int) _nc_get_tty_mode(TTY *);
+
+/* timed_wait flag definitions */
+#define TW_NONE    0
+#define TW_INPUT   1
+#define TW_MOUSE   2
+#define TW_ANY     (TW_INPUT | TW_MOUSE)
+#define TW_EVENT   4
+
+#define SetSafeOutcWrapper(outc)	    \
+    SCREEN* sp = CURRENT_SCREEN;            \
+    if (sp==0) {                            \
+	struct screen dummy;		    \
+	sp = &dummy;                        \
+	memset(sp,0,sizeof(struct screen)); \
+	sp->_outch = _nc_outc_wrapper;      \
+    }\
+    sp->jump = outc
+
+struct DriverTCB; /* Terminal Control Block forward declaration */
+typedef void* TERM_HANDLE;
+
+typedef struct _termInfo
+{
+    bool caninit;
+
+    bool hascolor;
+    bool initcolor;
+    bool canchange;
+
+    int  tabsize;
+
+    int  maxcolors;
+    int  maxpairs;
+    int  nocolorvideo;
+
+    int  numlabels;
+    int  labelwidth;
+    int  labelheight;
+
+    const color_t* defaultPalette;
+} TerminalInfo;
+
+typedef struct term_driver {
+    bool   isTerminfo;
+    bool   (*CanHandle)(struct DriverTCB*,const char*,int*);
+    void   (*init)(struct DriverTCB*);
+    void   (*release)(struct DriverTCB*);
+    int    (*size)(struct DriverTCB*, int* Line, int *Cols);
+    int    (*sgmode)(struct DriverTCB*, bool setFlag, TTY*);
+    chtype (*conattr)(struct DriverTCB*);
+    int    (*hwcur)(struct DriverTCB*, int yold, int xold, int y, int x);
+    int    (*mode)(struct DriverTCB*, bool progFlag, bool defFlag);
+    bool   (*rescol)(struct DriverTCB*);
+    bool   (*rescolors)(struct DriverTCB*);
+    void   (*color)(struct DriverTCB*,bool fore, int color, int(*)(SCREEN*,int));
+    int    (*doBeepOrFlash)(struct DriverTCB*, bool);
+    void   (*initpair)(struct DriverTCB*,short,short,short);
+    void   (*initcolor)(struct DriverTCB*,short,short,short,short);
+    void   (*docolor)(struct DriverTCB*,short,short,bool,int(*)(SCREEN*,int));
+    void   (*initmouse)(struct DriverTCB*);
+    void   (*setfilter)(struct DriverTCB*);
+    void   (*hwlabel)(struct DriverTCB*,int,char*);
+    void   (*hwlabelOnOff)(struct DriverTCB*,bool);
+    int    (*update)(struct DriverTCB*);
+    int    (*defaultcolors)(struct DriverTCB*,int,int);
+    int    (*print)(struct DriverTCB*,char*,int);
+    int    (*getsize)(struct DriverTCB*,int*,int*);
+    int    (*setsize)(struct DriverTCB*,int,int);
+    void   (*initacs)(struct DriverTCB*,chtype*,chtype*);
+    void   (*scinit)(SCREEN *);
+    void   (*scexit)(SCREEN *);
+    int    (*twait)(struct DriverTCB*,int,int,int* EVENTLIST_2nd(_nc_eventlist*));
+    int    (*read)(struct DriverTCB*,int*);
+    int    (*nap)(struct DriverTCB*,int);
+    int    (*kpad)(struct DriverTCB*, bool);
+    int    (*kyOk)(struct DriverTCB*, int, bool);
+    bool   (*kyExist)(struct DriverTCB*, int);
+} TERM_DRIVER;
+
+
+typedef struct DriverTCB
+{
+    TERMINAL      term;   /* needs to be the first Element !!! */
+    TERM_HANDLE   inp;    /* The input handle of the Terminal */
+    TERM_HANDLE   out;    /* The output handle of the Terminal in shell mode */
+    TERM_HANDLE   hdl;    /* The output handle of the Terminal in prog  mode */
+    TERM_DRIVER*  drv;    /* The driver for that Terminal */
+    SCREEN*       csp;    /* The screen that owns that Terminal */
+    TerminalInfo  info;   /* Driver independent core capabilities of the Terminal */
+    void*         prop;   /* Driver dependent property storage to be used by the Driver */
+    long          magic;
+} TERMINAL_CONTROL_BLOCK;
+
+#define NCDRV_MAGIC(id) (0x47110000 | (id&0xffff))
+#define NCDRV_TINFO      0x01
+#define NCDRV_WINCONSOLE 0x02
+
+#define TCBOf(sp)    ((TERMINAL_CONTROL_BLOCK*)(TerminalOf(sp)))
+#define InfoOf(sp)   TCBOf(sp)->info
+#define CallDriver(sp,method)                        TCBOf(sp)->drv->method(TCBOf(sp))
+#define CallDriver_1(sp,method,arg1)                 TCBOf(sp)->drv->method(TCBOf(sp),arg1)
+#define CallDriver_2(sp,method,arg1,arg2)            TCBOf(sp)->drv->method(TCBOf(sp),arg1,arg2)
+#define CallDriver_3(sp,method,arg1,arg2,arg3)       TCBOf(sp)->drv->method(TCBOf(sp),arg1,arg2,arg3)
+#define CallDriver_4(sp,method,arg1,arg2,arg3,arg4)  TCBOf(sp)->drv->method(TCBOf(sp),arg1,arg2,arg3,arg4)
+
+extern NCURSES_EXPORT_VAR(const color_t*) _nc_cga_palette;
+extern NCURSES_EXPORT_VAR(const color_t*) _nc_hls_palette;
+
+#ifdef USE_TERM_DRIVER
+extern NCURSES_EXPORT(int)      _nc_tinfo_has_key(SCREEN*, int);
+extern NCURSES_EXPORT(int)      _nc_tinfo_doupdate(SCREEN *sp);
+extern NCURSES_EXPORT(int)      _nc_tinfo_mvcur(SCREEN*,int,int,int,int);
+extern NCURSES_EXPORT(int)      _nc_get_driver(TERMINAL_CONTROL_BLOCK*, const char*, int*);
+#endif
+
+#ifdef __MINGW32__
+#include <nc_mingw.h>
+extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER;
+#endif
+extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_TINFO_DRIVER;
+
+#ifdef USE_TERM_DRIVER
+#define IsTermInfo(sp)       (TCBOf(sp) && ((TCBOf(sp)->drv->isTerminfo)))
+#else
+#define IsTermInfo(sp)       TRUE
+#endif
+
+#define HasTInfoTerminal(sp) ((0 != TerminalOf(sp)) && IsTermInfo(sp))
+#define IsValidTIScreen(sp)  (HasTInfoTerminal(sp))
+
+/*
+ * Exported entrypoints beyond the published API
+ */
+#if NCURSES_SP_FUNCS
+extern NCURSES_EXPORT(WINDOW *) _nc_curscr_of(SCREEN*);
+extern NCURSES_EXPORT(WINDOW *) _nc_newscr_of(SCREEN*);
+extern NCURSES_EXPORT(WINDOW *) _nc_stdscr_of(SCREEN*);
+extern NCURSES_EXPORT(int)      _nc_outc_wrapper(SCREEN*,int);
+
+#if USE_REENTRANT
+extern NCURSES_EXPORT(char *)    NCURSES_SP_NAME(_nc_ttytype)(SCREEN*);
+extern NCURSES_EXPORT(int)       NCURSES_SP_NAME(_nc_TABSIZE)(SCREEN*);
+extern NCURSES_EXPORT(char *)    NCURSES_SP_NAME(longname)(SCREEN*);
+#endif
+
+#if NCURSES_EXT_FUNCS
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_set_tabsize)(SCREEN*, int);
+#endif
+
+/*
+ * We put the safe versions of various calls here as they are not published
+ * part of the API up to now
+ */
+extern NCURSES_EXPORT(SCREEN*)  _nc_SP(void);
+
+extern NCURSES_EXPORT(TERMINAL*) NCURSES_SP_NAME(_nc_set_curterm)(SCREEN*,TERMINAL*);
+extern NCURSES_EXPORT(TERMINAL*) NCURSES_SP_NAME(cur_term)(SCREEN *sp);
+extern NCURSES_EXPORT(WINDOW *) NCURSES_SP_NAME(_nc_makenew) (SCREEN*, int, int, int, int, int);
+extern NCURSES_EXPORT(bool)     NCURSES_SP_NAME(_nc_reset_colors)(SCREEN*);
+extern NCURSES_EXPORT(char *)   NCURSES_SP_NAME(_nc_printf_string)(SCREEN*, const char *, va_list);
+extern NCURSES_EXPORT(chtype)   NCURSES_SP_NAME(_nc_acs_char)(SCREEN*,int);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_curs_set)(SCREEN*,int);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_get_tty_mode)(SCREEN*,TTY*);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_mcprint)(SCREEN*,char*, int);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_msec_cost)(SCREEN*, const char *, int);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_outch)(SCREEN*, int);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_putp)(SCREEN*, const char *, const char*);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_putp_flush)(SCREEN*, const char *, const char *);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_resetty)(SCREEN*);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_resize_term)(SCREEN*,int,int);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_ripoffline)(SCREEN*, int, int (*)(WINDOW *,int));
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_savetty)(SCREEN*);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_scr_init)(SCREEN*,const char*);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_scr_restore)(SCREEN*, const char*);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_scrolln)(SCREEN*, int, int, int, int);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_set_tty_mode)(SCREEN*, TTY*);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_setupscreen)(SCREEN**, int, int, FILE *, bool, int);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_tgetent)(SCREEN*,char*,const char *);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_tigetnum)(SCREEN*,NCURSES_CONST char*);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_vid_attr)(SCREEN *, attr_t, short, void *);
+extern NCURSES_EXPORT(int)      NCURSES_SP_NAME(_nc_vidputs)(SCREEN*,chtype,int(*) (SCREEN*, int));
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_do_color)(SCREEN*, short, short, bool, NCURSES_SP_OUTC);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_do_xmc_glitch)(SCREEN*, attr_t);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_flush)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_free_and_exit)(SCREEN*, int) GCC_NORETURN;
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_freeall)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_hash_map)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_init_acs)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_make_oldhash)(SCREEN*, int i);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_mvcur_init)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_mvcur_resume)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_mvcur_wrap)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_screen_init)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_screen_resume)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_screen_wrap)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_scroll_oldhash)(SCREEN*, int n, int top, int bot);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_scroll_optimize)(SCREEN*);
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_set_buffer)(SCREEN*, FILE *, bool);
+
+extern NCURSES_EXPORT(void)     _nc_cookie_init(SCREEN *sp);
+
+#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
+extern NCURSES_EXPORT(void)     NCURSES_SP_NAME(_nc_linedump)(SCREEN*);
+#endif
+
+#if USE_WIDEC_SUPPORT
+extern NCURSES_EXPORT(wchar_t *) NCURSES_SP_NAME(_nc_wunctrl)(SCREEN*, cchar_t *);
+#endif
+
+#endif /* NCURSES_SP_FUNCS */
+
+#if NCURSES_SP_FUNCS
+
+#define safe_keyname NCURSES_SP_NAME(keyname)
+#define safe_unctrl  NCURSES_SP_NAME(unctrl)
+#define safe_ungetch NCURSES_SP_NAME(ungetch)
+
+#else
+
+#define safe_keyname _nc_keyname
+#define safe_unctrl  _nc_unctrl
+#define safe_ungetch _nc_ungetch
+
+extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_keyname (SCREEN *, int);
+extern NCURSES_EXPORT(int) _nc_ungetch (SCREEN *, int);
+extern NCURSES_EXPORT(NCURSES_CONST char *) _nc_unctrl (SCREEN *, chtype);
+
+#endif
+
 #ifdef __cplusplus
 }
 #endif
diff -Naur ncurses-5.7.orig/ncurses/Makefile.in ncurses-5.7/ncurses/Makefile.in
--- ncurses-5.7.orig/ncurses/Makefile.in	2008-10-18 07:11:54.000000000 -0700
+++ ncurses-5.7/ncurses/Makefile.in	2009-06-05 14:01:30.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.113 2008/10/18 14:11:54 tom Exp $
+# $Id: Makefile.in,v 1.115 2009/03/28 18:22:39 Charles.Wilson Exp $
 ##############################################################################
-# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2009 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"), #
@@ -71,6 +71,7 @@
 LIBTOOL_LINK	= @LIB_LINK@
 LIBTOOL_INSTALL	= @LIB_INSTALL@
 LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+LT_UNDEF	= @LT_UNDEF@
 
 INSTALL		= @INSTALL@
 INSTALL_LIB	= @INSTALL@ @INSTALL_LIB@
@@ -78,7 +79,7 @@
 INSTALL_DATA	= @INSTALL_DATA@
 
 AR		= @AR@
-AR_OPTS		= @AR_OPTS@
+ARFLAGS		= @ARFLAGS@
 AWK		= @AWK@
 LD		= @LD@
 LN_S		= @LN_S@
diff -Naur ncurses-5.7.orig/ncurses/tinfo/access.c ncurses-5.7/ncurses/tinfo/access.c
--- ncurses-5.7.orig/ncurses/tinfo/access.c	2007-11-17 16:57:53.000000000 -0800
+++ ncurses-5.7/ncurses/tinfo/access.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -38,7 +38,7 @@
 #include <tic.h>
 #include <nc_alloc.h>
 
-MODULE_ID("$Id: access.c,v 1.14 2007/11/18 00:57:53 tom Exp $")
+MODULE_ID("$Id: access.c,v 1.15 2009/04/05 00:03:10 tom Exp $")
 
 #define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c))
 
@@ -97,7 +97,7 @@
 	test = path;
     else
 	test++;
-    return (test - path);
+    return (unsigned) (test - path);
 }
 
 NCURSES_EXPORT(char *)
diff -Naur ncurses-5.7.orig/ncurses/tinfo/alloc_ttype.c ncurses-5.7/ncurses/tinfo/alloc_ttype.c
--- ncurses-5.7.orig/ncurses/tinfo/alloc_ttype.c	2008-10-12 09:12:00.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/alloc_ttype.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2006,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2008,2009 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            *
@@ -43,7 +43,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: alloc_ttype.c,v 1.17 2008/10/12 16:12:00 tom Exp $")
+MODULE_ID("$Id: alloc_ttype.c,v 1.18 2009/04/18 21:01:38 tom Exp $")
 
 #if NCURSES_XNAMES
 /*
@@ -147,10 +147,10 @@
 /*
  * Returns the first index in ext_Names[] for the given token-type
  */
-static int
+static unsigned
 _nc_first_ext_name(TERMTYPE *tp, int token_type)
 {
-    int first;
+    unsigned first;
 
     switch (token_type) {
     case BOOLEAN:
@@ -160,7 +160,7 @@
 	first = tp->ext_Booleans;
 	break;
     case STRING:
-	first = tp->ext_Booleans + tp->ext_Numbers;
+	first = (unsigned) (tp->ext_Booleans + tp->ext_Numbers);
 	break;
     default:
 	first = 0;
@@ -172,17 +172,17 @@
 /*
  * Returns the last index in ext_Names[] for the given token-type
  */
-static int
+static unsigned
 _nc_last_ext_name(TERMTYPE *tp, int token_type)
 {
-    int last;
+    unsigned last;
 
     switch (token_type) {
     case BOOLEAN:
 	last = tp->ext_Booleans;
 	break;
     case NUMBER:
-	last = tp->ext_Booleans + tp->ext_Numbers;
+	last = (unsigned) (tp->ext_Booleans + tp->ext_Numbers);
 	break;
     default:
     case STRING:
@@ -204,7 +204,7 @@
 
     for (j = first; j < last; j++) {
 	if (!strcmp(name, tp->ext_Names[j])) {
-	    return j;
+	    return (int) j;
 	}
     }
     return -1;
@@ -244,7 +244,7 @@
     int first, last;
 
     if ((first = _nc_find_ext_name(tp, name, token_type)) >= 0) {
-	last = NUM_EXT_NAMES(tp) - 1;
+	last = (int) NUM_EXT_NAMES(tp) - 1;
 	for (j = first; j < last; j++) {
 	    tp->ext_Names[j] = tp->ext_Names[j + 1];
 	}
@@ -254,22 +254,22 @@
 	    last = tp->num_Booleans - 1;
 	    for (j = first; j < last; j++)
 		tp->Booleans[j] = tp->Booleans[j + 1];
-	    tp->ext_Booleans -= 1;
-	    tp->num_Booleans -= 1;
+	    tp->ext_Booleans--;
+	    tp->num_Booleans--;
 	    break;
 	case NUMBER:
 	    last = tp->num_Numbers - 1;
 	    for (j = first; j < last; j++)
 		tp->Numbers[j] = tp->Numbers[j + 1];
-	    tp->ext_Numbers -= 1;
-	    tp->num_Numbers -= 1;
+	    tp->ext_Numbers--;
+	    tp->num_Numbers--;
 	    break;
 	case STRING:
 	    last = tp->num_Strings - 1;
 	    for (j = first; j < last; j++)
 		tp->Strings[j] = tp->Strings[j + 1];
-	    tp->ext_Strings -= 1;
-	    tp->num_Strings -= 1;
+	    tp->ext_Strings--;
+	    tp->num_Strings--;
 	    break;
 	}
 	return TRUE;
@@ -307,22 +307,22 @@
 
     switch (token_type) {
     case BOOLEAN:
-	tp->ext_Booleans += 1;
-	tp->num_Booleans += 1;
+	tp->ext_Booleans++;
+	tp->num_Booleans++;
 	tp->Booleans = typeRealloc(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
 	for (k = tp->num_Booleans - 1; k > j; k--)
 	    tp->Booleans[k] = tp->Booleans[k - 1];
 	break;
     case NUMBER:
-	tp->ext_Numbers += 1;
-	tp->num_Numbers += 1;
+	tp->ext_Numbers++;
+	tp->num_Numbers++;
 	tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
 	for (k = tp->num_Numbers - 1; k > j; k--)
 	    tp->Numbers[k] = tp->Numbers[k - 1];
 	break;
     case STRING:
-	tp->ext_Strings += 1;
-	tp->num_Strings += 1;
+	tp->ext_Strings++;
+	tp->num_Strings++;
 	tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
 	for (k = tp->num_Strings - 1; k > j; k--)
 	    tp->Strings[k] = tp->Strings[k - 1];
@@ -345,7 +345,7 @@
 
     for (j = first; j < last;) {
 	char *name = to->ext_Names[j];
-	unsigned j_str = to->num_Strings - first - to->ext_Strings;
+	int j_str = to->num_Strings - first - to->ext_Strings;
 
 	if (to->Strings[j + j_str] == CANCELLED_STRING) {
 	    if ((k = _nc_find_ext_name(from, to->ext_Names[j], BOOLEAN)) >= 0) {
diff -Naur ncurses-5.7.orig/ncurses/tinfo/captoinfo.c ncurses-5.7/ncurses/tinfo/captoinfo.c
--- ncurses-5.7.orig/ncurses/tinfo/captoinfo.c	2008-08-16 12:24:51.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/captoinfo.c	2009-06-05 14:01:30.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -93,7 +93,7 @@
 #include <ctype.h>
 #include <tic.h>
 
-MODULE_ID("$Id: captoinfo.c,v 1.52 2008/08/16 19:24:51 tom Exp $")
+MODULE_ID("$Id: captoinfo.c,v 1.53 2009/03/28 20:44:23 tom Exp $")
 
 #define MAX_PUSHED	16	/* max # args we can push onto the stack */
 
@@ -128,7 +128,7 @@
     size_t have = (d - my_string);
     size_t need = have + strlen(s) + 2;
     if (need > my_length) {
-	my_string = (char *) realloc(my_string, my_length = (need + need));
+	my_string = (char *) _nc_doalloc(my_string, my_length = (need + need));
 	if (my_string == 0)
 	    _nc_err_abort(MSG_NO_MEMORY);
 	d = my_string + have;
diff -Naur ncurses-5.7.orig/ncurses/tinfo/comp_scan.c ncurses-5.7/ncurses/tinfo/comp_scan.c
--- ncurses-5.7.orig/ncurses/tinfo/comp_scan.c	2008-08-16 12:22:55.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/comp_scan.c	2009-06-05 14:01:51.000000000 -0700
@@ -51,7 +51,7 @@
 #include <term_entry.h>
 #include <tic.h>
 
-MODULE_ID("$Id: comp_scan.c,v 1.83 2008/08/16 19:22:55 tom Exp $")
+MODULE_ID("$Id: comp_scan.c,v 1.84 2009/05/09 16:37:42 tom Exp $")
 
 /*
  * Maximum length of string capability we'll accept before raising an error.
@@ -61,19 +61,13 @@
 
 #define iswhite(ch)	(ch == ' '  ||  ch == '\t')
 
-NCURSES_EXPORT_VAR(int)
-_nc_syntax = 0;			/* termcap or terminfo? */
-NCURSES_EXPORT_VAR(long)
-_nc_curr_file_pos = 0;		/* file offset of current line */
-NCURSES_EXPORT_VAR(long)
-_nc_comment_start = 0;		/* start of comment range before name */
-NCURSES_EXPORT_VAR(long)
-_nc_comment_end = 0;		/* end of comment range before name */
-NCURSES_EXPORT_VAR(long)
-_nc_start_line = 0;		/* start line of current entry */
+NCURSES_EXPORT_VAR (int) _nc_syntax = 0;         /* termcap or terminfo? */
+NCURSES_EXPORT_VAR (long) _nc_curr_file_pos = 0; /* file offset of current line */
+NCURSES_EXPORT_VAR (long) _nc_comment_start = 0; /* start of comment range before name */
+NCURSES_EXPORT_VAR (long) _nc_comment_end = 0;   /* end of comment range before name */
+NCURSES_EXPORT_VAR (long) _nc_start_line = 0;    /* start line of current entry */
 
-NCURSES_EXPORT_VAR(struct token)
-_nc_curr_token =
+NCURSES_EXPORT_VAR (struct token) _nc_curr_token =
 {
     0, 0, 0
 };
@@ -91,8 +85,7 @@
 static char *pushname;
 
 #if NCURSES_EXT_FUNCS
-NCURSES_EXPORT_VAR(bool)
-_nc_disable_period = FALSE;	/* used by tic -a option */
+NCURSES_EXPORT_VAR (bool) _nc_disable_period = FALSE; /* used by tic -a option */
 #endif
 
 /*****************************************************************************
@@ -637,7 +630,8 @@
 		/* just to get rid of the compiler warning */
 		type = UNDEF;
 		if (!silent)
-		    _nc_warning("Illegal character - '%s'", unctrl((chtype) ch));
+		    _nc_warning("Illegal character - '%s'",
+				unctrl((chtype) ch));
 	    }
 	}			/* end else (first_column == FALSE) */
     }				/* end else (ch != EOF) */
diff -Naur ncurses-5.7.orig/ncurses/tinfo/entries.c ncurses-5.7/ncurses/tinfo/entries.c
--- ncurses-5.7.orig/ncurses/tinfo/entries.c	2008-09-27 06:11:10.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/entries.c	2009-06-05 14:01:21.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2006-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 2006-2008,2009 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            *
@@ -37,7 +37,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: entries.c,v 1.8 2008/09/27 13:11:10 tom Exp $")
+MODULE_ID("$Id: entries.c,v 1.11 2009/03/14 15:22:37 tom Exp $")
 
 /****************************************************************************
  *
@@ -119,6 +119,10 @@
 #if NO_LEAKS
     _nc_free_tparm();
     _nc_tgetent_leaks();
+
+    if (cur_term != 0)
+	del_curterm(cur_term);
+
     _nc_free_entries(_nc_head);
     _nc_get_type(0);
     _nc_first_name(0);
diff -Naur ncurses-5.7.orig/ncurses/tinfo/hashed_db.c ncurses-5.7/ncurses/tinfo/hashed_db.c
--- ncurses-5.7.orig/ncurses/tinfo/hashed_db.c	2006-08-19 12:48:38.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/hashed_db.c	2009-06-05 14:00:57.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc.                        *
+ * Copyright (c) 2006,2008 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            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /****************************************************************************
- *  Author: Thomas E. Dickey                        2006                    *
+ *  Author: Thomas E. Dickey                        2006-on                 *
  ****************************************************************************/
 
 #include <curses.priv.h>
@@ -36,7 +36,7 @@
 
 #if USE_HASHED_DB
 
-MODULE_ID("$Id: hashed_db.c,v 1.13 2006/08/19 19:48:38 tom Exp $")
+MODULE_ID("$Id: hashed_db.c,v 1.14 2008/12/13 20:59:02 tom Exp $")
 
 #if HASHED_DB_API >= 2
 static DBC *cursor;
@@ -49,27 +49,30 @@
 _nc_db_open(const char *path, bool modify)
 {
     DB *result = 0;
+    int code;
 
 #if HASHED_DB_API >= 4
     db_create(&result, NULL, 0);
-    result->open(result,
-		 NULL,
-		 path,
-		 NULL,
-		 DB_HASH,
-		 modify ? DB_CREATE : DB_RDONLY,
-		 0644);
+    if ((code = result->open(result,
+			     NULL,
+			     path,
+			     NULL,
+			     DB_HASH,
+			     modify ? DB_CREATE : DB_RDONLY,
+			     0644)) != 0) {
+	result = 0;
+    }
 #elif HASHED_DB_API >= 3
     db_create(&result, NULL, 0);
-    result->open(result,
-		 path,
-		 NULL,
-		 DB_HASH,
-		 modify ? DB_CREATE : DB_RDONLY,
-		 0644);
+    if ((code = result->open(result,
+			     path,
+			     NULL,
+			     DB_HASH,
+			     modify ? DB_CREATE : DB_RDONLY,
+			     0644)) != 0) {
+	result = 0;
+    }
 #elif HASHED_DB_API >= 2
-    int code;
-
     if ((code = db_open(path,
 			DB_HASH,
 			modify ? DB_CREATE : DB_RDONLY,
@@ -77,21 +80,22 @@
 			(DB_ENV *) 0,
 			(DB_INFO *) 0,
 			&result)) != 0) {
-	T(("cannot open %s: %s", path, strerror(code)));
 	result = 0;
-    } else {
-	T(("opened %s", path));
     }
 #else
-    result = dbopen(path,
-		    modify ? (O_CREAT | O_RDWR) : O_RDONLY,
-		    0644,
-		    DB_HASH,
-		    NULL);
+    if ((result = dbopen(path,
+			 modify ? (O_CREAT | O_RDWR) : O_RDONLY,
+			 0644,
+			 DB_HASH,
+			 NULL)) == 0) {
+	code = errno;
+    }
+#endif
     if (result != 0) {
 	T(("opened %s", path));
+    } else {
+	T(("cannot open %s: %s", path, strerror(code)));
     }
-#endif
     return result;
 }
 
diff -Naur ncurses-5.7.orig/ncurses/tinfo/init_keytry.c ncurses-5.7/ncurses/tinfo/init_keytry.c
--- ncurses-5.7.orig/ncurses/tinfo/init_keytry.c	2008-05-24 14:44:51.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/init_keytry.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2006,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2008,2009 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            *
@@ -27,16 +27,11 @@
  ****************************************************************************/
 
 #include <curses.priv.h>
-
-#include <term.h>
-/* keypad_xmit, keypad_local, meta_on, meta_off */
-/* cursor_visible,cursor_normal,cursor_invisible */
-
 #include <tic.h>		/* struct tinfo_fkeys */
 
 #include <term_entry.h>
 
-MODULE_ID("$Id: init_keytry.c,v 1.12 2008/05/24 21:44:51 tom Exp $")
+MODULE_ID("$Id: init_keytry.c,v 1.14 2009/05/10 00:48:29 tom Exp $")
 
 /*
 **      _nc_init_keytry()
@@ -50,7 +45,7 @@
  * than cur_term.
  */
 #undef CUR
-#define CUR (sp->_term)->type.
+#define CUR SP_TERMTYPE 
 
 #if	BROKEN_LINKER
 #undef	_nc_tinfo_fkeys
@@ -102,7 +97,8 @@
 		if (name != 0
 		    && *name == 'k'
 		    && value != 0
-		    && key_defined(value) == 0) {
+		    && NCURSES_SP_NAME(key_defined) (NCURSES_SP_ARGx
+						     value) == 0) {
 		    (void) _nc_add_to_try(&(sp->_keytry),
 					  value,
 					  n - STRCOUNT + KEY_MAX);
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_acs.c ncurses-5.7/ncurses/tinfo/lib_acs.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_acs.c	2008-08-16 12:22:55.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_acs.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -35,12 +35,16 @@
 #include <curses.priv.h>
 #include <term.h>		/* ena_acs, acs_chars */
 
-MODULE_ID("$Id: lib_acs.c,v 1.36 2008/08/16 19:22:55 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_acs.c,v 1.39 2009/05/10 00:48:29 tom Exp $")
 
 #if BROKEN_LINKER || USE_REENTRANT
 #define MyBuffer _nc_prescreen.real_acs_map
-NCURSES_EXPORT_VAR(chtype *)
-_nc_acs_map(void)
+NCURSES_EXPORT(chtype *)
+NCURSES_PUBLIC_VAR(acs_map) (void)
 {
     if (MyBuffer == 0)
 	MyBuffer = typeCalloc(chtype, ACS_LEN);
@@ -48,7 +52,7 @@
 }
 #undef MyBuffer
 #else
-NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] =
+NCURSES_EXPORT_VAR (chtype) acs_map[ACS_LEN] =
 {
     0
 };
@@ -57,6 +61,9 @@
 NCURSES_EXPORT(void)
 _nc_init_acs(void)
 {
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = CURRENT_SCREEN;
+#endif
     chtype *fake_map = acs_map;
     chtype *real_map = SP != 0 ? SP->_acs_map : fake_map;
     int j;
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_baudrate.c ncurses-5.7/ncurses/tinfo/lib_baudrate.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_baudrate.c	2008-06-28 08:19:24.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_baudrate.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -38,7 +38,6 @@
  */
 
 #include <curses.priv.h>
-#include <term.h>		/* cur_term, pad_char */
 #include <termcap.h>		/* ospeed */
 #if defined(__FreeBSD__)
 #include <sys/param.h>
@@ -80,7 +79,7 @@
 #undef USE_OLD_TTY
 #endif /* USE_OLD_TTY */
 
-MODULE_ID("$Id: lib_baudrate.c,v 1.27 2008/06/28 15:19:24 tom Exp $")
+MODULE_ID("$Id: lib_baudrate.c,v 1.29 2009/02/21 17:22:13 tom Exp $")
 
 /*
  *	int
@@ -195,11 +194,11 @@
 }
 
 NCURSES_EXPORT(int)
-baudrate(void)
+NCURSES_SP_NAME(baudrate) (NCURSES_SP_DCL0)
 {
     int result;
 
-    T((T_CALLED("baudrate()")));
+    T((T_CALLED("baudrate(%p)"), SP_PARM));
 
     /*
      * In debugging, allow the environment symbol to override when we're
@@ -207,7 +206,8 @@
      * that take into account costs that depend on baudrate.
      */
 #ifdef TRACE
-    if (!isatty(fileno(SP ? SP->_ofp : stdout))
+    if (IsValidTIScreen(SP_PARM)
+	&& !isatty(fileno(SP_PARM ? SP_PARM->_ofp : stdout))
 	&& getenv("BAUDRATE") != 0) {
 	int ret;
 	if ((ret = _nc_getenv_num("BAUDRATE")) <= 0)
@@ -217,22 +217,30 @@
     }
 #endif
 
-    if (cur_term != 0) {
+    if (IsValidTIScreen(SP_PARM)) {
 #ifdef USE_OLD_TTY
-	result = cfgetospeed(&cur_term->Nttyb);
+	result = cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb));
 	ospeed = _nc_ospeed(result);
 #else /* !USE_OLD_TTY */
 #ifdef TERMIOS
-	ospeed = cfgetospeed(&cur_term->Nttyb);
+	ospeed = cfgetospeed(&(TerminalOf(SP_PARM)->Nttyb));
 #else
-	ospeed = cur_term->Nttyb.sg_ospeed;
+	ospeed = TerminalOf(SP_PARM)->Nttyb.sg_ospeed;
 #endif
 	result = _nc_baudrate(ospeed);
 #endif
-	cur_term->_baudrate = result;
+	TerminalOf(SP_PARM)->_baudrate = result;
     } else {
 	result = ERR;
     }
 
     returnCode(result);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+baudrate(void)
+{
+    return NCURSES_SP_NAME(baudrate) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_cur_term.c ncurses-5.7/ncurses/tinfo/lib_cur_term.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_cur_term.c	2008-08-16 12:22:55.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_cur_term.c	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -40,12 +40,14 @@
 #include <term_entry.h>		/* TTY, cur_term */
 #include <termcap.h>		/* ospeed */
 
-MODULE_ID("$Id: lib_cur_term.c,v 1.18 2008/08/16 19:22:55 tom Exp $")
+MODULE_ID("$Id: lib_cur_term.c,v 1.22 2009/05/30 13:55:19 tom Exp $")
 
 #undef CUR
 #define CUR termp->type.
 
-#if BROKEN_LINKER || USE_REENTRANT
+#if BROKEN_LINKER && !USE_REENTRANT
+NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0;
+#elif BROKEN_LINKER || USE_REENTRANT
 NCURSES_EXPORT(TERMINAL *)
 NCURSES_PUBLIC_VAR(cur_term) (void)
 {
@@ -66,7 +68,9 @@
     oldterm = cur_term;
     if (SP)
 	SP->_term = termp;
-#if BROKEN_LINKER || USE_REENTRANT
+#if BROKEN_LINKER && !USE_REENTRANT
+    cur_term = termp;
+#elif BROKEN_LINKER || USE_REENTRANT
     _nc_prescreen._cur_term = termp;
 #else
     cur_term = termp;
@@ -84,7 +88,7 @@
 }
 
 NCURSES_EXPORT(int)
-del_curterm(TERMINAL * termp)
+NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL * termp)
 {
     int rc = ERR;
 
@@ -94,6 +98,10 @@
     if (termp != 0) {
 	_nc_free_termtype(&(termp->type));
 	FreeIfNeeded(termp->_termname);
+#if USE_HOME_TERMINFO
+	if (_nc_globals.home_terminfo != 0)
+	    FreeAndNull(_nc_globals.home_terminfo);
+#endif
 	free(termp);
 	if (termp == cur_term)
 	    set_curterm(0);
@@ -103,3 +111,13 @@
 
     returnCode(rc);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+del_curterm(TERMINAL * termp)
+{
+    int rc = ERR;
+    rc = NCURSES_SP_NAME(del_curterm) (CURRENT_SCREEN, termp);
+    return (rc);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_data.c ncurses-5.7/ncurses/tinfo/lib_data.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_data.c	2008-08-23 15:16:15.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_data.c	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -41,7 +41,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_data.c,v 1.52 2008/08/23 22:16:15 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.53 2009/05/30 15:59:25 tom Exp $")
 
 /*
  * OS/2's native linker complains if we don't initialize public data when
@@ -225,6 +225,8 @@
     NULL,			/* real_acs_map */
     0,				/* LINES */
     0,				/* COLS */
+    8,				/* TABSIZE */
+    1000,			/* ESCDELAY */
     0,				/* cur_term */
 #ifdef TRACE
     0L,				/* _outchars */
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_has_cap.c ncurses-5.7/ncurses/tinfo/lib_has_cap.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_has_cap.c	2003-10-25 12:43:55.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_has_cap.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-2003               *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -41,25 +42,53 @@
 
 #include <curses.priv.h>
 
-#include <term.h>
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
 
-MODULE_ID("$Id: lib_has_cap.c,v 1.4 2003/10/25 19:43:55 tom Exp $")
+MODULE_ID("$Id: lib_has_cap.c,v 1.8 2009/05/10 00:53:52 tom Exp $")
 
 NCURSES_EXPORT(bool)
+NCURSES_SP_NAME(has_ic) (NCURSES_SP_DCL0)
+{
+    bool code = FALSE;
+
+    T((T_CALLED("has_ic(%p)"), SP_PARM));
+
+    if (IsValidTIScreen(SP_PARM) && IsTermInfo(SP_PARM)) {
+	code = ((insert_character || parm_ich
+		 || (enter_insert_mode && exit_insert_mode))
+		&& (delete_character || parm_dch)) ? TRUE : FALSE;
+    }
+
+    returnCode(code);
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(bool)
 has_ic(void)
 {
-    T((T_CALLED("has_ic()")));
-    returnCode(cur_term &&
-	       (insert_character || parm_ich
-		|| (enter_insert_mode && exit_insert_mode))
-	       && (delete_character || parm_dch));
+    return NCURSES_SP_NAME(has_ic) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(bool)
+NCURSES_SP_NAME(has_il) (NCURSES_SP_DCL0)
+{
+    bool code = FALSE;
+    T((T_CALLED("has_il(%p)"), SP_PARM));
+    if (IsValidTIScreen(SP_PARM) && IsTermInfo(SP_PARM)) {
+	code = ((insert_line || parm_insert_line)
+		&& (delete_line || parm_delete_line)) ? TRUE : FALSE;
+    }
+
+    returnCode(code);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(bool)
 has_il(void)
 {
-    T((T_CALLED("has_il()")));
-    returnCode(cur_term
-	       && (insert_line || parm_insert_line)
-	       && (delete_line || parm_delete_line));
+    return NCURSES_SP_NAME(has_il) (CURRENT_SCREEN);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_kernel.c ncurses-5.7/ncurses/tinfo/lib_kernel.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_kernel.c	2004-05-08 10:11:21.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_kernel.c	2009-06-05 14:01:14.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2004,2009 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            *
@@ -29,7 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey 2002                                           *
+ *     and: Thomas E. Dickey                        2002                    *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -48,7 +49,7 @@
 #include <curses.priv.h>
 #include <term.h>		/* cur_term */
 
-MODULE_ID("$Id: lib_kernel.c,v 1.24 2004/05/08 17:11:21 tom Exp $")
+MODULE_ID("$Id: lib_kernel.c,v 1.25 2009/02/15 00:47:52 tom Exp $")
 
 static int
 _nc_vdisable(void)
@@ -79,7 +80,7 @@
  */
 
 NCURSES_EXPORT(char)
-erasechar(void)
+NCURSES_SP_NAME(erasechar) (NCURSES_SP_DCL0)
 {
     int result = ERR;
     T((T_CALLED("erasechar()")));
@@ -96,6 +97,14 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(char)
+erasechar(void)
+{
+    return NCURSES_SP_NAME(erasechar) (CURRENT_SCREEN);
+}
+#endif
+
 /*
  *	killchar()
  *
@@ -104,7 +113,7 @@
  */
 
 NCURSES_EXPORT(char)
-killchar(void)
+NCURSES_SP_NAME(killchar) (NCURSES_SP_DCL0)
 {
     int result = ERR;
     T((T_CALLED("killchar()")));
@@ -121,6 +130,14 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(char)
+killchar(void)
+{
+    return NCURSES_SP_NAME(killchar) (CURRENT_SCREEN);
+}
+#endif
+
 /*
  *	flushinp()
  *
@@ -129,7 +146,7 @@
  */
 
 NCURSES_EXPORT(int)
-flushinp(void)
+NCURSES_SP_NAME(flushinp) (NCURSES_SP_DCL0)
 {
     T((T_CALLED("flushinp()")));
 
@@ -143,12 +160,20 @@
 	} while
 	    (errno == EINTR);
 #endif
-	if (SP) {
-	    SP->_fifohead = -1;
-	    SP->_fifotail = 0;
-	    SP->_fifopeek = 0;
+	if (SP_PARM) {
+	    SP_PARM->_fifohead = -1;
+	    SP_PARM->_fifotail = 0;
+	    SP_PARM->_fifopeek = 0;
 	}
 	returnCode(OK);
     }
     returnCode(ERR);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+flushinp(void)
+{
+    return NCURSES_SP_NAME(flushinp) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_longname.c ncurses-5.7/ncurses/tinfo/lib_longname.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_longname.c	2000-12-09 18:55:07.000000000 -0800
+++ ncurses-5.7/ncurses/tinfo/lib_longname.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2000,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -40,8 +42,38 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_longname.c,v 1.9 2000/12/10 02:55:07 tom Exp $")
+MODULE_ID("$Id: lib_longname.c,v 1.11 2009/02/21 17:18:02 tom Exp $")
 
+#if USE_REENTRANT
+NCURSES_EXPORT(char *)
+NCURSES_SP_NAME(longname) (NCURSES_SP_DCL0)
+{
+    static char empty[] =
+    {'\0'};
+    char *ptr;
+
+    T((T_CALLED("longname(%p)"), SP_PARM));
+
+    if (SP_PARM) {
+	for (ptr = SP_PARM->_ttytype + strlen(SP_PARM->_ttytype);
+	     ptr > SP_PARM->_ttytype;
+	     ptr--)
+	    if (*ptr == '|')
+		returnPtr(ptr + 1);
+	returnPtr(SP_PARM->_ttytype);
+    }
+    return empty;
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(char *)
+longname(void)
+{
+    return NCURSES_SP_NAME(longname) (CURRENT_SCREEN);
+}
+#endif
+
+#else
 NCURSES_EXPORT(char *)
 longname(void)
 {
@@ -49,9 +81,11 @@
 
     T((T_CALLED("longname()")));
 
-    for (ptr = ttytype + strlen(ttytype); ptr > ttytype; ptr--)
+    for (ptr = ttytype + strlen(ttytype);
+	 ptr > ttytype;
+	 ptr--)
 	if (*ptr == '|')
 	    returnPtr(ptr + 1);
-
     returnPtr(ttytype);
 }
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_napms.c ncurses-5.7/ncurses/tinfo/lib_napms.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_napms.c	2008-05-03 14:34:13.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_napms.c	2009-06-05 14:01:14.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -49,10 +51,10 @@
 #endif
 #endif
 
-MODULE_ID("$Id: lib_napms.c,v 1.17 2008/05/03 21:34:13 tom Exp $")
+MODULE_ID("$Id: lib_napms.c,v 1.18 2009/02/15 00:48:27 tom Exp $")
 
 NCURSES_EXPORT(int)
-napms(int ms)
+NCURSES_SP_NAME(napms) (NCURSES_SP_DCLx int ms)
 {
     T((T_CALLED("napms(%d)"), ms));
 
@@ -72,3 +74,11 @@
 
     returnCode(OK);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+napms(int ms)
+{
+    return NCURSES_SP_NAME(napms) (CURRENT_SCREEN, ms);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_options.c ncurses-5.7/ncurses/tinfo/lib_options.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_options.c	2008-08-16 14:20:48.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_options.c	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -43,14 +44,20 @@
 
 #include <term.h>
 
-MODULE_ID("$Id: lib_options.c,v 1.58 2008/08/16 21:20:48 Werner.Fink Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
+
+MODULE_ID("$Id: lib_options.c,v 1.64 2009/05/23 23:58:07 tom Exp $")
 
-static int _nc_curs_set(SCREEN *, int);
 static int _nc_meta(SCREEN *, bool);
 
 NCURSES_EXPORT(int)
 idlok(WINDOW *win, bool flag)
 {
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = CURRENT_SCREEN;
+#endif
     T((T_CALLED("idlok(%p,%d)"), win, flag));
 
     if (win) {
@@ -72,18 +79,26 @@
 }
 
 NCURSES_EXPORT(int)
-halfdelay(int t)
+NCURSES_SP_NAME(halfdelay) (NCURSES_SP_DCLx int t)
 {
     T((T_CALLED("halfdelay(%d)"), t));
 
-    if (t < 1 || t > 255 || SP == 0)
+    if (t < 1 || t > 255 || SP_PARM == 0)
 	returnCode(ERR);
 
     cbreak();
-    SP->_cbreak = t + 1;
+    SP_PARM->_cbreak = t + 1;
     returnCode(OK);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+halfdelay(int t)
+{
+    return NCURSES_SP_NAME(halfdelay) (CURRENT_SCREEN, t);
+}
+#endif
+
 NCURSES_EXPORT(int)
 nodelay(WINDOW *win, bool flag)
 {
@@ -148,27 +163,64 @@
 /* curs_set() moved here to narrow the kernel interface */
 
 NCURSES_EXPORT(int)
-curs_set(int vis)
+NCURSES_SP_NAME(curs_set) (NCURSES_SP_DCLx int vis)
 {
-    int result;
+    int result = ERR;
+
+    T((T_CALLED("curs_set(%p,%d)"), SP_PARM, vis));
+    if (SP_PARM != 0 && vis >= 0 && vis <= 2) {
+	int cursor = SP_PARM->_cursor;
 
-    T((T_CALLED("curs_set(%d)"), vis));
-    result = _nc_curs_set(SP, vis);
+	if (vis == cursor) {
+	    result = cursor;
+	} else {
+	    switch (vis) {
+	    case 2:
+		result = _nc_putp_flush("cursor_visible", cursor_visible);
+		break;
+	    case 1:
+		result = _nc_putp_flush("cursor_normal", cursor_normal);
+		break;
+	    case 0:
+		result = _nc_putp_flush("cursor_invisible", cursor_invisible);
+		break;
+	    }
+	    if (result != ERR)
+		result = (cursor == -1 ? 1 : cursor);
+	    SP_PARM->_cursor = vis;
+	}
+    }
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-typeahead(int fd)
+curs_set(int vis)
+{
+    return (NCURSES_SP_NAME(curs_set) (CURRENT_SCREEN, vis));
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(typeahead) (NCURSES_SP_DCLx int fd)
 {
     T((T_CALLED("typeahead(%d)"), fd));
-    if (SP != 0) {
-	SP->_checkfd = fd;
+    if (SP_PARM != 0) {
+	SP_PARM->_checkfd = fd;
 	returnCode(OK);
     } else {
 	returnCode(ERR);
     }
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+typeahead(int fd)
+{
+    return NCURSES_SP_NAME(typeahead) (CURRENT_SCREEN, fd);
+}
+#endif
+
 /*
 **      has_key()
 **
@@ -190,11 +242,19 @@
 }
 
 NCURSES_EXPORT(int)
+NCURSES_SP_NAME(has_key) (NCURSES_SP_DCLx int keycode)
+{
+    T((T_CALLED("has_key(%p,%d)"), SP_PARM, keycode));
+    returnCode(SP != 0 ? has_key_internal(keycode, SP_PARM->_keytry) : FALSE);
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
 has_key(int keycode)
 {
-    T((T_CALLED("has_key(%d)"), keycode));
-    returnCode(SP != 0 ? has_key_internal(keycode, SP->_keytry) : FALSE);
+    return NCURSES_SP_NAME(has_key) (CURRENT_SCREEN, keycode);
 }
+#endif
 #endif /* NCURSES_EXT_FUNCS */
 
 /*
@@ -202,29 +262,26 @@
  * than cur_term.
  */
 #undef CUR
-#define CUR (sp->_term)->type.
+#define CUR SP_TERMTYPE
 
-static int
-_nc_putp(const char *name GCC_UNUSED, const char *value)
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_DCLx
+				 const char *name, const char *value)
 {
-    int rc = ERR;
-
-    if (value) {
-	TPUTS_TRACE(name);
-	rc = putp(value);
+    int rc = _nc_putp(name, value);
+    if (rc != ERR) {
+	_nc_flush();
     }
     return rc;
 }
 
-static int
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
 _nc_putp_flush(const char *name, const char *value)
 {
-    int rc = _nc_putp(name, value);
-    if (rc != ERR) {
-	_nc_flush();
-    }
-    return rc;
+    return NCURSES_SP_NAME(_nc_putp_flush) (CURRENT_SCREEN, name, value);
 }
+#endif
 
 /* Turn the keypad on/off
  *
@@ -245,12 +302,12 @@
 	 * has wgetch() reading in more than one thread.  putp() and below
 	 * may use SP explicitly.
 	 */
-	if (_nc_use_pthreads && sp != SP) {
+	if (_nc_use_pthreads && sp != CURRENT_SCREEN) {
 	    SCREEN *save_sp;
 
 	    /* cannot use use_screen(), since that is not in tinfo library */
 	    _nc_lock_global(curses);
-	    save_sp = SP;
+	    save_sp = CURRENT_SCREEN;
 	    _nc_set_screen(sp);
 	    rc = _nc_keypad(sp, flag);
 	    _nc_set_screen(save_sp);
@@ -276,45 +333,14 @@
 }
 
 static int
-_nc_curs_set(SCREEN *sp, int vis)
-{
-    int result = ERR;
-
-    T((T_CALLED("curs_set(%d)"), vis));
-    if (sp != 0 && vis >= 0 && vis <= 2) {
-	int cursor = sp->_cursor;
-
-	if (vis == cursor) {
-	    result = cursor;
-	} else {
-	    switch (vis) {
-	    case 2:
-		result = _nc_putp_flush("cursor_visible", cursor_visible);
-		break;
-	    case 1:
-		result = _nc_putp_flush("cursor_normal", cursor_normal);
-		break;
-	    case 0:
-		result = _nc_putp_flush("cursor_invisible", cursor_invisible);
-		break;
-	    }
-	    if (result != ERR)
-		result = (cursor == -1 ? 1 : cursor);
-	    sp->_cursor = vis;
-	}
-    }
-    returnCode(result);
-}
-
-static int
 _nc_meta(SCREEN *sp, bool flag)
 {
     int result = ERR;
 
     /* Ok, we stay relaxed and don't signal an error if win is NULL */
 
-    if (SP != 0) {
-	SP->_use_meta = flag;
+    if (sp != 0) {
+	sp->_use_meta = flag;
 
 	if (flag) {
 	    _nc_putp("meta_on", meta_on);
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_print.c ncurses-5.7/ncurses/tinfo/lib_print.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_print.c	2006-11-25 16:26:34.000000000 -0800
+++ ncurses-5.7/ncurses/tinfo/lib_print.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2009 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            *
@@ -35,12 +35,19 @@
 
 #include <term.h>
 
-MODULE_ID("$Id: lib_print.c,v 1.16 2006/11/26 00:26:34 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_print.c,v 1.18 2009/05/10 00:48:29 tom Exp $")
 
 NCURSES_EXPORT(int)
 mcprint(char *data, int len)
 /* ship binary character data to the printer via mc4/mc5/mc5p */
 {
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = CURRENT_SCREEN;
+#endif
     char *mybuf, *switchon;
     size_t onsize, offsize, res;
 
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_raw.c ncurses-5.7/ncurses/tinfo/lib_raw.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_raw.c	2007-09-29 14:50:22.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_raw.c	2009-06-05 14:01:14.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2002,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -29,7 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey 1998 on                                        *
+ *     and: Thomas E. Dickey                        1998-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -49,7 +50,7 @@
 #include <curses.priv.h>
 #include <term.h>		/* cur_term */
 
-MODULE_ID("$Id: lib_raw.c,v 1.14 2007/09/29 21:50:22 tom Exp $")
+MODULE_ID("$Id: lib_raw.c,v 1.15 2009/02/15 00:49:02 tom Exp $")
 
 #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
@@ -61,7 +62,7 @@
 
 #ifdef __EMX__
 #include <io.h>
-#define _nc_setmode(mode) setmode(SP->_ifd, mode)
+#define _nc_setmode(mode) setmode(SP_PARM->_ifd, mode)
 #else
 #define _nc_setmode(mode)	/* nothing */
 #endif
@@ -77,13 +78,13 @@
 #endif /* TRACE */
 
 NCURSES_EXPORT(int)
-raw(void)
+NCURSES_SP_NAME(raw) (NCURSES_SP_DCL0)
 {
     int result = ERR;
 
     T((T_CALLED("raw()")));
 
-    if (SP != 0 && cur_term != 0) {
+    if (SP_PARM != 0 && cur_term != 0) {
 	TTY buf;
 
 	BEFORE("raw");
@@ -99,8 +100,8 @@
 	buf.sg_flags |= RAW;
 #endif
 	if ((result = _nc_set_tty_mode(&buf)) == OK) {
-	    SP->_raw = TRUE;
-	    SP->_cbreak = 1;
+	    SP_PARM->_raw = TRUE;
+	    SP_PARM->_cbreak = 1;
 	    cur_term->Nttyb = buf;
 	}
 	AFTER("raw");
@@ -108,14 +109,22 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-cbreak(void)
+raw(void)
+{
+    return NCURSES_SP_NAME(raw) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(cbreak) (NCURSES_SP_DCL0)
 {
     int result = ERR;
 
     T((T_CALLED("cbreak()")));
 
-    if (SP != 0 && cur_term != 0) {
+    if (SP_PARM != 0 && cur_term != 0) {
 	TTY buf;
 
 	BEFORE("cbreak");
@@ -132,7 +141,7 @@
 	buf.sg_flags |= CBREAK;
 #endif
 	if ((result = _nc_set_tty_mode(&buf)) == OK) {
-	    SP->_cbreak = 1;
+	    SP_PARM->_cbreak = 1;
 	    cur_term->Nttyb = buf;
 	}
 	AFTER("cbreak");
@@ -140,12 +149,20 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+cbreak(void)
+{
+    return NCURSES_SP_NAME(cbreak) (CURRENT_SCREEN);
+}
+#endif
+
 /*
  * Note:
  * this implementation may be wrong.  See the comment under intrflush().
  */
 NCURSES_EXPORT(void)
-qiflush(void)
+NCURSES_SP_NAME(qiflush) (NCURSES_SP_DCL0)
 {
     int result = ERR;
 
@@ -169,14 +186,22 @@
     returnVoid;
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+qiflush(void)
+{
+    NCURSES_SP_NAME(qiflush) (CURRENT_SCREEN);
+}
+#endif
+
 NCURSES_EXPORT(int)
-noraw(void)
+NCURSES_SP_NAME(noraw) (NCURSES_SP_DCL0)
 {
     int result = ERR;
 
     T((T_CALLED("noraw()")));
 
-    if (SP != 0 && cur_term != 0) {
+    if (SP_PARM != 0 && cur_term != 0) {
 	TTY buf;
 
 	BEFORE("noraw");
@@ -191,8 +216,8 @@
 	buf.sg_flags &= ~(RAW | CBREAK);
 #endif
 	if ((result = _nc_set_tty_mode(&buf)) == OK) {
-	    SP->_raw = FALSE;
-	    SP->_cbreak = 0;
+	    SP_PARM->_raw = FALSE;
+	    SP_PARM->_cbreak = 0;
 	    cur_term->Nttyb = buf;
 	}
 	AFTER("noraw");
@@ -200,14 +225,22 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-nocbreak(void)
+noraw(void)
+{
+    return NCURSES_SP_NAME(noraw) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(nocbreak) (NCURSES_SP_DCL0)
 {
     int result = ERR;
 
     T((T_CALLED("nocbreak()")));
 
-    if (SP != 0 && cur_term != 0) {
+    if (SP_PARM != 0 && cur_term != 0) {
 	TTY buf;
 
 	BEFORE("nocbreak");
@@ -221,7 +254,7 @@
 	buf.sg_flags &= ~CBREAK;
 #endif
 	if ((result = _nc_set_tty_mode(&buf)) == OK) {
-	    SP->_cbreak = 0;
+	    SP_PARM->_cbreak = 0;
 	    cur_term->Nttyb = buf;
 	}
 	AFTER("nocbreak");
@@ -229,12 +262,20 @@
     returnCode(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+nocbreak(void)
+{
+    return NCURSES_SP_NAME(nocbreak) (CURRENT_SCREEN);
+}
+#endif
+
 /*
  * Note:
  * this implementation may be wrong.  See the comment under intrflush().
  */
 NCURSES_EXPORT(void)
-noqiflush(void)
+NCURSES_SP_NAME(noqiflush) (NCURSES_SP_DCL0)
 {
     int result = ERR;
 
@@ -259,6 +300,14 @@
     returnVoid;
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+noqiflush(void)
+{
+    NCURSES_SP_NAME(noqiflush) (CURRENT_SCREEN);
+}
+#endif
+
 /*
  * This call does the same thing as the qiflush()/noqiflush() pair.  We know
  * for certain that SVr3 intrflush() tweaks the NOFLSH bit; on the other hand,
@@ -267,7 +316,7 @@
  * curs_inopts(3x) is too exact to be coincidence.
  */
 NCURSES_EXPORT(int)
-intrflush(WINDOW *win GCC_UNUSED, bool flag)
+NCURSES_SP_NAME(intrflush) (NCURSES_SP_DCLx WINDOW *win GCC_UNUSED, bool flag)
 {
     int result = ERR;
 
@@ -294,3 +343,11 @@
     }
     returnCode(result);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+intrflush(WINDOW *win GCC_UNUSED, bool flag)
+{
+    return NCURSES_SP_NAME(intrflush) (CURRENT_SCREEN, win, flag);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_setup.c ncurses-5.7/ncurses/tinfo/lib_setup.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_setup.c	2008-08-03 15:42:33.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_setup.c	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -53,7 +54,7 @@
 
 #include <term.h>		/* lines, columns, cur_term */
 
-MODULE_ID("$Id: lib_setup.c,v 1.111 2008/08/03 22:42:33 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.116 2009/05/30 20:39:21 tom Exp $")
 
 /****************************************************************************
  *
@@ -116,54 +117,68 @@
     return cur_term ? cur_term->type.term_names : empty;
 }
 NCURSES_EXPORT(int *)
-_nc_ptr_Lines(void)
+_nc_ptr_Lines(SCREEN *sp)
 {
-    return ptrLines();
+    return ptrLines(sp);
 }
 NCURSES_EXPORT(int)
 NCURSES_PUBLIC_VAR(LINES) (void)
 {
-    return *_nc_ptr_Lines();
+    return *_nc_ptr_Lines(CURRENT_SCREEN);
 }
 NCURSES_EXPORT(int *)
-_nc_ptr_Cols(void)
+_nc_ptr_Cols(SCREEN *sp)
 {
-    return ptrCols();
+    return ptrCols(sp);
 }
 NCURSES_EXPORT(int)
 NCURSES_PUBLIC_VAR(COLS) (void)
 {
-    return *_nc_ptr_Cols();
+    return *_nc_ptr_Cols(CURRENT_SCREEN);
+}
+NCURSES_EXPORT(int *)
+_nc_ptr_Tabsize(SCREEN *sp)
+{
+    return ptrTabsize(sp);
 }
 NCURSES_EXPORT(int)
 NCURSES_PUBLIC_VAR(TABSIZE) (void)
 {
-    return SP ? SP->_TABSIZE : 8;
+    return *_nc_ptr_Tabsize(CURRENT_SCREEN);
 }
 #else
 NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = "";
 NCURSES_EXPORT_VAR(int) LINES = 0;
 NCURSES_EXPORT_VAR(int) COLS = 0;
-NCURSES_EXPORT_VAR(int) TABSIZE = 0;
+NCURSES_EXPORT_VAR(int) TABSIZE = 8;
 #endif
 
 #if NCURSES_EXT_FUNCS
 NCURSES_EXPORT(int)
-set_tabsize(int value)
+NCURSES_SP_NAME(set_tabsize) (NCURSES_SP_DCLx int value)
 {
     int code = OK;
 #if USE_REENTRANT
-    if (SP) {
-	SP->_TABSIZE = value;
+    if (SP_PARM) {
+	SP_PARM->_TABSIZE = value;
     } else {
 	code = ERR;
     }
 #else
+    (void) SP_PARM;
     TABSIZE = value;
 #endif
     return code;
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+set_tabsize(int value)
+{
+    return NCURSES_SP_NAME(set_tabsize) (CURRENT_SCREEN, value);
+}
 #endif
+#endif /* NCURSES_EXT_FUNCS */
 
 #if USE_SIGWINCH
 /*
@@ -188,13 +203,25 @@
 #endif
 
 NCURSES_EXPORT(void)
-use_env(bool f)
+NCURSES_SP_NAME(use_env) (NCURSES_SP_DCLx bool f)
 {
     T((T_CALLED("use_env()")));
-    _nc_prescreen.use_env = f;
+    if (IsPreScreen(SP_PARM)) {
+	SP_PARM->_use_env = f;
+    } else {
+	_nc_prescreen.use_env = f;
+    }
     returnVoid;
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+use_env(bool f)
+{
+    NCURSES_SP_NAME(use_env) (CURRENT_SCREEN, f);
+}
+#endif
+
 NCURSES_EXPORT(void)
 _nc_get_screensize(SCREEN *sp, int *linep, int *colp)
 /* Obtain lines/columns values from the environment and/or terminfo entry */
@@ -604,7 +631,7 @@
     /*
      * We should always check the screensize, just in case.
      */
-    _nc_get_screensize(SP, ptrLines(), ptrCols());
+    _nc_get_screensize(SP, ptrLines(SP), ptrCols(SP));
 
     if (errret)
 	*errret = TGETENT_YES;
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_termcap.c ncurses-5.7/ncurses/tinfo/lib_termcap.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_termcap.c	2008-08-16 12:22:55.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_termcap.c	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                                                 *
  *                                                                          *
  * some of the code in here was contributed by:                             *
  * Magnus Bengtsson, d6mbeng@dtek.chalmers.se (Nov'93)                      *
@@ -45,7 +46,11 @@
 
 #include <term_entry.h>
 
-MODULE_ID("$Id: lib_termcap.c,v 1.63 2008/08/16 19:22:55 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
+
+MODULE_ID("$Id: lib_termcap.c,v 1.66 2009/05/23 23:47:34 tom Exp $")
 
 NCURSES_EXPORT_VAR(char *) UP = 0;
 NCURSES_EXPORT_VAR(char *) BC = 0;
@@ -76,7 +81,7 @@
  ***************************************************************************/
 
 NCURSES_EXPORT(int)
-tgetent(char *bufp, const char *name)
+NCURSES_SP_NAME(tgetent) (NCURSES_SP_DCLx char *bufp, const char *name)
 {
     int errcode;
     int n;
@@ -111,7 +116,7 @@
 	     */
 	    if (LAST_TRM != 0 && LAST_TRM != cur_term) {
 		TERMINAL *trm = LAST_TRM;
-		del_curterm(LAST_TRM);
+		NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx LAST_TRM);
 		for (CacheInx = 0; CacheInx < TGETENT_MAX; ++CacheInx)
 		    if (LAST_TRM == trm)
 			LAST_TRM = 0;
@@ -164,8 +169,8 @@
 	LAST_BUF = bufp;
 	LAST_USE = TRUE;
 
-	SetNoPadding(SP);
-	(void) baudrate();	/* sets ospeed as a side-effect */
+	SetNoPadding(SP_PARM);
+	(void) NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG);	/* sets ospeed as a side-effect */
 
 /* LINT_PREPRO
 #if 0*/
@@ -177,6 +182,14 @@
     returnCode(errcode);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+tgetent(char *bufp, const char *name)
+{
+    return NCURSES_SP_NAME(tgetent) (CURRENT_SCREEN, bufp, name);
+}
+#endif
+
 /***************************************************************************
  *
  * tgetflag(str)
@@ -187,7 +200,7 @@
  ***************************************************************************/
 
 NCURSES_EXPORT(int)
-tgetflag(NCURSES_CONST char *id)
+NCURSES_SP_NAME(tgetflag) (NCURSES_SP_DCLx NCURSES_CONST char *id)
 {
     unsigned i;
 
@@ -205,6 +218,14 @@
     returnCode(0);		/* Solaris does this */
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+tgetflag(NCURSES_CONST char *id)
+{
+    return NCURSES_SP_NAME(tgetflag) (CURRENT_SCREEN, id);
+}
+#endif
+
 /***************************************************************************
  *
  * tgetnum(str)
@@ -215,7 +236,7 @@
  ***************************************************************************/
 
 NCURSES_EXPORT(int)
-tgetnum(NCURSES_CONST char *id)
+NCURSES_SP_NAME(tgetnum) (NCURSES_SP_DCLx NCURSES_CONST char *id)
 {
     unsigned i;
 
@@ -234,6 +255,14 @@
     returnCode(ABSENT_NUMERIC);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+tgetnum(NCURSES_CONST char *id)
+{
+    return NCURSES_SP_NAME(tgetnum) (CURRENT_SCREEN, id);
+}
+#endif
+
 /***************************************************************************
  *
  * tgetstr(str, area)
@@ -244,7 +273,7 @@
  ***************************************************************************/
 
 NCURSES_EXPORT(char *)
-tgetstr(NCURSES_CONST char *id, char **area)
+NCURSES_SP_NAME(tgetstr) (NCURSES_SP_DCLx NCURSES_CONST char *id, char **area)
 {
     unsigned i;
     char *result = NULL;
@@ -278,6 +307,14 @@
     returnPtr(result);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(char *)
+tgetstr(NCURSES_CONST char *id, char **area)
+{
+    return NCURSES_SP_NAME(tgetstr) (CURRENT_SCREEN, id, area);
+}
+#endif
+
 #if NO_LEAKS
 NCURSES_EXPORT(void)
 _nc_tgetent_leaks(void)
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_termname.c ncurses-5.7/ncurses/tinfo/lib_termname.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_termname.c	2003-12-27 10:23:01.000000000 -0800
+++ ncurses-5.7/ncurses/tinfo/lib_termname.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2009 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            *
@@ -28,17 +28,31 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_termname.c,v 1.8 2003/12/27 18:23:01 tom Exp $")
+MODULE_ID("$Id: lib_termname.c,v 1.11 2009/02/21 16:37:12 tom Exp $")
 
 NCURSES_EXPORT(char *)
-termname(void)
+NCURSES_SP_NAME(termname) (NCURSES_SP_DCL0)
 {
     char *name = 0;
 
-    T((T_CALLED("termname()")));
+    T((T_CALLED("termname(%p)"), SP_PARM));
 
+#if NCURSES_SP_FUNCS
+    if (TerminalOf(SP_PARM) != 0) {
+	name = TerminalOf(SP_PARM)->_termname;
+    }
+#else
     if (cur_term != 0)
 	name = cur_term->_termname;
+#endif
 
     returnPtr(name);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(char *)
+termname(void)
+{
+    return NCURSES_SP_NAME(termname) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_ti.c ncurses-5.7/ncurses/tinfo/lib_ti.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_ti.c	2003-05-24 14:10:28.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_ti.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2003,2009 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            *
@@ -36,17 +36,17 @@
 #include <term_entry.h>
 #include <tic.h>
 
-MODULE_ID("$Id: lib_ti.c,v 1.23 2003/05/24 21:10:28 tom Exp $")
+MODULE_ID("$Id: lib_ti.c,v 1.24 2009/04/18 17:37:50 tom Exp $")
 
 NCURSES_EXPORT(int)
-tigetflag(NCURSES_CONST char *str)
+NCURSES_SP_NAME(tigetflag) (NCURSES_SP_DCLx NCURSES_CONST char *str)
 {
     unsigned i;
 
-    T((T_CALLED("tigetflag(%s)"), str));
+    T((T_CALLED("tigetflag(%p, %s)"), SP_PARM, str));
 
-    if (cur_term != 0) {
-	TERMTYPE *tp = &(cur_term->type);
+    if (HasTInfoTerminal(SP_PARM)) {
+	TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
 	for_each_boolean(i, tp) {
 	    const char *capname = ExtBoolname(tp, i, boolnames);
 	    if (!strcmp(str, capname)) {
@@ -59,15 +59,23 @@
     returnCode(ABSENT_BOOLEAN);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-tigetnum(NCURSES_CONST char *str)
+tigetflag(NCURSES_CONST char *str)
+{
+    return NCURSES_SP_NAME(tigetflag) (CURRENT_SCREEN, str);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(tigetnum) (NCURSES_SP_DCLx NCURSES_CONST char *str)
 {
     unsigned i;
 
-    T((T_CALLED("tigetnum(%s)"), str));
+    T((T_CALLED("tigetnum(%p, %s)"), SP_PARM, str));
 
-    if (cur_term != 0) {
-	TERMTYPE *tp = &(cur_term->type);
+    if (HasTInfoTerminal(SP_PARM)) {
+	TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
 	for_each_number(i, tp) {
 	    const char *capname = ExtNumname(tp, i, numnames);
 	    if (!strcmp(str, capname)) {
@@ -81,15 +89,23 @@
     returnCode(CANCELLED_NUMERIC);	/* Solaris returns a -1 instead */
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+tigetnum(NCURSES_CONST char *str)
+{
+    return NCURSES_SP_NAME(tigetnum) (CURRENT_SCREEN, str);
+}
+#endif
+
 NCURSES_EXPORT(char *)
-tigetstr(NCURSES_CONST char *str)
+NCURSES_SP_NAME(tigetstr) (NCURSES_SP_DCLx NCURSES_CONST char *str)
 {
     unsigned i;
 
-    T((T_CALLED("tigetstr(%s)"), str));
+    T((T_CALLED("tigetstr(%p, %s)"), SP_PARM, str));
 
-    if (cur_term != 0) {
-	TERMTYPE *tp = &(cur_term->type);
+    if (HasTInfoTerminal(SP_PARM)) {
+	TERMTYPE *tp = &(TerminalOf(SP_PARM)->type);
 	for_each_string(i, tp) {
 	    const char *capname = ExtStrname(tp, i, strnames);
 	    if (!strcmp(str, capname)) {
@@ -101,3 +117,11 @@
 
     returnPtr(CANCELLED_STRING);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(char *)
+tigetstr(NCURSES_CONST char *str)
+{
+    return NCURSES_SP_NAME(tigetstr) (CURRENT_SCREEN, str);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_tparm.c ncurses-5.7/ncurses/tinfo/lib_tparm.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_tparm.c	2008-08-16 12:22:55.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_tparm.c	2009-06-05 14:01:16.000000000 -0700
@@ -40,10 +40,9 @@
 #include <curses.priv.h>
 
 #include <ctype.h>
-#include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: lib_tparm.c,v 1.76 2008/08/16 19:22:55 tom Exp $")
+MODULE_ID("$Id: lib_tparm.c,v 1.77 2008/11/16 00:19:59 juergen Exp $")
 
 /*
  *	char *
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_tputs.c ncurses-5.7/ncurses/tinfo/lib_tputs.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_tputs.c	2008-06-28 06:12:15.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_tputs.c	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -41,12 +42,16 @@
  */
 
 #include <curses.priv.h>
+
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
+
 #include <ctype.h>
-#include <term.h>		/* padding_baud_rate, xon_xoff */
 #include <termcap.h>		/* ospeed */
 #include <tic.h>
 
-MODULE_ID("$Id: lib_tputs.c,v 1.66 2008/06/28 13:12:15 tom Exp $")
+MODULE_ID("$Id: lib_tputs.c,v 1.74 2009/05/23 23:56:23 tom Exp $")
 
 NCURSES_EXPORT_VAR(char) PC = 0;              /* used by termcap library */
 NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0;        /* used by termcap library */
@@ -69,62 +74,122 @@
 }
 #endif
 
-static int (*my_outch) (int c) = _nc_outch;
+#if NCURSES_SP_FUNCS
+#define my_outch SP_PARM->_outch
+#else
+static NCURSES_SP_OUTC my_outch = NCURSES_SP_NAME(_nc_outch);
+#endif
 
 NCURSES_EXPORT(int)
-delay_output(int ms)
+NCURSES_SP_NAME(delay_output) (NCURSES_SP_DCLx int ms)
 {
-    T((T_CALLED("delay_output(%d)"), ms));
+    T((T_CALLED("delay_output(%p,%d)"), SP_PARM, ms));
 
     if (no_pad_char) {
-	_nc_flush();
+	NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
 	napms(ms);
     } else {
 	register int nullcount;
 
 	nullcount = (ms * _nc_baudrate(ospeed)) / (BAUDBYTE * 1000);
 	for (_nc_nulls_sent += nullcount; nullcount > 0; nullcount--)
-	    my_outch(PC);
-	if (my_outch == _nc_outch)
-	    _nc_flush();
+	    my_outch(NCURSES_SP_ARGx PC);
+	if (my_outch == NCURSES_SP_NAME(_nc_outch))
+	    NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
     }
 
     returnCode(OK);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+delay_output(int ms)
+{
+    return NCURSES_SP_NAME(delay_output) (CURRENT_SCREEN, ms);
+}
+#endif
+
+NCURSES_EXPORT(void)
+NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_DCL0)
+{
+    (void) fflush(NC_OUTPUT(SP_PARM));
+}
+
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(void)
 _nc_flush(void)
 {
-    (void) fflush(NC_OUTPUT);
+    NCURSES_SP_NAME(_nc_flush) (CURRENT_SCREEN);
 }
+#endif
 
 NCURSES_EXPORT(int)
-_nc_outch(int ch)
+NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_DCLx int ch)
 {
     COUNT_OUTCHARS(1);
 
-    if (SP != 0
-	&& SP->_cleanup) {
+    if (SP_PARM != 0
+	&& SP_PARM->_cleanup) {
 	char tmp = ch;
 	/*
 	 * POSIX says write() is safe in a signal handler, but the
 	 * buffered I/O is not.
 	 */
-	write(fileno(NC_OUTPUT), &tmp, 1);
+	write(fileno(NC_OUTPUT(SP_PARM)), &tmp, 1);
     } else {
-	putc(ch, NC_OUTPUT);
+	putc(ch, NC_OUTPUT(SP_PARM));
     }
     return OK;
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+_nc_outch(int ch)
+{
+    return NCURSES_SP_NAME(_nc_outch) (CURRENT_SCREEN, ch);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(putp) (NCURSES_SP_DCLx const char *string)
+{
+    return NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				   string, 1, NCURSES_SP_NAME(_nc_outch));
+}
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_DCLx
+			   const char *name GCC_UNUSED,
+			   const char *string)
+{
+    int rc = ERR;
+
+    if (string != 0) {
+	TPUTS_TRACE(name);
+	rc = NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx string);
+    }
+    return rc;
+}
+
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
 putp(const char *string)
 {
-    return tputs(string, 1, _nc_outch);
+    return NCURSES_SP_NAME(putp) (CURRENT_SCREEN, string);
 }
 
 NCURSES_EXPORT(int)
-tputs(const char *string, int affcnt, int (*outc) (int))
+_nc_putp(const char *name, const char *string)
+{
+    return NCURSES_SP_NAME(_nc_putp) (CURRENT_SCREEN, name, string);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(tputs) (NCURSES_SP_DCLx
+			const char *string,
+			int affcnt,
+			NCURSES_SP_OUTC outc)
 {
     bool always_delay;
     bool normal_delay;
@@ -137,7 +202,7 @@
     char addrbuf[32];
 
     if (USE_TRACEF(TRACE_TPUTS)) {
-	if (outc == _nc_outch)
+	if (outc == NCURSES_SP_NAME(_nc_outch))
 	    (void) strcpy(addrbuf, "_nc_outch");
 	else
 	    (void) sprintf(addrbuf, "%p", outc);
@@ -164,7 +229,7 @@
 	    !xon_xoff
 	    && padding_baud_rate
 #if NCURSES_NO_PADDING
-	    && !GetNoPadding(SP)
+	    && !GetNoPadding(SP_PARM)
 #endif
 	    && (_nc_baudrate(ospeed) >= padding_baud_rate);
     }
@@ -201,21 +266,21 @@
     my_outch = outc;		/* redirect delay_output() */
     while (*string) {
 	if (*string != '$')
-	    (*outc) (*string);
+	    (*outc) (NCURSES_SP_ARGx *string);
 	else {
 	    string++;
 	    if (*string != '<') {
-		(*outc) ('$');
+		(*outc) (NCURSES_SP_ARGx '$');
 		if (*string)
-		    (*outc) (*string);
+		    (*outc) (NCURSES_SP_ARGx *string);
 	    } else {
 		bool mandatory;
 
 		string++;
 		if ((!isdigit(UChar(*string)) && *string != '.')
 		    || !strchr(string, '>')) {
-		    (*outc) ('$');
-		    (*outc) ('<');
+		    (*outc) (NCURSES_SP_ARGx '$');
+		    (*outc) (NCURSES_SP_ARGx '<');
 		    continue;
 		}
 
@@ -250,7 +315,7 @@
 		    && (always_delay
 			|| normal_delay
 			|| mandatory))
-		    delay_output(number / 10);
+		    NCURSES_SP_NAME(delay_output) (NCURSES_SP_ARGx number / 10);
 
 	    }			/* endelse (*string == '<') */
 	}			/* endelse (*string == '$') */
@@ -270,6 +335,25 @@
 	delay_output(trailpad / 10);
 #endif /* BSD_TPUTS */
 
-    my_outch = _nc_outch;
+    my_outch = NCURSES_SP_NAME(_nc_outch);
     return OK;
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+_nc_outc_wrapper(SCREEN *sp, int c)
+{
+    if (0 == sp) {
+	return (ERR);
+    } else {
+	return sp->jump(c);
+    }
+}
+
+NCURSES_EXPORT(int)
+tputs(const char *string, int affcnt, int (*outc) (int))
+{
+    SetSafeOutcWrapper(outc);
+    return NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx string, affcnt, _nc_outc_wrapper);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/lib_ttyflags.c ncurses-5.7/ncurses/tinfo/lib_ttyflags.c
--- ncurses-5.7.orig/ncurses/tinfo/lib_ttyflags.c	2008-08-03 15:10:44.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/lib_ttyflags.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -38,10 +38,14 @@
 #include <curses.priv.h>
 #include <term.h>		/* cur_term */
 
-MODULE_ID("$Id: lib_ttyflags.c,v 1.18 2008/08/03 22:10:44 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_ttyflags.c,v 1.24 2009/05/10 00:48:29 tom Exp $")
 
 NCURSES_EXPORT(int)
-_nc_get_tty_mode(TTY * buf)
+NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_DCLx TTY * buf)
 {
     int result = OK;
 
@@ -71,8 +75,16 @@
     return (result);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-_nc_set_tty_mode(TTY * buf)
+_nc_get_tty_mode(TTY * buf)
+{
+    return NCURSES_SP_NAME(_nc_get_tty_mode) (CURRENT_SCREEN, buf);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_DCLx TTY * buf)
 {
     int result = OK;
 
@@ -86,8 +98,8 @@
 		if (SET_TTY(cur_term->Filedes, buf) != 0) {
 		    if (errno == EINTR)
 			continue;
-		    if ((errno == ENOTTY) && (SP != 0))
-			SP->_notty = TRUE;
+		    if ((errno == ENOTTY) && (SP_PARM != 0))
+			SP_PARM->_notty = TRUE;
 		    result = ERR;
 		}
 		break;
@@ -100,8 +112,16 @@
     return (result);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-def_shell_mode(void)
+_nc_set_tty_mode(TTY * buf)
+{
+    return NCURSES_SP_NAME(_nc_set_tty_mode) (CURRENT_SCREEN, buf);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_DCL0)
 {
     int rc = ERR;
 
@@ -125,8 +145,16 @@
     returnCode(rc);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-def_prog_mode(void)
+def_shell_mode(void)
+{
+    return NCURSES_SP_NAME(def_shell_mode) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_DCL0)
 {
     int rc = ERR;
 
@@ -148,17 +176,25 @@
     returnCode(rc);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-reset_prog_mode(void)
+def_prog_mode(void)
+{
+    return NCURSES_SP_NAME(def_prog_mode) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_DCL0)
 {
     T((T_CALLED("reset_prog_mode()")));
 
     if (cur_term != 0) {
 	if (_nc_set_tty_mode(&cur_term->Nttyb) == OK) {
-	    if (SP) {
-		if (SP->_keypad_on)
-		    _nc_keypad(SP, TRUE);
-		NC_BUFFERED(TRUE);
+	    if (SP_PARM) {
+		if (SP_PARM->_keypad_on)
+		    _nc_keypad(SP_PARM, TRUE);
+		NC_BUFFERED(SP_PARM, TRUE);
 	    }
 	    returnCode(OK);
 	}
@@ -166,22 +202,38 @@
     returnCode(ERR);
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(int)
-reset_shell_mode(void)
+reset_prog_mode(void)
+{
+    return NCURSES_SP_NAME(reset_prog_mode) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(reset_shell_mode) (NCURSES_SP_DCL0)
 {
     T((T_CALLED("reset_shell_mode()")));
 
     if (cur_term != 0) {
-	if (SP) {
-	    _nc_keypad(SP, FALSE);
+	if (SP_PARM) {
+	    _nc_keypad(SP_PARM, FALSE);
 	    _nc_flush();
-	    NC_BUFFERED(FALSE);
+	    NC_BUFFERED(SP_PARM, FALSE);
 	}
 	returnCode(_nc_set_tty_mode(&cur_term->Ottyb));
     }
     returnCode(ERR);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+reset_shell_mode(void)
+{
+    return NCURSES_SP_NAME(reset_shell_mode) (CURRENT_SCREEN);
+}
+#endif
+
 static TTY *
 saved_tty(void)
 {
diff -Naur ncurses-5.7.orig/ncurses/tinfo/make_keys.c ncurses-5.7/ncurses/tinfo/make_keys.c
--- ncurses-5.7.orig/ncurses/tinfo/make_keys.c	2008-08-03 14:57:22.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/make_keys.c	2009-06-05 14:01:16.000000000 -0700
@@ -39,16 +39,16 @@
 #define USE_TERMLIB 1
 #include <curses.priv.h>
 
-MODULE_ID("$Id: make_keys.c,v 1.14 2008/08/03 21:57:22 tom Exp $")
+MODULE_ID("$Id: make_keys.c,v 1.15 2008/11/16 00:19:59 juergen Exp $")
 
 #include <names.c>
 
 #define UNKNOWN (SIZEOF(strnames) + SIZEOF(strfnames))
 
-static size_t
+static unsigned
 lookup(const char *name)
 {
-    size_t n;
+    unsigned n;
     bool found = FALSE;
     for (n = 0; strnames[n] != 0; n++) {
 	if (!strcmp(name, strnames[n])) {
@@ -73,7 +73,7 @@
     char buffer[BUFSIZ];
     char from[256];
     char to[256];
-    int maxlen = 16;
+    unsigned maxlen = 16;
     int scanned;
 
     while (fgets(buffer, sizeof(buffer), ifp) != 0) {
@@ -85,10 +85,10 @@
 
 	scanned = sscanf(buffer, "%255s %255s", to, from);
 	if (scanned == 2) {
-	    int code = lookup(from);
+	    unsigned code = lookup(from);
 	    if (code == UNKNOWN)
 		continue;
-	    if ((int) strlen(from) > maxlen)
+	    if (strlen(from) > maxlen)
 		maxlen = strlen(from);
 	    fprintf(ofp, "\t{ %4d, %-*.*s },\t/* %s */\n",
 		    code,
diff -Naur ncurses-5.7.orig/ncurses/tinfo/MKcodes.awk ncurses-5.7/ncurses/tinfo/MKcodes.awk
--- ncurses-5.7.orig/ncurses/tinfo/MKcodes.awk	2008-06-28 16:13:25.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/MKcodes.awk	2009-06-05 14:01:54.000000000 -0700
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2008,2009 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: MKcodes.awk,v 1.5 2008/06/28 23:13:25 tom Exp $
+# $Id: MKcodes.awk,v 1.8 2009/05/23 19:09:54 tom Exp $
 function large_item(value) {
 	result = sprintf("%d,", offset);
 	offset = offset + length(value) + 1;
@@ -117,28 +117,39 @@
 			print  "		if ((*value = typeCalloc(NCURSES_CONST char *, size + 1)) != 0) {"
 			print  "			unsigned n;"
 			print  "			for (n = 0; n < size; ++n) {"
-			print  "				(*value)[n] = _nc_code_blob + offsets[n];"
+			print  "				(*value)[n] = (NCURSES_CONST char *) _nc_code_blob + offsets[n];"
 			print  "			}"
 			print  "		}"
 			print  "	}"
 			print  "	return *value;"
 			print  "}"
 			print  ""
-			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
+			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API NCURSES_PUBLIC_VAR(it)(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
 		} else {
 			print  "#define DCL(it) static IT data##it[]"
 			print  ""
 			print_strings("boolcodes", small_boolcodes);
 			print_strings("numcodes", small_numcodes);
 			print_strings("strcodes", small_strcodes);
-			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }"
+			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API NCURSES_PUBLIC_VAR(it)(void) { return data##it; }"
 		}
 		print  ""
+		print  "/* remove public definition which conflicts with FIX() */"
+		print  "#undef boolcodes"
+		print  "#undef numcodes"
+		print  "#undef strcodes"
+		print  ""
+		print  "/* add local definition */"
 		print  "FIX(boolcodes)"
 		print  "FIX(numcodes)"
 		print  "FIX(strcodes)"
 		print  ""
+		print  "/* restore the public definition */"
+		print  ""
 		print  "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
+		print  "#define boolcodes  NCURSES_PUBLIC_VAR(boolcodes())"
+		print  "#define numcodes   NCURSES_PUBLIC_VAR(numcodes())"
+		print  "#define strcodes   NCURSES_PUBLIC_VAR(strcodes())"
 		print  ""
 		print  "#if NO_LEAKS"
 		print  "NCURSES_EXPORT(void)"
diff -Naur ncurses-5.7.orig/ncurses/tinfo/MKfallback.sh ncurses-5.7/ncurses/tinfo/MKfallback.sh
--- ncurses-5.7.orig/ncurses/tinfo/MKfallback.sh	2006-07-15 09:54:20.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/MKfallback.sh	2009-06-05 14:01:44.000000000 -0700
@@ -1,6 +1,6 @@
 #!/bin/sh
 ##############################################################################
-# Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2008,2009 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"), #
@@ -26,7 +26,7 @@
 # use or other dealings in this Software without prior written               #
 # authorization.                                                             #
 ##############################################################################
-# $Id: MKfallback.sh,v 1.13 2006/07/15 16:54:20 tom Exp $
+# $Id: MKfallback.sh,v 1.14 2009/04/18 21:01:38 tom Exp $
 #
 # MKfallback.sh -- create fallback table for entry reads
 #
@@ -63,7 +63,6 @@
  */
 
 #include <curses.priv.h>
-#include <term.h>
 
 EOF
 
diff -Naur ncurses-5.7.orig/ncurses/tinfo/MKnames.awk ncurses-5.7/ncurses/tinfo/MKnames.awk
--- ncurses-5.7.orig/ncurses/tinfo/MKnames.awk	2008-10-11 14:07:56.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/MKnames.awk	2009-06-05 14:01:24.000000000 -0700
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2007,2008 Free Software Foundation, Inc.                     #
+# Copyright (c) 2007-2008,2009 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: MKnames.awk,v 1.20 2008/10/11 21:07:56 tom Exp $
+# $Id: MKnames.awk,v 1.22 2009/03/21 21:03:39 tom Exp $
 function large_item(value) {
 	result = sprintf("%d,", offset);
 	offset = offset + length(value) + 1;
@@ -107,8 +107,6 @@
 		print  ""
 		print  "#if BROKEN_LINKER || USE_REENTRANT"
 		print  ""
-		print  "#include <term.h>"
-		print  ""
 		if (bigstrings) {
 			printf "static const char _nc_name_blob[] = \n"
 			printf "%s;\n", bigstr;
@@ -133,7 +131,7 @@
 			print  "	return *value;"
 			print  "}"
 			print  ""
-			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
+			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API NCURSES_PUBLIC_VAR(it)(void) { return alloc_array(&ptr_##it, _nc_offset_##it, SIZEOF(_nc_offset_##it)); }"
 		} else {
 			print  "#define DCL(it) static IT data##it[]"
 			print  ""
@@ -143,9 +141,18 @@
 			print_strings("numfnames", small_numfnames);
 			print_strings("strnames", small_strnames);
 			print_strings("strfnames", small_strfnames);
-			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }"
+			print  "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API NCURSES_PUBLIC_VAR(it)(void) { return data##it; }"
 		}
 		print  ""
+		print  "/* remove public definition which conflicts with FIX() */"
+		print  "#undef boolnames"
+		print  "#undef boolfnames"
+		print  "#undef numnames"
+		print  "#undef numfnames"
+		print  "#undef strnames"
+		print  "#undef strfnames"
+		print  ""
+		print  "/* add local definition */"
 		print  "FIX(boolnames)"
 		print  "FIX(boolfnames)"
 		print  "FIX(numnames)"
@@ -153,6 +160,13 @@
 		print  "FIX(strnames)"
 		print  "FIX(strfnames)"
 		print  ""
+		print  "/* restore the public definition */"
+		print  "#define boolnames  NCURSES_PUBLIC_VAR(boolnames())"
+		print  "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
+		print  "#define numnames   NCURSES_PUBLIC_VAR(numnames())"
+		print  "#define numfnames  NCURSES_PUBLIC_VAR(numfnames())"
+		print  "#define strnames   NCURSES_PUBLIC_VAR(strnames())"
+		print  "#define strfnames  NCURSES_PUBLIC_VAR(strfnames())"
 		print  ""
 		print  "#define FREE_FIX(it) if (ptr_##it) { FreeAndNull(ptr_##it); }"
 		print  ""
diff -Naur ncurses-5.7.orig/ncurses/tinfo/name_match.c ncurses-5.7/ncurses/tinfo/name_match.c
--- ncurses-5.7.orig/ncurses/tinfo/name_match.c	2008-08-03 12:49:33.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/name_match.c	2009-06-05 14:01:16.000000000 -0700
@@ -31,10 +31,9 @@
  ****************************************************************************/
 
 #include <curses.priv.h>
-#include <term.h>
 #include <tic.h>
 
-MODULE_ID("$Id: name_match.c,v 1.17 2008/08/03 19:49:33 tom Exp $")
+MODULE_ID("$Id: name_match.c,v 1.18 2008/11/16 00:19:59 juergen Exp $")
 
 /*
  *	_nc_first_name(char *names)
diff -Naur ncurses-5.7.orig/ncurses/tinfo/parse_entry.c ncurses-5.7/ncurses/tinfo/parse_entry.c
--- ncurses-5.7.orig/ncurses/tinfo/parse_entry.c	2008-08-16 14:52:03.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/parse_entry.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -48,7 +48,7 @@
 #include <tic.h>
 #include <term_entry.h>
 
-MODULE_ID("$Id: parse_entry.c,v 1.69 2008/08/16 21:52:03 tom Exp $")
+MODULE_ID("$Id: parse_entry.c,v 1.70 2009/04/18 21:01:38 tom Exp $")
 
 #ifdef LINT
 static short const parametrized[] =
@@ -84,13 +84,13 @@
     case NUMBER:
 	first = tp->ext_Booleans;
 	last = tp->ext_Numbers + first;
-	offset = tp->ext_Booleans + tp->ext_Numbers;
+	offset = (unsigned) (tp->ext_Booleans + tp->ext_Numbers);
 	tindex = tp->num_Numbers;
 	break;
     case STRING:
-	first = tp->ext_Booleans + tp->ext_Numbers;
+	first = (unsigned) (tp->ext_Booleans + tp->ext_Numbers);
 	last = tp->ext_Strings + first;
-	offset = tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings;
+	offset = (unsigned) (tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings);
 	tindex = tp->num_Strings;
 	break;
     case CANCEL:
@@ -137,27 +137,31 @@
 	    break;
 	}
     }
+
+#define for_each_value(max) \
+	for (last = (unsigned) (max - 1); last > tindex; last--)
+
     if (!found) {
 	switch (token_type) {
 	case BOOLEAN:
-	    tp->ext_Booleans += 1;
-	    tp->num_Booleans += 1;
+	    tp->ext_Booleans++;
+	    tp->num_Booleans++;
 	    tp->Booleans = typeRealloc(NCURSES_SBOOL, tp->num_Booleans, tp->Booleans);
-	    for (last = tp->num_Booleans - 1; last > tindex; last--)
+	    for_each_value(tp->num_Booleans)
 		tp->Booleans[last] = tp->Booleans[last - 1];
 	    break;
 	case NUMBER:
-	    tp->ext_Numbers += 1;
-	    tp->num_Numbers += 1;
+	    tp->ext_Numbers++;
+	    tp->num_Numbers++;
 	    tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers);
-	    for (last = tp->num_Numbers - 1; last > tindex; last--)
+	    for_each_value(tp->num_Numbers)
 		tp->Numbers[last] = tp->Numbers[last - 1];
 	    break;
 	case STRING:
-	    tp->ext_Strings += 1;
-	    tp->num_Strings += 1;
+	    tp->ext_Strings++;
+	    tp->num_Strings++;
 	    tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings);
-	    for (last = tp->num_Strings - 1; last > tindex; last--)
+	    for_each_value(tp->num_Strings)
 		tp->Strings[last] = tp->Strings[last - 1];
 	    break;
 	}
@@ -170,7 +174,7 @@
 
     temp.nte_name = tp->ext_Names[offset];
     temp.nte_type = token_type;
-    temp.nte_index = tindex;
+    temp.nte_index = (short) tindex;
     temp.nte_link = -1;
 
     return &temp;
@@ -444,7 +448,7 @@
 
 	    case NUMBER:
 		entryp->tterm.Numbers[entry_ptr->nte_index] =
-		    _nc_curr_token.tk_valnumber;
+		    (short) _nc_curr_token.tk_valnumber;
 		break;
 
 	    case STRING:
@@ -788,7 +792,7 @@
 	for (base = other_non_function_keys;
 	     (cp = strchr(base, ',')) != 0;
 	     base = cp + 1) {
-	    size_t len = cp - base;
+	    size_t len = (unsigned) (cp - base);
 
 	    for (ap = ko_xlate; ap->from; ap++) {
 		if (len == strlen(ap->from)
diff -Naur ncurses-5.7.orig/ncurses/tinfo/setbuf.c ncurses-5.7/ncurses/tinfo/setbuf.c
--- ncurses-5.7.orig/ncurses/tinfo/setbuf.c	2007-05-12 12:04:02.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/setbuf.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -29,6 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2008                    *
  ****************************************************************************/
 
 /*
@@ -40,7 +42,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: setbuf.c,v 1.13 2007/05/12 19:04:02 tom Exp $")
+MODULE_ID("$Id: setbuf.c,v 1.14 2009/05/09 23:09:00 tom Exp $")
 
 /*
  * If the output file descriptor is connected to a tty (the typical case) it
@@ -98,11 +100,11 @@
  * buffer.  So we disable this by default (there may yet be a workaround).
  */
 NCURSES_EXPORT(void)
-_nc_set_buffer(FILE *ofp, bool buffered)
+NCURSES_SP_NAME(_nc_set_buffer) (NCURSES_SP_DCLx FILE *ofp, bool buffered)
 {
     /* optional optimization hack -- do before any output to ofp */
 #if HAVE_SETVBUF || HAVE_SETBUFFER
-    if (SP->_buffered != buffered) {
+    if (SP_PARM->_buffered != buffered) {
 	unsigned buf_len;
 	char *buf_ptr;
 
@@ -115,10 +117,10 @@
 #endif
 	if (buffered != 0) {
 	    buf_len = min(LINES * (COLS + 6), 2800);
-	    if ((buf_ptr = SP->_setbuf) == 0) {
+	    if ((buf_ptr = SP_PARM->_setbuf) == 0) {
 		if ((buf_ptr = typeMalloc(char, buf_len)) == NULL)
 		      return;
-		SP->_setbuf = buf_ptr;
+		SP_PARM->_setbuf = buf_ptr;
 		/* Don't try to free this! */
 	    }
 #if !USE_SETBUF_0
@@ -144,7 +146,15 @@
 	(void) setbuffer(ofp, buf_ptr, (int) buf_len);
 #endif
 
-	SP->_buffered = buffered;
+	SP_PARM->_buffered = buffered;
     }
 #endif /* HAVE_SETVBUF || HAVE_SETBUFFER */
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_set_buffer(FILE *ofp, bool buffered)
+{
+    return NCURSES_SP_NAME(_nc_set_buffer) (CURRENT_SCREEN, ofp, buffered);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tinfo/use_screen.c ncurses-5.7/ncurses/tinfo/use_screen.c
--- ncurses-5.7.orig/ncurses/tinfo/use_screen.c	2008-06-07 12:16:56.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/use_screen.c	2009-06-05 14:01:16.000000000 -0700
@@ -32,7 +32,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: use_screen.c,v 1.6 2008/06/07 19:16:56 tom Exp $")
+MODULE_ID("$Id: use_screen.c,v 1.7 2008/11/16 00:19:59 juergen Exp $")
 
 NCURSES_EXPORT(int)
 use_screen(SCREEN *screen, NCURSES_SCREEN_CB func, void *data)
@@ -47,7 +47,7 @@
      * recurred through this point, return an error if so.
      */
     _nc_lock_global(curses);
-    save_SP = SP;
+    save_SP = CURRENT_SCREEN;
     set_term(screen);
 
     code = func(screen, data);
diff -Naur ncurses-5.7.orig/ncurses/tinfo/write_entry.c ncurses-5.7/ncurses/tinfo/write_entry.c
--- ncurses-5.7.orig/ncurses/tinfo/write_entry.c	2008-08-03 12:24:00.000000000 -0700
+++ ncurses-5.7/ncurses/tinfo/write_entry.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -54,7 +54,7 @@
 #define TRACE_OUT(p)		/*nothing */
 #endif
 
-MODULE_ID("$Id: write_entry.c,v 1.72 2008/08/03 19:24:00 tom Exp $")
+MODULE_ID("$Id: write_entry.c,v 1.73 2009/04/18 21:01:38 tom Exp $")
 
 static int total_written;
 
@@ -171,7 +171,11 @@
 	struct stat statbuf;
 
 	if ((rc = stat(path, &statbuf)) < 0) {
-	    rc = mkdir(path, 0777);
+	    rc = mkdir(path
+#if !defined(__MINGW32__)
+		       ,0777
+#endif
+		);
 	} else if (_nc_access(path, R_OK | W_OK | X_OK) < 0) {
 	    rc = -1;		/* permission denied */
 	} else if (!(S_ISDIR(statbuf.st_mode))) {
@@ -338,6 +342,7 @@
 
 	    while (*other_names != '\0') {
 		ptr = other_names++;
+		assert(ptr < buffer + sizeof(buffer) - 1);
 		while (*other_names != '|' && *other_names != '\0')
 		    other_names++;
 
@@ -385,7 +390,6 @@
     }
     while (*other_names != '\0') {
 	ptr = other_names++;
-	assert(ptr < buffer + sizeof(buffer) - 1);
 	while (*other_names != '|' && *other_names != '\0')
 	    other_names++;
 
@@ -468,18 +472,18 @@
 	   unsigned want,
 	   unsigned size)
 {
-    int have = (limit - *offset);
+    unsigned have = (limit - *offset);
 
     want *= size;
     if (have > 0) {
-	if ((int) want > have)
+	if (want > have)
 	    want = have;
 	memcpy(dst + *offset, src, want);
 	*offset += want;
     } else {
 	want = 0;
     }
-    return (int) (want / size);
+    return (want / size);
 }
 
 #define Write(buf, size, count) fake_write(buffer, offset, limit, (char *) buf, count, size)
@@ -487,14 +491,15 @@
 #undef LITTLE_ENDIAN		/* BSD/OS defines this as a feature macro */
 #define HI(x)			((x) / 256)
 #define LO(x)			((x) % 256)
-#define LITTLE_ENDIAN(p, x)	(p)[0] = LO(x), (p)[1] = HI(x)
+#define LITTLE_ENDIAN(p, x)	(p)[0] = (unsigned char)LO(x),  \
+                                (p)[1] = (unsigned char)HI(x)
 
 #define WRITE_STRING(str) (Write(str, sizeof(char), strlen(str) + 1) == strlen(str) + 1)
 
 static int
 compute_offsets(char **Strings, unsigned strmax, short *offsets)
 {
-    size_t nextfree = 0;
+    int nextfree = 0;
     unsigned i;
 
     for (i = 0; i < strmax; i++) {
@@ -503,8 +508,8 @@
 	} else if (Strings[i] == CANCELLED_STRING) {
 	    offsets[i] = -2;
 	} else {
-	    offsets[i] = nextfree;
-	    nextfree += strlen(Strings[i]) + 1;
+	    offsets[i] = (short) nextfree;
+	    nextfree += (int) strlen(Strings[i]) + 1;
 	    TRACE_OUT(("put Strings[%d]=%s(%d)", (int) i,
 		       _nc_visbuf(Strings[i]), (int) nextfree));
 	}
@@ -536,8 +541,8 @@
 static unsigned
 extended_Booleans(TERMTYPE *tp)
 {
-    unsigned short result = 0;
-    unsigned short i;
+    unsigned result = 0;
+    unsigned i;
 
     for (i = 0; i < tp->ext_Booleans; ++i) {
 	if (tp->Booleans[BOOLCOUNT + i] == TRUE)
@@ -549,8 +554,8 @@
 static unsigned
 extended_Numbers(TERMTYPE *tp)
 {
-    unsigned short result = 0;
-    unsigned short i;
+    unsigned result = 0;
+    unsigned i;
 
     for (i = 0; i < tp->ext_Numbers; ++i) {
 	if (tp->Numbers[NUMCOUNT + i] != ABSENT_NUMERIC)
@@ -597,7 +602,7 @@
     size_t namelen, boolmax, nummax, strmax;
     char zero = '\0';
     size_t i;
-    short nextfree;
+    int nextfree;
     short offsets[MAX_ENTRY_SIZE / 2];
     unsigned char buf[MAX_ENTRY_SIZE];
     unsigned last_bool = BOOLWRITE;
@@ -690,7 +695,7 @@
 
 #if NCURSES_XNAMES
     if (extended_object(tp)) {
-	unsigned extcnt = NUM_EXT_NAMES(tp);
+	unsigned extcnt = (unsigned) NUM_EXT_NAMES(tp);
 
 	if (even_boundary(nextfree))
 	    return (ERR);
diff -Naur ncurses-5.7.orig/ncurses/trace/lib_traceatr.c ncurses-5.7/ncurses/trace/lib_traceatr.c
--- ncurses-5.7.orig/ncurses/trace/lib_traceatr.c	2008-08-03 09:24:53.000000000 -0700
+++ ncurses-5.7/ncurses/trace/lib_traceatr.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Thomas Dickey                           1996-on                 *
  *     and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                                                 *
  ****************************************************************************/
 
 /*
@@ -37,9 +38,12 @@
  */
 
 #include <curses.priv.h>
-#include <term.h>		/* acs_chars */
 
-MODULE_ID("$Id: lib_traceatr.c,v 1.63 2008/08/03 16:24:53 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_traceatr.c,v 1.66 2009/05/10 00:48:29 tom Exp $")
 
 #define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
 
@@ -186,6 +190,9 @@
 	unsigned int val;
 	const char *name;
     } ALT_NAMES;
+#if NCURSES_SP_FUNCS
+    SCREEN *sp = CURRENT_SCREEN;
+#endif
     static const ALT_NAMES names[] =
     {
 	{'l', "ACS_ULCORNER"},	/* upper left corner */
@@ -228,7 +235,7 @@
     if ((attr & A_ALTCHARSET) && (acs_chars != 0)) {
 	char *cp;
 	char *found = 0;
-	const ALT_NAMES *sp;
+	const ALT_NAMES *strp;
 
 	for (cp = acs_chars; cp[0] && cp[1]; cp += 2) {
 	    if (ChCharOf(cp[1]) == ChCharOf(ch)) {
@@ -239,9 +246,9 @@
 
 	if (found != 0) {
 	    ch = ChCharOf(*found);
-	    for (sp = names; sp->val; sp++)
-		if (sp->val == ch) {
-		    result = sp->name;
+	    for (strp = names; strp->val; strp++)
+		if (strp->val == ch) {
+		    result = strp->name;
 		    break;
 		}
 	}
@@ -260,7 +267,9 @@
 	if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
 	    (void) _nc_trace_bufcat(bufnum, found);
 	} else
-	    (void) _nc_trace_bufcat(bufnum, _nc_tracechar(SP, (int) ChCharOf(ch)));
+	    (void) _nc_trace_bufcat(bufnum,
+				    _nc_tracechar(CURRENT_SCREEN,
+						  (int) ChCharOf(ch)));
 
 	if (ChAttrOf(ch) != A_NORMAL) {
 	    (void) _nc_trace_bufcat(bufnum, " | ");
@@ -320,7 +329,7 @@
 			if (PUTC_ch != L'\0') {
 			    /* it could not be a multibyte sequence */
 			    (void) _nc_trace_bufcat(bufnum,
-						    _nc_tracechar(SP,
+						    _nc_tracechar(CURRENT_SCREEN,
 								  UChar(ch->chars[PUTC_i])));
 			}
 			break;
@@ -329,7 +338,7 @@
 			if (n)
 			    (void) _nc_trace_bufcat(bufnum, ", ");
 			(void) _nc_trace_bufcat(bufnum,
-						_nc_tracechar(SP,
+						_nc_tracechar(CURRENT_SCREEN,
 							      UChar(PUTC_buf[n])));
 		    }
 		}
diff -Naur ncurses-5.7.orig/ncurses/trace/lib_tracebits.c ncurses-5.7/ncurses/trace/lib_tracebits.c
--- ncurses-5.7.orig/ncurses/trace/lib_tracebits.c	2008-08-03 09:09:26.000000000 -0700
+++ ncurses-5.7/ncurses/trace/lib_tracebits.c	2009-06-05 14:01:16.000000000 -0700
@@ -33,9 +33,8 @@
  ****************************************************************************/
 
 #include <curses.priv.h>
-#include <term.h>		/* cur_term */
 
-MODULE_ID("$Id: lib_tracebits.c,v 1.17 2008/08/03 16:09:26 tom Exp $")
+MODULE_ID("$Id: lib_tracebits.c,v 1.18 2008/11/16 00:19:59 juergen Exp $")
 
 #if SVR4_TERMIO && !defined(_POSIX_SOURCE)
 #define _POSIX_SOURCE
diff -Naur ncurses-5.7.orig/ncurses/trace/lib_trace.c ncurses-5.7/ncurses/trace/lib_trace.c
--- ncurses-5.7.orig/ncurses/trace/lib_trace.c	2008-08-23 11:04:29.000000000 -0700
+++ ncurses-5.7/ncurses/trace/lib_trace.c	2009-06-05 14:01:18.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                                                 *
  ****************************************************************************/
 
 /*
@@ -46,7 +47,7 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_trace.c,v 1.71 2008/08/23 18:04:29 tom Exp $")
+MODULE_ID("$Id: lib_trace.c,v 1.72 2009/02/28 20:37:37 tom Exp $")
 
 NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
 
@@ -56,26 +57,26 @@
 NCURSES_EXPORT(const char *)
 NCURSES_PUBLIC_VAR(_nc_tputs_trace) (void)
 {
-    return SP ? SP->_tputs_trace : _nc_prescreen._tputs_trace;
+    return CURRENT_SCREEN ? CURRENT_SCREEN->_tputs_trace : _nc_prescreen._tputs_trace;
 }
 NCURSES_EXPORT(long)
 NCURSES_PUBLIC_VAR(_nc_outchars) (void)
 {
-    return SP ? SP->_outchars : _nc_prescreen._outchars;
+    return CURRENT_SCREEN ? CURRENT_SCREEN->_outchars : _nc_prescreen._outchars;
 }
 NCURSES_EXPORT(void)
 _nc_set_tputs_trace(const char *s)
 {
-    if (SP)
-	SP->_tputs_trace = s;
+    if (CURRENT_SCREEN)
+	CURRENT_SCREEN->_tputs_trace = s;
     else
 	_nc_prescreen._tputs_trace = s;
 }
 NCURSES_EXPORT(void)
 _nc_count_outchars(long increment)
 {
-    if (SP)
-	SP->_outchars += increment;
+    if (CURRENT_SCREEN)
+	CURRENT_SCREEN->_outchars += increment;
     else
 	_nc_prescreen._outchars += increment;
 }
diff -Naur ncurses-5.7.orig/ncurses/trace/lib_tracechr.c ncurses-5.7/ncurses/trace/lib_tracechr.c
--- ncurses-5.7.orig/ncurses/trace/lib_tracechr.c	2008-08-03 08:39:29.000000000 -0700
+++ ncurses-5.7/ncurses/trace/lib_tracechr.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -39,7 +39,7 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_tracechr.c,v 1.19 2008/08/03 15:39:29 tom Exp $")
+MODULE_ID("$Id: lib_tracechr.c,v 1.20 2009/04/18 22:48:29 tom Exp $")
 
 #ifdef TRACE
 
@@ -52,7 +52,7 @@
 		      : _nc_globals.tracechr_buf);
 
     if (ch > KEY_MIN || ch < 0) {
-	name = _nc_keyname(sp, ch);
+	name = safe_keyname(SP_PARM, ch);
 	if (name == 0 || *name == '\0')
 	    name = "NULL";
 	(void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
@@ -64,7 +64,7 @@
 	 */
 	(void) sprintf(MyBuffer, "%#03o", ch);
     } else {
-	name = _nc_unctrl(sp, (chtype) ch);
+	name = safe_unctrl(SP_PARM, (chtype) ch);
 	if (name == 0 || *name == 0)
 	    name = "null";	/* shouldn't happen */
 	(void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch);
@@ -75,7 +75,7 @@
 NCURSES_EXPORT(char *)
 _tracechar(int ch)
 {
-    return _nc_tracechar(SP, ch);
+    return _nc_tracechar(CURRENT_SCREEN, ch);
 }
 #else
 EMPTY_MODULE(_nc_lib_tracechr)
diff -Naur ncurses-5.7.orig/ncurses/trace/lib_tracedmp.c ncurses-5.7/ncurses/trace/lib_tracedmp.c
--- ncurses-5.7.orig/ncurses/trace/lib_tracedmp.c	2008-08-16 12:30:56.000000000 -0700
+++ ncurses-5.7/ncurses/trace/lib_tracedmp.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -39,7 +39,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_tracedmp.c,v 1.31 2008/08/16 19:30:56 tom Exp $")
+MODULE_ID("$Id: lib_tracedmp.c,v 1.32 2009/04/18 21:01:38 tom Exp $")
 
 #ifdef TRACE
 
@@ -68,7 +68,7 @@
     if (width < win->_maxx)
 	++width;
     if (++width + 1 > (int) my_length) {
-	my_length = 2 * (width + 1);
+	my_length = (unsigned) (2 * (width + 1));
 	my_buffer = typeRealloc(char, my_length, my_buffer);
     }
 
@@ -82,7 +82,7 @@
 	 * we map those to '.' and '?' respectively.
 	 */
 	for (j = 0; j < width; ++j) {
-	    chtype test = CharOf(win->_line[n].text[j]);
+	    chtype test = (chtype) CharOf(win->_line[n].text[j]);
 	    ep[j] = (char) ((UChar(test) == test
 #if USE_WIDEC_SUPPORT
 			     && (win->_line[n].text[j].chars[1] == 0)
@@ -111,7 +111,7 @@
 	    if (multicolumn) {
 		ep = my_buffer;
 		for (j = 0; j < width; ++j) {
-		    int test = WidecExt(win->_line[n].text[j]);
+		    chtype test = WidecExt(win->_line[n].text[j]);
 		    if (test) {
 			ep[j] = (char) (test + '0');
 		    } else {
@@ -153,7 +153,7 @@
 
 	for (i = 0; i < 4; ++i) {
 	    const char *hex = " 123456789ABCDEF";
-	    attr_t mask = (0xf << ((i + 4) * 4));
+	    attr_t mask = (attr_t) (0xf << ((i + 4) * 4));
 
 	    haveattrs = FALSE;
 	    for (j = 0; j < width; ++j)
diff -Naur ncurses-5.7.orig/ncurses/trace/lib_tracemse.c ncurses-5.7/ncurses/trace/lib_tracemse.c
--- ncurses-5.7.orig/ncurses/trace/lib_tracemse.c	2008-08-03 08:39:29.000000000 -0700
+++ ncurses-5.7/ncurses/trace/lib_tracemse.c	2009-06-05 14:01:16.000000000 -0700
@@ -38,7 +38,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_tracemse.c,v 1.15 2008/08/03 15:39:29 tom Exp $")
+MODULE_ID("$Id: lib_tracemse.c,v 1.16 2008/11/16 00:19:59 juergen Exp $")
 
 #ifdef TRACE
 
@@ -117,7 +117,7 @@
 NCURSES_EXPORT(char *)
 _tracemouse(MEVENT const *ep)
 {
-    return _nc_tracemouse(SP, ep);
+    return _nc_tracemouse(CURRENT_SCREEN, ep);
 }
 
 #else /* !TRACE */
diff -Naur ncurses-5.7.orig/ncurses/trace/trace_tries.c ncurses-5.7/ncurses/trace/trace_tries.c
--- ncurses-5.7.orig/ncurses/trace/trace_tries.c	2008-08-03 08:43:30.000000000 -0700
+++ ncurses-5.7/ncurses/trace/trace_tries.c	2009-06-05 14:01:30.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1999-2008,2009 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            *
@@ -35,7 +35,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: trace_tries.c,v 1.13 2008/08/03 15:43:30 tom Exp $")
+MODULE_ID("$Id: trace_tries.c,v 1.14 2009/03/28 20:44:01 tom Exp $")
 
 #ifdef TRACE
 #define my_buffer _nc_globals.tracetry_buf
@@ -46,7 +46,7 @@
 {
     if (level > my_length) {
 	my_length = (level + 1) * 4;
-	my_buffer = (unsigned char *) realloc(my_buffer, my_length);
+	my_buffer = (unsigned char *) _nc_doalloc(my_buffer, my_length);
     }
 
     while (tree != 0) {
diff -Naur ncurses-5.7.orig/ncurses/trace/varargs.c ncurses-5.7/ncurses/trace/varargs.c
--- ncurses-5.7.orig/ncurses/trace/varargs.c	2008-08-03 08:42:49.000000000 -0700
+++ ncurses-5.7/ncurses/trace/varargs.c	2009-06-05 14:01:16.000000000 -0700
@@ -34,7 +34,7 @@
 
 #include <ctype.h>
 
-MODULE_ID("$Id: varargs.c,v 1.7 2008/08/03 15:42:49 tom Exp $")
+MODULE_ID("$Id: varargs.c,v 1.8 2008/11/16 00:19:59 juergen Exp $")
 
 #ifdef TRACE
 
@@ -44,7 +44,7 @@
     atUnknown = 0, atInteger, atFloat, atPoint, atString
 } ARGTYPE;
 
-#define VA_INT(type) ival = va_arg(ap, type)
+#define VA_INT(type) ival = (int) va_arg(ap, type)
 #define VA_FLT(type) fval = va_arg(ap, type)
 #define VA_PTR(type) pval = (char *)va_arg(ap, type)
 #define VA_STR(type) sval = va_arg(ap, type)
diff -Naur ncurses-5.7.orig/ncurses/tty/hardscroll.c ncurses-5.7/ncurses/tty/hardscroll.c
--- ncurses-5.7.orig/ncurses/tty/hardscroll.c	2008-08-03 16:49:30.000000000 -0700
+++ ncurses-5.7/ncurses/tty/hardscroll.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -147,90 +147,96 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: hardscroll.c,v 1.42 2008/08/03 23:49:30 tom Exp $")
+MODULE_ID("$Id: hardscroll.c,v 1.43 2009/04/18 21:41:30 tom Exp $")
 
 #if defined(SCROLLDEBUG) || defined(HASHDEBUG)
 
 # undef screen_lines
-# define screen_lines MAXLINES
-NCURSES_EXPORT_VAR(int)
-oldnums[MAXLINES];
-# define OLDNUM(n)	oldnums[n]
+# define screen_lines(sp) MAXLINES
+NCURSES_EXPORT_VAR (int)
+  oldnums[MAXLINES];
+# define OLDNUM(sp,n)	oldnums[n]
 # define _tracef	printf
 # undef TR
 # define TR(n, a)	if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); }
 
-extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
+extern				NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
 
 #else /* no debug */
 
 /* OLDNUM(n) indicates which line will be shifted to the position n.
    if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from
    somewhere. */
-NCURSES_EXPORT_VAR(int *)
-_nc_oldnums = 0;		/* obsolete: keep for ABI compat */
+NCURSES_EXPORT_VAR (int *)
+  _nc_oldnums = 0;		/* obsolete: keep for ABI compat */
 
 # if USE_HASHMAP
-#  define oldnums       SP->_oldnum_list
-#  define OLDNUM(n)	oldnums[n]
+#  define oldnums(sp)   (sp)->_oldnum_list
+#  define OLDNUM(sp,n)	oldnums(sp)[n]
 # else				/* !USE_HASHMAP */
-#  define OLDNUM(n)	newscr->_line[n].oldindex
+#  define OLDNUM(sp,n)	sp->_newscr->_line[n].oldindex
 # endif				/* !USE_HASHMAP */
 
-#define OLDNUM_SIZE     SP->_oldnum_size
+#define OLDNUM_SIZE(sp) (sp)->_oldnum_size
 
 #endif /* defined(SCROLLDEBUG) || defined(HASHDEBUG) */
 
 NCURSES_EXPORT(void)
-_nc_scroll_optimize(void)
+NCURSES_SP_NAME(_nc_scroll_optimize) (NCURSES_SP_DCL0)
 /* scroll optimization to transform curscr to newscr */
 {
     int i;
     int start, end, shift;
 
-    TR(TRACE_ICALLS, (T_CALLED("_nc_scroll_optimize")));
+    TR(TRACE_ICALLS, (T_CALLED("_nc_scroll_optimize(%p)"), SP_PARM));
 
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
 #if USE_HASHMAP
     /* get enough storage */
-    if (OLDNUM_SIZE < screen_lines) {
-	int *new_oldnums = typeRealloc(int, screen_lines, oldnums);
+    if (OLDNUM_SIZE(SP_PARM) < screen_lines(SP_PARM)) {
+	int *new_oldnums = typeRealloc(int, screen_lines(SP_PARM), oldnums(SP_PARM));
 	if (!new_oldnums)
 	    return;
-	oldnums = new_oldnums;
-	OLDNUM_SIZE = screen_lines;
+	oldnums(SP_PARM) = new_oldnums;
+	OLDNUM_SIZE(SP_PARM) = screen_lines(SP_PARM);
     }
     /* calculate the indices */
-    _nc_hash_map();
+    NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_ARG);
 #endif
 #endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */
 
 #ifdef TRACE
     if (USE_TRACEF(TRACE_UPDATE | TRACE_MOVE)) {
-	_nc_linedump();
+	NCURSES_SP_NAME(_nc_linedump) (NCURSES_SP_ARG);
 	_nc_unlock_global(tracef);
     }
 #endif /* TRACE */
 
     /* pass 1 - from top to bottom scrolling up */
-    for (i = 0; i < screen_lines;) {
-	while (i < screen_lines && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) <= i))
+    for (i = 0; i < screen_lines(SP_PARM);) {
+	while (i < screen_lines(SP_PARM)
+	       && (OLDNUM(SP_PARM, i) == _NEWINDEX || OLDNUM(SP_PARM, i) <= i))
 	    i++;
-	if (i >= screen_lines)
+	if (i >= screen_lines(SP_PARM))
 	    break;
 
-	shift = OLDNUM(i) - i;	/* shift > 0 */
+	shift = OLDNUM(SP_PARM, i) - i;		/* shift > 0 */
 	start = i;
 
 	i++;
-	while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i
-	       == shift)
+	while (i < screen_lines(SP_PARM)
+	       && OLDNUM(SP_PARM, i) != _NEWINDEX
+	       && OLDNUM(SP_PARM, i) - i == shift)
 	    i++;
 	end = i - 1 + shift;
 
 	TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift));
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
-	if (_nc_scrolln(shift, start, end, screen_lines - 1) == ERR) {
+	if (NCURSES_SP_NAME(_nc_scrolln) (NCURSES_SP_ARGx
+					  shift,
+					  start,
+					  end,
+					  screen_lines(SP_PARM) - 1) == ERR) {
 	    TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
 	    continue;
 	}
@@ -238,23 +244,33 @@
     }
 
     /* pass 2 - from bottom to top scrolling down */
-    for (i = screen_lines - 1; i >= 0;) {
-	while (i >= 0 && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) >= i))
+    for (i = screen_lines(SP_PARM) - 1; i >= 0;) {
+	while (i >= 0
+	       && (OLDNUM(SP_PARM, i) == _NEWINDEX
+		   || OLDNUM(SP_PARM, i) >= i)) {
 	    i--;
+	}
 	if (i < 0)
 	    break;
 
-	shift = OLDNUM(i) - i;	/* shift < 0 */
+	shift = OLDNUM(SP_PARM, i) - i;		/* shift < 0 */
 	end = i;
 
 	i--;
-	while (i >= 0 && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift)
+	while (i >= 0
+	       && OLDNUM(SP_PARM, i) != _NEWINDEX
+	       && OLDNUM(SP_PARM, i) - i == shift) {
 	    i--;
+	}
 	start = i + 1 - (-shift);
 
 	TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift));
 #if !defined(SCROLLDEBUG) && !defined(HASHDEBUG)
-	if (_nc_scrolln(shift, start, end, screen_lines - 1) == ERR) {
+	if (NCURSES_SP_NAME(_nc_scrolln) (NCURSES_SP_ARGx
+					  shift,
+					  start,
+					  end,
+					  screen_lines(SP_PARM) - 1) == ERR) {
 	    TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll"));
 	    continue;
 	}
@@ -263,24 +279,41 @@
     TR(TRACE_ICALLS, (T_RETURN("")));
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_scroll_optimize(void)
+{
+    NCURSES_SP_NAME(_nc_scroll_optimize) (CURRENT_SCREEN);
+}
+#endif
+
 #if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG)
 NCURSES_EXPORT(void)
-_nc_linedump(void)
+NCURSES_SP_NAME(_nc_linedump) (NCURSES_SP_DCL0)
 /* dump the state of the real and virtual oldnum fields */
 {
     int n;
     char *buf = 0;
-    size_t want = (screen_lines + 1) * 4;
+    size_t want = (screen_lines(SP_PARM) + 1) * 4;
 
     if ((buf = typeMalloc(char, want)) != 0) {
 
 	(void) strcpy(buf, "virt");
-	for (n = 0; n < screen_lines; n++)
-	    (void) sprintf(buf + strlen(buf), " %02d", OLDNUM(n));
+	for (n = 0; n < screen_lines(SP_PARM); n++)
+	    (void) sprintf(buf + strlen(buf), " %02d", OLDNUM(SP_PARM, n));
 	TR(TRACE_UPDATE | TRACE_MOVE, (buf));
 	free(buf);
     }
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_linedump(void)
+{
+    NCURSES_SP_NAME(_nc_linedump) (CURRENT_SCREEN);
+}
+#endif
+
 #endif /* defined(TRACE) || defined(SCROLLDEBUG) */
 
 #ifdef SCROLLDEBUG
diff -Naur ncurses-5.7.orig/ncurses/tty/hashmap.c ncurses-5.7/ncurses/tty/hashmap.c
--- ncurses-5.7.orig/ncurses/tty/hashmap.c	2007-10-13 11:47:25.000000000 -0700
+++ ncurses-5.7/ncurses/tty/hashmap.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                   *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -68,9 +68,12 @@
 *****************************************************************************/
 
 #include <curses.priv.h>
-#include <term.h>		/* for back_color_erase */
 
-MODULE_ID("$Id: hashmap.c,v 1.56 2007/10/13 18:47:25 Miroslav.Lichvar Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
+
+MODULE_ID("$Id: hashmap.c,v 1.59 2009/05/10 00:51:57 tom Exp $")
 
 #ifdef HASHDEBUG
 
@@ -83,25 +86,25 @@
 int oldnums[MAXLINES], reallines[MAXLINES];
 static NCURSES_CH_T oldtext[MAXLINES][TEXTWIDTH];
 static NCURSES_CH_T newtext[MAXLINES][TEXTWIDTH];
-# define OLDNUM(n)	oldnums[n]
-# define OLDTEXT(n)	oldtext[n]
-# define NEWTEXT(m)	newtext[m]
-# define PENDING(n)     1
+# define OLDNUM(sp,n)	oldnums[n]
+# define OLDTEXT(sp,n)	oldtext[n]
+# define NEWTEXT(sp,m)	newtext[m]
+# define PENDING(sp,n)  1
 
 #else /* !HASHDEBUG */
 
-# define OLDNUM(n)	SP->_oldnum_list[n]
-# define OLDTEXT(n)	curscr->_line[n].text
-# define NEWTEXT(m)	newscr->_line[m].text
-# define TEXTWIDTH	(curscr->_maxx+1)
-# define PENDING(n)     (newscr->_line[n].firstchar != _NOCHANGE)
+# define OLDNUM(sp,n)	(sp)->_oldnum_list[n]
+# define OLDTEXT(sp,n)	(sp)->_curscr->_line[n].text
+# define NEWTEXT(sp,m)	(sp)->_newscr->_line[m].text
+# define TEXTWIDTH(sp)	((sp)->_curscr->_maxx+1)
+# define PENDING(sp,n)  ((sp)->_newscr->_line[n].firstchar != _NOCHANGE)
 
 #endif /* !HASHDEBUG */
 
-#define oldhash		(SP->oldhash)
-#define newhash		(SP->newhash)
-#define hashtab		(SP->hashtab)
-#define lines_alloc	(SP->hashtab_len)
+#define oldhash(sp)	((sp)->oldhash)
+#define newhash(sp)	((sp)->newhash)
+#define hashtab(sp)	((sp)->hashtab)
+#define lines_alloc(sp)	((sp)->hashtab_len)
 
 #if USE_WIDEC_SUPPORT
 #define HASH_VAL(ch) (ch.chars[0])
@@ -112,12 +115,12 @@
 static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
 
 static NCURSES_INLINE unsigned long
-hash(NCURSES_CH_T * text)
+hash(SCREEN *sp, NCURSES_CH_T * text)
 {
     int i;
     NCURSES_CH_T ch;
     unsigned long result = 0;
-    for (i = TEXTWIDTH; i > 0; i--) {
+    for (i = TEXTWIDTH(sp); i > 0; i--) {
 	ch = *text++;
 	result += (result << 5) + HASH_VAL(ch);
     }
@@ -126,12 +129,12 @@
 
 /* approximate update cost */
 static int
-update_cost(NCURSES_CH_T * from, NCURSES_CH_T * to)
+update_cost(SCREEN *sp, NCURSES_CH_T * from, NCURSES_CH_T * to)
 {
     int cost = 0;
     int i;
 
-    for (i = TEXTWIDTH; i > 0; i--, from++, to++)
+    for (i = TEXTWIDTH(sp); i > 0; i--, from++, to++)
 	if (!(CharEq(*from, *to)))
 	    cost++;
 
@@ -139,7 +142,7 @@
 }
 
 static int
-update_cost_from_blank(NCURSES_CH_T * to)
+update_cost_from_blank(SCREEN *sp, NCURSES_CH_T * to)
 {
     int cost = 0;
     int i;
@@ -148,7 +151,7 @@
     if (back_color_erase)
 	SetPair(blank, GetPair(stdscr->_nc_bkgd));
 
-    for (i = TEXTWIDTH; i > 0; i--, to++)
+    for (i = TEXTWIDTH(sp); i > 0; i--, to++)
 	if (!(CharEq(blank, *to)))
 	    cost++;
 
@@ -160,14 +163,14 @@
  * effective. 'blank' indicates whether the line 'to' would become blank.
  */
 static NCURSES_INLINE bool
-cost_effective(const int from, const int to, const bool blank)
+cost_effective(SCREEN *sp, const int from, const int to, const bool blank)
 {
     int new_from;
 
     if (from == to)
 	return FALSE;
 
-    new_from = OLDNUM(from);
+    new_from = OLDNUM(sp, from);
     if (new_from == _NEWINDEX)
 	new_from = from;
 
@@ -175,16 +178,17 @@
      * On the left side of >= is the cost before moving;
      * on the right side -- cost after moving.
      */
-    return (((blank ? update_cost_from_blank(NEWTEXT(to))
-	      : update_cost(OLDTEXT(to), NEWTEXT(to)))
-	     + update_cost(OLDTEXT(new_from), NEWTEXT(from)))
-	    >= ((new_from == from ? update_cost_from_blank(NEWTEXT(from))
-		 : update_cost(OLDTEXT(new_from), NEWTEXT(from)))
-		+ update_cost(OLDTEXT(from), NEWTEXT(to)))) ? TRUE : FALSE;
+    return (((blank ? update_cost_from_blank(sp, NEWTEXT(sp, to))
+	      : update_cost(sp, OLDTEXT(sp, to), NEWTEXT(sp, to)))
+	     + update_cost(sp, OLDTEXT(sp, new_from), NEWTEXT(sp, from)))
+	    >= ((new_from == from ? update_cost_from_blank(sp, NEWTEXT(sp, from))
+		 : update_cost(sp, OLDTEXT(sp, new_from), NEWTEXT(sp, from)))
+		+ update_cost(sp, OLDTEXT(sp, from), NEWTEXT(sp, to))))
+	? TRUE : FALSE;
 }
 
 static void
-grow_hunks(void)
+grow_hunks(SCREEN *sp)
 {
     int start, end, shift;
     int back_limit, forward_limit;	/* limits for cells to fill */
@@ -200,35 +204,36 @@
     back_ref_limit = 0;
 
     i = 0;
-    while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
+    while (i < screen_lines(sp) && OLDNUM(sp, i) == _NEWINDEX)
 	i++;
-    for (; i < screen_lines; i = next_hunk) {
+    for (; i < screen_lines(sp); i = next_hunk) {
 	start = i;
-	shift = OLDNUM(i) - i;
+	shift = OLDNUM(sp, i) - i;
 
 	/* get forward limit */
 	i = start + 1;
-	while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i
-	       == shift)
+	while (i < screen_lines(sp)
+	       && OLDNUM(sp, i) != _NEWINDEX
+	       && OLDNUM(sp, i) - i == shift)
 	    i++;
 	end = i;
-	while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
+	while (i < screen_lines(sp) && OLDNUM(sp, i) == _NEWINDEX)
 	    i++;
 	next_hunk = i;
 	forward_limit = i;
-	if (i >= screen_lines || OLDNUM(i) >= i)
+	if (i >= screen_lines(sp) || OLDNUM(sp, i) >= i)
 	    forward_ref_limit = i;
 	else
-	    forward_ref_limit = OLDNUM(i);
+	    forward_ref_limit = OLDNUM(sp, i);
 
 	i = start - 1;
 	/* grow back */
 	if (shift < 0)
 	    back_limit = back_ref_limit + (-shift);
 	while (i >= back_limit) {
-	    if (newhash[i] == oldhash[i + shift]
-		|| cost_effective(i + shift, i, shift < 0)) {
-		OLDNUM(i) = i + shift;
+	    if (newhash(sp)[i] == oldhash(sp)[i + shift]
+		|| cost_effective(sp, i + shift, i, shift < 0)) {
+		OLDNUM(sp, i) = i + shift;
 		TR(TRACE_UPDATE | TRACE_MOVE,
 		   ("connected new line %d to old line %d (backward continuation)",
 		    i, i + shift));
@@ -246,9 +251,9 @@
 	if (shift > 0)
 	    forward_limit = forward_ref_limit - shift;
 	while (i < forward_limit) {
-	    if (newhash[i] == oldhash[i + shift]
-		|| cost_effective(i + shift, i, shift > 0)) {
-		OLDNUM(i) = i + shift;
+	    if (newhash(sp)[i] == oldhash(sp)[i + shift]
+		|| cost_effective(sp, i + shift, i, shift > 0)) {
+		OLDNUM(sp, i) = i + shift;
 		TR(TRACE_UPDATE | TRACE_MOVE,
 		   ("connected new line %d to old line %d (forward continuation)",
 		    i, i + shift));
@@ -268,51 +273,53 @@
 }
 
 NCURSES_EXPORT(void)
-_nc_hash_map(void)
+NCURSES_SP_NAME(_nc_hash_map) (NCURSES_SP_DCL0)
 {
-    HASHMAP *sp;
+    HASHMAP *hsp;
     register int i;
     int start, shift, size;
 
-    if (screen_lines > lines_alloc) {
-	if (hashtab)
-	    free(hashtab);
-	hashtab = typeMalloc(HASHMAP, (screen_lines + 1) * 2);
-	if (!hashtab) {
-	    if (oldhash) {
-		FreeAndNull(oldhash);
+    if (screen_lines(SP_PARM) > lines_alloc(SP_PARM)) {
+	if (hashtab(SP_PARM))
+	    free(hashtab(SP_PARM));
+	hashtab(SP_PARM) = typeMalloc(HASHMAP, (screen_lines(SP_PARM) + 1) * 2);
+	if (!hashtab(SP_PARM)) {
+	    if (oldhash(SP_PARM)) {
+		FreeAndNull(oldhash(SP_PARM));
 	    }
-	    lines_alloc = 0;
+	    lines_alloc(SP_PARM) = 0;
 	    return;
 	}
-	lines_alloc = screen_lines;
+	lines_alloc(SP_PARM) = screen_lines(SP_PARM);
     }
 
-    if (oldhash && newhash) {
+    if (oldhash(SP_PARM) && newhash(SP_PARM)) {
 	/* re-hash only changed lines */
-	for (i = 0; i < screen_lines; i++) {
-	    if (PENDING(i))
-		newhash[i] = hash(NEWTEXT(i));
+	for (i = 0; i < screen_lines(SP_PARM); i++) {
+	    if (PENDING(SP_PARM, i))
+		newhash(SP_PARM)[i] = hash(SP_PARM, NEWTEXT(SP_PARM, i));
 	}
     } else {
 	/* re-hash all */
-	if (oldhash == 0)
-	    oldhash = typeCalloc(unsigned long, (unsigned) screen_lines);
-	if (newhash == 0)
-	    newhash = typeCalloc(unsigned long, (unsigned) screen_lines);
-	if (!oldhash || !newhash)
+	if (oldhash(SP_PARM) == 0)
+	    oldhash(SP_PARM) = typeCalloc(unsigned long,
+					    (unsigned) screen_lines(SP_PARM));
+	if (newhash(SP_PARM) == 0)
+	    newhash(SP_PARM) = typeCalloc(unsigned long,
+					    (unsigned) screen_lines(SP_PARM));
+	if (!oldhash(SP_PARM) || !newhash(SP_PARM))
 	    return;		/* malloc failure */
-	for (i = 0; i < screen_lines; i++) {
-	    newhash[i] = hash(NEWTEXT(i));
-	    oldhash[i] = hash(OLDTEXT(i));
+	for (i = 0; i < screen_lines(SP_PARM); i++) {
+	    newhash(SP_PARM)[i] = hash(SP_PARM, NEWTEXT(SP_PARM, i));
+	    oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i));
 	}
     }
 
 #ifdef HASH_VERIFY
-    for (i = 0; i < screen_lines; i++) {
-	if (newhash[i] != hash(NEWTEXT(i)))
+    for (i = 0; i < screen_lines(SP_PARM); i++) {
+	if (newhash(SP_PARM)[i] != hash(SP_PARM, NEWTEXT(SP_PARM, i)))
 	    fprintf(stderr, "error in newhash[%d]\n", i);
-	if (oldhash[i] != hash(OLDTEXT(i)))
+	if (oldhash(SP_PARM)[i] != hash(SP_PARM, OLDTEXT(SP_PARM, i)))
 	    fprintf(stderr, "error in oldhash[%d]\n", i);
     }
 #endif
@@ -320,28 +327,29 @@
     /*
      * Set up and count line-hash values.
      */
-    memset(hashtab, '\0', sizeof(*hashtab) * (screen_lines + 1) * 2);
-    for (i = 0; i < screen_lines; i++) {
-	unsigned long hashval = oldhash[i];
+    memset(hashtab(SP_PARM), '\0',
+	   sizeof(*(hashtab(SP_PARM))) * (screen_lines(SP_PARM) + 1) * 2);
+    for (i = 0; i < screen_lines(SP_PARM); i++) {
+	unsigned long hashval = oldhash(SP_PARM)[i];
 
-	for (sp = hashtab; sp->hashval; sp++)
-	    if (sp->hashval == hashval)
+	for (hsp = hashtab(SP_PARM); hsp->hashval; hsp++)
+	    if (hsp->hashval == hashval)
 		break;
-	sp->hashval = hashval;	/* in case this is a new entry */
-	sp->oldcount++;
-	sp->oldindex = i;
+	hsp->hashval = hashval;	/* in case this is a new entry */
+	hsp->oldcount++;
+	hsp->oldindex = i;
     }
-    for (i = 0; i < screen_lines; i++) {
-	unsigned long hashval = newhash[i];
+    for (i = 0; i < screen_lines(SP_PARM); i++) {
+	unsigned long hashval = newhash(SP_PARM)[i];
 
-	for (sp = hashtab; sp->hashval; sp++)
-	    if (sp->hashval == hashval)
+	for (hsp = hashtab(SP_PARM); hsp->hashval; hsp++)
+	    if (hsp->hashval == hashval)
 		break;
-	sp->hashval = hashval;	/* in case this is a new entry */
-	sp->newcount++;
-	sp->newindex = i;
+	hsp->hashval = hashval;	/* in case this is a new entry */
+	hsp->newcount++;
+	hsp->newindex = i;
 
-	OLDNUM(i) = _NEWINDEX;	/* initialize old indices array */
+	OLDNUM(SP_PARM, i) = _NEWINDEX;		/* initialize old indices array */
     }
 
     /*
@@ -351,16 +359,16 @@
      * extending hunks by cost_effective. Otherwise, it does not
      * have any side effects.
      */
-    for (sp = hashtab; sp->hashval; sp++)
-	if (sp->oldcount == 1 && sp->newcount == 1
-	    && sp->oldindex != sp->newindex) {
+    for (hsp = hashtab(SP_PARM); hsp->hashval; hsp++)
+	if (hsp->oldcount == 1 && hsp->newcount == 1
+	    && hsp->oldindex != hsp->newindex) {
 	    TR(TRACE_UPDATE | TRACE_MOVE,
 	       ("new line %d is hash-identical to old line %d (unique)",
-		sp->newindex, sp->oldindex));
-	    OLDNUM(sp->newindex) = sp->oldindex;
+		hsp->newindex, hsp->oldindex));
+	    OLDNUM(SP_PARM, hsp->newindex) = hsp->oldindex;
 	}
 
-    grow_hunks();
+    grow_hunks(SP_PARM);
 
     /*
      * Eliminate bad or impossible shifts -- this includes removing
@@ -368,58 +376,83 @@
      * those which are to be moved too far, they are likely to destroy
      * more than carry.
      */
-    for (i = 0; i < screen_lines;) {
-	while (i < screen_lines && OLDNUM(i) == _NEWINDEX)
+    for (i = 0; i < screen_lines(SP_PARM);) {
+	while (i < screen_lines(SP_PARM) && OLDNUM(SP_PARM, i) == _NEWINDEX)
 	    i++;
-	if (i >= screen_lines)
+	if (i >= screen_lines(SP_PARM))
 	    break;
 	start = i;
-	shift = OLDNUM(i) - i;
+	shift = OLDNUM(SP_PARM, i) - i;
 	i++;
-	while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i
-	       == shift)
+	while (i < screen_lines(SP_PARM)
+	       && OLDNUM(SP_PARM, i) != _NEWINDEX
+	       && OLDNUM(SP_PARM, i) - i == shift)
 	    i++;
 	size = i - start;
 	if (size < 3 || size + min(size / 8, 2) < abs(shift)) {
 	    while (start < i) {
-		OLDNUM(start) = _NEWINDEX;
+		OLDNUM(SP_PARM, start) = _NEWINDEX;
 		start++;
 	    }
 	}
     }
 
     /* After clearing invalid hunks, try grow the rest. */
-    grow_hunks();
+    grow_hunks(SP_PARM);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_hash_map(void)
+{
+    NCURSES_SP_NAME(_nc_hash_map) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(void)
+NCURSES_SP_NAME(_nc_make_oldhash) (NCURSES_SP_DCLx int i)
+{
+    if (oldhash(SP_PARM))
+	oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i));
+}
+
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(void)
 _nc_make_oldhash(int i)
 {
-    if (oldhash)
-	oldhash[i] = hash(OLDTEXT(i));
+    NCURSES_SP_NAME(_nc_make_oldhash) (CURRENT_SCREEN, i);
 }
+#endif
 
 NCURSES_EXPORT(void)
-_nc_scroll_oldhash(int n, int top, int bot)
+NCURSES_SP_NAME(_nc_scroll_oldhash) (NCURSES_SP_DCLx int n, int top, int bot)
 {
     size_t size;
     int i;
 
-    if (!oldhash)
+    if (!oldhash(SP_PARM))
 	return;
 
-    size = sizeof(*oldhash) * (bot - top + 1 - abs(n));
+    size = sizeof(*(oldhash(SP_PARM))) * (bot - top + 1 - abs(n));
     if (n > 0) {
-	memmove(oldhash + top, oldhash + top + n, size);
+	memmove(oldhash(SP_PARM) + top, oldhash(SP_PARM) + top + n, size);
 	for (i = bot; i > bot - n; i--)
-	    oldhash[i] = hash(OLDTEXT(i));
+	    oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i));
     } else {
-	memmove(oldhash + top - n, oldhash + top, size);
+	memmove(oldhash(SP_PARM) + top - n, oldhash(SP_PARM) + top, size);
 	for (i = top; i < top - n; i++)
-	    oldhash[i] = hash(OLDTEXT(i));
+	    oldhash(SP_PARM)[i] = hash(SP_PARM, OLDTEXT(SP_PARM, i));
     }
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_scroll_oldhash(int n, int top, int bot)
+{
+    NCURSES_SP_NAME(_nc_scroll_oldhash) (CURRENT_SCREEN, n, top, bot);
+}
+#endif
+
 #ifdef HASHDEBUG
 static void
 usage(void)
diff -Naur ncurses-5.7.orig/ncurses/tty/lib_mvcur.c ncurses-5.7/ncurses/tty/lib_mvcur.c
--- ncurses-5.7.orig/ncurses/tty/lib_mvcur.c	2008-08-16 12:30:58.000000000 -0700
+++ ncurses-5.7/ncurses/tty/lib_mvcur.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -109,8 +110,8 @@
  * LONG_DIST and (b) further inward from the right or left edge than LONG_DIST,
  * we'll consider nonlocal.
  */
-#define NOT_LOCAL(fy, fx, ty, tx)	((tx > LONG_DIST) \
- 		 && (tx < screen_columns - 1 - LONG_DIST) \
+#define NOT_LOCAL(sp, fy, fx, ty, tx)	((tx > LONG_DIST) \
+		 && (tx < screen_columns(sp) - 1 - LONG_DIST) \
 		 && (abs(ty-fy) + abs(tx-fx) > LONG_DIST))
 
 /****************************************************************************
@@ -152,13 +153,16 @@
  */
 
 #include <curses.priv.h>
-#include <term.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_mvcur.c,v 1.113 2008/08/16 19:30:58 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
+
+MODULE_ID("$Id: lib_mvcur.c,v 1.120 2009/05/10 00:52:29 tom Exp $")
 
-#define WANT_CHAR(y, x)	SP->_newscr->_line[y].text[x]	/* desired state */
-#define BAUDRATE	cur_term->_baudrate	/* bits per second */
+#define WANT_CHAR(sp, y, x) (sp)->_newscr->_line[y].text[x]	/* desired state */
+#define BAUDRATE(sp)	cur_term->_baudrate	/* bits per second */
 
 #if defined(MAIN) || defined(NCURSES_TEST)
 #include <sys/time.h>
@@ -169,7 +173,7 @@
 
 #define OPT_SIZE 512
 
-static int normalized_cost(const char *const cap, int affcnt);
+static int normalized_cost(NCURSES_SP_DCLx const char *const cap, int affcnt);
 
 /****************************************************************************
  *
@@ -179,34 +183,34 @@
 
 #ifdef TRACE
 static int
-trace_cost_of(const char *capname, const char *cap, int affcnt)
+trace_cost_of(NCURSES_SP_DCLx const char *capname, const char *cap, int affcnt)
 {
-    int result = _nc_msec_cost(cap, affcnt);
+    int result = NCURSES_SP_NAME(_nc_msec_cost) (NCURSES_SP_ARGx cap, affcnt);
     TR(TRACE_CHARPUT | TRACE_MOVE,
        ("CostOf %s %d %s", capname, result, _nc_visbuf(cap)));
     return result;
 }
-#define CostOf(cap,affcnt) trace_cost_of(#cap,cap,affcnt);
+#define CostOf(cap,affcnt) trace_cost_of(NCURSES_SP_ARGx #cap, cap, affcnt)
 
 static int
-trace_normalized_cost(const char *capname, const char *cap, int affcnt)
+trace_normalized_cost(NCURSES_SP_DCLx const char *capname, const char *cap, int affcnt)
 {
-    int result = normalized_cost(cap, affcnt);
+    int result = normalized_cost(NCURSES_SP_ARGx cap, affcnt);
     TR(TRACE_CHARPUT | TRACE_MOVE,
        ("NormalizedCost %s %d %s", capname, result, _nc_visbuf(cap)));
     return result;
 }
-#define NormalizedCost(cap,affcnt) trace_normalized_cost(#cap,cap,affcnt);
+#define NormalizedCost(cap,affcnt) trace_normalized_cost(NCURSES_SP_ARGx #cap, cap, affcnt)
 
 #else
 
-#define CostOf(cap,affcnt) _nc_msec_cost(cap,affcnt);
-#define NormalizedCost(cap,affcnt) normalized_cost(cap,affcnt);
+#define CostOf(cap,affcnt) NCURSES_SP_NAME(_nc_msec_cost)(NCURSES_SP_ARGx cap, affcnt)
+#define NormalizedCost(cap,affcnt) normalized_cost(NCURSES_SP_ARGx cap, affcnt)
 
 #endif
 
 NCURSES_EXPORT(int)
-_nc_msec_cost(const char *const cap, int affcnt)
+NCURSES_SP_NAME(_nc_msec_cost) (NCURSES_SP_DCLx const char *const cap, int affcnt)
 /* compute the cost of a given operation */
 {
     if (cap == 0)
@@ -230,45 +234,56 @@
 		}
 
 #if NCURSES_NO_PADDING
-		if (!GetNoPadding(SP))
+		if (!GetNoPadding(SP_PARM))
 #endif
 		    cum_cost += number * 10;
 	    } else
-		cum_cost += SP->_char_padding;
+		cum_cost += SP_PARM->_char_padding;
 	}
 
 	return ((int) cum_cost);
     }
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+_nc_msec_cost(const char *const cap, int affcnt)
+{
+    return NCURSES_SP_NAME(_nc_msec_cost) (CURRENT_SCREEN, cap, affcnt);
+}
+#endif
+
 static int
-normalized_cost(const char *const cap, int affcnt)
+normalized_cost(NCURSES_SP_DCLx const char *const cap, int affcnt)
 /* compute the effective character-count for an operation (round up) */
 {
-    int cost = _nc_msec_cost(cap, affcnt);
+    int cost = NCURSES_SP_NAME(_nc_msec_cost) (NCURSES_SP_ARGx cap, affcnt);
     if (cost != INFINITY)
-	cost = (cost + SP->_char_padding - 1) / SP->_char_padding;
+	cost = (cost + SP_PARM->_char_padding - 1) / SP_PARM->_char_padding;
     return cost;
 }
 
 static void
-reset_scroll_region(void)
+reset_scroll_region(NCURSES_SP_DCL0)
 /* Set the scroll-region to a known state (the default) */
 {
     if (change_scroll_region) {
-	TPUTS_TRACE("change_scroll_region");
-	putp(TPARM_2(change_scroll_region, 0, screen_lines - 1));
+	NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+				   "change_scroll_region",
+				   TPARM_2(change_scroll_region,
+					   0, screen_lines(SP_PARM) - 1));
     }
 }
 
 NCURSES_EXPORT(void)
-_nc_mvcur_resume(void)
+NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_DCL0)
 /* what to do at initialization time and after each shellout */
 {
     /* initialize screen for cursor access */
     if (enter_ca_mode) {
-	TPUTS_TRACE("enter_ca_mode");
-	putp(enter_ca_mode);
+	NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+				   "enter_ca_mode",
+				   enter_ca_mode);
     }
 
     /*
@@ -280,53 +295,63 @@
      * they know the screen size.  This is useful when you're running
      * a vt100 emulation through xterm.
      */
-    reset_scroll_region();
-    SP->_cursrow = SP->_curscol = -1;
+    reset_scroll_region(NCURSES_SP_ARG);
+    SP_PARM->_cursrow = SP_PARM->_curscol = -1;
 
     /* restore cursor shape */
-    if (SP->_cursor != -1) {
-	int cursor = SP->_cursor;
-	SP->_cursor = -1;
-	curs_set(cursor);
+    if (SP_PARM->_cursor != -1) {
+	int cursor = SP_PARM->_cursor;
+	SP_PARM->_cursor = -1;
+	NCURSES_SP_NAME(curs_set) (NCURSES_SP_ARGx cursor);
     }
 }
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(void)
-_nc_mvcur_init(void)
+_nc_mvcur_resume(void)
+{
+    NCURSES_SP_NAME(_nc_mvcur_resume) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(void)
+NCURSES_SP_NAME(_nc_mvcur_init) (NCURSES_SP_DCL0)
 /* initialize the cost structure */
 {
-    if (isatty(fileno(SP->_ofp)))
-	SP->_char_padding = ((BAUDBYTE * 1000 * 10)
-			     / (BAUDRATE > 0 ? BAUDRATE : 9600));
+    if (SP_PARM->_ofp && isatty(fileno(SP_PARM->_ofp)))
+	SP_PARM->_char_padding = ((BAUDBYTE * 1000 * 10)
+				  / (BAUDRATE(SP_PARM) > 0
+				     ? BAUDRATE(SP_PARM)
+				     : 9600));
     else
-	SP->_char_padding = 1;	/* must be nonzero */
-    if (SP->_char_padding <= 0)
-	SP->_char_padding = 1;	/* must be nonzero */
-    TR(TRACE_CHARPUT | TRACE_MOVE, ("char_padding %d msecs", SP->_char_padding));
+	SP_PARM->_char_padding = 1;	/* must be nonzero */
+    if (SP_PARM->_char_padding <= 0)
+	SP_PARM->_char_padding = 1;	/* must be nonzero */
+    TR(TRACE_CHARPUT | TRACE_MOVE, ("char_padding %d msecs", SP_PARM->_char_padding));
 
     /* non-parameterized local-motion strings */
-    SP->_cr_cost = CostOf(carriage_return, 0);
-    SP->_home_cost = CostOf(cursor_home, 0);
-    SP->_ll_cost = CostOf(cursor_to_ll, 0);
+    SP_PARM->_cr_cost = CostOf(carriage_return, 0);
+    SP_PARM->_home_cost = CostOf(cursor_home, 0);
+    SP_PARM->_ll_cost = CostOf(cursor_to_ll, 0);
 #if USE_HARD_TABS
     if (getenv("NCURSES_NO_HARD_TABS") == 0) {
-	SP->_ht_cost = CostOf(tab, 0);
-	SP->_cbt_cost = CostOf(back_tab, 0);
+	SP_PARM->_ht_cost = CostOf(tab, 0);
+	SP_PARM->_cbt_cost = CostOf(back_tab, 0);
     } else {
-	SP->_ht_cost = INFINITY;
-	SP->_cbt_cost = INFINITY;
+	SP_PARM->_ht_cost = INFINITY;
+	SP_PARM->_cbt_cost = INFINITY;
     }
 #endif /* USE_HARD_TABS */
-    SP->_cub1_cost = CostOf(cursor_left, 0);
-    SP->_cuf1_cost = CostOf(cursor_right, 0);
-    SP->_cud1_cost = CostOf(cursor_down, 0);
-    SP->_cuu1_cost = CostOf(cursor_up, 0);
-
-    SP->_smir_cost = CostOf(enter_insert_mode, 0);
-    SP->_rmir_cost = CostOf(exit_insert_mode, 0);
-    SP->_ip_cost = 0;
+    SP_PARM->_cub1_cost = CostOf(cursor_left, 0);
+    SP_PARM->_cuf1_cost = CostOf(cursor_right, 0);
+    SP_PARM->_cud1_cost = CostOf(cursor_down, 0);
+    SP_PARM->_cuu1_cost = CostOf(cursor_up, 0);
+
+    SP_PARM->_smir_cost = CostOf(enter_insert_mode, 0);
+    SP_PARM->_rmir_cost = CostOf(exit_insert_mode, 0);
+    SP_PARM->_ip_cost = 0;
     if (insert_padding) {
-	SP->_ip_cost = CostOf(insert_padding, 0);
+	SP_PARM->_ip_cost = CostOf(insert_padding, 0);
     }
 
     /*
@@ -335,7 +360,7 @@
      * can treat it like absolute screen addressing.  This seems to be true
      * for all cursor_mem_address terminal types in the terminfo database.
      */
-    SP->_address_cursor = cursor_address ? cursor_address : cursor_mem_address;
+    SP_PARM->_address_cursor = cursor_address ? cursor_address : cursor_mem_address;
 
     /*
      * Parametrized local-motion strings.  This static cost computation
@@ -361,40 +386,43 @@
      * All these averages depend on the assumption that all parameter values
      * are equally probable.
      */
-    SP->_cup_cost = CostOf(TPARM_2(SP->_address_cursor, 23, 23), 1);
-    SP->_cub_cost = CostOf(TPARM_1(parm_left_cursor, 23), 1);
-    SP->_cuf_cost = CostOf(TPARM_1(parm_right_cursor, 23), 1);
-    SP->_cud_cost = CostOf(TPARM_1(parm_down_cursor, 23), 1);
-    SP->_cuu_cost = CostOf(TPARM_1(parm_up_cursor, 23), 1);
-    SP->_hpa_cost = CostOf(TPARM_1(column_address, 23), 1);
-    SP->_vpa_cost = CostOf(TPARM_1(row_address, 23), 1);
+    SP_PARM->_cup_cost = CostOf(TPARM_2(SP_PARM->_address_cursor, 23, 23), 1);
+    SP_PARM->_cub_cost = CostOf(TPARM_1(parm_left_cursor, 23), 1);
+    SP_PARM->_cuf_cost = CostOf(TPARM_1(parm_right_cursor, 23), 1);
+    SP_PARM->_cud_cost = CostOf(TPARM_1(parm_down_cursor, 23), 1);
+    SP_PARM->_cuu_cost = CostOf(TPARM_1(parm_up_cursor, 23), 1);
+    SP_PARM->_hpa_cost = CostOf(TPARM_1(column_address, 23), 1);
+    SP_PARM->_vpa_cost = CostOf(TPARM_1(row_address, 23), 1);
 
     /* non-parameterized screen-update strings */
-    SP->_ed_cost = NormalizedCost(clr_eos, 1);
-    SP->_el_cost = NormalizedCost(clr_eol, 1);
-    SP->_el1_cost = NormalizedCost(clr_bol, 1);
-    SP->_dch1_cost = NormalizedCost(delete_character, 1);
-    SP->_ich1_cost = NormalizedCost(insert_character, 1);
+    SP_PARM->_ed_cost = NormalizedCost(clr_eos, 1);
+    SP_PARM->_el_cost = NormalizedCost(clr_eol, 1);
+    SP_PARM->_el1_cost = NormalizedCost(clr_bol, 1);
+    SP_PARM->_dch1_cost = NormalizedCost(delete_character, 1);
+    SP_PARM->_ich1_cost = NormalizedCost(insert_character, 1);
 
     /*
      * If this is a bce-terminal, we want to bias the choice so we use clr_eol
      * rather than spaces at the end of a line.
      */
     if (back_color_erase)
-	SP->_el_cost = 0;
+	SP_PARM->_el_cost = 0;
 
     /* parameterized screen-update strings */
-    SP->_dch_cost = NormalizedCost(TPARM_1(parm_dch, 23), 1);
-    SP->_ich_cost = NormalizedCost(TPARM_1(parm_ich, 23), 1);
-    SP->_ech_cost = NormalizedCost(TPARM_1(erase_chars, 23), 1);
-    SP->_rep_cost = NormalizedCost(TPARM_2(repeat_char, ' ', 23), 1);
-
-    SP->_cup_ch_cost = NormalizedCost(TPARM_2(SP->_address_cursor, 23, 23), 1);
-    SP->_hpa_ch_cost = NormalizedCost(TPARM_1(column_address, 23), 1);
-    SP->_cuf_ch_cost = NormalizedCost(TPARM_1(parm_right_cursor, 23), 1);
-    SP->_inline_cost = min(SP->_cup_ch_cost,
-			   min(SP->_hpa_ch_cost,
-			       SP->_cuf_ch_cost));
+    SP_PARM->_dch_cost = NormalizedCost(TPARM_1(parm_dch, 23), 1);
+    SP_PARM->_ich_cost = NormalizedCost(TPARM_1(parm_ich, 23), 1);
+    SP_PARM->_ech_cost = NormalizedCost(TPARM_1(erase_chars, 23), 1);
+    SP_PARM->_rep_cost = NormalizedCost(TPARM_2(repeat_char, ' ', 23), 1);
+
+    SP_PARM->_cup_ch_cost = NormalizedCost(
+					      TPARM_2(SP_PARM->_address_cursor,
+						      23, 23),
+					      1);
+    SP_PARM->_hpa_ch_cost = NormalizedCost(TPARM_1(column_address, 23), 1);
+    SP_PARM->_cuf_ch_cost = NormalizedCost(TPARM_1(parm_right_cursor, 23), 1);
+    SP_PARM->_inline_cost = min(SP_PARM->_cup_ch_cost,
+				min(SP_PARM->_hpa_ch_cost,
+				    SP_PARM->_cuf_ch_cost));
 
     /*
      * If save_cursor is used within enter_ca_mode, we should not use it for
@@ -411,30 +439,40 @@
     }
 
     /*
-     * A different, possibly better way to arrange this would be to set
-     * SP->_endwin = TRUE at window initialization time and let this be
+     * A different, possibly better way to arrange this would be to set the
+     * SCREEN's _endwin to TRUE at window initialization time and let this be
      * called by doupdate's return-from-shellout code.
      */
+    NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_ARG);
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_mvcur_init(void)
+{
+    NCURSES_SP_NAME(_nc_mvcur_init) (CURRENT_SCREEN);
     _nc_mvcur_resume();
 }
+#endif
 
 NCURSES_EXPORT(void)
-_nc_mvcur_wrap(void)
+NCURSES_SP_NAME(_nc_mvcur_wrap) (NCURSES_SP_DCL0)
 /* wrap up cursor-addressing mode */
 {
     /* leave cursor at screen bottom */
-    mvcur(-1, -1, screen_lines - 1, 0);
+    mvcur(-1, -1, screen_lines(CURRENT_SCREEN) - 1, 0);
 
     /* set cursor to normal mode */
-    if (SP->_cursor != -1) {
-	int cursor = SP->_cursor;
-	curs_set(1);
-	SP->_cursor = cursor;
+    if (SP_PARM->_cursor != -1) {
+	int cursor = SP_PARM->_cursor;
+	NCURSES_SP_NAME(curs_set) (NCURSES_SP_ARGx 1);
+	SP_PARM->_cursor = cursor;
     }
 
     if (exit_ca_mode) {
-	TPUTS_TRACE("exit_ca_mode");
-	putp(exit_ca_mode);
+	NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+				   "exit_ca_mode",
+				   exit_ca_mode);
     }
     /*
      * Reset terminal's tab counter.  There's a long-time bug that
@@ -444,8 +482,16 @@
      * escape sequences that reset things as column positions.
      * Utter a \r to reset this invisibly.
      */
-    _nc_outch('\r');
+    NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\r');
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_mvcur_wrap(void)
+{
+    NCURSES_SP_NAME(_nc_mvcur_wrap) (CURRENT_SCREEN);
 }
+#endif
 
 /****************************************************************************
  *
@@ -486,8 +532,13 @@
 #define LASTTAB(fr)	((fr > 0) ? ((fr - 1) / init_tabs) * init_tabs : -1)
 
 static int
-relative_move(string_desc * target, int from_y, int from_x, int to_y, int
-	      to_x, bool ovw)
+relative_move(NCURSES_SP_DCLx
+	      string_desc * target,
+	      int from_y,
+	      int from_x,
+	      int to_y,
+	      int to_x,
+	      bool ovw)
 /* move via local motions (cuu/cuu1/cud/cud1/cub1/cub/cuf1/cuf/vpa/hpa) */
 {
     string_desc save;
@@ -500,38 +551,38 @@
 
 	if (row_address != 0
 	    && _nc_safe_strcat(target, TPARM_1(row_address, to_y))) {
-	    vcost = SP->_vpa_cost;
+	    vcost = SP_PARM->_vpa_cost;
 	}
 
 	if (to_y > from_y) {
 	    n = (to_y - from_y);
 
 	    if (parm_down_cursor
-		&& SP->_cud_cost < vcost
+		&& SP_PARM->_cud_cost < vcost
 		&& _nc_safe_strcat(_nc_str_copy(target, &save),
 				   TPARM_1(parm_down_cursor, n))) {
-		vcost = SP->_cud_cost;
+		vcost = SP_PARM->_cud_cost;
 	    }
 
 	    if (cursor_down
-		&& (*cursor_down != '\n' || SP->_nl)
-		&& (n * SP->_cud1_cost < vcost)) {
+		&& (*cursor_down != '\n' || SP_PARM->_nl)
+		&& (n * SP_PARM->_cud1_cost < vcost)) {
 		vcost = repeated_append(_nc_str_copy(target, &save), 0,
-					SP->_cud1_cost, n, cursor_down);
+					SP_PARM->_cud1_cost, n, cursor_down);
 	    }
 	} else {		/* (to_y < from_y) */
 	    n = (from_y - to_y);
 
 	    if (parm_up_cursor
-		&& SP->_cuu_cost < vcost
+		&& SP_PARM->_cuu_cost < vcost
 		&& _nc_safe_strcat(_nc_str_copy(target, &save),
 				   TPARM_1(parm_up_cursor, n))) {
-		vcost = SP->_cuu_cost;
+		vcost = SP_PARM->_cuu_cost;
 	    }
 
-	    if (cursor_up && (n * SP->_cuu1_cost < vcost)) {
+	    if (cursor_up && (n * SP_PARM->_cuu1_cost < vcost)) {
 		vcost = repeated_append(_nc_str_copy(target, &save), 0,
-					SP->_cuu1_cost, n, cursor_up);
+					SP_PARM->_cuu1_cost, n, cursor_up);
 	    }
 	}
 
@@ -550,17 +601,17 @@
 	if (column_address
 	    && _nc_safe_strcat(_nc_str_copy(target, &save),
 			       TPARM_1(column_address, to_x))) {
-	    hcost = SP->_hpa_cost;
+	    hcost = SP_PARM->_hpa_cost;
 	}
 
 	if (to_x > from_x) {
 	    n = to_x - from_x;
 
 	    if (parm_right_cursor
-		&& SP->_cuf_cost < hcost
+		&& SP_PARM->_cuf_cost < hcost
 		&& _nc_safe_strcat(_nc_str_copy(target, &save),
 				   TPARM_1(parm_right_cursor, n))) {
-		hcost = SP->_cuf_cost;
+		hcost = SP_PARM->_cuf_cost;
 	    }
 
 	    if (cursor_right) {
@@ -575,7 +626,7 @@
 
 		    for (fr = from_x; (nxt = NEXTTAB(fr)) <= to_x; fr = nxt) {
 			lhcost = repeated_append(&check, lhcost,
-						 SP->_ht_cost, 1, tab);
+						 SP_PARM->_ht_cost, 1, tab);
 			if (lhcost == INFINITY)
 			    break;
 		    }
@@ -599,7 +650,7 @@
 		    && n < (int) check.s_size
 		    && vcost == 0
 		    && str[0] == '\0') {
-		    int wanted = CharOf(WANT_CHAR(to_y, from_x));
+		    int wanted = CharOf(WANT_CHAR(SP_PARM, to_y, from_x));
 		    if (is8bits(wanted) && isdigit(wanted))
 			ovw = FALSE;
 		}
@@ -616,8 +667,8 @@
 		    int i;
 
 		    for (i = 0; i < n; i++) {
-			NCURSES_CH_T ch = WANT_CHAR(to_y, from_x + i);
-			if (!SameAttrOf(ch, SCREEN_ATTRS(SP))
+			NCURSES_CH_T ch = WANT_CHAR(SP_PARM, to_y, from_x + i);
+			if (!SameAttrOf(ch, SCREEN_ATTRS(SP_PARM))
 #if USE_WIDEC_SUPPORT
 			    || !Charable(ch)
 #endif
@@ -631,13 +682,13 @@
 		    int i;
 
 		    for (i = 0; i < n; i++)
-			*check.s_tail++ = (char) CharOf(WANT_CHAR(to_y,
+			*check.s_tail++ = (char) CharOf(WANT_CHAR(SP_PARM, to_y,
 								  from_x + i));
 		    *check.s_tail = '\0';
 		    check.s_size -= n;
-		    lhcost += n * SP->_char_padding;
+		    lhcost += n * SP_PARM->_char_padding;
 		} else {
-		    lhcost = repeated_append(&check, lhcost, SP->_cuf1_cost,
+		    lhcost = repeated_append(&check, lhcost, SP_PARM->_cuf1_cost,
 					     n, cursor_right);
 		}
 
@@ -650,10 +701,10 @@
 	    n = from_x - to_x;
 
 	    if (parm_left_cursor
-		&& SP->_cub_cost < hcost
+		&& SP_PARM->_cub_cost < hcost
 		&& _nc_safe_strcat(_nc_str_copy(target, &save),
 				   TPARM_1(parm_left_cursor, n))) {
-		hcost = SP->_cub_cost;
+		hcost = SP_PARM->_cub_cost;
 	    }
 
 	    if (cursor_left) {
@@ -667,7 +718,8 @@
 
 		    for (fr = from_x; (nxt = LASTTAB(fr)) >= to_x; fr = nxt) {
 			lhcost = repeated_append(&check, lhcost,
-						 SP->_cbt_cost, 1, back_tab);
+						 SP_PARM->_cbt_cost,
+						 1, back_tab);
 			if (lhcost == INFINITY)
 			    break;
 		    }
@@ -676,7 +728,9 @@
 		}
 #endif /* USE_HARD_TABS */
 
-		lhcost = repeated_append(&check, lhcost, SP->_cub1_cost, n, cursor_left);
+		lhcost = repeated_append(&check, lhcost,
+					 SP_PARM->_cub1_cost,
+					 n, cursor_left);
 
 		if (lhcost < hcost
 		    && _nc_safe_strcat(_nc_str_copy(target, &save), str)) {
@@ -705,7 +759,7 @@
  */
 
 static NCURSES_INLINE int
-onscreen_mvcur(int yold, int xold, int ynew, int xnew, bool ovw)
+onscreen_mvcur(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew, bool ovw)
 /* onscreen move from (yold, xold) to (ynew, xnew) */
 {
     string_desc result;
@@ -723,9 +777,9 @@
 #define InitResult _nc_str_init(&result, buffer, sizeof(buffer))
 
     /* tactic #0: use direct cursor addressing */
-    if (_nc_safe_strcpy(InitResult, TPARM_2(SP->_address_cursor, ynew, xnew))) {
+    if (_nc_safe_strcpy(InitResult, TPARM_2(SP_PARM->_address_cursor, ynew, xnew))) {
 	tactic = 0;
-	usecost = SP->_cup_cost;
+	usecost = SP_PARM->_cup_cost;
 
 #if defined(TRACE) || defined(NCURSES_TEST)
 	if (!(_nc_optimize_enable & OPTIMIZE_MVCUR))
@@ -740,7 +794,7 @@
 	 * (like, say, local-movement \n getting mapped to some obscure
 	 * character because A_ALTCHARSET is on).
 	 */
-	if (yold == -1 || xold == -1 || NOT_LOCAL(yold, xold, ynew, xnew)) {
+	if (yold == -1 || xold == -1 || NOT_LOCAL(SP_PARM, yold, xold, ynew, xnew)) {
 #if defined(MAIN) || defined(NCURSES_TEST)
 	    if (!profiling) {
 		(void) fputs("nonlocal\n", stderr);
@@ -754,8 +808,10 @@
 #ifndef NO_OPTIMIZE
     /* tactic #1: use local movement */
     if (yold != -1 && xold != -1
-	&& ((newcost = relative_move(NullResult, yold, xold, ynew, xnew,
-				     ovw)) != INFINITY)
+	&& ((newcost = relative_move(NCURSES_SP_ARGx
+				     NullResult,
+				     yold, xold,
+				     ynew, xnew, ovw)) != INFINITY)
 	&& newcost < usecost) {
 	tactic = 1;
 	usecost = newcost;
@@ -763,42 +819,51 @@
 
     /* tactic #2: use carriage-return + local movement */
     if (yold != -1 && carriage_return
-	&& ((newcost = relative_move(NullResult, yold, 0, ynew, xnew, ovw))
-	    != INFINITY)
-	&& SP->_cr_cost + newcost < usecost) {
+	&& ((newcost = relative_move(NCURSES_SP_ARGx
+				     NullResult,
+				     yold, 0,
+				     ynew, xnew, ovw)) != INFINITY)
+	&& SP_PARM->_cr_cost + newcost < usecost) {
 	tactic = 2;
-	usecost = SP->_cr_cost + newcost;
+	usecost = SP_PARM->_cr_cost + newcost;
     }
 
     /* tactic #3: use home-cursor + local movement */
     if (cursor_home
-	&& ((newcost = relative_move(NullResult, 0, 0, ynew, xnew, ovw)) != INFINITY)
-	&& SP->_home_cost + newcost < usecost) {
+	&& ((newcost = relative_move(NCURSES_SP_ARGx
+				     NullResult,
+				     0, 0,
+				     ynew, xnew, ovw)) != INFINITY)
+	&& SP_PARM->_home_cost + newcost < usecost) {
 	tactic = 3;
-	usecost = SP->_home_cost + newcost;
+	usecost = SP_PARM->_home_cost + newcost;
     }
 
     /* tactic #4: use home-down + local movement */
     if (cursor_to_ll
-	&& ((newcost = relative_move(NullResult, screen_lines - 1, 0, ynew,
-				     xnew, ovw)) != INFINITY)
-	&& SP->_ll_cost + newcost < usecost) {
+	&& ((newcost = relative_move(NCURSES_SP_ARGx
+				     NullResult,
+				     screen_lines(SP_PARM) - 1, 0,
+				     ynew, xnew, ovw)) != INFINITY)
+	&& SP_PARM->_ll_cost + newcost < usecost) {
 	tactic = 4;
-	usecost = SP->_ll_cost + newcost;
+	usecost = SP_PARM->_ll_cost + newcost;
     }
 
     /*
      * tactic #5: use left margin for wrap to right-hand side,
      * unless strange wrap behavior indicated by xenl might hose us.
      */
-    t5_cr_cost = (xold > 0 ? SP->_cr_cost : 0);
+    t5_cr_cost = (xold > 0 ? SP_PARM->_cr_cost : 0);
     if (auto_left_margin && !eat_newline_glitch
 	&& yold > 0 && cursor_left
-	&& ((newcost = relative_move(NullResult, yold - 1, screen_columns -
-				     1, ynew, xnew, ovw)) != INFINITY)
-	&& t5_cr_cost + SP->_cub1_cost + newcost < usecost) {
+	&& ((newcost = relative_move(NCURSES_SP_ARGx
+				     NullResult,
+				     yold - 1, screen_columns(SP_PARM) - 1,
+				     ynew, xnew, ovw)) != INFINITY)
+	&& t5_cr_cost + SP_PARM->_cub1_cost + newcost < usecost) {
 	tactic = 5;
-	usecost = t5_cr_cost + SP->_cub1_cost + newcost;
+	usecost = t5_cr_cost + SP_PARM->_cub1_cost + newcost;
     }
 
     /*
@@ -808,26 +873,39 @@
 	InitResult;
     switch (tactic) {
     case 1:
-	(void) relative_move(&result, yold, xold, ynew, xnew, ovw);
+	(void) relative_move(NCURSES_SP_ARGx
+			     &result,
+			     yold, xold,
+			     ynew, xnew, ovw);
 	break;
     case 2:
 	(void) _nc_safe_strcpy(&result, carriage_return);
-	(void) relative_move(&result, yold, 0, ynew, xnew, ovw);
+	(void) relative_move(NCURSES_SP_ARGx
+			     &result,
+			     yold, 0,
+			     ynew, xnew, ovw);
 	break;
     case 3:
 	(void) _nc_safe_strcpy(&result, cursor_home);
-	(void) relative_move(&result, 0, 0, ynew, xnew, ovw);
+	(void) relative_move(NCURSES_SP_ARGx
+			     &result, 0, 0,
+			     ynew, xnew, ovw);
 	break;
     case 4:
 	(void) _nc_safe_strcpy(&result, cursor_to_ll);
-	(void) relative_move(&result, screen_lines - 1, 0, ynew, xnew, ovw);
+	(void) relative_move(NCURSES_SP_ARGx
+			     &result,
+			     screen_lines(SP_PARM) - 1, 0,
+			     ynew, xnew, ovw);
 	break;
     case 5:
 	if (xold > 0)
 	    (void) _nc_safe_strcat(&result, carriage_return);
 	(void) _nc_safe_strcat(&result, cursor_left);
-	(void) relative_move(&result, yold - 1, screen_columns - 1, ynew,
-			     xnew, ovw);
+	(void) relative_move(NCURSES_SP_ARGx
+			     &result,
+			     yold - 1, screen_columns(SP_PARM) - 1,
+			     ynew, xnew, ovw);
 	break;
     }
 #endif /* !NO_OPTIMIZE */
@@ -845,17 +923,19 @@
 
     if (usecost != INFINITY) {
 	TPUTS_TRACE("mvcur");
-	tputs(buffer, 1, _nc_outch);
-	SP->_cursrow = ynew;
-	SP->_curscol = xnew;
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				buffer, 1, NCURSES_SP_NAME(_nc_outch));
+	SP_PARM->_cursrow = ynew;
+	SP_PARM->_curscol = xnew;
 	return (OK);
     } else
 	return (ERR);
 }
 
-NCURSES_EXPORT(int)
-mvcur(int yold, int xold, int ynew, int xnew)
 /* optimized cursor move from (yold, xold) to (ynew, xnew) */
+NCURSES_EXPORT(int)
+NCURSES_SP_NAME(mvcur) (NCURSES_SP_DCLx
+			int yold, int xold, int ynew, int xnew)
 {
     NCURSES_CH_T oldattr;
     int code;
@@ -863,7 +943,7 @@
     TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%d,%d,%d,%d)"),
 				  yold, xold, ynew, xnew));
 
-    if (SP == 0) {
+    if (SP_PARM == 0) {
 	code = ERR;
     } else if (yold == ynew && xold == xnew) {
 	code = OK;
@@ -874,9 +954,9 @@
 	 * column position implied by wraparound or the lack thereof and
 	 * rolling up the screen to get ynew on the screen.
 	 */
-	if (xnew >= screen_columns) {
-	    ynew += xnew / screen_columns;
-	    xnew %= screen_columns;
+	if (xnew >= screen_columns(SP_PARM)) {
+	    ynew += xnew / screen_columns(SP_PARM);
+	    xnew %= screen_columns(SP_PARM);
 	}
 
 	/*
@@ -884,38 +964,40 @@
 	 * character set -- these have a strong tendency to screw up the CR &
 	 * LF used for local character motions!
 	 */
-	oldattr = SCREEN_ATTRS(SP);
+	oldattr = SCREEN_ATTRS(SP_PARM);
 	if ((AttrOf(oldattr) & A_ALTCHARSET)
 	    || (AttrOf(oldattr) && !move_standout_mode)) {
 	    TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move",
 			       (unsigned long) AttrOf(oldattr),
 			       _traceattr(AttrOf(oldattr))));
-	    (void) VIDATTR(A_NORMAL, 0);
+	    (void) VIDATTR(SP_PARM, A_NORMAL, 0);
 	}
 
-	if (xold >= screen_columns) {
+	if (xold >= screen_columns(SP_PARM)) {
 	    int l;
 
-	    if (SP->_nl) {
-		l = (xold + 1) / screen_columns;
+	    if (SP_PARM->_nl) {
+		l = (xold + 1) / screen_columns(SP_PARM);
 		yold += l;
-		if (yold >= screen_lines)
-		    l -= (yold - screen_lines - 1);
+		if (yold >= screen_lines(SP_PARM))
+		    l -= (yold - screen_lines(SP_PARM) - 1);
 
 		if (l > 0) {
 		    if (carriage_return) {
-			TPUTS_TRACE("carriage_return");
-			putp(carriage_return);
+			NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+						   "carriage_return",
+						   carriage_return);
 		    } else
-			_nc_outch('\r');
+			NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\r');
 		    xold = 0;
 
 		    while (l > 0) {
 			if (newline) {
-			    TPUTS_TRACE("newline");
-			    putp(newline);
+			    NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx
+						       "newline",
+						       newline);
 			} else
-			    _nc_outch('\n');
+			    NCURSES_SP_NAME(_nc_outch) (NCURSES_SP_ARGx '\n');
 			l--;
 		    }
 		}
@@ -929,27 +1011,35 @@
 	    }
 	}
 
-	if (yold > screen_lines - 1)
-	    yold = screen_lines - 1;
-	if (ynew > screen_lines - 1)
-	    ynew = screen_lines - 1;
+	if (yold > screen_lines(SP_PARM) - 1)
+	    yold = screen_lines(SP_PARM) - 1;
+	if (ynew > screen_lines(SP_PARM) - 1)
+	    ynew = screen_lines(SP_PARM) - 1;
 
 	/* destination location is on screen now */
-	code = onscreen_mvcur(yold, xold, ynew, xnew, TRUE);
+	code = onscreen_mvcur(NCURSES_SP_ARGx yold, xold, ynew, xnew, TRUE);
 
 	/*
 	 * Restore attributes if we disabled them before moving.
 	 */
-	if (!SameAttrOf(oldattr, SCREEN_ATTRS(SP))) {
+	if (!SameAttrOf(oldattr, SCREEN_ATTRS(SP_PARM))) {
 	    TR(TRACE_CHARPUT, ("turning on (%#lx) %s after move",
 			       (unsigned long) AttrOf(oldattr),
 			       _traceattr(AttrOf(oldattr))));
-	    (void) VIDATTR(AttrOf(oldattr), GetPair(oldattr));
+	    (void) VIDATTR(SP_PARM, AttrOf(oldattr), GetPair(oldattr));
 	}
     }
     returnCode(code);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+mvcur(int yold, int xold, int ynew, int xnew)
+{
+    return NCURSES_SP_NAME(mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew);
+}
+#endif
+
 #if defined(TRACE) || defined(NCURSES_TEST)
 NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL;
 #endif
@@ -1212,25 +1302,25 @@
 			   speeds[i], overhead, totalest);
 	    }
 	} else if (buf[0] == 'c') {
-	    (void) printf("char padding: %d\n", SP->_char_padding);
-	    (void) printf("cr cost: %d\n", SP->_cr_cost);
-	    (void) printf("cup cost: %d\n", SP->_cup_cost);
-	    (void) printf("home cost: %d\n", SP->_home_cost);
-	    (void) printf("ll cost: %d\n", SP->_ll_cost);
+	    (void) printf("char padding: %d\n", CURRENT_SCREEN->_char_padding);
+	    (void) printf("cr cost: %d\n", CURRENT_SCREEN->_cr_cost);
+	    (void) printf("cup cost: %d\n", CURRENT_SCREEN->_cup_cost);
+	    (void) printf("home cost: %d\n", CURRENT_SCREEN->_home_cost);
+	    (void) printf("ll cost: %d\n", CURRENT_SCREEN->_ll_cost);
 #if USE_HARD_TABS
-	    (void) printf("ht cost: %d\n", SP->_ht_cost);
-	    (void) printf("cbt cost: %d\n", SP->_cbt_cost);
+	    (void) printf("ht cost: %d\n", CURRENT_SCREEN->_ht_cost);
+	    (void) printf("cbt cost: %d\n", CURRENT_SCREEN->_cbt_cost);
 #endif /* USE_HARD_TABS */
-	    (void) printf("cub1 cost: %d\n", SP->_cub1_cost);
-	    (void) printf("cuf1 cost: %d\n", SP->_cuf1_cost);
-	    (void) printf("cud1 cost: %d\n", SP->_cud1_cost);
-	    (void) printf("cuu1 cost: %d\n", SP->_cuu1_cost);
-	    (void) printf("cub cost: %d\n", SP->_cub_cost);
-	    (void) printf("cuf cost: %d\n", SP->_cuf_cost);
-	    (void) printf("cud cost: %d\n", SP->_cud_cost);
-	    (void) printf("cuu cost: %d\n", SP->_cuu_cost);
-	    (void) printf("hpa cost: %d\n", SP->_hpa_cost);
-	    (void) printf("vpa cost: %d\n", SP->_vpa_cost);
+	    (void) printf("cub1 cost: %d\n", CURRENT_SCREEN->_cub1_cost);
+	    (void) printf("cuf1 cost: %d\n", CURRENT_SCREEN->_cuf1_cost);
+	    (void) printf("cud1 cost: %d\n", CURRENT_SCREEN->_cud1_cost);
+	    (void) printf("cuu1 cost: %d\n", CURRENT_SCREEN->_cuu1_cost);
+	    (void) printf("cub cost: %d\n", CURRENT_SCREEN->_cub_cost);
+	    (void) printf("cuf cost: %d\n", CURRENT_SCREEN->_cuf_cost);
+	    (void) printf("cud cost: %d\n", CURRENT_SCREEN->_cud_cost);
+	    (void) printf("cuu cost: %d\n", CURRENT_SCREEN->_cuu_cost);
+	    (void) printf("hpa cost: %d\n", CURRENT_SCREEN->_hpa_cost);
+	    (void) printf("vpa cost: %d\n", CURRENT_SCREEN->_vpa_cost);
 	} else if (buf[0] == 'x' || buf[0] == 'q')
 	    break;
 	else
diff -Naur ncurses-5.7.orig/ncurses/tty/lib_tstp.c ncurses-5.7/ncurses/tty/lib_tstp.c
--- ncurses-5.7.orig/ncurses/tty/lib_tstp.c	2008-05-03 09:24:56.000000000 -0700
+++ ncurses-5.7/ncurses/tty/lib_tstp.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -46,7 +46,7 @@
 #define _POSIX_SOURCE
 #endif
 
-MODULE_ID("$Id: lib_tstp.c,v 1.37 2008/05/03 16:24:56 tom Exp $")
+MODULE_ID("$Id: lib_tstp.c,v 1.39 2009/05/09 15:46:20 tom Exp $")
 
 #if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC)
 #define USE_SIGTSTP 1
@@ -59,16 +59,20 @@
 signal_name(int sig)
 {
     switch (sig) {
+#ifdef SIGALRM
     case SIGALRM:
 	return "SIGALRM";
+#endif
 #ifdef SIGCONT
     case SIGCONT:
 	return "SIGCONT";
 #endif
     case SIGINT:
 	return "SIGINT";
+#ifdef SIGQUIT
     case SIGQUIT:
 	return "SIGQUIT";
+#endif
     case SIGTERM:
 	return "SIGTERM";
 #ifdef SIGTSTP
@@ -136,6 +140,7 @@
 static void
 tstp(int dummy GCC_UNUSED)
 {
+    SCREEN *sp = CURRENT_SCREEN;
     sigset_t mask, omask;
     sigaction_t act, oact;
 
@@ -154,11 +159,11 @@
      * parent was stopped before us, and we would likely pick up the
      * settings already modified by the shell.
      */
-    if (SP != 0 && !SP->_endwin)	/* don't do this if we're not in curses */
+    if (sp != 0 && !sp->_endwin)	/* don't do this if we're not in curses */
 #if HAVE_TCGETPGRP
 	if (tcgetpgrp(STDIN_FILENO) == getpgrp())
 #endif
-	    def_prog_mode();
+	    NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_ARG);
 
     /*
      * Block window change and timer signals.  The latter
@@ -166,7 +171,9 @@
      * to repaint the screen.
      */
     (void) sigemptyset(&mask);
+#ifdef SIGALRM
     (void) sigaddset(&mask, SIGALRM);
+#endif
 #if USE_SIGWINCH
     (void) sigaddset(&mask, SIGWINCH);
 #endif
@@ -185,7 +192,7 @@
      * End window mode, which also resets the terminal state to the
      * original (pre-curses) modes.
      */
-    endwin();
+    NCURSES_SP_NAME(endwin) (NCURSES_SP_ARG);
 
     /* Unblock SIGTSTP. */
     (void) sigemptyset(&mask);
@@ -212,19 +219,19 @@
 
     T(("SIGCONT received"));
     sigaction(SIGTSTP, &oact, NULL);
-    flushinp();
+    NCURSES_SP_NAME(flushinp) (NCURSES_SP_ARG);
 
     /*
      * If the user modified the tty state while suspended, he wants
      * those changes to stick.  So save the new "default" terminal state.
      */
-    def_shell_mode();
+    NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_ARG);
 
     /*
      * This relies on the fact that doupdate() will restore the
      * program-mode tty state, and issue enter_ca_mode if need be.
      */
-    doupdate();
+    NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG);
 
     /* Reset the signals. */
     (void) sigprocmask(SIG_SETMASK, &omask, NULL);
@@ -234,6 +241,8 @@
 static void
 cleanup(int sig)
 {
+    SCREEN *sp = CURRENT_SCREEN;
+
     /*
      * Actually, doing any sort of I/O from within an signal handler is
      * "unsafe".  But we'll _try_ to clean up the screen and terminal
@@ -241,7 +250,10 @@
      */
     if (!_nc_globals.cleanup_nested++
 	&& (sig == SIGINT
-	    || sig == SIGQUIT)) {
+#ifdef SIGQUIT
+	    || sig == SIGQUIT
+#endif
+	)) {
 #if HAVE_SIGACTION || HAVE_SIGVEC
 	sigaction_t act;
 	sigemptyset(&act.sa_mask);
@@ -257,12 +269,12 @@
 		if (scan->_ofp != 0
 		    && isatty(fileno(scan->_ofp))) {
 		    scan->_cleanup = TRUE;
-		    scan->_outch = _nc_outch;
+		    scan->_outch = NCURSES_SP_NAME(_nc_outch);
 		}
 		set_term(scan);
-		endwin();
-		if (SP)
-		    SP->_endwin = FALSE;	/* in case we have an atexit! */
+		NCURSES_SP_NAME(endwin) (NCURSES_SP_ARG);
+		if (sp)
+		    sp->_endwin = FALSE;	/* in case we have an atexit! */
 	    }
 	}
     }
diff -Naur ncurses-5.7.orig/ncurses/tty/lib_twait.c ncurses-5.7/ncurses/tty/lib_twait.c
--- ncurses-5.7.orig/ncurses/tty/lib_twait.c	2008-08-30 13:08:19.000000000 -0700
+++ ncurses-5.7/ncurses/tty/lib_twait.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -65,10 +65,12 @@
 #  include <sys/select.h>
 # endif
 #endif
-
+#ifdef __MINGW32__
+#  include <sys/time.h>
+#endif
 #undef CUR
 
-MODULE_ID("$Id: lib_twait.c,v 1.59 2008/08/30 20:08:19 tom Exp $")
+MODULE_ID("$Id: lib_twait.c,v 1.60 2009/04/18 21:01:13 tom Exp $")
 
 static long
 _nc_gettime(TimeType * t0, bool first)
@@ -124,15 +126,27 @@
 }
 #endif /* NCURSES_WGETCH_EVENTS */
 
+#if (USE_FUNC_POLL || HAVE_SELECT)
+#  define MAYBE_UNUSED
+#else
+#  define MAYBE_UNUSED GCC_UNUSED
+#endif
+
+#if (USE_FUNC_POLL || HAVE_SELECT)
+#  define MAYBE_UNUSED
+#else
+#  define MAYBE_UNUSED GCC_UNUSED
+#endif
+
 /*
  * Wait a specified number of milliseconds, returning nonzero if the timer
  * didn't expire before there is activity on the specified file descriptors.
  * The file-descriptors are specified by the mode:
- *	0 - none (absolute time)
- *	1 - ncurses' normal input-descriptor
- *	2 - mouse descriptor, if any
- *	3 - either input or mouse.
- *
+ *	TW_NONE    0 - none (absolute time)
+ *	TW_INPUT   1 - ncurses' normal input-descriptor
+ *	TW_MOUSE   2 - mouse descriptor, if any
+ *	TW_ANY     3 - either input or mouse.
+ *      TW_EVENT   4 -
  * Experimental:  if NCURSES_WGETCH_EVENTS is defined, (mode & 4) determines
  * whether to pay attention to evl argument.  If set, the smallest of
  * millisecond and of timeout of evl is taken.
@@ -143,16 +157,18 @@
  * descriptors.
  */
 NCURSES_EXPORT(int)
-_nc_timed_wait(SCREEN *sp,
-	       int mode,
+_nc_timed_wait(SCREEN *sp MAYBE_UNUSED,
+	       int mode MAYBE_UNUSED,
 	       int milliseconds,
 	       int *timeleft
 	       EVENTLIST_2nd(_nc_eventlist * evl))
 {
-    int fd;
     int count;
-    int result = 0;
+    int result = TW_NONE;
     TimeType t0;
+#if (USE_FUNC_POLL || HAVE_SELECT)
+    int fd;
+#endif
 
 #ifdef NCURSES_WGETCH_EVENTS
     int timeout_is_event = 0;
@@ -174,7 +190,7 @@
 		      milliseconds, mode));
 
 #ifdef NCURSES_WGETCH_EVENTS
-    if (mode & 4) {
+    if (mode & TW_EVENT) {
 	int event_delay = _nc_eventlist_timeout(evl);
 
 	if (event_delay >= 0
@@ -193,7 +209,7 @@
     count = 0;
 
 #ifdef NCURSES_WGETCH_EVENTS
-    if ((mode & 4) && evl)
+    if ((mode & TW_EVENT) && evl)
 	evl->result_flags = 0;
 #endif
 
@@ -201,23 +217,23 @@
     memset(fd_list, 0, sizeof(fd_list));
 
 #ifdef NCURSES_WGETCH_EVENTS
-    if ((mode & 4) && evl)
+    if ((mode & TW_EVENT) && evl)
 	fds = typeMalloc(struct pollfd, MIN_FDS + evl->count);
 #endif
 
-    if (mode & 1) {
+    if (mode & TW_INPUT) {
 	fds[count].fd = sp->_ifd;
 	fds[count].events = POLLIN;
 	count++;
     }
-    if ((mode & 2)
+    if ((mode & TW_MOUSE)
 	&& (fd = sp->_mouse_fd) >= 0) {
 	fds[count].fd = fd;
 	fds[count].events = POLLIN;
 	count++;
     }
 #ifdef NCURSES_WGETCH_EVENTS
-    if ((mode & 4) && evl) {
+    if ((mode & TW_EVENT) && evl) {
 	for (n = 0; n < evl->count; ++n) {
 	    _nc_event *ev = evl->events[n];
 
@@ -234,7 +250,7 @@
     result = poll(fds, (unsigned) count, milliseconds);
 
 #ifdef NCURSES_WGETCH_EVENTS
-    if ((mode & 4) && evl) {
+    if ((mode & TW_EVENT) && evl) {
 	int c;
 
 	if (!result)
@@ -276,8 +292,8 @@
      *
      * FIXME: this assumes mode&1 if milliseconds < 0 (see lib_getch.c).
      */
-    result = 0;
-    if (mode & 1) {
+    result = TW_NONE;
+    if (mode & TW_INPUT) {
 	int step = (milliseconds < 0) ? 0 : 5000;
 	bigtime_t d;
 	bigtime_t useconds = milliseconds * 1000;
@@ -313,17 +329,17 @@
      */
     FD_ZERO(&set);
 
-    if (mode & 1) {
+    if (mode & TW_INPUT) {
 	FD_SET(sp->_ifd, &set);
 	count = sp->_ifd + 1;
     }
-    if ((mode & 2)
+    if ((mode & TW_MOUSE)
 	&& (fd = sp->_mouse_fd) >= 0) {
 	FD_SET(fd, &set);
 	count = max(fd, count) + 1;
     }
 #ifdef NCURSES_WGETCH_EVENTS
-    if ((mode & 4) && evl) {
+    if ((mode & TW_EVENT) && evl) {
 	for (n = 0; n < evl->count; ++n) {
 	    _nc_event *ev = evl->events[n];
 
@@ -346,7 +362,7 @@
     }
 
 #ifdef NCURSES_WGETCH_EVENTS
-    if ((mode & 4) && evl) {
+    if ((mode & TW_EVENT) && evl) {
 	evl->result_flags = 0;
 	for (n = 0; n < evl->count; ++n) {
 	    _nc_event *ev = evl->events[n];
@@ -428,22 +444,22 @@
 		}
 	    }
 #elif defined(__BEOS__)
-	    result = 1;		/* redundant, but simple */
+	    result = TW_INPUT;	/* redundant, but simple */
 #elif HAVE_SELECT
-	    if ((mode & 2)
+	    if ((mode & TW_MOUSE)
 		&& (fd = sp->_mouse_fd) >= 0
 		&& FD_ISSET(fd, &set))
-		result |= 2;
-	    if ((mode & 1)
+		result |= TW_MOUSE;
+	    if ((mode & TW_INPUT)
 		&& FD_ISSET(sp->_ifd, &set))
-		result |= 1;
+		result |= TW_INPUT;
 #endif
 	} else
 	    result = 0;
     }
 #ifdef NCURSES_WGETCH_EVENTS
-    if ((mode & 4) && evl && evl->result_flags)
-	result |= 4;
+    if ((mode & TW_EVENT) && evl && evl->result_flags)
+	result |= TW_EVENT;
 #endif
 
     return (result);
diff -Naur ncurses-5.7.orig/ncurses/tty/lib_vidattr.c ncurses-5.7/ncurses/tty/lib_vidattr.c
--- ncurses-5.7.orig/ncurses/tty/lib_vidattr.c	2007-06-30 14:58:04.000000000 -0700
+++ ncurses-5.7/ncurses/tty/lib_vidattr.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2007,2009 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            *
@@ -29,7 +29,8 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
- *     and: Thomas E. Dickey                        1996 on                 *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*
@@ -65,9 +66,15 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_vidattr.c,v 1.49 2007/06/30 21:58:04 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_vidattr.c,v 1.56 2009/05/10 00:48:29 tom Exp $")
 
-#define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
+#define doPut(mode) \
+	TPUTS_TRACE(#mode); \
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx mode, 1, outc)
 
 #define TurnOn(mask,mode) \
 	if ((turn_on & mask) && mode) { doPut(mode); }
@@ -83,21 +90,24 @@
 		if ((pair != old_pair) \
 		 || (fix_pair0 && (pair == 0)) \
 		 || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \
-			_nc_do_color(old_pair, pair, reverse, outc); \
+		     NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx \
+		     		     old_pair, pair, reverse, outc); \
 		} \
 	}
 
 #define PreviousAttr _nc_prescreen.previous_attr
 
 NCURSES_EXPORT(int)
-vidputs(chtype newmode, int (*outc) (int))
+NCURSES_SP_NAME(vidputs) (NCURSES_SP_DCLx
+			  chtype newmode,
+			  NCURSES_SP_OUTC outc)
 {
     attr_t turn_on, turn_off;
     int pair;
     bool reverse = FALSE;
-    bool can_color = (SP == 0 || SP->_coloron);
+    bool can_color = (SP_PARM == 0 || SP_PARM->_coloron);
 #if NCURSES_EXT_FUNCS
-    bool fix_pair0 = (SP != 0 && SP->_coloron && !SP->_default_color);
+    bool fix_pair0 = (SP_PARM != 0 && SP_PARM->_coloron && !SP_PARM->_default_color);
 #else
 #define fix_pair0 FALSE
 #endif
@@ -106,12 +116,12 @@
     T((T_CALLED("vidputs(%s)"), _traceattr(newmode)));
 
     /* this allows us to go on whether or not newterm() has been called */
-    if (SP)
-	PreviousAttr = AttrOf(SCREEN_ATTRS(SP));
+    if (SP_PARM)
+	PreviousAttr = AttrOf(SCREEN_ATTRS(SP_PARM));
 
     TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(PreviousAttr)));
 
-    if ((SP != 0)
+    if ((SP_PARM != 0)
 	&& (magic_cookie_glitch > 0)) {
 #if USE_XMC_SUPPORT
 	static const chtype table[] =
@@ -135,7 +145,7 @@
 	 * the terminfo max_attributes value.
 	 */
 	for (n = 0; n < SIZEOF(table); ++n) {
-	    if ((table[n] & SP->_ok_attributes) == 0) {
+	    if ((table[n] & SP_PARM->_ok_attributes) == 0) {
 		newmode &= ~table[n];
 	    } else if ((table[n] & newmode) != 0) {
 		if (used++ >= limit) {
@@ -148,7 +158,7 @@
 	    }
 	}
 #else
-	newmode &= ~(SP->_xmc_suppress);
+	newmode &= ~(SP_PARM->_xmc_suppress);
 #endif
 	TR(TRACE_ATTRS, ("suppressed attribute is %s", _traceattr(newmode)));
     }
@@ -208,10 +218,10 @@
 	    if (exit_attribute_mode) {
 		doPut(exit_attribute_mode);
 	    } else {
-		if (!SP || SP->_use_rmul) {
+		if (!SP_PARM || SP_PARM->_use_rmul) {
 		    TurnOff(A_UNDERLINE, exit_underline_mode);
 		}
-		if (!SP || SP->_use_rmso) {
+		if (!SP_PARM || SP_PARM->_use_rmso) {
 		    TurnOff(A_STANDOUT, exit_standout_mode);
 		}
 	    }
@@ -222,16 +232,18 @@
     } else if (set_attributes) {
 	if (turn_on || turn_off) {
 	    TPUTS_TRACE("set_attributes");
-	    tputs(tparm(set_attributes,
-			(newmode & A_STANDOUT) != 0,
-			(newmode & A_UNDERLINE) != 0,
-			(newmode & A_REVERSE) != 0,
-			(newmode & A_BLINK) != 0,
-			(newmode & A_DIM) != 0,
-			(newmode & A_BOLD) != 0,
-			(newmode & A_INVIS) != 0,
-			(newmode & A_PROTECT) != 0,
-			(newmode & A_ALTCHARSET) != 0), 1, outc);
+	    NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				    tparm(set_attributes,
+					  (newmode & A_STANDOUT) != 0,
+					  (newmode & A_UNDERLINE) != 0,
+					  (newmode & A_REVERSE) != 0,
+					  (newmode & A_BLINK) != 0,
+					  (newmode & A_DIM) != 0,
+					  (newmode & A_BOLD) != 0,
+					  (newmode & A_INVIS) != 0,
+					  (newmode & A_PROTECT) != 0,
+					  (newmode & A_ALTCHARSET) != 0),
+				    1, outc);
 	    PreviousAttr &= ALL_BUT_COLOR;
 	}
 	SetColorsIf((pair != 0) || fix_pair0, PreviousAttr);
@@ -241,11 +253,11 @@
 
 	TurnOff(A_ALTCHARSET, exit_alt_charset_mode);
 
-	if (!SP || SP->_use_rmul) {
+	if (!SP_PARM || SP_PARM->_use_rmul) {
 	    TurnOff(A_UNDERLINE, exit_underline_mode);
 	}
 
-	if (!SP || SP->_use_rmso) {
+	if (!SP_PARM || SP_PARM->_use_rmso) {
 	    TurnOff(A_STANDOUT, exit_standout_mode);
 	}
 
@@ -282,8 +294,8 @@
     if (reverse)
 	newmode |= A_REVERSE;
 
-    if (SP)
-	SetAttr(SCREEN_ATTRS(SP), newmode);
+    if (SP_PARM)
+	SetAttr(SCREEN_ATTRS(SP_PARM), newmode);
     else
 	PreviousAttr = newmode;
 
@@ -291,15 +303,33 @@
 }
 
 NCURSES_EXPORT(int)
+NCURSES_SP_NAME(vidattr) (NCURSES_SP_DCLx
+			  chtype newmode)
+{
+    return NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx
+				     newmode,
+				     NCURSES_SP_NAME(_nc_outch));
+}
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+vidputs(chtype newmode, NCURSES_OUTC outc)
+{
+    SetSafeOutcWrapper(outc);
+    return NCURSES_SP_NAME(vidputs) (CURRENT_SCREEN, newmode, _nc_outc_wrapper);
+}
+
+NCURSES_EXPORT(int)
 vidattr(chtype newmode)
 {
     T((T_CALLED("vidattr(%s)"), _traceattr(newmode)));
 
     returnCode(vidputs(newmode, _nc_outch));
 }
+#endif
 
 NCURSES_EXPORT(chtype)
-termattrs(void)
+NCURSES_SP_NAME(termattrs) (NCURSES_SP_DCL0)
 {
     chtype attrs = A_NORMAL;
 
@@ -331,8 +361,16 @@
     if (enter_underline_mode)
 	attrs |= A_UNDERLINE;
 
-    if (SP->_coloron)
+    if (SP_PARM->_coloron)
 	attrs |= A_COLOR;
 
-    returnChar(attrs);
+    returnChtype(attrs);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(chtype)
+termattrs(void)
+{
+    return NCURSES_SP_NAME(termattrs) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/tty/tty_update.c ncurses-5.7/ncurses/tty/tty_update.c
--- ncurses-5.7.orig/ncurses/tty/tty_update.c	2008-08-30 13:08:19.000000000 -0700
+++ ncurses-5.7/ncurses/tty/tty_update.c	2009-06-05 14:01:52.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -30,6 +30,7 @@
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995               *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
  *     and: Thomas E. Dickey                        1996-on                 *
+ *     and: Juergen Pfeifer                         2009                    *
  ****************************************************************************/
 
 /*-----------------------------------------------------------------
@@ -38,12 +39,16 @@
  *
  * 	The routine doupdate() and its dependents.
  * 	All physical output is concentrated here (except _nc_outch()
-  *	in lib_tputs.c).
+ *	in lib_tputs.c).
  *
  *-----------------------------------------------------------------*/
 
 #include <curses.priv.h>
 
+#ifndef CUR
+#define CUR SP_TERMTYPE
+#endif
+
 #if defined __HAIKU__ && defined __BEOS__
 #undef __BEOS__
 #endif
@@ -76,9 +81,8 @@
 #endif
 
 #include <ctype.h>
-#include <term.h>
 
-MODULE_ID("$Id: tty_update.c,v 1.246 2008/08/30 20:08:19 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.256 2009/05/17 00:13:49 tom Exp $")
 
 /*
  * This define controls the line-breakout optimization.  Every once in a
@@ -91,7 +95,7 @@
  */
 #define CHECK_INTERVAL	5
 
-#define FILL_BCE() (SP->_coloron && !SP->_default_color && !back_color_erase)
+#define FILL_BCE(sp) (sp->_coloron && !sp->_default_color && !back_color_erase)
 
 static const NCURSES_CH_T blankchar = NewChar(BLANK_TEXT);
 static NCURSES_CH_T normal = NewChar(BLANK_TEXT);
@@ -103,13 +107,23 @@
  */
 /* #define POSITION_DEBUG */
 
-static NCURSES_INLINE NCURSES_CH_T ClrBlank(WINDOW *win);
+static NCURSES_INLINE NCURSES_CH_T ClrBlank(NCURSES_SP_DCLx WINDOW *win);
+
+#if NCURSES_SP_FUNCS
+static int ClrBottom(SCREEN *, int total);
+static void ClearScreen(SCREEN *, NCURSES_CH_T blank);
+static void ClrUpdate(SCREEN *);
+static void DelChar(SCREEN *, int count);
+static void InsStr(SCREEN *, NCURSES_CH_T * line, int count);
+static void TransformLine(SCREEN *, int const lineno);
+#else
 static int ClrBottom(int total);
 static void ClearScreen(NCURSES_CH_T blank);
 static void ClrUpdate(void);
 static void DelChar(int count);
 static void InsStr(NCURSES_CH_T * line, int count);
 static void TransformLine(int const lineno);
+#endif
 
 #ifdef POSITION_DEBUG
 /****************************************************************************
@@ -119,7 +133,7 @@
  ****************************************************************************/
 
 static void
-position_check(int expected_y, int expected_x, char *legend)
+position_check(NCURSES_SP_DCLx int expected_y, int expected_x, char *legend)
 /* check to see if the real cursor position matches the virtual */
 {
     char buf[20];
@@ -129,10 +143,10 @@
     if (!_nc_tracing || (expected_y < 0 && expected_x < 0))
 	return;
 
-    _nc_flush();
+    NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
     memset(buf, '\0', sizeof(buf));
-    putp("\033[6n");		/* only works on ANSI-compatibles */
-    _nc_flush();
+    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx "\033[6n");	/* only works on ANSI-compatibles */
+    NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
     *(s = buf) = 0;
     do {
 	int ask = sizeof(buf) - 1 - (s - buf);
@@ -152,8 +166,12 @@
 	if (expected_y < 0)
 	    expected_y = y - 1;
 	if (y - 1 != expected_y || x - 1 != expected_x) {
-	    beep();
-	    tputs(tparm("\033[%d;%dH", expected_y + 1, expected_x + 1), 1, _nc_outch);
+	    NCURSES_SP_NAME(beep) (NCURSES_SP_ARG);
+	    NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				    tparm("\033[%d;%dH",
+					  expected_y + 1,
+					  expected_x + 1),
+				    1, NCURSES_SP_NAME(_nc_outch));
 	    _tracef("position seen (%d, %d) doesn't match expected one (%d, %d) in %s",
 		    y - 1, x - 1, expected_y, expected_x, legend);
 	} else {
@@ -162,7 +180,7 @@
     }
 }
 #else
-#define position_check(expected_y, expected_x, legend)	/* nothing */
+#define position_check(sp, expected_y, expected_x, legend)	/* nothing */
 #endif /* POSITION_DEBUG */
 
 /****************************************************************************
@@ -172,19 +190,19 @@
  ****************************************************************************/
 
 static NCURSES_INLINE void
-GoTo(int const row, int const col)
+GoTo(NCURSES_SP_DCLx int const row, int const col)
 {
     TR(TRACE_MOVE, ("GoTo(%d, %d) from (%d, %d)",
-		    row, col, SP->_cursrow, SP->_curscol));
+		    row, col, SP_PARM->_cursrow, SP_PARM->_curscol));
 
-    position_check(SP->_cursrow, SP->_curscol, "GoTo");
+    position_check(SP_PARM, SP_PARM->_cursrow, SP_PARM->_curscol, "GoTo");
 
-    mvcur(SP->_cursrow, SP->_curscol, row, col);
-    position_check(SP->_cursrow, SP->_curscol, "GoTo2");
+    mvcur(SP_PARM->_cursrow, SP_PARM->_curscol, row, col);
+    position_check(SP_PARM, SP_PARM->_cursrow, SP_PARM->_curscol, "GoTo2");
 }
 
 static NCURSES_INLINE void
-PutAttrChar(CARG_CH_T ch)
+PutAttrChar(NCURSES_SP_DCLx CARG_CH_T ch)
 {
     int chlen = 1;
     NCURSES_CH_T my_ch;
@@ -194,7 +212,7 @@
 
     TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
 		       _tracech_t(ch),
-		       SP->_cursrow, SP->_curscol));
+		       SP_PARM->_cursrow, SP_PARM->_curscol));
 #if USE_WIDEC_SUPPORT
     /*
      * If this is not a valid character, there is nothing more to do.
@@ -224,12 +242,12 @@
 	 */
 	if (is8bits(CharOf(CHDEREF(ch)))
 	    && (isprint(CharOf(CHDEREF(ch)))
-		|| (SP->_legacy_coding > 0 && CharOf(CHDEREF(ch)) >= 160)
-		|| (SP->_legacy_coding > 1 && CharOf(CHDEREF(ch)) >= 128)
+		|| (SP_PARM->_legacy_coding > 0 && CharOf(CHDEREF(ch)) >= 160)
+		|| (SP_PARM->_legacy_coding > 1 && CharOf(CHDEREF(ch)) >= 128)
 		|| (AttrOf(attr) & A_ALTCHARSET
 		    && ((CharOfD(ch) < ACS_LEN
-			 && SP->_acs_map != 0
-			 && SP->_acs_map[CharOfD(ch)] != 0)
+			 && SP_PARM->_acs_map != 0
+			 && SP_PARM->_acs_map[CharOfD(ch)] != 0)
 			|| (CharOfD(ch) >= 128))))) {
 	    ;
 	} else {
@@ -241,7 +259,7 @@
 #endif
 
     if ((AttrOf(attr) & A_ALTCHARSET)
-	&& SP->_acs_map != 0
+	&& SP_PARM->_acs_map != 0
 	&& CharOfD(ch) < ACS_LEN) {
 	my_ch = CHDEREF(ch);	/* work around const param */
 #if USE_WIDEC_SUPPORT
@@ -251,8 +269,8 @@
 	 * character, and uses the wide-character mapping when we expect the
 	 * normal one to be broken (by mis-design ;-).
 	 */
-	if (SP->_screen_acs_fix
-	    && SP->_screen_acs_map[CharOf(my_ch)]) {
+	if (SP_PARM->_screen_acs_fix
+	    && SP_PARM->_screen_acs_map[CharOf(my_ch)]) {
 	    RemAttr(attr, A_ALTCHARSET);
 	    my_ch = _nc_wacs[CharOf(my_ch)];
 	}
@@ -265,9 +283,9 @@
 	 */
 	if (AttrOf(attr) & A_ALTCHARSET) {
 	    int j = CharOfD(ch);
-	    chtype temp = UChar(SP->_acs_map[j]);
+	    chtype temp = UChar(SP_PARM->_acs_map[j]);
 
-	    if (!(SP->_screen_acs_map[j])) {
+	    if (!(SP_PARM->_screen_acs_map[j])) {
 		RemAttr(attr, A_ALTCHARSET);
 		if (temp == 0)
 		    temp = ' ';
@@ -282,28 +300,28 @@
 	ch = CHREF(tilde);
     }
 
-    UpdateAttrs(attr);
+    UpdateAttrs(SP_PARM, attr);
 #if !USE_WIDEC_SUPPORT
     /* FIXME - we do this special case for signal handling, should see how to
      * make it work for wide characters.
      */
-    if (SP->_outch != 0) {
-	SP->_outch(UChar(ch));
+    if (SP_PARM->_outch != 0) {
+	SP_PARM->_outch(NCURSES_SP_ARGx UChar(ch));
     } else
 #endif
     {
-	PUTC(CHDEREF(ch), SP->_ofp);	/* macro's fastest... */
+	PUTC(CHDEREF(ch), SP_PARM->_ofp);	/* macro's fastest... */
 	COUNT_OUTCHARS(1);
     }
-    SP->_curscol += chlen;
+    SP_PARM->_curscol += chlen;
     if (char_padding) {
 	TPUTS_TRACE("char_padding");
-	putp(char_padding);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx char_padding);
     }
 }
 
 static bool
-check_pending(void)
+check_pending(NCURSES_SP_DCL0)
 /* check for pending input */
 {
     bool have_pending = FALSE;
@@ -313,13 +331,13 @@
      * have the refreshing slow down drastically (or stop) if there's an
      * unread character available.
      */
-    if (SP->_fifohold != 0)
+    if (SP_PARM->_fifohold != 0)
 	return FALSE;
 
-    if (SP->_checkfd >= 0) {
+    if (SP_PARM->_checkfd >= 0) {
 #if USE_FUNC_POLL
 	struct pollfd fds[1];
-	fds[0].fd = SP->_checkfd;
+	fds[0].fd = SP_PARM->_checkfd;
 	fds[0].events = POLLIN;
 	if (poll(fds, 1, 0) > 0) {
 	    have_pending = TRUE;
@@ -347,43 +365,52 @@
 	    ktimeout.tv_usec = 0;
 
 	FD_ZERO(&fdset);
-	FD_SET(SP->_checkfd, &fdset);
-	if (select(SP->_checkfd + 1, &fdset, NULL, NULL, &ktimeout) != 0) {
+	FD_SET(SP_PARM->_checkfd, &fdset);
+	if (select(SP_PARM->_checkfd + 1, &fdset, NULL, NULL, &ktimeout) != 0) {
 	    have_pending = TRUE;
 	}
 #endif
     }
     if (have_pending) {
-	SP->_fifohold = 5;
-	_nc_flush();
+	SP_PARM->_fifohold = 5;
+	NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
     }
     return FALSE;
 }
 
 /* put char at lower right corner */
 static void
-PutCharLR(const ARG_CH_T ch)
+PutCharLR(NCURSES_SP_DCLx const ARG_CH_T ch)
 {
     if (!auto_right_margin) {
 	/* we can put the char directly */
-	PutAttrChar(ch);
+	PutAttrChar(NCURSES_SP_ARGx ch);
     } else if (enter_am_mode && exit_am_mode) {
 	/* we can suppress automargin */
 	TPUTS_TRACE("exit_am_mode");
-	putp(exit_am_mode);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_am_mode);
 
-	PutAttrChar(ch);
-	SP->_curscol--;
-	position_check(SP->_cursrow, SP->_curscol, "exit_am_mode");
+	PutAttrChar(NCURSES_SP_ARGx ch);
+	SP_PARM->_curscol--;
+	position_check(SP_PARM,
+		       SP_PARM->_cursrow,
+		       SP_PARM->_curscol,
+		       "exit_am_mode");
 
 	TPUTS_TRACE("enter_am_mode");
-	putp(enter_am_mode);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx enter_am_mode);
     } else if ((enter_insert_mode && exit_insert_mode)
 	       || insert_character || parm_ich) {
-	GoTo(screen_lines - 1, screen_columns - 2);
-	PutAttrChar(ch);
-	GoTo(screen_lines - 1, screen_columns - 2);
-	InsStr(newscr->_line[screen_lines - 1].text + screen_columns - 2, 1);
+	GoTo(NCURSES_SP_ARGx
+	     screen_lines(SP_PARM) - 1,
+	     screen_columns(SP_PARM) - 2);
+	PutAttrChar(NCURSES_SP_ARGx ch);
+	GoTo(NCURSES_SP_ARGx
+	     screen_lines(SP_PARM) - 1,
+	     screen_columns(SP_PARM) - 2);
+	InsStr(NCURSES_SP_ARGx
+	       NewScreen(SP_PARM)->_line[screen_lines(SP_PARM) - 1].text +
+	       screen_columns(SP_PARM) - 2, 1);
     }
 }
 
@@ -391,7 +418,7 @@
  * Wrap the cursor position, i.e., advance to the beginning of the next line.
  */
 static void
-wrap_cursor(void)
+wrap_cursor(NCURSES_SP_DCL0)
 {
     if (eat_newline_glitch) {
 	/*
@@ -407,40 +434,45 @@
 	 * it's safe to just tell the code that the cursor is in hyperspace and
 	 * let the next mvcur() call straighten things out.
 	 */
-	SP->_curscol = -1;
-	SP->_cursrow = -1;
+	SP_PARM->_curscol = -1;
+	SP_PARM->_cursrow = -1;
     } else if (auto_right_margin) {
-	SP->_curscol = 0;
-	SP->_cursrow++;
+	SP_PARM->_curscol = 0;
+	SP_PARM->_cursrow++;
 	/*
 	 * We've actually moved - but may have to work around problems with
 	 * video attributes not working.
 	 */
-	if (!move_standout_mode && AttrOf(SCREEN_ATTRS(SP))) {
+	if (!move_standout_mode && AttrOf(SCREEN_ATTRS(SP_PARM))) {
 	    TR(TRACE_CHARPUT, ("turning off (%#lx) %s before wrapping",
-			       (unsigned long) AttrOf(SCREEN_ATTRS(SP)),
-			       _traceattr(AttrOf(SCREEN_ATTRS(SP)))));
-	    (void) VIDATTR(A_NORMAL, 0);
+			       (unsigned long) AttrOf(SCREEN_ATTRS(SP_PARM)),
+			       _traceattr(AttrOf(SCREEN_ATTRS(SP_PARM)))));
+	    (void) VIDATTR(SP_PARM, A_NORMAL, 0);
 	}
     } else {
-	SP->_curscol--;
+	SP_PARM->_curscol--;
     }
-    position_check(SP->_cursrow, SP->_curscol, "wrap_cursor");
+    position_check(SP_PARM,
+		   SP_PARM->_cursrow,
+		   SP_PARM->_curscol,
+		   "wrap_cursor");
 }
 
 static NCURSES_INLINE void
-PutChar(const ARG_CH_T ch)
+PutChar(NCURSES_SP_DCLx const ARG_CH_T ch)
 /* insert character, handling automargin stuff */
 {
-    if (SP->_cursrow == screen_lines - 1 && SP->_curscol == screen_columns - 1)
-	PutCharLR(ch);
-    else
-	PutAttrChar(ch);
+    if (SP_PARM->_cursrow == screen_lines(SP_PARM) - 1 &&
+	SP_PARM->_curscol == screen_columns(SP_PARM) - 1) {
+	PutCharLR(NCURSES_SP_ARGx ch);
+    } else {
+	PutAttrChar(NCURSES_SP_ARGx ch);
+    }
 
-    if (SP->_curscol >= screen_columns)
-	wrap_cursor();
+    if (SP_PARM->_curscol >= screen_columns(SP_PARM))
+	wrap_cursor(NCURSES_SP_ARG);
 
-    position_check(SP->_cursrow, SP->_curscol, "PutChar");
+    position_check(SP_PARM, SP_PARM->_cursrow, SP_PARM->_curscol, "PutChar");
 }
 
 /*
@@ -450,19 +482,19 @@
  * or can be output by clearing (A_COLOR in case of bce-terminal) are excluded.
  */
 static NCURSES_INLINE bool
-can_clear_with(ARG_CH_T ch)
+can_clear_with(NCURSES_SP_DCLx ARG_CH_T ch)
 {
-    if (!back_color_erase && SP->_coloron) {
+    if (!back_color_erase && SP_PARM->_coloron) {
 #if NCURSES_EXT_FUNCS
 	int pair;
 
-	if (!SP->_default_color)
+	if (!SP_PARM->_default_color)
 	    return FALSE;
-	if (SP->_default_fg != C_MASK || SP->_default_bg != C_MASK)
+	if (SP_PARM->_default_fg != C_MASK || SP_PARM->_default_bg != C_MASK)
 	    return FALSE;
 	if ((pair = GetPair(CHDEREF(ch))) != 0) {
 	    short fg, bg;
-	    pair_content(pair, &fg, &bg);
+	    NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx pair, &fg, &bg);
 	    if (fg != C_MASK || bg != C_MASK)
 		return FALSE;
 	}
@@ -488,7 +520,7 @@
  * This code is optimized using ech and rep.
  */
 static int
-EmitRange(const NCURSES_CH_T * ntext, int num)
+EmitRange(NCURSES_SP_DCLx const NCURSES_CH_T * ntext, int num)
 {
     int i;
 
@@ -500,13 +532,13 @@
 	    NCURSES_CH_T ntext0;
 
 	    while (num > 1 && !CharEq(ntext[0], ntext[1])) {
-		PutChar(CHREF(ntext[0]));
+		PutChar(NCURSES_SP_ARGx CHREF(ntext[0]));
 		ntext++;
 		num--;
 	    }
 	    ntext0 = ntext[0];
 	    if (num == 1) {
-		PutChar(CHREF(ntext0));
+		PutChar(NCURSES_SP_ARGx CHREF(ntext0));
 		return 0;
 	    }
 	    runcount = 2;
@@ -523,10 +555,10 @@
 	     * which it would be marginally advantageous.
 	     */
 	    if (erase_chars
-		&& runcount > SP->_ech_cost + SP->_cup_ch_cost
-		&& can_clear_with(CHREF(ntext0))) {
-		UpdateAttrs(ntext0);
-		putp(TPARM_1(erase_chars, runcount));
+		&& runcount > SP_PARM->_ech_cost + SP_PARM->_cup_ch_cost
+		&& can_clear_with(NCURSES_SP_ARGx CHREF(ntext0))) {
+		UpdateAttrs(SP_PARM, ntext0);
+		NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx TPARM_1(erase_chars, runcount));
 
 		/*
 		 * If this is the last part of the given interval,
@@ -534,27 +566,34 @@
 		 * last update on the line.
 		 */
 		if (runcount < num) {
-		    GoTo(SP->_cursrow, SP->_curscol + runcount);
+		    GoTo(NCURSES_SP_ARGx
+			 SP_PARM->_cursrow,
+			 SP_PARM->_curscol + runcount);
 		} else {
 		    return 1;	/* cursor stays in the middle */
 		}
-	    } else if (repeat_char && runcount > SP->_rep_cost) {
-		bool wrap_possible = (SP->_curscol + runcount >= screen_columns);
+	    } else if (repeat_char && runcount > SP_PARM->_rep_cost) {
+		bool wrap_possible = (SP_PARM->_curscol + runcount >=
+				      screen_columns(SP_PARM));
 		int rep_count = runcount;
 
 		if (wrap_possible)
 		    rep_count--;
 
-		UpdateAttrs(ntext0);
-		tputs(TPARM_2(repeat_char, CharOf(ntext0), rep_count),
-		      rep_count, _nc_outch);
-		SP->_curscol += rep_count;
+		UpdateAttrs(SP_PARM, ntext0);
+		NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+					TPARM_2(repeat_char,
+						CharOf(ntext0),
+						rep_count),
+					rep_count,
+					NCURSES_SP_NAME(_nc_outch));
+		SP_PARM->_curscol += rep_count;
 
 		if (wrap_possible)
-		    PutChar(CHREF(ntext0));
+		    PutChar(NCURSES_SP_ARGx CHREF(ntext0));
 	    } else {
 		for (i = 0; i < runcount; i++)
-		    PutChar(CHREF(ntext[i]));
+		    PutChar(NCURSES_SP_ARGx CHREF(ntext[i]));
 	    }
 	    ntext += runcount;
 	    num -= runcount;
@@ -563,7 +602,7 @@
     }
 
     for (i = 0; i < num; i++)
-	PutChar(CHREF(ntext[i]));
+	PutChar(NCURSES_SP_ARGx CHREF(ntext[i]));
     return 0;
 }
 
@@ -576,39 +615,40 @@
  * Returns: same as EmitRange
  */
 static int
-PutRange(const NCURSES_CH_T * otext,
+PutRange(NCURSES_SP_DCLx
+	 const NCURSES_CH_T * otext,
 	 const NCURSES_CH_T * ntext,
 	 int row,
 	 int first, int last)
 {
     int i, j, same;
 
-    TR(TRACE_CHARPUT, ("PutRange(%p, %p, %d, %d, %d)",
-		       otext, ntext, row, first, last));
+    TR(TRACE_CHARPUT, ("PutRange(%p, %p, %p, %d, %d, %d)",
+		       SP_PARM, otext, ntext, row, first, last));
 
     if (otext != ntext
-	&& (last - first + 1) > SP->_inline_cost) {
+	&& (last - first + 1) > SP_PARM->_inline_cost) {
 	for (j = first, same = 0; j <= last; j++) {
 	    if (!same && isWidecExt(otext[j]))
 		continue;
 	    if (CharEq(otext[j], ntext[j])) {
 		same++;
 	    } else {
-		if (same > SP->_inline_cost) {
-		    EmitRange(ntext + first, j - same - first);
-		    GoTo(row, first = j);
+		if (same > SP_PARM->_inline_cost) {
+		    EmitRange(NCURSES_SP_ARGx ntext + first, j - same - first);
+		    GoTo(NCURSES_SP_ARGx row, first = j);
 		}
 		same = 0;
 	    }
 	}
-	i = EmitRange(ntext + first, j - same - first);
+	i = EmitRange(NCURSES_SP_ARGx ntext + first, j - same - first);
 	/*
 	 * Always return 1 for the next GoTo() after a PutRange() if we found
 	 * identical characters at end of interval
 	 */
 	return (same == 0 ? i : 1);
     }
-    return EmitRange(ntext + first, last - first + 1);
+    return EmitRange(NCURSES_SP_ARGx ntext + first, last - first + 1);
 }
 
 /* leave unbracketed here so 'indent' works */
@@ -618,7 +658,7 @@
 		if_USE_SCROLL_HINTS(win->_line[row].oldindex = row)
 
 NCURSES_EXPORT(int)
-doupdate(void)
+NCURSES_SP_NAME(doupdate) (NCURSES_SP_DCL0)
 {
     int i;
     int nonempty;
@@ -628,28 +668,47 @@
 
     T((T_CALLED("doupdate()")));
 
-    if (curscr == 0
-	|| newscr == 0)
+#if !USE_REENTRANT
+    /*
+     * It is "legal" but unlikely that an application could assign a new
+     * value to one of the standard windows.  Check for that possibility
+     * and try to recover.
+     *
+     * We do not allow applications to assign new values in the reentrant
+     * model.
+     */
+#define SyncScreens(internal,exported) \
+	if (internal == 0) internal = exported; \
+	if (internal != exported) exported = internal
+
+    SyncScreens(CurScreen(SP_PARM), curscr);
+    SyncScreens(NewScreen(SP_PARM), newscr);
+    SyncScreens(StdScreen(SP_PARM), stdscr);
+#endif
+
+    if (CurScreen(SP_PARM) == 0
+	|| NewScreen(SP_PARM) == 0
+	|| StdScreen(SP_PARM) == 0)
 	returnCode(ERR);
 
 #ifdef TRACE
     if (USE_TRACEF(TRACE_UPDATE)) {
-	if (curscr->_clear)
+	if (CurScreen(SP_PARM)->_clear)
 	    _tracef("curscr is clear");
 	else
-	    _tracedump("curscr", curscr);
-	_tracedump("newscr", newscr);
+	    _tracedump("curscr", CurScreen(SP_PARM));
+	_tracedump("newscr", NewScreen(SP_PARM));
 	_nc_unlock_global(tracef);
     }
 #endif /* TRACE */
 
     _nc_signal_handler(FALSE);
 
-    if (SP->_fifohold)
-	SP->_fifohold--;
+    if (SP_PARM->_fifohold)
+	SP_PARM->_fifohold--;
 
 #if USE_SIZECHANGE
-    if (SP->_endwin || _nc_handle_sigwinch(SP)) {
+    if (SP_PARM->_endwin || _nc_handle_sigwinch(SP_PARM)) {
 	/*
 	 * This is a transparent extension:  XSI does not address it,
 	 * and applications need not know that ncurses can do it.
@@ -658,20 +717,20 @@
 	 * (this can happen in an xterm, for example), and resize the
 	 * ncurses data structures accordingly.
 	 */
-	_nc_update_screensize(SP);
+	_nc_update_screensize(SP_PARM);
     }
 #endif
 
-    if (SP->_endwin) {
+    if (SP_PARM->_endwin) {
 
 	T(("coming back from shell mode"));
-	reset_prog_mode();
+	NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_ARG);
 
-	_nc_mvcur_resume();
-	_nc_screen_resume();
-	SP->_mouse_resume(SP);
+	NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_ARG);
+	NCURSES_SP_NAME(_nc_screen_resume) (NCURSES_SP_ARG);
+	SP_PARM->_mouse_resume(SP_PARM);
 
-	SP->_endwin = FALSE;
+	SP_PARM->_endwin = FALSE;
     }
 #if USE_TRACE_TIMES
     /* zero the metering machinery */
@@ -695,11 +754,11 @@
 	int j, k;
 	attr_t rattr = A_NORMAL;
 
-	for (i = 0; i < screen_lines; i++) {
-	    for (j = 0; j < screen_columns; j++) {
+	for (i = 0; i < screen_lines(SP_PARM); i++) {
+	    for (j = 0; j < screen_columns(SP_PARM); j++) {
 		bool failed = FALSE;
-		NCURSES_CH_T *thisline = newscr->_line[i].text;
-		attr_t thisattr = AttrOf(thisline[j]) & SP->_xmc_triggers;
+		NCURSES_CH_T *thisline = NewScreen(SP_PARM)->_line[i].text;
+		attr_t thisattr = AttrOf(thisline[j]) & SP_PARM->_xmc_triggers;
 		attr_t turnon = thisattr & ~rattr;
 
 		/* is an attribute turned on here? */
@@ -717,8 +776,8 @@
 		 * there's enough room to set the attribute before the first
 		 * non-blank in the run.
 		 */
-#define SAFE(a)	(!((a) & SP->_xmc_triggers))
-		if (ISBLANK(thisline[j]) && SAFE(turnon)) {
+#define SAFE(scr,a)	(!((a) & (scr)->_xmc_triggers))
+		if (ISBLANK(thisline[j]) && SAFE(SP_PARM, turnon)) {
 		    RemAttr(thisline[j], turnon);
 		    continue;
 		}
@@ -727,14 +786,14 @@
 		for (k = 1; k <= magic_cookie_glitch; k++) {
 		    if (j - k < 0
 			|| !ISBLANK(thisline[j - k])
-			|| !SAFE(AttrOf(thisline[j - k]))) {
+			|| !SAFE(SP_PARM, AttrOf(thisline[j - k]))) {
 			failed = TRUE;
 			TR(TRACE_ATTRS, ("No room at start in %d,%d%s%s",
 					 i, j - k,
 					 (ISBLANK(thisline[j - k])
 					  ? ""
 					  : ":nonblank"),
-					 (SAFE(AttrOf(thisline[j - k]))
+					 (SAFE(SP_PARM, AttrOf(thisline[j - k]))
 					  ? ""
 					  : ":unsafe")));
 			break;
@@ -745,10 +804,12 @@
 		    int m, n = j;
 
 		    /* find end of span, if it's onscreen */
-		    for (m = i; m < screen_lines; m++) {
-			for (; n < screen_columns; n++) {
-			    attr_t testattr = AttrOf(newscr->_line[m].text[n]);
-			    if ((testattr & SP->_xmc_triggers) == rattr) {
+		    for (m = i; m < screen_lines(SP_PARM); m++) {
+			for (; n < screen_columns(SP_PARM); n++) {
+			    attr_t testattr
+			    = AttrOf(NewScreen(SP_PARM)->_line[m].text[n]);
+
+			    if ((testattr & SP_PARM->_xmc_triggers) == rattr) {
 				end_onscreen = TRUE;
 				TR(TRACE_ATTRS,
 				   ("Range attributed with %s ends at (%d, %d)",
@@ -764,7 +825,8 @@
 		  foundit:;
 
 		    if (end_onscreen) {
-			NCURSES_CH_T *lastline = newscr->_line[m].text;
+			NCURSES_CH_T *lastline =
+			NewScreen(SP_PARM)->_line[m].text;
 
 			/*
 			 * If there are safely-attributed blanks at the end of
@@ -773,15 +835,15 @@
 			 */
 			while (n >= 0
 			       && ISBLANK(lastline[n])
-			       && SAFE(AttrOf(lastline[n]))) {
+			       && SAFE(SP_PARM, AttrOf(lastline[n]))) {
 			    RemAttr(lastline[n--], turnon);
 			}
 
 			/* check that there's enough room at end of span */
 			for (k = 1; k <= magic_cookie_glitch; k++) {
-			    if (n + k >= screen_columns
+			    if (n + k >= screen_columns(SP_PARM)
 				|| !ISBLANK(lastline[n + k])
-				|| !SAFE(AttrOf(lastline[n + k]))) {
+				|| !SAFE(SP_PARM, AttrOf(lastline[n + k]))) {
 				failed = TRUE;
 				TR(TRACE_ATTRS,
 				   ("No room at end in %d,%d%s%s",
@@ -789,7 +851,7 @@
 				    (ISBLANK(lastline[n + k])
 				     ? ""
 				     : ":nonblank"),
-				    (SAFE(AttrOf(lastline[n + k]))
+				    (SAFE(SP_PARM, AttrOf(lastline[n + k]))
 				     ? ""
 				     : ":unsafe")));
 				break;
@@ -806,12 +868,13 @@
 			_traceattr(turnon), i, j));
 
 		    /* turn off new attributes over span */
-		    for (p = i; p < screen_lines; p++) {
-			for (; q < screen_columns; q++) {
-			    attr_t testattr = AttrOf(newscr->_line[p].text[q]);
-			    if ((testattr & SP->_xmc_triggers) == rattr)
+		    for (p = i; p < screen_lines(SP_PARM); p++) {
+			for (; q < screen_columns(SP_PARM); q++) {
+			    attr_t testattr =
+			    AttrOf(NewScreen(SP_PARM)->_line[p].text[q]);
+			    if ((testattr & SP_PARM->_xmc_triggers) == rattr)
 				goto foundend;
-			    RemAttr(newscr->_line[p].text[q], turnon);
+			    RemAttr(NewScreen(SP_PARM)->_line[p].text[q], turnon);
 			}
 			q = 0;
 		    }
@@ -837,7 +900,7 @@
 	/* show altered highlights after magic-cookie check */
 	if (USE_TRACEF(TRACE_UPDATE)) {
 	    _tracef("After magic-cookie check...");
-	    _tracedump("newscr", newscr);
+	    _tracedump("newscr", NewScreen(SP_PARM));
 	    _nc_unlock_global(tracef);
 	}
 #endif /* TRACE */
@@ -845,23 +908,23 @@
 #endif /* USE_XMC_SUPPORT */
 
     nonempty = 0;
-    if (curscr->_clear || newscr->_clear) {	/* force refresh ? */
-	ClrUpdate();
-	curscr->_clear = FALSE;	/* reset flag */
-	newscr->_clear = FALSE;	/* reset flag */
+    if (CurScreen(SP_PARM)->_clear || NewScreen(SP_PARM)->_clear) {	/* force refresh ? */
+	ClrUpdate(NCURSES_SP_ARG);
+	CurScreen(SP_PARM)->_clear = FALSE;	/* reset flag */
+	NewScreen(SP_PARM)->_clear = FALSE;	/* reset flag */
     } else {
 	int changedlines = CHECK_INTERVAL;
 
-	if (check_pending())
+	if (check_pending(NCURSES_SP_ARG))
 	    goto cleanup;
 
-	nonempty = min(screen_lines, newscr->_maxy + 1);
+	nonempty = min(screen_lines(SP_PARM), NewScreen(SP_PARM)->_maxy + 1);
 
-	if (SP->_scrolling) {
+	if (SP_PARM->_scrolling) {
 	    _nc_scroll_optimize();
 	}
 
-	nonempty = ClrBottom(nonempty);
+	nonempty = ClrBottom(NCURSES_SP_ARGx nonempty);
 
 	TR(TRACE_UPDATE, ("Transforming lines, nonempty %d", nonempty));
 	for (i = 0; i < nonempty; i++) {
@@ -869,46 +932,46 @@
 	     * Here is our line-breakout optimization.
 	     */
 	    if (changedlines == CHECK_INTERVAL) {
-		if (check_pending())
+		if (check_pending(NCURSES_SP_ARG))
 		    goto cleanup;
 		changedlines = 0;
 	    }
 
 	    /*
-	     * newscr->line[i].firstchar is normally set
-	     * by wnoutrefresh.  curscr->line[i].firstchar
+	     * newscr.line[i].firstchar is normally set
+	     * by wnoutrefresh.  curscr.line[i].firstchar
 	     * is normally set by _nc_scroll_window in the
 	     * vertical-movement optimization code,
 	     */
-	    if (newscr->_line[i].firstchar != _NOCHANGE
-		|| curscr->_line[i].firstchar != _NOCHANGE) {
-		TransformLine(i);
+	    if (NewScreen(SP_PARM)->_line[i].firstchar != _NOCHANGE
+		|| CurScreen(SP_PARM)->_line[i].firstchar != _NOCHANGE) {
+		TransformLine(NCURSES_SP_ARGx i);
 		changedlines++;
 	    }
 
 	    /* mark line changed successfully */
-	    if (i <= newscr->_maxy) {
-		MARK_NOCHANGE(newscr, i);
+	    if (i <= NewScreen(SP_PARM)->_maxy) {
+		MARK_NOCHANGE(NewScreen(SP_PARM), i);
 	    }
-	    if (i <= curscr->_maxy) {
-		MARK_NOCHANGE(curscr, i);
+	    if (i <= CurScreen(SP_PARM)->_maxy) {
+		MARK_NOCHANGE(CurScreen(SP_PARM), i);
 	    }
 	}
     }
 
     /* put everything back in sync */
-    for (i = nonempty; i <= newscr->_maxy; i++) {
-	MARK_NOCHANGE(newscr, i);
+    for (i = nonempty; i <= NewScreen(SP_PARM)->_maxy; i++) {
+	MARK_NOCHANGE(NewScreen(SP_PARM), i);
     }
-    for (i = nonempty; i <= curscr->_maxy; i++) {
-	MARK_NOCHANGE(curscr, i);
+    for (i = nonempty; i <= CurScreen(SP_PARM)->_maxy; i++) {
+	MARK_NOCHANGE(CurScreen(SP_PARM), i);
     }
 
-    if (!newscr->_leaveok) {
-	curscr->_curx = newscr->_curx;
-	curscr->_cury = newscr->_cury;
+    if (!NewScreen(SP_PARM)->_leaveok) {
+	CurScreen(SP_PARM)->_curx = NewScreen(SP_PARM)->_curx;
+	CurScreen(SP_PARM)->_cury = NewScreen(SP_PARM)->_cury;
 
-	GoTo(curscr->_cury, curscr->_curx);
+	GoTo(NCURSES_SP_ARGx CurScreen(SP_PARM)->_cury, CurScreen(SP_PARM)->_curx);
     }
 
   cleanup:
@@ -921,10 +984,10 @@
 #if USE_XMC_SUPPORT
     if (magic_cookie_glitch != 0)
 #endif
-	UpdateAttrs(normal);
+	UpdateAttrs(SP_PARM, normal);
 
-    _nc_flush();
-    WINDOW_ATTRS(curscr) = WINDOW_ATTRS(newscr);
+    NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
+    WINDOW_ATTRS(CurScreen(SP_PARM)) = WINDOW_ATTRS(NewScreen(SP_PARM));
 
 #if USE_TRACE_TIMES
     (void) times(&after);
@@ -940,6 +1003,14 @@
     returnCode(OK);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+doupdate(void)
+{
+    return NCURSES_SP_NAME(doupdate) (CURRENT_SCREEN);
+}
+#endif
+
 /*
  *	ClrBlank(win)
  *
@@ -951,10 +1022,10 @@
  *	in the wbkgd() call.  Assume 'stdscr' for this case.
  */
 #define BCE_ATTRS (A_NORMAL|A_COLOR)
-#define BCE_BKGD(win) (((win) == curscr ? stdscr : (win))->_nc_bkgd)
+#define BCE_BKGD(win) (((win) == CurScreen(SP_PARM) ? StdScreen(SP_PARM) : (win))->_nc_bkgd)
 
 static NCURSES_INLINE NCURSES_CH_T
-ClrBlank(WINDOW *win)
+ClrBlank(NCURSES_SP_DCLx WINDOW *win)
 {
     NCURSES_CH_T blank = blankchar;
     if (back_color_erase)
@@ -970,23 +1041,24 @@
 */
 
 static void
-ClrUpdate(void)
+ClrUpdate(NCURSES_SP_DCL0)
 {
-    int i;
-    NCURSES_CH_T blank = ClrBlank(stdscr);
-    int nonempty = min(screen_lines, newscr->_maxy + 1);
-
     TR(TRACE_UPDATE, (T_CALLED("ClrUpdate")));
+    if (0 != SP_PARM) {
+	int i;
+	NCURSES_CH_T blank = ClrBlank(NCURSES_SP_ARGx StdScreen(SP_PARM));
+	int nonempty = min(screen_lines(SP_PARM),
+			   NewScreen(SP_PARM)->_maxy + 1);
 
-    ClearScreen(blank);
+	ClearScreen(NCURSES_SP_ARGx blank);
 
-    TR(TRACE_UPDATE, ("updating screen from scratch"));
+	TR(TRACE_UPDATE, ("updating screen from scratch"));
 
-    nonempty = ClrBottom(nonempty);
-
-    for (i = 0; i < nonempty; i++)
-	TransformLine(i);
+	nonempty = ClrBottom(NCURSES_SP_ARGx nonempty);
 
+	for (i = 0; i < nonempty; i++)
+	    TransformLine(NCURSES_SP_ARGx i);
+    }
     TR(TRACE_UPDATE, (T_RETURN("")));
 }
 
@@ -997,15 +1069,16 @@
 */
 
 static void
-ClrToEOL(NCURSES_CH_T blank, bool needclear)
+ClrToEOL(NCURSES_SP_DCLx NCURSES_CH_T blank, bool needclear)
 {
     int j;
 
-    if (curscr != 0
-	&& SP->_cursrow >= 0) {
-	for (j = SP->_curscol; j < screen_columns; j++) {
+    if (CurScreen(SP_PARM) != 0
+	&& SP_PARM->_cursrow >= 0) {
+	for (j = SP_PARM->_curscol; j < screen_columns(SP_PARM); j++) {
 	    if (j >= 0) {
-		NCURSES_CH_T *cp = &(curscr->_line[SP->_cursrow].text[j]);
+		NCURSES_CH_T *cp =
+		&(CurScreen(SP_PARM)->_line[SP_PARM->_cursrow].text[j]);
 
 		if (!CharEq(*cp, blank)) {
 		    *cp = blank;
@@ -1018,14 +1091,14 @@
     }
 
     if (needclear) {
-	UpdateAttrs(blank);
+	UpdateAttrs(SP_PARM, blank);
 	TPUTS_TRACE("clr_eol");
-	if (clr_eol && SP->_el_cost <= (screen_columns - SP->_curscol)) {
-	    putp(clr_eol);
+	if (clr_eol && SP_PARM->_el_cost <= (screen_columns(SP_PARM) - SP_PARM->_curscol)) {
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol);
 	} else {
-	    int count = (screen_columns - SP->_curscol);
+	    int count = (screen_columns(SP_PARM) - SP_PARM->_curscol);
 	    while (count-- > 0)
-		PutChar(CHREF(blank));
+		PutChar(NCURSES_SP_ARGx CHREF(blank));
 	}
     }
 }
@@ -1037,23 +1110,29 @@
 */
 
 static void
-ClrToEOS(NCURSES_CH_T blank)
+ClrToEOS(NCURSES_SP_DCLx NCURSES_CH_T blank)
 {
     int row, col;
 
-    row = SP->_cursrow;
-    col = SP->_curscol;
-
-    UpdateAttrs(blank);
-    TPUTS_TRACE("clr_eos");
-    tputs(clr_eos, screen_lines - row, _nc_outch);
+    if (0 == SP_PARM)
+	return;
 
-    while (col < screen_columns)
-	curscr->_line[row].text[col++] = blank;
+    row = SP_PARM->_cursrow;
+    col = SP_PARM->_curscol;
 
-    for (row++; row < screen_lines; row++) {
-	for (col = 0; col < screen_columns; col++)
-	    curscr->_line[row].text[col] = blank;
+    UpdateAttrs(SP_PARM, blank);
+    TPUTS_TRACE("clr_eos");
+    NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+			    clr_eos,
+			    screen_lines(SP_PARM) - row,
+			    NCURSES_SP_NAME(_nc_outch));
+
+    while (col < screen_columns(SP_PARM))
+	CurScreen(SP_PARM)->_line[row].text[col++] = blank;
+
+    for (row++; row < screen_lines(SP_PARM); row++) {
+	for (col = 0; col < screen_columns(SP_PARM); col++)
+	    CurScreen(SP_PARM)->_line[row].text[col] = blank;
     }
 }
 
@@ -1065,26 +1144,26 @@
  *	screen, checking if each is blank, and one or more are changed.
  */
 static int
-ClrBottom(int total)
+ClrBottom(NCURSES_SP_DCLx int total)
 {
     int row;
     int col;
     int top = total;
-    int last = min(screen_columns, newscr->_maxx + 1);
-    NCURSES_CH_T blank = newscr->_line[total - 1].text[last - 1];
+    int last = min(screen_columns(SP_PARM), NewScreen(SP_PARM)->_maxx + 1);
+    NCURSES_CH_T blank = NewScreen(SP_PARM)->_line[total - 1].text[last - 1];
     bool ok;
 
-    if (clr_eos && can_clear_with(CHREF(blank))) {
+    if (clr_eos && can_clear_with(NCURSES_SP_ARGx CHREF(blank))) {
 
 	for (row = total - 1; row >= 0; row--) {
 	    for (col = 0, ok = TRUE; ok && col < last; col++) {
-		ok = (CharEq(newscr->_line[row].text[col], blank));
+		ok = (CharEq(NewScreen(SP_PARM)->_line[row].text[col], blank));
 	    }
 	    if (!ok)
 		break;
 
 	    for (col = 0; ok && col < last; col++) {
-		ok = (CharEq(curscr->_line[row].text[col], blank));
+		ok = (CharEq(CurScreen(SP_PARM)->_line[row].text[col], blank));
 	    }
 	    if (!ok)
 		top = row;
@@ -1092,11 +1171,11 @@
 
 	/* don't use clr_eos for just one line if clr_eol available */
 	if (top < total) {
-	    GoTo(top, 0);
-	    ClrToEOS(blank);
-	    if (SP->oldhash && SP->newhash) {
-		for (row = top; row < screen_lines; row++)
-		    SP->oldhash[row] = SP->newhash[row];
+	    GoTo(NCURSES_SP_ARGx top, 0);
+	    ClrToEOS(NCURSES_SP_ARGx blank);
+	    if (SP_PARM->oldhash && SP_PARM->newhash) {
+		for (row = top; row < screen_lines(SP_PARM); row++)
+		    SP_PARM->oldhash[row] = SP_PARM->newhash[row];
 	    }
 	}
     }
@@ -1105,15 +1184,15 @@
 
 #if USE_XMC_SUPPORT
 #if USE_WIDEC_SUPPORT
-#define check_xmc_transition(a, b) \
-    ((((a)->attr ^ (b)->attr) & ~((a)->attr) & SP->_xmc_triggers) != 0)
-#define xmc_turn_on(a,b) check_xmc_transition(&(a), &(b))
+#define check_xmc_transition(sp, a, b)					\
+    ((((a)->attr ^ (b)->attr) & ~((a)->attr) & (sp)->_xmc_triggers) != 0)
+#define xmc_turn_on(sp,a,b) check_xmc_transition(sp,&(a), &(b))
 #else
-#define xmc_turn_on(a,b) ((((a)^(b)) & ~(a) & SP->_xmc_triggers) != 0)
+#define xmc_turn_on(sp,a,b) ((((a)^(b)) & ~(a) & (sp)->_xmc_triggers) != 0)
 #endif
 
-#define xmc_new(r,c) newscr->_line[r].text[c]
-#define xmc_turn_off(a,b) xmc_turn_on(b,a)
+#define xmc_new(sp,r,c) NewScreen(SP_PARM)->_line[r].text[c]
+#define xmc_turn_off(sp,a,b) xmc_turn_on(sp,b,a)
 #endif /* USE_XMC_SUPPORT */
 
 /*
@@ -1135,19 +1214,19 @@
 */
 
 static void
-TransformLine(int const lineno)
+TransformLine(NCURSES_SP_DCLx int const lineno)
 {
     int firstChar, oLastChar, nLastChar;
-    NCURSES_CH_T *newLine = newscr->_line[lineno].text;
-    NCURSES_CH_T *oldLine = curscr->_line[lineno].text;
+    NCURSES_CH_T *newLine = NewScreen(SP_PARM)->_line[lineno].text;
+    NCURSES_CH_T *oldLine = CurScreen(SP_PARM)->_line[lineno].text;
     int n;
     bool attrchanged = FALSE;
 
-    TR(TRACE_UPDATE, (T_CALLED("TransformLine(%d)"), lineno));
+    TR(TRACE_UPDATE, (T_CALLED("TransformLine(%p, %d)"), SP_PARM, lineno));
 
     /* copy new hash value to old one */
-    if (SP->oldhash && SP->newhash)
-	SP->oldhash[lineno] = SP->newhash[lineno];
+    if (SP_PARM->oldhash && SP_PARM->newhash)
+	SP_PARM->oldhash[lineno] = SP_PARM->newhash[lineno];
 
     /*
      * If we have colors, there is the possibility of having two color pairs
@@ -1155,19 +1234,20 @@
      * for this case, and update the old line with the new line's colors when
      * they are equivalent.
      */
-    if (SP->_coloron) {
+    if (SP_PARM->_coloron) {
 	int oldPair;
 	int newPair;
 
-	for (n = 0; n < screen_columns; n++) {
+	for (n = 0; n < screen_columns(SP_PARM); n++) {
 	    if (!CharEq(newLine[n], oldLine[n])) {
 		oldPair = GetPair(oldLine[n]);
 		newPair = GetPair(newLine[n]);
 		if (oldPair != newPair
 		    && unColor(oldLine[n]) == unColor(newLine[n])) {
-		    if (oldPair < COLOR_PAIRS
-			&& newPair < COLOR_PAIRS
-			&& SP->_color_pairs[oldPair] == SP->_color_pairs[newPair]) {
+		    if (oldPair < SP_PARM->_pair_limit
+			&& newPair < SP_PARM->_pair_limit
+			&& (SP_PARM->_color_pairs[oldPair] ==
+			    SP_PARM->_color_pairs[newPair])) {
 			SetPair(oldLine[n], GetPair(newLine[n]));
 		    }
 		}
@@ -1177,7 +1257,7 @@
 
     if (ceol_standout_glitch && clr_eol) {
 	firstChar = 0;
-	while (firstChar < screen_columns) {
+	while (firstChar < screen_columns(SP_PARM)) {
 	    if (!SameAttrOf(newLine[firstChar], oldLine[firstChar])) {
 		attrchanged = TRUE;
 		break;
@@ -1189,9 +1269,13 @@
     firstChar = 0;
 
     if (attrchanged) {		/* we may have to disregard the whole line */
-	GoTo(lineno, firstChar);
-	ClrToEOL(ClrBlank(curscr), FALSE);
-	PutRange(oldLine, newLine, lineno, 0, (screen_columns - 1));
+	GoTo(NCURSES_SP_ARGx lineno, firstChar);
+	ClrToEOL(NCURSES_SP_ARGx
+		 ClrBlank(NCURSES_SP_ARGx CurScreen(SP_PARM)),
+		 FALSE);
+	PutRange(NCURSES_SP_ARGx
+		 oldLine, newLine, lineno, 0,
+		 screen_columns(SP_PARM) - 1);
 #if USE_XMC_SUPPORT
 
 	/*
@@ -1206,8 +1290,8 @@
 	 * following operation.
 	 */
     } else if (magic_cookie_glitch > 0) {
-	GoTo(lineno, firstChar);
-	for (n = 0; n < screen_columns; n++) {
+	GoTo(NCURSES_SP_ARGx lineno, firstChar);
+	for (n = 0; n < screen_columns(SP_PARM); n++) {
 	    int m = n + magic_cookie_glitch;
 
 	    /* check for turn-on:
@@ -1216,26 +1300,30 @@
 	     */
 	    if (ISBLANK(newLine[n])
 		&& ((n > 0
-		     && xmc_turn_on(newLine[n - 1], newLine[n]))
+		     && xmc_turn_on(SP_PARM, newLine[n - 1], newLine[n]))
 		    || (n == 0
 			&& lineno > 0
-			&& xmc_turn_on(xmc_new(lineno - 1, screen_columns - 1),
+			&& xmc_turn_on(SP_PARM,
+				       xmc_new(SP_PARM, lineno - 1,
+					       screen_columns(SP_PARM) - 1),
 				       newLine[n])))) {
 		n = m;
 	    }
 
-	    PutChar(CHREF(newLine[n]));
+	    PutChar(NCURSES_SP_ARGx CHREF(newLine[n]));
 
 	    /* check for turn-off:
 	     * If we are writing an attributed non-blank, where the
 	     * next cell is blank, and not attributed.
 	     */
 	    if (!ISBLANK(newLine[n])
-		&& ((n + 1 < screen_columns
-		     && xmc_turn_off(newLine[n], newLine[n + 1]))
-		    || (n + 1 >= screen_columns
-			&& lineno + 1 < screen_lines
-			&& xmc_turn_off(newLine[n], xmc_new(lineno + 1, 0))))) {
+		&& ((n + 1 < screen_columns(SP_PARM)
+		     && xmc_turn_off(SP_PARM, newLine[n], newLine[n + 1]))
+		    || (n + 1 >= screen_columns(SP_PARM)
+			&& lineno + 1 < screen_lines(SP_PARM)
+			&& xmc_turn_off(SP_PARM,
+					newLine[n],
+					xmc_new(SP_PARM, lineno + 1, 0))))) {
 		n = m;
 	    }
 
@@ -1246,38 +1334,42 @@
 
 	/* it may be cheap to clear leading whitespace with clr_bol */
 	blank = newLine[0];
-	if (clr_bol && can_clear_with(CHREF(blank))) {
+	if (clr_bol && can_clear_with(NCURSES_SP_ARGx CHREF(blank))) {
 	    int oFirstChar, nFirstChar;
 
-	    for (oFirstChar = 0; oFirstChar < screen_columns; oFirstChar++)
+	    for (oFirstChar = 0;
+		 oFirstChar < screen_columns(SP_PARM);
+		 oFirstChar++)
 		if (!CharEq(oldLine[oFirstChar], blank))
 		    break;
-	    for (nFirstChar = 0; nFirstChar < screen_columns; nFirstChar++)
+	    for (nFirstChar = 0;
+		 nFirstChar < screen_columns(SP_PARM);
+		 nFirstChar++)
 		if (!CharEq(newLine[nFirstChar], blank))
 		    break;
 
 	    if (nFirstChar == oFirstChar) {
 		firstChar = nFirstChar;
 		/* find the first differing character */
-		while (firstChar < screen_columns
+		while (firstChar < screen_columns(SP_PARM)
 		       && CharEq(newLine[firstChar], oldLine[firstChar]))
 		    firstChar++;
 	    } else if (oFirstChar > nFirstChar) {
 		firstChar = nFirstChar;
 	    } else {		/* oFirstChar < nFirstChar */
 		firstChar = oFirstChar;
-		if (SP->_el1_cost < nFirstChar - oFirstChar) {
-		    if (nFirstChar >= screen_columns
-			&& SP->_el_cost <= SP->_el1_cost) {
-			GoTo(lineno, 0);
-			UpdateAttrs(blank);
+		if (SP_PARM->_el1_cost < nFirstChar - oFirstChar) {
+		    if (nFirstChar >= screen_columns(SP_PARM)
+			&& SP_PARM->_el_cost <= SP_PARM->_el1_cost) {
+			GoTo(NCURSES_SP_ARGx lineno, 0);
+			UpdateAttrs(SP_PARM, blank);
 			TPUTS_TRACE("clr_eol");
-			putp(clr_eol);
+			NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol);
 		    } else {
-			GoTo(lineno, nFirstChar - 1);
-			UpdateAttrs(blank);
+			GoTo(NCURSES_SP_ARGx lineno, nFirstChar - 1);
+			UpdateAttrs(SP_PARM, blank);
 			TPUTS_TRACE("clr_bol");
-			putp(clr_bol);
+			NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_bol);
 		    }
 
 		    while (firstChar < nFirstChar)
@@ -1286,29 +1378,34 @@
 	    }
 	} else {
 	    /* find the first differing character */
-	    while (firstChar < screen_columns
+	    while (firstChar < screen_columns(SP_PARM)
 		   && CharEq(newLine[firstChar], oldLine[firstChar]))
 		firstChar++;
 	}
 	/* if there wasn't one, we're done */
-	if (firstChar >= screen_columns) {
+	if (firstChar >= screen_columns(SP_PARM)) {
 	    TR(TRACE_UPDATE, (T_RETURN("")));
 	    return;
 	}
 
-	blank = newLine[screen_columns - 1];
+	blank = newLine[screen_columns(SP_PARM) - 1];
 
-	if (!can_clear_with(CHREF(blank))) {
+	if (!can_clear_with(NCURSES_SP_ARGx CHREF(blank))) {
 	    /* find the last differing character */
-	    nLastChar = screen_columns - 1;
+	    nLastChar = screen_columns(SP_PARM) - 1;
 
 	    while (nLastChar > firstChar
 		   && CharEq(newLine[nLastChar], oldLine[nLastChar]))
 		nLastChar--;
 
 	    if (nLastChar >= firstChar) {
-		GoTo(lineno, firstChar);
-		PutRange(oldLine, newLine, lineno, firstChar, nLastChar);
+		GoTo(NCURSES_SP_ARGx lineno, firstChar);
+		PutRange(NCURSES_SP_ARGx
+			 oldLine,
+			 newLine,
+			 lineno,
+			 firstChar,
+			 nLastChar);
 		memcpy(oldLine + firstChar,
 		       newLine + firstChar,
 		       (nLastChar - firstChar + 1) * sizeof(NCURSES_CH_T));
@@ -1318,32 +1415,43 @@
 	}
 
 	/* find last non-blank character on old line */
-	oLastChar = screen_columns - 1;
+	oLastChar = screen_columns(SP_PARM) - 1;
 	while (oLastChar > firstChar && CharEq(oldLine[oLastChar], blank))
 	    oLastChar--;
 
 	/* find last non-blank character on new line */
-	nLastChar = screen_columns - 1;
+	nLastChar = screen_columns(SP_PARM) - 1;
 	while (nLastChar > firstChar && CharEq(newLine[nLastChar], blank))
 	    nLastChar--;
 
 	if ((nLastChar == firstChar)
-	    && (SP->_el_cost < (oLastChar - nLastChar))) {
-	    GoTo(lineno, firstChar);
+	    && (SP_PARM->_el_cost < (oLastChar - nLastChar))) {
+	    GoTo(NCURSES_SP_ARGx lineno, firstChar);
 	    if (!CharEq(newLine[firstChar], blank))
-		PutChar(CHREF(newLine[firstChar]));
-	    ClrToEOL(blank, FALSE);
+		PutChar(NCURSES_SP_ARGx CHREF(newLine[firstChar]));
+	    ClrToEOL(NCURSES_SP_ARGx blank, FALSE);
 	} else if ((nLastChar != oLastChar)
 		   && (!CharEq(newLine[nLastChar], oldLine[oLastChar])
 		       || !(_nc_idcok && has_ic()))) {
-	    GoTo(lineno, firstChar);
-	    if ((oLastChar - nLastChar) > SP->_el_cost) {
-		if (PutRange(oldLine, newLine, lineno, firstChar, nLastChar))
-		    GoTo(lineno, nLastChar + 1);
-		ClrToEOL(blank, FALSE);
+	    GoTo(NCURSES_SP_ARGx lineno, firstChar);
+	    if ((oLastChar - nLastChar) > SP_PARM->_el_cost) {
+		if (PutRange(NCURSES_SP_ARGx
+			     oldLine,
+			     newLine,
+			     lineno,
+			     firstChar,
+			     nLastChar)) {
+		    GoTo(NCURSES_SP_ARGx lineno, nLastChar + 1);
+		}
+		ClrToEOL(NCURSES_SP_ARGx blank, FALSE);
 	    } else {
 		n = max(nLastChar, oLastChar);
-		PutRange(oldLine, newLine, lineno, firstChar, n);
+		PutRange(NCURSES_SP_ARGx
+			 oldLine,
+			 newLine,
+			 lineno,
+			 firstChar,
+			 n);
 	    }
 	} else {
 	    int nLastNonblank = nLastChar;
@@ -1364,8 +1472,13 @@
 
 	    n = min(oLastChar, nLastChar);
 	    if (n >= firstChar) {
-		GoTo(lineno, firstChar);
-		PutRange(oldLine, newLine, lineno, firstChar, n);
+		GoTo(NCURSES_SP_ARGx lineno, firstChar);
+		PutRange(NCURSES_SP_ARGx
+			 oldLine,
+			 newLine,
+			 lineno,
+			 firstChar,
+			 n);
 	    }
 
 	    if (oLastChar < nLastChar) {
@@ -1376,21 +1489,26 @@
 		    --oLastChar;
 		}
 #endif
-		GoTo(lineno, n + 1);
+		GoTo(NCURSES_SP_ARGx lineno, n + 1);
 		if ((nLastChar < nLastNonblank)
-		    || InsCharCost(nLastChar - oLastChar) > (m - n)) {
-		    PutRange(oldLine, newLine, lineno, n + 1, m);
+		    || InsCharCost(SP_PARM, nLastChar - oLastChar) > (m - n)) {
+		    PutRange(NCURSES_SP_ARGx
+			     oldLine,
+			     newLine,
+			     lineno,
+			     n + 1,
+			     m);
 		} else {
-		    InsStr(&newLine[n + 1], nLastChar - oLastChar);
+		    InsStr(NCURSES_SP_ARGx &newLine[n + 1], nLastChar - oLastChar);
 		}
 	    } else if (oLastChar > nLastChar) {
-		GoTo(lineno, n + 1);
-		if (DelCharCost(oLastChar - nLastChar)
-		    > SP->_el_cost + nLastNonblank - (n + 1)) {
-		    if (PutRange(oldLine, newLine, lineno,
+		GoTo(NCURSES_SP_ARGx lineno, n + 1);
+		if (DelCharCost(SP_PARM, oLastChar - nLastChar)
+		    > SP_PARM->_el_cost + nLastNonblank - (n + 1)) {
+		    if (PutRange(NCURSES_SP_ARGx oldLine, newLine, lineno,
 				 n + 1, nLastNonblank))
-			GoTo(lineno, nLastNonblank + 1);
-		    ClrToEOL(blank, FALSE);
+			  GoTo(NCURSES_SP_ARGx lineno, nLastNonblank + 1);
+		    ClrToEOL(NCURSES_SP_ARGx blank, FALSE);
 		} else {
 		    /*
 		     * The delete-char sequence will
@@ -1400,18 +1518,18 @@
 		     * setting the video attributes from
 		     * the last character on the row.
 		     */
-		    UpdateAttrs(blank);
-		    DelChar(oLastChar - nLastChar);
+		    UpdateAttrs(SP_PARM, blank);
+		    DelChar(NCURSES_SP_ARGx oLastChar - nLastChar);
 		}
 	    }
 	}
     }
 
     /* update the code's internal representation */
-    if (screen_columns > firstChar)
+    if (screen_columns(SP_PARM) > firstChar)
 	memcpy(oldLine + firstChar,
 	       newLine + firstChar,
-	       (screen_columns - firstChar) * sizeof(NCURSES_CH_T));
+	       (screen_columns(SP_PARM) - firstChar) * sizeof(NCURSES_CH_T));
     TR(TRACE_UPDATE, (T_RETURN("")));
     return;
 }
@@ -1424,7 +1542,7 @@
 */
 
 static void
-ClearScreen(NCURSES_CH_T blank)
+ClearScreen(NCURSES_SP_DCLx NCURSES_CH_T blank)
 {
     int i, j;
     bool fast_clear = (clear_screen || clr_eos || clr_eol);
@@ -1432,9 +1550,13 @@
     TR(TRACE_UPDATE, ("ClearScreen() called"));
 
 #if NCURSES_EXT_FUNCS
-    if (SP->_coloron
-	&& !SP->_default_color) {
-	_nc_do_color(GET_SCREEN_PAIR(SP), 0, FALSE, _nc_outch);
+    if (SP_PARM->_coloron
+	&& !SP_PARM->_default_color) {
+	NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx
+				       GET_SCREEN_PAIR(SP_PARM),
+				       0,
+				       FALSE,
+				       NCURSES_SP_NAME(_nc_outch));
 	if (!back_color_erase) {
 	    fast_clear = FALSE;
 	}
@@ -1443,42 +1565,48 @@
 
     if (fast_clear) {
 	if (clear_screen) {
-	    UpdateAttrs(blank);
+	    UpdateAttrs(SP_PARM, blank);
 	    TPUTS_TRACE("clear_screen");
-	    putp(clear_screen);
-	    SP->_cursrow = SP->_curscol = 0;
-	    position_check(SP->_cursrow, SP->_curscol, "ClearScreen");
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clear_screen);
+	    SP_PARM->_cursrow = SP_PARM->_curscol = 0;
+	    position_check(SP_PARM,
+			   SP_PARM->_cursrow,
+			   SP_PARM->_curscol,
+			   "ClearScreen");
 	} else if (clr_eos) {
-	    SP->_cursrow = SP->_curscol = -1;
-	    GoTo(0, 0);
+	    SP_PARM->_cursrow = SP_PARM->_curscol = -1;
+	    GoTo(NCURSES_SP_ARGx 0, 0);
 
-	    UpdateAttrs(blank);
+	    UpdateAttrs(SP_PARM, blank);
 	    TPUTS_TRACE("clr_eos");
-	    tputs(clr_eos, screen_lines, _nc_outch);
+	    NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				    clr_eos,
+				    screen_lines(SP_PARM),
+				    NCURSES_SP_NAME(_nc_outch));
 	} else if (clr_eol) {
-	    SP->_cursrow = SP->_curscol = -1;
+	    SP_PARM->_cursrow = SP_PARM->_curscol = -1;
 
-	    UpdateAttrs(blank);
-	    for (i = 0; i < screen_lines; i++) {
-		GoTo(i, 0);
+	    UpdateAttrs(SP_PARM, blank);
+	    for (i = 0; i < screen_lines(SP_PARM); i++) {
+		GoTo(NCURSES_SP_ARGx i, 0);
 		TPUTS_TRACE("clr_eol");
-		putp(clr_eol);
+		NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx clr_eol);
 	    }
-	    GoTo(0, 0);
+	    GoTo(NCURSES_SP_ARGx 0, 0);
 	}
     } else {
-	UpdateAttrs(blank);
-	for (i = 0; i < screen_lines; i++) {
-	    GoTo(i, 0);
-	    for (j = 0; j < screen_columns; j++)
-		PutChar(CHREF(blank));
-	}
-	GoTo(0, 0);
+	UpdateAttrs(SP_PARM, blank);
+	for (i = 0; i < screen_lines(SP_PARM); i++) {
+	    GoTo(NCURSES_SP_ARGx i, 0);
+	    for (j = 0; j < screen_columns(SP_PARM); j++)
+		PutChar(NCURSES_SP_ARGx CHREF(blank));
+	}
+	GoTo(NCURSES_SP_ARGx 0, 0);
     }
 
-    for (i = 0; i < screen_lines; i++) {
-	for (j = 0; j < screen_columns; j++)
-	    curscr->_line[i].text[j] = blank;
+    for (i = 0; i < screen_lines(SP_PARM); i++) {
+	for (j = 0; j < screen_columns(SP_PARM); j++)
+	    CurScreen(SP_PARM)->_line[i].text[j] = blank;
     }
 
     TR(TRACE_UPDATE, ("screen cleared"));
@@ -1492,49 +1620,52 @@
 */
 
 static void
-InsStr(NCURSES_CH_T * line, int count)
+InsStr(NCURSES_SP_DCLx NCURSES_CH_T * line, int count)
 {
-    TR(TRACE_UPDATE, ("InsStr(%p,%d) called", line, count));
+    TR(TRACE_UPDATE, ("InsStr(%p, %p,%d) called", SP_PARM, line, count));
 
     /* Prefer parm_ich as it has the smallest cost - no need to shift
      * the whole line on each character. */
     /* The order must match that of InsCharCost. */
     if (parm_ich) {
 	TPUTS_TRACE("parm_ich");
-	tputs(TPARM_1(parm_ich, count), count, _nc_outch);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_1(parm_ich, count),
+				count,
+				NCURSES_SP_NAME(_nc_outch));
 	while (count) {
-	    PutAttrChar(CHREF(*line));
+	    PutAttrChar(NCURSES_SP_ARGx CHREF(*line));
 	    line++;
 	    count--;
 	}
     } else if (enter_insert_mode && exit_insert_mode) {
 	TPUTS_TRACE("enter_insert_mode");
-	putp(enter_insert_mode);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx enter_insert_mode);
 	while (count) {
-	    PutAttrChar(CHREF(*line));
+	    PutAttrChar(NCURSES_SP_ARGx CHREF(*line));
 	    if (insert_padding) {
 		TPUTS_TRACE("insert_padding");
-		putp(insert_padding);
+		NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_padding);
 	    }
 	    line++;
 	    count--;
 	}
 	TPUTS_TRACE("exit_insert_mode");
-	putp(exit_insert_mode);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_insert_mode);
     } else {
 	while (count) {
 	    TPUTS_TRACE("insert_character");
-	    putp(insert_character);
-	    PutAttrChar(CHREF(*line));
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_character);
+	    PutAttrChar(NCURSES_SP_ARGx CHREF(*line));
 	    if (insert_padding) {
 		TPUTS_TRACE("insert_padding");
-		putp(insert_padding);
+		NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_padding);
 	    }
 	    line++;
 	    count--;
 	}
     }
-    position_check(SP->_cursrow, SP->_curscol, "InsStr");
+    position_check(SP_PARM, SP_PARM->_cursrow, SP_PARM->_curscol, "InsStr");
 }
 
 /*
@@ -1545,22 +1676,25 @@
 */
 
 static void
-DelChar(int count)
+DelChar(NCURSES_SP_DCLx int count)
 {
     int n;
 
-    TR(TRACE_UPDATE, ("DelChar(%d) called, position = (%ld,%ld)",
-		      count,
-		      (long) newscr->_cury,
-		      (long) newscr->_curx));
+    TR(TRACE_UPDATE, ("DelChar(%p, %d) called, position = (%ld,%ld)",
+		      SP_PARM, count,
+		      (long) NewScreen(SP_PARM)->_cury,
+		      (long) NewScreen(SP_PARM)->_curx));
 
     if (parm_dch) {
 	TPUTS_TRACE("parm_dch");
-	tputs(TPARM_1(parm_dch, count), count, _nc_outch);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_1(parm_dch, count),
+				count,
+				NCURSES_SP_NAME(_nc_outch));
     } else {
 	for (n = 0; n < count; n++) {
 	    TPUTS_TRACE("delete_character");
-	    putp(delete_character);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_character);
 	}
     }
 }
@@ -1599,54 +1733,66 @@
 
 /* Try to scroll up assuming given csr (miny, maxy). Returns ERR on failure */
 static int
-scroll_csr_forward(int n, int top, int bot, int miny, int maxy, NCURSES_CH_T blank)
+scroll_csr_forward(NCURSES_SP_DCLx
+		   int n,
+		   int top,
+		   int bot,
+		   int miny,
+		   int maxy,
+		   NCURSES_CH_T blank)
 {
     int i;
 
     if (n == 1 && scroll_forward && top == miny && bot == maxy) {
-	GoTo(bot, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx bot, 0);
+	UpdateAttrs(SP_PARM, blank);
 	TPUTS_TRACE("scroll_forward");
-	putp(scroll_forward);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_forward);
     } else if (n == 1 && delete_line && bot == maxy) {
-	GoTo(top, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx top, 0);
+	UpdateAttrs(SP_PARM, blank);
 	TPUTS_TRACE("delete_line");
-	putp(delete_line);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
     } else if (parm_index && top == miny && bot == maxy) {
-	GoTo(bot, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx bot, 0);
+	UpdateAttrs(SP_PARM, blank);
 	TPUTS_TRACE("parm_index");
-	tputs(TPARM_2(parm_index, n, 0), n, _nc_outch);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_2(parm_index, n, 0),
+				n,
+				NCURSES_SP_NAME(_nc_outch));
     } else if (parm_delete_line && bot == maxy) {
-	GoTo(top, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx top, 0);
+	UpdateAttrs(SP_PARM, blank);
 	TPUTS_TRACE("parm_delete_line");
-	tputs(TPARM_2(parm_delete_line, n, 0), n, _nc_outch);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_2(parm_delete_line, n, 0),
+				n,
+				NCURSES_SP_NAME(_nc_outch));
     } else if (scroll_forward && top == miny && bot == maxy) {
-	GoTo(bot, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx bot, 0);
+	UpdateAttrs(SP_PARM, blank);
 	for (i = 0; i < n; i++) {
 	    TPUTS_TRACE("scroll_forward");
-	    putp(scroll_forward);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_forward);
 	}
     } else if (delete_line && bot == maxy) {
-	GoTo(top, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx top, 0);
+	UpdateAttrs(SP_PARM, blank);
 	for (i = 0; i < n; i++) {
 	    TPUTS_TRACE("delete_line");
-	    putp(delete_line);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
 	}
     } else
 	return ERR;
 
 #if NCURSES_EXT_FUNCS
-    if (FILL_BCE()) {
+    if (FILL_BCE(SP_PARM)) {
 	int j;
 	for (i = 0; i < n; i++) {
-	    GoTo(bot - i, 0);
-	    for (j = 0; j < screen_columns; j++)
-		PutChar(CHREF(blank));
+	    GoTo(NCURSES_SP_ARGx bot - i, 0);
+	    for (j = 0; j < screen_columns(SP_PARM); j++)
+		PutChar(NCURSES_SP_ARGx CHREF(blank));
 	}
     }
 #endif
@@ -1656,55 +1802,66 @@
 /* Try to scroll down assuming given csr (miny, maxy). Returns ERR on failure */
 /* n > 0 */
 static int
-scroll_csr_backward(int n, int top, int bot, int miny, int maxy,
+scroll_csr_backward(NCURSES_SP_DCLx
+		    int n,
+		    int top,
+		    int bot,
+		    int miny,
+		    int maxy,
 		    NCURSES_CH_T blank)
 {
     int i;
 
     if (n == 1 && scroll_reverse && top == miny && bot == maxy) {
-	GoTo(top, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx top, 0);
+	UpdateAttrs(SP_PARM, blank);
 	TPUTS_TRACE("scroll_reverse");
-	putp(scroll_reverse);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_reverse);
     } else if (n == 1 && insert_line && bot == maxy) {
-	GoTo(top, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx top, 0);
+	UpdateAttrs(SP_PARM, blank);
 	TPUTS_TRACE("insert_line");
-	putp(insert_line);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
     } else if (parm_rindex && top == miny && bot == maxy) {
-	GoTo(top, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx top, 0);
+	UpdateAttrs(SP_PARM, blank);
 	TPUTS_TRACE("parm_rindex");
-	tputs(TPARM_2(parm_rindex, n, 0), n, _nc_outch);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_2(parm_rindex, n, 0),
+				n,
+				NCURSES_SP_NAME(_nc_outch));
     } else if (parm_insert_line && bot == maxy) {
-	GoTo(top, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx top, 0);
+	UpdateAttrs(SP_PARM, blank);
 	TPUTS_TRACE("parm_insert_line");
-	tputs(TPARM_2(parm_insert_line, n, 0), n, _nc_outch);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_2(parm_insert_line, n, 0),
+				n,
+				NCURSES_SP_NAME(_nc_outch));
     } else if (scroll_reverse && top == miny && bot == maxy) {
-	GoTo(top, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx top, 0);
+	UpdateAttrs(SP_PARM, blank);
 	for (i = 0; i < n; i++) {
 	    TPUTS_TRACE("scroll_reverse");
-	    putp(scroll_reverse);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx scroll_reverse);
 	}
     } else if (insert_line && bot == maxy) {
-	GoTo(top, 0);
-	UpdateAttrs(blank);
+	GoTo(NCURSES_SP_ARGx top, 0);
+	UpdateAttrs(SP_PARM, blank);
 	for (i = 0; i < n; i++) {
 	    TPUTS_TRACE("insert_line");
-	    putp(insert_line);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
 	}
     } else
 	return ERR;
 
 #if NCURSES_EXT_FUNCS
-    if (FILL_BCE()) {
+    if (FILL_BCE(SP_PARM)) {
 	int j;
 	for (i = 0; i < n; i++) {
-	    GoTo(top + i, 0);
-	    for (j = 0; j < screen_columns; j++)
-		PutChar(CHREF(blank));
+	    GoTo(NCURSES_SP_ARGx top + i, 0);
+	    for (j = 0; j < screen_columns(SP_PARM); j++)
+		PutChar(NCURSES_SP_ARGx CHREF(blank));
 	}
     }
 #endif
@@ -1714,40 +1871,46 @@
 /* scroll by using delete_line at del and insert_line at ins */
 /* n > 0 */
 static int
-scroll_idl(int n, int del, int ins, NCURSES_CH_T blank)
+scroll_idl(NCURSES_SP_DCLx int n, int del, int ins, NCURSES_CH_T blank)
 {
     int i;
 
     if (!((parm_delete_line || delete_line) && (parm_insert_line || insert_line)))
 	return ERR;
 
-    GoTo(del, 0);
-    UpdateAttrs(blank);
+    GoTo(NCURSES_SP_ARGx del, 0);
+    UpdateAttrs(SP_PARM, blank);
     if (n == 1 && delete_line) {
 	TPUTS_TRACE("delete_line");
-	putp(delete_line);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
     } else if (parm_delete_line) {
 	TPUTS_TRACE("parm_delete_line");
-	tputs(TPARM_2(parm_delete_line, n, 0), n, _nc_outch);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_2(parm_delete_line, n, 0),
+				n,
+				NCURSES_SP_NAME(_nc_outch));
     } else {			/* if (delete_line) */
 	for (i = 0; i < n; i++) {
 	    TPUTS_TRACE("delete_line");
-	    putp(delete_line);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx delete_line);
 	}
     }
 
-    GoTo(ins, 0);
-    UpdateAttrs(blank);
+    GoTo(NCURSES_SP_ARGx ins, 0);
+    UpdateAttrs(SP_PARM, blank);
     if (n == 1 && insert_line) {
 	TPUTS_TRACE("insert_line");
-	putp(insert_line);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
     } else if (parm_insert_line) {
 	TPUTS_TRACE("parm_insert_line");
-	tputs(TPARM_2(parm_insert_line, n, 0), n, _nc_outch);
+	NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				TPARM_2(parm_insert_line, n, 0),
+				n,
+				NCURSES_SP_NAME(_nc_outch));
     } else {			/* if (insert_line) */
 	for (i = 0; i < n; i++) {
 	    TPUTS_TRACE("insert_line");
-	    putp(insert_line);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx insert_line);
 	}
     }
 
@@ -1763,10 +1926,14 @@
  * save/restore cursor capabilities if the terminal has them.
  */
 NCURSES_EXPORT(int)
-_nc_scrolln(int n, int top, int bot, int maxy)
+NCURSES_SP_NAME(_nc_scrolln) (NCURSES_SP_DCLx
+			      int n,
+			      int top,
+			      int bot,
+			      int maxy)
 /* scroll region from top to bot by n lines */
 {
-    NCURSES_CH_T blank = ClrBlank(stdscr);
+    NCURSES_CH_T blank = ClrBlank(NCURSES_SP_ARGx StdScreen(SP_PARM));
     int i;
     bool cursor_saved = FALSE;
     int res;
@@ -1787,34 +1954,36 @@
 	 * Explicitly clear if stuff pushed off top of region might
 	 * be saved by the terminal.
 	 */
-	res = scroll_csr_forward(n, top, bot, 0, maxy, blank);
+	res = scroll_csr_forward(NCURSES_SP_ARGx n, top, bot, 0, maxy, blank);
 
 	if (res == ERR && change_scroll_region) {
 	    if ((((n == 1 && scroll_forward) || parm_index)
-		 && (SP->_cursrow == bot || SP->_cursrow == bot - 1))
+		 && (SP_PARM->_cursrow == bot || SP_PARM->_cursrow == bot - 1))
 		&& save_cursor && restore_cursor) {
 		cursor_saved = TRUE;
 		TPUTS_TRACE("save_cursor");
-		putp(save_cursor);
+		NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx save_cursor);
 	    }
 	    TPUTS_TRACE("change_scroll_region");
-	    putp(TPARM_2(change_scroll_region, top, bot));
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+				   TPARM_2(change_scroll_region, top, bot));
 	    if (cursor_saved) {
 		TPUTS_TRACE("restore_cursor");
-		putp(restore_cursor);
+		NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx restore_cursor);
 	    } else {
-		SP->_cursrow = SP->_curscol = -1;
+		SP_PARM->_cursrow = SP_PARM->_curscol = -1;
 	    }
 
-	    res = scroll_csr_forward(n, top, bot, top, bot, blank);
+	    res = scroll_csr_forward(NCURSES_SP_ARGx n, top, bot, top, bot, blank);
 
 	    TPUTS_TRACE("change_scroll_region");
-	    putp(TPARM_2(change_scroll_region, 0, maxy));
-	    SP->_cursrow = SP->_curscol = -1;
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+				   TPARM_2(change_scroll_region, 0, maxy));
+	    SP_PARM->_cursrow = SP_PARM->_curscol = -1;
 	}
 
 	if (res == ERR && _nc_idlok)
-	    res = scroll_idl(n, top, bot - n + 1, blank);
+	    res = scroll_idl(NCURSES_SP_ARGx n, top, bot - n + 1, blank);
 
 	/*
 	 * Clear the newly shifted-in text.
@@ -1823,44 +1992,49 @@
 	    && (non_dest_scroll_region || (memory_below && bot == maxy))) {
 	    static const NCURSES_CH_T blank2 = NewChar(BLANK_TEXT);
 	    if (bot == maxy && clr_eos) {
-		GoTo(bot - n + 1, 0);
-		ClrToEOS(blank2);
+		GoTo(NCURSES_SP_ARGx bot - n + 1, 0);
+		ClrToEOS(NCURSES_SP_ARGx blank2);
 	    } else {
 		for (i = 0; i < n; i++) {
-		    GoTo(bot - i, 0);
-		    ClrToEOL(blank2, FALSE);
+		    GoTo(NCURSES_SP_ARGx bot - i, 0);
+		    ClrToEOL(NCURSES_SP_ARGx blank2, FALSE);
 		}
 	    }
 	}
 
     } else {			/* (n < 0) - scroll down (backward) */
-	res = scroll_csr_backward(-n, top, bot, 0, maxy, blank);
+	res = scroll_csr_backward(NCURSES_SP_ARGx -n, top, bot, 0, maxy, blank);
 
 	if (res == ERR && change_scroll_region) {
-	    if (top != 0 && (SP->_cursrow == top || SP->_cursrow == top - 1)
+	    if (top != 0
+		&& (SP_PARM->_cursrow == top ||
+		    SP_PARM->_cursrow == top - 1)
 		&& save_cursor && restore_cursor) {
 		cursor_saved = TRUE;
 		TPUTS_TRACE("save_cursor");
-		putp(save_cursor);
+		NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx save_cursor);
 	    }
 	    TPUTS_TRACE("change_scroll_region");
-	    putp(TPARM_2(change_scroll_region, top, bot));
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+				   TPARM_2(change_scroll_region, top, bot));
 	    if (cursor_saved) {
 		TPUTS_TRACE("restore_cursor");
-		putp(restore_cursor);
+		NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx restore_cursor);
 	    } else {
-		SP->_cursrow = SP->_curscol = -1;
+		SP_PARM->_cursrow = SP_PARM->_curscol = -1;
 	    }
 
-	    res = scroll_csr_backward(-n, top, bot, top, bot, blank);
+	    res = scroll_csr_backward(NCURSES_SP_ARGx
+				      -n, top, bot, top, bot, blank);
 
 	    TPUTS_TRACE("change_scroll_region");
-	    putp(TPARM_2(change_scroll_region, 0, maxy));
-	    SP->_cursrow = SP->_curscol = -1;
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+				   TPARM_2(change_scroll_region, 0, maxy));
+	    SP_PARM->_cursrow = SP_PARM->_curscol = -1;
 	}
 
 	if (res == ERR && _nc_idlok)
-	    res = scroll_idl(-n, bot + n + 1, top, blank);
+	    res = scroll_idl(NCURSES_SP_ARGx -n, bot + n + 1, top, blank);
 
 	/*
 	 * Clear the newly shifted-in text.
@@ -1869,8 +2043,8 @@
 	    && (non_dest_scroll_region || (memory_above && top == 0))) {
 	    static const NCURSES_CH_T blank2 = NewChar(BLANK_TEXT);
 	    for (i = 0; i < -n; i++) {
-		GoTo(i + top, 0);
-		ClrToEOL(blank2, FALSE);
+		GoTo(NCURSES_SP_ARGx i + top, 0);
+		ClrToEOL(NCURSES_SP_ARGx blank2, FALSE);
 	    }
 	}
     }
@@ -1878,99 +2052,156 @@
     if (res == ERR)
 	return (ERR);
 
-    _nc_scroll_window(curscr, n, top, bot, blank);
+    _nc_scroll_window(CurScreen(SP_PARM), n, top, bot, blank);
 
     /* shift hash values too - they can be reused */
-    _nc_scroll_oldhash(n, top, bot);
+    NCURSES_SP_NAME(_nc_scroll_oldhash) (NCURSES_SP_ARGx n, top, bot);
 
     return (OK);
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+_nc_scrolln(int n, int top, int bot, int maxy)
+{
+    return NCURSES_SP_NAME(_nc_scrolln) (CURRENT_SCREEN, n, top, bot, maxy);
+}
+#endif
+
 NCURSES_EXPORT(void)
-_nc_screen_resume(void)
+NCURSES_SP_NAME(_nc_screen_resume) (NCURSES_SP_DCL0)
 {
+    assert(SP_PARM);
+
     /* make sure terminal is in a sane known state */
-    SetAttr(SCREEN_ATTRS(SP), A_NORMAL);
-    newscr->_clear = TRUE;
+    SetAttr(SCREEN_ATTRS(SP_PARM), A_NORMAL);
+    NewScreen(SP_PARM)->_clear = TRUE;
 
     /* reset color pairs and definitions */
-    if (SP->_coloron || SP->_color_defs)
+    if (SP_PARM->_coloron || SP_PARM->_color_defs)
 	_nc_reset_colors();
 
     /* restore user-defined colors, if any */
-    if (SP->_color_defs < 0) {
+    if (SP_PARM->_color_defs < 0) {
 	int n;
-	SP->_color_defs = -(SP->_color_defs);
-	for (n = 0; n < SP->_color_defs; ++n) {
-	    if (SP->_color_table[n].init) {
-		init_color(n,
-			   SP->_color_table[n].r,
-			   SP->_color_table[n].g,
-			   SP->_color_table[n].b);
+	SP_PARM->_color_defs = -(SP_PARM->_color_defs);
+	for (n = 0; n < SP_PARM->_color_defs; ++n) {
+	    if (SP_PARM->_color_table[n].init) {
+		NCURSES_SP_NAME(init_color) (NCURSES_SP_ARGx n,
+					     SP_PARM->_color_table[n].r,
+					     SP_PARM->_color_table[n].g,
+					     SP_PARM->_color_table[n].b);
 	    }
 	}
     }
 
     if (exit_attribute_mode)
-	putp(exit_attribute_mode);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_attribute_mode);
     else {
 	/* turn off attributes */
 	if (exit_alt_charset_mode)
-	    putp(exit_alt_charset_mode);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_alt_charset_mode);
 	if (exit_standout_mode)
-	    putp(exit_standout_mode);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_standout_mode);
 	if (exit_underline_mode)
-	    putp(exit_underline_mode);
+	    NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_underline_mode);
     }
     if (exit_insert_mode)
-	putp(exit_insert_mode);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx exit_insert_mode);
     if (enter_am_mode && exit_am_mode)
-	putp(auto_right_margin ? enter_am_mode : exit_am_mode);
+	NCURSES_SP_NAME(putp) (NCURSES_SP_ARGx
+			       (auto_right_margin
+				? enter_am_mode
+				: exit_am_mode));
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_screen_resume(void)
+{
+    NCURSES_SP_NAME(_nc_screen_resume) (CURRENT_SCREEN);
+}
+#endif
+
+NCURSES_EXPORT(void)
+NCURSES_SP_NAME(_nc_screen_init) (NCURSES_SP_DCL0)
+{
+    NCURSES_SP_NAME(_nc_screen_resume) (NCURSES_SP_ARG);
+}
+
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(void)
 _nc_screen_init(void)
 {
-    _nc_screen_resume();
+    NCURSES_SP_NAME(_nc_screen_init) (CURRENT_SCREEN);
 }
+#endif
 
 /* wrap up screen handling */
 NCURSES_EXPORT(void)
-_nc_screen_wrap(void)
+NCURSES_SP_NAME(_nc_screen_wrap) (NCURSES_SP_DCL0)
 {
-    UpdateAttrs(normal);
+    if (SP_PARM == 0)
+	return;
+
+    UpdateAttrs(SP_PARM, normal);
 #if NCURSES_EXT_FUNCS
-    if (SP->_coloron
-	&& !SP->_default_color) {
+    if (SP_PARM->_coloron
+	&& !SP_PARM->_default_color) {
 	static const NCURSES_CH_T blank = NewChar(BLANK_TEXT);
-	SP->_default_color = TRUE;
-	_nc_do_color(-1, 0, FALSE, _nc_outch);
-	SP->_default_color = FALSE;
+	SP_PARM->_default_color = TRUE;
+	NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx
+				       -1, 0,
+				       FALSE,
+				       NCURSES_SP_NAME(_nc_outch));
+	SP_PARM->_default_color = FALSE;
 
-	mvcur(SP->_cursrow, SP->_curscol, screen_lines - 1, 0);
+	mvcur(SP_PARM->_cursrow,
+	      SP_PARM->_curscol,
+	      screen_lines(SP_PARM) - 1, 0);
 
-	ClrToEOL(blank, TRUE);
+	ClrToEOL(NCURSES_SP_ARGx blank, TRUE);
     }
 #endif
-    if (SP->_color_defs) {
+    if (SP_PARM->_color_defs) {
 	_nc_reset_colors();
     }
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_screen_wrap(void)
+{
+    NCURSES_SP_NAME(_nc_screen_wrap) (CURRENT_SCREEN);
+}
+#endif
+
 #if USE_XMC_SUPPORT
 NCURSES_EXPORT(void)
-_nc_do_xmc_glitch(attr_t previous)
+NCURSES_SP_NAME(_nc_do_xmc_glitch) (NCURSES_SP_DCLx attr_t previous)
 {
-    attr_t chg = XMC_CHANGES(previous ^ AttrOf(SCREEN_ATTRS(SP)));
+    if (SP_PARM != 0) {
+	attr_t chg = XMC_CHANGES(previous ^ AttrOf(SCREEN_ATTRS(SP_PARM)));
 
-    while (chg != 0) {
-	if (chg & 1) {
-	    SP->_curscol += magic_cookie_glitch;
-	    if (SP->_curscol >= SP->_columns)
-		wrap_cursor();
-	    TR(TRACE_UPDATE, ("bumped to %d,%d after cookie", SP->_cursrow, SP->_curscol));
+	while (chg != 0) {
+	    if (chg & 1) {
+		SP_PARM->_curscol += magic_cookie_glitch;
+		if (SP_PARM->_curscol >= SP_PARM->_columns)
+		    wrap_cursor(NCURSES_SP_ARG);
+		TR(TRACE_UPDATE, ("bumped to %d,%d after cookie",
+				  SP_PARM->_cursrow, SP_PARM->_curscol));
+	    }
+	    chg >>= 1;
 	}
-	chg >>= 1;
     }
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+_nc_do_xmc_glitch(attr_t previous)
+{
+    NCURSES_SP_NAME(_nc_do_xmc_glitch) (CURRENT_SCREEN, previous);
+}
+#endif
+
 #endif /* USE_XMC_SUPPORT */
diff -Naur ncurses-5.7.orig/ncurses/widechar/lib_cchar.c ncurses-5.7/ncurses/widechar/lib_cchar.c
--- ncurses-5.7.orig/ncurses/widechar/lib_cchar.c	2007-05-12 12:03:06.000000000 -0700
+++ ncurses-5.7/ncurses/widechar/lib_cchar.c	2009-06-05 14:01:16.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2005,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2007,2008 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            *
@@ -35,7 +35,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_cchar.c,v 1.12 2007/05/12 19:03:06 tom Exp $")
+MODULE_ID("$Id: lib_cchar.c,v 1.13 2008/11/16 00:19:59 juergen Exp $")
 
 /* 
  * The SuSv2 description leaves some room for interpretation.  We'll assume wch
@@ -50,8 +50,8 @@
 	 short color_pair,
 	 const void *opts)
 {
-    int i;
-    int len;
+    unsigned i;
+    unsigned len;
     int code = OK;
 
     TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%lu,%d,%p)"),
diff -Naur ncurses-5.7.orig/ncurses/widechar/lib_get_wch.c ncurses-5.7/ncurses/widechar/lib_get_wch.c
--- ncurses-5.7.orig/ncurses/widechar/lib_get_wch.c	2008-08-16 12:22:55.000000000 -0700
+++ ncurses-5.7/ncurses/widechar/lib_get_wch.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2008,2009 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            *
@@ -40,7 +40,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_get_wch.c,v 1.17 2008/08/16 19:22:55 tom Exp $")
+MODULE_ID("$Id: lib_get_wch.c,v 1.18 2009/04/18 22:41:33 tom Exp $")
 
 #if HAVE_MBTOWC && HAVE_MBLEN
 #define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
@@ -95,12 +95,12 @@
 		 * whether the improvement would be worth the effort.
 		 */
 		if (count != 0) {
-		    _nc_ungetch(sp, (int) value);
+		    safe_ungetch (SP_PARM, (int) value);
 		    code = ERR;
 		}
 		break;
 	    } else if (count + 1 >= sizeof(buffer)) {
-		_nc_ungetch(sp, (int) value);
+		safe_ungetch (SP_PARM, (int) value);
 		code = ERR;
 		break;
 	    } else {
@@ -111,7 +111,7 @@
 		    reset_mbytes(state);
 		    if (check_mbytes(wch, buffer, count, state) != status) {
 			code = ERR;	/* the two calls should match */
-			_nc_ungetch(sp, (int) value);
+			safe_ungetch (SP_PARM, (int) value);
 		    }
 		    value = wch;
 		    break;
diff -Naur ncurses-5.7.orig/ncurses/widechar/lib_get_wstr.c ncurses-5.7/ncurses/widechar/lib_get_wstr.c
--- ncurses-5.7.orig/ncurses/widechar/lib_get_wstr.c	2008-08-16 12:25:33.000000000 -0700
+++ ncurses-5.7/ncurses/widechar/lib_get_wstr.c	2009-06-05 14:01:16.000000000 -0700
@@ -38,9 +38,8 @@
 */
 
 #include <curses.priv.h>
-#include <term.h>
 
-MODULE_ID("$Id: lib_get_wstr.c,v 1.10 2008/08/16 19:25:33 tom Exp $")
+MODULE_ID("$Id: lib_get_wstr.c,v 1.11 2008/11/16 00:19:59 juergen Exp $")
 
 static int
 wadd_wint(WINDOW *win, wint_t *src)
diff -Naur ncurses-5.7.orig/ncurses/widechar/lib_ins_wch.c ncurses-5.7/ncurses/widechar/lib_ins_wch.c
--- ncurses-5.7.orig/ncurses/widechar/lib_ins_wch.c	2005-12-03 12:24:19.000000000 -0800
+++ ncurses-5.7/ncurses/widechar/lib_ins_wch.c	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2003,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2005,2009 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            *
@@ -39,7 +39,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_ins_wch.c,v 1.8 2005/12/03 20:24:19 tom Exp $")
+MODULE_ID("$Id: lib_ins_wch.c,v 1.9 2009/05/30 14:52:42 tom Exp $")
 
 /*
  * Insert the given character, updating the current location to simplify
@@ -112,6 +112,8 @@
 	    n = wcslen(wstr);
 	code = OK;
 	if (n > 0) {
+	    SCREEN *sp = _nc_screen_of(win);
+
 	    oy = win->_cury;
 	    ox = win->_curx;
 	    for (cp = wstr; *cp && ((cp - wstr) < n); cp++) {
@@ -129,7 +131,7 @@
 		    code = _nc_insert_wch(win, &tmp_cchar);
 		} else {
 		    /* tabs, other ASCII stuff */
-		    code = _nc_insert_ch(win, (chtype) (*cp));
+		    code = _nc_insert_ch(sp, win, (chtype) (*cp));
 		}
 		if (code != OK)
 		    break;
diff -Naur ncurses-5.7.orig/ncurses/widechar/lib_unget_wch.c ncurses-5.7/ncurses/widechar/lib_unget_wch.c
--- ncurses-5.7.orig/ncurses/widechar/lib_unget_wch.c	2008-06-07 07:50:37.000000000 -0700
+++ ncurses-5.7/ncurses/widechar/lib_unget_wch.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2008,2009 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            *
@@ -39,7 +39,7 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_unget_wch.c,v 1.10 2008/06/07 14:50:37 tom Exp $")
+MODULE_ID("$Id: lib_unget_wch.c,v 1.11 2009/04/04 23:57:25 tom Exp $")
 
 /*
  * Wrapper for wcrtomb() which obtains the length needed for the given
@@ -65,14 +65,14 @@
 }
 
 NCURSES_EXPORT(int)
-unget_wch(const wchar_t wch)
+NCURSES_SP_NAME(unget_wch) (NCURSES_SP_DCLx const wchar_t wch)
 {
     int result = OK;
     mbstate_t state;
     size_t length;
     int n;
 
-    T((T_CALLED("unget_wch(%#lx)"), (unsigned long) wch));
+    T((T_CALLED("unget_wch(%p, %#lx)"), SP_PARM, (unsigned long) wch));
 
     init_mb(state);
     length = _nc_wcrtomb(0, wch, &state);
@@ -86,7 +86,7 @@
 	    wcrtomb(string, wch, &state);
 
 	    for (n = (int) (length - 1); n >= 0; --n) {
-		if (_nc_ungetch(SP, string[n]) != OK) {
+		if (NCURSES_SP_NAME(ungetch) (NCURSES_SP_ARGx string[n]) != OK) {
 		    result = ERR;
 		    break;
 		}
@@ -101,3 +101,11 @@
 
     returnCode(result);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+unget_wch(const wchar_t wch)
+{
+    return NCURSES_SP_NAME(unget_wch) (CURRENT_SCREEN, wch);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/widechar/lib_vid_attr.c ncurses-5.7/ncurses/widechar/lib_vid_attr.c
--- ncurses-5.7.orig/ncurses/widechar/lib_vid_attr.c	2007-06-30 15:03:02.000000000 -0700
+++ ncurses-5.7/ncurses/widechar/lib_vid_attr.c	2009-06-05 14:01:51.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 2002-2007,2009 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            *
@@ -33,9 +33,13 @@
 #include <curses.priv.h>
 #include <term.h>
 
-MODULE_ID("$Id: lib_vid_attr.c,v 1.5 2007/06/30 22:03:02 tom Exp $")
+#ifndef CUR
+#define CUR SP_TERMTYPE 
+#endif
+
+MODULE_ID("$Id: lib_vid_attr.c,v 1.11 2009/05/10 00:48:29 tom Exp $")
 
-#define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
+#define doPut(mode) TPUTS_TRACE(#mode); NCURSES_SP_NAME(tputs)(NCURSES_SP_ARGx mode, 1, outc)
 
 #define TurnOn(mask,mode) \
 	if ((turn_on & mask) && mode) { doPut(mode); }
@@ -50,14 +54,20 @@
 		if ((pair != old_pair) \
 		 || (fix_pair0 && (pair == 0)) \
 		 || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \
-			_nc_do_color(old_pair, pair, reverse, outc); \
+		    NCURSES_SP_NAME(_nc_do_color) (NCURSES_SP_ARGx \
+						   old_pair, pair, \
+						   reverse, outc); \
 		} \
 	}
 
 #define set_color(mode, pair) mode &= ALL_BUT_COLOR; mode |= COLOR_PAIR(pair)
 
 NCURSES_EXPORT(int)
-vid_puts(attr_t newmode, short pair, void *opts GCC_UNUSED, int (*outc) (int))
+NCURSES_SP_NAME(vid_puts) (NCURSES_SP_DCLx
+			   attr_t newmode,
+			   short pair,
+			   void *opts GCC_UNUSED,
+			   NCURSES_SP_OUTC outc)
 {
 #if NCURSES_EXT_COLORS
     static attr_t previous_attr = A_NORMAL;
@@ -65,9 +75,9 @@
 
     attr_t turn_on, turn_off;
     bool reverse = FALSE;
-    bool can_color = (SP == 0 || SP->_coloron);
+    bool can_color = (SP_PARM == 0 || SP_PARM->_coloron);
 #if NCURSES_EXT_FUNCS
-    bool fix_pair0 = (SP != 0 && SP->_coloron && !SP->_default_color);
+    bool fix_pair0 = (SP_PARM != 0 && SP_PARM->_coloron && !SP_PARM->_default_color);
 #else
 #define fix_pair0 FALSE
 #endif
@@ -76,18 +86,18 @@
     T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
 
     /* this allows us to go on whether or not newterm() has been called */
-    if (SP) {
-	previous_attr = AttrOf(SCREEN_ATTRS(SP));
-	previous_pair = GetPair(SCREEN_ATTRS(SP));
+    if (SP_PARM) {
+	previous_attr = AttrOf(SCREEN_ATTRS(SP_PARM));
+	previous_pair = GetPair(SCREEN_ATTRS(SP_PARM));
     }
 
     TR(TRACE_ATTRS, ("previous attribute was %s, %d",
 		     _traceattr(previous_attr), previous_pair));
 
 #if !USE_XMC_SUPPORT
-    if ((SP != 0)
+    if ((SP_PARM != 0)
 	&& (magic_cookie_glitch > 0))
-	newmode &= ~(SP->_xmc_suppress);
+	newmode &= ~(SP_PARM->_xmc_suppress);
 #endif
 
     /*
@@ -144,10 +154,10 @@
 	    if (exit_attribute_mode) {
 		doPut(exit_attribute_mode);
 	    } else {
-		if (!SP || SP->_use_rmul) {
+		if (!SP_PARM || SP_PARM->_use_rmul) {
 		    TurnOff(A_UNDERLINE, exit_underline_mode);
 		}
-		if (!SP || SP->_use_rmso) {
+		if (!SP_PARM || SP_PARM->_use_rmso) {
 		    TurnOff(A_STANDOUT, exit_standout_mode);
 		}
 	    }
@@ -159,16 +169,18 @@
     } else if (set_attributes) {
 	if (turn_on || turn_off) {
 	    TPUTS_TRACE("set_attributes");
-	    tputs(TPARM_9(set_attributes,
-			  (newmode & A_STANDOUT) != 0,
-			  (newmode & A_UNDERLINE) != 0,
-			  (newmode & A_REVERSE) != 0,
-			  (newmode & A_BLINK) != 0,
-			  (newmode & A_DIM) != 0,
-			  (newmode & A_BOLD) != 0,
-			  (newmode & A_INVIS) != 0,
-			  (newmode & A_PROTECT) != 0,
-			  (newmode & A_ALTCHARSET) != 0), 1, outc);
+	    NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx
+				    TPARM_9(set_attributes,
+					    (newmode & A_STANDOUT) != 0,
+					    (newmode & A_UNDERLINE) != 0,
+					    (newmode & A_REVERSE) != 0,
+					    (newmode & A_BLINK) != 0,
+					    (newmode & A_DIM) != 0,
+					    (newmode & A_BOLD) != 0,
+					    (newmode & A_INVIS) != 0,
+					    (newmode & A_PROTECT) != 0,
+					    (newmode & A_ALTCHARSET) != 0),
+				    1, outc);
 	    previous_attr &= ALL_BUT_COLOR;
 	    previous_pair = 0;
 	}
@@ -179,11 +191,11 @@
 
 	TurnOff(A_ALTCHARSET, exit_alt_charset_mode);
 
-	if (!SP || SP->_use_rmul) {
+	if (!SP_PARM || SP_PARM->_use_rmul) {
 	    TurnOff(A_UNDERLINE, exit_underline_mode);
 	}
 
-	if (!SP || SP->_use_rmso) {
+	if (!SP_PARM || SP_PARM->_use_rmso) {
 	    TurnOff(A_STANDOUT, exit_standout_mode);
 	}
 
@@ -221,9 +233,9 @@
     if (reverse)
 	newmode |= A_REVERSE;
 
-    if (SP) {
-	SetAttr(SCREEN_ATTRS(SP), newmode);
-	SetPair(SCREEN_ATTRS(SP), pair);
+    if (SP_PARM) {
+	SetAttr(SCREEN_ATTRS(SP_PARM), newmode);
+	SetPair(SCREEN_ATTRS(SP_PARM), pair);
     } else {
 	previous_attr = newmode;
 	previous_pair = pair;
@@ -233,29 +245,60 @@
 #else
     T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
     set_color(newmode, pair);
-    returnCode(vidputs(newmode, outc));
+    returnCode(NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx newmode, outc));
 #endif
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+vid_puts(attr_t newmode,
+	 short pair,
+	 void *opts GCC_UNUSED,
+	 NCURSES_OUTC outc)
+{
+    SetSafeOutcWrapper(outc);
+    return NCURSES_SP_NAME(vid_puts) (CURRENT_SCREEN,
+				      newmode,
+				      pair,
+				      opts,
+				      _nc_outc_wrapper);
+}
+#endif
+
 #undef vid_attr
 NCURSES_EXPORT(int)
-vid_attr(attr_t newmode, short pair, void *opts)
+NCURSES_SP_NAME(vid_attr) (NCURSES_SP_DCLx
+			   attr_t newmode,
+			   short pair,
+			   void *opts)
 {
     T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), pair));
-    returnCode(vid_puts(newmode, pair, opts, _nc_outch));
+    returnCode(NCURSES_SP_NAME(vid_puts) (NCURSES_SP_ARGx
+					  newmode,
+					  pair,
+					  opts,
+					  NCURSES_SP_NAME(_nc_outch)));
 }
 
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(int)
+vid_attr(attr_t newmode, short pair, void *opts)
+{
+    return NCURSES_SP_NAME(vid_attr) (CURRENT_SCREEN, newmode, pair, opts);
+}
+#endif
+
 /*
  * This implementation uses the same mask values for A_xxx and WA_xxx, so
  * we can use termattrs() for part of the logic.
  */
 NCURSES_EXPORT(attr_t)
-term_attrs(void)
+NCURSES_SP_NAME(term_attrs) (NCURSES_SP_DCL0)
 {
     attr_t attrs;
 
     T((T_CALLED("term_attrs()")));
-    attrs = termattrs();
+    attrs = SP_PARM ? NCURSES_SP_NAME(termattrs) (NCURSES_SP_ARG) : 0;
 
     /* these are only supported for wide-character mode */
     if (enter_horizontal_hl_mode)
@@ -273,3 +316,11 @@
 
     returnAttr(attrs);
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(attr_t)
+term_attrs(void)
+{
+    return NCURSES_SP_NAME(term_attrs) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/ncurses/widechar/lib_wacs.c ncurses-5.7/ncurses/widechar/lib_wacs.c
--- ncurses-5.7.orig/ncurses/widechar/lib_wacs.c	2006-12-17 07:16:17.000000000 -0800
+++ ncurses-5.7/ncurses/widechar/lib_wacs.c	2009-06-05 14:01:16.000000000 -0700
@@ -31,9 +31,8 @@
  ****************************************************************************/
 
 #include <curses.priv.h>
-#include <term.h>
 
-MODULE_ID("$Id: lib_wacs.c,v 1.7 2006/12/17 15:16:17 tom Exp $")
+MODULE_ID("$Id: lib_wacs.c,v 1.8 2008/11/16 00:19:59 juergen Exp $")
 
 NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0;
 
diff -Naur ncurses-5.7.orig/ncurses/widechar/lib_wunctrl.c ncurses-5.7/ncurses/widechar/lib_wunctrl.c
--- ncurses-5.7.orig/ncurses/widechar/lib_wunctrl.c	2007-06-12 13:22:32.000000000 -0700
+++ ncurses-5.7/ncurses/widechar/lib_wunctrl.c	2009-06-05 14:01:44.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2001-2005,2007 Free Software Foundation, Inc.              *
+ * Copyright (c) 2001-2007,2009 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            *
@@ -35,21 +35,31 @@
 
 #include <curses.priv.h>
 
-MODULE_ID("$Id: lib_wunctrl.c,v 1.12 2007/06/12 20:22:32 tom Exp $")
+MODULE_ID("$Id: lib_wunctrl.c,v 1.13 2009/04/18 19:06:55 tom Exp $")
 
 NCURSES_EXPORT(wchar_t *)
-wunctrl(cchar_t *wc)
+NCURSES_SP_NAME(wunctrl) (NCURSES_SP_DCLx cchar_t *wc)
 {
-    static wchar_t str[CCHARW_MAX + 1], *sp;
+    static wchar_t str[CCHARW_MAX + 1], *wsp;
 
     if (Charable(*wc)) {
-	const char *p = unctrl((unsigned) _nc_to_char((wint_t) CharOf(*wc)));
+	const char *p =
+	NCURSES_SP_NAME(unctrl) (NCURSES_SP_ARGx
+				 (unsigned) _nc_to_char((wint_t)CharOf(*wc)));
 
-	for (sp = str; *p; ++p) {
-	    *sp++ = _nc_to_widechar(*p);
+	for (wsp = str; *p; ++p) {
+	    *wsp++ = _nc_to_widechar(*p);
 	}
-	*sp = 0;
+	*wsp = 0;
 	return str;
     } else
 	return wc->chars;
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(wchar_t *)
+wunctrl(cchar_t *wc)
+{
+    return NCURSES_SP_NAME(wunctrl) (CURRENT_SCREEN, wc);
+}
+#endif
diff -Naur ncurses-5.7.orig/NEWS ncurses-5.7/NEWS
--- ncurses-5.7.orig/NEWS	2008-11-01 17:56:22.000000000 -0700
+++ ncurses-5.7/NEWS	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 -------------------------------------------------------------------------------
--- Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.               --
+-- Copyright (c) 1998-2008,2009 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: NEWS,v 1.1320 2008/11/02 00:56:22 tom Exp $
+-- $Id: NEWS,v 1.1392 2009/05/30 19:19:59 tom Exp $
 -------------------------------------------------------------------------------
 
 This is a log of changes that ncurses has gone through since Zeyd started
@@ -45,6 +45,257 @@
 Changes through 1.9.9e did not credit all contributions;
 it is not possible to add this information.
 
+20090530
+	+ fix an infinite recursion when adding a legacy-coding 8-bit value
+	  using insch() (report by Clemens Ladisch).
+	+ free home-terminfo string in del_curterm() (patch by Dan Weber).
+	+ continue integrating "sp-funcs" by Juergen Pfeifer (incomplete).
+
+20090523
+	+ continue integrating "sp-funcs" by Juergen Pfeifer (incomplete).
+
+20090516
+	+ work around antique BSD game's manipulation of stdscr, etc., versus
+	  SCREEN's copy of the pointer (Debian #528411).
+	+ add a cast to wattrset macro to avoid compiler warning when comparing
+	  its result against ERR (adapted from patch by Matt Kraii, Debian
+	  #528374).
+
+20090510
+	+ continue integrating "sp-funcs" by Juergen Pfeifer (incomplete).
+
+20090502
+	+ continue integrating "sp-funcs" by Juergen Pfeifer (incomplete).
+	+ add vwmterm terminfo entry (patch by Bryan Christ).
+
+20090425
+	+ continue integrating "sp-funcs" by Juergen Pfeifer (incomplete).
+
+20090419
+	+ build fix for _nc_free_and_exit() change in 20090418 (report by
+	  Christian Ebert).
+
+20090418
+	+ continue integrating "sp-funcs" by Juergen Pfeifer (incomplete).
+
+20090411
+	+ continue integrating "sp-funcs" by Juergen Pfeifer (incomplete).
+	  This change finishes merging for menu and panel libraries, does
+	  part of the form library.
+
+20090404
+	+ suppress configure check for static/dynamic linker flags for gcc on
+	  Darwin (report by Nelson Beebe).
+
+20090328
+	+ extend ansi.sys pfkey capability from kf1-kf10 to kf1-kf48, moving
+	  function key definitions from emx-base for consistency -TD
+	+ correct missing final 'p' in pfkey capability of ansi.sys-old (report
+	  by Kalle Olavi Niemitalo).
+	+ improve test/ncurses.c 'F' test, show combining characters in color.
+	+ quiet a false report by cppcheck in c++/cursesw.cc by eliminating
+	  a temporary variable.
+	+ use _nc_doalloc() rather than realloc() in a few places in ncurses
+	  library to avoid leak in out-of-memory condition (reports by William
+	  Egert and Martin Ettl based on cppcheck tool).
+	+ add --with-ncurses-wrap-prefix option to test/configure (discussion
+	  with Charles Wilson).
+	+ use ncurses*-config scripts if available for test/configure.
+	+ update test/aclocal.m4 and test/configure
+	> patches by Charles Wilson:
+	+ modify CF_WITH_LIBTOOL configure check to allow unreleased libtool
+	  version numbers (e.g.  which include alphabetic chars, as well as
+	  digits, after the final '.').
+	+ improve use of -no-undefined option for libtool by setting an
+	  intermediate variable LT_UNDEF in the configure script, and then
+	  using that in the libtool link-commands.
+	+ fix an missing use of NCURSES_PUBLIC_VAR() in tinfo/MKcodes.awk
+	  from 2009031 changes.
+	+ improve mk-1st.awk script by writing separate cases for the
+	  LIBTOOL_LINK command, depending on which library (ncurses, ticlib,
+	  termlib) is to be linked.
+	+ modify configure.in to allow broken-linker configurations, not just
+	  enable-reentrant, to set public wrap prefix.
+
+20090321
+	+ add TICS_LIST and SHLIB_LIST to allow libtool 2.2.6 on Cygwin to
+	  build with tic and term libraries (patch by Charles Wilson).
+	+ add -no-undefined option to libtool for Cygwin, MinGW, U/Win and AIX
+	  (report by Charles Wilson).
+	+ fix definition for c++/Makefile.in's SHLIB_LIST, which did not list
+	  the form, menu or panel libraries (patch by Charles Wilson).
+	+ add configure option --with-wrap-prefix to allow setting the prefix
+	  for functions used to wrap global variables to something other than
+	  "_nc_" (discussion with Charles Wilson).
+
+20090314
+	+ modify scripts to generate ncurses*-config and pc-files to add
+	  dependency for tinfo library (patch by Charles Wilson).
+	+ improve comparison of program-names when checking for linked flavors
+	  such as "reset" by ignoring the executable suffix (reports by Charles
+	  Wilson, Samuel Thibault and Cedric Bretaudeau on Cygwin mailing
+	  list).
+	+ suppress configure check for static/dynamic linker flags for gcc on
+	  Solaris 10, since gcc is confused by absence of static libc, and
+	  does not switch back to dynamic mode before finishing the libraries
+	  (reports by Joel Bertrand, Alan Pae).
+	+ minor fixes to Intel compiler warning checks in configure script.
+	+ modify _nc_leaks_tinfo() so leak-checking in test/railroad.c works.
+	+ modify set_curterm() to make broken-linker configuration work with
+	  changes from 20090228 (report by Charles Wilson).
+
+20090228
+	+ continue integrating "sp-funcs" by Juergen Pfeifer (incomplete).
+	+ modify declaration of cur_term when broken-linker is used, but
+	  enable-reentrant is not, to match pre-5.7 (report by Charles Wilson).
+
+20090221
+	+ continue integrating "sp-funcs" by Juergen Pfeifer (incomplete).
+
+20090214
+	+ add configure script --enable-sp-funcs to enable the new set of
+	  extended functions.
+	+ start integrating patches by Juergen Pfeifer:
+	  + add extended functions which specify the SCREEN pointer for several
+	    curses functions which use the global SP (these are incomplete;
+	    some internals work is needed to complete these).
+	  + add special cases to configure script for MinGW port.
+
+20090207
+	+ update several configure macros from lynx changes
+	  + append (not prepend) to CFLAGS/CPPFLAGS
+	  + change variable from PATHSEP to PATH_SEPARATOR
+	+ improve install-rules for pc-files (patch by Miroslav Lichvar).
+	  + make it work with $DESTDIR
+	  + create the pkg-config library directory if needed.
+
+20090124
+	+ modify init_pair() to allow caller to create extra color pairs beyond
+	  the color_pairs limit, which use default colors (request by Emanuele
+	  Giaquinta).
+	+ add misc/terminfo.tmp and misc/*.pc to "sources" rule.
+	+ fix typo "==" where "=" is needed in ncurses-config.in and
+	  gen-pkgconfig.in files (Debian #512161).
+
+20090117
+	+ add -shared option to MK_SHARED_LIB when -Bsharable is used, for
+	  *BSD's, without which "main" might be one of the shared library's
+	  dependencies (report/analysis by Ken Dickey).
+	+ modify waddch_literal(), updating line-pointer after a multicolumn
+	  character is found to not fit on the current row, and wrapping is
+	  done.  Since the line-pointer was not updated, the wrapped
+	  multicolumn character was written to the beginning of the current row
+	  (cf: 20041023, reported by "Nick" regarding problem with ncmpc
+	  http://musicpd.org/mantis/bug_view_page.php?bug_id=1930).
+
+20090110
+	+ add screen.Eterm terminfo entry (GenToo #124887) -TD
+	+ modify adacurses-config to look for ".ali" files in the adalib
+	  directory.
+	+ correct install for Ada95, which omitted libAdaCurses.a used in
+	  adacurses-config
+	+ change install for adacurses-config to provide additional flavors
+	  such as adacursesw-config, for ncursesw (GenToo #167849).
+
+20090105
+	+ remove undeveloped feature in ncurses-config.in for setting
+	  prefix variable.
+	+ recent change to ncurses-config.in did not take into account the
+	  --disable-overwrite option, which sets $includedir to the
+	  subdirectory and using just that for a -I option does not work - fix
+	  (report by Frederic L W Meunier).
+
+20090104
+	+ modify gen-pkgconfig.in to eliminate a dependency on rpath when
+	  deciding whether to add $LIBS to --libs output; that should be shown
+	  for the ncurses and tinfo libraries without taking rpath into
+	  account.
+	+ fix an overlooked change from $AR_OPTS to $ARFLAGS in mk-1st.awk,
+	  used in static libraries (report by Marty Jack).
+
+20090103
+	+ add a configure-time check to pick a suitable value for
+	  CC_SHARED_OPTS for Solaris (report by Dagobert Michelsen).
+	+ add configure --with-pkg-config and --enable-pc-files options, along
+	  with misc/gen-pkgconfig.in which can be used to generate ".pc" files
+	  for pkg-config (request by Jan Engelhardt).
+	+ use $includedir symbol in misc/ncurses-config.in, add --includedir
+	  option.
+	+ change makefiles to use $ARFLAGS rather than $AR_OPTS, provide a
+	  configure check to detect whether a "-" is needed before "ar"
+	  options.
+	+ update config.guess, config.sub from
+		http://savannah.gnu.org/projects/config
+
+20081227
+	+ modify mk-1st.awk to work with extra categories for tinfo library.
+	+ modify configure script to allow building shared libraries with gcc
+	  on AIX 5 or 6 (adapted from patch by Lital Natan).
+
+20081220
+	+ modify to omit the opaque-functions from lib_gen.o when
+	  --disable-ext-funcs is used.
+	+ add test/clip_printw.c to illustrate how to use printw without
+	  wrapping.
+	+ modify ncurses 'F' test to demo wborder_set() with colored lines.
+	+ modify ncurses 'f' test to demo wborder() with colored lines.
+
+20081213
+	+ add check for failure to open hashed-database needed for db4.6
+	  (GenToo #245370).
+	+ corrected --without-manpages option; previous change only suppressed
+	  the auxiliary rules install.man and uninstall.man
+	+ add case for FreeMINT to configure macro CF_XOPEN_SOURCE (patch from
+	  GenToo #250454).
+	+ fixes from NetBSD port at
+	  http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/devel/ncurses/patches
+	  patch-ac (build-fix for DragonFly)
+	  patch-ae (use INSTALL_SCRIPT for installing misc/ncurses*-config).
+	+ improve configure script macros CF_HEADER_PATH and CF_LIBRARY_PATH
+	  by adding CFLAGS, CPPFLAGS and LDFLAGS, LIBS values to the
+	  search-lists.
+	+ correct title string for keybound manpage (patch by Frederic Culot,
+	  OpenBSD documentation/6019),
+
+20081206
+	+ move del_curterm() call from _nc_freeall() to _nc_leaks_tinfo() to
+	  work for progs/clear, progs/tabs, etc.
+	+ correct buffer-size after internal resizing of wide-character
+	  set_field_buffer(), broken in 20081018 changes (report by Mike Gran).
+	+ add "-i" option to test/filter.c to tell it to use initscr() rather
+	  than newterm(), to investigate report on comp.unix.programmer that
+	  ncurses would clear the screen in that case (it does not - the issue
+	  was xterm's alternate screen feature).
+	+ add check in mouse-driver to disable connection if GPM returns a
+	  zero, indicating that the connection is closed (Debian #506717,
+	  adapted from patch by Samuel Thibault).
+
+20081129
+	+ improve a workaround in adding wide-characters, when a control
+	  character is found.  The library (cf: 20040207) uses unctrl() to
+	  obtain a printable version of the control character, but was not
+	  passing color or video attributes.
+	+ improve test/ncurses.c 'a' test, using unctrl() more consistently to
+	  display meta-characters.
+	+ turn on _XOPEN_CURSES definition in curses.h
+	+ add eterm-color entry (report by Vincent Lefevre) -TD
+	+ correct use of key_name() in test/ncurses.c 'A' test, which only
+	  displays wide-characters, not key-codes since 20070612 (report by
+	  Ricardo Cantu).
+
+20081122
+	+ change _nc_has_mouse() to has_mouse(), reflect its use in C++ and
+	  Ada95 (patch by Juergen Pfeifer).
+	+ document in TO-DO an issue with Cygwin's package for GNAT (report
+	  by Mike Dennison).
+	+ improve error-checking of command-line options in "tabs" program.
+
+20081115
+	+ change several terminfo entries to make consistent use of ANSI
+	  clear-all-tabs -TD
+	+ add "tabs" program (prompted by Debian #502260).
+	+ add configure --without-manpages option (request by Mike Frysinger).
+
 20081102 5.7 release for upload to ftp.gnu.org
 
 20081025
diff -Naur ncurses-5.7.orig/panel/Makefile.in ncurses-5.7/panel/Makefile.in
--- ncurses-5.7.orig/panel/Makefile.in	2007-04-28 07:56:11.000000000 -0700
+++ ncurses-5.7/panel/Makefile.in	2009-06-05 14:01:30.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.52 2007/04/28 14:56:11 tom Exp $
+# $Id: Makefile.in,v 1.54 2009/03/28 18:22:39 Charles.Wilson Exp $
 ##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2007,2009 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"), #
@@ -64,6 +64,7 @@
 LIBTOOL_LINK	= @LIB_LINK@
 LIBTOOL_INSTALL	= @LIB_INSTALL@
 LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
+LT_UNDEF	= @LT_UNDEF@
 
 INSTALL		= @INSTALL@
 INSTALL_LIB	= @INSTALL@ @INSTALL_LIB@
@@ -71,7 +72,7 @@
 INSTALL_DATA	= @INSTALL_DATA@
 
 AR		= @AR@
-AR_OPTS		= @AR_OPTS@
+ARFLAGS		= @ARFLAGS@
 AWK		= @AWK@
 LD		= @LD@
 LN_S		= @LN_S@
diff -Naur ncurses-5.7.orig/panel/p_above.c ncurses-5.7/panel/p_above.c
--- ncurses-5.7.orig/panel/p_above.c	2005-02-19 08:44:57.000000000 -0800
+++ ncurses-5.7/panel/p_above.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -29,24 +29,56 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1997-1999,2008          *
  ****************************************************************************/
 
 /* p_above.c
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_above.c,v 1.6 2005/02/19 16:44:57 tom Exp $")
+MODULE_ID("$Id: p_above.c,v 1.7 2009/04/11 20:03:06 tom Exp $")
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(PANEL *)
+ground_panel(SCREEN * sp)
+{
+  T((T_CALLED("ground_panel(%p)"), sp));
+  if (sp)
+    {
+      struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp);
+
+      if (_nc_bottom_panel)	/* this is the pseudo panel */
+	returnPanel(_nc_bottom_panel->above);
+      else
+	returnPanel(0);
+    }
+  else
+    {
+      if (0 == CURRENT_SCREEN)
+	returnPanel(0);
+      else
+	returnPanel(ground_panel(CURRENT_SCREEN));
+    }
+}
+#endif
 
 NCURSES_EXPORT(PANEL *)
 panel_above(const PANEL * pan)
 {
+  PANEL *result;
+
   T((T_CALLED("panel_above(%p)"), pan));
-  if (!pan)
+  if (pan)
+    result = pan->above;
+  else
     {
+#if NCURSES_SP_FUNCS
+      result = ground_panel(CURRENT_SCREEN);
+#else
       /* if top and bottom are equal, we have no or only the pseudo panel;
          if not, we return the panel above the pseudo panel */
-      returnPanel(EMPTY_STACK()? (PANEL *) 0 : _nc_bottom_panel->above);
+      result = EMPTY_STACK()? (PANEL *) 0 : _nc_bottom_panel->above;
+#endif
     }
-  else
-    returnPanel(pan->above);
+  returnPanel(result);
 }
diff -Naur ncurses-5.7.orig/panel/panel.c ncurses-5.7/panel/panel.c
--- ncurses-5.7.orig/panel/panel.c	2005-02-19 10:04:31.000000000 -0800
+++ ncurses-5.7/panel/panel.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -29,12 +29,14 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1996-1999,2008          *
+ *     and: Thomas E. Dickey                                                *
  ****************************************************************************/
 
 /* panel.c -- implementation of panels library, some core routines */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: panel.c,v 1.23 2005/02/19 18:04:31 tom Exp $")
+MODULE_ID("$Id: panel.c,v 1.24 2009/04/11 21:29:10 tom Exp $")
 
 /*+-------------------------------------------------------------------------
 	_nc_retrace_panel (pan)
@@ -91,6 +93,8 @@
 {
   char s80[80];
 
+  GetPanelHook(pan);
+
   sprintf(s80, fmt, num, pan);
   _tracef("%s b=%s t=%s", s80,
 	  (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--",
diff -Naur ncurses-5.7.orig/panel/panel.h ncurses-5.7/panel/panel.h
--- ncurses-5.7.orig/panel/panel.h	2006-05-27 12:49:40.000000000 -0700
+++ ncurses-5.7/panel/panel.h	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2001,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2009 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            *
@@ -29,9 +29,10 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1996-1999,2008          *
  ****************************************************************************/
 
-/* $Id: panel.h,v 1.10 2006/05/27 19:49:40 tom Exp $ */
+/* $Id: panel.h,v 1.11 2009/04/11 19:50:40 tom Exp $ */
 
 /* panel.h -- interface file for panels library */
 
@@ -68,6 +69,13 @@
 extern NCURSES_EXPORT(int)     replace_panel (PANEL *,WINDOW *);
 extern NCURSES_EXPORT(int)     panel_hidden (const PANEL *);
 
+#if NCURSES_SP_FUNCS
+extern NCURSES_EXPORT(PANEL *) ground_panel(SCREEN *);
+extern NCURSES_EXPORT(PANEL *) ceiling_panel(SCREEN *);
+
+extern NCURSES_EXPORT(void)    NCURSES_SP_NAME(update_panels) (SCREEN*);
+#endif
+
 #if	defined(__cplusplus)
 }
 #endif
diff -Naur ncurses-5.7.orig/panel/panel.priv.h ncurses-5.7/panel/panel.priv.h
--- ncurses-5.7.orig/panel/panel.priv.h	2008-09-27 15:36:11.000000000 -0700
+++ ncurses-5.7/panel/panel.priv.h	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 
-/* $Id: panel.priv.h,v 1.22 2008/09/27 22:36:11 tom Exp $ */
+/* $Id: panel.priv.h,v 1.23 2009/04/11 20:33:55 tom Exp $ */
 
 #ifndef NCURSES_PANEL_PRIV_H
 #define NCURSES_PANEL_PRIV_H 1
@@ -39,9 +39,11 @@
 #include <string.h>
 #include <assert.h>
 
-#include "curses.priv.h"
+struct screen;              /* forward declaration */
+
+#include "curses.priv.h"    /* includes nc_panel.h */
 #include "panel.h"
-#include <nc_panel.h>
+
 
 #if USE_RCS_IDS
 #  define MODULE_ID(id) static const char Ident[] = id;
@@ -83,14 +85,38 @@
 #  define Touchline(pan,start,count) touchline((pan)->win,start,count)
 #endif
 
+#if NCURSES_SP_FUNCS
+#define GetScreenHook(sp) \
+			struct panelhook* ph = NCURSES_SP_NAME(_nc_panelhook)(sp)
+#define GetPanelHook(pan) \
+			GetScreenHook(_nc_screen_of((pan)->win))
+#define GetWindowHook(win) \
+			SCREEN* sp = _nc_screen_of(win); \
+			GetScreenHook(sp)
+#define GetHook(pan)	SCREEN* sp = _nc_screen_of(pan->win); \
+			GetScreenHook(sp)
+
+#define _nc_stdscr_pseudo_panel ((ph)->stdscr_pseudo_panel)
+#define _nc_top_panel           ((ph)->top_panel)
+#define _nc_bottom_panel        ((ph)->bottom_panel)
+
+#else	/* !NCURSES_SP_FUNCS */
+
+#define GetScreenHook(sp) /* nothing */
+#define GetPanelHook(pan) /* nothing */
+#define GetWindowHook(win) /* nothing */
+#define GetHook(pan) /* nothing */
+
 #define _nc_stdscr_pseudo_panel _nc_panelhook()->stdscr_pseudo_panel
-#define _nc_top_panel _nc_panelhook()->top_panel
-#define _nc_bottom_panel _nc_panelhook()->bottom_panel
+#define _nc_top_panel           _nc_panelhook()->top_panel
+#define _nc_bottom_panel        _nc_panelhook()->bottom_panel
 
-#define EMPTY_STACK() (_nc_top_panel==_nc_bottom_panel)
-#define Is_Bottom(p)  (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above==(p)))
-#define Is_Top(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_top_panel==(p)))
-#define Is_Pseudo(p) ((p) && ((p)==_nc_bottom_panel))
+#endif	/* NCURSES_SP_FUNCS */
+
+#define EMPTY_STACK() (_nc_top_panel == _nc_bottom_panel)
+#define Is_Bottom(p)  (((p) != (PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above == (p)))
+#define Is_Top(p)     (((p) != (PANEL*)0) && !EMPTY_STACK() && (_nc_top_panel == (p)))
+#define Is_Pseudo(p)  (((p) != (PANEL*)0) && ((p) == _nc_bottom_panel))
 
 /*+-------------------------------------------------------------------------
 	IS_LINKED(pan) - check to see if panel is in the stack
@@ -122,7 +148,7 @@
    ix2 = (PENDX(pan1)   < PENDX(pan2))   ? PENDX(pan1)   : PENDX(pan2);\
    iy1 = (PSTARTY(pan1) < PSTARTY(pan2)) ? PSTARTY(pan2) : PSTARTY(pan1);\
    iy2 = (PENDY(pan1)   < PENDY(pan2))   ? PENDY(pan1)   : PENDY(pan2);\
-   assert((ix1<=ix2) && (iy1<=iy2));\
+   assert((ix1<=ix2) && (iy1<=iy2))
 
 
 /*+-------------------------------------------------------------------------
@@ -136,12 +162,12 @@
 {  PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
    while(pan2) {\
       if ((pan2 != pan) && PANELS_OVERLAPPED(pan,pan2)) {\
-        int y,ix1,ix2,iy1,iy2;\
-        COMPUTE_INTERSECTION(pan,pan2,ix1,ix2,iy1,iy2);\
+        int y, ix1, ix2, iy1, iy2;\
+        COMPUTE_INTERSECTION(pan, pan2, ix1, ix2, iy1, iy2);\
 	for(y = iy1; y <= iy2; y++) {\
 	  if (is_linetouched(pan->win,y - PSTARTY(pan))) {\
             struct ldat* line = &(pan2->win->_line[y - PSTARTY(pan2)]);\
-            CHANGED_RANGE(line,ix1-PSTARTX(pan2),ix2-PSTARTX(pan2));\
+            CHANGED_RANGE(line, ix1 - PSTARTX(pan2), ix2 - PSTARTX(pan2));\
           }\
 	}\
       }\
@@ -180,4 +206,9 @@
       err = err_if_unlinked;\
   }
 
+#if NCURSES_SP_FUNCS
+/* These may become later renamed and part of panel.h and the public API */
+extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_update_panels)(SCREEN*);
+#endif
+
 #endif /* NCURSES_PANEL_PRIV_H */
diff -Naur ncurses-5.7.orig/panel/p_below.c ncurses-5.7/panel/p_below.c
--- ncurses-5.7.orig/panel/p_below.c	2005-02-19 08:45:10.000000000 -0800
+++ ncurses-5.7/panel/p_below.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -29,26 +29,57 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1997-1999,2008          *
  ****************************************************************************/
 
 /* p_below.c
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_below.c,v 1.6 2005/02/19 16:45:10 tom Exp $")
+MODULE_ID("$Id: p_below.c,v 1.7 2009/04/11 20:17:59 tom Exp $")
 
+#if NCURSES_SP_FUNCS
 NCURSES_EXPORT(PANEL *)
-panel_below(const PANEL * pan)
+ceiling_panel(SCREEN * sp)
 {
-  T((T_CALLED("panel_below(%p)"), pan));
-  if (!pan)
+  T((T_CALLED("ceiling_panel(%p)"), sp));
+  if (sp)
     {
+      struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp);
+
       /* if top and bottom are equal, we have no or only the pseudo panel */
       returnPanel(EMPTY_STACK()? (PANEL *) 0 : _nc_top_panel);
     }
   else
     {
+      if (0 == CURRENT_SCREEN)
+	returnPanel(0);
+      else
+	returnPanel(ceiling_panel(CURRENT_SCREEN));
+    }
+}
+#endif
+
+NCURSES_EXPORT(PANEL *)
+panel_below(const PANEL * pan)
+{
+  PANEL *result;
+
+  T((T_CALLED("panel_below(%p)"), pan));
+  if (pan)
+    {
+      GetHook(pan);
       /* we must not return the pseudo panel */
-      returnPanel(Is_Pseudo(pan->below) ? (PANEL *) 0 : pan->below);
+      result = Is_Pseudo(pan->below) ? (PANEL *) 0 : pan->below;
+    }
+  else
+    {
+#if NCURSES_SP_FUNCS
+      result = ceiling_panel(CURRENT_SCREEN);
+#else
+      /* if top and bottom are equal, we have no or only the pseudo panel */
+      result = EMPTY_STACK()? (PANEL *) 0 : _nc_top_panel;
+#endif
     }
+  returnPanel(result);
 }
diff -Naur ncurses-5.7.orig/panel/p_bottom.c ncurses-5.7/panel/p_bottom.c
--- ncurses-5.7.orig/panel/p_bottom.c	2005-02-19 08:38:16.000000000 -0800
+++ ncurses-5.7/panel/p_bottom.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -29,6 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1997-1999,2008          *
  ****************************************************************************/
 
 /* p_bottom.c
@@ -36,7 +37,7 @@
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_bottom.c,v 1.11 2005/02/19 16:38:16 tom Exp $")
+MODULE_ID("$Id: p_bottom.c,v 1.12 2008/11/16 00:19:59 juergen Exp $")
 
 NCURSES_EXPORT(int)
 bottom_panel(PANEL * pan)
@@ -46,6 +47,7 @@
   T((T_CALLED("bottom_panel(%p)"), pan));
   if (pan)
     {
+      GetHook(pan);
       if (!Is_Bottom(pan))
 	{
 
diff -Naur ncurses-5.7.orig/panel/p_delete.c ncurses-5.7/panel/p_delete.c
--- ncurses-5.7.orig/panel/p_delete.c	2005-02-19 08:38:45.000000000 -0800
+++ ncurses-5.7/panel/p_delete.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -29,6 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1999,2008               *
  ****************************************************************************/
 
 /* p_delete.c
@@ -36,7 +37,7 @@
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_delete.c,v 1.8 2005/02/19 16:38:45 tom Exp $")
+MODULE_ID("$Id: p_delete.c,v 1.9 2009/04/11 18:58:36 tom Exp $")
 
 NCURSES_EXPORT(int)
 del_panel(PANEL * pan)
@@ -47,8 +48,11 @@
   if (pan)
     {
       dBug(("--> del_panel %s", USER_PTR(pan->user)));
-      HIDE_PANEL(pan, err, OK);
-      free((void *)pan);
+      {
+	GetHook(pan);
+	HIDE_PANEL(pan, err, OK);
+	free((void *)pan);
+      }
     }
   else
     err = ERR;
diff -Naur ncurses-5.7.orig/panel/p_hidden.c ncurses-5.7/panel/p_hidden.c
--- ncurses-5.7.orig/panel/p_hidden.c	2005-02-19 08:39:17.000000000 -0800
+++ ncurses-5.7/panel/p_hidden.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -29,6 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1997-1999,2008          *
  ****************************************************************************/
 
 /* p_hidden.c
@@ -36,13 +37,18 @@
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_hidden.c,v 1.7 2005/02/19 16:39:17 tom Exp $")
+MODULE_ID("$Id: p_hidden.c,v 1.8 2009/04/11 19:01:56 tom Exp $")
 
 NCURSES_EXPORT(int)
 panel_hidden(const PANEL * pan)
 {
+  int rc = ERR;
+
   T((T_CALLED("panel_hidden(%p)"), pan));
-  if (!pan)
-    returnCode(ERR);
-  returnCode(IS_LINKED(pan) ? FALSE : TRUE);
+  if (pan)
+    {
+      GetHook(pan);
+      rc = (IS_LINKED(pan) ? FALSE : TRUE);
+    }
+  returnCode(rc);
 }
diff -Naur ncurses-5.7.orig/panel/p_hide.c ncurses-5.7/panel/p_hide.c
--- ncurses-5.7.orig/panel/p_hide.c	2005-02-19 08:39:41.000000000 -0800
+++ ncurses-5.7/panel/p_hide.c	2009-06-05 14:01:33.000000000 -0700
@@ -36,23 +36,27 @@
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_hide.c,v 1.9 2005/02/19 16:39:41 tom Exp $")
+MODULE_ID("$Id: p_hide.c,v 1.10 2009/02/07 23:11:45 tom Exp $")
 
 NCURSES_EXPORT(int)
 hide_panel(register PANEL * pan)
 {
-  int err = OK;
+  int err = ERR;
 
   T((T_CALLED("hide_panel(%p)"), pan));
-  if (!pan)
-    returnCode(ERR);
 
-  dBug(("--> hide_panel %s", USER_PTR(pan->user)));
-  dStack("<u%d>", 1, pan);
+  if (pan)
+    {
+      GetHook(pan);
 
-  HIDE_PANEL(pan, err, ERR);
+      dBug(("--> hide_panel %s", USER_PTR(pan->user)));
+      dStack("<u%d>", 1, pan);
 
-  dStack("<u%d>", 9, pan);
+      HIDE_PANEL(pan, err, ERR);
 
+      err = OK;
+
+      dStack("<u%d>", 9, pan);
+    }
   returnCode(err);
 }
diff -Naur ncurses-5.7.orig/panel/p_move.c ncurses-5.7/panel/p_move.c
--- ncurses-5.7.orig/panel/p_move.c	2005-02-19 08:46:49.000000000 -0800
+++ ncurses-5.7/panel/p_move.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2008 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            *
@@ -29,6 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1997-1999,2009          *
  ****************************************************************************/
 
 /* p_move.c
@@ -36,21 +37,24 @@
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_move.c,v 1.9 2005/02/19 16:46:49 tom Exp $")
+MODULE_ID("$Id: p_move.c,v 1.10 2008/11/16 00:19:59 juergen Exp $")
 
 NCURSES_EXPORT(int)
 move_panel(PANEL * pan, int starty, int startx)
 {
-  T((T_CALLED("move_panel(%p,%d,%d)"), pan, starty, startx));
+  int rc = ERR;
 
-  if (!pan)
-    returnCode(ERR);
+  T((T_CALLED("move_panel(%p,%d,%d)"), pan, starty, startx));
 
-  if (IS_LINKED(pan))
+  if (pan)
     {
-      Touchpan(pan);
-      PANEL_UPDATE(pan, (PANEL *) 0);
+      GetHook(pan);
+      if (IS_LINKED(pan))
+	{
+	  Touchpan(pan);
+	  PANEL_UPDATE(pan, (PANEL *) 0);
+	}
+      rc = mvwin(pan->win, starty, startx);
     }
-
-  returnCode(mvwin(pan->win, starty, startx));
+  returnCode(rc);
 }
diff -Naur ncurses-5.7.orig/panel/p_new.c ncurses-5.7/panel/p_new.c
--- ncurses-5.7.orig/panel/p_new.c	2008-08-04 11:25:48.000000000 -0700
+++ ncurses-5.7/panel/p_new.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -38,7 +38,7 @@
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_new.c,v 1.10 2008/08/04 18:25:48 tom Exp $")
+MODULE_ID("$Id: p_new.c,v 1.14 2009/04/11 20:43:04 tom Exp $")
 
 #ifdef TRACE
 static char *stdscr_id;
@@ -50,20 +50,27 @@
   Establish the pseudo panel for stdscr if necessary.
 --------------------------------------------------------------------------*/
 static PANEL *
-root_panel(void)
+root_panel(NCURSES_SP_DCL0)
 {
+#if NCURSES_SP_FUNCS
+  struct panelhook *ph = NCURSES_SP_NAME(_nc_panelhook) (sp);
+
+#elif NO_LEAKS
+  struct panelhook *ph = _nc_panelhook();
+#endif
+
   if (_nc_stdscr_pseudo_panel == (PANEL *) 0)
     {
 
-      assert(stdscr && !_nc_bottom_panel && !_nc_top_panel);
+      assert(SP_PARM && SP_PARM->_stdscr && !_nc_bottom_panel && !_nc_top_panel);
 #if NO_LEAKS
-      _nc_panelhook()->destroy = del_panel;
+      ph->destroy = del_panel;
 #endif
       _nc_stdscr_pseudo_panel = (PANEL *) malloc(sizeof(PANEL));
       if (_nc_stdscr_pseudo_panel != 0)
 	{
 	  PANEL *pan = _nc_stdscr_pseudo_panel;
-	  WINDOW *win = stdscr;
+	  WINDOW *win = SP_PARM->_stdscr;
 
 	  pan->win = win;
 	  pan->below = (PANEL *) 0;
@@ -86,13 +93,15 @@
 {
   PANEL *pan = (PANEL *) 0;
 
+  GetWindowHook(win);
+
   T((T_CALLED("new_panel(%p)"), win));
 
   if (!win)
     returnPanel(pan);
 
   if (!_nc_stdscr_pseudo_panel)
-    (void)root_panel();
+    (void)root_panel(NCURSES_SP_ARG);
   assert(_nc_stdscr_pseudo_panel);
 
   if (!(win->_flags & _ISPAD) && (pan = (PANEL *) malloc(sizeof(PANEL))))
diff -Naur ncurses-5.7.orig/panel/p_replace.c ncurses-5.7/panel/p_replace.c
--- ncurses-5.7.orig/panel/p_replace.c	2005-02-19 08:41:31.000000000 -0800
+++ ncurses-5.7/panel/p_replace.c	2009-06-05 14:01:33.000000000 -0700
@@ -36,23 +36,25 @@
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_replace.c,v 1.9 2005/02/19 16:41:31 tom Exp $")
+MODULE_ID("$Id: p_replace.c,v 1.10 2009/02/07 23:11:45 tom Exp $")
 
 NCURSES_EXPORT(int)
 replace_panel(PANEL * pan, WINDOW *win)
 {
-  T((T_CALLED("replace_panel(%p,%p)"), pan, win));
+  int rc = ERR;
 
-  if (!pan)
-    returnCode(ERR);
+  T((T_CALLED("replace_panel(%p,%p)"), pan, win));
 
-  if (IS_LINKED(pan))
+  if (pan)
     {
-      Touchpan(pan);
-      PANEL_UPDATE(pan, (PANEL *) 0);
+      GetHook(pan);
+      if (IS_LINKED(pan))
+	{
+	  Touchpan(pan);
+	  PANEL_UPDATE(pan, (PANEL *) 0);
+	}
+      pan->win = win;
+      rc = OK;
     }
-
-  pan->win = win;
-
-  returnCode(OK);
+  returnCode(rc);
 }
diff -Naur ncurses-5.7.orig/panel/p_show.c ncurses-5.7/panel/p_show.c
--- ncurses-5.7.orig/panel/p_show.c	2005-02-19 08:42:02.000000000 -0800
+++ ncurses-5.7/panel/p_show.c	2009-06-05 14:01:33.000000000 -0700
@@ -36,34 +36,37 @@
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_show.c,v 1.11 2005/02/19 16:42:02 tom Exp $")
+MODULE_ID("$Id: p_show.c,v 1.12 2009/02/07 23:11:45 tom Exp $")
 
 NCURSES_EXPORT(int)
 show_panel(PANEL * pan)
 {
-  int err = OK;
+  int err = ERR;
 
   T((T_CALLED("show_panel(%p)"), pan));
 
-  if (!pan)
-    returnCode(ERR);
+  if (pan)
+    {
+      GetHook(pan);
 
-  if (Is_Top(pan))
-    returnCode(OK);
+      if (Is_Top(pan))
+	returnCode(OK);
 
-  dBug(("--> show_panel %s", USER_PTR(pan->user)));
+      dBug(("--> show_panel %s", USER_PTR(pan->user)));
 
-  HIDE_PANEL(pan, err, OK);
+      HIDE_PANEL(pan, err, OK);
 
-  dStack("<lt%d>", 1, pan);
-  assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
+      dStack("<lt%d>", 1, pan);
+      assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
 
-  _nc_top_panel->above = pan;
-  pan->below = _nc_top_panel;
-  pan->above = (PANEL *) 0;
-  _nc_top_panel = pan;
+      _nc_top_panel->above = pan;
+      pan->below = _nc_top_panel;
+      pan->above = (PANEL *) 0;
+      _nc_top_panel = pan;
 
-  dStack("<lt%d>", 9, pan);
+      err = OK;
 
-  returnCode(OK);
+      dStack("<lt%d>", 9, pan);
+    }
+  returnCode(err);
 }
diff -Naur ncurses-5.7.orig/panel/p_update.c ncurses-5.7/panel/p_update.c
--- ncurses-5.7.orig/panel/p_update.c	2005-02-19 08:49:47.000000000 -0800
+++ ncurses-5.7/panel/p_update.c	2009-06-05 14:01:33.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2005,2009 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            *
@@ -29,6 +29,7 @@
 /****************************************************************************
  *  Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1995                    *
  *     and: Eric S. Raymond <esr@snark.thyrsus.com>                         *
+ *     and: Juergen Pfeifer                         1997-1999,2008          *
  ****************************************************************************/
 
 /* p_update.c
@@ -36,28 +37,42 @@
  */
 #include "panel.priv.h"
 
-MODULE_ID("$Id: p_update.c,v 1.9 2005/02/19 16:49:47 tom Exp $")
+MODULE_ID("$Id: p_update.c,v 1.10 2009/04/11 19:48:36 tom Exp $")
 
 NCURSES_EXPORT(void)
-update_panels(void)
+NCURSES_SP_NAME(update_panels) (NCURSES_SP_DCL0)
 {
   PANEL *pan;
 
-  T((T_CALLED("update_panels()")));
+  T((T_CALLED("update_panels(%p)"), SP_PARM));
   dBug(("--> update_panels"));
-  pan = _nc_bottom_panel;
-  while (pan && pan->above)
-    {
-      PANEL_UPDATE(pan, pan->above);
-      pan = pan->above;
-    }
 
-  pan = _nc_bottom_panel;
-  while (pan)
+  if (SP_PARM)
     {
-      Wnoutrefresh(pan);
-      pan = pan->above;
+      GetScreenHook(SP_PARM);
+
+      pan = _nc_bottom_panel;
+      while (pan && pan->above)
+	{
+	  PANEL_UPDATE(pan, pan->above);
+	  pan = pan->above;
+	}
+
+      pan = _nc_bottom_panel;
+      while (pan)
+	{
+	  Wnoutrefresh(pan);
+	  pan = pan->above;
+	}
     }
 
   returnVoid;
 }
+
+#if NCURSES_SP_FUNCS
+NCURSES_EXPORT(void)
+update_panels(void)
+{
+  NCURSES_SP_NAME(update_panels) (CURRENT_SCREEN);
+}
+#endif
diff -Naur ncurses-5.7.orig/progs/Makefile.in ncurses-5.7/progs/Makefile.in
--- ncurses-5.7.orig/progs/Makefile.in	2008-09-07 06:58:55.000000000 -0700
+++ ncurses-5.7/progs/Makefile.in	2009-06-05 14:01:30.000000000 -0700
@@ -1,6 +1,6 @@
-# $Id: Makefile.in,v 1.79 2008/09/07 13:58:55 tom Exp $
+# $Id: Makefile.in,v 1.82 2009/03/28 20:30:58 tom Exp $
 ##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2008,2009 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"), #
@@ -124,7 +124,7 @@
 	transform.h
 
 # tic relies on direct access to the terminfo database
-GET_PROGS = infocmp$x clear$x tput$x tset$x toe$x
+GET_PROGS = infocmp$x clear$x tabs$x tput$x tset$x toe$x
 PUT_PROGS = @MAKE_TERMINFO@ tic$x
 PROGS = $(PUT_PROGS) $(GET_PROGS)
 
@@ -159,6 +159,7 @@
 actual_infotocap = `echo infotocap$x| $(TRANSFORM)`
 actual_init      = `echo init$x|      $(TRANSFORM)`
 actual_reset     = `echo reset$x|     $(TRANSFORM)`
+actual_tabs      = `echo tabs$x|      $(TRANSFORM)`
 actual_tic       = `echo tic$x|       $(TRANSFORM)`
 actual_toe       = `echo toe$x|       $(TRANSFORM)`
 actual_tput      = `echo tput$x|      $(TRANSFORM)`
@@ -171,10 +172,16 @@
 define_reset     = `echo reset|       $(TRANSFORM)`
 
 transform.h :
-	echo "#define PROG_CAPTOINFO \"$(define_captoinfo)\"" >$@
-	echo "#define PROG_INFOTOCAP \"$(define_infotocap)\"" >>$@
-	echo "#define PROG_RESET     \"$(define_reset)\""     >>$@
-	echo "#define PROG_INIT      \"$(define_init)\""      >>$@
+	echo "#ifndef __TRANSFORM_H"					>$@
+	echo "#define __TRANSFORM_H 1"					>>$@
+	echo "#include <progs.priv.h>"					>>$@
+	echo "extern bool same_program(const char *, const char *);"	>>$@
+	-sh -c 'if test -n "$x" ; then echo "#define SUFFIX_IGNORED \"$x\"">>$@; fi'
+	echo "#define PROG_CAPTOINFO \"$(define_captoinfo)\""		>>$@
+	echo "#define PROG_INFOTOCAP \"$(define_infotocap)\""		>>$@
+	echo "#define PROG_RESET     \"$(define_reset)\""		>>$@
+	echo "#define PROG_INIT      \"$(define_init)\""		>>$@
+	echo "#endif /* __TRANSFORM_H */"				>>$@
 
 install.progs: $(AUTO_SRC) $(PROGS) $(DESTDIR)$(bindir)
 @MAKE_TERMINFO@	$(LIBTOOL_INSTALL) $(INSTALL_PROG) tic$x     $(DESTDIR)$(bindir)/$(actual_tic)
@@ -187,6 +194,7 @@
 @MAKE_TERMINFO@	(cd $(DESTDIR)$(bindir) && $(LN_S) $(actual_tic) $(actual_captoinfo))
 	$(LIBTOOL_INSTALL) $(INSTALL_PROG) infocmp$x $(DESTDIR)$(bindir)/$(actual_infocmp)
 	$(LIBTOOL_INSTALL) $(INSTALL_PROG) clear$x   $(DESTDIR)$(bindir)/$(actual_clear)
+	$(LIBTOOL_INSTALL) $(INSTALL_PROG) tabs$x    $(DESTDIR)$(bindir)/$(actual_tabs)
 	$(LIBTOOL_INSTALL) $(INSTALL_PROG) tput$x    $(DESTDIR)$(bindir)/$(actual_tput)
 	$(LIBTOOL_INSTALL) $(INSTALL_PROG) tset$x    $(DESTDIR)$(bindir)/$(actual_tset)
 	@echo "linking $(actual_reset) to $(actual_tset)"
@@ -200,6 +208,7 @@
 @MAKE_TERMINFO@	-@rm -f $(DESTDIR)$(bindir)/$(actual_infotocap)
 	-@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_infocmp)
 	-@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_clear)
+	-@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tabs)
 	-@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tput)
 	-@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(bindir)/$(actual_tset)
 	-@rm -f $(DESTDIR)$(bindir)/$(actual_reset)
@@ -213,7 +222,8 @@
 
 DEPS_TIC = \
 	$(MODEL)/tic$o \
-	$(MODEL)/dump_entry$o
+	$(MODEL)/dump_entry$o \
+	$(MODEL)/transform$o
 
 tic$x: $(DEPS_TIC) $(DEPS_CURSES) transform.h
 	@ECHO_LINK@ $(LINK) $(DEPS_TIC) $(LDFLAGS_TIC) -o $@
@@ -230,8 +240,15 @@
 clear$x: $(DEPS_CLEAR) $(DEPS_CURSES)
 	@ECHO_LINK@ $(LINK) $(DEPS_CLEAR) $(LDFLAGS_TINFO) -o $@
 
+DEPS_TABS = \
+	$(MODEL)/tabs$o
+
+tabs$x: $(DEPS_TABS) $(DEPS_TABS)
+	@ECHO_LINK@ $(LINK) $(DEPS_TABS) $(LDFLAGS_TINFO) -o $@
+
 DEPS_TPUT = \
-	$(MODEL)/tput$o
+	$(MODEL)/tput$o \
+	$(MODEL)/transform$o
 
 tput$x: $(DEPS_TPUT) $(DEPS_CURSES) transform.h
 	@ECHO_LINK@ $(LINK) $(DEPS_TPUT) $(LDFLAGS_TINFO) -o $@
@@ -244,7 +261,8 @@
 	@ECHO_LINK@ $(LINK) $(DEPS_INFOCMP) $(LDFLAGS_TIC) -o $@
 
 DEPS_TSET = \
-	$(MODEL)/tset$o
+	$(MODEL)/tset$o \
+	$(MODEL)/transform$o
 
 tset$x: $(DEPS_TSET) $(DEPS_CURSES) transform.h
 	@ECHO_LINK@ $(LINK) $(DEPS_TSET) $(LDFLAGS_TINFO) -o $@
@@ -289,6 +307,7 @@
 @MAKE_TERMINFO@	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/toe.c     $(srcdir)/dump_entry.c $(LINT_LIBS)
 	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/clear.c                          $(LINT_LIBS)
 	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/infocmp.c $(srcdir)/dump_entry.c $(LINT_LIBS)
+	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tabs.c                           $(LINT_LIBS)
 	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tput.c                           $(LINT_LIBS)
 	$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/tset.c    $(srcdir)/dump_entry.c $(LINT_LIBS)
 
diff -Naur ncurses-5.7.orig/progs/modules ncurses-5.7/progs/modules
--- ncurses-5.7.orig/progs/modules	2006-12-23 16:53:21.000000000 -0800
+++ ncurses-5.7/progs/modules	2009-06-05 14:01:21.000000000 -0700
@@ -1,7 +1,7 @@
-# $Id: modules,v 1.13 2006/12/24 00:53:21 tom Exp $
+# $Id: modules,v 1.15 2009/03/14 18:45:55 tom Exp $
 # Program modules (some are in ncurses lib!)
 ##############################################################################
-# Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.                #
+# Copyright (c) 1998-2008,2009 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"), #
@@ -37,7 +37,9 @@
 toe		progs		$(srcdir)	$(HEADER_DEPS)             $(srcdir)/dump_entry.h
 dump_entry	progs		$(srcdir)	$(HEADER_DEPS)             $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
 infocmp		progs		$(srcdir)	$(HEADER_DEPS)             $(srcdir)/dump_entry.h
+tabs		progs		$(srcdir)	$(HEADER_DEPS)
 tput		progs		$(srcdir)	$(HEADER_DEPS) transform.h termsort.c
 tset		progs		$(srcdir)	$(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h ../include/termcap.h
+transform	progs		$(srcdir)	$(HEADER_DEPS)
 
 # vile:makemode
diff -Naur ncurses-5.7.orig/progs/tabs.c ncurses-5.7/progs/tabs.c
--- ncurses-5.7.orig/progs/tabs.c	1969-12-31 16:00:00.000000000 -0800
+++ ncurses-5.7/progs/tabs.c	2009-06-05 14:00:52.000000000 -0700
@@ -0,0 +1,506 @@
+/****************************************************************************
+ * Copyright (c) 2008 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.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey                        2008                    *
+ ****************************************************************************/
+
+/*
+ * tabs.c --  set terminal hard-tabstops
+ */
+
+#define USE_LIBTINFO
+#include <progs.priv.h>
+
+MODULE_ID("$Id: tabs.c,v 1.15 2008/11/23 00:47:51 tom Exp $")
+
+static void usage(void) GCC_NORETURN;
+
+static int max_cols;
+
+static int
+putch(int c)
+{
+    return putchar(c);
+}
+
+static void
+do_tabs(int *tab_list)
+{
+    int last = 1;
+    int stop;
+
+    putchar('\r');
+    while ((stop = *tab_list++) > 0) {
+	if (last < stop) {
+	    while (last++ < stop) {
+		if (last > max_cols)
+		    break;
+		putchar(' ');
+	    }
+	}
+	if (stop <= max_cols) {
+	    tputs(tparm(set_tab, stop), 1, putch);
+	    last = stop;
+	} else {
+	    break;
+	}
+    }
+    putchar('\n');
+}
+
+static int *
+decode_tabs(const char *tab_list)
+{
+    int *result = typeCalloc(int, strlen(tab_list) + (unsigned) max_cols);
+    int n = 0;
+    int value = 0;
+    int prior = 0;
+    int ch;
+
+    if (result != 0) {
+	while ((ch = *tab_list++) != '\0') {
+	    if (isdigit(UChar(ch))) {
+		value *= 10;
+		value += (ch - '0');
+	    } else if (ch == ',') {
+		result[n] = value + prior;
+		if (n > 0 && value <= result[n - 1]) {
+		    fprintf(stderr,
+			    "tab-stops are not in increasing order\n");
+		    free(result);
+		    result = 0;
+		    break;
+		}
+		++n;
+		value = 0;
+		prior = 0;
+	    } else if (ch == '+') {
+		if (n)
+		    prior = result[n - 1];
+	    }
+	}
+    }
+
+    if (result != 0) {
+	/*
+	 * If there is only one value, then it is an option such as "-8".
+	 */
+	if ((n == 0) && (value > 0)) {
+	    int step = value;
+	    while (n < max_cols - 1) {
+		result[n++] = value;
+		value += step;
+	    }
+	}
+
+	/*
+	 * Add the last value, if any.
+	 */
+	result[n++] = value;
+	result[n] = 0;
+    }
+    return result;
+}
+
+static void
+print_ruler(int *tab_list)
+{
+    int last = 0;
+    int stop;
+    int n;
+
+    /* first print a readable ruler */
+    for (n = 0; n < max_cols; n += 10) {
+	int ch = 1 + (n / 10);
+	char buffer[20];
+	sprintf(buffer, "----+----%c",
+		((ch < 10)
+		 ? (ch + '0')
+		 : (ch + 'A' - 10)));
+	printf("%.*s", ((max_cols - n) > 10) ? 10 : (max_cols - n), buffer);
+    }
+    putchar('\n');
+
+    /* now, print '*' for each stop */
+    for (n = 0, last = 0; (tab_list[n] > 0) && (last < max_cols); ++n) {
+	stop = tab_list[n];
+	while (++last < stop) {
+	    if (last <= max_cols) {
+		putchar('-');
+	    } else {
+		break;
+	    }
+	}
+	if (last <= max_cols) {
+	    putchar('*');
+	    last = stop;
+	} else {
+	    break;
+	}
+    }
+    while (++last <= max_cols)
+	putchar('-');
+    putchar('\n');
+}
+
+/*
+ * Write an '*' on each tabstop, to demonstrate whether it lines up with the
+ * ruler.
+ */
+static void
+write_tabs(int *tab_list)
+{
+    int stop;
+
+    while ((stop = *tab_list++) > 0 && stop <= max_cols) {
+	fputs((stop == 1) ? "*" : "\t*", stdout);
+    };
+    /* also show a tab _past_ the stops */
+    if (stop < max_cols)
+	fputs("\t+", stdout);
+    putchar('\n');
+}
+
+/*
+ * Trim leading/trailing blanks, as well as blanks after a comma.
+ * Convert embedded blanks to commas.
+ */
+static char *
+trimmed_tab_list(const char *source)
+{
+    char *result = strdup(source);
+    int ch, j, k, last;
+
+    if (result != 0) {
+	for (j = k = last = 0; result[j] != 0; ++j) {
+	    ch = UChar(result[j]);
+	    if (isspace(ch)) {
+		if (last == '\0') {
+		    continue;
+		} else if (isdigit(last) || last == ',') {
+		    ch = ',';
+		}
+	    } else if (ch == ',') {
+		;
+	    } else {
+		if (last == ',')
+		    result[k++] = last;
+		result[k++] = ch;
+	    }
+	    last = ch;
+	}
+	result[k] = '\0';
+    }
+    return result;
+}
+
+static bool
+comma_is_needed(const char *source)
+{
+    bool result = FALSE;
+
+    if (source != 0) {
+	unsigned len = strlen(source);
+	if (len != 0)
+	    result = (source[len - 1] != ',');
+    } else {
+	result = FALSE;
+    }
+    return result;
+}
+
+/*
+ * Add a command-line parameter to the tab-list.  It can be blank- or comma-
+ * separated (or a mixture).  For simplicity, empty tabs are ignored, e.g.,
+ *	tabs 1,,6,11
+ *	tabs 1,6,11
+ * are treated the same.
+ */
+static const char *
+add_to_tab_list(char **append, const char *value)
+{
+    char *result = *append;
+    char *copied = trimmed_tab_list(value);
+
+    if (copied != 0 && *copied != '\0') {
+	const char *comma = ",";
+	unsigned need = 1 + strlen(copied);
+
+	if (*copied == ',')
+	    comma = "";
+	else if (!comma_is_needed(*append))
+	    comma = "";
+
+	need += strlen(comma);
+	if (*append != 0)
+	    need += strlen(*append);
+
+	result = malloc(need);
+	if (result != 0) {
+	    *result = '\0';
+	    if (*append != 0) {
+		strcpy(result, *append);
+		free(*append);
+	    }
+	    strcat(result, comma);
+	    strcat(result, copied);
+	}
+
+	*append = result;
+    }
+    return result;
+}
+
+/*
+ * Check for illegal characters in the tab-list.
+ */
+static bool
+legal_tab_list(const char *program, const char *tab_list)
+{
+    bool result = TRUE;
+
+    if (tab_list != 0 && *tab_list != '\0') {
+	if (comma_is_needed(tab_list)) {
+	    int n, ch;
+	    for (n = 0; tab_list[n] != '\0'; ++n) {
+		ch = UChar(tab_list[n]);
+		if (!(isdigit(ch) || ch == ',')) {
+		    fprintf(stderr,
+			    "%s: unexpected character found '%c'\n",
+			    program, ch);
+		    result = FALSE;
+		    break;
+		}
+	    }
+	} else {
+	    fprintf(stderr, "%s: trailing comma found '%s'\n", program, tab_list);
+	    result = FALSE;
+	}
+    } else {
+	fprintf(stderr, "%s: no tab-list given\n", program);
+	result = FALSE;
+    }
+    return result;
+}
+
+static void
+usage(void)
+{
+    static const char *msg[] =
+    {
+	"Usage: tabs [options] [tabstop-list]"
+	,""
+	,"Options:"
+	,"  -0       reset tabs"
+	,"  -8       set tabs to standard interval"
+	,"  -a       Assembler, IBM S/370, first format"
+	,"  -a2      Assembler, IBM S/370, second format"
+	,"  -c       COBOL, normal format"
+	,"  -c2      COBOL compact format"
+	,"  -c3      COBOL compact format extended"
+	,"  -d       debug (show ruler with expected/actual tab positions)"
+	,"  -f       FORTRAN"
+	,"  -n       no-op (do not modify terminal settings)"
+	,"  -p       PL/I"
+	,"  -s       SNOBOL"
+	,"  -u       UNIVAC 1100 Assembler"
+	,"  -T name  use terminal type 'name'"
+	,""
+	,"A tabstop-list is an ordered list of column numbers, e.g., 1,11,21"
+	,"or 1,+10,+10 which is the same."
+    };
+    unsigned n;
+
+    fflush(stdout);
+    for (n = 0; n < SIZEOF(msg); ++n) {
+	fprintf(stderr, "%s\n", msg[n]);
+    }
+    ExitProgram(EXIT_FAILURE);
+}
+
+int
+main(int argc, char *argv[])
+{
+    int rc = EXIT_FAILURE;
+    bool debug = FALSE;
+    bool no_op = FALSE;
+    int n, ch;
+    NCURSES_CONST char *term_name = 0;
+    const char *mar_list = 0;	/* ignored */
+    char *append = 0;
+    const char *tab_list = 0;
+
+    if ((term_name = getenv("TERM")) == 0)
+	term_name = "ansi+tabs";
+
+    /* cannot use getopt, since some options are two-character */
+    for (n = 1; n < argc; ++n) {
+	char *option = argv[n];
+	switch (option[0]) {
+	case '-':
+	    while ((ch = *++option) != '\0') {
+		switch (ch) {
+		case 'a':
+		    switch (*option) {
+		    case '\0':
+			tab_list = "1,10,16,36,72";
+			/* Assembler, IBM S/370, first format */
+			break;
+		    case '2':
+			tab_list = "1,10,16,40,72";
+			/* Assembler, IBM S/370, second format */
+			break;
+		    default:
+			usage();
+		    }
+		    break;
+		case 'c':
+		    switch (*option) {
+		    case '\0':
+			tab_list = "1,8,12,16,20,55";
+			/* COBOL, normal format */
+			break;
+		    case '2':
+			tab_list = "1,6,10,14,49";
+			/* COBOL compact format */
+			break;
+		    case '3':
+			tab_list = "1,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,67";
+			/* COBOL compact format extended */
+			break;
+		    default:
+			usage();
+		    }
+		    break;
+		case 'd':	/* ncurses extension */
+		    debug = TRUE;
+		    break;
+		case 'f':
+		    tab_list = "1,7,11,15,19,23";
+		    /* FORTRAN */
+		    break;
+		case 'n':	/* ncurses extension */
+		    no_op = TRUE;
+		    break;
+		case 'p':
+		    tab_list = "1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61";
+		    /* PL/I */
+		    break;
+		case 's':
+		    tab_list = "1,10,55";
+		    /* SNOBOL */
+		    break;
+		case 'u':
+		    tab_list = "1,12,20,44";
+		    /* UNIVAC 1100 Assembler */
+		    break;
+		case 'T':
+		    ++n;
+		    if (*++option != '\0') {
+			term_name = option;
+		    } else {
+			term_name = argv[n++];
+		    }
+		    option += ((int) strlen(option)) - 1;
+		    continue;
+		default:
+		    if (isdigit(UChar(*option))) {
+			tab_list = option;
+			++n;
+		    } else {
+			usage();
+		    }
+		    option += ((int) strlen(option)) - 1;
+		    break;
+		}
+	    }
+	    break;
+	case '+':
+	    while ((ch = *++option) != '\0') {
+		switch (ch) {
+		case 'm':
+		    mar_list = option;
+		    break;
+		default:
+		    usage();
+		}
+	    }
+	    break;
+	default:
+	    if (append != 0) {
+		if (tab_list != (const char *) append) {
+		    /* one of the predefined options was used */
+		    free(append);
+		    append = 0;
+		}
+	    }
+	    tab_list = add_to_tab_list(&append, option);
+	    option += ((int) strlen(option)) - 1;
+	    break;
+	}
+    }
+
+    setupterm(term_name, STDOUT_FILENO, (int *) 0);
+
+    max_cols = (columns > 0) ? columns : 80;
+
+    if (!VALID_STRING(clear_all_tabs)) {
+	fprintf(stderr,
+		"%s: terminal type '%s' cannot reset tabs\n",
+		argv[0], term_name);
+    } else if (!VALID_STRING(set_tab)) {
+	fprintf(stderr,
+		"%s: terminal type '%s' cannot set tabs\n",
+		argv[0], term_name);
+    } else if (legal_tab_list(argv[0], tab_list)) {
+	int *list = decode_tabs(tab_list);
+
+	if (!no_op)
+	    tputs(clear_all_tabs, 1, putch);
+
+	if (list != 0) {
+	    if (!no_op)
+		do_tabs(list);
+	    if (debug) {
+		fflush(stderr);
+		printf("tabs %s\n", tab_list);
+		print_ruler(list);
+		write_tabs(list);
+	    }
+	    free(list);
+	} else if (debug) {
+	    fflush(stderr);
+	    printf("tabs %s\n", tab_list);
+	}
+	rc = EXIT_SUCCESS;
+    }
+    if (append != 0)
+	free(append);
+    ExitProgram(rc);
+}
diff -Naur ncurses-5.7.orig/progs/tic.c ncurses-5.7/progs/tic.c
--- ncurses-5.7.orig/progs/tic.c	2008-09-13 09:59:24.000000000 -0700
+++ ncurses-5.7/progs/tic.c	2009-06-05 14:01:21.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -44,7 +44,7 @@
 #include <dump_entry.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tic.c,v 1.137 2008/09/13 16:59:24 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.138 2009/03/14 18:45:55 tom Exp $")
 
 const char *_nc_progname = "tic";
 
@@ -495,11 +495,11 @@
 
     _nc_progname = _nc_rootname(argv[0]);
 
-    if ((infodump = (strcmp(_nc_progname, PROG_CAPTOINFO) == 0)) != FALSE) {
+    if ((infodump = same_program(_nc_progname, PROG_CAPTOINFO)) != FALSE) {
 	outform = F_TERMINFO;
 	sortmode = S_TERMINFO;
     }
-    if ((capdump = (strcmp(_nc_progname, PROG_INFOTOCAP) == 0)) != FALSE) {
+    if ((capdump = same_program(_nc_progname, PROG_INFOTOCAP)) != FALSE) {
 	outform = F_TERMCAP;
 	sortmode = S_TERMCAP;
     }
diff -Naur ncurses-5.7.orig/progs/tput.c ncurses-5.7/progs/tput.c
--- ncurses-5.7.orig/progs/tput.c	2008-07-13 04:05:12.000000000 -0700
+++ ncurses-5.7/progs/tput.c	2009-06-05 14:01:21.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -47,7 +47,7 @@
 #endif
 #include <transform.h>
 
-MODULE_ID("$Id: tput.c,v 1.42 2008/07/13 11:05:12 tom Exp $")
+MODULE_ID("$Id: tput.c,v 1.43 2009/03/14 18:45:55 tom Exp $")
 
 #define PUTS(s)		fputs(s, stdout)
 #define PUTCHAR(c)	putchar(c)
@@ -86,8 +86,8 @@
 static void
 check_aliases(const char *name)
 {
-    is_init = (strcmp(name, PROG_INIT) == 0);
-    is_reset = (strcmp(name, PROG_RESET) == 0);
+    is_init = same_program(name, PROG_INIT);
+    is_reset = same_program(name, PROG_RESET);
 }
 
 /*
diff -Naur ncurses-5.7.orig/progs/transform.c ncurses-5.7/progs/transform.c
--- ncurses-5.7.orig/progs/transform.c	1969-12-31 16:00:00.000000000 -0800
+++ ncurses-5.7/progs/transform.c	2009-06-05 14:01:21.000000000 -0700
@@ -0,0 +1,79 @@
+/****************************************************************************
+ * Copyright (c) 2009 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.                                                           *
+ ****************************************************************************/
+
+/****************************************************************************
+ *  Author: Thomas E. Dickey                                                *
+ ****************************************************************************/
+#include <progs.priv.h>
+#include <string.h>
+
+#include <transform.h>
+
+MODULE_ID("$Id: transform.c,v 1.1 2009/03/14 19:08:28 tom Exp $")
+
+#ifdef SUFFIX_IGNORED
+static void
+trim_suffix(const char *a, unsigned *len)
+{
+    const char ignore[] = SUFFIX_IGNORED;
+
+    if (sizeof(ignore) != 0) {
+	bool trim = FALSE;
+	unsigned need = (sizeof(ignore) - 1);
+
+	if (*len > need) {
+	    unsigned first = *len - need;
+	    unsigned n;
+	    trim = TRUE;
+	    for (n = first; n < *len; ++n) {
+		if (tolower(a[n]) != tolower(ignore[n - first])) {
+		    trim = FALSE;
+		    break;
+		}
+	    }
+	    if (trim) {
+		*len -= need;
+	    }
+	}
+    }
+}
+#else
+#define trim_suffix(a, len) /* nothing */
+#endif
+
+bool
+same_program(const char *a, const char *b)
+{
+    unsigned len_a = strlen(a);
+    unsigned len_b = strlen(b);
+
+    trim_suffix(a, &len_a);
+    trim_suffix(b, &len_b);
+
+    return (len_a == len_b) && (strncmp(a, b, len_a) == 0);
+}
diff -Naur ncurses-5.7.orig/progs/tset.c ncurses-5.7/progs/tset.c
--- ncurses-5.7.orig/progs/tset.c	2008-10-11 12:26:19.000000000 -0700
+++ ncurses-5.7/progs/tset.c	2009-06-05 14:01:21.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -107,7 +107,7 @@
 #include <dump_entry.h>
 #include <transform.h>
 
-MODULE_ID("$Id: tset.c,v 1.76 2008/10/11 19:26:19 tom Exp $")
+MODULE_ID("$Id: tset.c,v 1.77 2009/03/14 19:08:35 tom Exp $")
 
 /*
  * SCO defines TIOCGSIZE and the corresponding struct.  Other systems (SunOS,
@@ -1247,7 +1247,7 @@
     ospeed = (NCURSES_OSPEED) mode.sg_ospeed;
 #endif
 
-    if (!strcmp(_nc_progname, PROG_RESET)) {
+    if (same_program(_nc_progname, PROG_RESET)) {
 	isreset = TRUE;
 	reset_mode();
     }
diff -Naur ncurses-5.7.orig/test/aclocal.m4 ncurses-5.7/test/aclocal.m4
--- ncurses-5.7.orig/test/aclocal.m4	2008-02-09 10:22:17.000000000 -0800
+++ ncurses-5.7/test/aclocal.m4	2009-06-05 14:01:30.000000000 -0700
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 2003-2007,2008 Free Software Foundation, Inc.              *
+dnl Copyright (c) 2003-2008,2009 Free Software Foundation, Inc.              *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -26,7 +26,7 @@
 dnl authorization.                                                           *
 dnl***************************************************************************
 dnl
-dnl $Id: aclocal.m4,v 1.22 2008/02/09 18:22:17 tom Exp $
+dnl $Id: aclocal.m4,v 1.25 2009/03/28 20:09:37 tom Exp $
 dnl
 dnl Author: Thomas E. Dickey
 dnl
@@ -40,7 +40,7 @@
 dnl
 dnl ---------------------------------------------------------------------------
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
+dnl CF_ADD_CFLAGS version: 8 updated: 2009/01/06 19:33:30
 dnl -------------
 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
 dnl The second parameter if given makes this macro verbose.
@@ -110,7 +110,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 	ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -122,7 +122,7 @@
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 9 updated: 2008/02/09 13:15:34
+dnl CF_ADD_INCDIR version: 12 updated: 2009/01/18 10:00:47
 dnl -------------
 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
@@ -149,7 +149,7 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
@@ -165,11 +165,11 @@
 
 		if test "$cf_have_incdir" = no ; then
 		  CF_VERBOSE(adding $cf_add_incdir to include-path)
-		  ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
+		  ifelse($2,,CPPFLAGS,$2)="$ifelse($2,,CPPFLAGS,$2) -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -179,7 +179,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_LIBDIR version: 6 updated: 2008/02/09 13:15:34
+dnl CF_ADD_LIBDIR version: 8 updated: 2009/01/18 10:01:08
 dnl -------------
 dnl	Adds to the library-path
 dnl
@@ -208,7 +208,7 @@
       fi
       if test "$cf_have_libdir" = no ; then
         CF_VERBOSE(adding $cf_add_libdir to library-path)
-        ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
+        ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,$2)"
       fi
     fi
   done
@@ -289,7 +289,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44
+dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
 dnl ---------------
 dnl For programs that must use an ANSI compiler, obtain compiler options that
 dnl will make it recognize prototypes.  We'll do preprocessor checks in other
@@ -298,7 +298,7 @@
 AC_DEFUN([CF_ANSI_CC_REQD],
 [AC_REQUIRE([CF_ANSI_CC_CHECK])
 if test "$cf_cv_ansi_cc" = "no"; then
-	AC_ERROR(
+	AC_MSG_ERROR(
 [Your compiler does not appear to recognize prototypes.
 You have the following choices:
 	a. adjust your compiler options
@@ -342,7 +342,7 @@
 ])dnl
   ])])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31
+dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
 dnl --------------
 dnl Check if we're accidentally using a cache from a different machine.
 dnl Derive the system name, as a check for reusing the autoconf cache.
@@ -373,7 +373,7 @@
 
 if test ".$system_name" != ".$cf_cv_system_name" ; then
 	AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
-	AC_ERROR("Please remove config.cache and try again.")
+	AC_MSG_ERROR("Please remove config.cache and try again.")
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -399,14 +399,15 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_ACS_MAP version: 3 updated: 2003/05/17 22:19:02
+dnl CF_CURSES_ACS_MAP version: 5 updated: 2009/03/28 16:08:10
 dnl -----------------
 dnl Check for likely values of acs_map[]:
 AC_DEFUN([CF_CURSES_ACS_MAP],
 [
+AC_REQUIRE([CF_NCURSES_WRAP_PREFIX])dnl
 AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
 cf_cv_curses_acs_map=unknown
-for name in acs_map _acs_map __acs_map _nc_acs_map
+for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
 do
 AC_TRY_LINK([
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -441,7 +442,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_CPPFLAGS version: 9 updated: 2006/02/04 19:44:43
+dnl CF_CURSES_CPPFLAGS version: 10 updated: 2009/01/06 19:34:11
 dnl ------------------
 dnl Look for the curses headers.
 AC_DEFUN([CF_CURSES_CPPFLAGS],[
@@ -460,7 +461,7 @@
 	;;
 esac
 ])
-test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS"
+test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
 
 CF_CURSES_HEADER
 CF_TERM_HEADER
@@ -549,7 +550,7 @@
 AC_CHECK_HEADERS($cf_cv_ncurses_header)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_LIBS version: 26 updated: 2007/07/29 10:32:40
+dnl CF_CURSES_LIBS version: 29 updated: 2009/01/06 19:34:57
 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.
@@ -576,7 +577,7 @@
     AC_CHECK_LIB(Hcurses,initscr,[
         # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
         LIBS="-lHcurses $LIBS"
-        CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
         ac_cv_func_initscr=yes
         ])])
     ;;
@@ -615,11 +616,11 @@
 
     # Check for library containing initscr
     test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-    for cf_curs_lib in $cf_check_list xcurses jcurses unknown
+ 	for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
     do
         AC_CHECK_LIB($cf_curs_lib,initscr,[break])
     done
-    test $cf_curs_lib = unknown && AC_ERROR(no curses library found)
+    test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
 
     LIBS="-l$cf_curs_lib $cf_save_LIBS"
     if test "$cf_term_lib" = unknown ; then
@@ -629,7 +630,7 @@
             [cf_result=yes],
             [cf_result=no])
         AC_MSG_RESULT($cf_result)
-        test $cf_result = no && AC_ERROR(Cannot link curses library)
+        test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
     elif test "$cf_curs_lib" = "$cf_term_lib" ; then
         :
     elif test "$cf_term_lib" != predefined ; then
@@ -772,7 +773,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FIND_LIBRARY version: 8 updated: 2004/11/23 20:14:58
+dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
 dnl ---------------
 dnl Look for a non-standard library, given parameters for AC_TRY_LINK.  We
 dnl prefer a standard location, and use -L options only if we do not find the
@@ -817,11 +818,124 @@
 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
 ifelse($6,,[
 if test $cf_found_library = no ; then
-	AC_ERROR(Cannot link $1 library)
+	AC_MSG_ERROR(Cannot link $1 library)
 fi
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_FIND_LINKAGE version: 13 updated: 2008/12/24 07:59:55
+dnl ---------------
+dnl Find a library (specifically the linkage used in the code fragment),
+dnl searching for it if it is not already in the library path.
+dnl See also CF_ADD_SEARCHPATH.
+dnl
+dnl Parameters (4-on are optional):
+dnl     $1 = headers for library entrypoint
+dnl     $2 = code fragment for library entrypoint
+dnl     $3 = the library name without the "-l" option or ".so" suffix.
+dnl     $4 = action to perform if successful (default: update CPPFLAGS, etc)
+dnl     $5 = action to perform if not successful
+dnl     $6 = module name, if not the same as the library name
+dnl     $7 = extra libraries
+dnl
+dnl Sets these variables:
+dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
+dnl     $cf_cv_header_path_$3 - include-directory if needed
+dnl     $cf_cv_library_path_$3 - library-directory if needed
+dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
+AC_DEFUN([CF_FIND_LINKAGE],[
+
+# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
+# will be set on completion of the AC_TRY_LINK below.
+cf_cv_header_path_$3=
+cf_cv_library_path_$3=
+
+CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
+
+AC_TRY_LINK([$1],[$2],
+    cf_cv_find_linkage_$3=yes,[
+    cf_cv_find_linkage_$3=no
+
+    CF_VERBOSE(find linkage for $3 library)
+    CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
+
+    cf_save_CPPFLAGS="$CPPFLAGS"
+    cf_test_CPPFLAGS="$CPPFLAGS"
+
+    CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
+    for cf_cv_header_path_$3 in $cf_search
+    do
+      if test -d $cf_cv_header_path_$3 ; then
+        CF_VERBOSE(... testing $cf_cv_header_path_$3)
+        CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
+        AC_TRY_COMPILE([$1],[$2],[
+            CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
+            cf_cv_find_linkage_$3=maybe
+            cf_test_CPPFLAGS="$CPPFLAGS"
+            break],[
+            CPPFLAGS="$cf_save_CPPFLAGS"
+            ])
+      fi
+    done
+
+    if test "$cf_cv_find_linkage_$3" = maybe ; then
+
+      CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
+
+      cf_save_LIBS="$LIBS"
+      cf_save_LDFLAGS="$LDFLAGS"
+
+      ifelse([$6],,,[
+        CPPFLAGS="$cf_test_CPPFLAGS"
+        LIBS="-l$3 $7 $cf_save_LIBS"
+        AC_TRY_LINK([$1],[$2],[
+            CF_VERBOSE(... found $3 library in system)
+            cf_cv_find_linkage_$3=yes])
+            CPPFLAGS="$cf_save_CPPFLAGS"
+            LIBS="$cf_save_LIBS"
+            ])
+
+      if test "$cf_cv_find_linkage_$3" != yes ; then
+        CF_LIBRARY_PATH(cf_search,$3)
+        for cf_cv_library_path_$3 in $cf_search
+        do
+          if test -d $cf_cv_library_path_$3 ; then
+            CF_VERBOSE(... testing $cf_cv_library_path_$3)
+            CPPFLAGS="$cf_test_CPPFLAGS"
+            LIBS="-l$3 $7 $cf_save_LIBS"
+            LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
+            AC_TRY_LINK([$1],[$2],[
+                CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
+                cf_cv_find_linkage_$3=yes
+                cf_cv_library_file_$3="-l$3"
+                break],[
+                CPPFLAGS="$cf_save_CPPFLAGS"
+                LIBS="$cf_save_LIBS"
+                LDFLAGS="$cf_save_LDFLAGS"
+                ])
+          fi
+        done
+        LIBS="$cf_save_LIBS"
+        CPPFLAGS="$cf_save_CPPFLAGS"
+        LDFLAGS="$cf_save_LDFLAGS"
+      fi
+
+    else
+      cf_cv_find_linkage_$3=no
+    fi
+    ],$7)
+
+if test "$cf_cv_find_linkage_$3" = yes ; then
+ifelse([$4],,[
+  CF_ADD_INCDIR($cf_cv_header_path_$3)
+  CF_ADD_LIBDIR($cf_cv_library_path_$3)
+  LIBS="-l$3 $LIBS"
+],[$4])
+else
+ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_FUNC_CURSES_VERSION version: 4 updated: 2007/04/28 09:15:55
 dnl ----------------------
 dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
@@ -933,7 +1047,7 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 22 updated: 2007/07/29 09:55:12
+dnl CF_GCC_WARNINGS version: 24 updated: 2009/02/01 15:21:00
 dnl ---------------
 dnl Check if the compiler supports useful warning options.  There's a few that
 dnl we don't use, simply because they're too noisy:
@@ -966,7 +1080,6 @@
 then
 # The "-wdXXX" options suppress warnings:
 # remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
 # remark #193: zero used for undefined preprocessing identifier
@@ -974,19 +1087,18 @@
 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
 # remark #869: parameter "tw" was never referenced
 # remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
+# warning #279: controlling expression is constant
 
 	AC_CHECKING([for $CC warning options])
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-Wall"
 	for cf_opt in \
 		wd1419 \
-		wd1682 \
 		wd1683 \
 		wd1684 \
 		wd193 \
-		wd279 \
 		wd593 \
+		wd279 \
 		wd810 \
 		wd869 \
 		wd981
@@ -1028,7 +1140,7 @@
 				;;
 			Winline) #(vi
 				case $GCC_VERSION in
-				3.3*)
+				[[34]].*)
 					CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
 					continue;;
 				esac
@@ -1074,11 +1186,31 @@
 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
+dnl CF_HEADER_PATH version: 9 updated: 2008/12/07 19:38:31
 dnl --------------
-dnl Construct a search-list for a nonstandard header-file
+dnl Construct a search-list of directories for a nonstandard header-file
+dnl
+dnl Parameters
+dnl	$1 = the variable to return as result
+dnl	$2 = the package name
 AC_DEFUN([CF_HEADER_PATH],
-[CF_SUBDIR_PATH($1,$2,include)
+[
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
+			cf_header_path_list="$cf_header_path_list [$]$1"
+			;;
+		esac
+	done
+fi
+
+CF_SUBDIR_PATH($1,$2,include)
+
 test "$includedir" != NONE && \
 test "$includedir" != "/usr/include" && \
 test -d "$includedir" && {
@@ -1093,6 +1225,7 @@
 	test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
 }
 
+$1="$cf_header_path_list [$]$1"
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
@@ -1140,11 +1273,33 @@
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
+dnl CF_LIBRARY_PATH version: 8 updated: 2008/12/07 19:38:31
 dnl ---------------
-dnl Construct a search-list for a nonstandard library-file
+dnl Construct a search-list of directories for a nonstandard library-file
+dnl
+dnl Parameters
+dnl	$1 = the variable to return as result
+dnl	$2 = the package name
 AC_DEFUN([CF_LIBRARY_PATH],
-[CF_SUBDIR_PATH($1,$2,lib)])dnl
+[
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
+			cf_library_path_list="$cf_library_path_list [$]$1"
+			;;
+		esac
+	done
+fi
+
+CF_SUBDIR_PATH($1,$2,lib)
+
+$1="$cf_library_path_list [$]$1"
+])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
 dnl ----------
@@ -1187,6 +1342,45 @@
 	,[$1=no])
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_NCURSES_CONFIG version: 5 updated: 2009/01/11 15:31:22
+dnl -----------------
+dnl Tie together the configure-script macros for ncurses.
+dnl Prefer the "-config" script from ncurses 5.6, to simplify analysis.
+dnl Allow that to be overridden using the $NCURSES_CONFIG environment variable.
+dnl
+dnl $1 is the root library name (default: "ncurses")
+AC_DEFUN([CF_NCURSES_CONFIG],
+[
+cf_ncuconfig_root=ifelse($1,,ncurses,$1)
+
+echo "Looking for ${cf_ncuconfig_root}-config"
+AC_PATH_PROGS(NCURSES_CONFIG,${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config,none)
+
+if test "$NCURSES_CONFIG" != none ; then
+
+cf_cv_ncurses_header=curses.h
+
+CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+LIBS="`$NCURSES_CONFIG --libs` $LIBS"
+
+dnl like CF_NCURSES_CPPFLAGS
+AC_DEFINE(NCURSES)
+
+dnl like CF_NCURSES_LIBS
+CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
+AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
+
+dnl like CF_NCURSES_VERSION
+cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
+
+else
+
+CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
+CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
+
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_NCURSES_CPPFLAGS version: 19 updated: 2007/07/29 13:35:20
 dnl -------------------
 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
@@ -1238,7 +1432,7 @@
 CF_NCURSES_VERSION
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_HEADER version: 1 updated: 2005/12/31 13:28:37
+dnl CF_NCURSES_HEADER version: 2 updated: 2008/03/23 14:48:54
 dnl -----------------
 dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
 dnl variations of ncurses' installs.
@@ -1273,7 +1467,7 @@
 		CPPFLAGS="$cf_save2_CPPFLAGS"
 		test "$cf_cv_ncurses_h2" != no && break
 	done
-	test "$cf_cv_ncurses_h2" = no && AC_ERROR(not found)
+	test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
 	])
 
 	CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
@@ -1435,7 +1629,23 @@
 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PATH_SYNTAX version: 11 updated: 2006/09/02 08:55:46
+dnl CF_NCURSES_WRAP_PREFIX version: 1 updated: 2009/03/28 16:08:10
+dnl ----------------------
+dnl Check for ncurses "wrap-prefix" used for public variables which have been
+dnl wrapped with a function to help with concurrency control.
+AC_DEFUN([CF_NCURSES_WRAP_PREFIX],
+[
+AC_MSG_CHECKING(for ncurses wrap-prefix)
+AC_ARG_WITH(ncurses-wrap-prefix,
+	[  --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables],
+	[NCURSES_WRAP_PREFIX=$withval],
+	[NCURSES_WRAP_PREFIX=_nc_])
+AC_MSG_RESULT($NCURSES_WRAP_PREFIX)
+
+AC_SUBST(NCURSES_WRAP_PREFIX)
+])
+dnl ---------------------------------------------------------------------------
+dnl CF_PATH_SYNTAX version: 12 updated: 2008/03/23 14:45:59
 dnl --------------
 dnl Check the argument to see that it looks like a pathname.  Rewrite it if it
 dnl begins with one of the prefix/exec_prefix variables, and then again if the
@@ -1467,12 +1677,12 @@
   $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
   ;;
 *)
-  ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
+  ifelse($2,,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
   ;;
 esac
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PDCURSES_X11 version: 7 updated: 2006/11/12 17:31:59
+dnl CF_PDCURSES_X11 version: 9 updated: 2009/01/11 15:31:37
 dnl ---------------
 dnl Configure for PDCurses' X11 library
 AC_DEFUN([CF_PDCURSES_X11],[
@@ -1482,7 +1692,7 @@
 
 if test "$XCURSES_CONFIG" != none ; then
 
-CPPFLAGS="`$XCURSES_CONFIG --cflags` $CPPFLAGS"
+CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
 LIBS="`$XCURSES_CONFIG --libs` $LIBS"
 
 cf_cv_lib_XCurses=yes
@@ -1511,7 +1721,7 @@
 	AC_DEFINE(XCURSES)
 	AC_DEFINE(HAVE_XCURSES)
 else
-	AC_ERROR(Cannot link with XCurses)
+	AC_MSG_ERROR(Cannot link with XCurses)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -1790,7 +2000,7 @@
 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_UTF8_LIB version: 4 updated: 2003/03/01 18:36:42
+dnl CF_UTF8_LIB version: 5 updated: 2008/10/17 19:37:52
 dnl -----------
 dnl Check for multibyte support, and if not found, utf8 compatibility library
 AC_DEFUN([CF_UTF8_LIB],
@@ -1800,18 +2010,18 @@
 	AC_TRY_LINK([
 #include <stdlib.h>],[putwc(0,0);],
 	[cf_cv_utf8_lib=yes],
-	[LIBS="-lutf8 $LIBS"
-	 AC_TRY_LINK([
-#include <libutf8.h>],[putwc(0,0);],
+	[CF_FIND_LINKAGE([
+#include <libutf8.h>],[putwc(0,0);],utf8,
 		[cf_cv_utf8_lib=add-on],
 		[cf_cv_utf8_lib=no])
-	LIBS="$cf_save_LIBS"
 ])])
 
 # HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
 # ncurses/ncursesw:
 if test "$cf_cv_utf8_lib" = "add-on" ; then
 	AC_DEFINE(HAVE_LIBUTF8_H)
+	CF_ADD_INCDIR($cf_cv_header_path_utf8)
+	CF_ADD_LIBDIR($cf_cv_library_path_utf8)
 	LIBS="-lutf8 $LIBS"
 fi
 ])dnl
@@ -1866,7 +2076,7 @@
 test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
+dnl CF_XOPEN_SOURCE version: 28 updated: 2008/12/27 12:30:03
 dnl ---------------
 dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
 dnl or adapt to the vendor's definitions to get equivalent functionality,
@@ -1883,10 +2093,10 @@
 cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
 
 case $host_os in #(vi
-aix[[45]]*) #(vi
+aix[[456]]*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
 	;;
-freebsd*) #(vi
+freebsd*|dragonfly*) #(vi
 	# 5.x headers associate
 	#	_XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
 	#	_XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
@@ -1900,7 +2110,7 @@
 irix[[56]].*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
 	;;
-linux*|gnu*|k*bsd*-gnu) #(vi
+linux*|gnu*|mint*|k*bsd*-gnu) #(vi
 	CF_GNU_SOURCE
 	;;
 mirbsd*) #(vi
@@ -2005,7 +2215,7 @@
 CF_X_ATHENA_LIBS($cf_x_athena)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA_CPPFLAGS version: 2 updated: 2002/10/09 20:00:37
+dnl CF_X_ATHENA_CPPFLAGS version: 3 updated: 2009/01/11 15:33:39
 dnl --------------------
 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
@@ -2024,7 +2234,7 @@
 		cf_save="$CPPFLAGS"
 		cf_test=X11/$cf_x_athena_root/SimpleMenu.h
 		if test $cf_path != default ; then
-			CPPFLAGS="-I$cf_path/include $cf_save"
+			CPPFLAGS="$cf_save -I$cf_path/include"
 			AC_MSG_CHECKING(for $cf_test in $cf_path)
 		else
 			AC_MSG_CHECKING(for $cf_test)
@@ -2052,7 +2262,7 @@
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA_LIBS version: 6 updated: 2006/11/30 17:57:11
+dnl CF_X_ATHENA_LIBS version: 7 updated: 2008/03/23 14:46:03
 dnl ----------------
 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
@@ -2096,7 +2306,7 @@
 done
 
 if test -z "$cf_x_athena_lib" ; then
-	AC_ERROR(
+	AC_MSG_ERROR(
 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
 fi
 
@@ -2104,7 +2314,7 @@
 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_X_TOOLKIT version: 11 updated: 2006/11/29 19:05:14
+dnl CF_X_TOOLKIT version: 12 updated: 2008/03/23 15:04:54
 dnl ------------
 dnl Check for X Toolkit libraries
 dnl
@@ -2133,7 +2343,7 @@
 	[$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
 
 if test $cf_have_X_LIBS = no ; then
-	AC_WARN(
+	AC_MSG_WARN(
 [Unable to successfully link X Toolkit library (-lXt) with
 test program.  You will have to check and add the proper libraries by hand
 to makefile.])
diff -Naur ncurses-5.7.orig/test/clip_printw.c ncurses-5.7/test/clip_printw.c
--- ncurses-5.7.orig/test/clip_printw.c	1969-12-31 16:00:00.000000000 -0800
+++ ncurses-5.7/test/clip_printw.c	2009-06-05 14:00:59.000000000 -0700
@@ -0,0 +1,360 @@
+/****************************************************************************
+ * Copyright (c) 2008 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: clip_printw.c,v 1.1 2008/12/20 21:03:06 tom Exp $
+ *
+ * demonstrate how to use printw without wrapping.
+ */
+
+#include <test.priv.h>
+
+#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
+#define COLOR_DEFAULT (-1)
+
+typedef struct {
+    unsigned c;
+    unsigned v;
+    int status;
+    int pair;
+    unsigned attr;
+    int count;
+    int ch;
+    const char *c_msg;
+    const char *v_msg;
+    int y_val;
+    int x_val;
+    int y_beg, x_beg;
+    int y_max, x_max;
+} STATUS;
+
+static int
+clip_wprintw(WINDOW *win, const char *fmt,...)
+{
+    int y0, x0, y1, x1, width;
+    WINDOW *sub;
+    va_list ap;
+    int rc;
+
+    /*
+     * Allocate a single-line derived window extending from the current
+     * cursor position to the end of the current line in the given window.
+     * Disable scrolling in the derived window.
+     */
+    getyx(win, y0, x0);
+    width = getmaxx(win) - x0;
+    sub = derwin(win, 1, width, y0, x0);
+    scrollok(sub, FALSE);
+
+    /*
+     * Print the text.
+     */
+    va_start(ap, fmt);
+    rc = vw_printw(sub, fmt, ap);
+    va_end(ap);
+
+    getyx(sub, y1, x1);
+    delwin(sub);
+
+    wmove(win, y1 + y0, x1 + x0);
+
+    return rc;
+}
+
+static const char *
+color_params(unsigned state, int *pair)
+{
+    /* *INDENT-OFF* */
+    static struct {
+	int pair;
+	int fg, bg;
+	const char *msg;
+    } table[] = {
+	{ 0, COLOR_DEFAULT, COLOR_DEFAULT, "default" },
+	{ 1, COLOR_RED,     COLOR_BLACK,   "red/black" },
+	{ 2, COLOR_WHITE,   COLOR_BLUE,    "white/blue" },
+    };
+    /* *INDENT-ON* */
+
+    static bool first = TRUE;
+    const char *result = 0;
+
+    if (has_colors()) {
+	if (first) {
+	    unsigned n;
+
+	    start_color();
+	    for (n = 0; n < SIZEOF(table); ++n) {
+		init_pair(table[n].pair, table[n].fg, table[n].bg);
+	    }
+	}
+	if (state < SIZEOF(table)) {
+	    *pair = table[state].pair;
+	    result = table[state].msg;
+	}
+    }
+    return result;
+}
+
+static const char *
+video_params(unsigned state, unsigned *attr)
+{
+    /* *INDENT-OFF* */
+    static struct {
+	unsigned attr;
+	const char *msg;
+    } table[] = {
+	{ A_NORMAL,	"normal" },
+	{ A_BOLD,	"bold" },
+	{ A_REVERSE,	"reverse" },
+	{ A_UNDERLINE,	"underline" },
+	{ A_BLINK, 	"blink" },
+    };
+    /* *INDENT-ON* */
+
+    const char *result = 0;
+
+    if (state < SIZEOF(table)) {
+	*attr = table[state].attr;
+	result = table[state].msg;
+    }
+    return result;
+}
+
+/* fill the window with a test-pattern */
+static void
+fill_window(WINDOW *win)
+{
+    int y, x;
+
+    getyx(win, y, x);
+    wmove(win, 0, 0);
+    while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) {
+    }
+    wmove(win, y, x);
+}
+
+static void
+show_status(WINDOW *win, STATUS * sp)
+{
+    int y, x;
+
+    getyx(win, y, x);
+    wmove(win, 0, 0);
+    wprintw(win, "Count %d", sp->count);
+    if (sp->v_msg != 0)
+	wprintw(win, " Video %s", sp->v_msg);
+    if (sp->c_msg != 0)
+	wprintw(win, " Color %s", sp->c_msg);
+    wprintw(win, " (%d)", sp->status);
+    wclrtoeol(win);
+    wmove(win, y, x);
+}
+
+static void
+do_subwindow(WINDOW *win, STATUS * sp, void func(WINDOW *))
+{
+    WINDOW *win1 = newwin(sp->y_max - 2, sp->x_max - 2,
+			  sp->y_beg + 1, sp->x_beg + 1);
+
+    if (win1 != 0 && sp->y_max > 4 && sp->x_max > 4) {
+	WINDOW *win2 = derwin(win1, sp->y_max - 4, sp->x_max - 4, 1, 1);
+
+	if (win2 != 0) {
+	    box(win1, 0, 0);
+	    wrefresh(win1);
+	    func(win2);
+
+	    delwin(win2);
+	} else {
+	    beep();
+	}
+	delwin(win1);
+	touchwin(win);
+    } else {
+	beep();
+    }
+}
+
+static void
+init_status(WINDOW *win, STATUS * sp)
+{
+    memset(sp, 0, sizeof(*sp));
+    sp->c = 99;
+    sp->v = 99;
+    sp->ch = ' ';
+
+    keypad(win, TRUE);
+    fill_window(win);
+
+    getbegyx(win, sp->y_beg, sp->x_beg);
+    getmaxyx(win, sp->y_max, sp->x_max);
+}
+
+static void
+show_help(WINDOW *win)
+{
+    static const char *table[] =
+    {
+	"Basic commands:"
+	,"Use h/j/k/l or arrow keys to move the cursor."
+	,"Set the count parameter for clip_wprintw by entering digits 0-9."
+	,""
+	,"Other commands:"
+	,"space toggles through the set of video attributes and colors."
+	,"t     touches (forces repaint) of the current line."
+	,".     calls clip_wprintw at the current position with the given count."
+	,"=     resets count to zero."
+	,"?     shows this help-window"
+	,""
+    };
+
+    int y_max, x_max;
+    int row;
+
+    getmaxyx(win, y_max, x_max);
+    for (row = 0; row < (int) SIZEOF(table) && row < y_max; ++row) {
+	mvwprintw(win, row, 0, "%.*s", x_max, table[row]);
+    }
+    while (wgetch(win) != 'q')
+	beep();
+}
+
+static void
+update_status(WINDOW *win, STATUS * sp)
+{
+    switch (sp->ch) {
+    case ' ':			/* next test-iteration */
+	if (has_colors()) {
+	    if ((sp->c_msg = color_params(++(sp->c), &(sp->pair))) == 0) {
+		sp->c_msg = color_params(sp->c = 0, &(sp->pair));
+		if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) {
+		    sp->v_msg = video_params(sp->v = 0, &(sp->attr));
+		}
+	    }
+	} else {
+	    if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) {
+		sp->v_msg = video_params(sp->v = 0, &(sp->attr));
+	    }
+	}
+	sp->count = 0;
+	show_status(win, sp);
+	break;
+    case KEY_LEFT:
+    case 'h':
+	if (sp->x_val > 0)
+	    wmove(win, sp->y_val, --(sp->x_val));
+	break;
+    case KEY_DOWN:
+    case 'j':
+	if (sp->y_val < sp->y_max)
+	    wmove(win, ++(sp->y_val), sp->x_val);
+	break;
+    case KEY_UP:
+    case 'k':
+	if (sp->y_val > 0)
+	    wmove(win, --(sp->y_val), sp->x_val);
+	break;
+    case KEY_RIGHT:
+    case 'l':
+	if (sp->x_val < sp->x_max)
+	    wmove(win, sp->y_val, ++(sp->x_val));
+	break;
+    case 't':
+	touchline(win, sp->y_val, 1);
+	break;
+    case '=':
+	sp->count = 0;
+	show_status(win, sp);
+	break;
+    case '?':
+	do_subwindow(win, sp, show_help);
+	break;
+    default:
+	if (isdigit(sp->ch)) {
+	    sp->count = (sp->count * 10) + (sp->ch - '0');
+	    show_status(win, sp);
+	} else {
+	    beep();
+	}
+	break;
+    }
+}
+
+static void
+test_clipping(WINDOW *win)
+{
+    STATUS st;
+    char fmt[80];
+    char *buffer;
+    unsigned j, need;
+
+    init_status(win, &st);
+
+    do {
+	switch (st.ch) {
+	case '.':		/* change from current position */
+	    wattrset(win, st.attr | COLOR_PAIR(st.pair));
+	    if (st.count > 0) {
+		need = st.count + 1;
+		sprintf(fmt, "%%c%%%ds%%c", st.count);
+	    } else {
+		need = getmaxx(win) - 1;
+		strcpy(fmt, "%c%s%c");
+	    }
+	    if ((buffer = typeMalloc(char, need)) != 0) {
+		for (j = 0; j < need; ++j) {
+		    buffer[j] = 'A' + (j % 26);
+		}
+		buffer[need - 1] = '\0';
+		st.status = clip_wprintw(win, fmt, '[', buffer, ']');
+	    }
+	    break;
+	case 'w':
+	    do_subwindow(win, &st, test_clipping);
+	    break;
+	case 'q':
+	    return;
+	default:
+	    update_status(win, &st);
+	    break;
+	}
+    } while ((st.ch = wgetch(win)) != ERR);
+}
+
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+{
+    initscr();
+    cbreak();
+    noecho();
+
+    test_clipping(stdscr);
+    endwin();
+
+    ExitProgram(EXIT_SUCCESS);
+}
diff -Naur ncurses-5.7.orig/test/configure ncurses-5.7/test/configure
--- ncurses-5.7.orig/test/configure	2008-09-06 15:11:48.000000000 -0700
+++ ncurses-5.7/test/configure	2009-06-05 14:01:30.000000000 -0700
@@ -194,6 +194,7 @@
   --with-Xaw3d            link with Xaw 3d library
   --with-neXtaw           link with neXT Athena library
   --with-XawPlus          link with Athena-Plus library
+  --with-ncurses-wrap-prefix naming-prefix for ncurses wrapped-variables
 EOF
     exit 0 ;;
 
@@ -536,7 +537,7 @@
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:540: checking for X" >&5
+echo "configure:541: checking for X" >&5
 
 
 # Check whether --with-x or --without-x was given.
@@ -599,12 +600,12 @@
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 603 "configure"
+#line 604 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:609: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -673,14 +674,14 @@
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 677 "configure"
+#line 678 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -803,7 +804,7 @@
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:807: checking host system type" >&5
+echo "configure:808: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -851,7 +852,7 @@
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:855: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:856: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -880,7 +881,7 @@
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:884: checking for $ac_word" >&5
+echo "configure:885: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -910,7 +911,7 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:914: checking for $ac_word" >&5
+echo "configure:915: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -961,7 +962,7 @@
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:965: checking for $ac_word" >&5
+echo "configure:966: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -993,7 +994,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:997: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:998: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1004,12 +1005,12 @@
 
 cat > conftest.$ac_ext << EOF
 
-#line 1008 "configure"
+#line 1009 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1035,12 +1036,12 @@
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1039: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1040: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1044: checking whether we are using GNU C" >&5
+echo "configure:1045: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1049,7 +1050,7 @@
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1054: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1068,7 +1069,7 @@
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1072: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1073: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1100,7 +1101,7 @@
 fi
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1104: checking how to run the C preprocessor" >&5
+echo "configure:1105: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -1115,13 +1116,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 1119 "configure"
+#line 1120 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1126: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1132,13 +1133,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1136 "configure"
+#line 1137 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1142: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1143: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1149,13 +1150,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1153 "configure"
+#line 1154 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1160: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -1184,7 +1185,7 @@
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1188: checking for $ac_word" >&5
+echo "configure:1189: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1246,12 +1247,12 @@
 cf_cv_libtype=
 
 echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:1250: checking for Cygwin environment" >&5
+echo "configure:1251: checking for Cygwin environment" >&5
 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1255 "configure"
+#line 1256 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1262,7 +1263,7 @@
 return __CYGWIN__;
 ; return 0; }
 EOF
-if { (eval echo configure:1266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1267: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_cygwin=yes
 else
@@ -1279,19 +1280,19 @@
 CYGWIN=
 test "$ac_cv_cygwin" = yes && CYGWIN=yes
 echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:1283: checking for mingw32 environment" >&5
+echo "configure:1284: checking for mingw32 environment" >&5
 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1288 "configure"
+#line 1289 "configure"
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
-if { (eval echo configure:1295: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1296: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_mingw32=yes
 else
@@ -1310,7 +1311,7 @@
 
 
 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1314: checking for executable suffix" >&5
+echo "configure:1315: checking for executable suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1320,7 +1321,7 @@
   rm -f conftest*
   echo 'int main () { return 0; }' > conftest.$ac_ext
   ac_cv_exeext=
-  if { (eval echo configure:1324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+  if { (eval echo configure:1325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
     for file in conftest.*; do
       case $file in
       *.c | *.o | *.obj) ;;
@@ -1341,13 +1342,13 @@
 ac_exeext=$EXEEXT
 
 echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1345: checking for object suffix" >&5
+echo "configure:1346: checking for object suffix" >&5
 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   rm -f conftest*
 echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1351: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1352: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   for ac_file in conftest.*; do
     case $ac_file in
     *.c) ;;
@@ -1367,7 +1368,7 @@
 
 
 echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:1371: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "configure:1372: checking for ${CC-cc} option to accept ANSI C" >&5
 if eval "test \"`echo '$''{'cf_cv_ansi_cc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1451,7 +1452,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 	
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -1463,7 +1464,7 @@
 
 
 	cat > conftest.$ac_ext <<EOF
-#line 1467 "configure"
+#line 1468 "configure"
 #include "confdefs.h"
 
 #ifndef CC_HAS_PROTOS
@@ -1479,7 +1480,7 @@
 	struct s2 {int (*f) (double a);};
 ; return 0; }
 EOF
-if { (eval echo configure:1483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ansi_cc="$cf_arg"; break
 else
@@ -1558,7 +1559,7 @@
 
 if test -n "$cf_new_cppflags" ; then
 	
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -1606,9 +1607,9 @@
 if test "$GCC" = yes
 then
 	echo "checking for $CC __attribute__ directives" 1>&6
-echo "configure:1610: checking for $CC __attribute__ directives" >&5
+echo "configure:1611: checking for $CC __attribute__ directives" >&5
 cat > conftest.$ac_ext <<EOF
-#line 1612 "${as_me-configure}"
+#line 1613 "${as_me-configure}"
 #include "confdefs.h"
 #include "conftest.h"
 #include "conftest.i"
@@ -1646,7 +1647,7 @@
 EOF
 			;;
 		esac
-		if { (eval echo configure:1650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+		if { (eval echo configure:1651: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 			test -n "$verbose" && echo "$ac_t""... $cf_attribute" 1>&6
 			cat conftest.h >>confdefs.h
 		fi
@@ -1659,7 +1660,7 @@
 
 
 echo $ac_n "checking if $CC -U and -D options work together""... $ac_c" 1>&6
-echo "configure:1663: checking if $CC -U and -D options work together" >&5
+echo "configure:1664: checking if $CC -U and -D options work together" >&5
 if eval "test \"`echo '$''{'cf_cv_cc_u_d_options'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1667,7 +1668,7 @@
 	cf_save_CPPFLAGS="$CPPFLAGS"
 	CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
 	cat > conftest.$ac_ext <<EOF
-#line 1671 "configure"
+#line 1672 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -1681,7 +1682,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:1685: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 	cf_cv_cc_u_d_options=yes
@@ -1707,10 +1708,10 @@
 cf_POSIX_C_SOURCE=199506L
 
 case $host_os in #(vi
-aix[45]*) #(vi
+aix[456]*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
 	;;
-freebsd*) #(vi
+freebsd*|dragonfly*) #(vi
 	# 5.x headers associate
 	#	_XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
 	#	_XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
@@ -1724,16 +1725,16 @@
 irix[56].*) #(vi
 	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
 	;;
-linux*|gnu*|k*bsd*-gnu) #(vi
+linux*|gnu*|mint*|k*bsd*-gnu) #(vi
 	
 echo $ac_n "checking if we must define _GNU_SOURCE""... $ac_c" 1>&6
-echo "configure:1731: checking if we must define _GNU_SOURCE" >&5
+echo "configure:1732: checking if we must define _GNU_SOURCE" >&5
 if eval "test \"`echo '$''{'cf_cv_gnu_source'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 1737 "configure"
+#line 1738 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1743,7 +1744,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1747: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1748: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -1753,7 +1754,7 @@
   cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
 	 cat > conftest.$ac_ext <<EOF
-#line 1757 "configure"
+#line 1758 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1763,7 +1764,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -1807,13 +1808,13 @@
 	;;
 *)
 	echo $ac_n "checking if we should define _XOPEN_SOURCE""... $ac_c" 1>&6
-echo "configure:1811: checking if we should define _XOPEN_SOURCE" >&5
+echo "configure:1812: checking if we should define _XOPEN_SOURCE" >&5
 if eval "test \"`echo '$''{'cf_cv_xopen_source'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cat > conftest.$ac_ext <<EOF
-#line 1817 "configure"
+#line 1818 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1823,7 +1824,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1827: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1828: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_xopen_source=no
 else
@@ -1833,7 +1834,7 @@
   cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
 	 cat > conftest.$ac_ext <<EOF
-#line 1837 "configure"
+#line 1838 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1843,7 +1844,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1847: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_xopen_source=no
 else
@@ -1898,16 +1899,16 @@
 
 
 echo $ac_n "checking if we should define _POSIX_C_SOURCE""... $ac_c" 1>&6
-echo "configure:1902: checking if we should define _POSIX_C_SOURCE" >&5
+echo "configure:1903: checking if we should define _POSIX_C_SOURCE" >&5
 if eval "test \"`echo '$''{'cf_cv_posix_c_source'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	
-echo "${as_me-configure}:1908: testing if the symbol is already defined go no further ..." 1>&5
+echo "${as_me-configure}:1909: testing if the symbol is already defined go no further ..." 1>&5
 
 	cat > conftest.$ac_ext <<EOF
-#line 1911 "configure"
+#line 1912 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1917,7 +1918,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1921: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_posix_c_source=no
 else
@@ -1939,7 +1940,7 @@
 	 esac
 	 if test "$cf_want_posix_source" = yes ; then
 		cat > conftest.$ac_ext <<EOF
-#line 1943 "configure"
+#line 1944 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1949,7 +1950,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1953: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1954: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -1960,15 +1961,15 @@
 rm -f conftest*
 	 fi
 	 
-echo "${as_me-configure}:1964: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me-configure}:1965: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
 
 	 CFLAGS="$cf_trim_CFLAGS"
 	 CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
 	 
-echo "${as_me-configure}:1969: testing if the second compile does not leave our definition intact error ..." 1>&5
+echo "${as_me-configure}:1970: testing if the second compile does not leave our definition intact error ..." 1>&5
 
 	 cat > conftest.$ac_ext <<EOF
-#line 1972 "configure"
+#line 1973 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1978,7 +1979,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:1982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1983: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -2013,12 +2014,12 @@
 esac
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2017: checking for working const" >&5
+echo "configure:2018: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2022 "configure"
+#line 2023 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2067,7 +2068,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -2089,7 +2090,7 @@
 
 
 echo $ac_n "checking for signal global datatype""... $ac_c" 1>&6
-echo "configure:2093: checking for signal global datatype" >&5
+echo "configure:2094: checking for signal global datatype" >&5
 if eval "test \"`echo '$''{'cf_cv_sig_atomic_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2100,7 +2101,7 @@
 		"int"
 	do
 	cat > conftest.$ac_ext <<EOF
-#line 2104 "configure"
+#line 2105 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -2118,7 +2119,7 @@
 		 x = 1
 ; return 0; }
 EOF
-if { (eval echo configure:2122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_sig_atomic_t=$cf_type
 else
@@ -2142,7 +2143,7 @@
 
 
 echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6
-echo "configure:2146: checking if you want to see long compiling messages" >&5
+echo "configure:2147: checking if you want to see long compiling messages" >&5
 
 # Check whether --enable-echo or --disable-echo was given.
 if test "${enable_echo+set}" = set; then
@@ -2189,7 +2190,7 @@
 GCC_VERSION=none
 if test "$GCC" = yes ; then
 	echo $ac_n "checking version of $CC""... $ac_c" 1>&6
-echo "configure:2193: checking version of $CC" >&5
+echo "configure:2194: checking version of $CC" >&5
 	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
 	test -z "$GCC_VERSION" && GCC_VERSION=unknown
 	echo "$ac_t""$GCC_VERSION" 1>&6
@@ -2199,7 +2200,7 @@
 if ( test "$GCC" = yes || test "$GXX" = yes )
 then
 echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
-echo "configure:2203: checking if you want to turn on gcc warnings" >&5
+echo "configure:2204: checking if you want to turn on gcc warnings" >&5
 
 # Check whether --enable-warnings or --disable-warnings was given.
 if test "${enable_warnings+set}" = set; then
@@ -2228,11 +2229,11 @@
 	case $host_os in
 	linux*|gnu*)
 		echo $ac_n "checking if this is really Intel C compiler""... $ac_c" 1>&6
-echo "configure:2232: checking if this is really Intel C compiler" >&5
+echo "configure:2233: checking if this is really Intel C compiler" >&5
 		cf_save_CFLAGS="$CFLAGS"
 		CFLAGS="$CFLAGS -no-gcc"
 		cat > conftest.$ac_ext <<EOF
-#line 2236 "configure"
+#line 2237 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -2244,7 +2245,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2249: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   INTEL_COMPILER=yes
 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
@@ -2262,7 +2263,7 @@
 
 
 cat > conftest.$ac_ext <<EOF
-#line 2266 "${as_me-configure}"
+#line 2267 "${as_me-configure}"
 int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
 EOF
 
@@ -2270,7 +2271,6 @@
 then
 # The "-wdXXX" options suppress warnings:
 # remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
 # remark #193: zero used for undefined preprocessing identifier
@@ -2278,7 +2278,7 @@
 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
 # remark #869: parameter "tw" was never referenced
 # remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
+# warning #279: controlling expression is constant
 
 	echo "checking for $CC warning options" 1>&6
 echo "configure:2285: checking for $CC warning options" >&5
@@ -2286,18 +2286,17 @@
 	EXTRA_CFLAGS="-Wall"
 	for cf_opt in \
 		wd1419 \
-		wd1682 \
 		wd1683 \
 		wd1684 \
 		wd193 \
-		wd279 \
 		wd593 \
+		wd279 \
 		wd810 \
 		wd869 \
 		wd981
 	do
 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-		if { (eval echo configure:2301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+		if { (eval echo configure:2300: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
 			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
 		fi
@@ -2307,7 +2306,7 @@
 elif test "$GCC" = yes
 then
 	echo "checking for $CC warning options" 1>&6
-echo "configure:2311: checking for $CC warning options" >&5
+echo "configure:2310: checking for $CC warning options" >&5
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-W -Wall"
 	cf_warn_CONST=""
@@ -2326,7 +2325,7 @@
 		Wundef $cf_warn_CONST 
 	do
 		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
-		if { (eval echo configure:2330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+		if { (eval echo configure:2329: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
 			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
 			case $cf_opt in #(vi
 			Wcast-qual) #(vi
@@ -2334,10 +2333,10 @@
 				;;
 			Winline) #(vi
 				case $GCC_VERSION in
-				3.3*)
+				[34].*)
 					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
 
-echo "${as_me-configure}:2341: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+echo "${as_me-configure}:2340: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
 
 
 					continue;;
@@ -2441,7 +2440,7 @@
 	
 
 echo $ac_n "checking for extra include directories""... $ac_c" 1>&6
-echo "configure:2445: checking for extra include directories" >&5
+echo "configure:2444: checking for extra include directories" >&5
 if eval "test \"`echo '$''{'cf_cv_curses_incdir'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2462,11 +2461,11 @@
 fi
 
 echo "$ac_t""$cf_cv_curses_incdir" 1>&6
-test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS"
+test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
 
 
 echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
-echo "configure:2470: checking if we have identified curses headers" >&5
+echo "configure:2469: checking if we have identified curses headers" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2479,14 +2478,14 @@
 	ncurses/ncurses.h
 do
 cat > conftest.$ac_ext <<EOF
-#line 2483 "configure"
+#line 2482 "configure"
 #include "confdefs.h"
 #include <${cf_header}>
 int main() {
 initscr(); tgoto("?", 0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:2490: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2489: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_header=$cf_header; break
 else
@@ -2509,17 +2508,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2513: checking for $ac_hdr" >&5
+echo "configure:2512: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2518 "configure"
+#line 2517 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2522: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2548,7 +2547,7 @@
 
 
 echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
-echo "configure:2552: checking for terminfo header" >&5
+echo "configure:2551: checking for terminfo header" >&5
 if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2565,7 +2564,7 @@
 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
 do
 cat > conftest.$ac_ext <<EOF
-#line 2569 "configure"
+#line 2568 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -2575,7 +2574,7 @@
 int x = auto_left_margin
 ; return 0; }
 EOF
-if { (eval echo configure:2579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 	cf_cv_term_header="$cf_test"
@@ -2624,7 +2623,7 @@
 
 	
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:2628: checking for ncurses version" >&5
+echo "configure:2627: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2650,7 +2649,7 @@
 #endif
 EOF
 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-	{ (eval echo configure:2654: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+	{ (eval echo configure:2653: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
 	if test -f conftest.out ; then
 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -2659,7 +2658,7 @@
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 2663 "configure"
+#line 2662 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -2683,7 +2682,7 @@
 	${cf_cv_main_return-return}(0);
 }
 EOF
-if { (eval echo configure:2687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
 	cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -2707,16 +2706,16 @@
 	
 
 echo $ac_n "checking if we have identified curses libraries""... $ac_c" 1>&6
-echo "configure:2711: checking if we have identified curses libraries" >&5
+echo "configure:2710: checking if we have identified curses libraries" >&5
 cat > conftest.$ac_ext <<EOF
-#line 2713 "configure"
+#line 2712 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); tgoto("?", 0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:2720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -2732,7 +2731,7 @@
 case $host_os in #(vi
 freebsd*) #(vi
     echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:2736: checking for tgoto in -lmytinfo" >&5
+echo "configure:2735: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2740,7 +2739,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2744 "configure"
+#line 2743 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2751,7 +2750,7 @@
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:2755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2774,7 +2773,7 @@
     ;;
 hpux10.*) #(vi
     echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
-echo "configure:2778: checking for initscr in -lcur_colr" >&5
+echo "configure:2777: checking for initscr in -lcur_colr" >&5
 ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2782,7 +2781,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lcur_colr  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2786 "configure"
+#line 2785 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2793,7 +2792,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2816,7 +2815,7 @@
   echo "$ac_t""no" 1>&6
 
     echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
-echo "configure:2820: checking for initscr in -lHcurses" >&5
+echo "configure:2819: checking for initscr in -lHcurses" >&5
 ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2824,7 +2823,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lHcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2828 "configure"
+#line 2827 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2835,7 +2834,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:2839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2853,7 +2852,7 @@
   
         # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
         LIBS="-lHcurses $LIBS"
-        CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
+        CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
         ac_cv_func_initscr=yes
         
 else
@@ -2884,7 +2883,7 @@
       if test "$cf_have_libdir" = no ; then
         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
 
-echo "${as_me-configure}:2888: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me-configure}:2887: testing adding $cf_add_libdir to library-path ..." 1>&5
 
 
         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
@@ -2916,7 +2915,7 @@
       if test "$cf_have_libdir" = no ; then
         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
 
-echo "${as_me-configure}:2920: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me-configure}:2919: testing adding $cf_add_libdir to library-path ..." 1>&5
 
 
         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
@@ -2946,12 +2945,12 @@
     # Check for library containing tgoto.  Do this before curses library
     # because it may be needed to link the test-case for initscr.
     echo $ac_n "checking for tgoto""... $ac_c" 1>&6
-echo "configure:2950: checking for tgoto" >&5
+echo "configure:2949: checking for tgoto" >&5
 if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2955 "configure"
+#line 2954 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char tgoto(); below.  */
@@ -2974,7 +2973,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_tgoto=yes"
 else
@@ -2995,7 +2994,7 @@
         for cf_term_lib in $cf_check_list termcap termlib unknown
         do
             echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6
-echo "configure:2999: checking for tgoto in -l$cf_term_lib" >&5
+echo "configure:2998: checking for tgoto in -l$cf_term_lib" >&5
 ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3003,7 +3002,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_term_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3007 "configure"
+#line 3006 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3014,7 +3013,7 @@
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:3018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3041,10 +3040,10 @@
 
     # Check for library containing initscr
     test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-    for cf_curs_lib in $cf_check_list xcurses jcurses unknown
+ 	for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
     do
         echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
-echo "configure:3048: checking for initscr in -l$cf_curs_lib" >&5
+echo "configure:3047: checking for initscr in -l$cf_curs_lib" >&5
 ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3052,7 +3051,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-l$cf_curs_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3056 "configure"
+#line 3055 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3063,7 +3062,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3089,16 +3088,16 @@
     LIBS="-l$cf_curs_lib $cf_save_LIBS"
     if test "$cf_term_lib" = unknown ; then
         echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6
-echo "configure:3093: checking if we can link with $cf_curs_lib library" >&5
+echo "configure:3092: checking if we can link with $cf_curs_lib library" >&5
         cat > conftest.$ac_ext <<EOF
-#line 3095 "configure"
+#line 3094 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -3114,16 +3113,16 @@
         :
     elif test "$cf_term_lib" != predefined ; then
         echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6
-echo "configure:3118: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+echo "configure:3117: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
         cat > conftest.$ac_ext <<EOF
-#line 3120 "configure"
+#line 3119 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:3127: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=no
 else
@@ -3133,14 +3132,14 @@
   
             LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
             cat > conftest.$ac_ext <<EOF
-#line 3137 "configure"
+#line 3136 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -3162,6 +3161,76 @@
 	;;
 ncurses)
 	
+cf_ncuconfig_root=ncurses
+
+echo "Looking for ${cf_ncuconfig_root}-config"
+for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3173: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_NCURSES_CONFIG'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$NCURSES_CONFIG" in
+  /*)
+  ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+NCURSES_CONFIG="$ac_cv_path_NCURSES_CONFIG"
+if test -n "$NCURSES_CONFIG"; then
+  echo "$ac_t""$NCURSES_CONFIG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$NCURSES_CONFIG" && break
+done
+test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
+
+
+if test "$NCURSES_CONFIG" != none ; then
+
+cf_cv_ncurses_header=curses.h
+
+CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+LIBS="`$NCURSES_CONFIG --libs` $LIBS"
+
+cat >> confdefs.h <<\EOF
+#define NCURSES 1
+EOF
+
+
+
+cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+cat >> confdefs.h <<EOF
+#define $cf_nculib_ROOT 1
+EOF
+
+
+cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
+
+else
+
+
 
 cf_ncuhdr_root=ncurses
 
@@ -3186,20 +3255,20 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 			  cat > conftest.$ac_ext <<EOF
-#line 3196 "configure"
+#line 3265 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:3203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3272: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3216,14 +3285,14 @@
 		if test "$cf_have_incdir" = no ; then
 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-echo "${as_me-configure}:3220: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me-configure}:3289: testing adding $cf_add_incdir to include-path ..." 1>&5
 
 
-		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -3235,7 +3304,7 @@
 }
 
 echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:3239: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "configure:3308: checking for $cf_ncuhdr_root header in include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3246,7 +3315,7 @@
 	do
 		
 	cat > conftest.$ac_ext <<EOF
-#line 3250 "configure"
+#line 3319 "configure"
 #include "confdefs.h"
 
 
@@ -3267,7 +3336,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:3271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3340: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h=$cf_header
 	
@@ -3293,13 +3362,39 @@
 else
 
 echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:3297: checking for $cf_ncuhdr_root include-path" >&5
+echo "configure:3366: checking for $cf_ncuhdr_root include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	test -n "$verbose" && echo
-	cf_search=""
+	
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/$cf_ncuhdr_root &&       cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
+	test -d $cf_header_path/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
+	test -d $cf_header_path/$cf_ncuhdr_root/include &&       cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
+	test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+cf_search=""
 
 
 test "/usr" != "$prefix" && \
@@ -3362,6 +3457,7 @@
 }
 
 
+
 test "$includedir" != NONE && \
 test "$includedir" != "/usr/include" && \
 test -d "$includedir" && {
@@ -3376,6 +3472,7 @@
 	test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
 }
 
+cf_search="$cf_header_path_list $cf_search"
 
 	test -n "$verbose" && echo search path $cf_search
 	cf_save2_CPPFLAGS="$CPPFLAGS"
@@ -3400,20 +3497,20 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 			  cat > conftest.$ac_ext <<EOF
-#line 3410 "configure"
+#line 3507 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:3417: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3514: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3430,14 +3527,14 @@
 		if test "$cf_have_incdir" = no ; then
 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-echo "${as_me-configure}:3434: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me-configure}:3531: testing adding $cf_add_incdir to include-path ..." 1>&5
 
 
-		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -3452,7 +3549,7 @@
 		do
 			
 	cat > conftest.$ac_ext <<EOF
-#line 3456 "configure"
+#line 3553 "configure"
 #include "confdefs.h"
 
 
@@ -3473,7 +3570,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:3477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h2=$cf_header
 	
@@ -3525,20 +3622,20 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 			  cat > conftest.$ac_ext <<EOF
-#line 3535 "configure"
+#line 3632 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:3542: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3639: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -3555,14 +3652,14 @@
 		if test "$cf_have_incdir" = no ; then
 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-echo "${as_me-configure}:3559: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me-configure}:3656: testing adding $cf_add_incdir to include-path ..." 1>&5
 
 
-		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -3603,7 +3700,7 @@
 
 
 echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
-echo "configure:3607: checking for terminfo header" >&5
+echo "configure:3704: checking for terminfo header" >&5
 if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3620,7 +3717,7 @@
 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
 do
 cat > conftest.$ac_ext <<EOF
-#line 3624 "configure"
+#line 3721 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -3630,7 +3727,7 @@
 int x = auto_left_margin
 ; return 0; }
 EOF
-if { (eval echo configure:3634: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3731: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 	cf_cv_term_header="$cf_test"
@@ -3685,7 +3782,7 @@
 
 
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:3689: checking for ncurses version" >&5
+echo "configure:3786: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3711,7 +3808,7 @@
 #endif
 EOF
 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-	{ (eval echo configure:3715: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+	{ (eval echo configure:3812: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
 	if test -f conftest.out ; then
 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -3720,7 +3817,7 @@
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 3724 "configure"
+#line 3821 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -3744,7 +3841,7 @@
 	${cf_cv_main_return-return}(0);
 }
 EOF
-if { (eval echo configure:3748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
 	cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -3766,7 +3863,7 @@
 
 
 
-	
+
 
 cf_nculib_root=ncurses
 	# This works, except for the special case where we find gpm, but
@@ -3775,7 +3872,7 @@
 cf_ncurses_LIBS=""
 cf_ncurses_SAVE="$LIBS"
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:3779: checking for Gpm_Open in -lgpm" >&5
+echo "configure:3876: checking for Gpm_Open in -lgpm" >&5
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3783,7 +3880,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3787 "configure"
+#line 3884 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3794,7 +3891,7 @@
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:3798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3810,7 +3907,7 @@
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:3814: checking for initscr in -lgpm" >&5
+echo "configure:3911: checking for initscr in -lgpm" >&5
 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3818,7 +3915,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3822 "configure"
+#line 3919 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3829,7 +3926,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:3833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3861,7 +3958,7 @@
 	# version of ncurses (but it should do no harm, since it's static).
 	if test "$cf_nculib_root" = ncurses ; then
 		echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:3865: checking for tgoto in -lmytinfo" >&5
+echo "configure:3962: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3869,7 +3966,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3873 "configure"
+#line 3970 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -3880,7 +3977,7 @@
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:3884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3928,7 +4025,7 @@
       if test "$cf_have_libdir" = no ; then
         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
 
-echo "${as_me-configure}:3932: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me-configure}:4029: testing adding $cf_add_libdir to library-path ..." 1>&5
 
 
         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
@@ -3943,12 +4040,12 @@
 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
 	cf_libdir=""
 	echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:3947: checking for initscr" >&5
+echo "configure:4044: checking for initscr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3952 "configure"
+#line 4049 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -3971,7 +4068,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -3991,17 +4088,17 @@
 
 		cf_save_LIBS="$LIBS"
 		echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:3995: checking for initscr in -l$cf_nculib_root" >&5
+echo "configure:4092: checking for initscr in -l$cf_nculib_root" >&5
 		LIBS="-l$cf_nculib_root $LIBS"
 		cat > conftest.$ac_ext <<EOF
-#line 3998 "configure"
+#line 4095 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:4005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -4011,7 +4108,33 @@
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   echo "$ac_t""no" 1>&6
-			cf_search=""
+			
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/$cf_nculib_root &&       cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
+	test -d $cf_library_path/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
+	test -d $cf_library_path/$cf_nculib_root/lib &&       cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
+	test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
+}
+
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+cf_search=""
 
 
 test "/usr" != "$prefix" && \
@@ -4074,20 +4197,23 @@
 }
 
 
+
+cf_search="$cf_library_path_list $cf_search"
+
 			for cf_libdir in $cf_search
 			do
 				echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:4081: checking for -l$cf_nculib_root in $cf_libdir" >&5
+echo "configure:4207: checking for -l$cf_nculib_root in $cf_libdir" >&5
 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
 				cat > conftest.$ac_ext <<EOF
-#line 4084 "configure"
+#line 4210 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:4091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -4118,7 +4244,7 @@
 
 if test -n "$cf_ncurses_LIBS" ; then
 	echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:4122: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+echo "configure:4248: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
 	cf_ncurses_SAVE="$LIBS"
 	for p in $cf_ncurses_LIBS ; do
 		q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
@@ -4127,14 +4253,14 @@
 		fi
 	done
 	cat > conftest.$ac_ext <<EOF
-#line 4131 "configure"
+#line 4257 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:4138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -4155,19 +4281,22 @@
 EOF
 
 
+
+fi
+
 	;;
 ncursesw)
 	cf_cv_libtype=w
 	
 echo $ac_n "checking for multibyte character support""... $ac_c" 1>&6
-echo "configure:4164: checking for multibyte character support" >&5
+echo "configure:4293: checking for multibyte character support" >&5
 if eval "test \"`echo '$''{'cf_cv_utf8_lib'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	cf_save_LIBS="$LIBS"
 	cat > conftest.$ac_ext <<EOF
-#line 4171 "configure"
+#line 4300 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -4175,16 +4304,26 @@
 putwc(0,0);
 ; return 0; }
 EOF
-if { (eval echo configure:4179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_utf8_lib=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  LIBS="-lutf8 $LIBS"
-	 cat > conftest.$ac_ext <<EOF
-#line 4188 "configure"
+  
+
+# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
+# will be set on completion of the AC_TRY_LINK below.
+cf_cv_header_path_utf8=
+cf_cv_library_path_utf8=
+
+
+echo "${as_me-configure}:4323: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5
+
+
+cat > conftest.$ac_ext <<EOF
+#line 4327 "configure"
 #include "confdefs.h"
 
 #include <libutf8.h>
@@ -4192,17 +4331,341 @@
 putwc(0,0);
 ; return 0; }
 EOF
-if { (eval echo configure:4196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
-  cf_cv_utf8_lib=add-on
+  cf_cv_find_linkage_utf8=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_utf8_lib=no
+  
+    cf_cv_find_linkage_utf8=no
+
+    test -n "$verbose" && echo "	find linkage for utf8 library" 1>&6
+
+echo "${as_me-configure}:4347: testing find linkage for utf8 library ..." 1>&5
+
+
+    
+echo "${as_me-configure}:4351: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5
+
+
+    cf_save_CPPFLAGS="$CPPFLAGS"
+    cf_test_CPPFLAGS="$CPPFLAGS"
+
+    
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/utf8 &&       cf_search="$cf_search $cf_header_path/include/utf8"
+	test -d $cf_header_path/include/utf8/include &&    cf_search="$cf_search $cf_header_path/include/utf8/include"
+	test -d $cf_header_path/utf8/include &&       cf_search="$cf_search $cf_header_path/utf8/include"
+	test -d $cf_header_path/utf8/include/utf8 &&    cf_search="$cf_search $cf_header_path/utf8/include/utf8"
+}
+
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+cf_search=""
+
+
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr"
+	test -d /usr/include &&          cf_search="$cf_search /usr/include"
+	test -d /usr/include/utf8 &&       cf_search="$cf_search /usr/include/utf8"
+	test -d /usr/include/utf8/include &&    cf_search="$cf_search /usr/include/utf8/include"
+	test -d /usr/utf8/include &&       cf_search="$cf_search /usr/utf8/include"
+	test -d /usr/utf8/include/utf8 &&    cf_search="$cf_search /usr/utf8/include/utf8"
+}
+
+
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $prefix"
+	test -d $prefix/include &&          cf_search="$cf_search $prefix/include"
+	test -d $prefix/include/utf8 &&       cf_search="$cf_search $prefix/include/utf8"
+	test -d $prefix/include/utf8/include &&    cf_search="$cf_search $prefix/include/utf8/include"
+	test -d $prefix/utf8/include &&       cf_search="$cf_search $prefix/utf8/include"
+	test -d $prefix/utf8/include/utf8 &&    cf_search="$cf_search $prefix/utf8/include/utf8"
+}
+
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr/local"
+	test -d /usr/local/include &&          cf_search="$cf_search /usr/local/include"
+	test -d /usr/local/include/utf8 &&       cf_search="$cf_search /usr/local/include/utf8"
+	test -d /usr/local/include/utf8/include &&    cf_search="$cf_search /usr/local/include/utf8/include"
+	test -d /usr/local/utf8/include &&       cf_search="$cf_search /usr/local/utf8/include"
+	test -d /usr/local/utf8/include/utf8 &&    cf_search="$cf_search /usr/local/utf8/include/utf8"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under /opt"
+	test -d /opt/include &&          cf_search="$cf_search /opt/include"
+	test -d /opt/include/utf8 &&       cf_search="$cf_search /opt/include/utf8"
+	test -d /opt/include/utf8/include &&    cf_search="$cf_search /opt/include/utf8/include"
+	test -d /opt/utf8/include &&       cf_search="$cf_search /opt/utf8/include"
+	test -d /opt/utf8/include/utf8 &&    cf_search="$cf_search /opt/utf8/include/utf8"
+}
+
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for include-directories under $HOME"
+	test -d $HOME/include &&          cf_search="$cf_search $HOME/include"
+	test -d $HOME/include/utf8 &&       cf_search="$cf_search $HOME/include/utf8"
+	test -d $HOME/include/utf8/include &&    cf_search="$cf_search $HOME/include/utf8/include"
+	test -d $HOME/utf8/include &&       cf_search="$cf_search $HOME/utf8/include"
+	test -d $HOME/utf8/include/utf8 &&    cf_search="$cf_search $HOME/utf8/include/utf8"
+}
+
+
+
+test "$includedir" != NONE && \
+test "$includedir" != "/usr/include" && \
+test -d "$includedir" && {
+	test -d $includedir &&    cf_search="$cf_search $includedir"
+	test -d $includedir/utf8 && cf_search="$cf_search $includedir/utf8"
+}
+
+test "$oldincludedir" != NONE && \
+test "$oldincludedir" != "/usr/include" && \
+test -d "$oldincludedir" && {
+	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
+	test -d $oldincludedir/utf8 && cf_search="$cf_search $oldincludedir/utf8"
+}
+
+cf_search="$cf_header_path_list $cf_search"
+
+    for cf_cv_header_path_utf8 in $cf_search
+    do
+      if test -d $cf_cv_header_path_utf8 ; then
+        test -n "$verbose" && echo "	... testing $cf_cv_header_path_utf8" 1>&6
+
+echo "${as_me-configure}:4468: testing ... testing $cf_cv_header_path_utf8 ..." 1>&5
+
+
+        CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8"
+        cat > conftest.$ac_ext <<EOF
+#line 4473 "configure"
+#include "confdefs.h"
+
+#include <libutf8.h>
+int main() {
+putwc(0,0);
+; return 0; }
+EOF
+if { (eval echo configure:4481: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  
+            test -n "$verbose" && echo "	... found utf8 headers in $cf_cv_header_path_utf8" 1>&6
+
+echo "${as_me-configure}:4486: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5
+
+
+            cf_cv_find_linkage_utf8=maybe
+            cf_test_CPPFLAGS="$CPPFLAGS"
+            break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  
+            CPPFLAGS="$cf_save_CPPFLAGS"
+            
 fi
 rm -f conftest*
-	LIBS="$cf_save_LIBS"
+      fi
+    done
+
+    if test "$cf_cv_find_linkage_utf8" = maybe ; then
+
+      
+echo "${as_me-configure}:4507: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5
+
+
+      cf_save_LIBS="$LIBS"
+      cf_save_LDFLAGS="$LDFLAGS"
+
+      
+
+      if test "$cf_cv_find_linkage_utf8" != yes ; then
+        
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/utf8 &&       cf_search="$cf_search $cf_library_path/lib/utf8"
+	test -d $cf_library_path/lib/utf8/lib &&    cf_search="$cf_search $cf_library_path/lib/utf8/lib"
+	test -d $cf_library_path/utf8/lib &&       cf_search="$cf_search $cf_library_path/utf8/lib"
+	test -d $cf_library_path/utf8/lib/utf8 &&    cf_search="$cf_search $cf_library_path/utf8/lib/utf8"
+}
+
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+cf_search=""
+
+
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr"
+	test -d /usr/lib &&          cf_search="$cf_search /usr/lib"
+	test -d /usr/lib/utf8 &&       cf_search="$cf_search /usr/lib/utf8"
+	test -d /usr/lib/utf8/lib &&    cf_search="$cf_search /usr/lib/utf8/lib"
+	test -d /usr/utf8/lib &&       cf_search="$cf_search /usr/utf8/lib"
+	test -d /usr/utf8/lib/utf8 &&    cf_search="$cf_search /usr/utf8/lib/utf8"
+}
+
+
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $prefix"
+	test -d $prefix/lib &&          cf_search="$cf_search $prefix/lib"
+	test -d $prefix/lib/utf8 &&       cf_search="$cf_search $prefix/lib/utf8"
+	test -d $prefix/lib/utf8/lib &&    cf_search="$cf_search $prefix/lib/utf8/lib"
+	test -d $prefix/utf8/lib &&       cf_search="$cf_search $prefix/utf8/lib"
+	test -d $prefix/utf8/lib/utf8 &&    cf_search="$cf_search $prefix/utf8/lib/utf8"
+}
+
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr/local"
+	test -d /usr/local/lib &&          cf_search="$cf_search /usr/local/lib"
+	test -d /usr/local/lib/utf8 &&       cf_search="$cf_search /usr/local/lib/utf8"
+	test -d /usr/local/lib/utf8/lib &&    cf_search="$cf_search /usr/local/lib/utf8/lib"
+	test -d /usr/local/utf8/lib &&       cf_search="$cf_search /usr/local/utf8/lib"
+	test -d /usr/local/utf8/lib/utf8 &&    cf_search="$cf_search /usr/local/utf8/lib/utf8"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /opt"
+	test -d /opt/lib &&          cf_search="$cf_search /opt/lib"
+	test -d /opt/lib/utf8 &&       cf_search="$cf_search /opt/lib/utf8"
+	test -d /opt/lib/utf8/lib &&    cf_search="$cf_search /opt/lib/utf8/lib"
+	test -d /opt/utf8/lib &&       cf_search="$cf_search /opt/utf8/lib"
+	test -d /opt/utf8/lib/utf8 &&    cf_search="$cf_search /opt/utf8/lib/utf8"
+}
+
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test -d $prefix) && {
+	test -n "$verbose" && echo "	... testing for lib-directories under $HOME"
+	test -d $HOME/lib &&          cf_search="$cf_search $HOME/lib"
+	test -d $HOME/lib/utf8 &&       cf_search="$cf_search $HOME/lib/utf8"
+	test -d $HOME/lib/utf8/lib &&    cf_search="$cf_search $HOME/lib/utf8/lib"
+	test -d $HOME/utf8/lib &&       cf_search="$cf_search $HOME/utf8/lib"
+	test -d $HOME/utf8/lib/utf8 &&    cf_search="$cf_search $HOME/utf8/lib/utf8"
+}
+
+
+
+cf_search="$cf_library_path_list $cf_search"
+
+        for cf_cv_library_path_utf8 in $cf_search
+        do
+          if test -d $cf_cv_library_path_utf8 ; then
+            test -n "$verbose" && echo "	... testing $cf_cv_library_path_utf8" 1>&6
+
+echo "${as_me-configure}:4613: testing ... testing $cf_cv_library_path_utf8 ..." 1>&5
+
+
+            CPPFLAGS="$cf_test_CPPFLAGS"
+            LIBS="-lutf8  $cf_save_LIBS"
+            LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_utf8"
+            cat > conftest.$ac_ext <<EOF
+#line 4620 "configure"
+#include "confdefs.h"
+
+#include <libutf8.h>
+int main() {
+putwc(0,0);
+; return 0; }
+EOF
+if { (eval echo configure:4628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  
+                test -n "$verbose" && echo "	... found utf8 library in $cf_cv_library_path_utf8" 1>&6
+
+echo "${as_me-configure}:4633: testing ... found utf8 library in $cf_cv_library_path_utf8 ..." 1>&5
+
+
+                cf_cv_find_linkage_utf8=yes
+                cf_cv_library_file_utf8="-lutf8"
+                break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  
+                CPPFLAGS="$cf_save_CPPFLAGS"
+                LIBS="$cf_save_LIBS"
+                LDFLAGS="$cf_save_LDFLAGS"
+                
+fi
+rm -f conftest*
+          fi
+        done
+        LIBS="$cf_save_LIBS"
+        CPPFLAGS="$cf_save_CPPFLAGS"
+        LDFLAGS="$cf_save_LDFLAGS"
+      fi
+
+    else
+      cf_cv_find_linkage_utf8=no
+    fi
+    
+fi
+rm -f conftest*
+
+if test "$cf_cv_find_linkage_utf8" = yes ; then
+cf_cv_utf8_lib=add-on
+else
+cf_cv_utf8_lib=no
+fi
+
 
 fi
 rm -f conftest*
@@ -4217,10 +4680,174 @@
 #define HAVE_LIBUTF8_H 1
 EOF
 
+	
+if test -n "$cf_cv_header_path_utf8" ; then
+  for cf_add_incdir in $cf_cv_header_path_utf8
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 4709 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:4716: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me-configure}:4733: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+	
+if test -n "$cf_cv_library_path_utf8" ; then
+  for cf_add_libdir in $cf_cv_library_path_utf8
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me-configure}:4769: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
 	LIBS="-lutf8 $LIBS"
 fi
 
 	
+cf_ncuconfig_root=ncursesw
+
+echo "Looking for ${cf_ncuconfig_root}-config"
+for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:4790: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_NCURSES_CONFIG'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$NCURSES_CONFIG" in
+  /*)
+  ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+NCURSES_CONFIG="$ac_cv_path_NCURSES_CONFIG"
+if test -n "$NCURSES_CONFIG"; then
+  echo "$ac_t""$NCURSES_CONFIG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$NCURSES_CONFIG" && break
+done
+test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
+
+
+if test "$NCURSES_CONFIG" != none ; then
+
+cf_cv_ncurses_header=curses.h
+
+CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+LIBS="`$NCURSES_CONFIG --libs` $LIBS"
+
+cat >> confdefs.h <<\EOF
+#define NCURSES 1
+EOF
+
+
+
+cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+cat >> confdefs.h <<EOF
+#define $cf_nculib_ROOT 1
+EOF
+
+
+cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
+
+else
+
+
 
 cf_ncuhdr_root=ncursesw
 
@@ -4245,20 +4872,20 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 			  cat > conftest.$ac_ext <<EOF
-#line 4255 "configure"
+#line 4882 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:4262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4889: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -4275,14 +4902,14 @@
 		if test "$cf_have_incdir" = no ; then
 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-echo "${as_me-configure}:4279: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me-configure}:4906: testing adding $cf_add_incdir to include-path ..." 1>&5
 
 
-		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -4294,7 +4921,7 @@
 }
 
 echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:4298: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "configure:4925: checking for $cf_ncuhdr_root header in include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4305,7 +4932,7 @@
 	do
 		
 	cat > conftest.$ac_ext <<EOF
-#line 4309 "configure"
+#line 4936 "configure"
 #include "confdefs.h"
 
 
@@ -4334,7 +4961,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:4338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4965: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h=$cf_header
 	
@@ -4360,13 +4987,39 @@
 else
 
 echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:4364: checking for $cf_ncuhdr_root include-path" >&5
+echo "configure:4991: checking for $cf_ncuhdr_root include-path" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 	test -n "$verbose" && echo
-	cf_search=""
+	
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/$cf_ncuhdr_root &&       cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
+	test -d $cf_header_path/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
+	test -d $cf_header_path/$cf_ncuhdr_root/include &&       cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
+	test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+cf_search=""
 
 
 test "/usr" != "$prefix" && \
@@ -4429,6 +5082,7 @@
 }
 
 
+
 test "$includedir" != NONE && \
 test "$includedir" != "/usr/include" && \
 test -d "$includedir" && {
@@ -4443,6 +5097,7 @@
 	test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
 }
 
+cf_search="$cf_header_path_list $cf_search"
 
 	test -n "$verbose" && echo search path $cf_search
 	cf_save2_CPPFLAGS="$CPPFLAGS"
@@ -4467,20 +5122,20 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 			  cat > conftest.$ac_ext <<EOF
-#line 4477 "configure"
+#line 5132 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:4484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -4497,14 +5152,14 @@
 		if test "$cf_have_incdir" = no ; then
 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-echo "${as_me-configure}:4501: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me-configure}:5156: testing adding $cf_add_incdir to include-path ..." 1>&5
 
 
-		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -4519,7 +5174,7 @@
 		do
 			
 	cat > conftest.$ac_ext <<EOF
-#line 4523 "configure"
+#line 5178 "configure"
 #include "confdefs.h"
 
 
@@ -4540,7 +5195,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:4544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5199: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_ncurses_h2=$cf_header
 	
@@ -4592,20 +5247,20 @@
 		fi
 
 		if test "$cf_have_incdir" = no ; then
-          if test "$cf_add_incdir" = /usr/local/include ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
 			  cf_save_CPPFLAGS=$CPPFLAGS
 			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 			  cat > conftest.$ac_ext <<EOF
-#line 4602 "configure"
+#line 5257 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:4609: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -4622,14 +5277,14 @@
 		if test "$cf_have_incdir" = no ; then
 		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-echo "${as_me-configure}:4626: testing adding $cf_add_incdir to include-path ..." 1>&5
+echo "${as_me-configure}:5281: testing adding $cf_add_incdir to include-path ..." 1>&5
 
 
-		  CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
-          cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-          test "$cf_top_incdir" = "$cf_add_incdir" && break
-          cf_add_incdir="$cf_top_incdir"
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
 		  break
 		fi
@@ -4670,7 +5325,7 @@
 
 
 echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
-echo "configure:4674: checking for terminfo header" >&5
+echo "configure:5329: checking for terminfo header" >&5
 if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4687,7 +5342,7 @@
 for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
 do
 cat > conftest.$ac_ext <<EOF
-#line 4691 "configure"
+#line 5346 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -4697,7 +5352,7 @@
 int x = auto_left_margin
 ; return 0; }
 EOF
-if { (eval echo configure:4701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5356: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
 	cf_cv_term_header="$cf_test"
@@ -4752,7 +5407,7 @@
 
 
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:4756: checking for ncurses version" >&5
+echo "configure:5411: checking for ncurses version" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -4778,7 +5433,7 @@
 #endif
 EOF
 	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
-	{ (eval echo configure:4782: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+	{ (eval echo configure:5437: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
 	if test -f conftest.out ; then
 		cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
 		test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
@@ -4787,7 +5442,7 @@
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 4791 "configure"
+#line 5446 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -4811,7 +5466,7 @@
 	${cf_cv_main_return-return}(0);
 }
 EOF
-if { (eval echo configure:4815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:5470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   
 	cf_cv_ncurses_version=`cat $cf_tempfile`
@@ -4833,7 +5488,7 @@
 
 
 
-	
+
 
 cf_nculib_root=ncursesw
 	# This works, except for the special case where we find gpm, but
@@ -4842,7 +5497,7 @@
 cf_ncurses_LIBS=""
 cf_ncurses_SAVE="$LIBS"
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:4846: checking for Gpm_Open in -lgpm" >&5
+echo "configure:5501: checking for Gpm_Open in -lgpm" >&5
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4850,7 +5505,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4854 "configure"
+#line 5509 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4861,7 +5516,7 @@
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:4865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4877,7 +5532,7 @@
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:4881: checking for initscr in -lgpm" >&5
+echo "configure:5536: checking for initscr in -lgpm" >&5
 ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4885,7 +5540,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lgpm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4889 "configure"
+#line 5544 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4896,7 +5551,7 @@
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:4900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4928,7 +5583,7 @@
 	# version of ncurses (but it should do no harm, since it's static).
 	if test "$cf_nculib_root" = ncurses ; then
 		echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:4932: checking for tgoto in -lmytinfo" >&5
+echo "configure:5587: checking for tgoto in -lmytinfo" >&5
 ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -4936,7 +5591,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4940 "configure"
+#line 5595 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4947,7 +5602,7 @@
 tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:4951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4995,7 +5650,7 @@
       if test "$cf_have_libdir" = no ; then
         test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
 
-echo "${as_me-configure}:4999: testing adding $cf_add_libdir to library-path ..." 1>&5
+echo "${as_me-configure}:5654: testing adding $cf_add_libdir to library-path ..." 1>&5
 
 
         LDFLAGS="-L$cf_add_libdir $LDFLAGS"
@@ -5010,12 +5665,12 @@
 	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
 	cf_libdir=""
 	echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:5014: checking for initscr" >&5
+echo "configure:5669: checking for initscr" >&5
 if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5019 "configure"
+#line 5674 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char initscr(); below.  */
@@ -5038,7 +5693,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_initscr=yes"
 else
@@ -5058,17 +5713,17 @@
 
 		cf_save_LIBS="$LIBS"
 		echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:5062: checking for initscr in -l$cf_nculib_root" >&5
+echo "configure:5717: checking for initscr in -l$cf_nculib_root" >&5
 		LIBS="-l$cf_nculib_root $LIBS"
 		cat > conftest.$ac_ext <<EOF
-#line 5065 "configure"
+#line 5720 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:5072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -5078,7 +5733,33 @@
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   echo "$ac_t""no" 1>&6
-			cf_search=""
+			
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/$cf_nculib_root &&       cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
+	test -d $cf_library_path/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
+	test -d $cf_library_path/$cf_nculib_root/lib &&       cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
+	test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
+}
+
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+cf_search=""
 
 
 test "/usr" != "$prefix" && \
@@ -5141,20 +5822,23 @@
 }
 
 
+
+cf_search="$cf_library_path_list $cf_search"
+
 			for cf_libdir in $cf_search
 			do
 				echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:5148: checking for -l$cf_nculib_root in $cf_libdir" >&5
+echo "configure:5832: checking for -l$cf_nculib_root in $cf_libdir" >&5
 				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
 				cat > conftest.$ac_ext <<EOF
-#line 5151 "configure"
+#line 5835 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:5158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
@@ -5185,7 +5869,7 @@
 
 if test -n "$cf_ncurses_LIBS" ; then
 	echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:5189: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+echo "configure:5873: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
 	cf_ncurses_SAVE="$LIBS"
 	for p in $cf_ncurses_LIBS ; do
 		q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
@@ -5194,14 +5878,14 @@
 		fi
 	done
 	cat > conftest.$ac_ext <<EOF
-#line 5198 "configure"
+#line 5882 "configure"
 #include "confdefs.h"
 #include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:5205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -5222,6 +5906,9 @@
 EOF
 
 
+
+fi
+
 	;;
 pdcurses) #(vi
 	if test "$no_x" = yes; then
@@ -5244,17 +5931,17 @@
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:5248: checking whether -R must be followed by a space" >&5
+echo "configure:5935: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 5251 "configure"
+#line 5938 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5945: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -5270,14 +5957,14 @@
       else
 	LIBS="$ac_xsave_LIBS -R $x_libraries"
 	cat > conftest.$ac_ext <<EOF
-#line 5274 "configure"
+#line 5961 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:5281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -5309,7 +5996,7 @@
     # libraries were built with DECnet support.  And karl@cs.umb.edu says
     # the Alpha needs dnet_stub (dnet does not exist).
     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:5313: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:6000: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5317,7 +6004,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5321 "configure"
+#line 6008 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5328,7 +6015,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5350,7 +6037,7 @@
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:5354: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:6041: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5358,7 +6045,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5362 "configure"
+#line 6049 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5369,7 +6056,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5398,12 +6085,12 @@
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:5402: checking for gethostbyname" >&5
+echo "configure:6089: checking for gethostbyname" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5407 "configure"
+#line 6094 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -5426,7 +6113,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -5447,7 +6134,7 @@
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:5451: checking for gethostbyname in -lnsl" >&5
+echo "configure:6138: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5455,7 +6142,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5459 "configure"
+#line 6146 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5466,7 +6153,7 @@
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:5470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5496,12 +6183,12 @@
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:5500: checking for connect" >&5
+echo "configure:6187: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5505 "configure"
+#line 6192 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -5524,7 +6211,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -5545,7 +6232,7 @@
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:5549: checking for connect in -lsocket" >&5
+echo "configure:6236: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5553,7 +6240,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5557 "configure"
+#line 6244 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5564,7 +6251,7 @@
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:5568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5588,12 +6275,12 @@
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:5592: checking for remove" >&5
+echo "configure:6279: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5597 "configure"
+#line 6284 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -5616,7 +6303,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -5637,7 +6324,7 @@
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:5641: checking for remove in -lposix" >&5
+echo "configure:6328: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5645,7 +6332,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5649 "configure"
+#line 6336 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5656,7 +6343,7 @@
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:5660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5680,12 +6367,12 @@
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:5684: checking for shmat" >&5
+echo "configure:6371: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5689 "configure"
+#line 6376 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -5708,7 +6395,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -5729,7 +6416,7 @@
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:5733: checking for shmat in -lipc" >&5
+echo "configure:6420: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5737,7 +6424,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5741 "configure"
+#line 6428 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5748,7 +6435,7 @@
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:5752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5781,7 +6468,7 @@
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:5785: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:6472: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5789,7 +6476,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5793 "configure"
+#line 6480 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5800,7 +6487,7 @@
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:5804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5836,7 +6523,7 @@
 
 test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
 
-echo "${as_me-configure}:5840: testing checking additions to CFLAGS ..." 1>&5
+echo "${as_me-configure}:6527: testing checking additions to CFLAGS ..." 1>&5
 
 
 cf_check_cflags="$CFLAGS"
@@ -5898,7 +6585,7 @@
 if test -n "$cf_new_cflags" ; then
 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
 
-echo "${as_me-configure}:5902: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+echo "${as_me-configure}:6589: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
 
 
 	CFLAGS="$CFLAGS $cf_new_cflags"
@@ -5907,16 +6594,16 @@
 if test -n "$cf_new_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
 
-echo "${as_me-configure}:5911: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+echo "${as_me-configure}:6598: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
 
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
 
-echo "${as_me-configure}:5920: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+echo "${as_me-configure}:6607: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
 
 
 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
@@ -5927,14 +6614,14 @@
 
 if test "$cf_check_cflags" != "$CFLAGS" ; then
 cat > conftest.$ac_ext <<EOF
-#line 5931 "configure"
+#line 6618 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello world");
 ; return 0; }
 EOF
-if { (eval echo configure:5938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -5942,13 +6629,13 @@
   rm -rf conftest*
   test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
 
-echo "${as_me-configure}:5946: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
+echo "${as_me-configure}:6633: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
 
 
 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
 
-echo "${as_me-configure}:5952: testing but keeping change to \$CPPFLAGS ..." 1>&5
+echo "${as_me-configure}:6639: testing but keeping change to \$CPPFLAGS ..." 1>&5
 
 
 	 fi
@@ -5959,12 +6646,12 @@
 
 
 echo $ac_n "checking for XOpenDisplay""... $ac_c" 1>&6
-echo "configure:5963: checking for XOpenDisplay" >&5
+echo "configure:6650: checking for XOpenDisplay" >&5
 if eval "test \"`echo '$''{'ac_cv_func_XOpenDisplay'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5968 "configure"
+#line 6655 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char XOpenDisplay(); below.  */
@@ -5987,7 +6674,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_XOpenDisplay=yes"
 else
@@ -6006,7 +6693,7 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:6010: checking for XOpenDisplay in -lX11" >&5
+echo "configure:6697: checking for XOpenDisplay in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6014,7 +6701,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6018 "configure"
+#line 6705 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6025,7 +6712,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:6029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6049,12 +6736,12 @@
 
 
 echo $ac_n "checking for XtAppInitialize""... $ac_c" 1>&6
-echo "configure:6053: checking for XtAppInitialize" >&5
+echo "configure:6740: checking for XtAppInitialize" >&5
 if eval "test \"`echo '$''{'ac_cv_func_XtAppInitialize'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6058 "configure"
+#line 6745 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char XtAppInitialize(); below.  */
@@ -6077,7 +6764,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_XtAppInitialize=yes"
 else
@@ -6096,7 +6783,7 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
-echo "configure:6100: checking for XtAppInitialize in -lXt" >&5
+echo "configure:6787: checking for XtAppInitialize in -lXt" >&5
 ac_lib_var=`echo Xt'_'XtAppInitialize | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6104,7 +6791,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6108 "configure"
+#line 6795 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6115,7 +6802,7 @@
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:6119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6153,7 +6840,7 @@
 cf_x_athena=${cf_x_athena-Xaw}
 
 echo $ac_n "checking if you want to link with Xaw 3d library""... $ac_c" 1>&6
-echo "configure:6157: checking if you want to link with Xaw 3d library" >&5
+echo "configure:6844: checking if you want to link with Xaw 3d library" >&5
 withval=
 
 # Check whether --with-Xaw3d or --without-Xaw3d was given.
@@ -6170,7 +6857,7 @@
 fi
 
 echo $ac_n "checking if you want to link with neXT Athena library""... $ac_c" 1>&6
-echo "configure:6174: checking if you want to link with neXT Athena library" >&5
+echo "configure:6861: checking if you want to link with neXT Athena library" >&5
 withval=
 
 # Check whether --with-neXtaw or --without-neXtaw was given.
@@ -6187,7 +6874,7 @@
 fi
 
 echo $ac_n "checking if you want to link with Athena-Plus library""... $ac_c" 1>&6
-echo "configure:6191: checking if you want to link with Athena-Plus library" >&5
+echo "configure:6878: checking if you want to link with Athena-Plus library" >&5
 withval=
 
 # Check whether --with-XawPlus or --without-XawPlus was given.
@@ -6204,7 +6891,7 @@
 fi
 
 echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
-echo "configure:6208: checking for XextCreateExtension in -lXext" >&5
+echo "configure:6895: checking for XextCreateExtension in -lXext" >&5
 ac_lib_var=`echo Xext'_'XextCreateExtension | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6212,7 +6899,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lXext  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6216 "configure"
+#line 6903 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6223,7 +6910,7 @@
 XextCreateExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:6227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6260,15 +6947,15 @@
 		cf_save="$CPPFLAGS"
 		cf_test=X11/$cf_x_athena_root/SimpleMenu.h
 		if test $cf_path != default ; then
-			CPPFLAGS="-I$cf_path/include $cf_save"
+			CPPFLAGS="$cf_save -I$cf_path/include"
 			echo $ac_n "checking for $cf_test in $cf_path""... $ac_c" 1>&6
-echo "configure:6266: checking for $cf_test in $cf_path" >&5
+echo "configure:6953: checking for $cf_test in $cf_path" >&5
 		else
 			echo $ac_n "checking for $cf_test""... $ac_c" 1>&6
-echo "configure:6269: checking for $cf_test" >&5
+echo "configure:6956: checking for $cf_test" >&5
 		fi
 		cat > conftest.$ac_ext <<EOF
-#line 6272 "configure"
+#line 6959 "configure"
 #include "confdefs.h"
 
 #include <X11/Intrinsic.h>
@@ -6277,7 +6964,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6281: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6968: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -6324,21 +7011,21 @@
 			if test $cf_path != default ; then
 				LIBS="-L$cf_path/lib $cf_lib $LIBS"
 				echo $ac_n "checking for $cf_lib in $cf_path""... $ac_c" 1>&6
-echo "configure:6328: checking for $cf_lib in $cf_path" >&5
+echo "configure:7015: checking for $cf_lib in $cf_path" >&5
 			else
 				LIBS="$cf_lib $LIBS"
 				echo $ac_n "checking for $cf_test in $cf_lib""... $ac_c" 1>&6
-echo "configure:6332: checking for $cf_test in $cf_lib" >&5
+echo "configure:7019: checking for $cf_test in $cf_lib" >&5
 			fi
 			cat > conftest.$ac_ext <<EOF
-#line 6335 "configure"
+#line 7022 "configure"
 #include "confdefs.h"
 
 int main() {
 $cf_test()
 ; return 0; }
 EOF
-if { (eval echo configure:6342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -6379,7 +7066,7 @@
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6383: checking for $ac_word" >&5
+echo "configure:7070: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_XCURSES_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6418,7 +7105,7 @@
 
 if test "$XCURSES_CONFIG" != none ; then
 
-CPPFLAGS="`$XCURSES_CONFIG --cflags` $CPPFLAGS"
+CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
 LIBS="`$XCURSES_CONFIG --libs` $LIBS"
 
 cf_cv_lib_XCurses=yes
@@ -6429,7 +7116,7 @@
 
 test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
 
-echo "${as_me-configure}:6433: testing checking additions to CFLAGS ..." 1>&5
+echo "${as_me-configure}:7120: testing checking additions to CFLAGS ..." 1>&5
 
 
 cf_check_cflags="$CFLAGS"
@@ -6491,7 +7178,7 @@
 if test -n "$cf_new_cflags" ; then
 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
 
-echo "${as_me-configure}:6495: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+echo "${as_me-configure}:7182: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
 
 
 	CFLAGS="$CFLAGS $cf_new_cflags"
@@ -6500,16 +7187,16 @@
 if test -n "$cf_new_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
 
-echo "${as_me-configure}:6504: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+echo "${as_me-configure}:7191: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
 
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
 
-echo "${as_me-configure}:6513: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+echo "${as_me-configure}:7200: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
 
 
 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
@@ -6520,14 +7207,14 @@
 
 if test "$cf_check_cflags" != "$CFLAGS" ; then
 cat > conftest.$ac_ext <<EOF
-#line 6524 "configure"
+#line 7211 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello world");
 ; return 0; }
 EOF
-if { (eval echo configure:6531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -6535,13 +7222,13 @@
   rm -rf conftest*
   test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
 
-echo "${as_me-configure}:6539: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
+echo "${as_me-configure}:7226: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
 
 
 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
 
-echo "${as_me-configure}:6545: testing but keeping change to \$CPPFLAGS ..." 1>&5
+echo "${as_me-configure}:7232: testing but keeping change to \$CPPFLAGS ..." 1>&5
 
 
 	 fi
@@ -6551,7 +7238,7 @@
 fi
 
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:6555: checking for XOpenDisplay in -lX11" >&5
+echo "configure:7242: checking for XOpenDisplay in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6559,7 +7246,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6563 "configure"
+#line 7250 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6570,7 +7257,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:6574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6591,14 +7278,14 @@
 fi
 
 echo $ac_n "checking for XCurses library""... $ac_c" 1>&6
-echo "configure:6595: checking for XCurses library" >&5
+echo "configure:7282: checking for XCurses library" >&5
 if eval "test \"`echo '$''{'cf_cv_lib_XCurses'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 LIBS="-lXCurses $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6602 "configure"
+#line 7289 "configure"
 #include "confdefs.h"
 
 #include <xcurses.h>
@@ -6608,7 +7295,7 @@
 XCursesExit();
 ; return 0; }
 EOF
-if { (eval echo configure:6612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_lib_XCurses=yes
 else
@@ -6653,7 +7340,7 @@
 *)
 	# look for curses-related libraries
 	echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:6657: checking for new_panel in -lpanel$cf_cv_libtype" >&5
+echo "configure:7344: checking for new_panel in -lpanel$cf_cv_libtype" >&5
 ac_lib_var=`echo panel$cf_cv_libtype'_'new_panel | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6661,7 +7348,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lpanel$cf_cv_libtype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6665 "configure"
+#line 7352 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6672,7 +7359,7 @@
 new_panel()
 ; return 0; }
 EOF
-if { (eval echo configure:6676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6700,7 +7387,7 @@
 fi
 
 	echo $ac_n "checking for menu_driver in -lmenu$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:6704: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
+echo "configure:7391: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
 ac_lib_var=`echo menu$cf_cv_libtype'_'menu_driver | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6708,7 +7395,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lmenu$cf_cv_libtype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6712 "configure"
+#line 7399 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6719,7 +7406,7 @@
 menu_driver()
 ; return 0; }
 EOF
-if { (eval echo configure:6723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6747,7 +7434,7 @@
 fi
 
 	echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:6751: checking for form_driver in -lform$cf_cv_libtype" >&5
+echo "configure:7438: checking for form_driver in -lform$cf_cv_libtype" >&5
 ac_lib_var=`echo form$cf_cv_libtype'_'form_driver | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6755,7 +7442,7 @@
   ac_save_LIBS="$LIBS"
 LIBS="-lform$cf_cv_libtype  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6759 "configure"
+#line 7446 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6766,7 +7453,7 @@
 form_driver()
 ; return 0; }
 EOF
-if { (eval echo configure:6770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6805,17 +7492,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6809: checking for $ac_hdr" >&5
+echo "configure:7496: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6814 "configure"
+#line 7501 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7506: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6845,12 +7532,12 @@
 esac
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:6849: checking return type of signal handlers" >&5
+echo "configure:7536: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6854 "configure"
+#line 7541 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -6867,7 +7554,7 @@
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:6871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7558: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -6887,12 +7574,12 @@
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:6891: checking for ANSI C header files" >&5
+echo "configure:7578: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6896 "configure"
+#line 7583 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -6900,7 +7587,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6904: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7591: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6917,7 +7604,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 6921 "configure"
+#line 7608 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -6935,7 +7622,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 6939 "configure"
+#line 7626 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -6956,7 +7643,7 @@
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 6960 "configure"
+#line 7647 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -6967,7 +7654,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:6971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -6991,12 +7678,12 @@
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:6995: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:7682: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7000 "configure"
+#line 7687 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -7005,7 +7692,7 @@
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:7009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7696: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -7038,17 +7725,17 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7042: checking for $ac_hdr" >&5
+echo "configure:7729: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7047 "configure"
+#line 7734 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7052: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7739: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7089,12 +7776,12 @@
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7093: checking for $ac_func" >&5
+echo "configure:7780: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7098 "configure"
+#line 7785 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7117,7 +7804,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7808: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7144,13 +7831,13 @@
 
 
 echo $ac_n "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6
-echo "configure:7148: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+echo "configure:7835: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
 if eval "test \"`echo '$''{'cf_cv_need_xopen_extension'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 7154 "configure"
+#line 7841 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -7162,7 +7849,7 @@
 	getbegyx(stdscr, y1, x1)
 ; return 0; }
 EOF
-if { (eval echo configure:7166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7853: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_need_xopen_extension=no
 else
@@ -7170,7 +7857,7 @@
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 7174 "configure"
+#line 7861 "configure"
 #include "confdefs.h"
 
 #define _XOPEN_SOURCE_EXTENDED
@@ -7183,7 +7870,7 @@
 	getbegyx(stdscr, y1, x1)
 ; return 0; }
 EOF
-if { (eval echo configure:7187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_need_xopen_extension=yes
 else
@@ -7202,7 +7889,7 @@
 
 
 echo $ac_n "checking for term.h""... $ac_c" 1>&6
-echo "configure:7206: checking for term.h" >&5
+echo "configure:7893: checking for term.h" >&5
 if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7215,7 +7902,7 @@
 	term.h
 do
 	cat > conftest.$ac_ext <<EOF
-#line 7219 "configure"
+#line 7906 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -7224,7 +7911,7 @@
 WINDOW *x
 ; return 0; }
 EOF
-if { (eval echo configure:7228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_term_header=$cf_header
 	 break
@@ -7301,9 +7988,9 @@
 cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
 	echo $ac_n "checking for ${cf_func}""... $ac_c" 1>&6
-echo "configure:7305: checking for ${cf_func}" >&5
+echo "configure:7992: checking for ${cf_func}" >&5
 	
-echo "${as_me-configure}:7307: testing ${cf_func} ..." 1>&5
+echo "${as_me-configure}:7994: testing ${cf_func} ..." 1>&5
 
 	if eval "test \"`echo '$''{'cf_cv_func_$cf_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7312,7 +7999,7 @@
 		eval cf_result='$ac_cv_func_'$cf_func
 		if test ".$cf_result" != ".no"; then
 			cat > conftest.$ac_ext <<EOF
-#line 7316 "configure"
+#line 8003 "configure"
 #include "confdefs.h"
 
 #ifdef HAVE_XCURSES
@@ -7341,7 +8028,7 @@
 			
 ; return 0; }
 EOF
-if { (eval echo configure:7345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -7369,13 +8056,13 @@
 
 
 echo $ac_n "checking for ncurses extended functions""... $ac_c" 1>&6
-echo "configure:7373: checking for ncurses extended functions" >&5
+echo "configure:8060: checking for ncurses extended functions" >&5
 if eval "test \"`echo '$''{'cf_cv_ncurses_ext_funcs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 7379 "configure"
+#line 8066 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -7395,7 +8082,7 @@
 	(void) wresize (0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:7399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_ncurses_ext_funcs=yes
 else
@@ -7415,13 +8102,13 @@
 
 
 echo $ac_n "checking for wide-character functions""... $ac_c" 1>&6
-echo "configure:7419: checking for wide-character functions" >&5
+echo "configure:8106: checking for wide-character functions" >&5
 if eval "test \"`echo '$''{'cf_cv_widechar_funcs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 7425 "configure"
+#line 8112 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -7433,7 +8120,7 @@
 	
 ; return 0; }
 EOF
-if { (eval echo configure:7437: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_widechar_funcs=yes
 else
@@ -7461,13 +8148,13 @@
 
 
 echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
-echo "configure:7465: checking if sys/time.h works with sys/select.h" >&5
+echo "configure:8152: checking if sys/time.h works with sys/select.h" >&5
 if eval "test \"`echo '$''{'cf_cv_sys_time_select'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cat > conftest.$ac_ext <<EOF
-#line 7471 "configure"
+#line 8158 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -7482,7 +8169,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8173: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_sys_time_select=yes
 else
@@ -7503,7 +8190,7 @@
 
 
 echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
-echo "configure:7507: checking for function curses_version" >&5
+echo "configure:8194: checking for function curses_version" >&5
 if eval "test \"`echo '$''{'cf_cv_func_curses_version'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7512,7 +8199,7 @@
   cf_cv_func_curses_version=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 7516 "configure"
+#line 8203 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -7524,7 +8211,7 @@
 }
 
 EOF
-if { (eval echo configure:7528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:8215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   cf_cv_func_curses_version=yes
 
@@ -7548,17 +8235,33 @@
 
 
 
+echo $ac_n "checking for ncurses wrap-prefix""... $ac_c" 1>&6
+echo "configure:8240: checking for ncurses wrap-prefix" >&5
+
+# Check whether --with-ncurses-wrap-prefix or --without-ncurses-wrap-prefix was given.
+if test "${with_ncurses_wrap_prefix+set}" = set; then
+  withval="$with_ncurses_wrap_prefix"
+  NCURSES_WRAP_PREFIX=$withval
+else
+  NCURSES_WRAP_PREFIX=_nc_
+fi
+
+echo "$ac_t""$NCURSES_WRAP_PREFIX" 1>&6
+
+
+
+
 echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6
-echo "configure:7553: checking for alternate character set array" >&5
+echo "configure:8256: checking for alternate character set array" >&5
 if eval "test \"`echo '$''{'cf_cv_curses_acs_map'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
 cf_cv_curses_acs_map=unknown
-for name in acs_map _acs_map __acs_map _nc_acs_map
+for name in acs_map _acs_map __acs_map ${NCURSES_WRAP_PREFIX}acs_map
 do
 cat > conftest.$ac_ext <<EOF
-#line 7562 "configure"
+#line 8265 "configure"
 #include "confdefs.h"
 
 #include <${cf_cv_ncurses_header-curses.h}>
@@ -7569,7 +8272,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_curses_acs_map=$name; break
 else
@@ -7590,7 +8293,7 @@
 
 
 echo $ac_n "checking for wide alternate character set array""... $ac_c" 1>&6
-echo "configure:7594: checking for wide alternate character set array" >&5
+echo "configure:8297: checking for wide alternate character set array" >&5
 if eval "test \"`echo '$''{'cf_cv_curses_wacs_map'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7599,7 +8302,7 @@
 	for name in wacs_map _wacs_map __wacs_map _nc_wacs
 	do
 	cat > conftest.$ac_ext <<EOF
-#line 7603 "configure"
+#line 8306 "configure"
 #include "confdefs.h"
 
 #ifndef _XOPEN_SOURCE_EXTENDED
@@ -7610,7 +8313,7 @@
 $name['k'] = *WACS_PLUS
 ; return 0; }
 EOF
-if { (eval echo configure:7614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cf_cv_curses_wacs_map=$name
 	 break
@@ -7626,9 +8329,9 @@
 
 
 echo $ac_n "checking for type attr_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:7630: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
+echo "configure:8333: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
 cat > conftest.$ac_ext <<EOF
-#line 7632 "configure"
+#line 8335 "configure"
 #include "confdefs.h"
 
 #ifndef _XOPEN_SOURCE_EXTENDED
@@ -7641,7 +8344,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7645: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -7669,9 +8372,9 @@
 
 
 echo $ac_n "checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:7673: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
+echo "configure:8376: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
 cat > conftest.$ac_ext <<EOF
-#line 7675 "configure"
+#line 8378 "configure"
 #include "confdefs.h"
 
 #ifndef _XOPEN_SOURCE_EXTENDED
@@ -7684,7 +8387,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8391: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -7891,11 +8594,13 @@
 s%@SHOW_CC@%$SHOW_CC%g
 s%@ECHO_CC@%$ECHO_CC%g
 s%@EXTRA_CFLAGS@%$EXTRA_CFLAGS%g
+s%@NCURSES_CONFIG@%$NCURSES_CONFIG%g
 s%@X_CFLAGS@%$X_CFLAGS%g
 s%@X_PRE_LIBS@%$X_PRE_LIBS%g
 s%@X_LIBS@%$X_LIBS%g
 s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
 s%@XCURSES_CONFIG@%$XCURSES_CONFIG%g
+s%@NCURSES_WRAP_PREFIX@%$NCURSES_WRAP_PREFIX%g
 
 CEOF
 EOF
diff -Naur ncurses-5.7.orig/test/configure.in ncurses-5.7/test/configure.in
--- ncurses-5.7.orig/test/configure.in	2008-09-06 15:10:23.000000000 -0700
+++ ncurses-5.7/test/configure.in	2009-06-05 14:01:30.000000000 -0700
@@ -28,7 +28,7 @@
 dnl
 dnl Author: Thomas E. Dickey 1996, etc.
 dnl
-dnl $Id: configure.in,v 1.67 2008/09/06 22:10:23 tom Exp $
+dnl $Id: configure.in,v 1.68 2009/03/28 19:49:55 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)
@@ -125,14 +125,12 @@
 	CF_CURSES_LIBS
 	;;
 ncurses)
-	CF_NCURSES_CPPFLAGS
-	CF_NCURSES_LIBS
+	CF_NCURSES_CONFIG
 	;;
 ncursesw)
 	cf_cv_libtype=w
 	CF_UTF8_LIB
-	CF_NCURSES_CPPFLAGS(ncursesw)
-	CF_NCURSES_LIBS(ncursesw)
+	CF_NCURSES_CONFIG(ncursesw)
 	;;
 pdcurses) #(vi
 	CF_PDCURSES_X11
diff -Naur ncurses-5.7.orig/test/demo_forms.c ncurses-5.7/test/demo_forms.c
--- ncurses-5.7.orig/test/demo_forms.c	2008-10-18 13:38:20.000000000 -0700
+++ ncurses-5.7/test/demo_forms.c	2009-06-05 14:01:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2003-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 2003-2008,2009 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            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: demo_forms.c,v 1.30 2008/10/18 20:38:20 tom Exp $
+ * $Id: demo_forms.c,v 1.32 2009/05/30 16:52:42 tom Exp $
  *
  * Demonstrate a variety of functions from the form library.
  * Thomas Dickey - 2003/4/26
@@ -97,6 +97,8 @@
     FIELD *f = new_field(rows, cols, frow, fcol, o_value, 1);
 
     if (f) {
+	FieldAttrs *ptr;
+
 	set_field_back(f, A_UNDERLINE);
 	/*
 	 * If -j and -d options are combined, -j loses.  It is documented in
@@ -122,7 +124,12 @@
 	/*
 	 * The userptr is used in edit_field.c's inactive_field().
 	 */
-	set_field_userptr(f, (void *) (long) field_back(f));
+	ptr = (FieldAttrs *) field_userptr(f);
+	if (ptr == 0) {
+	    ptr = typeCalloc(FieldAttrs, 1);
+	    ptr->background = field_back(f);
+	}
+	set_field_userptr(f, (void *) ptr);
 	if (t_value)
 	    set_field_buffer(f, 0, t_value);
     }
@@ -444,8 +451,11 @@
 
 	free_form(form);
     }
-    for (c = 0; f[c] != 0; c++)
+    for (c = 0; f[c] != 0; c++) {
+	void *ptr = field_userptr(f[c]);
+	free(ptr);
 	free_field(f[c]);
+    }
     noraw();
     nl();
 
diff -Naur ncurses-5.7.orig/test/ditto.c ncurses-5.7/test/ditto.c
--- ncurses-5.7.orig/test/ditto.c	2008-08-04 06:21:41.000000000 -0700
+++ ncurses-5.7/test/ditto.c	2009-06-05 14:01:49.000000000 -0700
@@ -29,7 +29,7 @@
 /*
  * Author: Thomas E. Dickey (1998-on)
  *
- * $Id: ditto.c,v 1.32 2008/08/04 13:21:41 tom Exp $
+ * $Id: ditto.c,v 1.33 2008/11/16 00:19:59 juergen Exp $
  *
  * The program illustrates how to set up multiple screens from a single
  * program.
@@ -137,8 +137,8 @@
 {
     int result = -1;
     if (peek->sequence < fifo->sequence) {
-	peek->sequence += 1;
 	result = fifo->data[THIS_FIFO(peek->sequence)];
+	peek->sequence += 1;
     }
     return result;
 }
@@ -188,7 +188,11 @@
 }
 
 static void
-init_screen(SCREEN *sp GCC_UNUSED, void *arg)
+init_screen(
+#if HAVE_USE_WINDOW
+	       SCREEN *sp GCC_UNUSED,
+#endif
+	       void *arg)
 {
     DITTO *target = (DITTO *) arg;
     int high, wide;
@@ -237,6 +241,7 @@
     target->which1 = which1;
     target->titles = source;
     target->length = length;
+    target->fifo.head = -1;
     target->screen = newterm((char *) 0,	/* assume $TERM is the same */
 			     target->output,
 			     target->input);
@@ -248,7 +253,11 @@
 }
 
 static int
-close_screen(SCREEN *sp GCC_UNUSED, void *arg GCC_UNUSED)
+close_screen(
+#if HAVE_USE_WINDOW
+		SCREEN *sp GCC_UNUSED,
+#endif
+		void *arg GCC_UNUSED)
 {
     (void) sp;
     (void) arg;
@@ -259,7 +268,11 @@
  * Read data from the 'source' screen.
  */
 static int
-read_screen(SCREEN *sp GCC_UNUSED, void *arg)
+read_screen(
+#if HAVE_USE_WINDOW
+	       SCREEN *sp GCC_UNUSED,
+#endif
+	       void *arg)
 {
     DDATA *data = (DDATA *) arg;
     DITTO *ditto = &(data->ditto[data->source]);
@@ -278,7 +291,11 @@
  * Write all of the data that's in fifos for the 'target' screen.
  */
 static int
-write_screen(SCREEN *sp GCC_UNUSED, void *arg GCC_UNUSED)
+write_screen(
+#if HAVE_USE_WINDOW
+		SCREEN *sp GCC_UNUSED,
+#endif
+		void *arg GCC_UNUSED)
 {
     DDATA *data = (DDATA *) arg;
     DITTO *ditto = &(data->ditto[data->target]);
@@ -360,7 +377,7 @@
 
     if (argc <= 1)
 	usage();
-
+    
     if ((data = typeCalloc(DITTO, (size_t) argc)) == 0)
 	failed("calloc data");
 
diff -Naur ncurses-5.7.orig/test/edit_field.c ncurses-5.7/test/edit_field.c
--- ncurses-5.7.orig/test/edit_field.c	2008-10-18 13:40:20.000000000 -0700
+++ ncurses-5.7/test/edit_field.c	2009-06-05 14:00:59.000000000 -0700
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: edit_field.c,v 1.14 2008/10/18 20:40:20 tom Exp $
+ * $Id: edit_field.c,v 1.15 2008/12/20 19:23:01 tom Exp $
  *
  * A wrapper for form_driver() which keeps track of the user's editing changes
  * for each field, and makes the result available as a null-terminated string
@@ -294,8 +294,8 @@
 static void
 inactive_field(FIELD * f)
 {
-    void *ptr = field_userptr(f);
-    set_field_back(f, (chtype) ptr);
+    FieldAttrs *ptr = (FieldAttrs *) field_userptr(f);
+    set_field_back(f, ptr->background);
 }
 
 int
diff -Naur ncurses-5.7.orig/test/edit_field.h ncurses-5.7/test/edit_field.h
--- ncurses-5.7.orig/test/edit_field.h	2006-06-03 09:38:57.000000000 -0700
+++ ncurses-5.7/test/edit_field.h	2009-06-05 14:00:59.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2003-2004,2005 Free Software Foundation, Inc.              *
+ * Copyright (c) 2003-2006,2008 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            *
@@ -26,7 +26,7 @@
  * authorization.                                                           *
  ****************************************************************************/
 /*
- * $Id: edit_field.h,v 1.5 2006/06/03 16:38:57 tom Exp $
+ * $Id: edit_field.h,v 1.6 2008/12/20 19:23:18 tom Exp $
  *
  * Interface of edit_field.c
  */
@@ -43,6 +43,10 @@
 #define MY_EDT_MODE	EDIT_FIELD('e')
 #define MY_INS_MODE	EDIT_FIELD('t')
 
+typedef struct {
+    chtype background;
+} FieldAttrs;
+
 extern void help_edit_field(void);
 extern int edit_field(FORM * form, int *result);
 
diff -Naur ncurses-5.7.orig/test/filter.c ncurses-5.7/test/filter.c
--- ncurses-5.7.orig/test/filter.c	2006-12-09 08:53:47.000000000 -0800
+++ ncurses-5.7/test/filter.c	2009-06-05 14:00:55.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2006,2008 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            *
@@ -29,7 +29,7 @@
 /*
  * Author:  Thomas E. Dickey <dickey@clark.net> 1998
  *
- * $Id: filter.c,v 1.11 2006/12/09 16:53:47 tom Exp $
+ * $Id: filter.c,v 1.12 2008/12/06 21:59:27 tom Exp $
  */
 #include <test.priv.h>
 
@@ -78,16 +78,50 @@
     return code;
 }
 
+static void
+usage(void)
+{
+    static const char *msg[] =
+    {
+	"Usage: filter [options]"
+	,""
+	,"Options:"
+	,"  -i   use initscr() rather than newterm()"
+    };
+    unsigned n;
+    for (n = 0; n < SIZEOF(msg); n++)
+	fprintf(stderr, "%s\n", msg[n]);
+    ExitProgram(EXIT_FAILURE);
+}
+
 int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
 {
+    int ch;
     char buffer[80];
     attr_t underline;
+    bool i_option = FALSE;
 
     setlocale(LC_ALL, "");
 
+    while ((ch = getopt(argc, argv, "i")) != -1) {
+	switch (ch) {
+	case 'i':
+	    i_option = TRUE;
+	    break;
+	default:
+	    usage();
+	}
+    }
+
+    printf("starting filter program using %s...\n",
+	   i_option ? "initscr" : "newterm");
     filter();
-    (void) newterm((char *) 0, stdout, stdin);
+    if (i_option) {
+	initscr();
+    } else {
+	(void) newterm((char *) 0, stdout, stdin);
+    }
     cbreak();
     keypad(stdscr, TRUE);
 
diff -Naur ncurses-5.7.orig/test/insdelln.c ncurses-5.7/test/insdelln.c
--- ncurses-5.7.orig/test/insdelln.c	1969-12-31 16:00:00.000000000 -0800
+++ ncurses-5.7/test/insdelln.c	2009-06-05 14:00:59.000000000 -0700
@@ -0,0 +1,380 @@
+/****************************************************************************
+ * Copyright (c) 2008 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: insdelln.c,v 1.1 2008/12/20 22:06:52 tom Exp $
+ *
+ * test-driver for deleteln, wdeleteln, insdelln, winsdelln, insertln, winsertln
+ */
+
+#include <test.priv.h>
+
+#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
+#define COLOR_DEFAULT (-1)
+
+typedef struct {
+    unsigned c;
+    unsigned v;
+    int pair;
+    unsigned attr;
+    int count;
+    int ch;
+    const char *c_msg;
+    const char *v_msg;
+    int y_val;
+    int x_val;
+    int y_beg, x_beg;
+    int y_max, x_max;
+} STATUS;
+
+static const char *
+color_params(unsigned state, int *pair)
+{
+    /* *INDENT-OFF* */
+    static struct {
+	int pair;
+	int fg, bg;
+	const char *msg;
+    } table[] = {
+	{ 0, COLOR_DEFAULT, COLOR_DEFAULT, "default" },
+	{ 1, COLOR_RED,     COLOR_BLACK,   "red/black" },
+	{ 2, COLOR_WHITE,   COLOR_BLUE,    "white/blue" },
+    };
+    /* *INDENT-ON* */
+
+    static bool first = TRUE;
+    const char *result = 0;
+
+    if (has_colors()) {
+	if (first) {
+	    unsigned n;
+
+	    start_color();
+	    for (n = 0; n < SIZEOF(table); ++n) {
+		init_pair(table[n].pair, table[n].fg, table[n].bg);
+	    }
+	}
+	if (state < SIZEOF(table)) {
+	    *pair = table[state].pair;
+	    result = table[state].msg;
+	}
+    }
+    return result;
+}
+
+static const char *
+video_params(unsigned state, unsigned *attr)
+{
+    /* *INDENT-OFF* */
+    static struct {
+	unsigned attr;
+	const char *msg;
+    } table[] = {
+	{ A_NORMAL,	"normal" },
+	{ A_BOLD,	"bold" },
+	{ A_REVERSE,	"reverse" },
+	{ A_UNDERLINE,	"underline" },
+	{ A_BLINK, 	"blink" },
+    };
+    /* *INDENT-ON* */
+
+    const char *result = 0;
+
+    if (state < SIZEOF(table)) {
+	*attr = table[state].attr;
+	result = table[state].msg;
+    }
+    return result;
+}
+
+/* fill the window with a test-pattern */
+static void
+fill_window(WINDOW *win)
+{
+    int y, x;
+
+    getyx(win, y, x);
+    wmove(win, 1, 0);
+    while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) {
+    }
+    wmove(win, y, x);
+}
+
+static void
+show_status(WINDOW *win, STATUS * sp)
+{
+    int y, x;
+
+    getyx(win, y, x);
+    wmove(win, 0, 0);
+    wprintw(win, "Count %d", sp->count);
+    if (sp->v_msg != 0)
+	wprintw(win, " Video %s", sp->v_msg);
+    if (sp->c_msg != 0)
+	wprintw(win, " Color %s", sp->c_msg);
+    wclrtoeol(win);
+    wmove(win, y, x);
+}
+
+static void
+reshow_status(WINDOW *win, STATUS * sp)
+{
+    fill_window(win);
+    show_status(win, sp);
+}
+
+static void
+do_subwindow(WINDOW *win, STATUS * sp, void func(WINDOW *))
+{
+    WINDOW *win1 = newwin(sp->y_max - 2, sp->x_max - 2,
+			  sp->y_beg + 1, sp->x_beg + 1);
+
+    if (win1 != 0 && sp->y_max > 4 && sp->x_max > 4) {
+	WINDOW *win2 = derwin(win1, sp->y_max - 4, sp->x_max - 4, 1, 1);
+
+	if (win2 != 0) {
+	    box(win1, 0, 0);
+	    wrefresh(win1);
+	    func(win2);
+
+	    delwin(win2);
+	} else {
+	    beep();
+	}
+	delwin(win1);
+	touchwin(win);
+    } else {
+	beep();
+    }
+}
+
+static void
+init_status(WINDOW *win, STATUS * sp)
+{
+    memset(sp, 0, sizeof(*sp));
+    sp->c = 99;
+    sp->v = 99;
+    sp->ch = ' ';
+
+    keypad(win, TRUE);
+    fill_window(win);
+
+    getbegyx(win, sp->y_beg, sp->x_beg);
+    getmaxyx(win, sp->y_max, sp->x_max);
+}
+
+static void
+show_help(WINDOW *win)
+{
+    static const char *table[] =
+    {
+	"Basic commands:"
+	,"Use h/j/k/l or arrow keys to move the cursor."
+	,"Set the count parameter for insert/delete by entering digits 0-9."
+	,""
+	,"Other commands:"
+	,"space toggles through the set of video attributes and colors."
+	,"t     touches (forces repaint) of the current line."
+	,"i     calls insertln at the current position with the given count."
+	,"d     calls deleteln at the window beginning with the given count."
+	,"I     calls insdelln at the window beginning with the given count."
+	,"D     calls insdelln at the window beginning with the given -count."
+	,"f     refills the window with test-pattern using current attributes."
+	,"w     recur to test windows other than stdscr"
+	,"q     quit"
+	,"=     resets count to zero."
+	,"?     shows this help-window"
+	,""
+	,""
+    };
+
+    int y_max, x_max;
+    int row;
+
+    getmaxyx(win, y_max, x_max);
+    for (row = 0; row < (int) SIZEOF(table) && row < y_max; ++row) {
+	mvwprintw(win, row, 0, "%.*s", x_max, table[row]);
+    }
+    while (wgetch(win) != 'q')
+	beep();
+}
+
+static void
+update_status(WINDOW *win, STATUS * sp)
+{
+    switch (sp->ch) {
+    case ' ':			/* next test-iteration */
+	if (has_colors()) {
+	    if ((sp->c_msg = color_params(++(sp->c), &(sp->pair))) == 0) {
+		sp->c_msg = color_params(sp->c = 0, &(sp->pair));
+		if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) {
+		    sp->v_msg = video_params(sp->v = 0, &(sp->attr));
+		}
+	    }
+	} else {
+	    if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) {
+		sp->v_msg = video_params(sp->v = 0, &(sp->attr));
+	    }
+	}
+	sp->count = 0;
+	show_status(win, sp);
+	break;
+    case KEY_LEFT:
+    case 'h':
+	if (sp->x_val > 0)
+	    wmove(win, sp->y_val, --(sp->x_val));
+	break;
+    case KEY_DOWN:
+    case 'j':
+	if (sp->y_val < sp->y_max)
+	    wmove(win, ++(sp->y_val), sp->x_val);
+	break;
+    case KEY_UP:
+    case 'k':
+	if (sp->y_val > 0)
+	    wmove(win, --(sp->y_val), sp->x_val);
+	break;
+    case KEY_RIGHT:
+    case 'l':
+	if (sp->x_val < sp->x_max)
+	    wmove(win, sp->y_val, ++(sp->x_val));
+	break;
+    case 't':
+	touchline(win, sp->y_val, 1);
+	break;
+    case '=':
+	sp->count = 0;
+	show_status(win, sp);
+	break;
+    case '?':
+	do_subwindow(win, sp, show_help);
+	break;
+    default:
+	if (isdigit(sp->ch)) {
+	    sp->count = (sp->count * 10) + (sp->ch - '0');
+	    show_status(win, sp);
+	} else {
+	    beep();
+	}
+	break;
+    }
+}
+
+static void
+test_winsdelln(WINDOW *win)
+{
+    STATUS st;
+    int n;
+
+    init_status(win, &st);
+
+    do {
+	wattrset(win, st.attr | COLOR_PAIR(st.pair));
+	switch (st.ch) {
+	case 'i':
+	    for (n = 0; n < st.count; ++n)
+		winsertln(win);
+	    break;
+	case 'd':
+	    for (n = 0; n < st.count; ++n)
+		wdeleteln(win);
+	    break;
+	case 'I':
+	    winsdelln(win, st.count);
+	    break;
+	case 'D':
+	    winsdelln(win, -st.count);
+	    break;
+	case 'f':
+	    fill_window(win);
+	    reshow_status(win, &st);
+	    break;
+	case 'w':
+	    do_subwindow(win, &st, test_winsdelln);
+	    break;
+	case 'q':
+	    return;
+	default:
+	    update_status(win, &st);
+	    break;
+	}
+    } while ((st.ch = wgetch(win)) != ERR);
+}
+
+static void
+test_insdelln(void)
+{
+    STATUS st;
+    int n;
+
+    init_status(stdscr, &st);
+
+    do {
+	attrset(st.attr | COLOR_PAIR(st.pair));
+	switch (st.ch) {
+	case 'i':
+	    for (n = 0; n < st.count; ++n)
+		insertln();
+	    break;
+	case 'd':
+	    for (n = 0; n < st.count; ++n)
+		deleteln();
+	    break;
+	case 'I':
+	    insdelln(st.count);
+	    break;
+	case 'D':
+	    insdelln(-st.count);
+	    break;
+	case 'f':
+	    fill_window(stdscr);
+	    reshow_status(stdscr, &st);
+	    break;
+	case 'w':
+	    do_subwindow(stdscr, &st, test_winsdelln);
+	    break;
+	case 'q':
+	    return;
+	default:
+	    update_status(stdscr, &st);
+	    break;
+	}
+    } while ((st.ch = getch()) != ERR);
+}
+
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+{
+    initscr();
+    cbreak();
+    noecho();
+
+    test_insdelln();
+    endwin();
+
+    ExitProgram(EXIT_SUCCESS);
+}
diff -Naur ncurses-5.7.orig/test/modules ncurses-5.7/test/modules
--- ncurses-5.7.orig/test/modules	2007-08-18 10:57:08.000000000 -0700
+++ ncurses-5.7/test/modules	2009-06-05 14:00:59.000000000 -0700
@@ -1,4 +1,4 @@
-# $Id: modules,v 1.36 2007/08/18 17:57:08 tom Exp $
+# $Id: modules,v 1.37 2008/12/20 21:38:44 tom Exp $
 ##############################################################################
 # Copyright (c) 1998-2006,2007 Free Software Foundation, Inc.                #
 #                                                                            #
@@ -37,6 +37,7 @@
 bs		progs		$(srcdir)	$(HEADER_DEPS)
 cardfile	progs		$(srcdir)	$(HEADER_DEPS)	../include/panel.h ../include/form.h
 chgat		progs		$(srcdir)	$(HEADER_DEPS)
+clip_printw	progs		$(srcdir)	$(HEADER_DEPS)
 color_set	progs		$(srcdir)	$(HEADER_DEPS)
 demo_altkeys	progs		$(srcdir)	$(HEADER_DEPS)
 demo_defkey	progs		$(srcdir)	$(HEADER_DEPS)
@@ -60,6 +61,7 @@
 inch_wide	progs		$(srcdir)	$(HEADER_DEPS)
 inchs		progs		$(srcdir)	$(HEADER_DEPS)
 ins_wide	progs		$(srcdir)	$(HEADER_DEPS)
+insdelln	progs		$(srcdir)	$(HEADER_DEPS)
 inserts		progs		$(srcdir)	$(HEADER_DEPS)
 key_names	progs		$(srcdir)	$(HEADER_DEPS)
 keynames	progs		$(srcdir)	$(HEADER_DEPS)
diff -Naur ncurses-5.7.orig/test/ncurses.c ncurses-5.7/test/ncurses.c
--- ncurses-5.7.orig/test/ncurses.c	2008-09-27 07:34:58.000000000 -0700
+++ ncurses-5.7/test/ncurses.c	2009-06-05 14:01:49.000000000 -0700
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2008,2009 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            *
@@ -40,7 +40,7 @@
    Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
            Thomas E. Dickey (beginning revision 1.27 in 1996).
 
-$Id: ncurses.c,v 1.329 2008/09/27 14:34:58 tom Exp $
+$Id: ncurses.c,v 1.339 2009/04/04 22:46:11 juergen Exp $
 
 ***************************************************************************/
 
@@ -483,7 +483,11 @@
 	addstr("Shelling out...");
     def_prog_mode();
     endwin();
+#ifdef __MINGW32__
+    system("cmd.exe");
+#else
     system("sh");
+#endif
     if (message)
 	addstr("returned from shellout.\n");
     refresh();
@@ -569,8 +573,11 @@
  *
  ****************************************************************************/
 
+#define NUM_GETCH_FLAGS 256
+typedef bool GetchFlags[NUM_GETCH_FLAGS];
+
 static void
-setup_getch(WINDOW *win, bool flags[])
+setup_getch(WINDOW *win, GetchFlags flags)
 {
     keypad(win, flags['k']);	/* should be redundant, but for testing */
     meta(win, flags['m']);	/* force this to a known state */
@@ -581,7 +588,17 @@
 }
 
 static void
-wgetch_help(WINDOW *win, bool flags[])
+init_getch(WINDOW *win, GetchFlags flags)
+{
+    memset(flags, FALSE, NUM_GETCH_FLAGS);
+    flags[UChar('k')] = (win == stdscr);
+    flags[UChar('m')] = TRUE;
+
+    setup_getch(win, flags);
+}
+
+static void
+wgetch_help(WINDOW *win, GetchFlags flags)
 {
     static const char *help[] =
     {
@@ -731,13 +748,10 @@
     int first_y, first_x;
     int c;
     int incount = 0;
-    bool flags[256];
+    GetchFlags flags;
     bool blocking = (delay < 0);
 
-    memset(flags, FALSE, sizeof(flags));
-    flags[UChar('k')] = (win == stdscr);
-
-    setup_getch(win, flags);
+    init_getch(win, flags);
     wtimeout(win, delay);
     getyx(win, first_y, first_x);
 
@@ -835,12 +849,18 @@
 		}
 #endif
 		(void) waddstr(win, keyname(c));
-	    } else if (c > 0x80) {
-		unsigned c2 = (unsigned) (c & 0x7f);
-		if (isprint(c2))
-		    (void) wprintw(win, "M-%c", UChar(c2));
-		else
+	    } else if (c >= 0x80) {
+		unsigned c2 = (unsigned) c;
+#if !(defined(NCURSES_VERSION) || defined(_XOPEN_CURSES))
+		/* at least Solaris SVR4 curses breaks unctrl(128), etc. */
+		c2 &= 0x7f;
+#endif
+		if (isprint(c))
+		    (void) wprintw(win, "%c", UChar(c));
+		else if (c2 != UChar(c))
 		    (void) wprintw(win, "M-%s", unctrl(c2));
+		else
+		    (void) wprintw(win, "%s", unctrl(c2));
 		waddstr(win, " (high-half character)");
 	    } else {
 		if (isprint(c))
@@ -854,6 +874,9 @@
     }
 
     wtimeout(win, -1);
+
+    if (!level)
+	init_getch(win, flags);
 }
 
 static int
@@ -905,6 +928,7 @@
     wgetch_test(0, stdscr, delay);
     forget_boxes();
     finish_getch_test();
+    slk_clear();
 }
 
 #if USE_WIDEC_SUPPORT
@@ -978,15 +1002,12 @@
     int first_y, first_x;
     wint_t c;
     int incount = 0;
-    bool flags[256];
+    GetchFlags flags;
     bool blocking = (delay < 0);
     int y, x, code;
     char *temp;
 
-    memset(flags, FALSE, sizeof(flags));
-    flags[UChar('k')] = (win == stdscr);
-
-    setup_getch(win, flags);
+    init_getch(win, flags);
     wtimeout(win, delay);
     getyx(win, first_y, first_x);
 
@@ -1096,14 +1117,14 @@
 		    resize_wide_boxes(level, win);
 		}
 #endif
-		(void) waddstr(win, key_name((wchar_t) c));
+		(void) waddstr(win, keyname((wchar_t) c));
 	    } else {
+		(void) waddstr(win, key_name((wchar_t) c));
 		if (c < 256 && iscntrl(c)) {
-		    (void) wprintw(win, "%s (control character)", unctrl(c));
+		    (void) wprintw(win, " (control character)");
 		} else {
-		    wchar_t c2 = (wchar_t) c;
-		    waddnwstr(win, &c2, 1);
-		    (void) wprintw(win, " = %#x (printable character)", (unsigned) c);
+		    (void) wprintw(win, " = %#x (printable character)",
+				   (unsigned) c);
 		}
 	    }
 	    wgetch_wrap(win, first_y);
@@ -1111,6 +1132,9 @@
     }
 
     wtimeout(win, -1);
+
+    if (!level)
+	init_getch(win, flags);
 }
 
 static void
@@ -1122,6 +1146,7 @@
     wget_wch_test(0, stdscr, delay);
     forget_boxes();
     finish_getch_test();
+    slk_clear();
 }
 #endif
 
@@ -1840,6 +1865,8 @@
 	    width = 4;
 	} else if (color >= 8) {
 	    sprintf(temp, "[%02d]", color);
+	} else if (color < 0) {
+	    strcpy(temp, "default");
 	} else {
 	    strcpy(temp, the_color_names[color]);
 	}
@@ -1874,6 +1901,8 @@
     mvwprintw(helpwin, row++, col,
 	      "  n/N     toggle text/number on/off");
     mvwprintw(helpwin, row++, col,
+	      "  r/R     toggle reverse on/off");
+    mvwprintw(helpwin, row++, col,
 	      "  w/W     toggle width between 8/16 colors");
 #if USE_WIDEC_SUPPORT
     if (wide) {
@@ -1906,12 +1935,19 @@
     bool done = FALSE;
     bool opt_acsc = FALSE;
     bool opt_bold = FALSE;
-    bool opt_wide = FALSE;
+    bool opt_revs = FALSE;
     bool opt_nums = FALSE;
+    bool opt_wide = FALSE;
     WINDOW *helpwin;
 
-    if (pairs_max > COLOR_PAIRS)
-	pairs_max = COLOR_PAIRS;
+    if (COLORS * COLORS == COLOR_PAIRS) {
+	int limit = (COLORS - min_colors) * (COLORS - min_colors);
+	if (pairs_max > limit)
+	    pairs_max = limit;
+    } else {
+	if (pairs_max > COLOR_PAIRS)
+	    pairs_max = COLOR_PAIRS;
+    }
 
     while (!done) {
 	int shown = 0;
@@ -1926,12 +1962,14 @@
 	    hello = "Hello";
 	    per_row = 8;
 	}
+	per_row -= min_colors;
 
 	row_limit = (pairs_max + per_row - 1) / per_row;
 
 	move(0, 0);
-	(void) printw("There are %d color pairs and %d colors\n",
-		      pairs_max, COLORS);
+	(void) printw("There are %d color pairs and %d colors%s\n",
+		      pairs_max, COLORS,
+		      min_colors ? " besides 'default'" : "");
 
 	clrtobot();
 	(void) mvprintw(top + 1, 0,
@@ -1942,7 +1980,7 @@
 
 	/* show color names/numbers across the top */
 	for (i = 0; i < per_row; i++)
-	    show_color_name(top + 2, (i + 1) * width, i, opt_wide);
+	    show_color_name(top + 2, (i + 1) * width, i + min_colors, opt_wide);
 
 	/* show a grid of colors, with color names/ numbers on the left */
 	for (i = (short) (base_row * per_row); i < pairs_max; i++) {
@@ -1950,9 +1988,11 @@
 	    int col = (i % per_row + 1) * width;
 	    short pair = i;
 
+#define InxToFG(i) (short) ((i % (COLORS - min_colors)) + min_colors)
+#define InxToBG(i) (short) ((i / (COLORS - min_colors)) + min_colors)
 	    if (row >= 0 && move(row, col) != ERR) {
-		short fg = (short) (i % COLORS);
-		short bg = (short) (i / COLORS);
+		short fg = InxToFG(i);
+		short bg = InxToBG(i);
 
 		init_pair(pair, fg, bg);
 		attron((attr_t) COLOR_PAIR(pair));
@@ -1960,6 +2000,8 @@
 		    attron((attr_t) A_ALTCHARSET);
 		if (opt_bold)
 		    attron((attr_t) A_BOLD);
+		if (opt_revs)
+		    attron((attr_t) A_REVERSE);
 
 		if (opt_nums) {
 		    sprintf(numbered, "{%02X}", i);
@@ -1968,8 +2010,8 @@
 		printw("%-*.*s", width, width, hello);
 		attrset(A_NORMAL);
 
-		if ((i % per_row) == 0 && (i % COLORS) == 0) {
-		    show_color_name(row, 0, i / COLORS, opt_wide);
+		if ((i % per_row) == 0 && InxToFG(i) == min_colors) {
+		    show_color_name(row, 0, InxToBG(i), opt_wide);
 		}
 		++shown;
 	    } else if (shown) {
@@ -1996,6 +2038,12 @@
 	case 'N':
 	    opt_nums = TRUE;
 	    break;
+	case 'r':
+	    opt_revs = FALSE;
+	    break;
+	case 'R':
+	    opt_revs = TRUE;
+	    break;
 	case case_QUIT:
 	    done = TRUE;
 	    continue;
@@ -2073,7 +2121,7 @@
     int base_row = 0;
     int grid_top = top + 3;
     int page_size = (LINES - grid_top);
-    int pairs_max = COLOR_PAIRS;
+    int pairs_max = (unsigned short) (-1);
     int row_limit;
     int per_row;
     char numbered[80];
@@ -2081,12 +2129,22 @@
     bool done = FALSE;
     bool opt_acsc = FALSE;
     bool opt_bold = FALSE;
+    bool opt_revs = FALSE;
     bool opt_wide = FALSE;
     bool opt_nums = FALSE;
     bool opt_xchr = FALSE;
     wchar_t buffer[10];
     WINDOW *helpwin;
 
+    if (COLORS * COLORS == COLOR_PAIRS) {
+	int limit = (COLORS - min_colors) * (COLORS - min_colors);
+	if (pairs_max > limit)
+	    pairs_max = limit;
+    } else {
+	if (pairs_max > COLOR_PAIRS)
+	    pairs_max = COLOR_PAIRS;
+    }
+
     while (!done) {
 	int shown = 0;
 
@@ -2100,6 +2158,8 @@
 	    hello = "Hello";
 	    per_row = 8;
 	}
+	per_row -= min_colors;
+
 	if (opt_xchr) {
 	    make_fullwidth_text(buffer, hello);
 	    width *= 2;
@@ -2111,8 +2171,9 @@
 	row_limit = (pairs_max + per_row - 1) / per_row;
 
 	move(0, 0);
-	(void) printw("There are %d color pairs and %d colors\n",
-		      pairs_max, COLORS);
+	(void) printw("There are %d color pairs and %d colors%s\n",
+		      pairs_max, COLORS,
+		      min_colors ? " besides 'default'" : "");
 
 	clrtobot();
 	(void) mvprintw(top + 1, 0,
@@ -2123,7 +2184,7 @@
 
 	/* show color names/numbers across the top */
 	for (i = 0; i < per_row; i++)
-	    show_color_name(top + 2, (i + 1) * width, i, opt_wide);
+	    show_color_name(top + 2, (i + 1) * width, i + min_colors, opt_wide);
 
 	/* show a grid of colors, with color names/ numbers on the left */
 	for (i = (base_row * per_row); i < pairs_max; i++) {
@@ -2132,12 +2193,14 @@
 	    short pair = (short) i;
 
 	    if (row >= 0 && move(row, col) != ERR) {
-		init_pair(pair, (short) (i % COLORS), (short) (i / COLORS));
+		init_pair(pair, InxToFG(i), InxToBG(i));
 		color_set(pair, NULL);
 		if (opt_acsc)
 		    attr_on((attr_t) A_ALTCHARSET, NULL);
 		if (opt_bold)
 		    attr_on((attr_t) A_BOLD, NULL);
+		if (opt_revs)
+		    attr_on((attr_t) A_REVERSE, NULL);
 
 		if (opt_nums) {
 		    sprintf(numbered, "{%02X}", i);
@@ -2150,8 +2213,8 @@
 		addnwstr(buffer, width);
 		attr_set(A_NORMAL, 0, NULL);
 
-		if ((i % per_row) == 0 && (i % COLORS) == 0) {
-		    show_color_name(row, 0, i / COLORS, opt_wide);
+		if ((i % per_row) == 0 && InxToFG(i) == min_colors) {
+		    show_color_name(row, 0, InxToBG(i), opt_wide);
 		}
 		++shown;
 	    } else if (shown) {
@@ -2178,6 +2241,12 @@
 	case 'N':
 	    opt_nums = TRUE;
 	    break;
+	case 'r':
+	    opt_revs = FALSE;
+	    break;
+	case 'R':
+	    opt_revs = TRUE;
+	    break;
 	case case_QUIT:
 	    done = TRUE;
 	    continue;
@@ -2802,6 +2871,7 @@
 } attrs_to_cycle[] = {
     { A_NORMAL,		"normal" },
     { A_BOLD,		"bold" },
+    { A_BLINK,		"blink" },
     { A_REVERSE,	"reverse" },
     { A_UNDERLINE,	"underline" },
 };
@@ -2902,7 +2972,7 @@
 	do {
 	    if (C1)
 		nodelay(stdscr, TRUE);
-	    echochar(code | attr | COLOR_PAIR(pair));
+	    echochar(colored_chtype(code, attr, pair));
 	    if (C1) {
 		/* (yes, this _is_ crude) */
 		while ((reply = Getchar()) != ERR) {
@@ -2951,7 +3021,7 @@
 		 */
 		break;
 	    default:
-		addch(code | A_ALTCHARSET | attr | COLOR_PAIR(pair));
+		addch(colored_chtype(code, A_ALTCHARSET | attr, pair));
 		break;
 	    }
 	} while (--count > 0);
@@ -2969,15 +3039,23 @@
     mvaddstr(0, 20, "Display of the ACS Line-Drawing Set");
     attroff(A_BOLD);
     refresh();
-    box(stdscr, 0, 0);
     /* *INDENT-OFF* */
-    mvhline(LINES / 2, 0,        ACS_HLINE | attr, COLS);
-    mvvline(0,         COLS / 2, ACS_VLINE | attr, LINES);
-    mvaddch(0,         COLS / 2, ACS_TTEE | attr);
-    mvaddch(LINES / 2, COLS / 2, ACS_PLUS | attr);
-    mvaddch(LINES - 1, COLS / 2, ACS_BTEE | attr);
-    mvaddch(LINES / 2, 0,        ACS_LTEE | attr);
-    mvaddch(LINES / 2, COLS - 1, ACS_RTEE | attr);
+    wborder(stdscr,
+	    colored_chtype(ACS_VLINE,	 attr, pair),
+	    colored_chtype(ACS_VLINE,	 attr, pair),
+            colored_chtype(ACS_HLINE,    attr, pair),
+	    colored_chtype(ACS_HLINE,	 attr, pair),
+	    colored_chtype(ACS_ULCORNER, attr, pair),
+	    colored_chtype(ACS_URCORNER, attr, pair),
+            colored_chtype(ACS_LLCORNER, attr, pair),
+	    colored_chtype(ACS_LRCORNER, attr, pair));
+    mvhline(LINES / 2, 0,        colored_chtype(ACS_HLINE, attr, pair), COLS);
+    mvvline(0,         COLS / 2, colored_chtype(ACS_VLINE, attr, pair), LINES);
+    mvaddch(0,         COLS / 2, colored_chtype(ACS_TTEE,  attr, pair));
+    mvaddch(LINES / 2, COLS / 2, colored_chtype(ACS_PLUS,  attr, pair));
+    mvaddch(LINES - 1, COLS / 2, colored_chtype(ACS_BTEE,  attr, pair));
+    mvaddch(LINES / 2, 0,        colored_chtype(ACS_LTEE,  attr, pair));
+    mvaddch(LINES / 2, COLS - 1, colored_chtype(ACS_RTEE,  attr, pair));
     /* *INDENT-ON* */
 
 }
@@ -3002,7 +3080,7 @@
 {
     int n;
 
-#define BOTH(name) #name, (name | attr | COLOR_PAIR(pair))
+#define BOTH(name) #name, colored_chtype(name, attr, pair)
 
     erase();
     attron(A_BOLD);
@@ -3212,7 +3290,7 @@
 	     * the display.
 	     */
 	    if (wcwidth(code) == 0)
-		addch(space | A_REVERSE);
+		addch(space | (A_REVERSE ^ attr) | COLOR_PAIR(pair));
 	    /*
 	     * This could use add_wch(), but is done for comparison with the
 	     * normal 'f' test (and to make a test-case for echo_wchar()).
@@ -3238,7 +3316,7 @@
     int col = (n / height) * COLS / 2;
 
     mvprintw(row, col, "%*s : ", COLS / 4, name);
-    while (repeat-- >= 0) {
+    while (--repeat >= 0) {
 	add_wch(code);
     }
     return n + 1;
@@ -3307,12 +3385,12 @@
 
 #undef MERGE_ATTR
 
-#define MERGE_ATTR(wch) merge_wide_attr(&temp, wch, attr, pair)
+#define MERGE_ATTR(n,wch) merge_wide_attr(&temp[n], wch, attr, pair)
 
 static void
 show_wbox_chars(int repeat, attr_t attr, short pair)
 {
-    cchar_t temp;
+    cchar_t temp[8];
 
     (void) repeat;
     erase();
@@ -3321,17 +3399,23 @@
     attroff(A_BOLD);
     refresh();
 
-    attr_set(attr, pair, 0);
-    box_set(stdscr, 0, 0);
-    attr_set(A_NORMAL, 0, 0);
+    wborder_set(stdscr,
+		MERGE_ATTR(0, WACS_VLINE),
+		MERGE_ATTR(1, WACS_VLINE),
+		MERGE_ATTR(2, WACS_HLINE),
+		MERGE_ATTR(3, WACS_HLINE),
+		MERGE_ATTR(4, WACS_ULCORNER),
+		MERGE_ATTR(5, WACS_URCORNER),
+		MERGE_ATTR(6, WACS_LLCORNER),
+		MERGE_ATTR(7, WACS_LRCORNER));
     /* *INDENT-OFF* */
-    mvhline_set(LINES / 2, 0,        MERGE_ATTR(WACS_HLINE), COLS);
-    mvvline_set(0,         COLS / 2, MERGE_ATTR(WACS_VLINE), LINES);
-    mvadd_wch(0,           COLS / 2, MERGE_ATTR(WACS_TTEE));
-    mvadd_wch(LINES / 2,   COLS / 2, MERGE_ATTR(WACS_PLUS));
-    mvadd_wch(LINES - 1,   COLS / 2, MERGE_ATTR(WACS_BTEE));
-    mvadd_wch(LINES / 2,   0,        MERGE_ATTR(WACS_LTEE));
-    mvadd_wch(LINES / 2,   COLS - 1, MERGE_ATTR(WACS_RTEE));
+    mvhline_set(LINES / 2, 0,        MERGE_ATTR(0, WACS_HLINE), COLS);
+    mvvline_set(0,         COLS / 2, MERGE_ATTR(0, WACS_VLINE), LINES);
+    mvadd_wch(0,           COLS / 2, MERGE_ATTR(0, WACS_TTEE));
+    mvadd_wch(LINES / 2,   COLS / 2, MERGE_ATTR(0, WACS_PLUS));
+    mvadd_wch(LINES - 1,   COLS / 2, MERGE_ATTR(0, WACS_BTEE));
+    mvadd_wch(LINES / 2,   0,        MERGE_ATTR(0, WACS_LTEE));
+    mvadd_wch(LINES / 2,   COLS - 1, MERGE_ATTR(0, WACS_RTEE));
     /* *INDENT-ON* */
 
 }
@@ -5804,7 +5888,7 @@
 	break;
     case 2:
 	init_pair(cpair, COLOR_RED, COLOR_GREEN);
-	wbkgdset(win, ' ' | A_BLINK | COLOR_PAIR(cpair));
+	wbkgdset(win, colored_chtype(' ', A_BLINK, cpair));
 	break;
     case 3:
 	wbkgdset(win, ' ' | A_NORMAL);
diff -Naur ncurses-5.7.orig/test/programs ncurses-5.7/test/programs
--- ncurses-5.7.orig/test/programs	2008-08-16 14:47:39.000000000 -0700
+++ ncurses-5.7/test/programs	2009-06-05 14:00:59.000000000 -0700
@@ -1,4 +1,4 @@
-# $Id: programs,v 1.14 2008/08/16 21:47:39 tom Exp $
+# $Id: programs,v 1.15 2008/12/20 21:38:44 tom Exp $
 ##############################################################################
 # Copyright (c) 2006-2007,2008 Free Software Foundation, Inc.                #
 #                                                                            #
@@ -35,6 +35,7 @@
 bs		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	bs
 cardfile	$(LDFLAGS_DEFAULT)	$(LOCAL_LIBS)	cardfile
 chgat		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	chgat
+clip_printw	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	clip_printw
 color_set	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	color_set
 demo_altkeys	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	demo_altkeys
 demo_defkey	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	demo_defkey
@@ -57,6 +58,7 @@
 inch_wide	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	inch_wide
 inchs		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	inchs
 ins_wide	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	ins_wide
+insdelln	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	insdelln
 inserts		$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	inserts
 key_names	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	key_names
 keynames	$(LDFLAGS_CURSES)	$(LOCAL_LIBS)	keynames
diff -Naur ncurses-5.7.orig/test/railroad.c ncurses-5.7/test/railroad.c
--- ncurses-5.7.orig/test/railroad.c	2008-02-09 10:08:43.000000000 -0800
+++ ncurses-5.7/test/railroad.c	2009-06-05 14:01:18.000000000 -0700
@@ -29,7 +29,7 @@
 /*
  * Author: Thomas E. Dickey - 2000
  *
- * $Id: railroad.c,v 1.16 2008/02/09 18:08:43 tom Exp $
+ * $Id: railroad.c,v 1.17 2008/12/07 02:07:41 juergen Exp $
  *
  * A simple demo of the termcap interface.
  */
@@ -82,7 +82,7 @@
 }
 
 static void
-ShowCursor(int flag)
+MyShowCursor(int flag)
 {
     if (startC != 0 && finisC != 0) {
 	tputs(flag ? startC : finisC, 1, outc);
@@ -166,7 +166,7 @@
 {
     Underline(0);
     StandOut(0);
-    ShowCursor(1);
+    MyShowCursor(1);
 }
 
 static void
@@ -214,14 +214,14 @@
 	startC = tgetstr("ve", &ap);
 	finisC = tgetstr("vi", &ap);
 
-	ShowCursor(0);
+	MyShowCursor(0);
 
 	CATCHALL(onsig);
 
 	while (*args) {
 	    ShowSign(*args++);
 	}
-	ShowCursor(1);
+	MyShowCursor(1);
     }
 }
 
diff -Naur ncurses-5.7.orig/test/README ncurses-5.7/test/README
--- ncurses-5.7.orig/test/README	2008-10-18 14:02:45.000000000 -0700
+++ ncurses-5.7/test/README	2009-06-05 14:00:59.000000000 -0700
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: README,v 1.38 2008/10/18 21:02:45 tom Exp $
+-- $Id: README,v 1.39 2008/12/20 23:38:13 tom Exp $
 -------------------------------------------------------------------------------
 
 The programs in this directory are designed to test your newest toy :-)
@@ -87,7 +87,7 @@
 field_status			test: demo_forms
 field_term			-
 field_type			test: demo_forms
-field_userptr			test: edit_field ncurses
+field_userptr			test: demo_forms edit_field ncurses
 form_driver			test: cardfile demo_forms edit_field ncurses
 form_fields			test: cardfile demo_forms
 form_init			-
@@ -211,7 +211,7 @@
 ----------
 BC				-
 COLORS				test: echochar ncurses savescreen xmas
-COLOR_PAIR			test: background blue bs cardfile demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
+COLOR_PAIR			test: background blue bs cardfile clip_printw demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide insdelln inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
 COLOR_PAIRS			test: echochar ncurses newdemo savescreen
 COLS				test: cardfile demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto echochar edit_field firework foldkeys hashtest inch_wide inchs ins_wide inserts lrtest movewindow ncurses newdemo rain savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm
 ESCDELAY			test: test_opaque
@@ -239,9 +239,9 @@
 attr_set			test: ncurses
 attroff				test: echochar filter gdc ncurses tclock
 attron				test: bs echochar filter gdc ncurses
-attrset				test: bs firework gdc hanoi ncurses rain tclock testaddch testcurs
+attrset				test: bs firework gdc hanoi insdelln ncurses rain tclock testaddch testcurs
 baudrate			lib: ncurses
-beep				test: blue bs cardfile chgat demo_forms demo_menus demo_panels edit_field hanoi inch_wide inchs ins_wide inserts knight movewindow ncurses savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view xmas
+beep				test: blue bs cardfile chgat clip_printw demo_forms demo_menus demo_panels edit_field hanoi inch_wide inchs ins_wide insdelln inserts knight movewindow ncurses savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view xmas
 bkgd				test: background cardfile demo_forms ncurses savescreen tclock view
 bkgdset				test: background ncurses testaddch
 bkgrnd				test: ncurses
@@ -251,10 +251,10 @@
 boolnames			test: test_arrays progs: dump_entry infocmp
 border				-
 border_set			-
-box				test: cardfile chgat demo_forms demo_menus demo_panels ditto edit_field inch_wide inchs ins_wide inserts lrtest ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+box				test: cardfile chgat clip_printw demo_forms demo_menus demo_panels ditto edit_field inch_wide inchs ins_wide insdelln inserts lrtest ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
 box_set				test: ncurses
 can_change_color		test: ncurses
-cbreak				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses newdemo savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
+cbreak				test: background blue bs cardfile chgat clip_printw color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts knight lrtest movewindow ncurses newdemo savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
 chgat				test: chgat
 clear				test: blue bs gdc ncurses testcurs xmas
 clearok				test: bs knight
@@ -263,7 +263,7 @@
 color_content			test: ncurses
 color_set			test: color_set ncurses
 copywin				test: ncurses testcurs
-cur_term			test: dots dots_mvcur lrtest progs: clear tput tset
+cur_term			test: dots dots_mvcur lrtest progs: clear tabs tput tset
 curs_set			test: echochar firework gdc hanoi lrtest ncurses newdemo rain savescreen tclock testcurs worm xmas
 curscr				test: demo_panels edit_field knight lrtest ncurses savescreen tclock view
 curses_version			test: ncurses progs: infocmp tic toe tput tset
@@ -273,16 +273,16 @@
 del_curterm			lib: ncurses
 delay_output			test: newdemo
 delch				-
-deleteln			-
+deleteln			test: insdelln
 delscreen			test: ditto dots_mvcur
-delwin				test: cardfile chgat demo_forms demo_panels edit_field inch_wide inchs ins_wide inserts movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
-derwin				test: cardfile chgat demo_forms demo_menus ditto inch_wide inchs ins_wide inserts movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque
+delwin				test: cardfile chgat clip_printw demo_forms demo_panels edit_field inch_wide inchs ins_wide insdelln inserts movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+derwin				test: cardfile chgat clip_printw demo_forms demo_menus ditto inch_wide inchs ins_wide insdelln inserts movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque
 doupdate			test: cardfile demo_menus demo_panels ditto edit_field ins_wide inserts knight movewindow ncurses redraw savescreen test_get_wstr test_getstr
 dupwin				test: edit_field
 echo				test: bs hanoi ncurses test_get_wstr test_getstr testcurs testscanw
 echo_wchar			test: ncurses
 echochar			test: echochar ncurses
-endwin				test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto dots_mvcur echochar filter firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts key_names keynames knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
+endwin				test: background blue bs cardfile chgat clip_printw color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto dots_mvcur echochar filter firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
 erase				test: cardfile demo_menus filter firework firstlast hanoi lrtest ncurses tclock test_opaque testcurs
 erasechar			lib: ncurses
 erasewchar			-
@@ -292,16 +292,16 @@
 get_wch				-
 get_wstr			test: test_get_wstr
 getattrs			-
-getbegx				test: chgat demo_menus demo_panels movewindow ncurses newdemo redraw testcurs
-getbegy				test: chgat demo_menus demo_panels movewindow ncurses newdemo redraw testcurs
+getbegx				test: chgat clip_printw demo_menus demo_panels insdelln movewindow ncurses newdemo redraw testcurs
+getbegy				test: chgat clip_printw demo_menus demo_panels insdelln movewindow ncurses newdemo redraw testcurs
 getbkgd				test: ncurses
 getbkgrnd			test: ncurses
 getcchar			test: ncurses view
-getch				test: background blue bs chgat color_set demo_altkeys filter firework firstlast foldkeys hanoi hashtest lrtest savescreen tclock test_opaque testaddch testcurs view xmas
-getcurx				test: bs chgat demo_altkeys demo_defkey demo_panels foldkeys movewindow ncurses redraw savescreen test_get_wstr test_getstr test_opaque testcurs
-getcury				test: bs chgat demo_altkeys demo_defkey demo_panels edit_field foldkeys movewindow ncurses redraw savescreen test_opaque testcurs
-getmaxx				test: chgat demo_panels inch_wide inchs movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
-getmaxy				test: chgat demo_forms demo_panels inch_wide inchs movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+getch				test: background blue bs chgat color_set demo_altkeys filter firework firstlast foldkeys hanoi hashtest insdelln lrtest savescreen tclock test_opaque testaddch testcurs view xmas
+getcurx				test: bs chgat clip_printw demo_altkeys demo_defkey demo_panels foldkeys insdelln movewindow ncurses redraw savescreen test_get_wstr test_getstr test_opaque testcurs
+getcury				test: bs chgat clip_printw demo_altkeys demo_defkey demo_panels edit_field foldkeys insdelln movewindow ncurses redraw savescreen test_opaque testcurs
+getmaxx				test: chgat clip_printw demo_panels inch_wide inchs insdelln movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+getmaxy				test: chgat clip_printw demo_forms demo_panels inch_wide inchs insdelln movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
 getmouse			test: bs knight movewindow ncurses
 getn_wstr			test: test_get_wstr
 getnstr				test: filter ncurses test_getstr
@@ -310,10 +310,11 @@
 getstr				test: test_getstr
 getwin				test: ncurses
 halfdelay			test: view
-has_colors			test: background bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testcurs view worm xmas
+has_colors			test: background bs cardfile chgat clip_printw color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide insdelln inserts knight ncurses newdemo rain savescreen tclock testcurs view worm xmas
 has_ic				test: lrtest
 has_il				lib: ncurses
 has_key				lib: ncurses
+has_mouse			-
 hline				test: gdc ncurses
 hline_set			-
 idcok				test: test_opaque
@@ -326,16 +327,16 @@
 inchnstr			test: inchs
 inchstr				test: inchs
 init_color			test: ncurses
-init_pair			test: background blue bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
-initscr				test: background blue bs cardfile chgat color_set demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar firework firstlast gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
+init_pair			test: background blue bs cardfile chgat clip_printw color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide insdelln inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
+initscr				test: background blue bs cardfile chgat clip_printw color_set demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar filter firework firstlast gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
 innstr				test: test_instr
 innwstr				test: test_inwstr
 ins_nwstr			test: ins_wide
 ins_wch				test: ins_wide
 ins_wstr			test: ins_wide
 insch				test: ins_wide inserts
-insdelln			-
-insertln			-
+insdelln			test: insdelln
+insertln			test: insdelln
 insnstr				test: inserts
 insstr				test: inserts
 instr				test: test_instr
@@ -360,7 +361,7 @@
 keybound			test: demo_altkeys demo_defkey
 keyname				test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw testcurs view progs: tic
 keyok				test: demo_keyok foldkeys
-keypad				test: bs cardfile chgat demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto edit_field filter firework foldkeys hashtest inch_wide inchs ins_wide inserts key_names keynames knight lrtest movewindow ncurses redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view
+keypad				test: bs cardfile chgat clip_printw demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto edit_field filter firework foldkeys hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest movewindow ncurses redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view
 killchar			lib: ncurses
 killwchar			-
 leaveok				test: hanoi test_opaque
@@ -450,7 +451,7 @@
 mvwinsstr			test: inserts testcurs
 mvwinstr			test: test_instr
 mvwinwstr			test: test_inwstr
-mvwprintw			test: chgat demo_panels inch_wide inchs ncurses test_instr test_inwstr testcurs
+mvwprintw			test: chgat clip_printw demo_panels inch_wide inchs insdelln ncurses test_instr test_inwstr testcurs
 mvwscanw			test: testcurs
 mvwvline			test: ins_wide inserts movewindow
 mvwvline_set			-
@@ -458,11 +459,11 @@
 newpad				test: edit_field ncurses testcurs
 newscr				lib: ncurses
 newterm				test: demo_altkeys ditto dots_mvcur filter foldkeys gdc key_names keynames
-newwin				test: cardfile chgat demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto edit_field firstlast inch_wide inchs ins_wide inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs xmas
+newwin				test: cardfile chgat clip_printw demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto edit_field firstlast inch_wide inchs ins_wide insdelln inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs xmas
 nl				test: demo_forms ncurses rain testcurs
 nocbreak			test: testcurs
 nodelay				test: ditto firework gdc lrtest ncurses newdemo rain tclock test_opaque view worm xmas
-noecho				test: background bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
+noecho				test: background bs cardfile chgat clip_printw color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
 nofilter			-
 nonl				test: bs demo_forms hashtest movewindow ncurses view worm xmas
 noqiflush			-
@@ -501,14 +502,14 @@
 scr_set				test: savescreen
 scrl				test: view
 scroll				test: testcurs
-scrollok			test: demo_altkeys demo_defkey demo_keyok demo_panels ditto foldkeys hashtest knight ncurses redraw test_opaque testcurs testscanw view
+scrollok			test: clip_printw demo_altkeys demo_defkey demo_keyok demo_panels ditto foldkeys hashtest knight ncurses redraw test_opaque testcurs testscanw view
 set_curterm			lib: ncurses
 set_escdelay			test: test_opaque
 set_tabsize			test: test_opaque
 set_term			lib: ncurses
 setcchar			test: demo_panels ins_wide ncurses view
 setscrreg			test: view
-setupterm			test: dots progs: clear tput tset
+setupterm			test: dots progs: clear tabs tput tset
 slk_attr			-
 slk_attr_off			-
 slk_attr_on			-
@@ -528,8 +529,8 @@
 slk_wset			test: ncurses
 standend			test: blue gdc ncurses
 standout			test: blue ncurses
-start_color			test: background blue bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
-stdscr				test: bs chgat demo_altkeys demo_forms demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts key_names keynames knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view worm xmas
+start_color			test: background blue bs cardfile chgat clip_printw color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide insdelln inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
+stdscr				test: bs chgat clip_printw demo_altkeys demo_forms demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide insdelln inserts key_names keynames knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view worm xmas
 strcodes			test: test_arrays progs: dump_entry
 strfnames			test: test_arrays progs: dump_entry
 strnames			test: foldkeys test_arrays progs: dump_entry infocmp tic
@@ -548,10 +549,10 @@
 tigetnum			test: ncurses progs: tput
 tigetstr			test: blue demo_defkey foldkeys testcurs progs: tput
 timeout				test: rain savescreen
-touchline			test: chgat
-touchwin			test: chgat demo_menus edit_field filter firstlast inch_wide inchs ins_wide inserts movewindow ncurses redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque xmas
-tparm				test: dots dots_mvcur progs: tic tput
-tputs				test: dots dots_mvcur railroad progs: clear tset
+touchline			test: chgat clip_printw insdelln
+touchwin			test: chgat clip_printw demo_menus edit_field filter firstlast inch_wide inchs ins_wide insdelln inserts movewindow ncurses redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque xmas
+tparm				test: dots dots_mvcur progs: tabs tic tput
+tputs				test: dots dots_mvcur railroad progs: clear tabs tset
 trace				test: demo_menus hanoi hashtest lrtest ncurses testcurs view worm
 ttytype				lib: ncurses
 typeahead			test: testcurs
@@ -572,7 +573,7 @@
 vidputs				lib: ncurses
 vline				test: gdc ncurses
 vline_set			-
-vw_printw			-
+vw_printw			test: clip_printw
 vw_scanw			-
 vwprintw			test: movewindow
 vwscanw				lib: ncurses
@@ -584,7 +585,7 @@
 waddchstr			-
 waddnstr			lib: menu
 waddnwstr			test: ncurses
-waddstr				test: chgat demo_forms demo_panels edit_field firstlast ins_wide knight ncurses redraw testcurs
+waddstr				test: chgat clip_printw demo_forms demo_panels edit_field firstlast ins_wide insdelln knight ncurses redraw testcurs
 waddwstr			test: ins_wide test_get_wstr
 wattr_get			-
 wattr_off			lib: ncurses
@@ -592,21 +593,21 @@
 wattr_set			-
 wattroff			test: demo_forms ncurses testcurs xmas
 wattron				test: testcurs xmas
-wattrset			test: demo_forms ncurses newdemo test_get_wstr test_getstr testcurs xmas
+wattrset			test: clip_printw demo_forms insdelln ncurses newdemo test_get_wstr test_getstr testcurs xmas
 wbkgd				test: cardfile demo_forms demo_menus ncurses newdemo testcurs
 wbkgdset			test: demo_panels ins_wide inserts ncurses
 wbkgrnd				lib: ncurses
 wbkgrndset			lib: ncurses
-wborder				lib: ncurses
-wborder_set			lib: ncurses
+wborder				test: ncurses
+wborder_set			test: ncurses
 wchgat				test: chgat test_get_wstr test_getstr view
 wclear				test: ncurses test_opaque testcurs
 wclrtobot			test: firstlast inch_wide inchs ncurses test_instr test_inwstr testcurs
-wclrtoeol			test: chgat demo_defkey demo_keyok demo_panels firstlast inch_wide inchs ins_wide inserts knight ncurses test_instr test_inwstr testcurs
+wclrtoeol			test: chgat clip_printw demo_defkey demo_keyok demo_panels firstlast inch_wide inchs ins_wide insdelln inserts knight ncurses test_instr test_inwstr testcurs
 wcolor_set			lib: ncurses
 wcursyncup			lib: form
 wdelch				test: ncurses testcurs
-wdeleteln			test: testcurs
+wdeleteln			test: insdelln testcurs
 wecho_wchar			lib: ncurses
 wechochar			lib: ncurses
 wenclose			lib: form
@@ -614,7 +615,7 @@
 wget_wch			test: ins_wide ncurses
 wget_wstr			test: test_get_wstr
 wgetbkgrnd			lib: ncurses
-wgetch				test: cardfile chgat demo_defkey demo_keyok demo_menus demo_panels ditto edit_field gdc inserts knight movewindow ncurses newdemo rain redraw test_opaque testcurs worm
+wgetch				test: cardfile chgat clip_printw demo_defkey demo_keyok demo_menus demo_panels ditto edit_field gdc insdelln inserts knight movewindow ncurses newdemo rain redraw test_opaque testcurs worm
 wgetn_wstr			test: ncurses test_get_wstr
 wgetnstr			test: ncurses test_getstr
 wgetparent			test: test_opaque
@@ -634,18 +635,18 @@
 wins_wch			test: ins_wide
 wins_wstr			test: ins_wide
 winsch				test: ins_wide inserts testcurs
-winsdelln			lib: ncurses
-winsertln			test: testcurs
+winsdelln			test: insdelln
+winsertln			test: insdelln testcurs
 winsnstr			test: inserts
 winsstr				test: inserts
 winstr				test: test_instr
 winwstr				test: test_inwstr
 wmouse_trafo			lib: form
-wmove				test: chgat demo_altkeys demo_defkey demo_keyok demo_menus demo_panels firstlast foldkeys inch_wide inchs ins_wide inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs worm
+wmove				test: chgat clip_printw demo_altkeys demo_defkey demo_keyok demo_menus demo_panels firstlast foldkeys inch_wide inchs ins_wide insdelln inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs worm
 wnoutrefresh			test: demo_menus ditto edit_field inch_wide inchs ins_wide inserts knight movewindow ncurses redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque
-wprintw				test: chgat demo_defkey demo_forms demo_keyok demo_menus demo_panels edit_field inch_wide inchs ins_wide inserts knight movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
+wprintw				test: chgat clip_printw demo_defkey demo_forms demo_keyok demo_menus demo_panels edit_field inch_wide inchs ins_wide insdelln inserts knight movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
 wredrawln			test: redraw
-wrefresh			test: chgat demo_forms demo_keyok demo_menus demo_panels edit_field firstlast knight lrtest movewindow ncurses newdemo redraw savescreen tclock testcurs view worm xmas
+wrefresh			test: chgat clip_printw demo_forms demo_keyok demo_menus demo_panels edit_field firstlast insdelln knight lrtest movewindow ncurses newdemo redraw savescreen tclock testcurs view worm xmas
 wresize				test: cardfile ncurses
 wscanw				test: testcurs
 wscrl				test: ncurses testcurs
diff -Naur ncurses-5.7.orig/test/test.priv.h ncurses-5.7/test/test.priv.h
--- ncurses-5.7.orig/test/test.priv.h	2008-10-04 14:53:41.000000000 -0700
+++ ncurses-5.7/test/test.priv.h	2009-06-05 14:01:49.000000000 -0700
@@ -29,7 +29,7 @@
 /****************************************************************************
  *  Author: Thomas E. Dickey                    1996-on                     *
  ****************************************************************************/
-/* $Id: test.priv.h,v 1.79 2008/10/04 21:53:41 tom Exp $ */
+/* $Id: test.priv.h,v 1.81 2008/12/28 20:20:39 juergen Exp $ */
 
 #ifndef __TEST_PRIV_H
 #define __TEST_PRIV_H 1
@@ -359,6 +359,9 @@
 #define KEY_MIN 256	/* not defined in Solaris 8 */
 #endif
 
+#define colored_chtype(ch, attr, pair) \
+	((ch) | (attr) | COLOR_PAIR(pair))
+
 /*
  * Workaround for HPUX
  */
@@ -464,6 +467,14 @@
 #define EXIT_FAILURE 1
 #endif
 
+#ifdef __MINGW32__
+#include <nc_mingw.h>
+/* conflicts in test/firstlast.c */
+#undef large
+#undef small
+
+#endif
+
 /* Use this to quiet gcc's -Wwrite-strings warnings, but accommodate SVr4
  * curses which doesn't have const parameters declared (so far) in the places
  * that XSI shows.
@@ -560,7 +571,7 @@
 #define USING_SCREEN(s,func,data) use_screen(s, (NCURSES_SCREEN_CB) func, data)
 #define WANT_USE_SCREEN() extern void _nc_want_use_screen(void)
 #else
-#define USING_SCREEN(s,func,data) func(s,data)
+#define USING_SCREEN(s,func,data) func(data)
 #define WANT_USE_SCREEN() extern void _nc_want_use_screen(void)
 #endif
 
diff -Naur ncurses-5.7.orig/test/view.c ncurses-5.7/test/view.c
--- ncurses-5.7.orig/test/view.c	2008-09-06 15:10:50.000000000 -0700
+++ ncurses-5.7/test/view.c	2009-06-05 14:01:49.000000000 -0700
@@ -50,7 +50,7 @@
  * scroll operation worked, and the refresh() code only had to do a
  * partial repaint.
  *
- * $Id: view.c,v 1.69 2008/09/06 22:10:50 tom Exp $
+ * $Id: view.c,v 1.70 2008/11/16 00:19:59 juergen Exp $
  */
 
 #include <test.priv.h>
@@ -62,8 +62,10 @@
 #if HAVE_TERMIOS_H
 # include <termios.h>
 #else
+#if !defined(__MINGW32__)
 # include <sgtty.h>
 #endif
+#endif
 
 #if !defined(sun) || !HAVE_TERMIOS_H
 # if HAVE_SYS_IOCTL_H
diff -Naur ncurses-5.7.orig/test/worm.c ncurses-5.7/test/worm.c
--- ncurses-5.7.orig/test/worm.c	2008-10-04 14:54:09.000000000 -0700
+++ ncurses-5.7/test/worm.c	2009-06-05 14:01:49.000000000 -0700
@@ -61,7 +61,7 @@
   traces will be dumped.  The program stops and waits for one character of
   input at the beginning and end of the interval.
 
-  $Id: worm.c,v 1.58 2008/10/04 21:54:09 tom Exp $
+  $Id: worm.c,v 1.59 2008/11/16 00:19:59 juergen Exp $
 */
 
 #include <test.priv.h>
@@ -330,7 +330,11 @@
     while (!quit_worm(((struct worm *) arg) - worm)) {
 	while (compare < sequence) {
 	    ++compare;
+#if HAVE_USE_WINDOW
 	    use_window(stdscr, draw_worm, arg);
+#else
+	    draw_worm(stdscr, arg);
+#endif
 	}
     }
     Trace(("...start_worm (done)"));
@@ -356,7 +360,13 @@
     }
 #else
     for (n = 0, w = &worm[0]; n < number; n++, w++) {
-	if (USING_WINDOW2(stdscr, draw_worm, w))
+	if (
+#if HAVE_USE_WINDOW
+	       USING_WINDOW2(stdscr, draw_worm, w)
+#else
+	       draw_worm(stdscr, w)
+#endif
+	    )
 	    done = TRUE;
     }
 #endif
diff -Naur ncurses-5.7.orig/TO-DO ncurses-5.7/TO-DO
--- ncurses-5.7.orig/TO-DO	2008-10-11 12:22:27.000000000 -0700
+++ ncurses-5.7/TO-DO	2009-06-05 14:00:53.000000000 -0700
@@ -25,7 +25,7 @@
 -- sale, use or other dealings in this Software without prior written        --
 -- authorization.                                                            --
 -------------------------------------------------------------------------------
--- $Id: TO-DO,v 1.51 2008/10/11 19:22:27 tom Exp $
+-- $Id: TO-DO,v 1.53 2008/11/28 16:39:12 tom Exp $
 -------------------------------------------------------------------------------
 
 SHORT-TERM TO-DO ITEMS:
@@ -45,7 +45,7 @@
 + Scrolling optimization has holes:  for example, it forces repaints of the
   screen between calls to refresh().
 
-+ SVr4 uses slightly different rules for determining when softkeys are shown. 
++ SVr4 uses slightly different rules for determining when softkeys are shown.
   For example, they are initially displayed (before the ncurses 'e' test
   activates them), and a touchwin can apparently also force them to be
   displayed.
@@ -58,7 +58,7 @@
 + The window classes defined in the c++ subdirectory need documentation.  Some
   C++ programmer could earn a lot of good karma by doing this...
 
-+ vid_attr() should support the set_a_attributes (sgr1) string, but does not. 
++ vid_attr() should support the set_a_attributes (sgr1) string, but does not.
   There appear to be no terminals that require that functionality.
 
 + the configure --disable-ext-funcs option does not work for Ada95 tree.
@@ -66,6 +66,24 @@
 + the --with-pthread configuration builds for Cygwin, but does not work
   properly (test/worm.c shows all of the worms in the same location).
 
++ the Ada95 tree requires a small fix to build on Cygwin, since the GNAT port
+  to that platform provides an incomplete Interrupts.Names package.  For
+  instance (your gcc version may be different):
+        /usr/lib/gcc/i686-pc-cygwin/3.4.4/adainclude/a-intnam.ads
+
+  cut here...
+-------------------------------------------------------------------------------
+--- a-intnam.ads.orig   2003-10-21 13:41:51.000000000 +0000
++++ a-intnam.ads        2007-05-05 22:40:02.609375000 +0000
+@@ -44,5 +44,6 @@
+
+    DUMMY_INTERRUPT_1 : constant Interrupt_ID := 1;
+    DUMMY_INTERRUPT_2 : constant Interrupt_ID := 2;
++   SIGINT : constant Interrupt_ID := 2;
+
+ end Ada.Interrupts.Names;
+-------------------------------------------------------------------------------
+
 + the --enable-rpath configure option builds for the corresponding platforms;
   however combining it with --with-ticlib and --with-termlib does not always
   produce libraries that can be run without setting environment variables.
@@ -122,7 +140,7 @@
 2. DOS port
 
 Only a few of the files in the library depend on the terminfo format.
-It should be possible to further kernelize the package, then rewrite 
+It should be possible to further kernelize the package, then rewrite
 a small number of core files to produce a functionally-compatible
 port that would do updates to a memory-mapped screen area.  The first
 result of this would be a DOS port.
@@ -195,10 +213,10 @@
 		move_insert, dest_tabs_magic_smso, transparent_underline,
 		needs_xon_xoff, hard_cursor.
 	Numerics: lines_of_memory, buttons.
-	Strings: pkey_key, pkey_local, pkey_xmit, underline_char, 
-		enter_xon_mode,	exit_xon_mode, xon_character, xoff_character, 
+	Strings: pkey_key, pkey_local, pkey_xmit, underline_char,
+		enter_xon_mode,	exit_xon_mode, xon_character, xoff_character,
 		display_clock, remove_clock, user[0-5], display_pc_char,
-		enter_scancode_mode, exit_scancode_mode, pc_term_options, 
+		enter_scancode_mode, exit_scancode_mode, pc_term_options,
 		scancode_escape, alt_scancode_esc.
 
 These are the potentially important ones for ncurses.  Notes:
