Submitted By: Jim Gifford (jim at cross-lfs dot org) Date: 09-12-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-20090906. 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-09-12 08:51:54.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.488 2009/07/17 09:14:49 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 <&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 <> Makefile <> Makefile <&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 <&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 ],[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: 29 updated: 2009/07/16 21:07:04 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 @@ -5563,13 +5721,16 @@ cf_XOPEN_SOURCE=600 CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ;; +hpux11*) #(vi + CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE=500" + ;; hpux*) #(vi CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE" ;; 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-09-12 08:51:08.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-09-12 08:51:23.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-09-12 08:51:08.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-09-12 08:51:08.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-09-12 08:51:08.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-09-12 08:50: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-09-12 08:51:25.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-09-12 08:51:35.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-09-12 08:51:35.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 +#undef KEY_EVENT +#endif + #ifndef _QNX_SOURCE #include #include 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-09-12 08:51:25.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-09-12 08:51:04.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-09-12 08:51:04.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-09-12 08:52:04.000000000 -0700 @@ -1,7 +1,7 @@ #! /bin/sh -# From configure.in Revision: 1.454 . +# From configure.in Revision: 1.473 . # 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: @@ -752,6 +755,7 @@ --with-chtype=TYPE override type of chtype --with-ospeed=TYPE override type of ospeed variable --with-mmask-t=TYPE override type of mmask_t + --with-ccharw-max=XXX override size CCHARW_MAX --with-rcs-ids compile-in RCS identifiers Options to Specify How Manpages are Installed: --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and @@ -762,6 +766,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 +785,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 +876,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 +1000,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:1003: 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 +1011,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:1014: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; @@ -1013,7 +1019,7 @@ esac fi else - { echo "$as_me:1016: creating cache $cache_file" >&5 + { echo "$as_me:1022: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi @@ -1029,21 +1035,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:1038: 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:1042: 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:1048: 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:1050: 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:1052: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; @@ -1062,9 +1068,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:1071: 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:1073: 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 +1091,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:1094: PATH=\".;.\"; conftest.sh") >&5 (PATH=".;."; conftest.sh) 2>&5 ac_status=$? - echo "$as_me:1091: \$? = $ac_status" >&5 + echo "$as_me:1097: \$? = $ac_status" >&5 (exit $ac_status); }; then ac_path_separator=';' else @@ -1101,7 +1107,7 @@ top_builddir=`pwd` -echo "$as_me:1104: checking for egrep" >&5 +echo "$as_me:1110: 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 +1117,11 @@ else ac_cv_prog_egrep='egrep' fi fi -echo "$as_me:1114: result: $ac_cv_prog_egrep" >&5 +echo "$as_me:1120: 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:1124: error: No egrep program found" >&5 echo "$as_me: error: No egrep program found" >&2;} { (exit 1); exit 1; }; } @@ -1125,7 +1131,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:1134: 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 +1139,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:1142: 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 +1152,13 @@ [0-9]*) #(vi ;; *) - { { echo "$as_me:1149: error: Release major-version is not a number: $NCURSES_MAJOR" >&5 + { { echo "$as_me:1155: 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:1161: 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 +1168,13 @@ [0-9]*) #(vi ;; *) - { { echo "$as_me:1165: error: Release minor-version is not a number: $NCURSES_MINOR" >&5 + { { echo "$as_me:1171: 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:1177: 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 +1184,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:1187: 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 +1194,13 @@ [0-9]*) #(vi ;; *) - { { echo "$as_me:1191: error: ABI version is not a number: $cf_cv_abi_version" >&5 + { { echo "$as_me:1197: 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:1203: error: ABI version value is empty" >&5 echo "$as_me: error: ABI version value is empty" >&2;} { (exit 1); exit 1; }; } fi @@ -1216,7 +1222,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:1225: 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 +1232,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:1235: 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:1239: 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 +1245,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:1248: 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:1252: 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:1257: 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:1264: 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 +1270,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:1273: 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:1278: 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 +1283,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:1286: 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 +1292,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:1295: 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:1300: 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 +1328,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:1331: 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:1335: 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:1337: 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 +1342,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:1345: 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 +1352,7 @@ ### Default install-location -echo "$as_me:1349: checking for prefix" >&5 +echo "$as_me:1355: 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 +1364,11 @@ ;; esac fi -echo "$as_me:1361: result: $prefix" >&5 +echo "$as_me:1367: 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:1371: 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 +1391,7 @@ fi test -n "$verbose" && echo " tested $cf_dir" 1>&6 done -echo "$as_me:1388: result: $includedir" >&5 +echo "$as_me:1394: result: $includedir" >&5 echo "${ECHO_T}$includedir" >&6 fi @@ -1399,7 +1405,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:1408: 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 +1420,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:1423: found $ac_dir/$ac_word" >&5 break done @@ -1422,10 +1428,10 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:1425: result: $CC" >&5 + echo "$as_me:1431: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else - echo "$as_me:1428: result: no" >&5 + echo "$as_me:1434: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1434,7 +1440,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:1443: 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 +1455,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:1458: found $ac_dir/$ac_word" >&5 break done @@ -1457,10 +1463,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:1466: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else - echo "$as_me:1463: result: no" >&5 + echo "$as_me:1469: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1473,7 +1479,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:1482: 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 +1494,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:1497: found $ac_dir/$ac_word" >&5 break done @@ -1496,10 +1502,10 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:1499: result: $CC" >&5 + echo "$as_me:1505: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else - echo "$as_me:1502: result: no" >&5 + echo "$as_me:1508: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1508,7 +1514,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:1517: 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 +1529,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:1532: found $ac_dir/$ac_word" >&5 break done @@ -1531,10 +1537,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:1540: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else - echo "$as_me:1537: result: no" >&5 + echo "$as_me:1543: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1547,7 +1553,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:1556: 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 +1573,7 @@ continue fi ac_cv_prog_CC="cc" -echo "$as_me:1570: found $ac_dir/$ac_word" >&5 +echo "$as_me:1576: found $ac_dir/$ac_word" >&5 break done @@ -1589,10 +1595,10 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:1592: result: $CC" >&5 + echo "$as_me:1598: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else - echo "$as_me:1595: result: no" >&5 + echo "$as_me:1601: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1603,7 +1609,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:1612: 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 +1624,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:1627: found $ac_dir/$ac_word" >&5 break done @@ -1626,10 +1632,10 @@ fi CC=$ac_cv_prog_CC if test -n "$CC"; then - echo "$as_me:1629: result: $CC" >&5 + echo "$as_me:1635: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else - echo "$as_me:1632: result: no" >&5 + echo "$as_me:1638: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1642,7 +1648,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:1651: 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 +1663,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:1666: found $ac_dir/$ac_word" >&5 break done @@ -1665,10 +1671,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:1674: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else - echo "$as_me:1671: result: no" >&5 + echo "$as_me:1677: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -1680,32 +1686,32 @@ fi -test -z "$CC" && { { echo "$as_me:1683: error: no acceptable cc found in \$PATH" >&5 +test -z "$CC" && { { echo "$as_me:1689: 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:1694:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:1691: \"$ac_compiler --version &5\"") >&5 +{ (eval echo "$as_me:1697: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? - echo "$as_me:1694: \$? = $ac_status" >&5 + echo "$as_me:1700: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:1696: \"$ac_compiler -v &5\"") >&5 +{ (eval echo "$as_me:1702: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? - echo "$as_me:1699: \$? = $ac_status" >&5 + echo "$as_me:1705: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:1701: \"$ac_compiler -V &5\"") >&5 +{ (eval echo "$as_me:1707: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? - echo "$as_me:1704: \$? = $ac_status" >&5 + echo "$as_me:1710: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF -#line 1708 "configure" +#line 1714 "configure" #include "confdefs.h" int @@ -1721,13 +1727,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:1730: 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:1733: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? - echo "$as_me:1730: \$? = $ac_status" >&5 + echo "$as_me:1736: \$? = $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 +1742,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 +1756,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:1759: 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:1765: 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:1770: 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:1776: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1773: \$? = $ac_status" >&5 + echo "$as_me:1779: \$? = $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:1786: 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 +1791,24 @@ fi fi fi -echo "$as_me:1788: result: yes" >&5 +echo "$as_me:1794: 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:1801: 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:1803: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 -echo "$as_me:1800: checking for executable suffix" >&5 +echo "$as_me:1806: 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:1808: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:1805: \$? = $ac_status" >&5 + echo "$as_me:1811: \$? = $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 +1816,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 +1824,25 @@ esac done else - { { echo "$as_me:1821: error: cannot compute EXEEXT: cannot compile and link" >&5 + { { echo "$as_me:1827: 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:1833: 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:1839: 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 1845 "configure" #include "confdefs.h" int @@ -1848,14 +1854,14 @@ } _ACEOF rm -f conftest.o conftest.obj -if { (eval echo "$as_me:1851: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1857: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1854: \$? = $ac_status" >&5 + echo "$as_me:1860: \$? = $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 +1869,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:1872: 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:1879: 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:1883: 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 1889 "configure" #include "confdefs.h" int @@ -1895,16 +1901,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:1898: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1904: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1901: \$? = $ac_status" >&5 + echo "$as_me:1907: \$? = $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:1910: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1907: \$? = $ac_status" >&5 + echo "$as_me:1913: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else @@ -1916,19 +1922,19 @@ ac_cv_c_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:1919: result: $ac_cv_c_compiler_gnu" >&5 +echo "$as_me:1925: 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:1931: 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 1937 "configure" #include "confdefs.h" int @@ -1940,16 +1946,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:1943: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1949: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1946: \$? = $ac_status" >&5 + echo "$as_me:1952: \$? = $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:1955: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1952: \$? = $ac_status" >&5 + echo "$as_me:1958: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else @@ -1959,7 +1965,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:1968: 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 +1992,16 @@ #endif _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:1989: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:1995: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:1992: \$? = $ac_status" >&5 + echo "$as_me:1998: \$? = $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:2001: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:1998: \$? = $ac_status" >&5 + echo "$as_me:2004: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ ''\ @@ -2007,7 +2013,7 @@ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF -#line 2010 "configure" +#line 2016 "configure" #include "confdefs.h" #include $ac_declaration @@ -2020,16 +2026,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2023: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2029: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2026: \$? = $ac_status" >&5 + echo "$as_me:2032: \$? = $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:2035: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2032: \$? = $ac_status" >&5 + echo "$as_me:2038: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -2039,7 +2045,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 2042 "configure" +#line 2048 "configure" #include "confdefs.h" $ac_declaration int @@ -2051,16 +2057,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2054: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2060: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2057: \$? = $ac_status" >&5 + echo "$as_me:2063: \$? = $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:2066: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2063: \$? = $ac_status" >&5 + echo "$as_me:2069: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -2090,11 +2096,11 @@ GCC_VERSION=none if test "$GCC" = yes ; then - echo "$as_me:2093: checking version of $CC" >&5 + echo "$as_me:2099: 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:2103: result: $GCC_VERSION" >&5 echo "${ECHO_T}$GCC_VERSION" >&6 fi @@ -2104,7 +2110,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:2113: 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 +2131,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 2134 "configure" #include "confdefs.h" #include Syntax error _ACEOF -if { (eval echo "$as_me:2133: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:2139: \"$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:2145: \$? = $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 +2165,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 2168 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:2166: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:2172: \"$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:2178: \$? = $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 +2212,7 @@ else ac_cv_prog_CPP=$CPP fi -echo "$as_me:2209: result: $CPP" >&5 +echo "$as_me:2215: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes @@ -2216,18 +2222,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 2225 "configure" #include "confdefs.h" #include Syntax error _ACEOF -if { (eval echo "$as_me:2224: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:2230: \"$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:2236: \$? = $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 +2256,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 2259 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:2257: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:2263: \"$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:2269: \$? = $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 +2294,7 @@ if $ac_preproc_ok; then : else - { { echo "$as_me:2291: error: C preprocessor \"$CPP\" fails sanity check" >&5 + { { echo "$as_me:2297: 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 +2307,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:2310: 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 2317 "configure" #include "confdefs.h" #include int Autoconf = TIOCGETP; @@ -2323,7 +2329,7 @@ if test $ac_cv_prog_gcc_traditional = no; then cat >conftest.$ac_ext <<_ACEOF -#line 2326 "configure" +#line 2332 "configure" #include "confdefs.h" #include int Autoconf = TCGETA; @@ -2336,14 +2342,14 @@ fi fi -echo "$as_me:2339: result: $ac_cv_prog_gcc_traditional" >&5 +echo "$as_me:2345: 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:2352: 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 +2365,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:2368: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2365: \$? = $ac_status" >&5 + echo "$as_me:2371: \$? = $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:2373: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2370: \$? = $ac_status" >&5 + echo "$as_me:2376: \$? = $ac_status" >&5 (exit $ac_status); }; then eval cf_cv_prog_CC_c_o=yes @@ -2378,19 +2384,19 @@ fi if test $cf_cv_prog_CC_c_o = yes; then - echo "$as_me:2381: result: yes" >&5 + echo "$as_me:2387: result: yes" >&5 echo "${ECHO_T}yes" >&6 else - echo "$as_me:2384: result: no" >&5 + echo "$as_me:2390: result: no" >&5 echo "${ECHO_T}no" >&6 fi -echo "$as_me:2388: checking for POSIXized ISC" >&5 +echo "$as_me:2394: 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:2399: result: yes" >&5 echo "${ECHO_T}yes" >&6 ISC=yes # If later tests want to check for ISC. @@ -2404,12 +2410,12 @@ CC="$CC -Xp" fi else - echo "$as_me:2407: result: no" >&5 + echo "$as_me:2413: 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:2418: 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 +2500,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 +2509,7 @@ fi cat >conftest.$ac_ext <<_ACEOF -#line 2506 "configure" +#line 2512 "configure" #include "confdefs.h" #ifndef CC_HAS_PROTOS @@ -2524,16 +2530,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2527: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2533: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2530: \$? = $ac_status" >&5 + echo "$as_me:2536: \$? = $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:2539: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2536: \$? = $ac_status" >&5 + echo "$as_me:2542: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_ansi_cc="$cf_arg"; break else @@ -2546,7 +2552,7 @@ CPPFLAGS="$cf_save_CPPFLAGS" fi -echo "$as_me:2549: result: $cf_cv_ansi_cc" >&5 +echo "$as_me:2555: result: $cf_cv_ansi_cc" >&5 echo "${ECHO_T}$cf_cv_ansi_cc" >&6 if test "$cf_cv_ansi_cc" != "no"; then @@ -2612,7 +2618,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 +2635,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:2638: 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 +2669,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:2678: 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 +2692,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:2695: found $ac_dir/$ac_word" >&5 break fi done @@ -2697,10 +2703,10 @@ LDCONFIG=$ac_cv_path_LDCONFIG if test -n "$LDCONFIG"; then - echo "$as_me:2700: result: $LDCONFIG" >&5 + echo "$as_me:2706: result: $LDCONFIG" >&5 echo "${ECHO_T}$LDCONFIG" >&6 else - echo "$as_me:2703: result: no" >&5 + echo "$as_me:2709: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2708,7 +2714,7 @@ esac fi -echo "$as_me:2711: checking if you want to ensure bool is consistent with C++" >&5 +echo "$as_me:2717: 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 +2724,7 @@ else cf_with_cxx=yes fi; -echo "$as_me:2721: result: $cf_with_cxx" >&5 +echo "$as_me:2727: result: $cf_with_cxx" >&5 echo "${ECHO_T}$cf_with_cxx" >&6 if test "X$cf_with_cxx" = Xno ; then CXX="" @@ -2736,7 +2742,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:2745: 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 +2757,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:2760: found $ac_dir/$ac_word" >&5 break done @@ -2759,10 +2765,10 @@ fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then - echo "$as_me:2762: result: $CXX" >&5 + echo "$as_me:2768: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else - echo "$as_me:2765: result: no" >&5 + echo "$as_me:2771: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2775,7 +2781,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:2784: 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 +2796,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:2799: found $ac_dir/$ac_word" >&5 break done @@ -2798,10 +2804,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:2807: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6 else - echo "$as_me:2804: result: no" >&5 + echo "$as_me:2810: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -2813,32 +2819,32 @@ fi # Provide some information about the compiler. -echo "$as_me:2816:" \ +echo "$as_me:2822:" \ "checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:2819: \"$ac_compiler --version &5\"") >&5 +{ (eval echo "$as_me:2825: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? - echo "$as_me:2822: \$? = $ac_status" >&5 + echo "$as_me:2828: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:2824: \"$ac_compiler -v &5\"") >&5 +{ (eval echo "$as_me:2830: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? - echo "$as_me:2827: \$? = $ac_status" >&5 + echo "$as_me:2833: \$? = $ac_status" >&5 (exit $ac_status); } -{ (eval echo "$as_me:2829: \"$ac_compiler -V &5\"") >&5 +{ (eval echo "$as_me:2835: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? - echo "$as_me:2832: \$? = $ac_status" >&5 + echo "$as_me:2838: \$? = $ac_status" >&5 (exit $ac_status); } -echo "$as_me:2835: checking whether we are using the GNU C++ compiler" >&5 +echo "$as_me:2841: 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 2847 "configure" #include "confdefs.h" int @@ -2853,16 +2859,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2856: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2862: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2859: \$? = $ac_status" >&5 + echo "$as_me:2865: \$? = $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:2868: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2865: \$? = $ac_status" >&5 + echo "$as_me:2871: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else @@ -2874,19 +2880,19 @@ ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi -echo "$as_me:2877: result: $ac_cv_cxx_compiler_gnu" >&5 +echo "$as_me:2883: 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:2889: 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 2895 "configure" #include "confdefs.h" int @@ -2898,16 +2904,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2901: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2907: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2904: \$? = $ac_status" >&5 + echo "$as_me:2910: \$? = $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:2913: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2910: \$? = $ac_status" >&5 + echo "$as_me:2916: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cxx_g=yes else @@ -2917,7 +2923,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:2926: 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 +2950,7 @@ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF -#line 2947 "configure" +#line 2953 "configure" #include "confdefs.h" #include $ac_declaration @@ -2957,16 +2963,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2960: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2966: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2963: \$? = $ac_status" >&5 + echo "$as_me:2969: \$? = $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:2972: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:2969: \$? = $ac_status" >&5 + echo "$as_me:2975: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -2976,7 +2982,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 2979 "configure" +#line 2985 "configure" #include "confdefs.h" $ac_declaration int @@ -2988,16 +2994,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:2991: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:2997: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:2994: \$? = $ac_status" >&5 + echo "$as_me:3000: \$? = $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:3003: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:3000: \$? = $ac_status" >&5 + echo "$as_me:3006: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -3024,7 +3030,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:3033: 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 +3047,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:3050: found $ac_dir/$ac_word" >&5 break fi done @@ -3052,16 +3058,16 @@ CXX=$ac_cv_path_CXX if test -n "$CXX"; then - echo "$as_me:3055: result: $CXX" >&5 + echo "$as_me:3061: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6 else - echo "$as_me:3058: result: no" >&5 + echo "$as_me:3064: 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:3070: WARNING: ignoring hardcoded g++" >&5 echo "$as_me: WARNING: ignoring hardcoded g++" >&2;} cf_with_cxx=no; CXX=""; GXX=""; fi @@ -3069,11 +3075,11 @@ GXX_VERSION=none if test "$GXX" = yes; then - echo "$as_me:3072: checking version of g++" >&5 + echo "$as_me:3078: 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:3082: result: $GXX_VERSION" >&5 echo "${ECHO_T}$GXX_VERSION" >&6 fi @@ -3081,12 +3087,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:3090: 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:3095: 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 +3102,10 @@ else cf_with_cxx_binding=$cf_with_cxx fi; -echo "$as_me:3099: result: $cf_with_cxx_binding" >&5 +echo "$as_me:3105: 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:3108: 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 +3115,23 @@ else cf_with_ada=yes fi; -echo "$as_me:3112: result: $cf_with_ada" >&5 +echo "$as_me:3118: 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:3121: 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:3131: result: $cf_with_manpages" >&5 +echo "${ECHO_T}$cf_with_manpages" >&6 + +echo "$as_me:3134: 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 +3141,10 @@ else cf_with_progs=yes fi; -echo "$as_me:3125: result: $cf_with_progs" >&5 +echo "$as_me:3144: 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:3147: 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 +3154,7 @@ else with_curses_h=yes fi; -echo "$as_me:3138: result: $with_curses_h" >&5 +echo "$as_me:3157: result: $with_curses_h" >&5 echo "${ECHO_T}$with_curses_h" >&6 modules_to_build="ncurses" @@ -3161,7 +3180,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:3183: 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 +3195,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:3198: found $ac_dir/$ac_word" >&5 break done @@ -3184,21 +3203,21 @@ fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then - echo "$as_me:3187: result: $AWK" >&5 + echo "$as_me:3206: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else - echo "$as_me:3190: result: no" >&5 + echo "$as_me:3209: 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:3216: 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:3220: 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 +3227,11 @@ else ac_cv_prog_egrep='egrep' fi fi -echo "$as_me:3211: result: $ac_cv_prog_egrep" >&5 +echo "$as_me:3230: 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:3234: error: No egrep program found" >&5 echo "$as_me: error: No egrep program found" >&2;} { (exit 1); exit 1; }; } @@ -3228,7 +3247,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:3250: 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 +3296,7 @@ INSTALL=$ac_install_sh fi fi -echo "$as_me:3280: result: $INSTALL" >&5 +echo "$as_me:3299: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. @@ -3302,7 +3321,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:3324: 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 +3336,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:3339: found $ac_dir/$ac_word" >&5 break done @@ -3325,28 +3344,28 @@ fi LINT=$ac_cv_prog_LINT if test -n "$LINT"; then - echo "$as_me:3328: result: $LINT" >&5 + echo "$as_me:3347: result: $LINT" >&5 echo "${ECHO_T}$LINT" >&6 else - echo "$as_me:3331: result: no" >&5 + echo "$as_me:3350: 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:3357: 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:3361: result: yes" >&5 echo "${ECHO_T}yes" >&6 else - echo "$as_me:3345: result: no, using $LN_S" >&5 + echo "$as_me:3364: 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:3368: 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 +3404,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:3407: 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 +3414,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:3419: 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:3429: 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:3439: 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:3456: 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:3468: result: $PKG_CONFIG" >&5 +echo "${ECHO_T}$PKG_CONFIG" >&6 +else + echo "$as_me:3471: 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:3509: 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:3518: 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:3535: result: $enable_pc_files" >&5 +echo "${ECHO_T}$enable_pc_files" >&6 + else + echo "$as_me:3538: result: no" >&5 +echo "${ECHO_T}no" >&6 + { echo "$as_me:3540: 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:3546: 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 +3553,11 @@ else enable_mixedcase=auto fi; -echo "$as_me:3408: result: $enable_mixedcase" >&5 +echo "$as_me:3556: 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:3560: 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 +3584,7 @@ fi fi -echo "$as_me:3439: result: $cf_cv_mixedcase" >&5 +echo "$as_me:3587: 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 +3601,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:3604: 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 +3621,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:3624: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else - echo "$as_me:3480: result: no" >&5 + echo "$as_me:3628: 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:3635: 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 +3647,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:3650: found $ac_dir/$ac_word" >&5 break done @@ -3508,17 +3656,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:3659: result: $MAKE_LOWER_TAGS" >&5 echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6 else - echo "$as_me:3514: result: no" >&5 + echo "$as_me:3662: 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:3669: 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 +3681,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:3684: found $ac_dir/$ac_word" >&5 break done @@ -3542,10 +3690,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:3693: result: $MAKE_UPPER_TAGS" >&5 echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6 else - echo "$as_me:3548: result: no" >&5 + echo "$as_me:3696: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3565,7 +3713,7 @@ MAKE_LOWER_TAGS="#" fi -echo "$as_me:3568: checking for makeflags variable" >&5 +echo "$as_me:3716: 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 +3747,13 @@ rm -f cf_makeflags.tmp fi -echo "$as_me:3602: result: $cf_cv_makeflags" >&5 +echo "$as_me:3750: 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:3756: 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 +3768,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:3771: found $ac_dir/$ac_word" >&5 break done @@ -3628,10 +3776,10 @@ fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then - echo "$as_me:3631: result: $RANLIB" >&5 + echo "$as_me:3779: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6 else - echo "$as_me:3634: result: no" >&5 + echo "$as_me:3782: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3640,7 +3788,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:3791: 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 +3803,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:3806: found $ac_dir/$ac_word" >&5 break done @@ -3664,10 +3812,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:3815: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6 else - echo "$as_me:3670: result: no" >&5 + echo "$as_me:3818: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3679,7 +3827,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:3830: 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 +3842,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:3845: found $ac_dir/$ac_word" >&5 break done @@ -3702,10 +3850,10 @@ fi LD=$ac_cv_prog_LD if test -n "$LD"; then - echo "$as_me:3705: result: $LD" >&5 + echo "$as_me:3853: result: $LD" >&5 echo "${ECHO_T}$LD" >&6 else - echo "$as_me:3708: result: no" >&5 + echo "$as_me:3856: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3714,7 +3862,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:3865: 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 +3877,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:3880: found $ac_dir/$ac_word" >&5 break done @@ -3738,10 +3886,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:3889: result: $ac_ct_LD" >&5 echo "${ECHO_T}$ac_ct_LD" >&6 else - echo "$as_me:3744: result: no" >&5 + echo "$as_me:3892: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3753,7 +3901,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:3904: 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 +3916,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:3919: found $ac_dir/$ac_word" >&5 break done @@ -3776,10 +3924,10 @@ fi AR=$ac_cv_prog_AR if test -n "$AR"; then - echo "$as_me:3779: result: $AR" >&5 + echo "$as_me:3927: result: $AR" >&5 echo "${ECHO_T}$AR" >&6 else - echo "$as_me:3782: result: no" >&5 + echo "$as_me:3930: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3788,7 +3936,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:3939: 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 +3951,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:3954: found $ac_dir/$ac_word" >&5 break done @@ -3812,10 +3960,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:3963: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6 else - echo "$as_me:3818: result: no" >&5 + echo "$as_me:3966: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3824,25 +3972,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:3978: 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:3993: found $ac_dir/$ac_word" >&5 +break +done + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + echo "$as_me:4001: result: $AR" >&5 +echo "${ECHO_T}$AR" >&6 +else + echo "$as_me:4004: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi -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 +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:4013: 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:4028: found $ac_dir/$ac_word" >&5 +break +done -if test -z "$AR_OPTS" ; then - AR_OPTS=rv + 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:4037: result: $ac_ct_AR" >&5 +echo "${ECHO_T}$ac_ct_AR" >&6 +else + echo "$as_me:4040: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + AR=$ac_ct_AR +else + AR="$ac_cv_prog_AR" fi -cf_cv_subst_AR_OPTS=$AR_OPTS -echo "$as_me:3840: result: $AR_OPTS" >&5 -echo "${ECHO_T}$AR_OPTS" >&6 +echo "$as_me:4049: 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 + + cat >conftest.$ac_ext <&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:4068: \$? = $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}:4078: 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:4086: 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:4091: 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 +4101,7 @@ ;; esac fi; -echo "$as_me:3858: result: $DESTDIR" >&5 +echo "$as_me:4104: result: $DESTDIR" >&5 echo "${ECHO_T}$DESTDIR" >&6 ############################################################################### @@ -3883,7 +4129,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:4132: 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 +4144,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:4147: found $ac_dir/$ac_word" >&5 break done @@ -3906,10 +4152,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:4155: result: $BUILD_CC" >&5 echo "${ECHO_T}$BUILD_CC" >&6 else - echo "$as_me:3912: result: no" >&5 + echo "$as_me:4158: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -3917,12 +4163,12 @@ done fi; - echo "$as_me:3920: checking for native build C compiler" >&5 + echo "$as_me:4166: 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:4168: result: $BUILD_CC" >&5 echo "${ECHO_T}$BUILD_CC" >&6 - echo "$as_me:3925: checking for native build C preprocessor" >&5 + echo "$as_me:4171: 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 +4178,10 @@ else BUILD_CPP='${BUILD_CC} -E' fi; - echo "$as_me:3935: result: $BUILD_CPP" >&5 + echo "$as_me:4181: result: $BUILD_CPP" >&5 echo "${ECHO_T}$BUILD_CPP" >&6 - echo "$as_me:3938: checking for native build C flags" >&5 + echo "$as_me:4184: 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 +4189,10 @@ withval="$with_build_cflags" BUILD_CFLAGS="$withval" fi; - echo "$as_me:3946: result: $BUILD_CFLAGS" >&5 + echo "$as_me:4192: 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:4195: 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 +4200,10 @@ withval="$with_build_cppflags" BUILD_CPPFLAGS="$withval" fi; - echo "$as_me:3957: result: $BUILD_CPPFLAGS" >&5 + echo "$as_me:4203: result: $BUILD_CPPFLAGS" >&5 echo "${ECHO_T}$BUILD_CPPFLAGS" >&6 - echo "$as_me:3960: checking for native build linker-flags" >&5 + echo "$as_me:4206: 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 +4211,10 @@ withval="$with_build_ldflags" BUILD_LDFLAGS="$withval" fi; - echo "$as_me:3968: result: $BUILD_LDFLAGS" >&5 + echo "$as_me:4214: result: $BUILD_LDFLAGS" >&5 echo "${ECHO_T}$BUILD_LDFLAGS" >&6 - echo "$as_me:3971: checking for native build linker-libraries" >&5 + echo "$as_me:4217: 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 +4222,7 @@ withval="$with_build_libs" BUILD_LIBS="$withval" fi; - echo "$as_me:3979: result: $BUILD_LIBS" >&5 + echo "$as_me:4225: result: $BUILD_LIBS" >&5 echo "${ECHO_T}$BUILD_LIBS" >&6 # this assumes we're on Unix. @@ -3986,7 +4232,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:4235: 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 +4273,7 @@ LIB_INSTALL= LIB_UNINSTALL= -echo "$as_me:4030: checking if you want to build libraries with libtool" >&5 +echo "$as_me:4276: 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 +4283,11 @@ else with_libtool=no fi; -echo "$as_me:4040: result: $with_libtool" >&5 +echo "$as_me:4286: 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 +4314,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:4317: 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 +4322,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:4327: 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 +4341,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:4344: found $ac_dir/$ac_word" >&5 break fi done @@ -4106,20 +4352,20 @@ LIBTOOL=$ac_cv_path_LIBTOOL if test -n "$LIBTOOL"; then - echo "$as_me:4109: result: $LIBTOOL" >&5 + echo "$as_me:4355: result: $LIBTOOL" >&5 echo "${ECHO_T}$LIBTOOL" >&6 else - echo "$as_me:4112: result: no" >&5 + echo "$as_me:4358: 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:4364: 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 +4376,32 @@ LIB_PREP=: # Show the version of libtool - echo "$as_me:4133: checking version of libtool" >&5 + echo "$as_me:4379: 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:4386: 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:4389: 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 +4422,7 @@ else -echo "$as_me:4171: checking if you want to build shared libraries" >&5 +echo "$as_me:4425: 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 +4432,11 @@ else with_shared=no fi; -echo "$as_me:4181: result: $with_shared" >&5 +echo "$as_me:4435: 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:4439: 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 +4446,11 @@ else with_normal=yes fi; -echo "$as_me:4195: result: $with_normal" >&5 +echo "$as_me:4449: 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:4453: 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 +4460,11 @@ else with_debug=yes fi; -echo "$as_me:4209: result: $with_debug" >&5 +echo "$as_me:4463: 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:4467: 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 +4474,7 @@ else with_profile=no fi; -echo "$as_me:4223: result: $with_profile" >&5 +echo "$as_me:4477: result: $with_profile" >&5 echo "${ECHO_T}$with_profile" >&6 test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile" @@ -4228,19 +4482,19 @@ ############################################################################### -echo "$as_me:4231: checking for specified models" >&5 +echo "$as_me:4485: 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:4489: 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:4494: 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:4497: 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 +4523,7 @@ ############################################################################### -echo "$as_me:4272: checking if you want to build a separate terminfo library" >&5 +echo "$as_me:4526: 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 +4533,10 @@ else with_termlib=no fi; -echo "$as_me:4282: result: $with_termlib" >&5 +echo "$as_me:4536: 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:4539: 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 +4546,13 @@ else with_ticlib=no fi; -echo "$as_me:4295: result: $with_ticlib" >&5 +echo "$as_me:4549: 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:4555: 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 +4562,27 @@ else with_gpm=maybe fi; -echo "$as_me:4311: result: $with_gpm" >&5 +echo "$as_me:4565: 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:4569: 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 4575 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:4325: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:4579: \"$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:4585: \$? = $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 +4601,7 @@ fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:4350: result: $ac_cv_header_gpm_h" >&5 +echo "$as_me:4604: 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 +4612,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}:4615: 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:4622: 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 +4627,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-lgpm $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 4376 "configure" +#line 4630 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -4392,16 +4646,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4395: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4649: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4398: \$? = $ac_status" >&5 + echo "$as_me:4652: \$? = $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:4655: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4404: \$? = $ac_status" >&5 + echo "$as_me:4658: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gpm_Gpm_Open=yes else @@ -4412,13 +4666,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:4669: 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:4675: error: Cannot link with GPM library" >&5 echo "$as_me: error: Cannot link with GPM library" >&2;} { (exit 1); exit 1; }; } fi @@ -4428,7 +4682,7 @@ else - test "$with_gpm" != maybe && { echo "$as_me:4431: WARNING: Cannot find GPM header" >&5 + test "$with_gpm" != maybe && { echo "$as_me:4685: WARNING: Cannot find GPM header" >&5 echo "$as_me: WARNING: Cannot find GPM header" >&2;} with_gpm=no @@ -4437,7 +4691,7 @@ fi if test "$with_gpm" != no ; then - echo "$as_me:4440: checking if you want to load GPM dynamically" >&5 + echo "$as_me:4694: 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 +4701,18 @@ else with_dlsym=yes fi; - echo "$as_me:4450: result: $with_dlsym" >&5 + echo "$as_me:4704: 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:4709: 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 4715 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlsym (); below. */ @@ -4489,16 +4743,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4492: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4746: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4495: \$? = $ac_status" >&5 + echo "$as_me:4749: \$? = $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:4752: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4501: \$? = $ac_status" >&5 + echo "$as_me:4755: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_dlsym=yes else @@ -4508,14 +4762,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:4765: 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:4772: 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 +4777,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 4526 "configure" +#line 4780 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -4542,16 +4796,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4545: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4799: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4548: \$? = $ac_status" >&5 + echo "$as_me:4802: \$? = $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:4805: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4554: \$? = $ac_status" >&5 + echo "$as_me:4808: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dl_dlsym=yes else @@ -4562,7 +4816,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:4819: 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 +4829,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:4832: 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 4835 "configure" #include "confdefs.h" #include int @@ -4596,16 +4850,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4599: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4853: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4602: \$? = $ac_status" >&5 + echo "$as_me:4856: \$? = $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:4859: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4608: \$? = $ac_status" >&5 + echo "$as_me:4862: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cat >>confdefs.h <<\EOF @@ -4616,15 +4870,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:4873: 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:4878: result: ok" >&5 echo "${ECHO_T}ok" >&6 else - { { echo "$as_me:4627: error: Cannot find dlsym function" >&5 + { { echo "$as_me:4881: error: Cannot find dlsym function" >&5 echo "$as_me: error: Cannot find dlsym function" >&2;} { (exit 1); exit 1; }; } fi @@ -4632,12 +4886,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}:4889: 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:4894: 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 +4909,15 @@ CF_EOF cf_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" - if { (eval echo "$as_me:4658: \"$ac_compile\"") >&5 + if { (eval echo "$as_me:4912: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4661: \$? = $ac_status" >&5 + echo "$as_me:4915: \$? = $ac_status" >&5 (exit $ac_status); } ; then - if { (eval echo "$as_me:4663: \"$ac_link\"") >&5 + if { (eval echo "$as_me:4917: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4666: \$? = $ac_status" >&5 + echo "$as_me:4920: \$? = $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 +4928,7 @@ fi fi -echo "$as_me:4677: result: $cf_cv_gpm_soname" >&5 +echo "$as_me:4931: result: $cf_cv_gpm_soname" >&5 echo "${ECHO_T}$cf_cv_gpm_soname" >&6 fi @@ -4690,7 +4944,7 @@ #define HAVE_LIBGPM 1 EOF -echo "$as_me:4693: checking for Gpm_Wgetch in -lgpm" >&5 +echo "$as_me:4947: 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 +4952,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-lgpm $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 4701 "configure" +#line 4955 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -4717,16 +4971,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4720: \"$ac_link\"") >&5 +if { (eval echo "$as_me:4974: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4723: \$? = $ac_status" >&5 + echo "$as_me:4977: \$? = $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:4980: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4729: \$? = $ac_status" >&5 + echo "$as_me:4983: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gpm_Gpm_Wgetch=yes else @@ -4737,11 +4991,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:4994: 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:4998: 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 +5019,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:5022: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4771: \$? = $ac_status" >&5 + echo "$as_me:5025: \$? = $ac_status" >&5 (exit $ac_status); } ; then - if { (eval echo "$as_me:4773: \"$ac_link\"") >&5 + if { (eval echo "$as_me:5027: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:4776: \$? = $ac_status" >&5 + echo "$as_me:5030: \$? = $ac_status" >&5 (exit $ac_status); } ; then cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\' | egrep '\<[vVwW]\>'` test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes @@ -4785,11 +5039,11 @@ fi fi -echo "$as_me:4788: result: $cf_cv_check_gpm_wgetch" >&5 +echo "$as_me:5042: 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:5046: 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 +5053,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:5056: 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 +5065,7 @@ fi; if test "$cf_with_sysmouse" != no ; then cat >conftest.$ac_ext <<_ACEOF -#line 4814 "configure" +#line 5068 "configure" #include "confdefs.h" #include @@ -4834,16 +5088,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:4837: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:5091: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4840: \$? = $ac_status" >&5 + echo "$as_me:5094: \$? = $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:5097: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4846: \$? = $ac_status" >&5 + echo "$as_me:5100: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_with_sysmouse=yes else @@ -4853,7 +5107,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:4856: result: $cf_with_sysmouse" >&5 +echo "$as_me:5110: 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 +5125,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:5128: 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 +5134,13 @@ profile) LD_MODEL='-pg';; shared) LD_MODEL='' ;; esac -echo "$as_me:4883: result: $LD_MODEL" >&5 +echo "$as_me:5137: 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:5143: 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 +5150,10 @@ else cf_cv_ld_rpath=no fi; -echo "$as_me:4899: result: $cf_cv_ld_rpath" >&5 +echo "$as_me:5153: 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:5156: 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 +5163,20 @@ else cf_cv_do_relink=yes fi; -echo "$as_me:4912: result: $cf_cv_do_relink" >&5 +echo "$as_me:5166: 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:5179: 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 +5191,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:5194: 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 +5200,7 @@ else cf_cv_shlib_version=auto fi; - echo "$as_me:4948: result: $cf_cv_shlib_version" >&5 + echo "$as_me:5203: result: $cf_cv_shlib_version" >&5 echo "${ECHO_T}$cf_cv_shlib_version" >&6 cf_cv_rm_so_locs=no @@ -4954,14 +5209,14 @@ CC_SHARED_OPTS= if test "$GCC" = yes then - echo "$as_me:4957: checking which $CC option to use" >&5 + echo "$as_me:5212: 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 5219 "configure" #include "confdefs.h" #include int @@ -4973,16 +5228,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:4976: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:5231: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:4979: \$? = $ac_status" >&5 + echo "$as_me:5234: \$? = $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:5237: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:4985: \$? = $ac_status" >&5 + echo "$as_me:5240: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -4991,7 +5246,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext done - echo "$as_me:4994: result: $CC_SHARED_OPTS" >&5 + echo "$as_me:5249: result: $CC_SHARED_OPTS" >&5 echo "${ECHO_T}$CC_SHARED_OPTS" >&6 CFLAGS="$cf_save_CFLAGS" fi @@ -4999,6 +5254,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 +5288,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:5291: 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 +5297,7 @@ cf_save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-search_paths_first" cat >conftest.$ac_ext <<_ACEOF -#line 5039 "configure" +#line 5300 "configure" #include "confdefs.h" int @@ -5048,16 +5309,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5051: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5312: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5054: \$? = $ac_status" >&5 + echo "$as_me:5315: \$? = $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:5318: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5060: \$? = $ac_status" >&5 + echo "$as_me:5321: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_ldflags_search_paths_first=yes else @@ -5068,7 +5329,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:5332: 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 +5351,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 +5373,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 +5392,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 +5404,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 +5416,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 +5427,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 +5453,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 +5472,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 +5507,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 +5519,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 5527 "configure" +#include "confdefs.h" +#include +int +main () +{ +printf("Hello\n"); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:5539: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:5542: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:5545: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:5548: \$? = $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 +5582,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:5585: 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:5593: 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 5598 "configure" #include "confdefs.h" int @@ -5310,16 +5607,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5313: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5610: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5316: \$? = $ac_status" >&5 + echo "$as_me:5613: \$? = $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:5616: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5322: \$? = $ac_status" >&5 + echo "$as_me:5619: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_rpath_space=no else @@ -5329,16 +5626,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:5629: 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:5638: 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 +5645,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:5648: 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 +5655,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:5658: 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:5661: 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 +5668,7 @@ else use_database=yes fi; -echo "$as_me:5374: result: $use_database" >&5 +echo "$as_me:5671: result: $use_database" >&5 echo "${ECHO_T}$use_database" >&6 case $host_os in #(vi @@ -5384,8 +5681,8 @@ esac case $cf_cv_system_name in - os2*) PATHSEP=';' ;; - *) PATHSEP=':' ;; + os2*) PATH_SEPARATOR=';' ;; + *) PATH_SEPARATOR=':' ;; esac if test "$use_database" != no ; then @@ -5393,18 +5690,18 @@ #define USE_DATABASE 1 EOF - echo "$as_me:5396: checking which terminfo source-file will be installed" >&5 + echo "$as_me:5693: 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. -if test "${enable_database+set}" = set; then - enableval="$enable_database" +# Check whether --with-database or --without-database was given. +if test "${with_database+set}" = set; then + withval="$with_database" TERMINFO_SRC=$withval fi; - echo "$as_me:5404: result: $TERMINFO_SRC" >&5 + echo "$as_me:5701: 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:5704: 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 +5711,13 @@ else with_hashed_db=no fi; - echo "$as_me:5417: result: $with_hashed_db" >&5 + echo "$as_me:5714: 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:5720: 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 +5727,11 @@ else with_fallback= fi; -echo "$as_me:5433: result: $with_fallback" >&5 +echo "$as_me:5730: 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:5734: 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 +5745,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:5748: result: $with_xterm_new" >&5 echo "${ECHO_T}$with_xterm_new" >&6 WHICH_XTERM=$with_xterm_new @@ -5458,7 +5755,7 @@ MAKE_TERMINFO="#" else -echo "$as_me:5461: checking for list of terminfo directories" >&5 +echo "$as_me:5758: 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 +5765,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 +5795,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:5798: 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 +5808,13 @@ eval 'TERMINFO_DIRS="$cf_dst_path"' -echo "$as_me:5514: result: $TERMINFO_DIRS" >&5 +echo "$as_me:5811: result: $TERMINFO_DIRS" >&5 echo "${ECHO_T}$TERMINFO_DIRS" >&6 test -n "$TERMINFO_DIRS" && cat >>confdefs.h <&5 +echo "$as_me:5817: 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 +5850,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:5853: error: expected a pathname, not \"$withval\"" >&5 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} { (exit 1); exit 1; }; } ;; @@ -5562,7 +5859,7 @@ fi TERMINFO="$withval" -echo "$as_me:5565: result: $TERMINFO" >&5 +echo "$as_me:5862: result: $TERMINFO" >&5 echo "${ECHO_T}$TERMINFO" >&6 cat >>confdefs.h <&5 +echo "$as_me:5872: 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 +5881,7 @@ with_big_core=no else cat >conftest.$ac_ext <<_ACEOF -#line 5587 "configure" +#line 5884 "configure" #include "confdefs.h" #include @@ -5598,15 +5895,15 @@ } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:5601: \"$ac_link\"") >&5 +if { (eval echo "$as_me:5898: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5604: \$? = $ac_status" >&5 + echo "$as_me:5901: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:5606: \"$ac_try\"") >&5 + { (eval echo "$as_me:5903: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5609: \$? = $ac_status" >&5 + echo "$as_me:5906: \$? = $ac_status" >&5 (exit $ac_status); }; }; then with_big_core=yes else @@ -5618,7 +5915,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:5918: 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 +5924,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:5927: 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 +5933,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:5951: 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:5958: 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 +5965,13 @@ else with_termcap=no fi; -echo "$as_me:5671: result: $with_termcap" >&5 +echo "$as_me:5968: 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:5974: 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 +5983,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:5986: 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 +5992,7 @@ #define USE_TERMCAP 1 EOF -echo "$as_me:5698: checking for list of termcap files" >&5 +echo "$as_me:5995: 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 +6002,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 +6032,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:6035: 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 +6045,14 @@ eval 'TERMPATH="$cf_dst_path"' -echo "$as_me:5751: result: $TERMPATH" >&5 +echo "$as_me:6048: result: $TERMPATH" >&5 echo "${ECHO_T}$TERMPATH" >&6 test -n "$TERMPATH" && cat >>confdefs.h <&5 +echo "$as_me:6055: 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 +6062,13 @@ else with_getcap=no fi; -echo "$as_me:5768: result: $with_getcap" >&5 +echo "$as_me:6065: 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:6071: 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 +6078,7 @@ else with_getcap_cache=no fi; -echo "$as_me:5784: result: $with_getcap_cache" >&5 +echo "$as_me:6081: 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 +6087,7 @@ fi ### Use option --disable-home-terminfo to completely remove ~/.terminfo -echo "$as_me:5793: checking if ~/.terminfo is wanted" >&5 +echo "$as_me:6090: 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 +6097,13 @@ else with_home_terminfo=yes fi; -echo "$as_me:5803: result: $with_home_terminfo" >&5 +echo "$as_me:6100: 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:6106: 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 +6113,7 @@ else with_root_environ=yes fi; -echo "$as_me:5819: result: $with_root_environ" >&5 +echo "$as_me:6116: 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 +6127,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:6130: 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 6136 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -5867,16 +6164,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5870: \"$ac_link\"") >&5 +if { (eval echo "$as_me:6167: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5873: \$? = $ac_status" >&5 + echo "$as_me:6170: \$? = $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:6173: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5879: \$? = $ac_status" >&5 + echo "$as_me:6176: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -5886,7 +6183,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:6186: 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 <&5 +echo "$as_me:6203: 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 6209 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -5940,16 +6237,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5943: \"$ac_link\"") >&5 +if { (eval echo "$as_me:6240: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:5946: \$? = $ac_status" >&5 + echo "$as_me:6243: \$? = $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:6246: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:5952: \$? = $ac_status" >&5 + echo "$as_me:6249: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -5959,7 +6256,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:6259: 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 <&5 + echo "$as_me:6270: 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 +6280,7 @@ eval 'ac_cv_func_'$cf_func'=error' else cat >conftest.$ac_ext <<_ACEOF -#line 5986 "configure" +#line 6283 "configure" #include "confdefs.h" #include @@ -6013,15 +6310,15 @@ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:6016: \"$ac_link\"") >&5 +if { (eval echo "$as_me:6313: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:6019: \$? = $ac_status" >&5 + echo "$as_me:6316: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:6021: \"$ac_try\"") >&5 + { (eval echo "$as_me:6318: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6024: \$? = $ac_status" >&5 + echo "$as_me:6321: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_link_funcs="$cf_cv_link_funcs $cf_func" @@ -6039,7 +6336,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:6339: 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 +6354,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:6357: 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 +6364,21 @@ else with_symlinks=no fi; - echo "$as_me:6070: result: $with_symlinks" >&5 + echo "$as_me:6367: 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:6374: 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:6381: result: $with_links" >&5 echo "${ECHO_T}$with_links" >&6 fi @@ -6094,7 +6391,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:6394: 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 +6401,7 @@ else with_broken_linker=${BROKEN_LINKER-no} fi; -echo "$as_me:6107: result: $with_broken_linker" >&5 +echo "$as_me:6404: result: $with_broken_linker" >&5 echo "${ECHO_T}$with_broken_linker" >&6 BROKEN_LINKER=0 @@ -6124,14 +6421,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}:6424: 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:6431: 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 +6438,7 @@ else with_bsdpad=no fi; -echo "$as_me:6144: result: $with_bsdpad" >&5 +echo "$as_me:6441: result: $with_bsdpad" >&5 echo "${ECHO_T}$with_bsdpad" >&6 test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF #define BSD_TPUTS 1 @@ -6158,7 +6455,7 @@ # Check to define _XOPEN_SOURCE "automatically" -echo "$as_me:6161: checking if $CC -U and -D options work together" >&5 +echo "$as_me:6458: 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 +6464,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 6467 "configure" #include "confdefs.h" int @@ -6186,16 +6483,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6189: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6486: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6192: \$? = $ac_status" >&5 + echo "$as_me:6489: \$? = $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:6492: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6198: \$? = $ac_status" >&5 + echo "$as_me:6495: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_cc_u_d_options=yes @@ -6209,14 +6506,14 @@ CPPFLAGS="$cf_save_CPPFLAGS" fi -echo "$as_me:6212: result: $cf_cv_cc_u_d_options" >&5 +echo "$as_me:6509: 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 @@ -6227,22 +6524,25 @@ cf_XOPEN_SOURCE=600 CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ;; +hpux11*) #(vi + CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE=500" + ;; hpux*) #(vi CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE" ;; 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:6538: 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 6545 "configure" #include "confdefs.h" #include int @@ -6257,16 +6557,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6260: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6560: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6263: \$? = $ac_status" >&5 + echo "$as_me:6563: \$? = $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:6566: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6269: \$? = $ac_status" >&5 + echo "$as_me:6569: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_gnu_source=no else @@ -6275,7 +6575,7 @@ cf_save="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" cat >conftest.$ac_ext <<_ACEOF -#line 6278 "configure" +#line 6578 "configure" #include "confdefs.h" #include int @@ -6290,16 +6590,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6293: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6593: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6296: \$? = $ac_status" >&5 + echo "$as_me:6596: \$? = $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:6599: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6302: \$? = $ac_status" >&5 + echo "$as_me:6602: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_gnu_source=no else @@ -6314,7 +6614,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:6317: result: $cf_cv_gnu_source" >&5 +echo "$as_me:6617: 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 +6641,14 @@ CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__" ;; *) - echo "$as_me:6344: checking if we should define _XOPEN_SOURCE" >&5 + echo "$as_me:6644: 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 6651 "configure" #include "confdefs.h" #include int @@ -6363,16 +6663,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6366: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6666: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6369: \$? = $ac_status" >&5 + echo "$as_me:6669: \$? = $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:6672: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6375: \$? = $ac_status" >&5 + echo "$as_me:6675: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_xopen_source=no else @@ -6381,7 +6681,7 @@ cf_save="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" cat >conftest.$ac_ext <<_ACEOF -#line 6384 "configure" +#line 6684 "configure" #include "confdefs.h" #include int @@ -6396,16 +6696,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6399: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6699: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6402: \$? = $ac_status" >&5 + echo "$as_me:6702: \$? = $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:6705: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6408: \$? = $ac_status" >&5 + echo "$as_me:6708: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_xopen_source=no else @@ -6420,7 +6720,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:6423: result: $cf_cv_xopen_source" >&5 +echo "$as_me:6723: result: $cf_cv_xopen_source" >&5 echo "${ECHO_T}$cf_cv_xopen_source" >&6 if test "$cf_cv_xopen_source" != no ; then @@ -6454,16 +6754,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:6757: 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}:6763: testing if the symbol is already defined go no further ..." 1>&5 cat >conftest.$ac_ext <<_ACEOF -#line 6466 "configure" +#line 6766 "configure" #include "confdefs.h" #include int @@ -6478,16 +6778,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6481: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6781: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6484: \$? = $ac_status" >&5 + echo "$as_me:6784: \$? = $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:6787: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6490: \$? = $ac_status" >&5 + echo "$as_me:6790: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_posix_c_source=no else @@ -6508,7 +6808,7 @@ esac if test "$cf_want_posix_source" = yes ; then cat >conftest.$ac_ext <<_ACEOF -#line 6511 "configure" +#line 6811 "configure" #include "confdefs.h" #include int @@ -6523,16 +6823,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6526: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6826: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6529: \$? = $ac_status" >&5 + echo "$as_me:6829: \$? = $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:6832: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6535: \$? = $ac_status" >&5 + echo "$as_me:6835: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -6543,15 +6843,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}:6846: 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}:6851: testing if the second compile does not leave our definition intact error ..." 1>&5 cat >conftest.$ac_ext <<_ACEOF -#line 6554 "configure" +#line 6854 "configure" #include "confdefs.h" #include int @@ -6566,16 +6866,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6569: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6869: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6572: \$? = $ac_status" >&5 + echo "$as_me:6872: \$? = $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:6875: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6578: \$? = $ac_status" >&5 + echo "$as_me:6878: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -6591,7 +6891,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:6594: result: $cf_cv_posix_c_source" >&5 +echo "$as_me:6894: 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 +6910,14 @@ # Work around breakage on OS X -echo "$as_me:6613: checking if SIGWINCH is defined" >&5 +echo "$as_me:6913: 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 6920 "configure" #include "confdefs.h" #include @@ -6632,23 +6932,23 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6635: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6935: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6638: \$? = $ac_status" >&5 + echo "$as_me:6938: \$? = $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:6941: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6644: \$? = $ac_status" >&5 + echo "$as_me:6944: \$? = $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 6951 "configure" #include "confdefs.h" #undef _XOPEN_SOURCE @@ -6666,16 +6966,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6669: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:6969: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6672: \$? = $ac_status" >&5 + echo "$as_me:6972: \$? = $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:6975: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6678: \$? = $ac_status" >&5 + echo "$as_me:6978: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_define_sigwinch=maybe else @@ -6689,11 +6989,11 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:6692: result: $cf_cv_define_sigwinch" >&5 +echo "$as_me:6992: 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:6996: 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 +7004,7 @@ while test $cf_sigwinch != 1 do cat >conftest.$ac_ext <<_ACEOF -#line 6707 "configure" +#line 7007 "configure" #include "confdefs.h" #undef _XOPEN_SOURCE @@ -6726,16 +7026,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6729: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7029: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6732: \$? = $ac_status" >&5 + echo "$as_me:7032: \$? = $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:7035: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6738: \$? = $ac_status" >&5 + echo "$as_me:7038: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_fixup_sigwinch=$cf_sigwinch break @@ -6749,7 +7049,7 @@ done fi -echo "$as_me:6752: result: $cf_cv_fixup_sigwinch" >&5 +echo "$as_me:7052: result: $cf_cv_fixup_sigwinch" >&5 echo "${ECHO_T}$cf_cv_fixup_sigwinch" >&6 if test "$cf_cv_fixup_sigwinch" != unknown ; then @@ -6759,13 +7059,13 @@ # Checks for CODESET support. - echo "$as_me:6762: checking for nl_langinfo and CODESET" >&5 + echo "$as_me:7062: 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 7068 "configure" #include "confdefs.h" #include int @@ -6777,16 +7077,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:6780: \"$ac_link\"") >&5 +if { (eval echo "$as_me:7080: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:6783: \$? = $ac_status" >&5 + echo "$as_me:7083: \$? = $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:7086: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6789: \$? = $ac_status" >&5 + echo "$as_me:7089: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_langinfo_codeset=yes else @@ -6797,7 +7097,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:7100: result: $am_cv_langinfo_codeset" >&5 echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 if test $am_cv_langinfo_codeset = yes; then @@ -6811,7 +7111,7 @@ NCURSES_OK_WCHAR_T= NCURSES_OK_WINT_T= -echo "$as_me:6814: checking if you want wide-character code" >&5 +echo "$as_me:7114: 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 +7121,7 @@ else with_widec=no fi; -echo "$as_me:6824: result: $with_widec" >&5 +echo "$as_me:7124: result: $with_widec" >&5 echo "${ECHO_T}$with_widec" >&6 if test "$with_widec" = yes ; then LIB_SUFFIX="w${LIB_SUFFIX}" @@ -6829,10 +7129,10 @@ #define USE_WIDEC_SUPPORT 1 EOF -echo "$as_me:6832: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 +echo "$as_me:7132: 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 7135 "configure" #include "confdefs.h" #include @@ -6848,16 +7148,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6851: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7151: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6854: \$? = $ac_status" >&5 + echo "$as_me:7154: \$? = $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:7157: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6860: \$? = $ac_status" >&5 + echo "$as_me:7160: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_result=no else @@ -6866,16 +7166,16 @@ cf_result=yes fi rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:6869: result: $cf_result" >&5 +echo "$as_me:7169: 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:7175: 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 7178 "configure" #include "confdefs.h" #include @@ -6891,16 +7191,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:6894: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7194: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:6897: \$? = $ac_status" >&5 + echo "$as_me:7197: \$? = $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:7200: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6903: \$? = $ac_status" >&5 + echo "$as_me:7203: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_result=yes else @@ -6909,7 +7209,7 @@ cf_result=no fi rm -f conftest.$ac_objext conftest.$ac_ext - echo "$as_me:6912: result: $cf_result" >&5 + echo "$as_me:7212: result: $cf_result" >&5 echo "${ECHO_T}$cf_result" >&6 if test "$cf_result" = no ; then # perhaps we can override it - try... @@ -6923,13 +7223,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:7226: 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 7232 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -6960,16 +7260,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:6963: \"$ac_link\"") >&5 +if { (eval echo "$as_me:7263: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:6966: \$? = $ac_status" >&5 + echo "$as_me:7266: \$? = $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:7269: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:6972: \$? = $ac_status" >&5 + echo "$as_me:7272: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -6979,7 +7279,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:7282: 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 <&5 +echo "$as_me:7294: 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 +7299,7 @@ cf_save_LIBS="$LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 7002 "configure" +#line 7302 "configure" #include "confdefs.h" #include @@ -7012,16 +7312,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:7015: \"$ac_link\"") >&5 +if { (eval echo "$as_me:7315: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:7018: \$? = $ac_status" >&5 + echo "$as_me:7318: \$? = $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:7321: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7024: \$? = $ac_status" >&5 + echo "$as_me:7324: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_utf8_lib=yes else @@ -7033,10 +7333,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}:7336: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 cat >conftest.$ac_ext <<_ACEOF -#line 7039 "configure" +#line 7339 "configure" #include "confdefs.h" #include @@ -7049,16 +7349,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:7052: \"$ac_link\"") >&5 +if { (eval echo "$as_me:7352: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:7055: \$? = $ac_status" >&5 + echo "$as_me:7355: \$? = $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:7358: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7061: \$? = $ac_status" >&5 + echo "$as_me:7361: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_find_linkage_utf8=yes else @@ -7067,12 +7367,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}:7372: testing find linkage for utf8 library ..." 1>&5 + +echo "${as_me-configure}:7374: 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 +7472,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}:7482: 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 7486 "configure" #include "confdefs.h" #include @@ -7165,21 +7496,21 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7168: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7499: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7171: \$? = $ac_status" >&5 + echo "$as_me:7502: \$? = $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:7505: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7177: \$? = $ac_status" >&5 + echo "$as_me:7508: \$? = $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}:7513: testing ... found utf8 headers in $cf_cv_header_path_utf8 ..." 1>&5 cf_cv_find_linkage_utf8=maybe cf_test_CPPFLAGS="$CPPFLAGS" @@ -7197,13 +7528,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}:7531: 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 +7617,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}:7627: 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 7633 "configure" #include "confdefs.h" #include @@ -7284,21 +7643,21 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:7287: \"$ac_link\"") >&5 +if { (eval echo "$as_me:7646: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:7290: \$? = $ac_status" >&5 + echo "$as_me:7649: \$? = $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:7652: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7296: \$? = $ac_status" >&5 + echo "$as_me:7655: \$? = $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}:7660: 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 +7695,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:7698: 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 +7723,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 7732 "configure" #include "confdefs.h" #include int @@ -7382,16 +7741,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7385: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7744: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7388: \$? = $ac_status" >&5 + echo "$as_me:7747: \$? = $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:7750: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7394: \$? = $ac_status" >&5 + echo "$as_me:7753: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -7408,13 +7767,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}:7770: 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 +7801,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}:7804: testing adding $cf_add_libdir to library-path ..." 1>&5 LDFLAGS="-L$cf_add_libdir $LDFLAGS" fi @@ -7459,14 +7818,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:7821: 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 7828 "configure" #include "confdefs.h" #include @@ -7484,23 +7843,23 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7487: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7846: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7490: \$? = $ac_status" >&5 + echo "$as_me:7849: \$? = $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:7852: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7496: \$? = $ac_status" >&5 + echo "$as_me:7855: \$? = $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 7862 "configure" #include "confdefs.h" #include @@ -7519,16 +7878,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7522: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7881: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7525: \$? = $ac_status" >&5 + echo "$as_me:7884: \$? = $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:7887: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7531: \$? = $ac_status" >&5 + echo "$as_me:7890: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_mbstate_t=yes else @@ -7540,7 +7899,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:7543: result: $cf_cv_mbstate_t" >&5 +echo "$as_me:7902: result: $cf_cv_mbstate_t" >&5 echo "${ECHO_T}$cf_cv_mbstate_t" >&6 if test "$cf_cv_mbstate_t" = yes ; then @@ -7557,14 +7916,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:7919: 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 7926 "configure" #include "confdefs.h" #include @@ -7582,23 +7941,23 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7585: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7944: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7588: \$? = $ac_status" >&5 + echo "$as_me:7947: \$? = $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:7950: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7594: \$? = $ac_status" >&5 + echo "$as_me:7953: \$? = $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 7960 "configure" #include "confdefs.h" #include @@ -7617,16 +7976,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7620: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:7979: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7623: \$? = $ac_status" >&5 + echo "$as_me:7982: \$? = $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:7985: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7629: \$? = $ac_status" >&5 + echo "$as_me:7988: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_wchar_t=yes else @@ -7638,7 +7997,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:7641: result: $cf_cv_wchar_t" >&5 +echo "$as_me:8000: result: $cf_cv_wchar_t" >&5 echo "${ECHO_T}$cf_cv_wchar_t" >&6 if test "$cf_cv_wchar_t" = yes ; then @@ -7660,14 +8019,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:8022: 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 8029 "configure" #include "confdefs.h" #include @@ -7685,23 +8044,23 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7688: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8047: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7691: \$? = $ac_status" >&5 + echo "$as_me:8050: \$? = $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:8053: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7697: \$? = $ac_status" >&5 + echo "$as_me:8056: \$? = $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 8063 "configure" #include "confdefs.h" #include @@ -7720,16 +8079,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7723: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8082: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7726: \$? = $ac_status" >&5 + echo "$as_me:8085: \$? = $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:8088: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7732: \$? = $ac_status" >&5 + echo "$as_me:8091: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_wint_t=yes else @@ -7741,7 +8100,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:7744: result: $cf_cv_wint_t" >&5 +echo "$as_me:8103: result: $cf_cv_wint_t" >&5 echo "${ECHO_T}$cf_cv_wint_t" >&6 if test "$cf_cv_wint_t" = yes ; then @@ -7780,7 +8139,7 @@ ;; esac -echo "$as_me:7783: checking whether to enable _LP64 definition in curses.h" >&5 +echo "$as_me:8142: 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 +8149,7 @@ else with_lp64=$default_with_lp64 fi; -echo "$as_me:7793: result: $with_lp64" >&5 +echo "$as_me:8152: result: $with_lp64" >&5 echo "${ECHO_T}$with_lp64" >&6 if test "$with_lp64" = yes ; then @@ -7806,7 +8165,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:8168: 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 +8177,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 8180 "configure" #include "confdefs.h" #include /* Check that off_t can represent 2**63 - 1 correctly. @@ -7838,16 +8197,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7841: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8200: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7844: \$? = $ac_status" >&5 + echo "$as_me:8203: \$? = $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:8206: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7850: \$? = $ac_status" >&5 + echo "$as_me:8209: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -7857,16 +8216,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:8219: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7863: \$? = $ac_status" >&5 + echo "$as_me:8222: \$? = $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:8225: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7869: \$? = $ac_status" >&5 + echo "$as_me:8228: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sys_largefile_CC=' -n32'; break else @@ -7880,13 +8239,13 @@ rm -f conftest.$ac_ext fi fi -echo "$as_me:7883: result: $ac_cv_sys_largefile_CC" >&5 +echo "$as_me:8242: 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:8248: 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 +8253,7 @@ while :; do ac_cv_sys_file_offset_bits=no cat >conftest.$ac_ext <<_ACEOF -#line 7897 "configure" +#line 8256 "configure" #include "confdefs.h" #include /* Check that off_t can represent 2**63 - 1 correctly. @@ -7914,16 +8273,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7917: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8276: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7920: \$? = $ac_status" >&5 + echo "$as_me:8279: \$? = $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:8282: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7926: \$? = $ac_status" >&5 + echo "$as_me:8285: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -7932,7 +8291,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 7935 "configure" +#line 8294 "configure" #include "confdefs.h" #define _FILE_OFFSET_BITS 64 #include @@ -7953,16 +8312,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:7956: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8315: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:7959: \$? = $ac_status" >&5 + echo "$as_me:8318: \$? = $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:8321: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:7965: \$? = $ac_status" >&5 + echo "$as_me:8324: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sys_file_offset_bits=64; break else @@ -7973,7 +8332,7 @@ break done fi -echo "$as_me:7976: result: $ac_cv_sys_file_offset_bits" >&5 +echo "$as_me:8335: 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 +8342,7 @@ fi rm -f conftest* - echo "$as_me:7986: checking for _LARGE_FILES value needed for large files" >&5 + echo "$as_me:8345: 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 +8350,7 @@ while :; do ac_cv_sys_large_files=no cat >conftest.$ac_ext <<_ACEOF -#line 7994 "configure" +#line 8353 "configure" #include "confdefs.h" #include /* Check that off_t can represent 2**63 - 1 correctly. @@ -8011,16 +8370,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8014: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8373: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8017: \$? = $ac_status" >&5 + echo "$as_me:8376: \$? = $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:8379: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8023: \$? = $ac_status" >&5 + echo "$as_me:8382: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -8029,7 +8388,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 8032 "configure" +#line 8391 "configure" #include "confdefs.h" #define _LARGE_FILES 1 #include @@ -8050,16 +8409,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8053: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8412: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8056: \$? = $ac_status" >&5 + echo "$as_me:8415: \$? = $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:8418: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8062: \$? = $ac_status" >&5 + echo "$as_me:8421: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sys_large_files=1; break else @@ -8070,7 +8429,7 @@ break done fi -echo "$as_me:8073: result: $ac_cv_sys_large_files" >&5 +echo "$as_me:8432: 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 +8442,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:8445: 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 +8450,7 @@ while :; do ac_cv_sys_largefile_source=no cat >conftest.$ac_ext <<_ACEOF -#line 8094 "configure" +#line 8453 "configure" #include "confdefs.h" #include int @@ -8103,16 +8462,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8106: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8465: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8109: \$? = $ac_status" >&5 + echo "$as_me:8468: \$? = $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:8471: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8115: \$? = $ac_status" >&5 + echo "$as_me:8474: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else @@ -8121,7 +8480,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF -#line 8124 "configure" +#line 8483 "configure" #include "confdefs.h" #define _LARGEFILE_SOURCE 1 #include @@ -8134,16 +8493,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8137: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8496: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8140: \$? = $ac_status" >&5 + echo "$as_me:8499: \$? = $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:8502: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8146: \$? = $ac_status" >&5 + echo "$as_me:8505: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sys_largefile_source=1; break else @@ -8154,7 +8513,7 @@ break done fi -echo "$as_me:8157: result: $ac_cv_sys_largefile_source" >&5 +echo "$as_me:8516: 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 +8527,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:8530: 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 8536 "configure" #include "confdefs.h" #include int @@ -8186,16 +8545,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8189: \"$ac_link\"") >&5 +if { (eval echo "$as_me:8548: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:8192: \$? = $ac_status" >&5 + echo "$as_me:8551: \$? = $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:8554: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8198: \$? = $ac_status" >&5 + echo "$as_me:8557: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_fseeko=yes else @@ -8205,7 +8564,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:8567: result: $ac_cv_func_fseeko" >&5 echo "${ECHO_T}$ac_cv_func_fseeko" >&6 if test $ac_cv_func_fseeko = yes; then @@ -8226,14 +8585,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:8588: 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 8595 "configure" #include "confdefs.h" #include @@ -8254,16 +8613,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:8257: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:8616: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:8260: \$? = $ac_status" >&5 + echo "$as_me:8619: \$? = $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:8622: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:8266: \$? = $ac_status" >&5 + echo "$as_me:8625: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_struct_dirent64=yes else @@ -8274,7 +8633,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:8277: result: $cf_cv_struct_dirent64" >&5 +echo "$as_me:8636: 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 +8642,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:8645: 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 +8652,14 @@ else with_tparm_varargs=yes fi; -echo "$as_me:8296: result: $with_tparm_varargs" >&5 +echo "$as_me:8655: 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:8662: 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 +8669,14 @@ else with_tic_depends=yes fi; -echo "$as_me:8313: result: $with_tic_depends" >&5 +echo "$as_me:8672: 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:8679: 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 +8686,10 @@ else NCURSES_BOOL=auto fi; -echo "$as_me:8330: result: $NCURSES_BOOL" >&5 +echo "$as_me:8689: result: $NCURSES_BOOL" >&5 echo "${ECHO_T}$NCURSES_BOOL" >&6 -echo "$as_me:8333: checking for alternate terminal capabilities file" >&5 +echo "$as_me:8692: 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 +8700,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:8703: 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:8707: 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 +8714,11 @@ else NCURSES_CHTYPE=auto fi; -echo "$as_me:8358: result: $NCURSES_CHTYPE" >&5 +echo "$as_me:8717: 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:8721: 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 +8728,11 @@ else NCURSES_OSPEED=short fi; -echo "$as_me:8372: result: $NCURSES_OSPEED" >&5 +echo "$as_me:8731: 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:8735: 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 +8742,25 @@ else NCURSES_MMASK_T=auto fi; -echo "$as_me:8386: result: $NCURSES_MMASK_T" >&5 +echo "$as_me:8745: result: $NCURSES_MMASK_T" >&5 echo "${ECHO_T}$NCURSES_MMASK_T" >&6 +### use option --with-ccharw-max to override CCHARW_MAX size +echo "$as_me:8749: checking for size CCHARW_MAX" >&5 +echo $ECHO_N "checking for size CCHARW_MAX... $ECHO_C" >&6 + +# Check whether --with-ccharw-max or --without-ccharw-max was given. +if test "${with_ccharw_max+set}" = set; then + withval="$with_ccharw_max" + NCURSES_CCHARW_MAX="$withval" +else + NCURSES_CCHARW_MAX=5 +fi; +echo "$as_me:8759: result: $NCURSES_CCHARW_MAX" >&5 +echo "${ECHO_T}$NCURSES_CCHARW_MAX" >&6 + ### Enable compiling-in rcs id's -echo "$as_me:8390: checking if RCS identifiers should be compiled-in" >&5 +echo "$as_me:8763: 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 +8770,7 @@ else with_rcs_ids=no fi; -echo "$as_me:8400: result: $with_rcs_ids" >&5 +echo "$as_me:8773: 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 +8778,7 @@ ############################################################################### -echo "$as_me:8408: checking format of man-pages" >&5 +echo "$as_me:8781: 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 +8806,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 +8867,14 @@ ;; esac -echo "$as_me:8497: result: $MANPAGE_FORMAT" >&5 +echo "$as_me:8870: 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:8873: 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:8877: 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 +8902,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:8905: error: not a filename: $MANPAGE_RENAMES" >&5 echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;} { (exit 1); exit 1; }; } fi @@ -8543,10 +8916,10 @@ fi fi -echo "$as_me:8546: result: $MANPAGE_RENAMES" >&5 +echo "$as_me:8919: 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:8922: 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 +8930,7 @@ MANPAGE_ALIASES=yes fi; -echo "$as_me:8560: result: $MANPAGE_ALIASES" >&5 +echo "$as_me:8933: result: $MANPAGE_ALIASES" >&5 echo "${ECHO_T}$MANPAGE_ALIASES" >&6 if test "$LN_S" = "ln -s"; then @@ -8568,7 +8941,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:8944: 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 +8954,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:8957: 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:8963: result: $MANPAGE_SYMLINKS" >&5 echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6 fi -echo "$as_me:8594: checking for manpage tbl" >&5 +echo "$as_me:8967: 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 +8975,7 @@ MANPAGE_TBL=no fi; -echo "$as_me:8605: result: $MANPAGE_TBL" >&5 +echo "$as_me:8978: result: $MANPAGE_TBL" >&5 echo "${ECHO_T}$MANPAGE_TBL" >&6 if test "$prefix" = "NONE" ; then @@ -8718,7 +9091,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 +9286,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:9289: 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 +9296,7 @@ else with_ext_funcs=yes fi; -echo "$as_me:8926: result: $with_ext_funcs" >&5 +echo "$as_me:9299: 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 +9328,38 @@ #define NCURSES_EXT_FUNCS 1 EOF + GENERATED_EXT_FUNCS=generated else NCURSES_EXT_FUNCS=0 + GENERATED_EXT_FUNCS= +fi + +echo "$as_me:9337: 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:9347: 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:9362: 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 +9369,7 @@ else with_ext_const=no fi; -echo "$as_me:8973: result: $with_ext_const" >&5 +echo "$as_me:9372: result: $with_ext_const" >&5 echo "${ECHO_T}$with_ext_const" >&6 NCURSES_CONST='/*nothing*/' if test "$with_ext_const" = yes ; then @@ -8978,7 +9377,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:9380: 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 +9387,12 @@ else with_ext_colors=no fi; -echo "$as_me:8991: result: $with_ext_colors" >&5 +echo "$as_me:9390: 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:9395: 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 +9403,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:9406: 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 +9418,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:9421: 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 +9428,7 @@ else with_ext_mouse=no fi; -echo "$as_me:9032: result: $with_ext_mouse" >&5 +echo "$as_me:9431: 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 +9439,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:9442: 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 +9447,7 @@ fi -echo "$as_me:9051: checking if you want \$NCURSES_NO_PADDING code" >&5 +echo "$as_me:9450: 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 +9457,19 @@ else with_no_padding=$with_ext_funcs fi; -echo "$as_me:9061: result: $with_no_padding" >&5 +echo "$as_me:9460: 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:9466: 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 9472 "configure" #include "confdefs.h" #include #include @@ -9078,13 +9477,13 @@ #include _ACEOF -if { (eval echo "$as_me:9081: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:9480: \"$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:9486: \$? = $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 +9505,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 9508 "configure" #include "confdefs.h" #include @@ -9124,7 +9523,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 9526 "configure" #include "confdefs.h" #include @@ -9145,7 +9544,7 @@ : else cat >conftest.$ac_ext <<_ACEOF -#line 9148 "configure" +#line 9547 "configure" #include "confdefs.h" #include #if ((' ' & 0x0FF) == 0x020) @@ -9171,15 +9570,15 @@ } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:9174: \"$ac_link\"") >&5 +if { (eval echo "$as_me:9573: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:9177: \$? = $ac_status" >&5 + echo "$as_me:9576: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:9179: \"$ac_try\"") >&5 + { (eval echo "$as_me:9578: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9182: \$? = $ac_status" >&5 + echo "$as_me:9581: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -9192,7 +9591,7 @@ fi fi fi -echo "$as_me:9195: result: $ac_cv_header_stdc" >&5 +echo "$as_me:9594: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then @@ -9208,28 +9607,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:9610: 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 9616 "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:9622: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9226: \$? = $ac_status" >&5 + echo "$as_me:9625: \$? = $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:9628: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9232: \$? = $ac_status" >&5 + echo "$as_me:9631: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else @@ -9239,7 +9638,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:9641: 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 <&5 +echo "$as_me:9651: 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 9657 "configure" #include "confdefs.h" $ac_includes_default int @@ -9270,16 +9669,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9273: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9672: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9276: \$? = $ac_status" >&5 + echo "$as_me:9675: \$? = $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:9678: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9282: \$? = $ac_status" >&5 + echo "$as_me:9681: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_signed_char=yes else @@ -9289,10 +9688,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:9691: 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:9694: 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 +9700,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 9703 "configure" #include "confdefs.h" $ac_includes_default int @@ -9313,21 +9712,21 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9316: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9715: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9319: \$? = $ac_status" >&5 + echo "$as_me:9718: \$? = $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:9721: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9325: \$? = $ac_status" >&5 + echo "$as_me:9724: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=0 ac_mid=0 while :; do cat >conftest.$ac_ext <<_ACEOF -#line 9330 "configure" +#line 9729 "configure" #include "confdefs.h" $ac_includes_default int @@ -9339,16 +9738,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9342: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9741: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9345: \$? = $ac_status" >&5 + echo "$as_me:9744: \$? = $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:9747: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9351: \$? = $ac_status" >&5 + echo "$as_me:9750: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid; break else @@ -9364,7 +9763,7 @@ ac_hi=-1 ac_mid=-1 while :; do cat >conftest.$ac_ext <<_ACEOF -#line 9367 "configure" +#line 9766 "configure" #include "confdefs.h" $ac_includes_default int @@ -9376,16 +9775,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9379: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9778: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9382: \$? = $ac_status" >&5 + echo "$as_me:9781: \$? = $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:9784: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9388: \$? = $ac_status" >&5 + echo "$as_me:9787: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_lo=$ac_mid; break else @@ -9401,7 +9800,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 9803 "configure" #include "confdefs.h" $ac_includes_default int @@ -9413,16 +9812,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9416: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:9815: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9419: \$? = $ac_status" >&5 + echo "$as_me:9818: \$? = $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:9821: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9425: \$? = $ac_status" >&5 + echo "$as_me:9824: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_hi=$ac_mid else @@ -9435,12 +9834,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:9837: 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 9842 "configure" #include "confdefs.h" $ac_includes_default int @@ -9456,15 +9855,15 @@ } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:9459: \"$ac_link\"") >&5 +if { (eval echo "$as_me:9858: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:9462: \$? = $ac_status" >&5 + echo "$as_me:9861: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:9464: \"$ac_try\"") >&5 + { (eval echo "$as_me:9863: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9467: \$? = $ac_status" >&5 + echo "$as_me:9866: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_sizeof_signed_char=`cat conftest.val` else @@ -9480,7 +9879,7 @@ ac_cv_sizeof_signed_char=0 fi fi -echo "$as_me:9483: result: $ac_cv_sizeof_signed_char" >&5 +echo "$as_me:9882: result: $ac_cv_sizeof_signed_char" >&5 echo "${ECHO_T}$ac_cv_sizeof_signed_char" >&6 cat >>confdefs.h <&5 +echo "$as_me:9893: 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 +9900,12 @@ else with_signed_char=no fi; -echo "$as_me:9504: result: $with_signed_char" >&5 +echo "$as_me:9903: 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:9908: 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 +9915,14 @@ else with_sigwinch=$with_ext_funcs fi; -echo "$as_me:9519: result: $with_sigwinch" >&5 +echo "$as_me:9918: 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:9925: 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 +9932,7 @@ else with_tcap_names=$with_ext_funcs fi; -echo "$as_me:9536: result: $with_tcap_names" >&5 +echo "$as_me:9935: 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 +9940,7 @@ ############################################################################### # These options are relatively safe to experiment with. -echo "$as_me:9544: checking if you want all development code" >&5 +echo "$as_me:9943: 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 +9950,11 @@ else with_develop=no fi; -echo "$as_me:9554: result: $with_develop" >&5 +echo "$as_me:9953: 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:9957: 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 +9964,14 @@ else enable_hard_tabs=$with_develop fi; -echo "$as_me:9568: result: $enable_hard_tabs" >&5 +echo "$as_me:9967: 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:9974: 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 +9981,7 @@ else enable_xmc_glitch=$with_develop fi; -echo "$as_me:9585: result: $enable_xmc_glitch" >&5 +echo "$as_me:9984: 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 +9990,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:9993: 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 +10000,14 @@ else with_assumed_color=yes fi; -echo "$as_me:9604: result: $with_assumed_color" >&5 +echo "$as_me:10003: 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:10010: 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 +10017,14 @@ else with_hashmap=yes fi; -echo "$as_me:9621: result: $with_hashmap" >&5 +echo "$as_me:10020: 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:10027: 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 +10034,7 @@ else with_colorfgbg=no fi; -echo "$as_me:9638: result: $with_colorfgbg" >&5 +echo "$as_me:10037: result: $with_colorfgbg" >&5 echo "${ECHO_T}$with_colorfgbg" >&6 test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF #define USE_COLORFGBG 1 @@ -9644,7 +10043,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:10046: 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 +10053,27 @@ else with_pthread=no fi; -echo "$as_me:9657: result: $with_pthread" >&5 +echo "$as_me:10056: 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:10060: 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 10066 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:9671: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:10070: \"$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:10076: \$? = $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 +10092,7 @@ fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:9696: result: $ac_cv_header_pthread_h" >&5 +echo "$as_me:10095: 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 +10100,12 @@ #define HAVE_PTHREADS_H 1 EOF - echo "$as_me:9704: checking if we can link with the pthread library" >&5 + echo "$as_me:10103: 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 10108 "configure" #include "confdefs.h" #include @@ -9722,16 +10121,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9725: \"$ac_link\"") >&5 +if { (eval echo "$as_me:10124: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:9728: \$? = $ac_status" >&5 + echo "$as_me:10127: \$? = $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:10130: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9734: \$? = $ac_status" >&5 + echo "$as_me:10133: \$? = $ac_status" >&5 (exit $ac_status); }; }; then with_pthread=yes else @@ -9741,7 +10140,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:10143: result: $with_pthread" >&5 echo "${ECHO_T}$with_pthread" >&6 if test "$with_pthread" = yes ; then @@ -9751,7 +10150,7 @@ EOF else - { { echo "$as_me:9754: error: Cannot link with pthread library" >&5 + { { echo "$as_me:10153: error: Cannot link with pthread library" >&5 echo "$as_me: error: Cannot link with pthread library" >&2;} { (exit 1); exit 1; }; } fi @@ -9760,7 +10159,7 @@ fi -echo "$as_me:9763: checking if you want to use weak-symbols for pthreads" >&5 +echo "$as_me:10162: 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 +10169,18 @@ else use_weak_symbols=no fi; -echo "$as_me:9773: result: $use_weak_symbols" >&5 +echo "$as_me:10172: 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:10176: 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 10183 "configure" #include "confdefs.h" #include @@ -9807,16 +10206,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:9810: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:10209: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:9813: \$? = $ac_status" >&5 + echo "$as_me:10212: \$? = $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:10215: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:9819: \$? = $ac_status" >&5 + echo "$as_me:10218: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_weak_symbols=yes else @@ -9827,7 +10226,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:9830: result: $cf_cv_weak_symbols" >&5 +echo "$as_me:10229: result: $cf_cv_weak_symbols" >&5 echo "${ECHO_T}$cf_cv_weak_symbols" >&6 else @@ -9857,7 +10256,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:10259: 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 +10266,21 @@ else with_reentrant=no fi; -echo "$as_me:9870: result: $with_reentrant" >&5 +echo "$as_me:10269: 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 +10290,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:10293: 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 +10303,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:10308: 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:10318: result: $NCURSES_WRAP_PREFIX" >&5 +echo "${ECHO_T}$NCURSES_WRAP_PREFIX" >&6 +else + NCURSES_WRAP_PREFIX=_nc_ +fi + +cat >>confdefs.h <&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 +10335,7 @@ else with_safe_sprintf=no fi; -echo "$as_me:9917: result: $with_safe_sprintf" >&5 +echo "$as_me:10338: 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 +10344,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:10347: 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 +10354,7 @@ else with_scroll_hints=yes fi; -echo "$as_me:9936: result: $with_scroll_hints" >&5 +echo "$as_me:10357: 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 +10362,7 @@ fi -echo "$as_me:9944: checking if you want experimental wgetch-events code" >&5 +echo "$as_me:10365: 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 +10372,7 @@ else with_wgetch_events=no fi; -echo "$as_me:9954: result: $with_wgetch_events" >&5 +echo "$as_me:10375: 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 +10381,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:10384: 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 +10398,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:10401: 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:10405: 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 +10410,7 @@ enableval="$enable_warnings" with_warnings=$enableval fi; -echo "$as_me:9992: result: $with_warnings" >&5 +echo "$as_me:10413: result: $with_warnings" >&5 echo "${ECHO_T}$with_warnings" >&6 if test "x$with_warnings" = "xyes"; then @@ -10000,12 +10421,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:10424: 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 10429 "configure" #include "confdefs.h" int @@ -10022,16 +10443,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:10025: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:10446: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10028: \$? = $ac_status" >&5 + echo "$as_me:10449: \$? = $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:10452: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10034: \$? = $ac_status" >&5 + echo "$as_me:10455: \$? = $ac_status" >&5 (exit $ac_status); }; }; then INTEL_COMPILER=yes cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" @@ -10042,14 +10463,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:10466: result: $INTEL_COMPILER" >&5 echo "${ECHO_T}$INTEL_COMPILER" >&6 ;; esac fi cat > conftest.$ac_ext <&5 + { echo "$as_me:10490: 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:10506: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10090: \$? = $ac_status" >&5 + echo "$as_me:10509: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:10092: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:10511: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6 EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" fi @@ -10098,7 +10517,7 @@ elif test "$GCC" = yes then - { echo "$as_me:10101: checking for $CC warning options..." >&5 + { echo "$as_me:10520: 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 +10537,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:10540: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10124: \$? = $ac_status" >&5 + echo "$as_me:10543: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:10126: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:10545: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6 case $cf_opt in #(vi Wcast-qual) #(vi @@ -10134,7 +10553,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}:10556: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 continue;; esac @@ -10154,12 +10573,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:10576: 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 10581 "configure" #include "confdefs.h" int @@ -10176,16 +10595,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:10179: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:10598: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10182: \$? = $ac_status" >&5 + echo "$as_me:10601: \$? = $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:10604: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10188: \$? = $ac_status" >&5 + echo "$as_me:10607: \$? = $ac_status" >&5 (exit $ac_status); }; }; then INTEL_CPLUSPLUS=yes cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc" @@ -10196,7 +10615,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:10618: result: $INTEL_CPLUSPLUS" >&5 echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6 ;; esac @@ -10210,7 +10629,7 @@ ac_main_return=return cat > conftest.$ac_ext <&5 + { echo "$as_me:10650: checking for $CC warning options..." >&5 echo "$as_me: checking for $CC warning options..." >&6;} cf_save_CXXFLAGS="$CXXFLAGS" EXTRA_CXXFLAGS="-Wall" @@ -10245,12 +10664,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:10667: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10251: \$? = $ac_status" >&5 + echo "$as_me:10670: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:10253: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:10672: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt" fi @@ -10259,7 +10678,7 @@ elif test "$GXX" = yes then - { echo "$as_me:10262: checking for $CXX warning options..." >&5 + { echo "$as_me:10681: 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 +10707,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:10710: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10294: \$? = $ac_status" >&5 + echo "$as_me:10713: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:10296: result: ... -$cf_opt" >&5 + test -n "$verbose" && echo "$as_me:10715: 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:10719: result: ... no -$cf_opt" >&5 echo "${ECHO_T}... no -$cf_opt" >&6 fi done @@ -10333,10 +10752,10 @@ EOF if test "$GCC" = yes then - { echo "$as_me:10336: checking for $CC __attribute__ directives..." >&5 + { echo "$as_me:10755: checking for $CC __attribute__ directives..." >&5 echo "$as_me: checking for $CC __attribute__ directives..." >&6;} cat > conftest.$ac_ext <&5 + if { (eval echo "$as_me:10796: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:10380: \$? = $ac_status" >&5 + echo "$as_me:10799: \$? = $ac_status" >&5 (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:10382: result: ... $cf_attribute" >&5 + test -n "$verbose" && echo "$as_me:10801: result: ... $cf_attribute" >&5 echo "${ECHO_T}... $cf_attribute" >&6 cat conftest.h >>confdefs.h fi @@ -10391,7 +10810,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:10813: 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 +10820,7 @@ else with_assertions=no fi; -echo "$as_me:10404: result: $with_assertions" >&5 +echo "$as_me:10823: result: $with_assertions" >&5 echo "${ECHO_T}$with_assertions" >&6 if test -n "$GCC" then @@ -10419,7 +10838,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:10841: 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 +10854,7 @@ else with_dmalloc= fi; -echo "$as_me:10438: result: ${with_dmalloc:-no}" >&5 +echo "$as_me:10857: result: ${with_dmalloc:-no}" >&5 echo "${ECHO_T}${with_dmalloc:-no}" >&6 case .$with_cflags in #(vi @@ -10505,7 +10924,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 +10938,23 @@ esac if test "$with_dmalloc" = yes ; then - echo "$as_me:10522: checking for dmalloc.h" >&5 + echo "$as_me:10941: 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 10947 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:10532: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:10951: \"$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:10957: \$? = $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 +10973,11 @@ fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:10557: result: $ac_cv_header_dmalloc_h" >&5 +echo "$as_me:10976: 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:10980: 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 +10985,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-ldmalloc $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 10569 "configure" +#line 10988 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -10585,16 +11004,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:10588: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11007: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:10591: \$? = $ac_status" >&5 + echo "$as_me:11010: \$? = $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:11013: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10597: \$? = $ac_status" >&5 + echo "$as_me:11016: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dmalloc_dmalloc_debug=yes else @@ -10605,7 +11024,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:11027: 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 <&5 +echo "$as_me:11042: 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 +11055,7 @@ else with_dbmalloc= fi; -echo "$as_me:10639: result: ${with_dbmalloc:-no}" >&5 +echo "$as_me:11058: result: ${with_dbmalloc:-no}" >&5 echo "${ECHO_T}${with_dbmalloc:-no}" >&6 case .$with_cflags in #(vi @@ -10706,7 +11125,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 +11139,23 @@ esac if test "$with_dbmalloc" = yes ; then - echo "$as_me:10723: checking for dbmalloc.h" >&5 + echo "$as_me:11142: 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 11148 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:10733: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:11152: \"$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:11158: \$? = $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 +11174,11 @@ fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:10758: result: $ac_cv_header_dbmalloc_h" >&5 +echo "$as_me:11177: 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:11181: 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 +11186,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-ldbmalloc $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 10770 "configure" +#line 11189 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -10786,16 +11205,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:10789: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11208: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:10792: \$? = $ac_status" >&5 + echo "$as_me:11211: \$? = $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:11214: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:10798: \$? = $ac_status" >&5 + echo "$as_me:11217: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dbmalloc_debug_malloc=yes else @@ -10806,7 +11225,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:11228: 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 <&5 +echo "$as_me:11243: 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 +11256,7 @@ else with_valgrind= fi; -echo "$as_me:10840: result: ${with_valgrind:-no}" >&5 +echo "$as_me:11259: result: ${with_valgrind:-no}" >&5 echo "${ECHO_T}${with_valgrind:-no}" >&6 case .$with_cflags in #(vi @@ -10907,7 +11326,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 +11339,7 @@ ;; esac -echo "$as_me:10923: checking if you want to perform memory-leak testing" >&5 +echo "$as_me:11342: 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 +11349,7 @@ else : ${with_no_leaks:=no} fi; -echo "$as_me:10933: result: $with_no_leaks" >&5 +echo "$as_me:11352: result: $with_no_leaks" >&5 echo "${ECHO_T}$with_no_leaks" >&6 if test "$with_no_leaks" = yes ; then @@ -10975,7 +11394,7 @@ ;; esac -echo "$as_me:10978: checking whether to add trace feature to all models" >&5 +echo "$as_me:11397: 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 +11404,7 @@ else cf_with_trace=$cf_all_traces fi; -echo "$as_me:10988: result: $cf_with_trace" >&5 +echo "$as_me:11407: result: $cf_with_trace" >&5 echo "${ECHO_T}$cf_with_trace" >&6 if test "$cf_with_trace" = yes ; then @@ -11052,7 +11471,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 +11485,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:11492: 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 11498 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char gettimeofday (); below. */ @@ -11103,16 +11526,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11106: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11529: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11109: \$? = $ac_status" >&5 + echo "$as_me:11532: \$? = $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:11535: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11115: \$? = $ac_status" >&5 + echo "$as_me:11538: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_gettimeofday=yes else @@ -11122,7 +11545,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:11548: 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 +11554,7 @@ else -echo "$as_me:11134: checking for gettimeofday in -lbsd" >&5 +echo "$as_me:11557: 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 +11562,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-lbsd $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 11142 "configure" +#line 11565 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -11158,16 +11581,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11161: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11584: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11164: \$? = $ac_status" >&5 + echo "$as_me:11587: \$? = $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:11590: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11170: \$? = $ac_status" >&5 + echo "$as_me:11593: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_bsd_gettimeofday=yes else @@ -11178,7 +11601,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:11604: 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 +11612,17 @@ fi fi + ;; +esac -echo "$as_me:11193: checking if -lm needed for math functions" >&5 +echo "$as_me:11618: 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 11625 "configure" #include "confdefs.h" #include @@ -11212,16 +11637,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11215: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11640: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11218: \$? = $ac_status" >&5 + echo "$as_me:11643: \$? = $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:11646: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11224: \$? = $ac_status" >&5 + echo "$as_me:11649: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_need_libm=no else @@ -11231,7 +11656,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:11659: result: $cf_cv_need_libm" >&5 echo "${ECHO_T}$cf_cv_need_libm" >&6 if test "$cf_cv_need_libm" = yes then @@ -11239,13 +11664,13 @@ fi ### Checks for header files. -echo "$as_me:11242: checking for ANSI C header files" >&5 +echo "$as_me:11667: 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 11673 "configure" #include "confdefs.h" #include #include @@ -11253,13 +11678,13 @@ #include _ACEOF -if { (eval echo "$as_me:11256: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:11681: \"$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:11687: \$? = $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 +11706,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 11709 "configure" #include "confdefs.h" #include @@ -11299,7 +11724,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 11727 "configure" #include "confdefs.h" #include @@ -11320,7 +11745,7 @@ : else cat >conftest.$ac_ext <<_ACEOF -#line 11323 "configure" +#line 11748 "configure" #include "confdefs.h" #include #if ((' ' & 0x0FF) == 0x020) @@ -11346,15 +11771,15 @@ } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:11349: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11774: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11352: \$? = $ac_status" >&5 + echo "$as_me:11777: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:11354: \"$ac_try\"") >&5 + { (eval echo "$as_me:11779: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11357: \$? = $ac_status" >&5 + echo "$as_me:11782: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -11367,7 +11792,7 @@ fi fi fi -echo "$as_me:11370: result: $ac_cv_header_stdc" >&5 +echo "$as_me:11795: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then @@ -11380,13 +11805,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:11808: 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 11814 "configure" #include "confdefs.h" #include #include <$ac_hdr> @@ -11401,16 +11826,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:11404: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:11829: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11407: \$? = $ac_status" >&5 + echo "$as_me:11832: \$? = $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:11835: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11413: \$? = $ac_status" >&5 + echo "$as_me:11838: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else @@ -11420,7 +11845,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:11848: 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 <&5 + echo "$as_me:11861: 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 +11866,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-ldir $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 11444 "configure" +#line 11869 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -11460,16 +11885,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11463: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11888: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11466: \$? = $ac_status" >&5 + echo "$as_me:11891: \$? = $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:11894: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11472: \$? = $ac_status" >&5 + echo "$as_me:11897: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_dir_opendir=yes else @@ -11480,14 +11905,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:11908: 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:11915: 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 +11920,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-lx $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 11498 "configure" +#line 11923 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -11514,16 +11939,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11517: \"$ac_link\"") >&5 +if { (eval echo "$as_me:11942: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11520: \$? = $ac_status" >&5 + echo "$as_me:11945: \$? = $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:11948: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11526: \$? = $ac_status" >&5 + echo "$as_me:11951: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_x_opendir=yes else @@ -11534,7 +11959,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:11962: 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 +11967,13 @@ fi -echo "$as_me:11545: checking whether time.h and sys/time.h may both be included" >&5 +echo "$as_me:11970: 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 11976 "configure" #include "confdefs.h" #include #include @@ -11564,16 +11989,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:11567: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:11992: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11570: \$? = $ac_status" >&5 + echo "$as_me:11995: \$? = $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:11998: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11576: \$? = $ac_status" >&5 + echo "$as_me:12001: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_time=yes else @@ -11583,7 +12008,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:11586: result: $ac_cv_header_time" >&5 +echo "$as_me:12011: result: $ac_cv_header_time" >&5 echo "${ECHO_T}$ac_cv_header_time" >&6 if test $ac_cv_header_time = yes; then @@ -11593,14 +12018,14 @@ fi -echo "$as_me:11596: checking for regular-expression headers" >&5 +echo "$as_me:12021: 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 12028 "configure" #include "confdefs.h" #include #include @@ -11618,16 +12043,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11621: \"$ac_link\"") >&5 +if { (eval echo "$as_me:12046: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11624: \$? = $ac_status" >&5 + echo "$as_me:12049: \$? = $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:12052: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11630: \$? = $ac_status" >&5 + echo "$as_me:12055: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_regex="regex.h" else @@ -11635,7 +12060,7 @@ cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 11638 "configure" +#line 12063 "configure" #include "confdefs.h" #include int @@ -11650,16 +12075,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11653: \"$ac_link\"") >&5 +if { (eval echo "$as_me:12078: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11656: \$? = $ac_status" >&5 + echo "$as_me:12081: \$? = $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:12084: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11662: \$? = $ac_status" >&5 + echo "$as_me:12087: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_regex="regexp.h" else @@ -11669,7 +12094,7 @@ cf_save_LIBS="$LIBS" LIBS="-lgen $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 11672 "configure" +#line 12097 "configure" #include "confdefs.h" #include int @@ -11684,16 +12109,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11687: \"$ac_link\"") >&5 +if { (eval echo "$as_me:12112: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11690: \$? = $ac_status" >&5 + echo "$as_me:12115: \$? = $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:12118: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11696: \$? = $ac_status" >&5 + echo "$as_me:12121: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_regex="regexpr.h" else @@ -11709,7 +12134,7 @@ fi -echo "$as_me:11712: result: $cf_cv_regex" >&5 +echo "$as_me:12137: 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 +12170,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:12173: 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 12179 "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:12183: \"$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:12189: \$? = $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 +12205,7 @@ fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:11783: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:12208: 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 < to declare fd_set if test "$ISC" = yes ; then -echo "$as_me:11797: checking for main in -lcposix" >&5 +echo "$as_me:12222: 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 +12227,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-lcposix $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 11805 "configure" +#line 12230 "configure" #include "confdefs.h" int @@ -11814,16 +12239,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11817: \"$ac_link\"") >&5 +if { (eval echo "$as_me:12242: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11820: \$? = $ac_status" >&5 + echo "$as_me:12245: \$? = $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:12248: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11826: \$? = $ac_status" >&5 + echo "$as_me:12251: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_cposix_main=yes else @@ -11834,7 +12259,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:12262: 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 <&5 + echo "$as_me:12273: 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 +12278,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-linet $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 11856 "configure" +#line 12281 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -11872,16 +12297,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11875: \"$ac_link\"") >&5 +if { (eval echo "$as_me:12300: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:11878: \$? = $ac_status" >&5 + echo "$as_me:12303: \$? = $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:12306: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11884: \$? = $ac_status" >&5 + echo "$as_me:12309: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_inet_bzero=yes else @@ -11892,21 +12317,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:12320: 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:12327: 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 12334 "configure" #include "confdefs.h" #include @@ -11926,16 +12351,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:11929: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12354: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:11932: \$? = $ac_status" >&5 + echo "$as_me:12357: \$? = $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:12360: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:11938: \$? = $ac_status" >&5 + echo "$as_me:12363: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_sys_time_select=yes else @@ -11947,7 +12372,7 @@ fi -echo "$as_me:11950: result: $cf_cv_sys_time_select" >&5 +echo "$as_me:12375: 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 +12386,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:12389: 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 +12394,7 @@ ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF -#line 11972 "configure" +#line 12397 "configure" #include "confdefs.h" #include #include @@ -12018,16 +12443,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:12446: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12024: \$? = $ac_status" >&5 + echo "$as_me:12449: \$? = $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:12452: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12030: \$? = $ac_status" >&5 + echo "$as_me:12455: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break @@ -12044,21 +12469,21 @@ case "x$ac_cv_prog_cc_stdc" in x|xno) - echo "$as_me:12047: result: none needed" >&5 + echo "$as_me:12472: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) - echo "$as_me:12050: result: $ac_cv_prog_cc_stdc" >&5 + echo "$as_me:12475: 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:12480: 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 12486 "configure" #include "confdefs.h" int @@ -12116,16 +12541,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12119: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12544: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12122: \$? = $ac_status" >&5 + echo "$as_me:12547: \$? = $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:12550: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12128: \$? = $ac_status" >&5 + echo "$as_me:12553: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_const=yes else @@ -12135,7 +12560,7 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:12138: result: $ac_cv_c_const" >&5 +echo "$as_me:12563: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6 if test $ac_cv_c_const = no; then @@ -12145,7 +12570,7 @@ fi -echo "$as_me:12148: checking for inline" >&5 +echo "$as_me:12573: 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 +12578,7 @@ ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF -#line 12156 "configure" +#line 12581 "configure" #include "confdefs.h" #ifndef __cplusplus static $ac_kw int static_foo () {return 0; } @@ -12162,16 +12587,16 @@ _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12165: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12590: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12168: \$? = $ac_status" >&5 + echo "$as_me:12593: \$? = $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:12596: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12174: \$? = $ac_status" >&5 + echo "$as_me:12599: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_inline=$ac_kw; break else @@ -12182,7 +12607,7 @@ done fi -echo "$as_me:12185: result: $ac_cv_c_inline" >&5 +echo "$as_me:12610: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$ac_cv_c_inline" >&6 case $ac_cv_c_inline in inline | yes) ;; @@ -12205,7 +12630,7 @@ : elif test "$GCC" = yes then - echo "$as_me:12208: checking if gcc supports options to tune inlining" >&5 + echo "$as_me:12633: 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 +12639,7 @@ cf_save_CFLAGS=$CFLAGS CFLAGS="$CFLAGS --param max-inline-insns-single=1200" cat >conftest.$ac_ext <<_ACEOF -#line 12217 "configure" +#line 12642 "configure" #include "confdefs.h" inline int foo(void) { return 1; } int @@ -12226,16 +12651,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12229: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12654: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12232: \$? = $ac_status" >&5 + echo "$as_me:12657: \$? = $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:12660: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12238: \$? = $ac_status" >&5 + echo "$as_me:12663: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_gcc_inline=yes else @@ -12247,7 +12672,7 @@ CFLAGS=$cf_save_CFLAGS fi -echo "$as_me:12250: result: $cf_cv_gcc_inline" >&5 +echo "$as_me:12675: result: $cf_cv_gcc_inline" >&5 echo "${ECHO_T}$cf_cv_gcc_inline" >&6 if test "$cf_cv_gcc_inline" = yes ; then @@ -12311,7 +12736,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 +12748,7 @@ fi fi -echo "$as_me:12326: checking for signal global datatype" >&5 +echo "$as_me:12751: 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 +12760,7 @@ "int" do cat >conftest.$ac_ext <<_ACEOF -#line 12338 "configure" +#line 12763 "configure" #include "confdefs.h" #include @@ -12358,16 +12783,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12361: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12786: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12364: \$? = $ac_status" >&5 + echo "$as_me:12789: \$? = $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:12792: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12370: \$? = $ac_status" >&5 + echo "$as_me:12795: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_sig_atomic_t=$cf_type else @@ -12381,7 +12806,7 @@ fi -echo "$as_me:12384: result: $cf_cv_sig_atomic_t" >&5 +echo "$as_me:12809: 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 <&5 +echo "$as_me:12817: 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 +12824,7 @@ cf_cv_typeof_chtype=long else cat >conftest.$ac_ext <<_ACEOF -#line 12402 "configure" +#line 12827 "configure" #include "confdefs.h" #define WANT_BITS 31 @@ -12434,15 +12859,15 @@ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:12437: \"$ac_link\"") >&5 +if { (eval echo "$as_me:12862: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12440: \$? = $ac_status" >&5 + echo "$as_me:12865: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:12442: \"$ac_try\"") >&5 + { (eval echo "$as_me:12867: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12445: \$? = $ac_status" >&5 + echo "$as_me:12870: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_typeof_chtype=`cat cf_test.out` else @@ -12457,7 +12882,7 @@ fi -echo "$as_me:12460: result: $cf_cv_typeof_chtype" >&5 +echo "$as_me:12885: result: $cf_cv_typeof_chtype" >&5 echo "${ECHO_T}$cf_cv_typeof_chtype" >&6 cat >>confdefs.h <&5 +echo "$as_me:12897: 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 12904 "configure" #include "confdefs.h" int @@ -12488,16 +12913,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12491: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12916: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12494: \$? = $ac_status" >&5 + echo "$as_me:12919: \$? = $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:12922: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12500: \$? = $ac_status" >&5 + echo "$as_me:12925: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_unsigned_literals=yes else @@ -12509,7 +12934,7 @@ fi -echo "$as_me:12512: result: $cf_cv_unsigned_literals" >&5 +echo "$as_me:12937: result: $cf_cv_unsigned_literals" >&5 echo "${ECHO_T}$cf_cv_unsigned_literals" >&6 cf_cv_1UL="1" @@ -12525,14 +12950,14 @@ ### Checks for external-data -echo "$as_me:12528: checking if external errno is declared" >&5 +echo "$as_me:12953: 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 12960 "configure" #include "confdefs.h" #ifdef HAVE_STDLIB_H @@ -12550,16 +12975,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12553: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:12978: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12556: \$? = $ac_status" >&5 + echo "$as_me:12981: \$? = $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:12984: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12562: \$? = $ac_status" >&5 + echo "$as_me:12987: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_dcl_errno=yes else @@ -12570,7 +12995,7 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:12573: result: $cf_cv_dcl_errno" >&5 +echo "$as_me:12998: result: $cf_cv_dcl_errno" >&5 echo "${ECHO_T}$cf_cv_dcl_errno" >&6 if test "$cf_cv_dcl_errno" = no ; then @@ -12585,14 +13010,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:13013: 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 13020 "configure" #include "confdefs.h" #undef errno @@ -12607,16 +13032,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12610: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13035: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12613: \$? = $ac_status" >&5 + echo "$as_me:13038: \$? = $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:13041: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12619: \$? = $ac_status" >&5 + echo "$as_me:13044: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_have_errno=yes else @@ -12627,7 +13052,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:13055: result: $cf_cv_have_errno" >&5 echo "${ECHO_T}$cf_cv_have_errno" >&6 if test "$cf_cv_have_errno" = yes ; then @@ -12640,7 +13065,7 @@ fi -echo "$as_me:12643: checking if data-only library module links" >&5 +echo "$as_me:13068: 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 +13073,20 @@ rm -f conftest.a cat >conftest.$ac_ext <&5 + if { (eval echo "$as_me:13079: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12657: \$? = $ac_status" >&5 + echo "$as_me:13082: \$? = $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 <&5 + if { (eval echo "$as_me:13102: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12680: \$? = $ac_status" >&5 + echo "$as_me:13105: \$? = $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 +13115,7 @@ cf_cv_link_dataonly=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 12693 "configure" +#line 13118 "configure" #include "confdefs.h" int main() @@ -12701,15 +13126,15 @@ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:12704: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13129: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12707: \$? = $ac_status" >&5 + echo "$as_me:13132: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:12709: \"$ac_try\"") >&5 + { (eval echo "$as_me:13134: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12712: \$? = $ac_status" >&5 + echo "$as_me:13137: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_link_dataonly=yes else @@ -12724,7 +13149,7 @@ fi -echo "$as_me:12727: result: $cf_cv_link_dataonly" >&5 +echo "$as_me:13152: result: $cf_cv_link_dataonly" >&5 echo "${ECHO_T}$cf_cv_link_dataonly" >&6 if test "$cf_cv_link_dataonly" = no ; then @@ -12759,13 +13184,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:13187: 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 13193 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. */ @@ -12796,16 +13221,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12799: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13224: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12802: \$? = $ac_status" >&5 + echo "$as_me:13227: \$? = $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:13230: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12808: \$? = $ac_status" >&5 + echo "$as_me:13233: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else @@ -12815,7 +13240,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:13243: 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 <&5 +echo "$as_me:13255: 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 13262 "configure" #include "confdefs.h" #include @@ -12854,16 +13279,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12857: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13282: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12860: \$? = $ac_status" >&5 + echo "$as_me:13285: \$? = $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:13288: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12866: \$? = $ac_status" >&5 + echo "$as_me:13291: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_cgetent=yes else @@ -12875,7 +13300,7 @@ fi -echo "$as_me:12878: result: $cf_cv_cgetent" >&5 +echo "$as_me:13303: 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 +13308,14 @@ fi -echo "$as_me:12886: checking for isascii" >&5 +echo "$as_me:13311: 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 13318 "configure" #include "confdefs.h" #include int @@ -12902,16 +13327,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:12905: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13330: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:12908: \$? = $ac_status" >&5 + echo "$as_me:13333: \$? = $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:13336: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12914: \$? = $ac_status" >&5 + echo "$as_me:13339: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_have_isascii=yes else @@ -12922,17 +13347,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:13350: 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:13357: 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 13360 "configure" #include "confdefs.h" #include @@ -12946,16 +13371,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12949: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:13374: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12952: \$? = $ac_status" >&5 + echo "$as_me:13377: \$? = $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:13380: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12958: \$? = $ac_status" >&5 + echo "$as_me:13383: \$? = $ac_status" >&5 (exit $ac_status); }; }; then sigact_bad=no else @@ -12963,7 +13388,7 @@ cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 12966 "configure" +#line 13391 "configure" #include "confdefs.h" #define _POSIX_SOURCE @@ -12978,16 +13403,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:12981: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:13406: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:12984: \$? = $ac_status" >&5 + echo "$as_me:13409: \$? = $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:13412: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:12990: \$? = $ac_status" >&5 + echo "$as_me:13415: \$? = $ac_status" >&5 (exit $ac_status); }; }; then sigact_bad=yes cat >>confdefs.h <<\EOF @@ -13002,11 +13427,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:13430: result: $sigact_bad" >&5 echo "${ECHO_T}$sigact_bad" >&6 fi -echo "$as_me:13009: checking if nanosleep really works" >&5 +echo "$as_me:13434: 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 +13441,7 @@ cf_cv_func_nanosleep=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 13019 "configure" +#line 13444 "configure" #include "confdefs.h" #include @@ -13041,15 +13466,15 @@ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:13044: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13469: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13047: \$? = $ac_status" >&5 + echo "$as_me:13472: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:13049: \"$ac_try\"") >&5 + { (eval echo "$as_me:13474: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13052: \$? = $ac_status" >&5 + echo "$as_me:13477: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_nanosleep=yes else @@ -13061,7 +13486,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:13489: 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 +13500,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:13503: 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 13509 "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:13513: \"$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:13519: \$? = $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 +13535,7 @@ fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:13113: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:13538: 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 <&5 +echo "$as_me:13553: 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 13559 "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:13563: \"$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:13569: \$? = $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 +13585,7 @@ fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:13163: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:13588: 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 <&5 + echo "$as_me:13606: 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 13609 "configure" #include "confdefs.h" #include int @@ -13193,16 +13618,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:13196: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:13621: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:13199: \$? = $ac_status" >&5 + echo "$as_me:13624: \$? = $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:13627: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13205: \$? = $ac_status" >&5 + echo "$as_me:13630: \$? = $ac_status" >&5 (exit $ac_status); }; }; then termios_bad=no else @@ -13210,7 +13635,7 @@ cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 13213 "configure" +#line 13638 "configure" #include "confdefs.h" #define _POSIX_SOURCE @@ -13224,16 +13649,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:13227: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:13652: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:13230: \$? = $ac_status" >&5 + echo "$as_me:13655: \$? = $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:13658: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13236: \$? = $ac_status" >&5 + echo "$as_me:13661: \$? = $ac_status" >&5 (exit $ac_status); }; }; then termios_bad=unknown else @@ -13248,19 +13673,19 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext - echo "$as_me:13251: result: $termios_bad" >&5 + echo "$as_me:13676: result: $termios_bad" >&5 echo "${ECHO_T}$termios_bad" >&6 fi fi -echo "$as_me:13256: checking for tcgetattr" >&5 +echo "$as_me:13681: 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 13688 "configure" #include "confdefs.h" #include @@ -13288,16 +13713,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13291: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13716: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13294: \$? = $ac_status" >&5 + echo "$as_me:13719: \$? = $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:13722: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13300: \$? = $ac_status" >&5 + echo "$as_me:13725: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_have_tcgetattr=yes else @@ -13307,20 +13732,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:13735: 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:13741: 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 13748 "configure" #include "confdefs.h" #include @@ -13336,16 +13761,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13339: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13764: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13342: \$? = $ac_status" >&5 + echo "$as_me:13767: \$? = $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:13770: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13348: \$? = $ac_status" >&5 + echo "$as_me:13773: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_vsscanf=vsscanf else @@ -13353,7 +13778,7 @@ cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 13356 "configure" +#line 13781 "configure" #include "confdefs.h" #include @@ -13375,16 +13800,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13378: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13803: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13381: \$? = $ac_status" >&5 + echo "$as_me:13806: \$? = $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:13809: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13387: \$? = $ac_status" >&5 + echo "$as_me:13812: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_vsscanf=vfscanf else @@ -13392,7 +13817,7 @@ cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 13395 "configure" +#line 13820 "configure" #include "confdefs.h" #include @@ -13414,16 +13839,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13417: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13842: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13420: \$? = $ac_status" >&5 + echo "$as_me:13845: \$? = $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:13848: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13426: \$? = $ac_status" >&5 + echo "$as_me:13851: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_vsscanf=_doscan else @@ -13438,7 +13863,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:13866: result: $cf_cv_func_vsscanf" >&5 echo "${ECHO_T}$cf_cv_func_vsscanf" >&6 case $cf_cv_func_vsscanf in #(vi @@ -13456,7 +13881,7 @@ ;; esac -echo "$as_me:13459: checking for working mkstemp" >&5 +echo "$as_me:13884: 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 +13889,13 @@ rm -f conftest* if test "$cross_compiling" = yes; then - echo "$as_me:13467: checking for mkstemp" >&5 + echo "$as_me:13892: 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 13898 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char mkstemp (); below. */ @@ -13501,16 +13926,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13504: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13929: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13507: \$? = $ac_status" >&5 + echo "$as_me:13932: \$? = $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:13935: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13513: \$? = $ac_status" >&5 + echo "$as_me:13938: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_mkstemp=yes else @@ -13520,12 +13945,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:13948: result: $ac_cv_func_mkstemp" >&5 echo "${ECHO_T}$ac_cv_func_mkstemp" >&6 else cat >conftest.$ac_ext <<_ACEOF -#line 13528 "configure" +#line 13953 "configure" #include "confdefs.h" #include @@ -13563,15 +13988,15 @@ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:13566: \"$ac_link\"") >&5 +if { (eval echo "$as_me:13991: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13569: \$? = $ac_status" >&5 + echo "$as_me:13994: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:13571: \"$ac_try\"") >&5 + { (eval echo "$as_me:13996: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13574: \$? = $ac_status" >&5 + echo "$as_me:13999: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_mkstemp=yes @@ -13586,7 +14011,7 @@ fi fi -echo "$as_me:13589: result: $cf_cv_func_mkstemp" >&5 +echo "$as_me:14014: 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 +14029,21 @@ fi if test "$cross_compiling" = yes ; then - { echo "$as_me:13607: WARNING: cross compiling: assume setvbuf params not reversed" >&5 + { echo "$as_me:14032: 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:14035: 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:14041: 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 14046 "configure" #include "confdefs.h" #include /* If setvbuf has the reversed format, exit 0. */ @@ -13635,15 +14060,15 @@ } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:13638: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14063: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13641: \$? = $ac_status" >&5 + echo "$as_me:14066: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:13643: \"$ac_try\"") >&5 + { (eval echo "$as_me:14068: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13646: \$? = $ac_status" >&5 + echo "$as_me:14071: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_setvbuf_reversed=yes else @@ -13656,7 +14081,7 @@ fi rm -f core core.* *.core fi -echo "$as_me:13659: result: $ac_cv_func_setvbuf_reversed" >&5 +echo "$as_me:14084: 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 +14092,13 @@ fi fi -echo "$as_me:13670: checking return type of signal handlers" >&5 +echo "$as_me:14095: 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 14101 "configure" #include "confdefs.h" #include #include @@ -13695,16 +14120,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:13698: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:14123: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:13701: \$? = $ac_status" >&5 + echo "$as_me:14126: \$? = $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:14129: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13707: \$? = $ac_status" >&5 + echo "$as_me:14132: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_signal=void else @@ -13714,21 +14139,21 @@ fi rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:13717: result: $ac_cv_type_signal" >&5 +echo "$as_me:14142: result: $ac_cv_type_signal" >&5 echo "${ECHO_T}$ac_cv_type_signal" >&6 cat >>confdefs.h <&5 +echo "$as_me:14149: 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 14156 "configure" #include "confdefs.h" #include @@ -13741,16 +14166,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:13744: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:14169: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:13747: \$? = $ac_status" >&5 + echo "$as_me:14172: \$? = $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:14175: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13753: \$? = $ac_status" >&5 + echo "$as_me:14178: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_type_sigaction=yes else @@ -13761,13 +14186,13 @@ rm -f conftest.$ac_objext conftest.$ac_ext fi -echo "$as_me:13764: result: $cf_cv_type_sigaction" >&5 +echo "$as_me:14189: 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:14195: 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 +14207,7 @@ CPPFLAGS="$cf_save_CPPFLAGS" test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts" cat >conftest.$ac_ext <<_ACEOF -#line 13785 "configure" +#line 14210 "configure" #include "confdefs.h" #include #ifdef HAVE_TERMIOS_H @@ -13826,16 +14251,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:13829: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:14254: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:13832: \$? = $ac_status" >&5 + echo "$as_me:14257: \$? = $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:14260: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13838: \$? = $ac_status" >&5 + echo "$as_me:14263: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_sizechange=yes else @@ -13854,7 +14279,7 @@ done fi -echo "$as_me:13857: result: $cf_cv_sizechange" >&5 +echo "$as_me:14282: 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 +14296,13 @@ esac fi -echo "$as_me:13874: checking for memmove" >&5 +echo "$as_me:14299: 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 14305 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char memmove (); below. */ @@ -13908,16 +14333,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13911: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14336: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13914: \$? = $ac_status" >&5 + echo "$as_me:14339: \$? = $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:14342: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13920: \$? = $ac_status" >&5 + echo "$as_me:14345: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_memmove=yes else @@ -13927,19 +14352,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:14355: 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:14361: 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 14367 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char bcopy (); below. */ @@ -13970,16 +14395,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:13973: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14398: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:13976: \$? = $ac_status" >&5 + echo "$as_me:14401: \$? = $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:14404: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:13982: \$? = $ac_status" >&5 + echo "$as_me:14407: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_bcopy=yes else @@ -13989,11 +14414,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:14417: 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:14421: 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 +14428,7 @@ cf_cv_good_bcopy=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 14006 "configure" +#line 14431 "configure" #include "confdefs.h" int main() { @@ -14017,15 +14442,15 @@ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:14020: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14445: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14023: \$? = $ac_status" >&5 + echo "$as_me:14448: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:14025: \"$ac_try\"") >&5 + { (eval echo "$as_me:14450: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14028: \$? = $ac_status" >&5 + echo "$as_me:14453: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_good_bcopy=yes else @@ -14038,7 +14463,7 @@ fi fi -echo "$as_me:14041: result: $cf_cv_good_bcopy" >&5 +echo "$as_me:14466: result: $cf_cv_good_bcopy" >&5 echo "${ECHO_T}$cf_cv_good_bcopy" >&6 else @@ -14059,7 +14484,7 @@ fi -echo "$as_me:14062: checking if poll really works" >&5 +echo "$as_me:14487: 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 +14494,7 @@ cf_cv_working_poll=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 14072 "configure" +#line 14497 "configure" #include "confdefs.h" #include @@ -14090,15 +14515,15 @@ } _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:14093: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14518: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14096: \$? = $ac_status" >&5 + echo "$as_me:14521: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:14098: \"$ac_try\"") >&5 + { (eval echo "$as_me:14523: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14101: \$? = $ac_status" >&5 + echo "$as_me:14526: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_working_poll=yes else @@ -14110,7 +14535,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:14538: 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 +14543,7 @@ # special check for test/ditto.c -echo "$as_me:14121: checking for openpty in -lutil" >&5 +echo "$as_me:14546: 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 +14551,7 @@ ac_check_lib_save_LIBS=$LIBS LIBS="-lutil $LIBS" cat >conftest.$ac_ext <<_ACEOF -#line 14129 "configure" +#line 14554 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ @@ -14145,16 +14570,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14148: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14573: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14151: \$? = $ac_status" >&5 + echo "$as_me:14576: \$? = $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:14579: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14157: \$? = $ac_status" >&5 + echo "$as_me:14582: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_util_openpty=yes else @@ -14165,7 +14590,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:14593: 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 +14598,7 @@ cf_cv_lib_util=no fi -echo "$as_me:14176: checking for openpty header" >&5 +echo "$as_me:14601: 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 +14609,7 @@ for cf_header in pty.h libutil.h util.h do cat >conftest.$ac_ext <<_ACEOF -#line 14187 "configure" +#line 14612 "configure" #include "confdefs.h" #include <$cf_header> @@ -14201,16 +14626,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14204: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14629: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14207: \$? = $ac_status" >&5 + echo "$as_me:14632: \$? = $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:14635: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14213: \$? = $ac_status" >&5 + echo "$as_me:14638: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_func_openpty=$cf_header @@ -14228,7 +14653,7 @@ LIBS="$cf_save_LIBS" fi -echo "$as_me:14231: result: $cf_cv_func_openpty" >&5 +echo "$as_me:14656: result: $cf_cv_func_openpty" >&5 echo "${ECHO_T}$cf_cv_func_openpty" >&6 if test "$cf_cv_func_openpty" != no ; then @@ -14274,13 +14699,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 14708 "configure" #include "confdefs.h" #include int @@ -14292,16 +14717,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14295: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:14720: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14298: \$? = $ac_status" >&5 + echo "$as_me:14723: \$? = $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:14726: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14304: \$? = $ac_status" >&5 + echo "$as_me:14729: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else @@ -14318,13 +14743,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}:14746: 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 +14777,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}:14780: testing adding $cf_add_libdir to library-path ..." 1>&5 LDFLAGS="-L$cf_add_libdir $LDFLAGS" fi @@ -14363,23 +14788,23 @@ fi esac -echo "$as_me:14366: checking for db.h" >&5 +echo "$as_me:14791: 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 14797 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:14376: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:14801: \"$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:14807: \$? = $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 +14823,11 @@ fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:14401: result: $ac_cv_header_db_h" >&5 +echo "$as_me:14826: 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:14830: 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 +14838,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}:14841: testing checking for db version $cf_db_version ..." 1>&5 cat >conftest.$ac_ext <<_ACEOF -#line 14419 "configure" +#line 14844 "configure" #include "confdefs.h" $ac_includes_default @@ -14446,16 +14871,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14449: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:14874: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14452: \$? = $ac_status" >&5 + echo "$as_me:14877: \$? = $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:14880: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14458: \$? = $ac_status" >&5 + echo "$as_me:14883: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_hashed_db_version=$cf_db_version @@ -14469,16 +14894,16 @@ done fi -echo "$as_me:14472: result: $cf_cv_hashed_db_version" >&5 +echo "$as_me:14897: 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:14901: 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:14906: 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 +14917,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}:14920: testing checking for library "$cf_db_libs" ..." 1>&5 cat >conftest.$ac_ext <<_ACEOF -#line 14498 "configure" +#line 14923 "configure" #include "confdefs.h" $ac_includes_default @@ -14550,16 +14975,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14553: \"$ac_link\"") >&5 +if { (eval echo "$as_me:14978: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14556: \$? = $ac_status" >&5 + echo "$as_me:14981: \$? = $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:14984: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14562: \$? = $ac_status" >&5 + echo "$as_me:14987: \$? = $ac_status" >&5 (exit $ac_status); }; }; then if test -n "$cf_db_libs" ; then @@ -14579,11 +15004,11 @@ done fi -echo "$as_me:14582: result: $cf_cv_hashed_db_libs" >&5 +echo "$as_me:15007: 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:15011: 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 +15018,7 @@ else - { { echo "$as_me:14596: error: Cannot find db.h" >&5 + { { echo "$as_me:15021: error: Cannot find db.h" >&5 echo "$as_me: error: Cannot find db.h" >&2;} { (exit 1); exit 1; }; } @@ -14608,7 +15033,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:15036: 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 +15041,7 @@ else cat >conftest.$ac_ext <<_ACEOF -#line 14619 "configure" +#line 15044 "configure" #include "confdefs.h" int @@ -14628,23 +15053,23 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14631: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15056: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14634: \$? = $ac_status" >&5 + echo "$as_me:15059: \$? = $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:15062: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14640: \$? = $ac_status" >&5 + echo "$as_me:15065: \$? = $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 15072 "configure" #include "confdefs.h" #ifndef __BEOS__ @@ -14660,16 +15085,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14663: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15088: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14666: \$? = $ac_status" >&5 + echo "$as_me:15091: \$? = $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:15094: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14672: \$? = $ac_status" >&5 + echo "$as_me:15097: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_header_stdbool_h=1 else @@ -14683,13 +15108,13 @@ fi if test "$cf_cv_header_stdbool_h" = 1 -then echo "$as_me:14686: result: yes" >&5 +then echo "$as_me:15111: result: yes" >&5 echo "${ECHO_T}yes" >&6 -else echo "$as_me:14688: result: no" >&5 +else echo "$as_me:15113: result: no" >&5 echo "${ECHO_T}no" >&6 fi -echo "$as_me:14692: checking for builtin bool type" >&5 +echo "$as_me:15117: 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 +15122,7 @@ else cat >conftest.$ac_ext <<_ACEOF -#line 14700 "configure" +#line 15125 "configure" #include "confdefs.h" #include @@ -14712,16 +15137,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:14715: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15140: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:14718: \$? = $ac_status" >&5 + echo "$as_me:15143: \$? = $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:15146: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14724: \$? = $ac_status" >&5 + echo "$as_me:15149: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_cc_bool_type=1 else @@ -14734,9 +15159,9 @@ fi if test "$cf_cv_cc_bool_type" = 1 -then echo "$as_me:14737: result: yes" >&5 +then echo "$as_me:15162: result: yes" >&5 echo "${ECHO_T}yes" >&6 -else echo "$as_me:14739: result: no" >&5 +else echo "$as_me:15164: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -14758,7 +15183,7 @@ cf_stdcpp_libname=stdc++ ;; esac -echo "$as_me:14761: checking for library $cf_stdcpp_libname" >&5 +echo "$as_me:15186: 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 +15192,7 @@ cf_save="$LIBS" LIBS="$LIBS -l$cf_stdcpp_libname" cat >conftest.$ac_ext <<_ACEOF -#line 14770 "configure" +#line 15195 "configure" #include "confdefs.h" #include @@ -14783,16 +15208,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14786: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15211: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14789: \$? = $ac_status" >&5 + echo "$as_me:15214: \$? = $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:15217: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14795: \$? = $ac_status" >&5 + echo "$as_me:15220: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_libstdcpp=yes else @@ -14804,12 +15229,12 @@ LIBS="$cf_save" fi -echo "$as_me:14807: result: $cf_cv_libstdcpp" >&5 +echo "$as_me:15232: 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:15237: 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 +15250,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:15253: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14831: \$? = $ac_status" >&5 + echo "$as_me:15256: \$? = $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:15258: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14836: \$? = $ac_status" >&5 + echo "$as_me:15261: \$? = $ac_status" >&5 (exit $ac_status); }; then eval cf_cv_prog_CXX_c_o=yes @@ -14844,10 +15269,10 @@ fi if test $cf_cv_prog_CXX_c_o = yes; then - echo "$as_me:14847: result: yes" >&5 + echo "$as_me:15272: result: yes" >&5 echo "${ECHO_T}yes" >&6 else - echo "$as_me:14850: result: no" >&5 + echo "$as_me:15275: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -14867,12 +15292,12 @@ ;; esac if test "$GXX" = yes; then - echo "$as_me:14870: checking for lib$cf_gpp_libname" >&5 + echo "$as_me:15295: 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 15300 "configure" #include "confdefs.h" #include <$cf_gpp_libname/builtin.h> @@ -14886,16 +15311,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14889: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15314: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14892: \$? = $ac_status" >&5 + echo "$as_me:15317: \$? = $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:15320: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14898: \$? = $ac_status" >&5 + echo "$as_me:15323: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cxx_library=yes CXXLIBS="$CXXLIBS -l$cf_gpp_libname" @@ -14914,7 +15339,7 @@ echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF -#line 14917 "configure" +#line 15342 "configure" #include "confdefs.h" #include @@ -14928,16 +15353,16 @@ } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:14931: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15356: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:14934: \$? = $ac_status" >&5 + echo "$as_me:15359: \$? = $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:15362: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:14940: \$? = $ac_status" >&5 + echo "$as_me:15365: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cxx_library=yes CXXLIBS="$CXXLIBS -l$cf_gpp_libname" @@ -14954,7 +15379,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:15382: result: $cf_cxx_library" >&5 echo "${ECHO_T}$cf_cxx_library" >&6 fi @@ -14970,7 +15395,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:15398: 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 +15412,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 15415 "configure" #include "confdefs.h" #include Syntax error _ACEOF -if { (eval echo "$as_me:14995: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:15420: \"$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:15426: \$? = $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 +15446,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 15449 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:15028: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:15453: \"$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:15459: \$? = $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 +15493,7 @@ else ac_cv_prog_CXXCPP=$CXXCPP fi -echo "$as_me:15071: result: $CXXCPP" >&5 +echo "$as_me:15496: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6 ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes @@ -15078,18 +15503,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 15506 "configure" #include "confdefs.h" #include Syntax error _ACEOF -if { (eval echo "$as_me:15086: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:15511: \"$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:15517: \$? = $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 +15537,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 15540 "configure" #include "confdefs.h" #include _ACEOF -if { (eval echo "$as_me:15119: \"$ac_cpp conftest.$ac_ext\"") >&5 +if { (eval echo "$as_me:15544: \"$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:15550: \$? = $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 +15575,7 @@ if $ac_preproc_ok; then : else - { { echo "$as_me:15153: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5 + { { echo "$as_me:15578: 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 +15590,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:15593: 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 15599 "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:15603: \"$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:15609: \$? = $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 +15625,7 @@ fi rm -f conftest.err conftest.$ac_ext fi -echo "$as_me:15203: result: `eval echo '${'$as_ac_Header'}'`" >&5 +echo "$as_me:15628: 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 <&5 + echo "$as_me:15639: 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 15642 "configure" #include "confdefs.h" #include @@ -15231,16 +15656,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15234: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15659: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15237: \$? = $ac_status" >&5 + echo "$as_me:15662: \$? = $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:15665: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15243: \$? = $ac_status" >&5 + echo "$as_me:15668: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_iostream_namespace=yes else @@ -15249,7 +15674,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:15677: 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 +15684,7 @@ fi fi -echo "$as_me:15262: checking if we should include stdbool.h" >&5 +echo "$as_me:15687: 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 +15692,7 @@ else cat >conftest.$ac_ext <<_ACEOF -#line 15270 "configure" +#line 15695 "configure" #include "confdefs.h" int @@ -15279,23 +15704,23 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15282: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15707: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15285: \$? = $ac_status" >&5 + echo "$as_me:15710: \$? = $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:15713: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15291: \$? = $ac_status" >&5 + echo "$as_me:15716: \$? = $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 15723 "configure" #include "confdefs.h" #ifndef __BEOS__ @@ -15311,16 +15736,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15314: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15739: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15317: \$? = $ac_status" >&5 + echo "$as_me:15742: \$? = $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:15745: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15323: \$? = $ac_status" >&5 + echo "$as_me:15748: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_header_stdbool_h=1 else @@ -15334,13 +15759,13 @@ fi if test "$cf_cv_header_stdbool_h" = 1 -then echo "$as_me:15337: result: yes" >&5 +then echo "$as_me:15762: result: yes" >&5 echo "${ECHO_T}yes" >&6 -else echo "$as_me:15339: result: no" >&5 +else echo "$as_me:15764: result: no" >&5 echo "${ECHO_T}no" >&6 fi -echo "$as_me:15343: checking for builtin bool type" >&5 +echo "$as_me:15768: 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 +15773,7 @@ else cat >conftest.$ac_ext <<_ACEOF -#line 15351 "configure" +#line 15776 "configure" #include "confdefs.h" #include @@ -15363,16 +15788,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15366: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15791: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15369: \$? = $ac_status" >&5 + echo "$as_me:15794: \$? = $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:15797: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15375: \$? = $ac_status" >&5 + echo "$as_me:15800: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_builtin_bool=1 else @@ -15385,13 +15810,13 @@ fi if test "$cf_cv_builtin_bool" = 1 -then echo "$as_me:15388: result: yes" >&5 +then echo "$as_me:15813: result: yes" >&5 echo "${ECHO_T}yes" >&6 -else echo "$as_me:15390: result: no" >&5 +else echo "$as_me:15815: result: no" >&5 echo "${ECHO_T}no" >&6 fi -echo "$as_me:15394: checking for size of bool" >&5 +echo "$as_me:15819: 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 +15827,7 @@ cf_cv_type_of_bool=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 15405 "configure" +#line 15830 "configure" #include "confdefs.h" #include @@ -15444,15 +15869,15 @@ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:15447: \"$ac_link\"") >&5 +if { (eval echo "$as_me:15872: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15450: \$? = $ac_status" >&5 + echo "$as_me:15875: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:15452: \"$ac_try\"") >&5 + { (eval echo "$as_me:15877: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15455: \$? = $ac_status" >&5 + echo "$as_me:15880: \$? = $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 +15895,18 @@ fi rm -f cf_test.out -echo "$as_me:15473: result: $cf_cv_type_of_bool" >&5 +echo "$as_me:15898: 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:15904: 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:15909: 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 +15918,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 15921 "configure" #include "confdefs.h" #include @@ -15507,16 +15932,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15510: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:15935: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15513: \$? = $ac_status" >&5 + echo "$as_me:15938: \$? = $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:15941: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15519: \$? = $ac_status" >&5 + echo "$as_me:15944: \$? = $ac_status" >&5 (exit $ac_status); }; }; then test -n "$cf_math" && cat >>confdefs.h <&5 +echo "$as_me:15965: 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:15970: 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 +15984,7 @@ cf_cv_cpp_param_init=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 15562 "configure" +#line 15987 "configure" #include "confdefs.h" class TEST { @@ -15578,15 +16003,15 @@ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:15581: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16006: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15584: \$? = $ac_status" >&5 + echo "$as_me:16009: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:15586: \"$ac_try\"") >&5 + { (eval echo "$as_me:16011: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15589: \$? = $ac_status" >&5 + echo "$as_me:16014: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_cpp_param_init=yes else @@ -15605,7 +16030,7 @@ ac_main_return=return fi -echo "$as_me:15608: result: $cf_cv_cpp_param_init" >&5 +echo "$as_me:16033: 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 +16039,7 @@ if test -n "$CXX"; then -echo "$as_me:15617: checking if $CXX accepts static_cast" >&5 +echo "$as_me:16042: 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 +16053,7 @@ ac_main_return=return cat >conftest.$ac_ext <<_ACEOF -#line 15631 "configure" +#line 16056 "configure" #include "confdefs.h" class NCursesPanel @@ -15672,16 +16097,16 @@ } _ACEOF rm -f conftest.$ac_objext -if { (eval echo "$as_me:15675: \"$ac_compile\"") >&5 +if { (eval echo "$as_me:16100: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? - echo "$as_me:15678: \$? = $ac_status" >&5 + echo "$as_me:16103: \$? = $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:16106: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15684: \$? = $ac_status" >&5 + echo "$as_me:16109: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cf_cv_cpp_static_cast=yes else @@ -15699,7 +16124,7 @@ ac_main_return=return fi -echo "$as_me:15702: result: $cf_cv_cpp_static_cast" >&5 +echo "$as_me:16127: result: $cf_cv_cpp_static_cast" >&5 echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6 fi @@ -15709,12 +16134,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 +16148,7 @@ solaris2*) if test "$GXX" != yes ; then CXX_AR='$(CXX)' - CXX_AR_OPTS='-xar -o' + CXX_ARFLAGS='-xar -o' fi ;; esac @@ -15747,7 +16172,7 @@ else if test "$cf_cv_header_stdbool_h" = 1 ; then -echo "$as_me:15750: checking for size of bool" >&5 +echo "$as_me:16175: 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 +16183,7 @@ cf_cv_type_of_bool=unknown else cat >conftest.$ac_ext <<_ACEOF -#line 15761 "configure" +#line 16186 "configure" #include "confdefs.h" #include @@ -15800,15 +16225,15 @@ _ACEOF rm -f conftest$ac_exeext -if { (eval echo "$as_me:15803: \"$ac_link\"") >&5 +if { (eval echo "$as_me:16228: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? - echo "$as_me:15806: \$? = $ac_status" >&5 + echo "$as_me:16231: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:15808: \"$ac_try\"") >&5 + { (eval echo "$as_me:16233: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? - echo "$as_me:15811: \$? = $ac_status" >&5 + echo "$as_me:16236: \$? = $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 +16251,25 @@ fi rm -f cf_test.out -echo "$as_me:15829: 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 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:16260: 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:16266: 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:16272: result: $cf_cv_type_of_bool" >&5 echo "${ECHO_T}$cf_cv_type_of_bool" >&6 fi fi @@ -15873,7 +16298,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:16301: 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 +16308,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:16311: 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 +16323,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:16326: found $ac_dir/$ac_word" >&5 break done @@ -15907,10 +16332,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:16335: result: $gnat_exists" >&5 echo "${ECHO_T}$gnat_exists" >&6 else - echo "$as_me:15913: result: no" >&5 + echo "$as_me:16338: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -15918,11 +16343,11 @@ cf_ada_make= else -echo "$as_me:15921: checking for gnat version" >&5 +echo "$as_me:16346: 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:16350: result: $cf_gnat_version" >&5 echo "${ECHO_T}$cf_gnat_version" >&6 case $cf_gnat_version in @@ -15945,7 +16370,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:16373: 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 +16385,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:16388: found $ac_dir/$ac_word" >&5 break done @@ -15969,10 +16394,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:16397: result: $M4_exists" >&5 echo "${ECHO_T}$M4_exists" >&6 else - echo "$as_me:15975: result: no" >&5 + echo "$as_me:16400: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -15981,7 +16406,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:16409: checking if GNAT works" >&5 echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6 rm -f conftest* @@ -16009,14 +16434,14 @@ fi rm -f conftest* - echo "$as_me:16012: result: $cf_cv_prog_gnat_correct" >&5 + echo "$as_me:16437: 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:16444: checking if GNAT pragma Unreferenced works" >&5 echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6 rm -f conftest* @@ -16043,7 +16468,7 @@ fi rm -f conftest* - echo "$as_me:16046: result: $cf_cv_pragma_unreferenced" >&5 + echo "$as_me:16471: 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 +16521,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:16524: error: expected a pathname, not \"$withval\"" >&5 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} { (exit 1); exit 1; }; } ;; @@ -16138,7 +16563,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:16566: error: expected a pathname, not \"$withval\"" >&5 echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} { (exit 1); exit 1; }; } ;; @@ -16163,7 +16588,7 @@ ### chooses to split module lists into libraries. ### ### (see CF_LIB_RULES). -echo "$as_me:16166: checking for library subsets" >&5 +echo "$as_me:16591: checking for library subsets" >&5 echo $ECHO_N "checking for library subsets... $ECHO_C" >&6 LIB_SUBSETS= @@ -16176,7 +16601,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 +16620,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:16627: 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 +16662,7 @@ fi ### Build up pieces for makefile rules -echo "$as_me:16229: checking default library suffix" >&5 +echo "$as_me:16665: checking default library suffix" >&5 echo $ECHO_N "checking default library suffix... $ECHO_C" >&6 case $DFT_LWR_MODEL in @@ -16237,46 +16673,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:16676: 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:16679: 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 +16729,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:16732: result: $DFT_DEP_SUFFIX" >&5 echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6 -echo "$as_me:16295: checking default object directory" >&5 +echo "$as_me:16735: checking default object directory" >&5 echo $ECHO_N "checking default object directory... $ECHO_C" >&6 case $DFT_LWR_MODEL in @@ -16308,51 +16748,55 @@ DFT_OBJ_SUBDIR='obj_s' ;; esac esac -echo "$as_me:16311: result: $DFT_OBJ_SUBDIR" >&5 +echo "$as_me:16751: 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:16756: 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 +16810,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:16813: result: $CXX_LIB_SUFFIX" >&5 echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6 fi @@ -16431,6 +16875,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 +16926,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 +16937,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 +16965,12 @@ ;; esac -echo "$as_me:16522: checking where we will install curses.h" >&5 +echo "$as_me:16968: 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:16973: result: $includedir" >&5 echo "${ECHO_T}$includedir" >&6 ### Resolve a conflict between normal and wide-curses by forcing applications @@ -16532,10 +16978,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:16981: 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 +16995,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:16998: checking for src modules" >&5 echo $ECHO_N "checking for src modules... $ECHO_C" >&6 # dependencies and linker-arguments for test-programs @@ -16611,13 +17058,17 @@ fi fi done -echo "$as_me:16614: result: $cf_cv_src_modules" >&5 +echo "$as_me:17061: 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 +17079,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 +17090,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 +17131,7 @@ done cat >>confdefs.h <>confdefs.h <&5 +echo "$as_me:17214: 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:17217: 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}:17221: 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}:17225: testing ...checking EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 case "$EXTRA_LDFLAGS" in #(vi -Wl,-rpath,*) #(vi @@ -16793,7 +17244,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}:17247: testing Filtering $cf_rpath_src ..." 1>&5 case $cf_rpath_src in #(vi -L*) #(vi @@ -16804,7 +17255,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}:17258: testing ...Filter $cf_rpath_tmp ..." 1>&5 EXTRA_LDFLAGS="$cf_rpath_tmp $EXTRA_LDFLAGS" ;; @@ -16814,15 +17265,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}:17268: 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}:17272: testing ...checked EXTRA_LDFLAGS $EXTRA_LDFLAGS ..." 1>&5 fi else -echo "$as_me:16825: result: no" >&5 +echo "$as_me:17276: result: no" >&5 echo "${ECHO_T}no" >&6 fi @@ -16849,9 +17300,19 @@ 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" -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" + +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/ncurses_dll.h include/termcap.h include/unctrl.h $SUB_MAKEFILES Makefile" ac_config_commands="$ac_config_commands default" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -16932,7 +17393,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:17396: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL @@ -17064,7 +17525,7 @@ cat >>$CONFIG_STATUS <&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} @@ -17127,7 +17588,7 @@ ac_need_defaults=false;; # This is an error. - -*) { { echo "$as_me:17130: error: unrecognized option: $1 + -*) { { echo "$as_me:17591: 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 +17607,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 +17642,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 +17667,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" @@ -17218,13 +17680,14 @@ # Handling of arguments. "include/MKterm.h.awk" ) CONFIG_FILES="$CONFIG_FILES include/MKterm.h.awk" ;; "include/curses.head" ) CONFIG_FILES="$CONFIG_FILES include/curses.head:include/curses.h.in" ;; + "include/ncurses_dll.h" ) CONFIG_FILES="$CONFIG_FILES include/ncurses_dll.h" ;; "include/termcap.h" ) CONFIG_FILES="$CONFIG_FILES include/termcap.h" ;; "include/unctrl.h" ) CONFIG_FILES="$CONFIG_FILES include/unctrl.h" ;; "$SUB_MAKEFILES" ) CONFIG_FILES="$CONFIG_FILES $SUB_MAKEFILES" ;; "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:17690: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac @@ -17349,6 +17812,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 +17824,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 +17836,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 +17858,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 +17868,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 @@ -17423,8 +17889,12 @@ s,@NCURSES_BOOL@,$NCURSES_BOOL,;t t s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t +s,@NCURSES_CCHARW_MAX@,$NCURSES_CCHARW_MAX,;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 +17905,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 +17920,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 +17964,8 @@ 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 +s,@cross_compiling@,$cross_compiling,;t t CEOF EOF @@ -17607,7 +18080,7 @@ esac if test x"$ac_file" != x-; then - { echo "$as_me:17610: creating $ac_file" >&5 + { echo "$as_me:18083: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi @@ -17625,7 +18098,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:18101: 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 +18111,7 @@ echo $srcdir/$f else # /dev/null tree - { { echo "$as_me:17641: error: cannot find input file: $f" >&5 + { { echo "$as_me:18114: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; @@ -17704,7 +18177,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:18180: 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 +18188,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:18191: 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 +18201,7 @@ echo $srcdir/$f else # /dev/null tree - { { echo "$as_me:17731: error: cannot find input file: $f" >&5 + { { echo "$as_me:18204: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; @@ -17786,7 +18259,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:18262: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ @@ -17873,40 +18346,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 +18497,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 +18715,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 <> Makefile <> Makefile <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-09-12 08:51:28.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-09-12 08:51:28.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-09-12 08:52: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 * @@ -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.90 2009/08/29 19:02:25 tom Exp $") /*---------------------------------------------------------------------------- This is the core module of the form library. It contains the majority @@ -188,7 +188,7 @@ /* Macro to set the attributes for a fields window */ #define Set_Field_Window_Attributes(field,win) \ ( wbkgdset((win),(chtype)((field)->pad | (field)->back)), \ - wattrset((win),(field)->fore) ) + (void) wattrset((win),(field)->fore) ) /* Logic to decide whether or not a field really appears on the form */ #define Field_Really_Appears(field) \ @@ -1073,9 +1073,13 @@ else { if (field->opts & O_VISIBLE) - Set_Field_Window_Attributes(field, win); + { + Set_Field_Window_Attributes(field, win); + } else - wattrset(win, WINDOW_ATTRS(fwin)); + { + (void)wattrset(win, WINDOW_ATTRS(fwin)); + } werase(win); } @@ -4366,6 +4370,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-09-12 08:51:28.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-09-12 08:51:30.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/fty_generic.c ncurses-5.7/form/fty_generic.c --- ncurses-5.7.orig/form/fty_generic.c 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/form/fty_generic.c 2009-09-12 08:51:49.000000000 -0700 @@ -0,0 +1,287 @@ +/**************************************************************************** + * 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 : Juergen Pfeifer * +* * +***************************************************************************/ + +#include "form.priv.h" + +MODULE_ID("$Id: fty_generic.c,v 1.1 2008/11/18 08:50:04 juergen Exp $") + +/* + * This is not a full implementation of a field type, but adds some + * support for higher level languages with some restrictions to interop + * with C language. Especially the collection of arguments for the + * various fieldtypes is not based on the vararg C mechanism, but on a + * iterator based callback mechanism that allowes the high level language + * to provide the arguments as a structure. Most languages have mechanisms + * to layout structures so that they can be passed to C. + * The languages can register a new generic fieldtype dynamically and store + * a handle (key) to the calling object as an argument. Together with that + * it can register a freearg callback, so that the high level language + * remains in control of the memory management of the arguments they pass. + * The design idea is, that the high-level language - typically a OO + * language like C# or Java, uses it's own dispatching mechanisms + * (polymorphism) to call the proper check routines responsible for the + * argument type. So these language implement typically only one generic + * fieldtype they register with the forms library using this call. + * + * For that purpose we have extended the fieldtype struc by a new element + * that gets the arguments from a single struct passed by the caller. + * + */ + + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static void *Generic_This_Type( void * arg ) +| +| Description : We interpret the passed arg just as a handle the +| calling language uses to keep track of its allocated +| argument structures. We can simply copy it back. +| +| Return Values : Pointer to argument structure ++--------------------------------------------------------------------------*/ +static void * +Generic_This_Type(void *arg) +{ + return (arg); +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : FIELDTYPE *_nc_generic_fieldtype( +| bool (* const field_check)(FIELD *,const void *), +| bool (* const char_check) (int, const void *), +| bool (*const next)(FORM*,FIELD*,const void*), +| bool (*const prev)(FORM*,FIELD*,const void*), +| void (*freecallback)(void*)) +| +| Description : Create a new fieldtype. The application programmer must +| write a field_check and a char_check function and give +| them as input to this call. A callback to allow the +| release of the allocated memory must also be provided. +| For generic field types, we provide some more +| information about the field as parameters. +| +| If an error occurs, errno is set to +| E_BAD_ARGUMENT - invalid arguments +| E_SYSTEM_ERROR - system error (no memory) +| +| Return Values : Fieldtype pointer or NULL if error occurred ++--------------------------------------------------------------------------*/ +NCURSES_EXPORT(FIELDTYPE *) +_nc_generic_fieldtype(bool (*const field_check) (FORM*, FIELD *, const void *), + bool (*const char_check) (int, FORM*, FIELD*, const void *), + bool (*const next)(FORM*, FIELD*,const void*), + bool (*const prev)(FORM*, FIELD*,const void*), + void (*freecallback)(void*)) +{ + int code = E_SYSTEM_ERROR; + FIELDTYPE* res = (FIELDTYPE*)0; + + T((T_CALLED("_nc_generic_fieldtype(%p,%p,%p,%p,%p)"), + field_check, char_check, next, prev, freecallback)); + + if (field_check || char_check) + { + res = typeMalloc(FIELDTYPE,1); + if (res) + { + *res = *_nc_Default_FieldType; + res->status |= (_HAS_ARGS | _GENERIC); + res->fieldcheck.gfcheck = field_check; + res->charcheck.gccheck = char_check; + res->genericarg = Generic_This_Type; + res->freearg = freecallback; + res->enum_next.gnext = next; + res->enum_prev.gprev = prev; + code = E_OK; + } + } + else + code = E_BAD_ARGUMENT; + + if (E_OK != code) + SET_ERROR(code); + + returnFieldType(res); +} + + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : static TypeArgument *GenericArgument( +| const FIELDTYPE* typ, +| int (*argiterator)(void**), +| int* err) +| +| Description : The iterator callback must browse through all fieldtype +| parameters that have an argument associated with the +| type. The iterator returns 1 if the operation to get +| the next element was successfull, 0 otherwise. If the +| iterator could move to the next argument, it fills +| the void* pointer representing the argument into the +| location provided as argument to the iterator. +| The err reference is used to keep track of errors. +| +| Return Values : Pointer to argument structure ++--------------------------------------------------------------------------*/ +static TypeArgument* +GenericArgument(const FIELDTYPE *typ, + int (*argiterator)(void**), int *err) +{ + TypeArgument *res = (TypeArgument *)0; + + if (typ!=0 && (typ->status & _HAS_ARGS) != 0 && err!=0 && argiterator != 0) + { + if (typ->status & _LINKED_TYPE) + { + /* Composite fieldtypes keep track internally of their own memory */ + TypeArgument* p = typeMalloc(TypeArgument,1); + if (p) + { + p->left = GenericArgument(typ->left, argiterator, err); + p->right = GenericArgument(typ->right, argiterator, err); + return p; + } + else + *err += 1; + } + else + { + assert(typ->genericarg != (void*)0); + if (typ->genericarg == 0) + *err += 1; + else + { + void* argp; + int valid = argiterator(&argp); + if (valid==0 || argp==0 || + !(res = (TypeArgument*)typ->genericarg(argp))) + { + *err += 1; + } + } + } + } + return res; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : int _nc_set_generic_fieldtype( +| FIELD* field, +| FIELDTYPE* ftyp, +| int (*argiterator)(void**)) +| +| Description : Assign the fieldtype to the field and use the iterator +| mechanism to get the arguments when a check is +| performed. +| +| Return Values : E_OK if all went well +| E_SYSTEM_ERROR if an error occurred ++--------------------------------------------------------------------------*/ +NCURSES_EXPORT(int) +_nc_set_generic_fieldtype(FIELD *field, + FIELDTYPE* ftyp, + int (*argiterator)(void**)) +{ + int code = E_SYSTEM_ERROR; + int err = 0; + + if (field) + { + if (field && field->type) + _nc_Free_Type(field); + + field->type = ftyp; + if (ftyp) + { + if (argiterator) + { + /* The precondition is that the iterator is reset */ + field->arg = (void*)GenericArgument(field->type,argiterator,&err); + + if (err) + { + _nc_Free_Argument(field->type, (TypeArgument*)(field->arg)); + field->type = (FIELDTYPE*)0; + field->arg = (void*)0; + } + else + { + code = E_OK; + if (field->type) + field->type->ref++; + } + } + } + else + { + field->arg = (void*)0; + code = E_OK; + } + } + return code; +} + +/*--------------------------------------------------------------------------- +| Facility : libnform +| Function : WINDOW* _nc_form_cursor( +| FORM* form, +| int *pRow, int *pCol) +| +| Description : Get the current position of the form cursor position +| We also return the field window +| +| Return Values : The fields Window or NULL on error ++--------------------------------------------------------------------------*/ +NCURSES_EXPORT(WINDOW*) +_nc_form_cursor(const FORM* form, int* pRow, int* pCol) +{ + int code = E_SYSTEM_ERROR; + WINDOW* res = (WINDOW*)0; + + if (!(form==0 || pRow==0 || pCol==0)) + { + *pRow = form->currow; + *pCol = form->curcol; + res = form->w; + code = E_OK; + } + if (code != E_OK) + SET_ERROR(code); + return res; +} + + +/* fty_generic.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-09-12 08:51:25.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-09-12 08:51:17.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-09-12 08:52:10.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.206 2009/09/06 15:55:10 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,13 @@ #endif /* + * The reentrant code relies on the opaque setting, but adds features. + */ +#ifndef NCURSES_REENTRANT +#define NCURSES_REENTRANT @cf_cv_enable_reentrant@ +#endif + +/* * The internal type used for window dimensions. */ #undef NCURSES_SIZE_T @@ -138,7 +139,6 @@ #endif #include -#include #include /* we need va_list */ #ifdef _XOPEN_SOURCE_EXTENDED #include /* we want wchar_t */ @@ -224,9 +224,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 @@ -344,7 +344,13 @@ typedef unsigned int wint_t@NCURSES_OK_WCHAR_T@; #endif -#define CCHARW_MAX 5 +/* + * cchar_t stores an array of CCHARW_MAX wide characters. The first is + * normally a spacing character. The others are non-spacing. If those + * (spacing and nonspacing) do not fill the array, a null L'\0' follows. + * Otherwise, a null is assumed to follow when extracting via getcchar(). + */ +#define CCHARW_MAX @NCURSES_CCHARW_MAX@ typedef struct { attr_t attr; @@ -511,6 +517,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 +658,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 +666,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 +722,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 +739,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 */ @@ -838,6 +850,7 @@ extern NCURSES_EXPORT(const char *) curses_version (void); extern NCURSES_EXPORT(int) assume_default_colors (int, int); extern NCURSES_EXPORT(int) define_key (const char *, int); +extern NCURSES_EXPORT(int) get_escdelay (void); extern NCURSES_EXPORT(int) key_defined (const char *); extern NCURSES_EXPORT(int) keyok (int, bool); extern NCURSES_EXPORT(int) resize_term (int, int); @@ -856,23 +869,135 @@ * 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_pad (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ +extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *); /* @GENERATED_EXT_FUNCS@ */ +extern NCURSES_EXPORT(bool) is_subwin (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 +1096,11 @@ #if !NCURSES_OPAQUE #if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@ #define wattrset(win,at) ((win)->_color = PAIR_NUMBER(at), \ - (win)->_attrs = (at)) + (win)->_attrs = (at), \ + NCURSES_CAST(int, (win)->_attrs)) #else -#define wattrset(win,at) ((win)->_attrs = (at)) +#define wattrset(win,at) ((win)->_attrs = (at), \ + NCURSES_CAST(int, (win)->_attrs)) #endif #endif /* NCURSES_OPAQUE */ @@ -1148,16 +1275,18 @@ */ #if @NCURSES_EXT_FUNCS@ #if !NCURSES_OPAQUE -#define is_cleared(win) ((win)->_clear) -#define is_idcok(win) ((win)->_idcok) -#define is_idlok(win) ((win)->_idlok) -#define is_immedok(win) ((win)->_immed) -#define is_keypad(win) ((win)->_use_keypad) -#define is_leaveok(win) ((win)->_leaveok) -#define is_nodelay(win) ((win)->_delay == 0) -#define is_notimeout(win) ((win)->_notimeout) -#define is_scrollok(win) ((win)->_scroll) -#define is_syncok(win) ((win)->_sync) +#define is_cleared(win) ((win) ? (win)->_clear : FALSE) +#define is_idcok(win) ((win) ? (win)->_idcok : FALSE) +#define is_idlok(win) ((win) ? (win)->_idlok : FALSE) +#define is_immedok(win) ((win) ? (win)->_immed : FALSE) +#define is_keypad(win) ((win) ? (win)->_use_keypad : FALSE) +#define is_leaveok(win) ((win) ? (win)->_leaveok : FALSE) +#define is_nodelay(win) ((win) ? ((win)->_delay == 0) : FALSE) +#define is_notimeout(win) ((win) ? (win)->_notimeout : FALSE) +#define is_pad(win) ((win) ? ((win)->_flags & _ISPAD) != 0 : FALSE) +#define is_scrollok(win) ((win) ? (win)->_scroll : FALSE) +#define is_subwin(win) ((win) ? ((win)->_flags & _SUBWIN) != 0 : FALSE) +#define is_syncok(win) ((win) ? (win)->_sync : FALSE) #define wgetparent(win) ((win) ? (win)->_parent : 0) #define wgetscrreg(win,t,b) ((win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR) #endif @@ -1173,7 +1302,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-09-12 08:51:40.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 + #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-09-12 08:51:37.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/headers ncurses-5.7/include/headers --- ncurses-5.7.orig/include/headers 2007-01-20 11:57:04.000000000 -0800 +++ ncurses-5.7/include/headers 2009-09-12 08:52:09.000000000 -0700 @@ -1,6 +1,6 @@ -# $Id: headers,v 1.9 2007/01/20 19:57:04 Miroslav.Lichvar Exp $ +# $Id: headers,v 1.10 2009/09/05 17:46:30 tom 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"), # @@ -33,7 +33,7 @@ curses.h unctrl.h termcap.h -$(srcdir)/ncurses_dll.h +ncurses_dll.h @ ticlib $(srcdir)/tic.h $(srcdir)/term_entry.h diff -Naur ncurses-5.7.orig/include/Makefile.in ncurses-5.7/include/Makefile.in --- ncurses-5.7.orig/include/Makefile.in 2001-12-08 10:50:06.000000000 -0800 +++ ncurses-5.7/include/Makefile.in 2009-09-12 08:52:04.000000000 -0700 @@ -1,6 +1,6 @@ -# $Id: Makefile.in,v 1.35 2001/12/08 18:50:06 tom Exp $ +# $Id: Makefile.in,v 1.37 2009/08/10 20:50:04 tom Exp $ ############################################################################## -# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. # +# Copyright (c) 1998,2001,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 @@ CONFIG_SRC = \ MKterm.h.awk \ curses.head \ + ncurses_dll.h \ termcap.h \ unctrl.h 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-09-12 08:51:37.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 " + print "# define TTY struct termios" + print "#else" print "#undef TERMIOS" print "#include " print "#include " 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-09-12 08:51:30.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_mingw.h ncurses-5.7/include/nc_mingw.h --- ncurses-5.7.orig/include/nc_mingw.h 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/include/nc_mingw.h 2009-09-12 08:51:49.000000000 -0700 @@ -0,0 +1,59 @@ +/**************************************************************************** + * Copyright (c) 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"), 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 Dickey, 2008-on * + * * + ****************************************************************************/ + +/* $Id: nc_mingw.h,v 1.1 2009/02/07 23:33:19 tom Exp $ */ + +#ifndef NC_MINGW_H +#define NC_MINGW_H 1 + +#define WINVER 0x0501 +#include + +#undef sleep +#define sleep(n) Sleep((n) * 1000) + +#undef gettimeofday +#define gettimeofday(tv,tz) _nc_gettimeofday(tv,tz) + +#include /* for struct timeval */ + +extern int _nc_gettimeofday(struct timeval *, void *); + +#undef HAVE_GETTIMEOFDAY +#define HAVE_GETTIMEOFDAY 1 + +#define SIGHUP 1 +#define SIGKILL 9 +#define getlogin() "username" + +#endif /* NC_MINGW_H */ 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-09-12 08:51:50.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 * @@ -31,9 +31,8 @@ * and: Thomas E. Dickey * ****************************************************************************/ - /* - * $Id: nc_panel.h,v 1.5 2008/08/04 18:26:46 tom Exp $ + * $Id: nc_panel.h,v 1.7 2009/07/04 18:20:02 tom Exp $ * * nc_panel.h * @@ -45,25 +44,33 @@ #define NC_PANEL_H 1 #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif -struct panel; /* Forward Declaration */ + struct panel; /* Forward Declaration */ -struct panelhook { - struct panel* top_panel; - struct panel* bottom_panel; - struct panel* stdscr_pseudo_panel; + struct panelhook + { + struct panel *top_panel; + struct panel *bottom_panel; + struct panel *stdscr_pseudo_panel; #if NO_LEAKS - int (*destroy)(struct panel *); + int (*destroy) (struct panel *); #endif -}; + }; -/* Retrieve the panelhook of the current screen */ -extern NCURSES_EXPORT(struct panelhook*) _nc_panelhook (void); + struct screen; /* Forward declaration */ +/* Retrieve the panelhook of the specified 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 -#endif /* NC_PANEL_H */ +#endif /* NC_PANEL_H */ 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-09-12 08:51:35.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-09-12 08:51:30.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/ncurses_dll.h.in ncurses-5.7/include/ncurses_dll.h.in --- ncurses-5.7.orig/include/ncurses_dll.h.in 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/include/ncurses_dll.h.in 2009-09-12 08:51:47.000000000 -0700 @@ -0,0 +1,86 @@ +/**************************************************************************** + * 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"), 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: ncurses_dll.h.in,v 1.8 2009/04/04 22:26:27 tom Exp $ */ + +#ifndef NCURSES_DLL_H_incl +#define NCURSES_DLL_H_incl 1 + +/* + * 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) + +/* no longer needed on cygwin or mingw, thanks to auto-import */ +/* but this structure may be useful at some point for an MSVC build */ +/* so, for now unconditionally define the important flags */ +/* "the right way" for proper static and dll+auto-import behavior */ +#undef NCURSES_DLL +#define NCURSES_STATIC + +#if defined(__CYGWIN__) || defined(__MINGW32__) +# if defined(NCURSES_DLL) +# if defined(NCURSES_STATIC) +# undef NCURSES_STATIC +# endif +# endif +# undef NCURSES_IMPEXP +# undef NCURSES_API +# undef NCURSES_EXPORT +# undef NCURSES_EXPORT_VAR +# if defined(NCURSES_DLL) +/* building a DLL */ +# define NCURSES_IMPEXP __declspec(dllexport) +# elif defined(NCURSES_STATIC) +/* building or linking to a static library */ +# define NCURSES_IMPEXP /* nothing */ +# else +/* linking to the DLL */ +# define NCURSES_IMPEXP __declspec(dllimport) +# endif +# define NCURSES_API __cdecl +# define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API +# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type +#endif + +/* Take care of non-cygwin platforms */ +#if !defined(NCURSES_IMPEXP) +# define NCURSES_IMPEXP /* nothing */ +#endif +#if !defined(NCURSES_API) +# define NCURSES_API /* nothing */ +#endif +#if !defined(NCURSES_EXPORT) +# define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API +#endif +#if !defined(NCURSES_EXPORT_VAR) +# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type +#endif + +#endif /* NCURSES_DLL_H_incl */ diff -Naur ncurses-5.7.orig/include/ncurses_mingw.h ncurses-5.7/include/ncurses_mingw.h --- ncurses-5.7.orig/include/ncurses_mingw.h 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/include/ncurses_mingw.h 2009-09-12 08:51:49.000000000 -0700 @@ -0,0 +1,164 @@ +/**************************************************************************** + * Copyright (c) 1998-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 * + * "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: Juergen Pfeifer, 2008-on * + * * + ****************************************************************************/ + +/* $Id: ncurses_mingw.h,v 1.1 2008/12/14 19:22:16 juergen Exp $ */ + +/* + * This is a placholder up to now and describes what needs to be implemented + * to support I/O to external terminals with ncurses on the Windows OS. + */ + +#if __MINGW32__ +#ifndef _NC_MINGWH +#define _NC_MINGWH + +#define USE_CONSOLE_DRIVER 1 + +#undef TERMIOS +#define TERMIOS 1 + +#define InvalidHandle ((TERM_HANDLE)-1) +#define InvalidConsoleHandle(s) ((s)==InvalidHandle) + +typedef unsigned char cc_t; +typedef unsigned int speed_t; +typedef unsigned int tcflag_t; + +#define NCCS 32 +struct termios +{ + tcflag_t c_iflag; /* input mode */ + tcflag_t c_oflag; /* output mode */ + tcflag_t c_cflag; /* control mode */ + tcflag_t c_lflag; /* local mode */ + cc_t c_line; /* line discipline */ + cc_t c_cc[NCCS]; /* control characters */ + speed_t c_ispeed; /* input speed */ + speed_t c_ospeed; /* c_ospeed */ +}; + +/* c_cc chars */ +#define VINTR 0 +#define VQUIT 1 +#define VERASE 2 +#define VKILL 3 +#define VEOF 4 +#define VTIME 5 +#define VMIN 6 + +/* c_iflag bits */ +#define ISTRIP 0000040 +#define INLCR 0000100 +#define IGNCR 0000200 +#define ICRNL 0000400 +#define BRKINT 0000002 +#define PARMRK 0000010 +#define IXON 0002000 +#define IGNBRK 0000001 +#define IGNPAR 0000004 +#define INPCK 0000020 +#define IXOFF 0010000 + +/* c_oflag bits */ +#define OPOST 0000001 + +/* c_cflag bit meaning */ +#define CBAUD 0010017 +#define CSIZE 0000060 +#define CS8 0000060 +#define B0 0000000 +#define B50 0000001 +#define B75 0000002 +#define B110 0000003 +#define B134 0000004 +#define B150 0000005 +#define B200 0000006 +#define B300 0000007 +#define B600 0000010 +#define B1200 0000011 +#define B1800 0000012 +#define B2400 0000013 +#define B4800 0000014 +#define B9600 0000015 +#define CLOCAL 0004000 +#define CREAD 0000200 +#define CSTOPB 0000100 +#define HUPCL 0002000 +#define PARENB 0000400 +#define PARODD 0001000 + +/* c_lflag bits */ +#define ECHO 0000010 +#define ECHONL 0000100 +#define ISIG 0000001 +#define IEXTEN 0100000 +#define ICANON 0000002 +#define NOFLSH 0000200 +#define ECHOE 0000020 +#define ECHOK 0000040 + +/* tcflush() */ +#define TCIFLUSH 0 + +/* tcsetattr uses these */ +#define TCSADRAIN 1 + +/* ioctls */ +#define TCGETA 0x5405 +#define TCFLSH 0x540B +#define TIOCGWINSZ 0x5413 + +extern int _nc_mingw_ioctl(int fd, long int request, struct termios* arg); +extern void _nc_set_term_driver(void* term); + +#ifndef cfgetospeed +#define cfgetospeed(t) ((t)->c_cflag & CBAUD) +#endif + +#ifndef tcsetattr +#define tcsetattr(fd, cmd, arg) _nc_mingw_ioctl(fd, cmd, arg) +#endif + +#ifndef tcgetattr +#define tcgetattr(fd, arg) _nc_mingw_ioctl(fd, TCGETA, arg) +#endif + +#ifndef tcflush +#define tcflush(fd, arg) _nc_mingw_ioctl(fd, TCFLSH, arg) +#endif + +#undef ttyname +#define ttyname(fd) NULL + +#endif +#endif 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-09-12 08:51:52.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 * @@ -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.37 2009/07/11 16:52:29 tom Exp $ */ /* * term_entry.h -- interface to entry-manipulation code @@ -81,12 +81,18 @@ #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++) #define for_each_string(n,tp) for(n = 0; n < NUM_STRINGS(tp); n++) +#if NCURSES_XNAMES +#define for_each_ext_boolean(n,tp) for(n = BOOLCOUNT; n < NUM_BOOLEANS(tp); n++) +#define for_each_ext_number(n,tp) for(n = NUMCOUNT; n < NUM_NUMBERS(tp); n++) +#define for_each_ext_string(n,tp) for(n = STRCOUNT; n < NUM_STRINGS(tp); n++) +#endif + #define ExtBoolname(tp,i,names) EXT_NAMES(tp, i, BOOLCOUNT, (i - (tp->num_Booleans - tp->ext_Booleans)), names) #define ExtNumname(tp,i,names) EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names) #define ExtStrname(tp,i,names) EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names) diff -Naur ncurses-5.7.orig/include/tic.h ncurses-5.7/include/tic.h --- ncurses-5.7.orig/include/tic.h 2007-08-11 09:12:43.000000000 -0700 +++ ncurses-5.7/include/tic.h 2009-09-12 08:52:02.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 * @@ -33,7 +33,7 @@ ****************************************************************************/ /* - * $Id: tic.h,v 1.62 2007/08/11 16:12:43 tom Exp $ + * $Id: tic.h,v 1.65 2009/08/08 17:52:46 tom Exp $ * tic.h - Global variables and structures for the terminfo * compiler. */ @@ -183,6 +183,8 @@ #endif +typedef short HashValue; + /* * The file comp_captab.c contains an array of these structures, one * per possible capability. These are indexed by a hash table array of @@ -193,10 +195,21 @@ { const char *nte_name; /* name to hash on */ int nte_type; /* BOOLEAN, NUMBER or STRING */ - short nte_index; /* index of associated variable in its array */ - short nte_link; /* index in table of next hash, or -1 */ + HashValue nte_index; /* index of associated variable in its array */ + HashValue nte_link; /* index in table of next hash, or -1 */ }; + /* + * Use this structure to hide differences between terminfo and termcap + * tables. + */ +typedef struct { + unsigned table_size; + const HashValue *table_data; + HashValue (*hash_of)(const char *); + int (*compare_names)(const char *, const char *); +} HashData; + struct alias { const char *from; @@ -205,7 +218,8 @@ }; extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool); -extern NCURSES_EXPORT(const short *) _nc_get_hash_table (bool); +extern NCURSES_EXPORT(const HashData *) _nc_get_hash_info (bool); +extern NCURSES_EXPORT(const HashValue *) _nc_get_hash_table (bool); extern NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool); #define NOTFOUND ((struct name_table_entry *) 0) @@ -244,9 +258,9 @@ /* comp_hash.c: name lookup */ extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry - (const char *, const short *); + (const char *, const HashValue *); extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry - (const char *, int, const struct name_table_entry *); + (const char *, int, bool); /* comp_scan.c: lexical analysis */ extern NCURSES_EXPORT(int) _nc_get_token (bool); 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-09-12 08:51:30.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-09-12 08:51:59.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.140 2009/08/01 19:32:04 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 @@ -682,6 +687,10 @@ to use a terminfo database which is compatible with the native applications. + --with-ccharw-max=XXX + Override the size of the wide-character array in cchar_t structures. + Changing this will alter the binary interface. This defaults to 5. + --with-chtype=TYPE Override type of chtype, which stores the video attributes and (if --enable-widec is not given) a character. Prior to ncurses 5.5, this @@ -850,6 +859,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 +958,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 +998,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 @@ -1584,7 +1610,8 @@ tree is accessible (that is, in single-user mode or at OS installation time) the ncurses library can be compiled to include an array of pre-fetched fallback entries. This must be done on a machine which - has ncurses' infocmp and terminfo database installed. + has ncurses' infocmp and terminfo database installed (as well as + ncurses' tic and infocmp programs). These entries are checked by setupterm() only when the conventional fetches from the terminfo tree and the termcap fallback (if configured) @@ -1735,6 +1762,10 @@ option), ncurses uses the development platform's tic to do the "make install.data" portion. + The system's tic program is used to install the terminal database, + even for cross-compiles. For best results, the tic program should + be from the most current version of ncurses. + BUGS: Send any feedback to the ncurses mailing list at bug-ncurses@gnu.org. To subscribe send mail to diff -Naur ncurses-5.7.orig/Makefile.in ncurses-5.7/Makefile.in --- ncurses-5.7.orig/Makefile.in 2005-01-29 11:30:06.000000000 -0800 +++ ncurses-5.7/Makefile.in 2009-09-12 08:51:49.000000000 -0700 @@ -1,4 +1,4 @@ -# $Id: Makefile.in,v 1.24 2005/01/29 19:30:06 tom Exp $ +# $Id: Makefile.in,v 1.25 2008/11/16 00:19:59 juergen Exp $ ############################################################################## # Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. # # # @@ -83,6 +83,9 @@ fgrep NCURSES_VERSION $(includedir)/curses.h >/dev/null || \ echo '** Will overwrite non-ncurses curses.h' +dlls: libs + sh mk-dlls.sh + # Put the common rules here so that we can easily construct the list of # directories to visit. all \ @@ -95,3 +98,4 @@ tags \ uninstall \ install :: + 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-09-12 08:51: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_getcchar.3x ncurses-5.7/man/curs_getcchar.3x --- ncurses-5.7.orig/man/curs_getcchar.3x 2008-05-17 12:37:05.000000000 -0700 +++ ncurses-5.7/man/curs_getcchar.3x 2009-09-12 08:51:54.000000000 -0700 @@ -1,5 +1,5 @@ .\"*************************************************************************** -.\" Copyright (c) 2001-2006,2008 Free Software Foundation, Inc. * +.\" Copyright (c) 2001-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: curs_getcchar.3x,v 1.11 2008/05/17 19:37:05 tom Exp $ +.\" $Id: curs_getcchar.3x,v 1.12 2009/07/18 16:10:56 tom Exp $ .TH curs_getcchar 3X "" .SH NAME \fBgetcchar\fP, @@ -126,7 +126,8 @@ .PP When \fIwch\fP is a null pointer, \fBgetcchar\fP returns the number of wide characters referenced by -\fIwcval\fP. +\fIwcval\fP, +including one for a trailing null. .PP When \fIwch\fP is not a null pointer, \fBgetcchar\fP returns \fBOK\fP upon successful completion, 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-09-12 08:52:07.000000000 -0700 @@ -1,6 +1,6 @@ '\" t .\"*************************************************************************** -.\" 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 * @@ -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.32 2009/08/29 18:11:58 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 @@ -256,7 +262,7 @@ xterm's built-in mouse-tracking API or platform-specific drivers including .RS -Alessandro Rubini's gpm server. +Alessandro Rubini's gpm server .br FreeBSD sysmouse .br diff -Naur ncurses-5.7.orig/man/curs_opaque.3x ncurses-5.7/man/curs_opaque.3x --- ncurses-5.7.orig/man/curs_opaque.3x 2007-09-08 11:49:13.000000000 -0700 +++ ncurses-5.7/man/curs_opaque.3x 2009-09-12 08:52:10.000000000 -0700 @@ -1,5 +1,5 @@ .\"*************************************************************************** -.\" Copyright (c) 2007 Free Software Foundation, Inc. * +.\" 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 * @@ -26,7 +26,7 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: curs_opaque.3x,v 1.6 2007/09/08 18:49:13 tom Exp $ +.\" $Id: curs_opaque.3x,v 1.7 2009/09/06 16:01:55 tom Exp $ .TH curs_opaque 3X "" .na .hy 0 @@ -38,8 +38,10 @@ \fBis_keypad\fR, \fBis_leaveok\fR, \fBis_nodelay\fR, -\fBis_timeout\fR, +\fBis_notimeout\fR, +\fBis_pad\fR, \fBis_scrollok\fR, +\fBis_subwin\fR, \fBis_syncok\fR - \fBcurses\fR window properties .ad .hy @@ -62,8 +64,12 @@ .br \fBbool is_notimeout(const WINDOW *win);\fR .br +\fBbool is_pad(const WINDOW *win);\fR +.br \fBbool is_scrollok(const WINDOW *win);\fR .br +\fBbool is_subwin(const WINDOW *win);\fR +.br \fBbool is_syncok(const WINDOW *win);\fR .br \fBWINDOW * wgetparent(const WINDOW *win);\fR @@ -99,9 +105,17 @@ \fBis_notimeout\fR returns the value set in \fBnotimeout\fR .TP 5 +\fBis_pad\fR +returns TRUE if the window is a pad +i.e., created by \fBnewpad\fP +.TP 5 \fBis_scrollok\fR returns the value set in \fBscrollok\fR .TP 5 +\fBis_subwin\fR +returns TRUE if the window is a subwindow, +i.e., created by \fBsubwin\fP or \fBderwin\fP +.TP 5 \fBis_syncok\fR returns the value set in \fBsyncok\fR .TP 5 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-09-12 08:51:28.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-09-12 08:50: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/man_db.renames ncurses-5.7/man/man_db.renames --- ncurses-5.7.orig/man/man_db.renames 2008-10-25 16:24:03.000000000 -0700 +++ ncurses-5.7/man/man_db.renames 2009-09-12 08:52:01.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: man_db.renames,v 0.41 2008/10/25 23:24:03 tom Exp $ +# $Id: man_db.renames,v 0.43 2009/08/04 00:30:32 tom Exp $ # Manual-page renamings for the man_db program # # Files: @@ -152,6 +152,7 @@ resizeterm.3x resizeterm.3ncurses scanf.3s scanf.3 system.3s system.3 +tabs.1 tabs.1 term.5 term.5 term.7 term.7 terminfo.5 terminfo.5 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-09-12 08:52:09.000000000 -0700 @@ -0,0 +1,143 @@ +.\"*************************************************************************** +.\" Copyright (c) 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"), 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.3 2009/09/05 17:06:08 tom Exp $ +.TH @TABS@ 1 "" +.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-09-12 08:50:51.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-09-12 08:52:02.000000000 -0700 @@ -172,6 +172,7 @@ ./Makefile.os2 ./NEWS ./README +./README.MinGW ./README.emx ./TO-DO ./aclocal.m4 @@ -479,6 +480,7 @@ ./form/fty_alnum.c ./form/fty_alpha.c ./form/fty_enum.c +./form/fty_generic.c ./form/fty_int.c ./form/fty_ipv4.c ./form/fty_num.c @@ -507,11 +509,13 @@ ./include/hashed_db.h ./include/headers ./include/nc_alloc.h +./include/nc_mingw.h ./include/nc_panel.h ./include/nc_tparm.h ./include/ncurses_cfg.hin ./include/ncurses_defs -./include/ncurses_dll.h +./include/ncurses_dll.h.in +./include/ncurses_mingw.h ./include/term_entry.h ./include/termcap.h.in ./include/tic.h @@ -640,6 +644,7 @@ ./man/ncurses.3x ./man/panel.3x ./man/resizeterm.3x +./man/tabs.1 ./man/term.5 ./man/term.7 ./man/terminfo.head @@ -694,6 +699,7 @@ ./misc/emx.src ./misc/form.def ./misc/form.ref +./misc/gen-pkgconfig.in ./misc/gen_edit.sh ./misc/jpf-indent ./misc/makedef.cmd @@ -718,6 +724,7 @@ ./mk-0th.awk ./mk-1st.awk ./mk-2nd.awk +./mk-dlls.sh ./mk-hdr.awk ./mkdirs.sh ./ncurses/Makefile.in @@ -748,6 +755,7 @@ ./ncurses/base/lib_delch.c ./ncurses/base/lib_delwin.c ./ncurses/base/lib_dft_fgbg.c +./ncurses/base/lib_driver.c ./ncurses/base/lib_echo.c ./ncurses/base/lib_endwin.c ./ncurses/base/lib_erase.c @@ -817,6 +825,7 @@ ./ncurses/fifo_defs.h ./ncurses/llib-lncurses ./ncurses/llib-lncursest +./ncurses/llib-lncursestw ./ncurses/llib-lncursesw ./ncurses/modules ./ncurses/tinfo/MKcaptab.awk @@ -863,6 +872,7 @@ ./ncurses/tinfo/lib_tparm.c ./ncurses/tinfo/lib_tputs.c ./ncurses/tinfo/lib_ttyflags.c +./ncurses/tinfo/make_hash.c ./ncurses/tinfo/make_keys.c ./ncurses/tinfo/name_match.c ./ncurses/tinfo/parse_entry.c @@ -870,6 +880,7 @@ ./ncurses/tinfo/read_termcap.c ./ncurses/tinfo/setbuf.c ./ncurses/tinfo/strings.c +./ncurses/tinfo/tinfo_driver.c ./ncurses/tinfo/trim_sgr0.c ./ncurses/tinfo/use_screen.c ./ncurses/tinfo/write_entry.c @@ -915,6 +926,8 @@ ./ncurses/widechar/lib_vline_set.c ./ncurses/widechar/lib_wacs.c ./ncurses/widechar/lib_wunctrl.c +./ncurses/win32con/gettimeofday.c +./ncurses/win32con/win_driver.c ./panel/Makefile.in ./panel/headers ./panel/llib-lpanel @@ -947,9 +960,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 +978,7 @@ ./test/cardfile.c ./test/cardfile.dat ./test/chgat.c +./test/clip_printw.c ./test/color_set.c ./test/configure ./test/configure.in @@ -973,6 +989,7 @@ ./test/demo_menus.c ./test/demo_panels.c ./test/demo_termcap.c +./test/demo_terminfo.c ./test/ditto.c ./test/dots.c ./test/dots_mvcur.c @@ -990,6 +1007,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-09-12 08:51:25.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-09-12 08:51:28.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-09-12 08:51:19.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-09-12 08:51:19.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-09-12 08:51:28.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-09-12 08:51:19.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-09-12 08:51:19.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-09-12 08:51:28.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-09-12 08:51:28.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-09-12 08:51:19.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-09-12 08:51:28.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-09-12 08:51:28.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-09-12 08:51: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 <terminfo.tmp @@ -118,7 +124,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 +137,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 +146,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-09-12 08:51:19.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,\\),//\1,' \ + -e 's,\(\.*;\),//\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,//\(\\),\1,' \ + -e 's,//\(\[ ]*\),\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-09-12 08:51: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: +# +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/run_tic.in ncurses-5.7/misc/run_tic.in --- ncurses-5.7.orig/misc/run_tic.in 2006-10-28 12:43:30.000000000 -0700 +++ ncurses-5.7/misc/run_tic.in 2009-09-12 08:52:04.000000000 -0700 @@ -1,7 +1,7 @@ #!@SHELL@ -# $Id: run_tic.in,v 1.23 2006/10/28 19:43:30 tom Exp $ +# $Id: run_tic.in,v 1.24 2009/08/15 17:19:36 tom Exp $ ############################################################################## -# 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 "Software"), # @@ -28,7 +28,7 @@ # authorization. # ############################################################################## # -# Author: Thomas E. Dickey 1996,2000 +# Author: Thomas E. Dickey 1996-on # # This script is used to install terminfo.src using tic. We use a script # because the path checking is too awkward to do in a makefile. @@ -52,8 +52,7 @@ : ${ticdir=@TERMINFO@} : ${source=@TERMINFO_SRC@} : ${LN_S="@LN_S@"} -: ${THAT_CC=cc} -: ${THIS_CC=cc} +: ${cross_compiling=no} : ${ext_funcs=@NCURSES_EXT_FUNCS@} test -z "${DESTDIR}" && DESTDIR= @@ -61,10 +60,10 @@ # Allow tic to run either from the install-path, or from the build-directory. # Do not do this if we appear to be cross-compiling. In that case, we rely # on the host's copy of tic to compile the terminfo database. -if test "$THAT_CC" = "$THIS_CC" ; then +if test "x$cross_compiling" = "xno" ; then case "$PATH" in -:*) PATH=../progs:../lib:${DESTDIR}$bindir$PATH ;; -*) PATH=../progs:../lib:${DESTDIR}$bindir:$PATH ;; +@PATH_SEPARATOR@*) PATH=../progs@PATH_SEPARATOR@../lib@PATH_SEPARATOR@${DESTDIR}$bindir$PATH ;; +*) PATH=../progs@PATH_SEPARATOR@../lib@PATH_SEPARATOR@${DESTDIR}$bindir@PATH_SEPARATOR@$PATH ;; esac export PATH SHLIB="sh $srcdir/shlib" 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-09-12 08:51:35.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. +# +# 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 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-09-12 08:51:25.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/mk-dlls.sh ncurses-5.7/mk-dlls.sh --- ncurses-5.7.orig/mk-dlls.sh 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/mk-dlls.sh 2009-09-12 08:51:49.000000000 -0700 @@ -0,0 +1,93 @@ +#!/bin/sh +# $Id: mk-dlls.sh,v 1.1 2008/11/18 08:50:04 juergen Exp $ +############################################################################## +# 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: Juergen Pfeifer +# +# Build DLLs on MinGW +# +gcc -v 2>&1 | grep specs | grep mingw +if [ $? -eq 1 ]; then + echo "$0 requires a mingw environment" >&2 +else + if [ -d lib ]; then + cf="-shared" + lf="--enable-auto-import" + pushd lib 2>&1 >/dev/null + for t in "" "t" + do + for m in "" "_g" + do + if [ -f libncurses${t}${m}.a ]; then + f=libncurses${t}${m}.a + g=`basename $f .a | cut -c 4-` + gi=libw${g}.a + td=tmp-${g} + rm -rf "${td}" + mkdir "${td}" + cd "${td}" + ar x ../${f} `ar t ../${f}` + gcc $cf -o w${g}.dll -Wl,--out-implib,${gi} -Wl,--output-def,w${g}.def -Wl,$lf `ar t ../$f` + lib //NOLOGO /MACHINE:i386 /DEF:w${g}.def + rm -f `ar t ../$f` + mv w${g}.dll .. + mv w${g}.lib .. + mv libw${g}.a .. + cd .. + rm -rf "${td}" + + for l in panel menu form + do + for f in lib${l}${t}${m}.a + do + g=`basename $f .a | cut -c 4-` + td=tmp-${g} + rm -rf "${td}" + mkdir "${td}" + echo $g + cd "${td}" + ar x ../$f `ar t ../$f` + gcc $cf -o w${g}.dll -Wl,--out-implib,libw${g}.a -Wl,--output-def,w${g}.def -Wl,$lf `ar t ../$f` ../${gi} + lib //NOLOGO /MACHINE:i386 /DEF:w${g}.def + rm -f `ar t ../$f` + mv w${g}.dll .. + mv w${g}.lib .. + mv libw${g}.a .. + cd .. + rm -rf "${td}" + done + done + fi + done + done + popd + else + echo lib has not been build >&2 + fi +fi 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-09-12 08:51:37.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 -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-09-12 08:51:17.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 -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-09-12 08:51:17.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 -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-09-12 08:51:43.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 -MODULE_ID("$Id: keyok.c,v 1.7 2006/12/30 16:22:33 tom Exp $") +MODULE_ID("$Id: keyok.c,v 1.9 2009/06/06 19:24:57 tom Exp $") /* * Enable (or disable) ncurses' interpretation of a keycode by adding (or @@ -45,28 +46,33 @@ */ 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; - char *s; + T((T_CALLED("keyok(%p, %d,%d)"), SP_PARM, c, flag)); +#ifdef USE_TERM_DRIVER + code = CallDriver_2(sp, kyOk, c, flag); +#else T((T_CALLED("keyok(%d,%d)"), c, flag)); if (c >= 0) { + int count = 0; + char *s; 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) @@ -74,5 +80,14 @@ } } } +#endif 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-09-12 08:51:17.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 -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-09-12 08:52:01.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 #include -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.121 2009/08/04 00:20:09 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 */ - if (is8bits(CharOf(ch))) { - const char *s = unctrl((chtype) CharOf(ch)); - if (s[1] != 0) { - return waddstr(win, s); + attr_t attr = AttrOf(ch); + + /* handle EILSEQ (i.e., when len >= -1) */ + if (len == -1 && is8bits(CharOf(ch))) { + 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 = *ptrTabsize(sp); +#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-09-12 08:51:40.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -40,9 +41,12 @@ */ #include -#include /* 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_bkgd.c ncurses-5.7/ncurses/base/lib_bkgd.c --- ncurses-5.7.orig/ncurses/base/lib_bkgd.c 2008-03-22 17:09:14.000000000 -0700 +++ ncurses-5.7/ncurses/base/lib_bkgd.c 2009-09-12 08:52:07.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 -MODULE_ID("$Id: lib_bkgd.c,v 1.36 2008/03/23 00:09:14 tom Exp $") +MODULE_ID("$Id: lib_bkgd.c,v 1.37 2009/08/29 19:02:25 tom Exp $") /* * Set the window's background information. @@ -126,8 +126,8 @@ NCURSES_CH_T old_bkgrnd; wgetbkgrnd(win, &old_bkgrnd); - wbkgrndset(win, CHREF(new_bkgd)); - wattrset(win, AttrOf(win->_nc_bkgd)); + (void) wbkgrndset(win, CHREF(new_bkgd)); + (void) wattrset(win, AttrOf(win->_nc_bkgd)); for (y = 0; y <= win->_maxy; y++) { for (x = 0; x <= win->_maxx; x++) { 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-09-12 08:52:05.000000000 -0700 @@ -1,5 +1,5 @@ /**************************************************************************** - * 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 * @@ -30,6 +30,7 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* lib_color.c @@ -38,12 +39,33 @@ */ #include - -#include #include -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.95 2009/08/22 19:04:36 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define CanChange InfoOf(SP_PARM).canchange +#define DefaultPalette InfoOf(SP_PARM).defaultPalette +#define HasColor InfoOf(SP_PARM).hascolor +#define InitColor InfoOf(SP_PARM).initcolor +#define MaxColors InfoOf(SP_PARM).maxcolors +#define MaxPairs InfoOf(SP_PARM).maxpairs +#define UseHlsPalette (DefaultPalette == _nc_hls_palette) +#else +#define CanChange can_change +#define DefaultPalette (hue_lightness_saturation ? hls_palette : cga_palette) +#define HasColor has_color +#define InitColor initialize_color +#define MaxColors max_colors +#define MaxPairs max_pairs +#define UseHlsPalette (hue_lightness_saturation) +#endif +#ifndef USE_TERM_DRIVER /* * These should be screen structure members. They need to be globals for * historical reasons. So we assign them in start_color() and also in @@ -64,6 +86,7 @@ NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0; NCURSES_EXPORT_VAR(int) COLORS = 0; #endif +#endif /* !USE_TERM_DRIVER */ #define DATA(r,g,b) {r,g,b, 0,0,0, 0} @@ -71,7 +94,7 @@ #define MAX_PALETTE 8 -#define OkColorHi(n) (((n) < COLORS) && ((n) < max_colors)) +#define OkColorHi(n) (((n) < COLORS) && ((n) < maxcolors)) #define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE) /* @@ -106,29 +129,43 @@ DATA( 300, 50, 100), /* COLOR_CYAN */ DATA( 0, 50, 100), /* COLOR_WHITE */ }; + +#ifdef USE_TERM_DRIVER +NCURSES_EXPORT_VAR(const color_t*) _nc_cga_palette = cga_palette; +NCURSES_EXPORT_VAR(const color_t*) _nc_hls_palette = hls_palette; +#endif + /* *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_PARM != 0) && (pair >= 0) && (pair < SP_PARM->_pair_limit) && SP_PARM->_coloron) + #if NCURSES_EXT_FUNCS /* * These are called from _nc_do_color(), which in turn is called from - * vidattr - so we have to assume that SP may be null. + * vidattr - so we have to assume that sp may be null. */ static int -default_fg(void) +default_fg(NCURSES_SP_DCL0) { - return (SP != 0) ? SP->_default_fg : COLOR_WHITE; + return (SP_PARM != 0) ? SP_PARM->_default_fg : COLOR_WHITE; } static int -default_bg(void) +default_bg(NCURSES_SP_DCL0) { - return SP != 0 ? SP->_default_bg : COLOR_BLACK; + return SP_PARM != 0 ? SP_PARM->_default_bg : COLOR_BLACK; } #else -#define default_fg() COLOR_WHITE -#define default_bg() COLOR_BLACK +#define default_fg(sp) COLOR_WHITE +#define default_bg(sp) COLOR_BLACK #endif +#ifndef USE_TERM_DRIVER /* * SVr4 curses is known to interchange color codes (1,4) and (3,6), possibly * to maintain compatibility with a pre-ANSI scheme. The same scheme is @@ -145,52 +182,70 @@ } return c; } +#endif static void -set_background_color(int bg, int (*outc) (int)) +set_background_color(NCURSES_SP_DCLx int bg, NCURSES_SP_OUTC outc) { +#ifdef USE_TERM_DRIVER + CallDriver_3(SP_PARM, color, FALSE, bg, outc); +#else 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); } +#endif } static void -set_foreground_color(int fg, int (*outc) (int)) +set_foreground_color(NCURSES_SP_DCLx int fg, NCURSES_SP_OUTC outc) { +#ifdef USE_TERM_DRIVER + CallDriver_3(SP_PARM, color, TRUE, fg, outc); +#else 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); } +#endif } static void -init_color_table(void) +init_color_table(NCURSES_SP_DCL0) { - const color_t *tp; + const color_t *tp = DefaultPalette; int n; - tp = (hue_lightness_saturation) ? hls_palette : cga_palette; + assert(tp != 0); + for (n = 0; n < COLORS; n++) { if (InPalette(n)) { - SP->_color_table[n] = tp[n]; + SP_PARM->_color_table[n] = tp[n]; } else { - SP->_color_table[n] = tp[n % MAX_PALETTE]; - if (hue_lightness_saturation) { - SP->_color_table[n].green = 100; + SP_PARM->_color_table[n] = tp[n % MAX_PALETTE]; + if (UseHlsPalette) { + SP_PARM->_color_table[n].green = 100; } else { - if (SP->_color_table[n].red) - SP->_color_table[n].red = 1000; - if (SP->_color_table[n].green) - SP->_color_table[n].green = 1000; - if (SP->_color_table[n].blue) - SP->_color_table[n].blue = 1000; + if (SP_PARM->_color_table[n].red) + SP_PARM->_color_table[n].red = 1000; + if (SP_PARM->_color_table[n].green) + SP_PARM->_color_table[n].green = 1000; + if (SP_PARM->_color_table[n].blue) + SP_PARM->_color_table[n].blue = 1000; } } } @@ -200,8 +255,11 @@ * Reset the color pair, e.g., to whatever color pair 0 is. */ static bool -reset_color_pair(void) +reset_color_pair(NCURSES_SP_DCL0) { +#ifdef USE_TERM_DRIVER + return CallDriver(SP_PARM, rescol); +#else bool result = FALSE; if (orig_pair != 0) { @@ -210,6 +268,7 @@ result = TRUE; } return result; +#endif } /* @@ -217,65 +276,93 @@ * badly-written terminal descriptions than for the relatively rare case where * someone has changed the color definitions. */ -bool -_nc_reset_colors(void) +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_DCL0) { int result = FALSE; - T((T_CALLED("_nc_reset_colors()"))); - if (SP->_color_defs > 0) - SP->_color_defs = -(SP->_color_defs); - - if (reset_color_pair()) + T((T_CALLED("_nc_reset_colors(%p)"), SP_PARM)); + if (SP_PARM->_color_defs > 0) + SP_PARM->_color_defs = -(SP_PARM->_color_defs); + if (reset_color_pair(NCURSES_SP_ARG)) result = TRUE; + +#ifdef USE_TERM_DRIVER + result = CallDriver(SP_PARM, rescolors); +#else if (orig_colors != 0) { TPUTS_TRACE("orig_colors"); putp(orig_colors); result = TRUE; } +#endif returnBool(result); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(bool) +_nc_reset_colors(void) +{ + return NCURSES_SP_NAME(_nc_reset_colors) (CURRENT_SCREEN); +} +#endif + NCURSES_EXPORT(int) -start_color(void) +NCURSES_SP_NAME(start_color) (NCURSES_SP_DCL0) { int result = ERR; + int maxpairs = 0, maxcolors = 0; - T((T_CALLED("start_color()"))); + T((T_CALLED("start_color(%p)"), SP_PARM)); - 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); + maxpairs = MaxPairs; + maxcolors = MaxColors; + if (reset_color_pair(NCURSES_SP_ARG) != TRUE) { + set_foreground_color(NCURSES_SP_ARGx + default_fg(NCURSES_SP_ARG), + NCURSES_SP_NAME(_nc_outch)); + set_background_color(NCURSES_SP_ARGx + default_bg(NCURSES_SP_ARG), + NCURSES_SP_NAME(_nc_outch)); } - if (max_pairs > 0 && max_colors > 0) { - SP->_pair_count = max_pairs; - SP->_color_count = max_colors; + if (maxpairs > 0 && maxcolors > 0) { + SP_PARM->_pair_limit = maxpairs; + +#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 * maxcolors)); +#endif + SP_PARM->_pair_count = maxpairs; + SP_PARM->_color_count = maxcolors; #if !USE_REENTRANT - COLOR_PAIRS = max_pairs; - COLORS = max_colors; + COLOR_PAIRS = maxpairs; + COLORS = maxcolors; #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, maxcolors); + if (SP_PARM->_color_table != 0) { + SP_PARM->_color_pairs[0] = PAIR_OF(default_fg(NCURSES_SP_ARG), + default_bg(NCURSES_SP_ARG)); + 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 +372,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 */ static void rgb2hls(short r, short g, short b, short *h, short *l, short *s) @@ -328,24 +423,75 @@ * 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; + int maxcolors; - T((T_CALLED("init_pair(%d,%d,%d)"), pair, f, b)); + T((T_CALLED("init_pair(%p,%d,%d,%d)"), SP_PARM, pair, f, b)); - if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron) + if (!ValidPair(pair)) returnCode(ERR); + + maxcolors = MaxColors; + + 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,14 +507,14 @@ * 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++) { - struct ldat *ptr = &(curscr->_line[y]); + for (y = 0; y <= CurScreen(SP_PARM)->_maxy; y++) { + struct ldat *ptr = &(CurScreen(SP_PARM)->_line[y]); bool changed = FALSE; - for (x = 0; x <= curscr->_maxx; x++) { + for (x = 0; x <= CurScreen(SP_PARM)->_maxx; x++) { if (GetPair(ptr->text[x]) == pair) { /* Set the old cell to zero to ensure it will be updated on the next doupdate() */ @@ -378,15 +524,19 @@ } } if (changed) - _nc_make_oldhash(y); + NCURSES_SP_NAME(_nc_make_oldhash) (NCURSES_SP_ARGx 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 */ + +#ifdef USE_TERM_DRIVER + CallDriver_3(SP_PARM, initpair, pair, f, b); +#else if (initialize_pair && InPalette(f) && InPalette(b)) { - const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette; + const color_t *tp = DefaultPalette; TR(TRACE_ATTRS, ("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)", @@ -400,80 +550,139 @@ tp[f].red, tp[f].green, tp[f].blue, tp[b].red, tp[b].green, tp[b].blue)); } +#endif 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; + int maxcolors; + + T((T_CALLED("init_color(%p,%d,%d,%d,%d)"), SP_PARM, color, r, g, b)); - T((T_CALLED("init_color(%d,%d,%d,%d)"), color, r, g, b)); + if (SP_PARM == 0) + returnCode(result); - if (initialize_color != NULL - && SP != 0 - && SP->_coloron + maxcolors = MaxColors; + + if (InitColor + && 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) { + if (UseHlsPalette) { 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; } +#ifdef USE_TERM_DRIVER + CallDriver_4(SP_PARM, initcolor, color, r, g, b); +#else TPUTS_TRACE("initialize_color"); putp(TPARM_4(initialize_color, color, r, g, b)); - SP->_color_defs = max(color + 1, SP->_color_defs); +#endif + 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) +NCURSES_SP_NAME(can_change_color) (NCURSES_SP_DCL) +{ + T((T_CALLED("can_change_color(%p)"), SP_PARM)); + returnCode((CanChange != 0) ? TRUE : FALSE); +} + +#if NCURSES_SP_FUNCS NCURSES_EXPORT(bool) can_change_color(void) { - T((T_CALLED("can_change_color()"))); - returnCode((can_change != 0) ? TRUE : FALSE); + return NCURSES_SP_NAME(can_change_color) (CURRENT_SCREEN); } +#endif NCURSES_EXPORT(bool) -has_colors(void) +NCURSES_SP_NAME(has_colors) (NCURSES_SP_DCL0) { + int code; + T((T_CALLED("has_colors()"))); - returnCode((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs) - && (((set_foreground != NULL) - && (set_background != NULL)) - || ((set_a_foreground != NULL) - && (set_a_background != NULL)) - || set_color_pair)) ? TRUE : FALSE); +#ifdef USE_TERM_DRIVER + code = HasColor; +#else + code = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs) + && (((set_foreground != NULL) + && (set_background != NULL)) + || ((set_a_foreground != NULL) + && (set_a_background != NULL)) + || set_color_pair)) ? TRUE : FALSE); +#endif + returnCode(code); } +#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; + int result = ERR; + int maxcolors; + + T((T_CALLED("color_content(%p,%d,%p,%p,%p)"), SP_PARM, color, r, g, b)); + + if (SP_PARM == 0) + returnCode(result); - T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b)); - if (color < 0 || !OkColorHi(color) || SP == 0 || !SP->_coloron) { + maxcolors = MaxColors; + + if (color < 0 || !OkColorHi(color) || !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 +698,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)); + T((T_CALLED("pair_content(%p,%d,%p,%p)"), SP_PARM, 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) @@ -514,33 +732,50 @@ if (b) *b = bg; - TR(TRACE_ATTRS, ("...pair_content(%d,%d,%d)", pair, fg, bg)); + TR(TRACE_ATTRS, ("...pair_content(%p,%d,%d,%d)", SP_PARM, pair, fg, bg)); result = OK; } 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) { +#ifdef USE_TERM_DRIVER + CallDriver_4(SP_PARM, docolor, old_pair, pair, reverse, outc); +#else 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) { + } else if (SP_PARM != 0) { pair_content((short) pair, &fg, &bg); } } if (old_pair >= 0 - && SP != 0 + && SP_PARM != 0 && pair_content(old_pair, &old_fg, &old_bg) != ERR) { if ((isDefaultColor(fg) && !isDefaultColor(old_fg)) || (isDefaultColor(bg) && !isDefaultColor(old_bg))) { @@ -550,29 +785,29 @@ * the terminal description, treat it as screen's indicator of ECMA * SGR 39 and SGR 49, and assume the two sequences are independent. */ - if (SP->_has_sgr_39_49 + if (SP_PARM->_has_sgr_39_49 && isDefaultColor(old_bg) && !isDefaultColor(old_fg)) { - tputs("\033[39m", 1, outc); - } else if (SP->_has_sgr_39_49 + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx "\033[39m", 1, outc); + } else if (SP_PARM->_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; } #if NCURSES_EXT_FUNCS if (isDefaultColor(fg)) - fg = default_fg(); + fg = default_fg(NCURSES_SP_ARG); if (isDefaultColor(bg)) - bg = default_bg(); + bg = default_bg(NCURSES_SP_ARG); #endif if (reverse) { @@ -585,9 +820,23 @@ 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); } +#endif } + +#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-09-12 08:51: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 #include -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-09-12 08:51:40.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 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * ****************************************************************************/ /* @@ -40,15 +42,18 @@ #include -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-09-12 08:51:42.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 -#include -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_driver.c ncurses-5.7/ncurses/base/lib_driver.c --- ncurses-5.7.orig/ncurses/base/lib_driver.c 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/ncurses/base/lib_driver.c 2009-09-12 08:51:49.000000000 -0700 @@ -0,0 +1,142 @@ +/**************************************************************************** + * Copyright (c) 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"), 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: Juergen Pfeifer * + * * + ****************************************************************************/ + +#include + +MODULE_ID("$Id: lib_driver.c,v 1.1 2009/02/21 15:11:29 juergen Exp $") + +typedef struct DriverEntry { + const char *name; + TERM_DRIVER *driver; +} DRIVER_ENTRY; + +static DRIVER_ENTRY DriverTable[] = +{ +#ifdef __MINGW32__ + {"win", &_nc_WIN_DRIVER}, +#endif + {"tinfo", &_nc_TINFO_DRIVER} +}; + +#define NUM_DRIVERS (int)(sizeof(DriverTable)/sizeof(DRIVER_ENTRY)) + +NCURSES_EXPORT(int) +_nc_get_driver(TERMINAL_CONTROL_BLOCK * TCB, const char *name, int *errret) +{ + int code = ERR; + int i; + TERM_DRIVER *res = (TERM_DRIVER *) 0; + TERM_DRIVER *use = 0; + + assert(TCB != 0); + + for (i = 0; i < NUM_DRIVERS; i++) { + res = DriverTable[i].driver; + if (res->CanHandle(TCB, name, errret)) { + use = res; + break; + } + } + if (use != 0) { + TCB->drv = use; + code = OK; + } + return (code); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(has_key) (SCREEN *sp, int keycode) +{ + T((T_CALLED("has_key(%p, %d)"), sp, keycode)); + returnCode(IsValidTIScreen(sp) ? CallDriver_1(sp, kyExist, keycode) : FALSE); +} + +NCURSES_EXPORT(int) +has_key(int keycode) +{ + return NCURSES_SP_NAME(has_key) (CURRENT_SCREEN, keycode); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_mcprint) (SCREEN *sp, char *data, int len) +{ + int code = ERR; + + if (0 != TerminalOf(sp)) + code = CallDriver_2(sp, print, data, len); + return (code); +} + +NCURSES_EXPORT(int) +mcprint(char *data, int len) +{ + return NCURSES_SP_NAME(_nc_mcprint) (CURRENT_SCREEN, data, len); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(doupdate) (SCREEN *sp) +{ + int code = ERR; + + T((T_CALLED("doupdate(%p)"), sp)); + + if (IsValidScreen(sp)) + code = CallDriver(sp, update); + + returnCode(code); +} + +NCURSES_EXPORT(int) +doupdate(void) +{ + return NCURSES_SP_NAME(doupdate) (CURRENT_SCREEN); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(mvcur) (SCREEN *sp, int yold, int xold, int ynew, int xnew) +{ + int code = ERR; + TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%p,%d,%d,%d,%d)"), + sp, yold, xold, ynew, xnew)); + if (HasTerminal(sp)) { + code = CallDriver_4(sp, hwcur, yold, xold, ynew, xnew); + } + returnCode(code); +} + +NCURSES_EXPORT(int) +mvcur(int yold, int xold, int ynew, int xnew) +/* optimized cursor move from (yold, xold) to (ynew, xnew) */ +{ + return NCURSES_SP_NAME(mvcur) (CURRENT_SCREEN, yold, xold, ynew, xnew); +} 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-09-12 08:51:17.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 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -42,20 +44,40 @@ #include -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-09-12 08:51:50.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 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -39,22 +41,39 @@ */ #include -#include -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.21 2009/07/04 18:35:43 tom Exp $") NCURSES_EXPORT(int) -endwin(void) +NCURSES_SP_NAME(endwin) (NCURSES_SP_DCL0) { - T((T_CALLED("endwin()"))); + int code = ERR; + + T((T_CALLED("endwin(%p)"), SP_PARM)); - if (SP) { - SP->_endwin = TRUE; - SP->_mouse_wrap(SP); + if (SP_PARM) { +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = TCBOf(SP_PARM); + + SP_PARM->_endwin = TRUE; + if (TCB && TCB->drv && TCB->drv->scexit) + TCB->drv->scexit(SP_PARM); +#else + SP_PARM->_endwin = TRUE; + SP_PARM->_mouse_wrap(SP_PARM); _nc_screen_wrap(); _nc_mvcur_wrap(); /* wrap up cursor addressing */ - returnCode(reset_shell_mode()); +#endif + code = NCURSES_SP_NAME(reset_shell_mode) (NCURSES_SP_ARG); } - returnCode(ERR); + returnCode(code); +} + +#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-09-12 08:51:40.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 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -39,9 +41,12 @@ */ #include -#include /* 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-09-12 08:51:37.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-09-12 08:52:04.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,40 +42,80 @@ #include -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.107 2009/08/15 20:41:24 Clemens.Ladisch Exp $") #include #if USE_REENTRANT -#define GetEscdelay(sp) (sp)->_ESCDELAY +#define GetEscdelay(sp) *_nc_ptr_Escdelay(sp) NCURSES_EXPORT(int) NCURSES_PUBLIC_VAR(ESCDELAY) (void) { - return SP ? GetEscdelay(SP) : 1000; + return *(_nc_ptr_Escdelay(CURRENT_SCREEN)); +} + +NCURSES_EXPORT(int *) +_nc_ptr_Escdelay(SCREEN *sp) +{ + return ptrEscdelay(sp); } #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; #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) { + SET_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) +{ + int code; +#if USE_REENTRANT + code = NCURSES_SP_NAME(set_escdelay) (CURRENT_SCREEN, value); +#else ESCDELAY = value; + code = OK; #endif return code; } #endif +#endif /* NCURSES_EXT_FUNCS */ + +#if NCURSES_EXT_FUNCS +NCURSES_EXPORT(int) +NCURSES_SP_NAME(get_escdelay) (NCURSES_SP_DCL0) +{ +#if !USE_REENTRANT + (void) SP_PARM; +#endif + return GetEscdelay(SP_PARM); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +get_escdelay(void) +{ + return NCURSES_SP_NAME(get_escdelay) (CURRENT_SCREEN); +} +#endif +#endif /* NCURSES_EXT_FUNCS */ static int _nc_use_meta(WINDOW *win) @@ -84,9 +125,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 /* @@ -100,16 +141,28 @@ #if USE_SYSMOUSE if ((sp->_mouse_type == M_SYSMOUSE) && (sp->_sysmouse_head < sp->_sysmouse_tail)) { - return 2; + return TW_MOUSE; } #endif - rc = _nc_timed_wait(sp, TWAIT_MASK, delay, (int *) 0 EVENTLIST_2nd(evl)); +#ifdef USE_TERM_DRIVER + rc = TCBOf(sp)->drv->twait(TCBOf(sp), + TWAIT_MASK, + delay, + (int *) 0 + EVENTLIST_2nd(evl)); +#else + rc = _nc_timed_wait(sp, + TWAIT_MASK, + delay, + (int *) 0 + EVENTLIST_2nd(evl)); +#endif #if USE_SYSMOUSE if ((sp->_mouse_type == M_SYSMOUSE) && (sp->_sysmouse_head < sp->_sysmouse_tail) && (rc == 0) && (errno == EINTR)) { - rc |= 2; + rc |= TW_MOUSE; } #endif return rc; @@ -173,9 +226,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 +238,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; @@ -205,9 +258,15 @@ } else #endif { /* Can block... */ +#ifdef USE_TERM_DRIVER + int buf; + n = CallDriver_1(sp, read, &buf); + ch = buf; +#else unsigned char c2 = 0; n = read(sp->_ifd, &c2, 1); ch = c2; +#endif } #ifdef HIDE_EINTR @@ -260,12 +319,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 +345,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 +421,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,13 +461,13 @@ 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); } #endif if (!rc) { - returnCode(ERR); + goto check_sigwinch; } } /* else go on to read data available */ @@ -427,7 +486,7 @@ * increase the wait with mouseinterval(). */ int runcount = 0; - int rc; + int rc = 0; do { ch = kgetch(sp EVENTLIST_2nd(evl)); @@ -442,11 +501,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 +513,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; } } @@ -470,6 +529,7 @@ } if (ch == ERR) { + check_sigwinch: #if USE_SIZECHANGE if (_nc_handle_sigwinch(sp)) { _nc_update_screensize(sp); @@ -645,7 +705,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-09-12 08:51:37.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 -#include -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-09-12 08:51:28.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 /* 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-09-12 08:51:42.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 #include -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-09-12 08:51:42.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 #include -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-09-12 08:51: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 * @@ -29,6 +29,8 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -40,12 +42,20 @@ #include -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-09-12 08:51:50.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * ****************************************************************************/ /* @@ -79,9 +80,12 @@ #include -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.108 2009/07/04 19:51:08 tom Exp $") -#include #include #if USE_GPM_SUPPORT @@ -150,7 +154,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->_dlopen_gpm, #name)) #endif /* USE_GPM_SUPPORT */ @@ -164,13 +168,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,10 +344,13 @@ static void handle_sysmouse(int sig GCC_UNUSED) { - sysmouse_server(SP); + sysmouse_server(CURRENT_SCREEN); } #endif /* USE_SYSMOUSE */ +#ifndef USE_TERM_DRIVER +#define xterm_kmous "\033[M" + static void init_xterm_mouse(SCREEN *sp) { @@ -352,6 +359,7 @@ if (!VALID_STRING(sp->_mouse_xtermcap)) sp->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;"; } +#endif static void enable_xterm_mouse(SCREEN *sp, int enable) @@ -359,7 +367,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 +408,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; @@ -478,8 +488,6 @@ } #endif /* USE_GPM_SUPPORT */ -#define xterm_kmous "\033[M" - static void initialize_mousetype(SCREEN *sp) { @@ -514,7 +522,7 @@ /* OS/2 VIO */ #if USE_EMX_MOUSE if (!sp->_emxmouse_thread - && strstr(cur_term->type.term_names, "xterm") == 0 + && strstr(TerminalOf(sp)->type.term_names, "xterm") == 0 && key_mouse) { int handles[2]; @@ -621,16 +629,21 @@ } #endif /* USE_SYSMOUSE */ +#ifdef USE_TERM_DRIVER + CallDriver(sp, initmouse); +#else /* we know how to recognize mouse events under "xterm" */ if (key_mouse != 0) { if (!strcmp(key_mouse, xterm_kmous) - || strstr(cur_term->type.term_names, "xterm") != 0) { + || strstr(TerminalOf(sp)->type.term_names, "xterm") != 0) { init_xterm_mouse(sp); } - } else if (strstr(cur_term->type.term_names, "xterm") != 0) { + } else if (strstr(TerminalOf(sp)->type.term_names, "xterm") != 0) { if (_nc_add_to_try(&(sp->_keytry), xterm_kmous, KEY_MOUSE) == OK) init_xterm_mouse(sp); } +#endif + returnVoid; } @@ -694,11 +707,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 +749,7 @@ /* bump the next-free pointer into the circular list */ sp->_mouse_eventp = eventp = NEXT(eventp); result = TRUE; + break; } } break; @@ -937,7 +956,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 +1008,7 @@ return; } } - _nc_flush(); + NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG); } /************************************************************************** @@ -1264,13 +1283,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 +1297,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 +1306,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 +1372,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 +1408,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,14 +1426,36 @@ 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 (((0 == sp) || (sp->_mouse_type == M_NONE)) ? FALSE : TRUE); +} + +NCURSES_EXPORT(bool) +NCURSES_SP_NAME(has_mouse) (NCURSES_SP_DCL0) { - return (SP->_mouse_type == M_NONE ? 0 : 1); + 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) { 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-09-12 08:51:43.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,6 +29,8 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * ****************************************************************************/ /* @@ -40,11 +42,15 @@ #include -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.16 2009/06/06 20:25:07 tom Exp $") NCURSES_EXPORT(int) mvwin(WINDOW *win, int by, int bx) { +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(win); +#endif + T((T_CALLED("mvwin(%p,%d,%d)"), win, by, bx)); if (!win || (win->_flags & _ISPAD)) @@ -96,8 +102,8 @@ } #endif - if (by + win->_maxy > screen_lines - 1 - || bx + win->_maxx > screen_columns - 1 + if (by + win->_maxy > screen_lines(SP_PARM) - 1 + || bx + win->_maxx > screen_columns(SP_PARM) - 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-09-12 08:52:10.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -45,10 +46,19 @@ #define _POSIX_SOURCE #endif -#include /* clear_screen, cup & friends, cur_term */ +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + #include -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.79 2009/09/06 15:13:41 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define NumLabels InfoOf(SP_PARM).numlabels +#else +#define NumLabels num_labels +#endif #ifndef ONLCR /* Allows compilation under the QNX 4.2 OS */ #define ONLCR 0 @@ -63,16 +73,17 @@ * is supposed to behave as if it calls newterm, we do it here. */ static NCURSES_INLINE int -_nc_initscr(void) +_nc_initscr(NCURSES_SP_DCL0) { int result = ERR; + TERMINAL *term = TerminalOf(SP_PARM); /* for extended XPG4 conformance requires cbreak() at this point */ /* (SVr4 curses does this anyway) */ - if (cbreak() == OK) { + if (NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG) == OK) { TTY buf; - buf = cur_term->Nttyb; + buf = term->Nttyb; #ifdef TERMIOS buf.c_lflag &= ~(ECHO | ECHONL); buf.c_iflag &= ~(ICRNL | INLCR | IGNCR); @@ -82,8 +93,9 @@ #else memset(&buf, 0, sizeof(buf)); #endif - if ((result = _nc_set_tty_mode(&buf)) == OK) - cur_term->Nttyb = buf; + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) + term->Nttyb = buf; } return result; } @@ -95,13 +107,30 @@ * initialized. */ NCURSES_EXPORT(void) +NCURSES_SP_NAME(filter) (NCURSES_SP_DCL0) +{ + START_TRACE(); + T((T_CALLED("filter(%p)"), SP_PARM)); +#if NCURSES_SP_FUNCS + if (IsPreScreen(SP_PARM)) { + SP_PARM->_filtered = TRUE; + } +#else + _nc_prescreen.filter_mode = TRUE; +#endif + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) filter(void) { START_TRACE(); - T((T_CALLED("filter"))); + T((T_CALLED("filter()"))); _nc_prescreen.filter_mode = TRUE; returnVoid; } +#endif #if NCURSES_EXT_FUNCS /* @@ -109,62 +138,105 @@ * requiring it to also be filtered. */ NCURSES_EXPORT(void) +NCURSES_SP_NAME(nofilter) (NCURSES_SP_DCL0) +{ + START_TRACE(); + T((T_CALLED("nofilter(%p)"), SP_PARM)); +#if NCURSES_SP_FUNCS + if (IsPreScreen(SP_PARM)) { + SP_PARM->_filtered = FALSE; + } +#else + _nc_prescreen.filter_mode = FALSE; +#endif + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) nofilter(void) { START_TRACE(); - T((T_CALLED("nofilter"))); + T((T_CALLED("nofilter()"))); _nc_prescreen.filter_mode = FALSE; returnVoid; } #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; - SCREEN *current; SCREEN *result = 0; + SCREEN *current; TERMINAL *its_term; + FILE *_ofp = ofp ? ofp : stdout; + FILE *_ifp = ifp ? ifp : stdin; + int cols; + int numlab; +#ifdef USE_TERM_DRIVER + TERMINAL *new_term; +#endif START_TRACE(); - T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp)); + T((T_CALLED("newterm(%p, \"%s\", %p,%p)"), SP_PARM, name, ofp, ifp)); _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) { + if (setupterm(name, fileno(_ofp), &errret) != ERR) { int slk_format = _nc_globals.slk_format; - /* - * This actually allocates the screen structure, and saves the original - * terminal settings. - */ _nc_set_screen(0); +#ifdef USE_TERM_DRIVER + assert(new_term != 0); +#endif /* allow user to set maximum escape delay from the environment */ if ((value = _nc_getenv_num("ESCDELAY")) >= 0) { set_escdelay(value); } + /* + * This actually allocates the screen structure, and saves the original + * terminal settings. + */ if (_nc_setupscreen(LINES, COLS, - ofp, + _ofp, _nc_prescreen.filter_mode, slk_format) == ERR) { _nc_set_screen(current); result = 0; } else { - assert(SP != 0); +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB; +#else + SP_PARM = CURRENT_SCREEN; +#endif + assert(SP_PARM != 0); + cols = *(ptrCols(SP_PARM)); +#ifdef USE_TERM_DRIVER + TCB = (TERMINAL_CONTROL_BLOCK *) new_term; + TCB->csp = SP_PARM; +#endif + numlab = NumLabels; + /* * In setupterm() we did a set_curterm(), but it was before we set - * SP. So the "current" screen's terminal pointer was overwritten - * with a different terminal. Later, in _nc_setupscreen(), we set - * SP and the terminal pointer in the new screen. + * CURRENT_SCREEN. So the "current" screen's terminal pointer was + * overwritten with a different terminal. Later, in + * _nc_setupscreen(), we set CURRENT_SCREEN and the terminal + * pointer in the new screen. * * Restore the terminal-pointer for the pre-existing screen, if * any. @@ -173,36 +245,41 @@ current->_term = its_term; /* if the terminal type has real soft labels, set those up */ - if (slk_format && num_labels > 0 && SLK_STDFMT(slk_format)) + if (slk_format && NumLabels > 0 && SLK_STDFMT(slk_format)) _nc_slk_initialize(stdscr, COLS); - SP->_ifd = fileno(ifp); - typeahead(fileno(ifp)); + SP_PARM->_ifd = fileno(_ifp); + NCURSES_SP_NAME(typeahead) (NCURSES_SP_ARGx fileno(_ifp)); #ifdef TERMIOS - SP->_use_meta = ((cur_term->Ottyb.c_cflag & CSIZE) == CS8 && - !(cur_term->Ottyb.c_iflag & ISTRIP)); + SP_PARM->_use_meta = ((cur_term->Ottyb.c_cflag & CSIZE) == CS8 && + !(cur_term->Ottyb.c_iflag & ISTRIP)); #else - SP->_use_meta = FALSE; + SP_PARM->_use_meta = FALSE; #endif - SP->_endwin = FALSE; - + SP_PARM->_endwin = FALSE; +#ifndef USE_TERM_DRIVER /* * Check whether we can optimize scrolling under dumb terminals in * case we do not have any of these capabilities, scrolling * optimization will be useless. */ - SP->_scrolling = ((scroll_forward && scroll_reverse) || - ((parm_rindex || - parm_insert_line || - insert_line) && - (parm_index || - parm_delete_line || - delete_line))); + SP_PARM->_scrolling = ((scroll_forward && scroll_reverse) || + ((parm_rindex || + parm_insert_line || + insert_line) && + (parm_index || + parm_delete_line || + delete_line))); +#endif - baudrate(); /* sets a field in the SP structure */ + NCURSES_SP_NAME(baudrate) (NCURSES_SP_ARG); /* sets a field in the screen structure */ - SP->_keytry = 0; + SP_PARM->_keytry = 0; + /* compute movement costs so we can do better move optimization */ +#ifdef USE_TERM_DRIVER + TCBOf(SP_PARM)->drv->scinit(SP_PARM); +#else /* * Check for mismatched graphic-rendition capabilities. Most SVr4 * terminfo trees contain entries that have rmul or rmso equated to @@ -213,23 +290,31 @@ * shouldn't be looking at this detail. */ #define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode)) - SP->_use_rmso = SGR0_TEST(exit_standout_mode); - SP->_use_rmul = SGR0_TEST(exit_underline_mode); + SP_PARM->_use_rmso = SGR0_TEST(exit_standout_mode); + SP_PARM->_use_rmul = SGR0_TEST(exit_underline_mode); /* compute movement costs so we can do better move optimization */ _nc_mvcur_init(); /* initialize terminal to a sane state */ _nc_screen_init(); +#endif /* Initialize the terminal line settings. */ - _nc_initscr(); + _nc_initscr(NCURSES_SP_ARG); _nc_signal_handler(TRUE); - - result = SP; + result = SP_PARM; } } _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-09-12 08:52:10.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -42,7 +43,7 @@ #include #include -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.60 2009/09/06 16:32:48 tom Exp $") #define window_is(name) ((sp)->_##name == win) @@ -61,6 +62,17 @@ { SCREEN *sp; +#ifdef USE_SP_WINDOWLIST + if ((sp = _nc_screen_of(win)) != 0) { + if (window_is(curscr)) { + remove_window(curscr); + } else if (window_is(stdscr)) { + remove_window(stdscr); + } else if (window_is(newscr)) { + remove_window(newscr); + } + } +#else for (each_screen(sp)) { if (window_is(curscr)) { remove_window(curscr); @@ -73,6 +85,7 @@ break; } } +#endif } NCURSES_EXPORT(int) @@ -81,17 +94,20 @@ WINDOWLIST *p, *q; int i; int result = ERR; +#ifdef USE_SP_WINDOWLIST + SCREEN *sp = _nc_screen_of(win); /* pretend this is parameter */ +#endif T((T_CALLED("_nc_freewin(%p)"), win)); if (win != 0) { - if (_nc_try_global(curses) == 0) { + if (_nc_nonsp_try_global(curses) == 0) { q = 0; - for (each_window(p)) { + for (each_window(SP_PARM, p)) { if (&(p->win) == win) { remove_window_from_screen(win); if (q == 0) - _nc_windows = p->next; + WindowList(SP_PARM) = p->next; else q->next = p->next; @@ -108,30 +124,34 @@ } q = p; } - _nc_unlock_global(curses); + _nc_nonsp_unlock_global(curses); } } returnCode(result); } 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; int i; - T((T_CALLED("newwin(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx)); + T((T_CALLED("newwin(%p, %d,%d,%d,%d)"), SP_PARM, num_lines, num_columns, + begy, begx)); if (begy < 0 || begx < 0 || num_lines < 0 || num_columns < 0) 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,12 +169,28 @@ returnWin(win); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(WINDOW *) +newwin(int num_lines, int num_columns, int begy, int begx) +{ + WINDOW *win; + _nc_sp_lock_global(curses); + win = NCURSES_SP_NAME(newwin) (CURRENT_SCREEN, + num_lines, num_columns, begy, begx); + _nc_sp_unlock_global(curses); + return (win); +} +#endif + NCURSES_EXPORT(WINDOW *) derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx) { WINDOW *win; int i; int flags = _SUBWIN; +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(orig); +#endif T((T_CALLED("derwin(%p,%d,%d,%d,%d)"), orig, num_lines, num_columns, begy, begx)); @@ -177,8 +213,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 +249,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); + bool is_padwin = (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)) @@ -236,7 +280,7 @@ returnWin(0); } - _nc_lock_global(curses); + _nc_nonsp_lock_global(curses); win->_curx = 0; win->_cury = 0; @@ -244,14 +288,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_padwin + ? FALSE + : (num_lines == screen_lines(SP_PARM) + && num_columns == screen_columns(SP_PARM))); win->_idlok = FALSE; win->_idcok = TRUE; win->_scroll = FALSE; @@ -300,23 +346,23 @@ if_USE_SCROLL_HINTS(win->_line[i].oldindex = i); } - if (!is_pad && (begx + num_columns == screen_columns)) { + if (!is_padwin && (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)); - _nc_unlock_global(curses); + _nc_nonsp_unlock_global(curses); returnWin(win); } @@ -325,14 +371,22 @@ * internally, and it is useful to allow those to be invoked without switching * SCREEN's, e.g., for multi-threaded applications. */ -NCURSES_EXPORT(SCREEN *) -_nc_screen_of(WINDOW *win) +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(WINDOW *) +_nc_curscr_of(SCREEN *sp) { - SCREEN *sp = 0; + return sp == 0 ? 0 : sp->_curscr; +} - if (win != 0) { - WINDOWLIST *wp = (WINDOWLIST *) win; - sp = wp->screen; - } - return (sp); +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-09-12 08:51:50.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 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -42,38 +44,52 @@ #include -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.11 2009/07/04 00:25:53 tom Exp $") #ifdef __EMX__ #include #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"); + _fsetmode(NC_OUTPUT(SP_PARM), "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"); + _fsetmode(NC_OUTPUT(SP_PARM), "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-09-12 08:51:50.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 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -40,21 +42,22 @@ #include -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.44 2009/07/04 19:45:20 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; int i; - T((T_CALLED("newpad(%d, %d)"), l, c)); + T((T_CALLED("newpad(%p,%d, %d)"), SP_PARM, l, c)); if (l <= 0 || c <= 0) returnWin(0); - if ((win = _nc_makenew(l, c, 0, 0, _ISPAD)) == NULL) + win = NCURSES_SP_NAME(_nc_makenew) (NCURSES_SP_ARGx l, c, 0, 0, _ISPAD); + if (win == NULL) returnWin(0); for (i = 0; i < l; i++) { @@ -70,6 +73,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) { @@ -94,10 +105,14 @@ int smaxrow, int smaxcol) { +#if NCURSES_SP_FUNCS + SCREEN *sp = _nc_screen_of(win); +#endif + T((T_CALLED("prefresh()"))); if (pnoutrefresh(win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol) != ERR - && doupdate() != ERR) { + && NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG) != ERR) { returnCode(OK); } returnCode(ERR); @@ -116,6 +131,7 @@ NCURSES_SIZE_T m, n; NCURSES_SIZE_T pmaxrow; NCURSES_SIZE_T pmaxcol; + SCREEN *sp; #if USE_SCROLL_HINTS const int my_len = 2; /* parameterize the threshold for hardscroll */ @@ -132,6 +148,8 @@ if (!(win->_flags & _ISPAD)) returnCode(ERR); + sp = _nc_screen_of(win); + /* negative values are interpreted as zero */ if (pminrow < 0) pminrow = 0; @@ -162,8 +180,8 @@ pmaxcol = pmincol + smaxcol - smincol; } - if (smaxrow >= screen_lines - || smaxcol >= screen_columns + if (smaxrow >= screen_lines(sp) + || smaxcol >= screen_columns(sp) || sminrow > smaxrow || smincol > smaxcol) returnCode(ERR); @@ -194,13 +212,13 @@ * merely change the costs of various update cases. */ #if USE_SCROLL_HINTS - wide = (smincol < my_len && smaxcol > (newscr->_maxx - my_len)); + wide = (smincol < my_len && smaxcol > (NewScreen(sp)->_maxx - my_len)); #endif for (i = pminrow, m = sminrow + win->_yoffset; - i <= pmaxrow && m <= newscr->_maxy; + i <= pmaxrow && m <= NewScreen(sp)->_maxy; i++, m++) { - register struct ldat *nline = &newscr->_line[m]; + register struct ldat *nline = &NewScreen(sp)->_line[m]; register struct ldat *oline = &win->_line[i]; for (j = pmincol, n = smincol; j <= pmaxcol; j++, n++) { NCURSES_CH_T ch = oline->text[j]; @@ -229,9 +247,9 @@ || nind > smaxrow) { nind = _NEWINDEX; } else if (displaced) { - register struct ldat *pline = &curscr->_line[nind]; + register struct ldat *pline = &CurScreen(sp)->_line[nind]; for (j = 0; j <= my_len; j++) { - int k = newscr->_maxx - j; + int k = NewScreen(sp)->_maxx - j; if (pline->text[j] != nline->text[j] || pline->text[k] != nline->text[k]) { nind = _NEWINDEX; @@ -266,7 +284,7 @@ if (win->_clear) { win->_clear = FALSE; - newscr->_clear = TRUE; + NewScreen(sp)->_clear = TRUE; } /* @@ -278,10 +296,10 @@ && win->_curx >= pmincol && win->_cury <= pmaxrow && win->_curx <= pmaxcol) { - newscr->_cury = win->_cury - pminrow + win->_begy + win->_yoffset; - newscr->_curx = win->_curx - pmincol + win->_begx; + NewScreen(sp)->_cury = win->_cury - pminrow + win->_begy + win->_yoffset; + NewScreen(sp)->_curx = win->_curx - pmincol + win->_begx; } - newscr->_leaveok = win->_leaveok; + NewScreen(sp)->_leaveok = win->_leaveok; win->_flags &= ~_HASMOVED; /* 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-09-12 08:51:30.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 -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-09-12 08:51:30.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 -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_refresh.c ncurses-5.7/ncurses/base/lib_refresh.c --- ncurses-5.7.orig/ncurses/base/lib_refresh.c 2007-09-29 13:39:34.000000000 -0700 +++ ncurses-5.7/ncurses/base/lib_refresh.c 2009-09-12 08:51:43.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * ****************************************************************************/ /* @@ -41,24 +42,27 @@ #include -MODULE_ID("$Id: lib_refresh.c,v 1.41 2007/09/29 20:39:34 tom Exp $") +MODULE_ID("$Id: lib_refresh.c,v 1.42 2009/06/06 20:27:39 tom Exp $") NCURSES_EXPORT(int) wrefresh(WINDOW *win) { int code; +#if NCURSES_SP_FUNCS + SCREEN *SP_PARM = _nc_screen_of(win); +#endif T((T_CALLED("wrefresh(%p)"), win)); if (win == 0) { code = ERR; - } else if (win == curscr) { - curscr->_clear = TRUE; - code = doupdate(); + } else if (win == CurScreen(SP_PARM)) { + CurScreen(SP_PARM)->_clear = TRUE; + code = NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG); } else if ((code = wnoutrefresh(win)) == OK) { if (win->_clear) - newscr->_clear = TRUE; - code = doupdate(); + NewScreen(SP_PARM)->_clear = TRUE; + code = NCURSES_SP_NAME(doupdate) (NCURSES_SP_ARG); /* * Reset the clearok() flag in case it was set for the special * case in hardscroll.c (if we don't reset it here, we'll get 2 @@ -81,6 +85,9 @@ #if USE_SCROLL_HINTS bool wide; #endif +#if NCURSES_SP_FUNCS + SCREEN *SP_PARM = _nc_screen_of(win); +#endif T((T_CALLED("wnoutrefresh(%p)"), win)); #ifdef TRACE @@ -101,8 +108,8 @@ begx = win->_begx; begy = win->_begy; - newscr->_nc_bkgd = win->_nc_bkgd; - WINDOW_ATTRS(newscr) = WINDOW_ATTRS(win); + NewScreen(SP_PARM)->_nc_bkgd = win->_nc_bkgd; + WINDOW_ATTRS(NewScreen(SP_PARM)) = WINDOW_ATTRS(win); /* merge in change information from all subwindows of this window */ wsyncdown(win); @@ -122,7 +129,7 @@ * windows). Note that changing this formula will not break any code, * merely change the costs of various update cases. */ - wide = (begx <= 1 && win->_maxx >= (newscr->_maxx - 1)); + wide = (begx <= 1 && win->_maxx >= (NewScreen(SP_PARM)->_maxx - 1)); #endif win->_flags &= ~_HASMOVED; @@ -137,13 +144,13 @@ /* limit(dst_col) */ limit_x = win->_maxx; /* limit(src_col) */ - if (limit_x > newscr->_maxx - begx) - limit_x = newscr->_maxx - begx; + if (limit_x > NewScreen(SP_PARM)->_maxx - begx) + limit_x = NewScreen(SP_PARM)->_maxx - begx; for (src_row = 0, dst_row = begy + win->_yoffset; - src_row <= win->_maxy && dst_row <= newscr->_maxy; + src_row <= win->_maxy && dst_row <= NewScreen(SP_PARM)->_maxy; src_row++, dst_row++) { - register struct ldat *nline = &newscr->_line[dst_row]; + register struct ldat *nline = &(NewScreen(SP_PARM)->_line[dst_row]); register struct ldat *oline = &win->_line[src_row]; if (oline->firstchar != _NOCHANGE) { @@ -225,7 +232,8 @@ * this character. Find the end of the character. */ ++j; - while (j <= newscr->_maxx && isWidecExt(nline->text[j])) { + while (j <= NewScreen(SP_PARM)->_maxx && + isWidecExt(nline->text[j])) { fix_right = j++; } } @@ -269,18 +277,18 @@ if (win->_clear) { win->_clear = FALSE; - newscr->_clear = TRUE; + NewScreen(SP_PARM)->_clear = TRUE; } if (!win->_leaveok) { - newscr->_cury = win->_cury + win->_begy + win->_yoffset; - newscr->_curx = win->_curx + win->_begx; + NewScreen(SP_PARM)->_cury = win->_cury + win->_begy + win->_yoffset; + NewScreen(SP_PARM)->_curx = win->_curx + win->_begx; } - newscr->_leaveok = win->_leaveok; + NewScreen(SP_PARM)->_leaveok = win->_leaveok; #ifdef TRACE if (USE_TRACEF(TRACE_UPDATE)) { - _tracedump("newscr", newscr); + _tracedump("newscr", NewScreen(SP_PARM)); _nc_unlock_global(tracef); } #endif /* TRACE */ 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-09-12 08:52:09.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * ****************************************************************************/ /* @@ -44,49 +45,58 @@ #define _POSIX_SOURCE #endif -#include /* 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.12 2009/08/30 17:59:13 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; +#ifdef USE_TERM_DRIVER + TERMINAL *new_term; +#endif - 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) { + if (TINFO_SETUP_TERM(&new_term, termp, filenum, errret, FALSE) != 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; + +#ifdef USE_TERM_DRIVER + SP_PARM->_term = new_term; +#endif + 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 { - nocbreak(); - noraw(); + NCURSES_SP_NAME(nocbreak) (NCURSES_SP_ARG); + NCURSES_SP_NAME(noraw) (NCURSES_SP_ARG); + } + if (savenl) { + NCURSES_SP_NAME(nl) (NCURSES_SP_ARG); + } else { + 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 +105,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-09-12 08:51:43.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,16 +30,21 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996 on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ #include -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.35 2009/06/06 20:26:17 tom Exp $") #define MAX_SIZE 0x3fff /* 16k is big enough for a window or pad */ NCURSES_EXPORT(WINDOW *) -getwin(FILE *filep) +NCURSES_SP_NAME(getwin) (NCURSES_SP_DCLx FILE *filep) { WINDOW tmp, *nwin; int n; @@ -56,9 +61,12 @@ returnWin(0); if (tmp._flags & _ISPAD) { - nwin = newpad(tmp._maxy + 1, tmp._maxx + 1); + nwin = NCURSES_SP_NAME(newpad) (NCURSES_SP_ARGx + tmp._maxy + 1, tmp._maxx + 1); } else { - nwin = newwin(tmp._maxy + 1, tmp._maxx + 1, 0, 0); + nwin = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx + tmp._maxy + 1, + tmp._maxx + 1, 0, 0); } /* @@ -112,6 +120,14 @@ returnWin(nwin); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(WINDOW *) +getwin(FILE *filep) +{ + return NCURSES_SP_NAME(getwin) (CURRENT_SCREEN, filep); +} +#endif + NCURSES_EXPORT(int) putwin(WINDOW *win, FILE *filep) { @@ -141,26 +157,34 @@ } NCURSES_EXPORT(int) -scr_restore(const char *file) +NCURSES_SP_NAME(scr_restore) (NCURSES_SP_DCLx const char *file) { FILE *fp = 0; - T((T_CALLED("scr_restore(%s)"), _nc_visbuf(file))); + T((T_CALLED("scr_restore(%p,%s)"), SP_PARM, _nc_visbuf(file))); if (_nc_access(file, R_OK) < 0 || (fp = fopen(file, "rb")) == 0) { returnCode(ERR); } else { - delwin(newscr); - SP->_newscr = getwin(fp); + delwin(NewScreen(SP_PARM)); + NewScreen(SP_PARM) = getwin(fp); #if !USE_REENTRANT - newscr = SP->_newscr; + newscr = NewScreen(SP_PARM); #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,42 +203,63 @@ } NCURSES_EXPORT(int) -scr_init(const char *file) +NCURSES_SP_NAME(scr_init) (NCURSES_SP_DCLx const char *file) { FILE *fp = 0; + int code = ERR; - T((T_CALLED("scr_init(%s)"), _nc_visbuf(file))); + T((T_CALLED("scr_init(%p,%s)"), SP_PARM, _nc_visbuf(file))); - if (exit_ca_mode && non_rev_rmcup) - returnCode(ERR); - - if (_nc_access(file, R_OK) < 0 - || (fp = fopen(file, "rb")) == 0) { - returnCode(ERR); - } else { - delwin(curscr); - SP->_curscr = getwin(fp); + if (SP_PARM != 0 && +#ifdef USE_TERM_DRIVER + InfoOf(SP_PARM).caninit +#else + !(exit_ca_mode && non_rev_rmcup) +#endif + ) { + if (_nc_access(file, R_OK) >= 0 + && (fp = fopen(file, "rb")) != 0) { + delwin(CurScreen(SP_PARM)); + CurScreen(SP_PARM) = getwin(fp); #if !USE_REENTRANT - curscr = SP->_curscr; + curscr = CurScreen(SP_PARM); #endif - (void) fclose(fp); - returnCode(OK); + (void) fclose(fp); + code = OK; + } } + returnCode(code); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -scr_set(const char *file) +scr_init(const char *file) { - T((T_CALLED("scr_set(%s)"), _nc_visbuf(file))); + return NCURSES_SP_NAME(scr_init) (CURRENT_SCREEN, file); +} +#endif - if (scr_init(file) == ERR) { +NCURSES_EXPORT(int) +NCURSES_SP_NAME(scr_set) (NCURSES_SP_DCLx const char *file) +{ + T((T_CALLED("scr_set(%p,%s)"), SP_PARM, _nc_visbuf(file))); + + if (NCURSES_SP_NAME(scr_init) (NCURSES_SP_ARGx file) == ERR) { returnCode(ERR); } else { - delwin(newscr); - SP->_newscr = dupwin(curscr); + delwin(NewScreen(SP_PARM)); + NewScreen(SP_PARM) = dupwin(curscr); #if !USE_REENTRANT - newscr = SP->_newscr; + newscr = NewScreen(SP_PARM); #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-09-12 08:52:09.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,10 +42,21 @@ #include -#include /* cur_term */ #include -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.126 2009/09/05 18:18:10 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define MaxColors InfoOf(sp).maxcolors +#define NumLabels InfoOf(sp).numlabels +#else +#define MaxColors max_colors +#define NumLabels num_labels +#endif NCURSES_EXPORT(SCREEN *) set_term(SCREEN *screenp) @@ -61,7 +73,7 @@ newSP = SP; if (newSP != 0) { - set_curterm(newSP->_term); + TINFO_SET_CURTERM(newSP, newSP->_term); #if !USE_REENTRANT curscr = newSP->_curscr; newscr = newSP->_newscr; @@ -70,7 +82,7 @@ COLOR_PAIRS = newSP->_pair_count; #endif } else { - set_curterm(0); + TINFO_SET_CURTERM(oldSP, 0); #if !USE_REENTRANT curscr = 0; newscr = 0; @@ -129,6 +141,19 @@ _nc_lock_global(curses); if (delink_screen(sp)) { +#ifdef USE_SP_RIPOFF + ripoff_t *rop; + if (safe_ripoff_sp && safe_ripoff_sp != safe_ripoff_stack) { + for (rop = safe_ripoff_stack; + rop != safe_ripoff_sp && (rop - safe_ripoff_stack) < N_RIPS; + rop++) { + if (rop->win) { + (void) delwin(rop->win); + rop->win = 0; + } + } + } +#endif (void) _nc_freewin(sp->_curscr); (void) _nc_freewin(sp->_newscr); @@ -176,7 +201,7 @@ free(sp->_setbuf); } - del_curterm(sp->_term); + NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx sp->_term); free(sp); /* @@ -248,6 +273,41 @@ } #endif +#if NCURSES_SP_FUNCS +/* + * In case of handling multiple screens, we need to have a screen before + * initialization in setupscreen takes place. This is to extend the substitute + * for some of the stuff in _nc_prescreen, especially for slk and ripoff + * handling which should be done per screen. + */ +NCURSES_EXPORT(SCREEN *) +new_prescr(void) +{ + SCREEN *sp = _nc_alloc_screen_sp(); + if (sp) { + sp->rsp = sp->rippedoff; + sp->_filtered = _nc_prescreen.filter_mode; + sp->_use_env = _nc_prescreen.use_env; +#if NCURSES_NO_PADDING + sp->_no_padding = _nc_prescreen._no_padding; +#endif + sp->slk_format = 0; + sp->_slk = 0; + sp->_prescreen = TRUE; + SP_PRE_INIT(sp); +#if USE_REENTRANT + sp->_TABSIZE = _nc_prescreen._TABSIZE; + sp->_ESCDELAY = _nc_prescreen._ESCDELAY; +#endif + _nc_set_screen(sp); + } + return sp; +} +#endif + +#define ReturnScreenError() _nc_set_screen(0); \ + returnCode(ERR) + /* OS-independent screen initializations */ NCURSES_EXPORT(int) _nc_setupscreen(int slines GCC_UNUSED, @@ -256,6 +316,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; @@ -272,6 +335,9 @@ } T(("created SP %p", SP)); +#if NCURSES_SP_FUNCS + sp = SP; /* fixup so SET_LINES and SET_COLS works */ +#endif SP->_next_screen = _nc_screen_chain; _nc_screen_chain = SP; @@ -292,6 +358,9 @@ if (filtered) { slines = 1; SET_LINES(slines); +#ifdef USE_TERM_DRIVER + CallDriver(sp, setfilter); +#else clear_screen = 0; cursor_down = parm_down_cursor = 0; cursor_address = 0; @@ -299,6 +368,7 @@ row_address = 0; cursor_home = carriage_return; +#endif T(("filter screensize %dx%d", LINES, COLS)); } #ifdef __DJGPP__ @@ -364,9 +434,9 @@ char sep1, sep2; int count = sscanf(env, "%d%c%d%c", &fg, &sep1, &bg, &sep2); if (count >= 1) { - SP->_default_fg = (fg >= 0 && fg < max_colors) ? fg : C_MASK; + SP->_default_fg = (fg >= 0 && fg < MaxColors) ? fg : C_MASK; if (count >= 3) { - SP->_default_bg = (bg >= 0 && bg < max_colors) ? bg : C_MASK; + SP->_default_bg = (bg >= 0 && bg < MaxColors) ? bg : C_MASK; } TR(TRACE_CHARPUT | TRACE_MOVE, ("from environment assumed fg=%d, bg=%d", @@ -390,20 +460,20 @@ p = extract_fgbg(p, &(SP->_default_bg)); TR(TRACE_CHARPUT | TRACE_MOVE, ("decoded fg=%d, bg=%d", SP->_default_fg, SP->_default_bg)); - if (SP->_default_fg >= max_colors) { + if (SP->_default_fg >= MaxColors) { if (set_a_foreground != ABSENT_STRING && !strcmp(set_a_foreground, "\033[3%p1%dm")) { set_a_foreground = "\033[3%?%p1%{8}%>%t9%e%p1%d%;m"; } else { - SP->_default_fg %= max_colors; + SP->_default_fg %= MaxColors; } } - if (SP->_default_bg >= max_colors) { + if (SP->_default_bg >= MaxColors) { if (set_a_background != ABSENT_STRING && !strcmp(set_a_background, "\033[4%p1%dm")) { set_a_background = "\033[4%?%p1%{8}%>%t9%e%p1%d%;m"; } else { - SP->_default_bg %= max_colors; + SP->_default_bg %= MaxColors; } } } @@ -546,7 +616,7 @@ curscr = SP->_curscr; #endif #if USE_SIZECHANGE - SP->_resize = resizeterm; + SP->_resize = NCURSES_SP_NAME(resizeterm); #endif newscr->_clear = TRUE; @@ -555,8 +625,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. @@ -564,7 +634,7 @@ formats (4-4 or 3-2-3) for which there may be some hardware support. */ if (rop->hook == _nc_slk_initialize) - if (!(num_labels <= 0 || !SLK_STDFMT(slk_format))) + if (!(NumLabels <= 0 || !SLK_STDFMT(slk_format))) continue; if (rop->hook) { int count; @@ -595,7 +665,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 +685,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 +725,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-09-12 08:51:17.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 -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-09-12 08:51:17.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 -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-09-12 08:51:17.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 -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-09-12 08:51:17.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 -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-09-12 08:51:17.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 -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-09-12 08:52:04.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 * @@ -41,26 +41,94 @@ */ #include - #include -#include /* 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.42 2009/08/15 23:05:02 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define NumLabels InfoOf(SP_PARM).numlabels +#define NoColorVideo InfoOf(SP_PARM).nocolorvideo +#define LabelWidth InfoOf(SP_PARM).labelwidth +#define LabelHeight InfoOf(SP_PARM).labelheight +#else +#define NumLabels num_labels +#define NoColorVideo no_color_video +#define LabelWidth label_width +#define LabelHeight label_height +#endif /* * Free any memory related to soft labels, return an error. */ static int -slk_failed(void) +slk_failed(NCURSES_SP_DCL0) { - if (SP->_slk) { - FreeIfNeeded(SP->_slk->ent); - free(SP->_slk); - SP->_slk = (SLK *) 0; + if ((0 != SP_PARM) && SP_PARM->_slk) { + FreeIfNeeded(SP_PARM->_slk->ent); + free(SP_PARM->_slk); + SP_PARM->_slk = (SLK *) 0; } return ERR; } +NCURSES_EXPORT(int) +_nc_format_slks(NCURSES_SP_DCLx int cols) +{ + int gap, i, x; + unsigned max_length; + + if (!SP_PARM || !SP_PARM->_slk) + return ERR; + + max_length = SP_PARM->_slk->maxlen; + if (SP_PARM->slk_format >= 3) { /* PC style */ + gap = (cols - 3 * (3 + 4 * max_length)) / 2; + + if (gap < 1) + gap = 1; + + for (i = x = 0; i < SP_PARM->_slk->maxlab; i++) { + SP_PARM->_slk->ent[i].ent_x = x; + x += max_length; + x += (i == 3 || i == 7) ? gap : 1; + } + } else { + if (SP_PARM->slk_format == 2) { /* 4-4 */ + gap = cols - (SP_PARM->_slk->maxlab * max_length) - 6; + + if (gap < 1) + gap = 1; + for (i = x = 0; i < SP_PARM->_slk->maxlab; i++) { + SP_PARM->_slk->ent[i].ent_x = x; + x += max_length; + x += (i == 3) ? gap : 1; + } + } else { + if (SP_PARM->slk_format == 1) { /* 1 -> 3-2-3 */ + gap = (cols - (SP_PARM->_slk->maxlab * max_length) - 5) + / 2; + + if (gap < 1) + gap = 1; + for (i = x = 0; i < SP_PARM->_slk->maxlab; i++) { + SP_PARM->_slk->ent[i].ent_x = x; + x += max_length; + x += (i == 2 || i == 4) ? gap : 1; + } + } else { + return slk_failed(NCURSES_SP_ARG); + } + } + } + SP_PARM->_slk->dirty = TRUE; + + return OK; +} + /* * Initialize soft labels. * Called from newterm() @@ -68,108 +136,91 @@ NCURSES_EXPORT(int) _nc_slk_initialize(WINDOW *stwin, int cols) { - int i, x; + int i; int res = OK; unsigned max_length; + SCREEN *sp; + TERMINAL *term; + int numlab; T((T_CALLED("_nc_slk_initialize()"))); - if (SP->_slk) { /* we did this already, so simply return */ + assert(stwin); + + sp = _nc_screen_of(stwin); + if (0 == sp) + returnCode(ERR); + + term = TerminalOf(SP_PARM); + assert(term); + + numlab = NumLabels; + + if (SP_PARM->_slk) { /* we did this already, so simply return */ returnCode(OK); - } else if ((SP->_slk = typeCalloc(SLK, 1)) == 0) + } else if ((SP_PARM->_slk = typeCalloc(SLK, 1)) == 0) returnCode(ERR); - SP->_slk->ent = NULL; + SP_PARM->_slk->hidden = TRUE; + SP_PARM->_slk->ent = NULL; + if (!SP_PARM->slk_format) + SP_PARM->slk_format = _nc_globals.slk_format; /* * If we use colors, vidputs() will suppress video attributes that conflict * with colors. In that case, we're still guaranteed that "reverse" would * work. */ - if ((no_color_video & 1) == 0) - SetAttr(SP->_slk->attr, A_STANDOUT); + if ((NoColorVideo & 1) == 0) + SetAttr(SP_PARM->_slk->attr, A_STANDOUT); else - SetAttr(SP->_slk->attr, A_REVERSE); + SetAttr(SP_PARM->_slk->attr, A_REVERSE); - SP->_slk->maxlab = ((num_labels > 0) - ? num_labels - : MAX_SKEY(_nc_globals.slk_format)); - SP->_slk->maxlen = ((num_labels > 0) - ? label_width * label_height - : MAX_SKEY_LEN(_nc_globals.slk_format)); - SP->_slk->labcnt = ((SP->_slk->maxlab < MAX_SKEY(_nc_globals.slk_format)) - ? MAX_SKEY(_nc_globals.slk_format) - : SP->_slk->maxlab); - - if (SP->_slk->maxlen <= 0 - || SP->_slk->labcnt <= 0 - || (SP->_slk->ent = typeCalloc(slk_ent, - (unsigned) SP->_slk->labcnt)) == NULL) - returnCode(slk_failed()); + SP_PARM->_slk->maxlab = ((numlab > 0) + ? numlab + : MAX_SKEY(SP_PARM->slk_format)); + SP_PARM->_slk->maxlen = ((numlab > 0) + ? LabelWidth * LabelHeight + : MAX_SKEY_LEN(SP_PARM->slk_format)); + SP_PARM->_slk->labcnt = ((SP_PARM->_slk->maxlab < MAX_SKEY(SP_PARM->slk_format)) + ? MAX_SKEY(SP_PARM->slk_format) + : SP_PARM->_slk->maxlab); + + if (SP_PARM->_slk->maxlen <= 0 + || SP_PARM->_slk->labcnt <= 0 + || (SP_PARM->_slk->ent = typeCalloc(slk_ent, + (unsigned) SP_PARM->_slk->labcnt)) + == NULL) + returnCode(slk_failed(NCURSES_SP_ARG)); - max_length = SP->_slk->maxlen; - for (i = 0; i < SP->_slk->labcnt; i++) { + max_length = SP_PARM->_slk->maxlen; + for (i = 0; i < SP_PARM->_slk->labcnt; i++) { size_t used = max_length + 1; - if ((SP->_slk->ent[i].ent_text = (char *) _nc_doalloc(0, used)) == 0) - returnCode(slk_failed()); - memset(SP->_slk->ent[i].ent_text, 0, used); - - if ((SP->_slk->ent[i].form_text = (char *) _nc_doalloc(0, used)) == 0) - returnCode(slk_failed()); - memset(SP->_slk->ent[i].form_text, 0, used); + SP_PARM->_slk->ent[i].ent_text = (char *) _nc_doalloc(0, used); + if (SP_PARM->_slk->ent[i].ent_text == 0) + returnCode(slk_failed(NCURSES_SP_ARG)); + memset(SP_PARM->_slk->ent[i].ent_text, 0, used); + + SP_PARM->_slk->ent[i].form_text = (char *) _nc_doalloc(0, used); + if (SP_PARM->_slk->ent[i].form_text == 0) + returnCode(slk_failed(NCURSES_SP_ARG)); + memset(SP_PARM->_slk->ent[i].form_text, 0, used); - memset(SP->_slk->ent[i].form_text, ' ', max_length); - SP->_slk->ent[i].visible = (char) (i < SP->_slk->maxlab); + memset(SP_PARM->_slk->ent[i].form_text, ' ', max_length); + SP_PARM->_slk->ent[i].visible = (char) (i < SP_PARM->_slk->maxlab); } - if (_nc_globals.slk_format >= 3) { /* PC style */ - int gap = (cols - 3 * (3 + 4 * max_length)) / 2; - if (gap < 1) - gap = 1; + res = _nc_format_slks(NCURSES_SP_ARGx cols); - for (i = x = 0; i < SP->_slk->maxlab; i++) { - SP->_slk->ent[i].ent_x = x; - x += max_length; - x += (i == 3 || i == 7) ? gap : 1; - } - } else { - if (_nc_globals.slk_format == 2) { /* 4-4 */ - int gap = cols - (SP->_slk->maxlab * max_length) - 6; - - if (gap < 1) - gap = 1; - for (i = x = 0; i < SP->_slk->maxlab; i++) { - SP->_slk->ent[i].ent_x = x; - x += max_length; - x += (i == 3) ? gap : 1; - } - } else { - if (_nc_globals.slk_format == 1) { /* 1 -> 3-2-3 */ - int gap = (cols - (SP->_slk->maxlab * max_length) - 5) - / 2; - - if (gap < 1) - gap = 1; - for (i = x = 0; i < SP->_slk->maxlab; i++) { - SP->_slk->ent[i].ent_x = x; - x += max_length; - x += (i == 2 || i == 4) ? gap : 1; - } - } else - returnCode(slk_failed()); - } - } - SP->_slk->dirty = TRUE; - if ((SP->_slk->win = stwin) == NULL) { - returnCode(slk_failed()); + if ((SP_PARM->_slk->win = stwin) == NULL) { + returnCode(slk_failed(NCURSES_SP_ARG)); } /* We now reset the format so that the next newterm has again * per default no SLK keys and may call slk_init again to * define a new layout. (juergen 03-Mar-1999) */ - SP->slk_format = _nc_globals.slk_format; _nc_globals.slk_format = 0; returnCode(res); } @@ -178,14 +229,24 @@ * 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()"))); + T((T_CALLED("slk_restore(%p)"), SP_PARM)); + + if (0 == SP_PARM) + returnCode(ERR); + if (SP_PARM->_slk == NULL) + returnCode(ERR); + SP_PARM->_slk->hidden = FALSE; + SP_PARM->_slk->dirty = TRUE; - if (SP->_slk == NULL) - return (ERR); - SP->_slk->hidden = FALSE; - SP->_slk->dirty = TRUE; + returnCode(NCURSES_SP_NAME(slk_refresh) (NCURSES_SP_ARG)); +} - 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-09-12 08:51:17.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 -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-09-12 08:51:17.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 -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-09-12 08:51:40.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -39,17 +40,40 @@ */ #include -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-09-12 08:51:17.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 1992,1995 * * and: Eric S. Raymond * + * and: Juergen Pfeifer, 1998,2009 * + * and: Thomas E. Dickey 1998-on * ****************************************************************************/ /* @@ -38,14 +40,22 @@ */ #include -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-09-12 08:52:07.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 * @@ -38,9 +38,18 @@ * Write SLK window to the (virtual) screen. */ #include -#include /* 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.24 2009/08/29 18:43:13 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define NumLabels InfoOf(SP_PARM).numlabels +#else +#define NumLabels num_labels +#endif /* * Paint the info line for the PC style SLK emulation. @@ -66,31 +75,47 @@ * Write the soft labels to the soft-key window. */ static void -slk_intern_refresh(SLK * slk) +slk_intern_refresh(SCREEN *sp) { int i; - int fmt = SP->slk_format; + int fmt; + SLK *slk; + int numlab; + + if (sp == 0) + return; + + slk = sp->_slk; + fmt = sp->slk_format; + numlab = NumLabels; + + if (slk->hidden) + return; for (i = 0; i < slk->labcnt; i++) { if (slk->dirty || slk->ent[i].dirty) { if (slk->ent[i].visible) { - if (num_labels > 0 && SLK_STDFMT(fmt)) { + if (numlab > 0 && SLK_STDFMT(fmt)) { +#ifdef USE_TERM_DRIVER + CallDriver_2(sp, hwlabel, i + 1, slk->ent[i].form_text); +#else if (i < num_labels) { TPUTS_TRACE("plab_norm"); putp(TPARM_2(plab_norm, i + 1, slk->ent[i].form_text)); } +#endif } else { if (fmt == 4) slk_paint_info(slk->win); wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x); - if (SP->_slk) { - wattrset(slk->win, AttrOf(SP->_slk->attr)); + if (sp->_slk) { + (void) wattrset(slk->win, AttrOf(sp->_slk->attr)); } waddstr(slk->win, slk->ent[i].form_text); /* if we simulate SLK's, it's looking much more natural to use the current ATTRIBUTE also for the label window */ - wattrset(slk->win, WINDOW_ATTRS(stdscr)); + (void) wattrset(slk->win, WINDOW_ATTRS(StdScreen(sp))); } } slk->ent[i].dirty = FALSE; @@ -98,7 +123,10 @@ } slk->dirty = FALSE; - if (num_labels > 0) { + if (numlab > 0) { +#ifdef USE_TERM_DRIVER + CallDriver_1(sp, hwlabelOnOff, slk->hidden ? FALSE : TRUE); +#else if (slk->hidden) { TPUTS_TRACE("label_off"); putp(label_off); @@ -106,6 +134,7 @@ TPUTS_TRACE("label_on"); putp(label_on); } +#endif } } @@ -113,32 +142,48 @@ * Refresh the soft labels. */ NCURSES_EXPORT(int) -slk_noutrefresh(void) +NCURSES_SP_NAME(slk_noutrefresh) (NCURSES_SP_DCL0) { - T((T_CALLED("slk_noutrefresh()"))); + T((T_CALLED("slk_noutrefresh(%p)"), SP_PARM)); - if (SP == NULL || SP->_slk == NULL) + if (SP_PARM == 0 || SP_PARM->_slk == 0) returnCode(ERR); - if (SP->_slk->hidden) + if (SP_PARM->_slk->hidden) returnCode(OK); - slk_intern_refresh(SP->_slk); + slk_intern_refresh(SP_PARM); + + 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()"))); + T((T_CALLED("slk_refresh(%p)"), SP_PARM)); - if (SP == NULL || SP->_slk == NULL) + if (SP_PARM == 0 || SP_PARM->_slk == 0) returnCode(ERR); - if (SP->_slk->hidden) + if (SP_PARM->_slk->hidden) returnCode(OK); - slk_intern_refresh(SP->_slk); + slk_intern_refresh(SP_PARM); + + 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-09-12 08:51:17.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-09-12 08:51:17.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 1992,1995 * - * and: Eric S. Raymond * + * Author: Juergen Pfeifer 1997,2009 * + * and: Thomas E. Dickey 1996-on * ****************************************************************************/ /* @@ -38,16 +38,24 @@ */ #include -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-09-12 08:51:30.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,7 +42,7 @@ #include -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 @@ -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-09-12 08:51:17.000000000 -0700 @@ -39,16 +39,16 @@ #include -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-09-12 08:51:30.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 -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-09-12 08:51:37.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-09-12 08:51:17.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-09-12 08:51:50.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.26 2009/07/04 22:05:15 Clemens.Ladisch 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"), # @@ -36,19 +36,12 @@ print "#include " print "#include " print "" - print "#if USE_WIDEC_SUPPORT" - print "#if HAVE_WCTYPE_H" - print "#include " - print "#endif" - print "#endif" - print "" print "#undef unctrl" 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) { @@ -158,16 +151,6 @@ print "\t\t && (check < 160))" printf "\t\t\tresult = %s_c1[check - 128];\n", stringname; print "\t\telse" - print "#if USE_WIDEC_SUPPORT" - print "\t\tif ((check >= 160)" - print "\t\t && (check < 256)" - print "\t\t && ((sp != 0)" - print "\t\t && ((sp->_legacy_coding > 0)" - print "\t\t || (sp->_legacy_coding == 0" - print "\t\t && (isprint(check) || iswprint(check))))))" - printf "\t\t\tresult = %s_c1[check - 128];\n", stringname; - print "\t\telse" - print "#else" print "\t\tif ((check >= 160)" print "\t\t && (check < 256)" print "\t\t && ((sp != 0)" @@ -176,7 +159,6 @@ print "\t\t && isprint(check)))))" printf "\t\t\tresult = %s_c1[check - 128];\n", stringname; print "\t\telse" - print "#endif /* USE_WIDEC_SUPPORT */" print "#endif /* NCURSES_EXT_FUNCS */" printf "\t\t\tresult = %s_table[check];\n", stringname; print "\t} else {" @@ -187,6 +169,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-09-12 08:51:28.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 -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-09-12 08:52:09.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 * @@ -28,6 +28,7 @@ /**************************************************************************** * Author: Thomas E. Dickey * + * and: Juergen Pfeifer * ****************************************************************************/ /* @@ -39,11 +40,12 @@ */ #include -#include -MODULE_ID("$Id: resizeterm.c,v 1.34 2008/06/07 13:58:40 tom Exp $") +#ifndef CUR +#define CUR SP_TERMTYPE +#endif -#define stolen_lines (screen_lines - SP->_lines_avail) +MODULE_ID("$Id: resizeterm.c,v 1.41 2009/08/30 16:18:58 tom Exp $") /* * If we're trying to be reentrant, do not want any local statics. @@ -64,18 +66,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 +93,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 +119,9 @@ ripoff_t *rop; if (win != 0) { +#ifdef USE_SP_RIPOFF + SCREEN *sp = _nc_screen_of(win); +#endif for (each_ripoff(rop)) { if (rop->win == win && rop->line != 0) { result = rop; @@ -125,6 +143,9 @@ ripoff_t *rop; if (win != 0) { +#ifdef USE_SP_RIPOFF + SCREEN *sp = _nc_screen_of(win); +#endif for (each_ripoff(rop)) { if (rop->line < 0) { result -= rop->line; @@ -146,9 +167,12 @@ int depth = 0; if (cmp != 0) { +#ifdef USE_SP_WINDOWLIST + 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 +208,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); @@ -203,6 +227,12 @@ * move it to the same relative position. */ win->_begy = ToLines - ripped_bottom(win) - 0 - win->_yoffset; + if (rop->hook == _nc_slk_initialize) + _nc_format_slks( +#if NCURSES_SP_FUNCS + _nc_screen_of(win), +#endif + ToCols); } else if (win->_begy >= bottom) { /* * If it is below the bottom of the new screen, move up by the same @@ -239,19 +269,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 +303,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 +337,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); + _nc_nonsp_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 +364,42 @@ _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) = ToLines; + screen_columns(SP_PARM) = ToCols; - SP->_lines_avail = lines - was_stolen; +#ifdef USE_TERM_DRIVER + CallDriver_2(SP_PARM, setsize, ToLines, ToCols); +#else + lines = ToLines; + columns = ToCols; +#endif - if (SP->oldhash) { - FreeAndNull(SP->oldhash); + SP_PARM->_lines_avail = ToLines - was_stolen; + + 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)) { @@ -378,11 +418,23 @@ SET_LINES(ToLines - was_stolen); SET_COLS(ToCols); - _nc_unlock_global(curses); + _nc_nonsp_unlock_global(curses); returnCode(result); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +resize_term(int ToLines, int ToCols) +{ + int res = ERR; + _nc_sp_lock_global(curses); + res = NCURSES_SP_NAME(resize_term) (CURRENT_SCREEN, ToLines, ToCols); + _nc_sp_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 +444,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 +481,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 +494,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 +504,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-09-12 08:51:30.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 #include -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-09-12 08:51:17.000000000 -0700 @@ -39,7 +39,7 @@ #include -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-09-12 08:51:40.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 -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-09-12 08:52:09.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 1992,1995 * * and: Eric S. Raymond * * 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.436 2009/08/30 18:13:54 tom Exp $ * * curses.priv.h * @@ -97,8 +98,6 @@ extern int errno; #endif -#include - /* 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 /* 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 + +#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 + +/* + * 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 + #include #if NCURSES_EXT_COLORS && USE_WIDEC_SUPPORT @@ -272,8 +332,15 @@ #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 +350,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*/ @@ -301,18 +374,37 @@ #define GET_SCREEN_PAIR(s) GetPair(SCREEN_ATTRS(s)) #define SET_SCREEN_PAIR(s,p) SetPair(SCREEN_ATTRS(s), p) +#if USE_REENTRANT || NCURSES_SP_FUNCS +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 *); +#endif + #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 + +#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 ptrTabsize(sp) &TABSIZE +#define ptrEscdelay(sp) &ESCDELAY + +#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, \ @@ -389,6 +481,36 @@ #endif /* USE_PTHREADS */ +/* + * When using sp-funcs, locks are targeted to SCREEN-level granularity. + * So the locking is done in the non-sp-func (which calls the sp-func) rather + * than in the sp-func itself. + * + * Use the _nc_nonsp_XXX functions in the function using "NCURSES_SP_NAME()". + * Use the _nc_sp_XXX functions in the function using "#if NCURSES_SP_FUNCS". + */ +#if NCURSES_SP_FUNCS + +#define _nc_nonsp_lock_global(name) /* nothing */ +#define _nc_nonsp_try_global(name) 0 +#define _nc_nonsp_unlock_global(name) /* nothing */ + +#define _nc_sp_lock_global(name) _nc_lock_global(name) +#define _nc_sp_try_global(name) _nc_try_global(name) +#define _nc_sp_unlock_global(name) _nc_unlock_global(name) + +#else + +#define _nc_nonsp_lock_global(name) _nc_lock_global(name) +#define _nc_nonsp_try_global(name) _nc_try_global(name) +#define _nc_nonsp_unlock_global(name) _nc_unlock_global(name) + +#define _nc_sp_lock_global(name) /* nothing */ +#define _nc_sp_try_global(name) 0 +#define _nc_sp_unlock_global(name) /* nothing */ + +#endif + #if HAVE_GETTIMEOFDAY # define PRECISE_GETTIME 1 # define TimeType struct timeval @@ -404,6 +526,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 +588,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 +617,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 +733,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 +770,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 +797,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 +810,8 @@ chtype *real_acs_map; int _LINES; int _COLS; + int _TABSIZE; + int _ESCDELAY; TERMINAL *_cur_term; #ifdef TRACE long _outchars; @@ -688,8 +820,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 +843,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 +858,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 +940,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 */ @@ -820,8 +968,9 @@ */ bool _nc_sp_idlok; bool _nc_sp_idcok; -#define _nc_idlok SP->_nc_sp_idlok -#define _nc_idcok SP->_nc_sp_idcok + +#define _nc_idlok SP_PARM->_nc_sp_idlok +#define _nc_idcok SP_PARM->_nc_sp_idcok /* * These are the data that support the mouse interface. @@ -875,7 +1024,7 @@ * This supports automatic resizing */ #if USE_SIZECHANGE - int (*_resize)(int,int); + int (*_resize)(NCURSES_SP_DCLx int y, int x); #endif /* @@ -895,7 +1044,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 +1064,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 +1101,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 */ #ifndef UCHAR_MAX #define UCHAR_MAX 255 @@ -1112,7 +1284,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 +1386,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 +1435,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 +1494,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 +1520,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 +1539,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 /* @@ -1425,16 +1597,28 @@ extern NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *, attr_t); #undef DelCharCost -#define DelCharCost(count) _nc_DelCharCost(count) -extern NCURSES_EXPORT(int) _nc_DelCharCost (int); +#define DelCharCost(sp, count) NCURSES_SP_NAME(_nc_DelCharCost)(NCURSES_SP_ARGx count) #undef InsCharCost -#define InsCharCost(count) _nc_InsCharCost(count) -extern NCURSES_EXPORT(int) _nc_InsCharCost (int); +#define InsCharCost(sp, count) NCURSES_SP_NAME(_nc_InsCharCost)(NCURSES_SP_ARGx count) + +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_DelCharCost) (NCURSES_SP_DCLx int _c); +extern NCURSES_EXPORT(int) NCURSES_SP_NAME(_nc_InsCharCost) (NCURSES_SP_DCLx int _c); #undef UpdateAttrs -#define UpdateAttrs(c) _nc_UpdateAttrs(c) -extern NCURSES_EXPORT(void) _nc_UpdateAttrs (NCURSES_CH_T); +#define UpdateAttrs(sp,c) NCURSES_SP_NAME(_nc_UpdateAttrs)(NCURSES_SP_ARGx CHREF(c)) + +#if defined(NEED_NCURSES_CH_T) +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_UpdateAttrs) (NCURSES_SP_DCLx CARG_CH_T _c); +#else +extern NCURSES_EXPORT(void) NCURSES_SP_NAME(_nc_UpdateAttrs) (NCURSES_SP_DCLx chtype c); +#endif + +#if NCURSES_SP_FUNCS +extern NCURSES_EXPORT(int) _nc_DelCharCost (int); +extern NCURSES_EXPORT(int) _nc_InsCharCost (int); +extern NCURSES_EXPORT(void) _nc_UpdateAttrs (CARG_CH_T); +#endif /* NCURSES_SP_FUNCS */ #else @@ -1483,8 +1667,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 +1687,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 +1703,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 +1711,12 @@ /* 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); + +/* lib_set_term.c */ +extern NCURSES_EXPORT(int) _nc_ripoffline(int, int(*)(WINDOW*, int)); /* lib_tstp.c */ #if USE_SIGWINCH @@ -1539,9 +1725,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,9 +1760,8 @@ /* 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(TERMINAL*) _nc_get_cur_term (void); extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int); extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t); extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *); @@ -1592,12 +1774,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,24 +1845,33 @@ #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 * linker to pull in the data-only module with 'SP'. */ +#define _nc_alloc_screen_sp() typeCalloc(SCREEN, 1) + #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 = _nc_alloc_screen_sp()) != 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 +1879,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 (NCURSES_SP_DCLx int _c); /* * Some constants related to SLK's @@ -1707,14 +1901,277 @@ #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 + +#ifdef USE_TERM_DRIVER +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; + +extern NCURSES_EXPORT(int) _nc_get_driver(TERMINAL_CONTROL_BLOCK*, const char*, int*); +extern NCURSES_EXPORT(void) _nc_get_screensize_ex(SCREEN *, TERMINAL *, int *, int *); +#endif /* USE_TERM_DRIVER */ + +/* + * Entrypoints which are actually provided in the terminal driver, which would + * be an sp-name otherwise. + */ +#ifdef USE_TERM_DRIVER +#define TINFO_HAS_KEY _nc_tinfo_has_key +#define TINFO_DOUPDATE _nc_tinfo_doupdate +#define TINFO_MVCUR _nc_tinfo_mvcur +extern NCURSES_EXPORT(int) TINFO_HAS_KEY(SCREEN*, int); +extern NCURSES_EXPORT(int) TINFO_DOUPDATE(SCREEN *); +extern NCURSES_EXPORT(int) TINFO_MVCUR(SCREEN*, int, int, int, int); +#else +#define TINFO_HAS_KEY NCURSES_SP_NAME(has_key) +#define TINFO_DOUPDATE NCURSES_SP_NAME(doupdate) +#define TINFO_MVCUR NCURSES_SP_NAME(mvcur) +#endif + +/* + * Entrypoints using an extra parameter with the terminal driver. + */ +#ifdef USE_TERM_DRIVER +extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, TERMINAL *, int *, int *); +extern NCURSES_EXPORT(int) _nc_setupterm_ex(TERMINAL **, NCURSES_CONST char *, int , int *, bool); +#define TINFO_GET_SIZE(sp, tp, lp, cp) \ + _nc_get_screensize(sp, tp, lp, cp) +#define TINFO_SET_CURTERM(sp, tp) \ + NCURSES_SP_NAME(set_curterm)(sp, tp) +#define TINFO_SETUP_TERM(tpp, name, fd, err, reuse) \ + _nc_setupterm_ex(tpp, name, fd, err, reuse) +#else /* !USE_TERM_DRIVER */ +extern NCURSES_EXPORT(void) _nc_get_screensize(SCREEN *, int *, int *); +#define TINFO_GET_SIZE(sp, tp, lp, cp) \ + _nc_get_screensize(sp, lp, cp) +#define TINFO_SET_CURTERM(sp, tp) \ + set_curterm(tp) +#define TINFO_SETUP_TERM(tpp, name, fd, err, reuse) \ + _nc_setupterm(name, fd, err, reuse) +#endif /* !USE_TERM_DRIVER */ + +#ifdef USE_TERM_DRIVER +#ifdef __MINGW32__ +#include +extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_WIN_DRIVER; +#endif +extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_TINFO_DRIVER; +#endif + +#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(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(TERMINAL*) NCURSES_SP_NAME(_nc_get_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/llib-lncurses ncurses-5.7/ncurses/llib-lncurses --- ncurses-5.7.orig/ncurses/llib-lncurses 2008-10-11 13:57:29.000000000 -0700 +++ ncurses-5.7/ncurses/llib-lncurses 2009-09-12 08:51: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 * @@ -27,7 +27,7 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 1996-2008 * + * Author: Thomas E. Dickey 1996-2009 * ****************************************************************************/ /* LINTLIBRARY */ @@ -38,27 +38,54 @@ #undef _nc_oldnums int *_nc_oldnums; +#undef _nc_scroll_optimize_sp +void _nc_scroll_optimize_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_scroll_optimize void _nc_scroll_optimize(void) { /* void */ } +#undef _nc_linedump_sp +void _nc_linedump_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_linedump void _nc_linedump(void) { /* void */ } /* ./tty/hashmap.c */ -#include +#undef _nc_hash_map_sp +void _nc_hash_map_sp( + SCREEN *sp) + { /* void */ } #undef _nc_hash_map void _nc_hash_map(void) { /* void */ } +#undef _nc_make_oldhash_sp +void _nc_make_oldhash_sp( + SCREEN *sp, + int i) + { /* void */ } + #undef _nc_make_oldhash void _nc_make_oldhash( int i) { /* void */ } +#undef _nc_scroll_oldhash_sp +void _nc_scroll_oldhash_sp( + SCREEN *sp, + int n, + int top, + int bot) + { /* void */ } + #undef _nc_scroll_oldhash void _nc_scroll_oldhash( int n, @@ -112,6 +139,11 @@ /* ./base/lib_beep.c */ +#undef beep_sp +int beep_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef beep int beep(void) { return(*(int *)0); } @@ -187,6 +219,7 @@ /* ./base/lib_color.c */ +#include #include #undef COLOR_PAIRS @@ -194,14 +227,32 @@ #undef COLORS int COLORS; +#undef _nc_reset_colors_sp +NCURSES_BOOL _nc_reset_colors_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef _nc_reset_colors NCURSES_BOOL _nc_reset_colors(void) { return(*(NCURSES_BOOL *)0); } +#undef start_color_sp +int start_color_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef start_color int start_color(void) { return(*(int *)0); } +#undef init_pair_sp +int init_pair_sp( + SCREEN *sp, + short pair, + short f, + short b) + { return(*(int *)0); } + #undef init_pair int init_pair( short pair, @@ -209,6 +260,15 @@ short b) { return(*(int *)0); } +#undef init_color_sp +int init_color_sp( + SCREEN *sp, + short color, + short r, + short g, + short b) + { return(*(int *)0); } + #undef init_color int init_color( short color, @@ -217,14 +277,33 @@ short b) { return(*(int *)0); } +#undef can_change_color_sp +NCURSES_BOOL can_change_color_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef can_change_color NCURSES_BOOL can_change_color(void) { return(*(NCURSES_BOOL *)0); } +#undef has_colors_sp +NCURSES_BOOL has_colors_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef has_colors NCURSES_BOOL has_colors(void) { return(*(NCURSES_BOOL *)0); } +#undef color_content_sp +int color_content_sp( + SCREEN *sp, + short color, + short *r, + short *g, + short *b) + { return(*(int *)0); } + #undef color_content int color_content( short color, @@ -233,6 +312,14 @@ short *b) { return(*(int *)0); } +#undef pair_content_sp +int pair_content_sp( + SCREEN *sp, + short pair, + short *f, + short *b) + { return(*(int *)0); } + #undef pair_content int pair_content( short pair, @@ -240,13 +327,21 @@ short *b) { return(*(int *)0); } +#undef _nc_do_color_sp +void _nc_do_color_sp( + SCREEN *sp, + short old_pair, + short pair, + NCURSES_BOOL reverse, + NCURSES_OUTC_sp outc) + { /* void */ } + #undef _nc_do_color void _nc_do_color( short old_pair, short pair, NCURSES_BOOL reverse, - int (*outc)( - int p1)) + NCURSES_OUTC outc) { /* void */ } /* ./base/lib_colorset.c */ @@ -274,16 +369,31 @@ /* ./base/lib_echo.c */ +#undef echo_sp +int echo_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef echo int echo(void) { return(*(int *)0); } +#undef noecho_sp +int noecho_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef noecho int noecho(void) { return(*(int *)0); } /* ./base/lib_endwin.c */ +#undef endwin_sp +int endwin_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef endwin int endwin(void) { return(*(int *)0); } @@ -297,6 +407,11 @@ /* ./base/lib_flash.c */ +#undef flash_sp +int flash_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef flash int flash(void) { return(*(int *)0); } @@ -1138,6 +1253,12 @@ #undef ESCDELAY int ESCDELAY; +#undef set_escdelay_sp +int set_escdelay_sp( + SCREEN *sp, + int value) + { return(*(int *)0); } + #undef set_escdelay int set_escdelay( int value) @@ -1200,6 +1321,7 @@ #undef _nc_insert_ch int _nc_insert_ch( + SCREEN *sp, WINDOW *win, chtype ch) { return(*(int *)0); } @@ -1238,6 +1360,11 @@ /* ./base/lib_isendwin.c */ +#undef isendwin_sp +NCURSES_BOOL isendwin_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef isendwin NCURSES_BOOL isendwin(void) { return(*(NCURSES_BOOL *)0); } @@ -1252,16 +1379,35 @@ /* ./base/lib_mouse.c */ +#undef getmouse_sp +int getmouse_sp( + SCREEN *sp, + MEVENT *aevent) + { return(*(int *)0); } + #undef getmouse int getmouse( MEVENT *aevent) { return(*(int *)0); } +#undef ungetmouse_sp +int ungetmouse_sp( + SCREEN *sp, + MEVENT *aevent) + { return(*(int *)0); } + #undef ungetmouse int ungetmouse( MEVENT *aevent) { return(*(int *)0); } +#undef mousemask_sp +mmask_t mousemask_sp( + SCREEN *sp, + mmask_t newmask, + mmask_t *oldmask) + { return(*(mmask_t *)0); } + #undef mousemask mmask_t mousemask( mmask_t newmask, @@ -1275,14 +1421,30 @@ int x) { return(*(NCURSES_BOOL *)0); } +#undef mouseinterval_sp +int mouseinterval_sp( + SCREEN *sp, + int maxclick) + { return(*(int *)0); } + #undef mouseinterval int mouseinterval( int maxclick) { return(*(int *)0); } #undef _nc_has_mouse -int _nc_has_mouse(void) - { return(*(int *)0); } +NCURSES_BOOL _nc_has_mouse( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_mouse_sp +NCURSES_BOOL has_mouse_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_mouse +NCURSES_BOOL has_mouse(void) + { return(*(NCURSES_BOOL *)0); } #undef wmouse_trafo NCURSES_BOOL wmouse_trafo( @@ -1303,24 +1465,55 @@ /* ./tty/lib_mvcur.c */ +#undef _nc_msec_cost_sp +int _nc_msec_cost_sp( + SCREEN *sp, + const char *const cap, + int affcnt) + { return(*(int *)0); } + #undef _nc_msec_cost int _nc_msec_cost( const char *const cap, int affcnt) { return(*(int *)0); } +#undef _nc_mvcur_resume_sp +void _nc_mvcur_resume_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_mvcur_resume void _nc_mvcur_resume(void) { /* void */ } +#undef _nc_mvcur_init_sp +void _nc_mvcur_init_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_mvcur_init void _nc_mvcur_init(void) { /* void */ } +#undef _nc_mvcur_wrap_sp +void _nc_mvcur_wrap_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_mvcur_wrap void _nc_mvcur_wrap(void) { /* void */ } +#undef mvcur_sp +int mvcur_sp( + SCREEN *sp, + int yold, + int xold, + int ynew, + int xnew) + { return(*(int *)0); } + #undef mvcur int mvcur( int yold, @@ -1343,14 +1536,32 @@ /* ./base/lib_newterm.c */ +#undef filter_sp +void filter_sp( + SCREEN *sp) + { /* void */ } + #undef filter void filter(void) { /* void */ } +#undef nofilter_sp +void nofilter_sp( + SCREEN *sp) + { /* void */ } + #undef nofilter void nofilter(void) { /* void */ } +#undef newterm_sp +SCREEN *newterm_sp( + SCREEN *sp, + char *name, + FILE *ofp, + FILE *ifp) + { return(*(SCREEN **)0); } + #undef newterm SCREEN *newterm( char *name, @@ -1365,6 +1576,15 @@ WINDOW *win) { return(*(int *)0); } +#undef newwin_sp +WINDOW *newwin_sp( + SCREEN *sp, + int num_lines, + int num_columns, + int begy, + int begx) + { return(*(WINDOW **)0); } + #undef newwin WINDOW *newwin( int num_lines, @@ -1391,6 +1611,16 @@ int x) { return(*(WINDOW **)0); } +#undef _nc_makenew_sp +WINDOW *_nc_makenew_sp( + SCREEN *sp, + int num_lines, + int num_columns, + int begy, + int begx, + int flags) + { return(*(WINDOW **)0); } + #undef _nc_makenew WINDOW *_nc_makenew( int num_lines, @@ -1400,17 +1630,37 @@ int flags) { return(*(WINDOW **)0); } -#undef _nc_screen_of -SCREEN *_nc_screen_of( - WINDOW *win) - { return(*(SCREEN **)0); } +#undef _nc_curscr_of +WINDOW *_nc_curscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } + +#undef _nc_newscr_of +WINDOW *_nc_newscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } + +#undef _nc_stdscr_of +WINDOW *_nc_stdscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } /* ./base/lib_nl.c */ +#undef nl_sp +int nl_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef nl int nl(void) { return(*(int *)0); } +#undef nonl_sp +int nonl_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef nonl int nonl(void) { return(*(int *)0); } @@ -1444,6 +1694,13 @@ /* ./base/lib_pad.c */ +#undef newpad_sp +WINDOW *newpad_sp( + SCREEN *sp, + int l, + int c) + { return(*(WINDOW **)0); } + #undef newpad WINDOW *newpad( int l, @@ -1549,6 +1806,14 @@ /* ./base/lib_restart.c */ +#undef restartterm_sp +int restartterm_sp( + SCREEN *sp, + char *termp, + int filenum, + int *errret) + { return(*(int *)0); } + #undef restartterm int restartterm( char *termp, @@ -1597,6 +1862,12 @@ /* ./base/lib_screen.c */ +#undef getwin_sp +WINDOW *getwin_sp( + SCREEN *sp, + FILE *filep) + { return(*(WINDOW **)0); } + #undef getwin WINDOW *getwin( FILE *filep) @@ -1608,6 +1879,12 @@ FILE *filep) { return(*(int *)0); } +#undef scr_restore_sp +int scr_restore_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + #undef scr_restore int scr_restore( const char *file) @@ -1618,11 +1895,23 @@ const char *file) { return(*(int *)0); } +#undef scr_init_sp +int scr_init_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + #undef scr_init int scr_init( const char *file) { return(*(int *)0); } +#undef scr_set_sp +int scr_set_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + #undef scr_set int scr_set( const char *file) @@ -1683,6 +1972,15 @@ int slk_format) { return(*(int *)0); } +#undef _nc_ripoffline_sp +int _nc_ripoffline_sp( + SCREEN *sp, + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + #undef _nc_ripoffline int _nc_ripoffline( int line, @@ -1691,6 +1989,15 @@ int p2)) { return(*(int *)0); } +#undef ripoffline_sp +int ripoffline_sp( + SCREEN *sp, + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + #undef ripoffline int ripoffline( int line, @@ -1707,12 +2014,25 @@ int cols) { return(*(int *)0); } +#undef slk_restore_sp +int slk_restore_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_restore int slk_restore(void) { return(*(int *)0); } /* ./base/lib_slkatr_set.c */ +#undef slk_attr_set_sp +int slk_attr_set_sp( + SCREEN *sp, + const attr_t attr, + short color_pair_number, + void *opts) + { return(*(int *)0); } + #undef slk_attr_set int slk_attr_set( const attr_t attr, @@ -1722,6 +2042,12 @@ /* ./base/lib_slkatrof.c */ +#undef slk_attroff_sp +int slk_attroff_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + #undef slk_attroff int slk_attroff( const chtype attr) @@ -1729,6 +2055,12 @@ /* ./base/lib_slkatron.c */ +#undef slk_attron_sp +int slk_attron_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + #undef slk_attron int slk_attron( const chtype attr) @@ -1736,6 +2068,12 @@ /* ./base/lib_slkatrset.c */ +#undef slk_attrset_sp +int slk_attrset_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + #undef slk_attrset int slk_attrset( const chtype attr) @@ -1743,18 +2081,34 @@ /* ./base/lib_slkattr.c */ +#undef slk_attr_sp +attr_t slk_attr_sp( + SCREEN *sp) + { return(*(attr_t *)0); } + #undef slk_attr attr_t slk_attr(void) { return(*(attr_t *)0); } /* ./base/lib_slkclear.c */ +#undef slk_clear_sp +int slk_clear_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_clear int slk_clear(void) { return(*(int *)0); } /* ./base/lib_slkcolor.c */ +#undef slk_color_sp +int slk_color_sp( + SCREEN *sp, + short color_pair_number) + { return(*(int *)0); } + #undef slk_color int slk_color( short color_pair_number) @@ -1762,6 +2116,12 @@ /* ./base/lib_slkinit.c */ +#undef slk_init_sp +int slk_init_sp( + SCREEN *sp, + int format) + { return(*(int *)0); } + #undef slk_init int slk_init( int format) @@ -1769,6 +2129,12 @@ /* ./base/lib_slklab.c */ +#undef slk_label_sp +char *slk_label_sp( + SCREEN *sp, + int n) + { return(*(char **)0); } + #undef slk_label char *slk_label( int n) @@ -1776,16 +2142,34 @@ /* ./base/lib_slkrefr.c */ +#undef slk_noutrefresh_sp +int slk_noutrefresh_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_noutrefresh int slk_noutrefresh(void) { return(*(int *)0); } +#undef slk_refresh_sp +int slk_refresh_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_refresh int slk_refresh(void) { return(*(int *)0); } /* ./base/lib_slkset.c */ +#undef slk_set_sp +int slk_set_sp( + SCREEN *sp, + int i, + const char *astr, + int format) + { return(*(int *)0); } + #undef slk_set int slk_set( int i, @@ -1795,6 +2179,11 @@ /* ./base/lib_slktouch.c */ +#undef slk_touch_sp +int slk_touch_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_touch int slk_touch(void) { return(*(int *)0); } @@ -1857,8 +2246,8 @@ SCREEN *sp) { /* void */ } -#undef _nc_ungetch -int _nc_ungetch( +#undef ungetch_sp +int ungetch_sp( SCREEN *sp, int ch) { return(*(int *)0); } @@ -1870,11 +2259,23 @@ /* ./tty/lib_vidattr.c */ +#undef vidputs_sp +int vidputs_sp( + SCREEN *sp, + chtype newmode, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + #undef vidputs int vidputs( chtype newmode, - int (*outc)( - int p1)) + NCURSES_OUTC outc) + { return(*(int *)0); } + +#undef vidattr_sp +int vidattr_sp( + SCREEN *sp, + chtype newmode) { return(*(int *)0); } #undef vidattr @@ -1882,6 +2283,11 @@ chtype newmode) { return(*(int *)0); } +#undef termattrs_sp +chtype termattrs_sp( + SCREEN *sp) + { return(*(chtype *)0); } + #undef termattrs chtype termattrs(void) { return(*(chtype *)0); } @@ -1962,12 +2368,24 @@ /* ./base/nc_panel.c */ +#undef _nc_panelhook_sp +struct panelhook *_nc_panelhook_sp( + SCREEN *sp) + { return(*(struct panelhook **)0); } + #undef _nc_panelhook struct panelhook *_nc_panelhook(void) { return(*(struct panelhook **)0); } /* ./base/safe_sprintf.c */ +#undef _nc_printf_string_sp +char *_nc_printf_string_sp( + SCREEN *sp, + const char *fmt, + va_list ap) + { return(*(char **)0); } + #undef _nc_printf_string char *_nc_printf_string( const char *fmt, @@ -1979,10 +2397,24 @@ #include #include +#undef doupdate_sp +int doupdate_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef doupdate int doupdate(void) { return(*(int *)0); } +#undef _nc_scrolln_sp +int _nc_scrolln_sp( + SCREEN *sp, + int n, + int top, + int bot, + int maxy) + { return(*(int *)0); } + #undef _nc_scrolln int _nc_scrolln( int n, @@ -1991,18 +2423,39 @@ int maxy) { return(*(int *)0); } +#undef _nc_screen_resume_sp +void _nc_screen_resume_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_screen_resume void _nc_screen_resume(void) { /* void */ } +#undef _nc_screen_init_sp +void _nc_screen_init_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_screen_init void _nc_screen_init(void) { /* void */ } +#undef _nc_screen_wrap_sp +void _nc_screen_wrap_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_screen_wrap void _nc_screen_wrap(void) { /* void */ } +#undef _nc_do_xmc_glitch_sp +void _nc_do_xmc_glitch_sp( + SCREEN *sp, + attr_t previous) + { /* void */ } + #undef _nc_do_xmc_glitch void _nc_do_xmc_glitch( attr_t previous) @@ -2040,6 +2493,12 @@ void _nc_freeall(void) { /* void */ } +#undef _nc_free_and_exit_sp +void _nc_free_and_exit_sp( + SCREEN *sp, + int code) + { /* void */ } + #undef _nc_free_and_exit void _nc_free_and_exit( int code) @@ -2059,6 +2518,24 @@ attr_t at) { /* void */ } +#undef _nc_DelCharCost_sp +int _nc_DelCharCost_sp( + SCREEN *sp, + int count) + { return(*(int *)0); } + +#undef _nc_InsCharCost_sp +int _nc_InsCharCost_sp( + SCREEN *sp, + int count) + { return(*(int *)0); } + +#undef _nc_UpdateAttrs_sp +void _nc_UpdateAttrs_sp( + SCREEN *sp, + chtype c) + { /* void */ } + #undef _nc_DelCharCost int _nc_DelCharCost( int count) @@ -2076,6 +2553,12 @@ /* ./base/legacy_coding.c */ +#undef use_legacy_coding_sp +int use_legacy_coding_sp( + SCREEN *sp, + int level) + { return(*(int *)0); } + #undef use_legacy_coding int use_legacy_coding( int level) @@ -2083,10 +2566,22 @@ /* ./base/lib_dft_fgbg.c */ +#undef use_default_colors_sp +int use_default_colors_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef use_default_colors int use_default_colors(void) { return(*(int *)0); } +#undef assume_default_colors_sp +int assume_default_colors_sp( + SCREEN *sp, + int fg, + int bg) + { return(*(int *)0); } + #undef assume_default_colors int assume_default_colors( int fg, @@ -2095,6 +2590,13 @@ /* ./tinfo/lib_print.c */ +#undef mcprint_sp +int mcprint_sp( + SCREEN *sp, + char *data, + int len) + { return(*(int *)0); } + #undef mcprint int mcprint( char *data, @@ -2103,18 +2605,39 @@ /* ./base/resizeterm.c */ +#undef is_term_resized_sp +NCURSES_BOOL is_term_resized_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(NCURSES_BOOL *)0); } + #undef is_term_resized NCURSES_BOOL is_term_resized( int ToLines, int ToCols) { return(*(NCURSES_BOOL *)0); } +#undef resize_term_sp +int resize_term_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(int *)0); } + #undef resize_term int resize_term( int ToLines, int ToCols) { return(*(int *)0); } +#undef resizeterm_sp +int resizeterm_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(int *)0); } + #undef resizeterm int resizeterm( int ToLines, @@ -2397,6 +2920,11 @@ #undef acs_map chtype acs_map[128]; +#undef _nc_init_acs_sp +void _nc_init_acs_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_init_acs void _nc_init_acs(void) { /* void */ } @@ -2420,6 +2948,11 @@ int BaudRate) { return(*(int *)0); } +#undef baudrate_sp +int baudrate_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef baudrate int baudrate(void) { return(*(int *)0); } @@ -2434,6 +2967,12 @@ TERMINAL *termp) { return(*(TERMINAL **)0); } +#undef del_curterm_sp +int del_curterm_sp( + SCREEN *sp, + TERMINAL *termp) + { return(*(int *)0); } + #undef del_curterm int del_curterm( TERMINAL *termp) @@ -2456,26 +2995,56 @@ #undef _nc_prescreen NCURSES_PRESCREEN _nc_prescreen; +#undef _nc_screen_of +SCREEN *_nc_screen_of( + WINDOW *win) + { return(*(SCREEN **)0); } + /* ./tinfo/lib_has_cap.c */ +#undef has_ic_sp +NCURSES_BOOL has_ic_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef has_ic NCURSES_BOOL has_ic(void) { return(*(NCURSES_BOOL *)0); } +#undef has_il_sp +NCURSES_BOOL has_il_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef has_il NCURSES_BOOL has_il(void) { return(*(NCURSES_BOOL *)0); } /* ./tinfo/lib_kernel.c */ +#undef erasechar_sp +char erasechar_sp( + SCREEN *sp) + { return(*(char *)0); } + #undef erasechar char erasechar(void) { return(*(char *)0); } +#undef killchar_sp +char killchar_sp( + SCREEN *sp) + { return(*(char *)0); } + #undef killchar char killchar(void) { return(*(char *)0); } +#undef flushinp_sp +int flushinp_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef flushinp int flushinp(void) { return(*(int *)0); } @@ -2484,8 +3053,8 @@ struct kn { short offset; int code; }; -#undef _nc_keyname -char *_nc_keyname( +#undef keyname_sp +char *keyname_sp( SCREEN *sp, int c) { return(*(char **)0); } @@ -2505,6 +3074,12 @@ #include +#undef napms_sp +int napms_sp( + SCREEN *sp, + int ms) + { return(*(int *)0); } + #undef napms int napms( int ms) @@ -2524,6 +3099,12 @@ NCURSES_BOOL flag) { /* void */ } +#undef halfdelay_sp +int halfdelay_sp( + SCREEN *sp, + int t) + { return(*(int *)0); } + #undef halfdelay int halfdelay( int t) @@ -2559,21 +3140,52 @@ NCURSES_BOOL flag) { return(*(int *)0); } +#undef curs_set_sp +int curs_set_sp( + SCREEN *sp, + int vis) + { return(*(int *)0); } + #undef curs_set int curs_set( int vis) { return(*(int *)0); } +#undef typeahead_sp +int typeahead_sp( + SCREEN *sp, + int fd) + { return(*(int *)0); } + #undef typeahead int typeahead( int fd) { return(*(int *)0); } +#undef has_key_sp +int has_key_sp( + SCREEN *sp, + int keycode) + { return(*(int *)0); } + #undef has_key int has_key( int keycode) { return(*(int *)0); } +#undef _nc_putp_flush_sp +int _nc_putp_flush_sp( + SCREEN *sp, + const char *name, + const char *value) + { return(*(int *)0); } + +#undef _nc_putp_flush +int _nc_putp_flush( + const char *name, + const char *value) + { return(*(int *)0); } + #undef _nc_keypad int _nc_keypad( SCREEN *sp, @@ -2582,30 +3194,67 @@ /* ./tinfo/lib_raw.c */ +#undef raw_sp +int raw_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef raw int raw(void) { return(*(int *)0); } +#undef cbreak_sp +int cbreak_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef cbreak int cbreak(void) { return(*(int *)0); } +#undef qiflush_sp +void qiflush_sp( + SCREEN *sp) + { /* void */ } + #undef qiflush void qiflush(void) { /* void */ } +#undef noraw_sp +int noraw_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef noraw int noraw(void) { return(*(int *)0); } +#undef nocbreak_sp +int nocbreak_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef nocbreak int nocbreak(void) { return(*(int *)0); } +#undef noqiflush_sp +void noqiflush_sp( + SCREEN *sp) + { /* void */ } + #undef noqiflush void noqiflush(void) { /* void */ } +#undef intrflush_sp +int intrflush_sp( + SCREEN *sp, + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + #undef intrflush int intrflush( WINDOW *win, @@ -2627,6 +3276,12 @@ #undef TABSIZE int TABSIZE; +#undef set_tabsize_sp +int set_tabsize_sp( + SCREEN *sp, + int value) + { return(*(int *)0); } + #undef set_tabsize int set_tabsize( int value) @@ -2637,6 +3292,12 @@ SCREEN *sp) { return(*(int *)0); } +#undef use_env_sp +void use_env_sp( + SCREEN *sp, + NCURSES_BOOL f) + { /* void */ } + #undef use_env void use_env( NCURSES_BOOL f) @@ -2689,8 +3350,9 @@ #undef BC char *BC; -#undef tgetent -int tgetent( +#undef tgetent_sp +int tgetent_sp( + SCREEN *sp, char *bufp, const char *name) { return(*(int *)0); } @@ -2701,16 +3363,41 @@ #endif +#undef tgetent +int tgetent( + char *bufp, + const char *name) + { return(*(int *)0); } + +#undef tgetflag_sp +int tgetflag_sp( + SCREEN *sp, + char *id) + { return(*(int *)0); } + #undef tgetflag int tgetflag( char *id) { return(*(int *)0); } +#undef tgetnum_sp +int tgetnum_sp( + SCREEN *sp, + char *id) + { return(*(int *)0); } + #undef tgetnum int tgetnum( char *id) { return(*(int *)0); } +#undef tgetstr_sp +char *tgetstr_sp( + SCREEN *sp, + char *id, + char **area) + { return(*(char **)0); } + #undef tgetstr char *tgetstr( char *id, @@ -2719,6 +3406,11 @@ /* ./tinfo/lib_termname.c */ +#undef termname_sp +char *termname_sp( + SCREEN *sp) + { return(*(char **)0); } + #undef termname char *termname(void) { return(*(char **)0); } @@ -2734,16 +3426,34 @@ /* ./tinfo/lib_ti.c */ +#undef tigetflag_sp +int tigetflag_sp( + SCREEN *sp, + char *str) + { return(*(int *)0); } + #undef tigetflag int tigetflag( char *str) { return(*(int *)0); } +#undef tigetnum_sp +int tigetnum_sp( + SCREEN *sp, + char *str) + { return(*(int *)0); } + #undef tigetnum int tigetnum( char *str) { return(*(int *)0); } +#undef tigetstr_sp +char *tigetstr_sp( + SCREEN *sp, + char *str) + { return(*(char **)0); } + #undef tigetstr char *tigetstr( char *str) @@ -2781,25 +3491,75 @@ SCREEN *sp) { /* void */ } +#undef delay_output_sp +int delay_output_sp( + SCREEN *sp, + int ms) + { return(*(int *)0); } + #undef delay_output int delay_output( int ms) { return(*(int *)0); } +#undef _nc_flush_sp +void _nc_flush_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_flush void _nc_flush(void) { /* void */ } +#undef _nc_outch_sp +int _nc_outch_sp( + SCREEN *sp, + int ch) + { return(*(int *)0); } + #undef _nc_outch int _nc_outch( int ch) { return(*(int *)0); } +#undef putp_sp +int putp_sp( + SCREEN *sp, + const char *string) + { return(*(int *)0); } + +#undef _nc_putp_sp +int _nc_putp_sp( + SCREEN *sp, + const char *name, + const char *string) + { return(*(int *)0); } + #undef putp int putp( const char *string) { return(*(int *)0); } +#undef _nc_putp +int _nc_putp( + const char *name, + const char *string) + { return(*(int *)0); } + +#undef tputs_sp +int tputs_sp( + SCREEN *sp, + const char *string, + int affcnt, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + +#undef _nc_outc_wrapper +int _nc_outc_wrapper( + SCREEN *sp, + int c) + { return(*(int *)0); } + #undef tputs int tputs( const char *string, @@ -2944,36 +3704,78 @@ /* ./tinfo/lib_ttyflags.c */ +#undef _nc_get_tty_mode_sp +int _nc_get_tty_mode_sp( + SCREEN *sp, + struct termios *buf) + { return(*(int *)0); } + #undef _nc_get_tty_mode int _nc_get_tty_mode( struct termios *buf) { return(*(int *)0); } +#undef _nc_set_tty_mode_sp +int _nc_set_tty_mode_sp( + SCREEN *sp, + struct termios *buf) + { return(*(int *)0); } + #undef _nc_set_tty_mode int _nc_set_tty_mode( struct termios *buf) { return(*(int *)0); } +#undef def_shell_mode_sp +int def_shell_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef def_shell_mode int def_shell_mode(void) { return(*(int *)0); } +#undef def_prog_mode_sp +int def_prog_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef def_prog_mode int def_prog_mode(void) { return(*(int *)0); } +#undef reset_prog_mode_sp +int reset_prog_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef reset_prog_mode int reset_prog_mode(void) { return(*(int *)0); } +#undef reset_shell_mode_sp +int reset_shell_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef reset_shell_mode int reset_shell_mode(void) { return(*(int *)0); } +#undef savetty_sp +int savetty_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef savetty int savetty(void) { return(*(int *)0); } +#undef resetty_sp +int resetty_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef resetty int resetty(void) { return(*(int *)0); } @@ -3053,6 +3855,13 @@ /* ./tinfo/setbuf.c */ +#undef _nc_set_buffer_sp +void _nc_set_buffer_sp( + SCREEN *sp, + FILE *ofp, + NCURSES_BOOL buffered) + { /* void */ } + #undef _nc_set_buffer void _nc_set_buffer( FILE *ofp, @@ -3144,8 +3953,8 @@ /* ./unctrl.c */ -#undef _nc_unctrl -char *_nc_unctrl( +#undef unctrl_sp +char *unctrl_sp( SCREEN *sp, chtype ch) { return(*(char **)0); } @@ -3394,6 +4203,13 @@ /* ./base/define_key.c */ +#undef define_key_sp +int define_key_sp( + SCREEN *sp, + const char *str, + int keycode) + { return(*(int *)0); } + #undef define_key int define_key( const char *str, @@ -3408,6 +4224,12 @@ /* ./base/key_defined.c */ +#undef key_defined_sp +int key_defined_sp( + SCREEN *sp, + const char *str) + { return(*(int *)0); } + #undef key_defined int key_defined( const char *str) @@ -3415,6 +4237,13 @@ /* ./base/keybound.c */ +#undef keybound_sp +char *keybound_sp( + SCREEN *sp, + int code, + int count) + { return(*(char **)0); } + #undef keybound char *keybound( int code, @@ -3423,6 +4252,13 @@ /* ./base/keyok.c */ +#undef keyok_sp +int keyok_sp( + SCREEN *sp, + int c, + NCURSES_BOOL flag) + { return(*(int *)0); } + #undef keyok int keyok( int c, diff -Naur ncurses-5.7.orig/ncurses/llib-lncursest ncurses-5.7/ncurses/llib-lncursest --- ncurses-5.7.orig/ncurses/llib-lncursest 2008-10-11 14:13:13.000000000 -0700 +++ ncurses-5.7/ncurses/llib-lncursest 2009-09-12 08:51:49.000000000 -0700 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2008 Free Software Foundation, Inc. * + * Copyright (c) 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,7 +27,7 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 2008 * + * Author: Thomas E. Dickey 2008-on * ****************************************************************************/ /* LINTLIBRARY */ @@ -38,27 +38,54 @@ #undef _nc_oldnums int *_nc_oldnums; +#undef _nc_scroll_optimize_sp +void _nc_scroll_optimize_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_scroll_optimize void _nc_scroll_optimize(void) { /* void */ } +#undef _nc_linedump_sp +void _nc_linedump_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_linedump void _nc_linedump(void) { /* void */ } /* ./tty/hashmap.c */ -#include +#undef _nc_hash_map_sp +void _nc_hash_map_sp( + SCREEN *sp) + { /* void */ } #undef _nc_hash_map void _nc_hash_map(void) { /* void */ } +#undef _nc_make_oldhash_sp +void _nc_make_oldhash_sp( + SCREEN *sp, + int i) + { /* void */ } + #undef _nc_make_oldhash void _nc_make_oldhash( int i) { /* void */ } +#undef _nc_scroll_oldhash_sp +void _nc_scroll_oldhash_sp( + SCREEN *sp, + int n, + int top, + int bot) + { /* void */ } + #undef _nc_scroll_oldhash void _nc_scroll_oldhash( int n, @@ -112,6 +139,11 @@ /* ./base/lib_beep.c */ +#undef beep_sp +int beep_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef beep int beep(void) { return(*(int *)0); } @@ -187,6 +219,7 @@ /* ./base/lib_color.c */ +#include #include #undef _nc_COLOR_PAIRS @@ -197,14 +230,32 @@ int _nc_COLORS(void) { return(*(int *)0); } +#undef _nc_reset_colors_sp +NCURSES_BOOL _nc_reset_colors_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef _nc_reset_colors NCURSES_BOOL _nc_reset_colors(void) { return(*(NCURSES_BOOL *)0); } +#undef start_color_sp +int start_color_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef start_color int start_color(void) { return(*(int *)0); } +#undef init_pair_sp +int init_pair_sp( + SCREEN *sp, + short pair, + short f, + short b) + { return(*(int *)0); } + #undef init_pair int init_pair( short pair, @@ -212,6 +263,15 @@ short b) { return(*(int *)0); } +#undef init_color_sp +int init_color_sp( + SCREEN *sp, + short color, + short r, + short g, + short b) + { return(*(int *)0); } + #undef init_color int init_color( short color, @@ -220,14 +280,33 @@ short b) { return(*(int *)0); } +#undef can_change_color_sp +NCURSES_BOOL can_change_color_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef can_change_color NCURSES_BOOL can_change_color(void) { return(*(NCURSES_BOOL *)0); } +#undef has_colors_sp +NCURSES_BOOL has_colors_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef has_colors NCURSES_BOOL has_colors(void) { return(*(NCURSES_BOOL *)0); } +#undef color_content_sp +int color_content_sp( + SCREEN *sp, + short color, + short *r, + short *g, + short *b) + { return(*(int *)0); } + #undef color_content int color_content( short color, @@ -236,6 +315,14 @@ short *b) { return(*(int *)0); } +#undef pair_content_sp +int pair_content_sp( + SCREEN *sp, + short pair, + short *f, + short *b) + { return(*(int *)0); } + #undef pair_content int pair_content( short pair, @@ -243,13 +330,21 @@ short *b) { return(*(int *)0); } +#undef _nc_do_color_sp +void _nc_do_color_sp( + SCREEN *sp, + short old_pair, + short pair, + NCURSES_BOOL reverse, + NCURSES_OUTC_sp outc) + { /* void */ } + #undef _nc_do_color void _nc_do_color( short old_pair, short pair, NCURSES_BOOL reverse, - int (*outc)( - int p1)) + NCURSES_OUTC outc) { /* void */ } /* ./base/lib_colorset.c */ @@ -277,16 +372,31 @@ /* ./base/lib_echo.c */ +#undef echo_sp +int echo_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef echo int echo(void) { return(*(int *)0); } +#undef noecho_sp +int noecho_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef noecho int noecho(void) { return(*(int *)0); } /* ./base/lib_endwin.c */ +#undef endwin_sp +int endwin_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef endwin int endwin(void) { return(*(int *)0); } @@ -300,6 +410,11 @@ /* ./base/lib_flash.c */ +#undef flash_sp +int flash_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef flash int flash(void) { return(*(int *)0); } @@ -1138,10 +1253,21 @@ #include +#undef _nc_ptr_Escdelay +int *_nc_ptr_Escdelay( + SCREEN *sp) + { return(*(int **)0); } + #undef _nc_ESCDELAY int _nc_ESCDELAY(void) { return(*(int *)0); } +#undef set_escdelay_sp +int set_escdelay_sp( + SCREEN *sp, + int value) + { return(*(int *)0); } + #undef set_escdelay int set_escdelay( int value) @@ -1204,6 +1330,7 @@ #undef _nc_insert_ch int _nc_insert_ch( + SCREEN *sp, WINDOW *win, chtype ch) { return(*(int *)0); } @@ -1242,6 +1369,11 @@ /* ./base/lib_isendwin.c */ +#undef isendwin_sp +NCURSES_BOOL isendwin_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef isendwin NCURSES_BOOL isendwin(void) { return(*(NCURSES_BOOL *)0); } @@ -1256,16 +1388,35 @@ /* ./base/lib_mouse.c */ +#undef getmouse_sp +int getmouse_sp( + SCREEN *sp, + MEVENT *aevent) + { return(*(int *)0); } + #undef getmouse int getmouse( MEVENT *aevent) { return(*(int *)0); } +#undef ungetmouse_sp +int ungetmouse_sp( + SCREEN *sp, + MEVENT *aevent) + { return(*(int *)0); } + #undef ungetmouse int ungetmouse( MEVENT *aevent) { return(*(int *)0); } +#undef mousemask_sp +mmask_t mousemask_sp( + SCREEN *sp, + mmask_t newmask, + mmask_t *oldmask) + { return(*(mmask_t *)0); } + #undef mousemask mmask_t mousemask( mmask_t newmask, @@ -1279,14 +1430,30 @@ int x) { return(*(NCURSES_BOOL *)0); } +#undef mouseinterval_sp +int mouseinterval_sp( + SCREEN *sp, + int maxclick) + { return(*(int *)0); } + #undef mouseinterval int mouseinterval( int maxclick) { return(*(int *)0); } #undef _nc_has_mouse -int _nc_has_mouse(void) - { return(*(int *)0); } +NCURSES_BOOL _nc_has_mouse( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_mouse_sp +NCURSES_BOOL has_mouse_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_mouse +NCURSES_BOOL has_mouse(void) + { return(*(NCURSES_BOOL *)0); } #undef wmouse_trafo NCURSES_BOOL wmouse_trafo( @@ -1307,24 +1474,55 @@ /* ./tty/lib_mvcur.c */ +#undef _nc_msec_cost_sp +int _nc_msec_cost_sp( + SCREEN *sp, + const char *const cap, + int affcnt) + { return(*(int *)0); } + #undef _nc_msec_cost int _nc_msec_cost( const char *const cap, int affcnt) { return(*(int *)0); } +#undef _nc_mvcur_resume_sp +void _nc_mvcur_resume_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_mvcur_resume void _nc_mvcur_resume(void) { /* void */ } +#undef _nc_mvcur_init_sp +void _nc_mvcur_init_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_mvcur_init void _nc_mvcur_init(void) { /* void */ } +#undef _nc_mvcur_wrap_sp +void _nc_mvcur_wrap_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_mvcur_wrap void _nc_mvcur_wrap(void) { /* void */ } +#undef mvcur_sp +int mvcur_sp( + SCREEN *sp, + int yold, + int xold, + int ynew, + int xnew) + { return(*(int *)0); } + #undef mvcur int mvcur( int yold, @@ -1347,14 +1545,32 @@ /* ./base/lib_newterm.c */ +#undef filter_sp +void filter_sp( + SCREEN *sp) + { /* void */ } + #undef filter void filter(void) { /* void */ } +#undef nofilter_sp +void nofilter_sp( + SCREEN *sp) + { /* void */ } + #undef nofilter void nofilter(void) { /* void */ } +#undef newterm_sp +SCREEN *newterm_sp( + SCREEN *sp, + char *name, + FILE *ofp, + FILE *ifp) + { return(*(SCREEN **)0); } + #undef newterm SCREEN *newterm( char *name, @@ -1369,6 +1585,15 @@ WINDOW *win) { return(*(int *)0); } +#undef newwin_sp +WINDOW *newwin_sp( + SCREEN *sp, + int num_lines, + int num_columns, + int begy, + int begx) + { return(*(WINDOW **)0); } + #undef newwin WINDOW *newwin( int num_lines, @@ -1395,6 +1620,16 @@ int x) { return(*(WINDOW **)0); } +#undef _nc_makenew_sp +WINDOW *_nc_makenew_sp( + SCREEN *sp, + int num_lines, + int num_columns, + int begy, + int begx, + int flags) + { return(*(WINDOW **)0); } + #undef _nc_makenew WINDOW *_nc_makenew( int num_lines, @@ -1404,17 +1639,37 @@ int flags) { return(*(WINDOW **)0); } -#undef _nc_screen_of -SCREEN *_nc_screen_of( - WINDOW *win) - { return(*(SCREEN **)0); } +#undef _nc_curscr_of +WINDOW *_nc_curscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } + +#undef _nc_newscr_of +WINDOW *_nc_newscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } + +#undef _nc_stdscr_of +WINDOW *_nc_stdscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } /* ./base/lib_nl.c */ +#undef nl_sp +int nl_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef nl int nl(void) { return(*(int *)0); } +#undef nonl_sp +int nonl_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef nonl int nonl(void) { return(*(int *)0); } @@ -1448,6 +1703,13 @@ /* ./base/lib_pad.c */ +#undef newpad_sp +WINDOW *newpad_sp( + SCREEN *sp, + int l, + int c) + { return(*(WINDOW **)0); } + #undef newpad WINDOW *newpad( int l, @@ -1553,6 +1815,14 @@ /* ./base/lib_restart.c */ +#undef restartterm_sp +int restartterm_sp( + SCREEN *sp, + char *termp, + int filenum, + int *errret) + { return(*(int *)0); } + #undef restartterm int restartterm( char *termp, @@ -1601,6 +1871,12 @@ /* ./base/lib_screen.c */ +#undef getwin_sp +WINDOW *getwin_sp( + SCREEN *sp, + FILE *filep) + { return(*(WINDOW **)0); } + #undef getwin WINDOW *getwin( FILE *filep) @@ -1612,6 +1888,12 @@ FILE *filep) { return(*(int *)0); } +#undef scr_restore_sp +int scr_restore_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + #undef scr_restore int scr_restore( const char *file) @@ -1622,11 +1904,23 @@ const char *file) { return(*(int *)0); } +#undef scr_init_sp +int scr_init_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + #undef scr_init int scr_init( const char *file) { return(*(int *)0); } +#undef scr_set_sp +int scr_set_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + #undef scr_set int scr_set( const char *file) @@ -1687,6 +1981,15 @@ int slk_format) { return(*(int *)0); } +#undef _nc_ripoffline_sp +int _nc_ripoffline_sp( + SCREEN *sp, + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + #undef _nc_ripoffline int _nc_ripoffline( int line, @@ -1695,6 +1998,15 @@ int p2)) { return(*(int *)0); } +#undef ripoffline_sp +int ripoffline_sp( + SCREEN *sp, + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + #undef ripoffline int ripoffline( int line, @@ -1711,12 +2023,25 @@ int cols) { return(*(int *)0); } +#undef slk_restore_sp +int slk_restore_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_restore int slk_restore(void) { return(*(int *)0); } /* ./base/lib_slkatr_set.c */ +#undef slk_attr_set_sp +int slk_attr_set_sp( + SCREEN *sp, + const attr_t attr, + short color_pair_number, + void *opts) + { return(*(int *)0); } + #undef slk_attr_set int slk_attr_set( const attr_t attr, @@ -1726,6 +2051,12 @@ /* ./base/lib_slkatrof.c */ +#undef slk_attroff_sp +int slk_attroff_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + #undef slk_attroff int slk_attroff( const chtype attr) @@ -1733,6 +2064,12 @@ /* ./base/lib_slkatron.c */ +#undef slk_attron_sp +int slk_attron_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + #undef slk_attron int slk_attron( const chtype attr) @@ -1740,6 +2077,12 @@ /* ./base/lib_slkatrset.c */ +#undef slk_attrset_sp +int slk_attrset_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + #undef slk_attrset int slk_attrset( const chtype attr) @@ -1747,18 +2090,34 @@ /* ./base/lib_slkattr.c */ +#undef slk_attr_sp +attr_t slk_attr_sp( + SCREEN *sp) + { return(*(attr_t *)0); } + #undef slk_attr attr_t slk_attr(void) { return(*(attr_t *)0); } /* ./base/lib_slkclear.c */ +#undef slk_clear_sp +int slk_clear_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_clear int slk_clear(void) { return(*(int *)0); } /* ./base/lib_slkcolor.c */ +#undef slk_color_sp +int slk_color_sp( + SCREEN *sp, + short color_pair_number) + { return(*(int *)0); } + #undef slk_color int slk_color( short color_pair_number) @@ -1766,13 +2125,25 @@ /* ./base/lib_slkinit.c */ -#undef slk_init +#undef slk_init_sp +int slk_init_sp( + SCREEN *sp, + int format) + { return(*(int *)0); } + +#undef slk_init int slk_init( int format) { return(*(int *)0); } /* ./base/lib_slklab.c */ +#undef slk_label_sp +char *slk_label_sp( + SCREEN *sp, + int n) + { return(*(char **)0); } + #undef slk_label char *slk_label( int n) @@ -1780,16 +2151,34 @@ /* ./base/lib_slkrefr.c */ +#undef slk_noutrefresh_sp +int slk_noutrefresh_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_noutrefresh int slk_noutrefresh(void) { return(*(int *)0); } +#undef slk_refresh_sp +int slk_refresh_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_refresh int slk_refresh(void) { return(*(int *)0); } /* ./base/lib_slkset.c */ +#undef slk_set_sp +int slk_set_sp( + SCREEN *sp, + int i, + const char *astr, + int format) + { return(*(int *)0); } + #undef slk_set int slk_set( int i, @@ -1799,6 +2188,11 @@ /* ./base/lib_slktouch.c */ +#undef slk_touch_sp +int slk_touch_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_touch int slk_touch(void) { return(*(int *)0); } @@ -1861,8 +2255,8 @@ SCREEN *sp) { /* void */ } -#undef _nc_ungetch -int _nc_ungetch( +#undef ungetch_sp +int ungetch_sp( SCREEN *sp, int ch) { return(*(int *)0); } @@ -1874,11 +2268,23 @@ /* ./tty/lib_vidattr.c */ +#undef vidputs_sp +int vidputs_sp( + SCREEN *sp, + chtype newmode, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + #undef vidputs int vidputs( chtype newmode, - int (*outc)( - int p1)) + NCURSES_OUTC outc) + { return(*(int *)0); } + +#undef vidattr_sp +int vidattr_sp( + SCREEN *sp, + chtype newmode) { return(*(int *)0); } #undef vidattr @@ -1886,6 +2292,11 @@ chtype newmode) { return(*(int *)0); } +#undef termattrs_sp +chtype termattrs_sp( + SCREEN *sp) + { return(*(chtype *)0); } + #undef termattrs chtype termattrs(void) { return(*(chtype *)0); } @@ -1966,12 +2377,24 @@ /* ./base/nc_panel.c */ +#undef _nc_panelhook_sp +struct panelhook *_nc_panelhook_sp( + SCREEN *sp) + { return(*(struct panelhook **)0); } + #undef _nc_panelhook struct panelhook *_nc_panelhook(void) { return(*(struct panelhook **)0); } /* ./base/safe_sprintf.c */ +#undef _nc_printf_string_sp +char *_nc_printf_string_sp( + SCREEN *sp, + const char *fmt, + va_list ap) + { return(*(char **)0); } + #undef _nc_printf_string char *_nc_printf_string( const char *fmt, @@ -1983,10 +2406,24 @@ #include #include +#undef doupdate_sp +int doupdate_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef doupdate int doupdate(void) { return(*(int *)0); } +#undef _nc_scrolln_sp +int _nc_scrolln_sp( + SCREEN *sp, + int n, + int top, + int bot, + int maxy) + { return(*(int *)0); } + #undef _nc_scrolln int _nc_scrolln( int n, @@ -1995,18 +2432,39 @@ int maxy) { return(*(int *)0); } +#undef _nc_screen_resume_sp +void _nc_screen_resume_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_screen_resume void _nc_screen_resume(void) { /* void */ } +#undef _nc_screen_init_sp +void _nc_screen_init_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_screen_init void _nc_screen_init(void) { /* void */ } +#undef _nc_screen_wrap_sp +void _nc_screen_wrap_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_screen_wrap void _nc_screen_wrap(void) { /* void */ } +#undef _nc_do_xmc_glitch_sp +void _nc_do_xmc_glitch_sp( + SCREEN *sp, + attr_t previous) + { /* void */ } + #undef _nc_do_xmc_glitch void _nc_do_xmc_glitch( attr_t previous) @@ -2044,6 +2502,12 @@ void _nc_freeall(void) { /* void */ } +#undef _nc_free_and_exit_sp +void _nc_free_and_exit_sp( + SCREEN *sp, + int code) + { /* void */ } + #undef _nc_free_and_exit void _nc_free_and_exit( int code) @@ -2063,6 +2527,24 @@ attr_t at) { /* void */ } +#undef _nc_DelCharCost_sp +int _nc_DelCharCost_sp( + SCREEN *sp, + int count) + { return(*(int *)0); } + +#undef _nc_InsCharCost_sp +int _nc_InsCharCost_sp( + SCREEN *sp, + int count) + { return(*(int *)0); } + +#undef _nc_UpdateAttrs_sp +void _nc_UpdateAttrs_sp( + SCREEN *sp, + chtype c) + { /* void */ } + #undef _nc_DelCharCost int _nc_DelCharCost( int count) @@ -2080,6 +2562,12 @@ /* ./base/legacy_coding.c */ +#undef use_legacy_coding_sp +int use_legacy_coding_sp( + SCREEN *sp, + int level) + { return(*(int *)0); } + #undef use_legacy_coding int use_legacy_coding( int level) @@ -2087,10 +2575,22 @@ /* ./base/lib_dft_fgbg.c */ +#undef use_default_colors_sp +int use_default_colors_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef use_default_colors int use_default_colors(void) { return(*(int *)0); } +#undef assume_default_colors_sp +int assume_default_colors_sp( + SCREEN *sp, + int fg, + int bg) + { return(*(int *)0); } + #undef assume_default_colors int assume_default_colors( int fg, @@ -2099,6 +2599,13 @@ /* ./tinfo/lib_print.c */ +#undef mcprint_sp +int mcprint_sp( + SCREEN *sp, + char *data, + int len) + { return(*(int *)0); } + #undef mcprint int mcprint( char *data, @@ -2107,18 +2614,39 @@ /* ./base/resizeterm.c */ +#undef is_term_resized_sp +NCURSES_BOOL is_term_resized_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(NCURSES_BOOL *)0); } + #undef is_term_resized NCURSES_BOOL is_term_resized( int ToLines, int ToCols) { return(*(NCURSES_BOOL *)0); } +#undef resize_term_sp +int resize_term_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(int *)0); } + #undef resize_term int resize_term( int ToLines, int ToCols) { return(*(int *)0); } +#undef resizeterm_sp +int resizeterm_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(int *)0); } + #undef resizeterm int resizeterm( int ToLines, @@ -2408,6 +2936,11 @@ chtype *_nc_acs_map(void) { return(*(chtype **)0); } +#undef _nc_init_acs_sp +void _nc_init_acs_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_init_acs void _nc_init_acs(void) { /* void */ } @@ -2431,6 +2964,11 @@ int BaudRate) { return(*(int *)0); } +#undef baudrate_sp +int baudrate_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef baudrate int baudrate(void) { return(*(int *)0); } @@ -2446,6 +2984,12 @@ TERMINAL *termp) { return(*(TERMINAL **)0); } +#undef del_curterm_sp +int del_curterm_sp( + SCREEN *sp, + TERMINAL *termp) + { return(*(int *)0); } + #undef del_curterm int del_curterm( TERMINAL *termp) @@ -2474,6 +3018,11 @@ #undef _nc_prescreen NCURSES_PRESCREEN _nc_prescreen; +#undef _nc_screen_of +SCREEN *_nc_screen_of( + WINDOW *win) + { return(*(SCREEN **)0); } + #undef _nc_init_pthreads void _nc_init_pthreads(void) { /* void */ } @@ -2500,24 +3049,49 @@ /* ./tinfo/lib_has_cap.c */ +#undef has_ic_sp +NCURSES_BOOL has_ic_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef has_ic NCURSES_BOOL has_ic(void) { return(*(NCURSES_BOOL *)0); } +#undef has_il_sp +NCURSES_BOOL has_il_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef has_il NCURSES_BOOL has_il(void) { return(*(NCURSES_BOOL *)0); } /* ./tinfo/lib_kernel.c */ +#undef erasechar_sp +char erasechar_sp( + SCREEN *sp) + { return(*(char *)0); } + #undef erasechar char erasechar(void) { return(*(char *)0); } +#undef killchar_sp +char killchar_sp( + SCREEN *sp) + { return(*(char *)0); } + #undef killchar char killchar(void) { return(*(char *)0); } +#undef flushinp_sp +int flushinp_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef flushinp int flushinp(void) { return(*(int *)0); } @@ -2526,8 +3100,8 @@ struct kn { short offset; int code; }; -#undef _nc_keyname -char *_nc_keyname( +#undef keyname_sp +char *keyname_sp( SCREEN *sp, int c) { return(*(char **)0); } @@ -2539,12 +3113,23 @@ /* ./tinfo/lib_longname.c */ +#undef longname_sp +char *longname_sp( + SCREEN *sp) + { return(*(char **)0); } + #undef longname char *longname(void) { return(*(char **)0); } /* ./tinfo/lib_napms.c */ +#undef napms_sp +int napms_sp( + SCREEN *sp, + int ms) + { return(*(int *)0); } + #undef napms int napms( int ms) @@ -2564,6 +3149,12 @@ NCURSES_BOOL flag) { /* void */ } +#undef halfdelay_sp +int halfdelay_sp( + SCREEN *sp, + int t) + { return(*(int *)0); } + #undef halfdelay int halfdelay( int t) @@ -2599,21 +3190,52 @@ NCURSES_BOOL flag) { return(*(int *)0); } +#undef curs_set_sp +int curs_set_sp( + SCREEN *sp, + int vis) + { return(*(int *)0); } + #undef curs_set int curs_set( int vis) { return(*(int *)0); } +#undef typeahead_sp +int typeahead_sp( + SCREEN *sp, + int fd) + { return(*(int *)0); } + #undef typeahead int typeahead( int fd) { return(*(int *)0); } +#undef has_key_sp +int has_key_sp( + SCREEN *sp, + int keycode) + { return(*(int *)0); } + #undef has_key int has_key( int keycode) { return(*(int *)0); } +#undef _nc_putp_flush_sp +int _nc_putp_flush_sp( + SCREEN *sp, + const char *name, + const char *value) + { return(*(int *)0); } + +#undef _nc_putp_flush +int _nc_putp_flush( + const char *name, + const char *value) + { return(*(int *)0); } + #undef _nc_keypad int _nc_keypad( SCREEN *sp, @@ -2622,30 +3244,67 @@ /* ./tinfo/lib_raw.c */ +#undef raw_sp +int raw_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef raw int raw(void) { return(*(int *)0); } +#undef cbreak_sp +int cbreak_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef cbreak int cbreak(void) { return(*(int *)0); } +#undef qiflush_sp +void qiflush_sp( + SCREEN *sp) + { /* void */ } + #undef qiflush void qiflush(void) { /* void */ } +#undef noraw_sp +int noraw_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef noraw int noraw(void) { return(*(int *)0); } +#undef nocbreak_sp +int nocbreak_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef nocbreak int nocbreak(void) { return(*(int *)0); } +#undef noqiflush_sp +void noqiflush_sp( + SCREEN *sp) + { /* void */ } + #undef noqiflush void noqiflush(void) { /* void */ } +#undef intrflush_sp +int intrflush_sp( + SCREEN *sp, + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + #undef intrflush int intrflush( WINDOW *win, @@ -2663,7 +3322,8 @@ { return(*(char **)0); } #undef _nc_ptr_Lines -int *_nc_ptr_Lines(void) +int *_nc_ptr_Lines( + SCREEN *sp) { return(*(int **)0); } #undef _nc_LINES @@ -2671,17 +3331,29 @@ { return(*(int *)0); } #undef _nc_ptr_Cols -int *_nc_ptr_Cols(void) +int *_nc_ptr_Cols( + SCREEN *sp) { return(*(int **)0); } #undef _nc_COLS int _nc_COLS(void) { return(*(int *)0); } +#undef _nc_ptr_Tabsize +int *_nc_ptr_Tabsize( + SCREEN *sp) + { return(*(int **)0); } + #undef _nc_TABSIZE int _nc_TABSIZE(void) { return(*(int *)0); } +#undef set_tabsize_sp +int set_tabsize_sp( + SCREEN *sp, + int value) + { return(*(int *)0); } + #undef set_tabsize int set_tabsize( int value) @@ -2692,6 +3364,12 @@ SCREEN *sp) { return(*(int *)0); } +#undef use_env_sp +void use_env_sp( + SCREEN *sp, + NCURSES_BOOL f) + { /* void */ } + #undef use_env void use_env( NCURSES_BOOL f) @@ -2744,8 +3422,9 @@ #undef BC char *BC; -#undef tgetent -int tgetent( +#undef tgetent_sp +int tgetent_sp( + SCREEN *sp, char *bufp, const char *name) { return(*(int *)0); } @@ -2756,16 +3435,41 @@ #endif +#undef tgetent +int tgetent( + char *bufp, + const char *name) + { return(*(int *)0); } + +#undef tgetflag_sp +int tgetflag_sp( + SCREEN *sp, + char *id) + { return(*(int *)0); } + #undef tgetflag int tgetflag( char *id) { return(*(int *)0); } +#undef tgetnum_sp +int tgetnum_sp( + SCREEN *sp, + char *id) + { return(*(int *)0); } + #undef tgetnum int tgetnum( char *id) { return(*(int *)0); } +#undef tgetstr_sp +char *tgetstr_sp( + SCREEN *sp, + char *id, + char **area) + { return(*(char **)0); } + #undef tgetstr char *tgetstr( char *id, @@ -2774,6 +3478,11 @@ /* ./tinfo/lib_termname.c */ +#undef termname_sp +char *termname_sp( + SCREEN *sp) + { return(*(char **)0); } + #undef termname char *termname(void) { return(*(char **)0); } @@ -2789,16 +3498,34 @@ /* ./tinfo/lib_ti.c */ +#undef tigetflag_sp +int tigetflag_sp( + SCREEN *sp, + char *str) + { return(*(int *)0); } + #undef tigetflag int tigetflag( char *str) { return(*(int *)0); } +#undef tigetnum_sp +int tigetnum_sp( + SCREEN *sp, + char *str) + { return(*(int *)0); } + #undef tigetnum int tigetnum( char *str) { return(*(int *)0); } +#undef tigetstr_sp +char *tigetstr_sp( + SCREEN *sp, + char *str) + { return(*(char **)0); } + #undef tigetstr char *tigetstr( char *str) @@ -2836,25 +3563,75 @@ SCREEN *sp) { /* void */ } +#undef delay_output_sp +int delay_output_sp( + SCREEN *sp, + int ms) + { return(*(int *)0); } + #undef delay_output int delay_output( int ms) { return(*(int *)0); } +#undef _nc_flush_sp +void _nc_flush_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_flush void _nc_flush(void) { /* void */ } +#undef _nc_outch_sp +int _nc_outch_sp( + SCREEN *sp, + int ch) + { return(*(int *)0); } + #undef _nc_outch int _nc_outch( int ch) { return(*(int *)0); } +#undef putp_sp +int putp_sp( + SCREEN *sp, + const char *string) + { return(*(int *)0); } + +#undef _nc_putp_sp +int _nc_putp_sp( + SCREEN *sp, + const char *name, + const char *string) + { return(*(int *)0); } + #undef putp int putp( const char *string) { return(*(int *)0); } +#undef _nc_putp +int _nc_putp( + const char *name, + const char *string) + { return(*(int *)0); } + +#undef tputs_sp +int tputs_sp( + SCREEN *sp, + const char *string, + int affcnt, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + +#undef _nc_outc_wrapper +int _nc_outc_wrapper( + SCREEN *sp, + int c) + { return(*(int *)0); } + #undef tputs int tputs( const char *string, @@ -3024,36 +3801,78 @@ /* ./tinfo/lib_ttyflags.c */ +#undef _nc_get_tty_mode_sp +int _nc_get_tty_mode_sp( + SCREEN *sp, + struct termios *buf) + { return(*(int *)0); } + #undef _nc_get_tty_mode int _nc_get_tty_mode( struct termios *buf) { return(*(int *)0); } +#undef _nc_set_tty_mode_sp +int _nc_set_tty_mode_sp( + SCREEN *sp, + struct termios *buf) + { return(*(int *)0); } + #undef _nc_set_tty_mode int _nc_set_tty_mode( struct termios *buf) { return(*(int *)0); } +#undef def_shell_mode_sp +int def_shell_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef def_shell_mode int def_shell_mode(void) { return(*(int *)0); } +#undef def_prog_mode_sp +int def_prog_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef def_prog_mode int def_prog_mode(void) { return(*(int *)0); } +#undef reset_prog_mode_sp +int reset_prog_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef reset_prog_mode int reset_prog_mode(void) { return(*(int *)0); } +#undef reset_shell_mode_sp +int reset_shell_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef reset_shell_mode int reset_shell_mode(void) { return(*(int *)0); } +#undef savetty_sp +int savetty_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef savetty int savetty(void) { return(*(int *)0); } +#undef resetty_sp +int resetty_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef resetty int resetty(void) { return(*(int *)0); } @@ -3144,6 +3963,13 @@ /* ./tinfo/setbuf.c */ +#undef _nc_set_buffer_sp +void _nc_set_buffer_sp( + SCREEN *sp, + FILE *ofp, + NCURSES_BOOL buffered) + { /* void */ } + #undef _nc_set_buffer void _nc_set_buffer( FILE *ofp, @@ -3235,8 +4061,8 @@ /* ./unctrl.c */ -#undef _nc_unctrl -char *_nc_unctrl( +#undef unctrl_sp +char *unctrl_sp( SCREEN *sp, chtype ch) { return(*(char **)0); } @@ -3485,6 +4311,13 @@ /* ./base/define_key.c */ +#undef define_key_sp +int define_key_sp( + SCREEN *sp, + const char *str, + int keycode) + { return(*(int *)0); } + #undef define_key int define_key( const char *str, @@ -3499,6 +4332,12 @@ /* ./base/key_defined.c */ +#undef key_defined_sp +int key_defined_sp( + SCREEN *sp, + const char *str) + { return(*(int *)0); } + #undef key_defined int key_defined( const char *str) @@ -3506,6 +4345,13 @@ /* ./base/keybound.c */ +#undef keybound_sp +char *keybound_sp( + SCREEN *sp, + int code, + int count) + { return(*(char **)0); } + #undef keybound char *keybound( int code, @@ -3514,6 +4360,13 @@ /* ./base/keyok.c */ +#undef keyok_sp +int keyok_sp( + SCREEN *sp, + int c, + NCURSES_BOOL flag) + { return(*(int *)0); } + #undef keyok int keyok( int c, diff -Naur ncurses-5.7.orig/ncurses/llib-lncursestw ncurses-5.7/ncurses/llib-lncursestw --- ncurses-5.7.orig/ncurses/llib-lncursestw 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/ncurses/llib-lncursestw 2009-09-12 08:51:49.000000000 -0700 @@ -0,0 +1,5192 @@ +/**************************************************************************** + * 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 * + ****************************************************************************/ +/* LINTLIBRARY */ + +/* ./tty/hardscroll.c */ + +#include + +#undef _nc_oldnums +int *_nc_oldnums; + +#undef _nc_scroll_optimize_sp +void _nc_scroll_optimize_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_scroll_optimize +void _nc_scroll_optimize(void) + { /* void */ } + +#undef _nc_linedump_sp +void _nc_linedump_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_linedump +void _nc_linedump(void) + { /* void */ } + +/* ./tty/hashmap.c */ + +#undef _nc_hash_map_sp +void _nc_hash_map_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_hash_map +void _nc_hash_map(void) + { /* void */ } + +#undef _nc_make_oldhash_sp +void _nc_make_oldhash_sp( + SCREEN *sp, + int i) + { /* void */ } + +#undef _nc_make_oldhash +void _nc_make_oldhash( + int i) + { /* void */ } + +#undef _nc_scroll_oldhash_sp +void _nc_scroll_oldhash_sp( + SCREEN *sp, + int n, + int top, + int bot) + { /* void */ } + +#undef _nc_scroll_oldhash +void _nc_scroll_oldhash( + int n, + int top, + int bot) + { /* void */ } + +/* ./base/lib_addch.c */ + +#include + +#undef _nc_render +cchar_t _nc_render( + WINDOW *win, + cchar_t ch) + { return(*(cchar_t *)0); } + +#undef _nc_build_wch +int _nc_build_wch( + WINDOW *win, + cchar_t *ch) + { return(*(int *)0); } + +#undef _nc_waddch_nosync +int _nc_waddch_nosync( + WINDOW *win, + const cchar_t c) + { return(*(int *)0); } + +#undef waddch +int waddch( + WINDOW *win, + const chtype ch) + { return(*(int *)0); } + +#undef wechochar +int wechochar( + WINDOW *win, + const chtype ch) + { return(*(int *)0); } + +/* ./base/lib_addstr.c */ + +#undef waddnstr +int waddnstr( + WINDOW *win, + const char *astr, + int n) + { return(*(int *)0); } + +#undef waddchnstr +int waddchnstr( + WINDOW *win, + const chtype *astr, + int n) + { return(*(int *)0); } + +#undef _nc_wchstrlen +int _nc_wchstrlen( + const cchar_t *s) + { return(*(int *)0); } + +#undef wadd_wchnstr +int wadd_wchnstr( + WINDOW *win, + const cchar_t *astr, + int n) + { return(*(int *)0); } + +#undef waddnwstr +int waddnwstr( + WINDOW *win, + const wchar_t *str, + int n) + { return(*(int *)0); } + +/* ./base/lib_beep.c */ + +#undef beep_sp +int beep_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef beep +int beep(void) + { return(*(int *)0); } + +/* ./base/lib_bkgd.c */ + +#undef wbkgrndset +void wbkgrndset( + WINDOW *win, + const cchar_t *ch) + { /* void */ } + +#undef wbkgdset +void wbkgdset( + WINDOW *win, + chtype ch) + { /* void */ } + +#undef wbkgrnd +int wbkgrnd( + WINDOW *win, + const cchar_t *ch) + { return(*(int *)0); } + +#undef wbkgd +int wbkgd( + WINDOW *win, + chtype ch) + { return(*(int *)0); } + +/* ./base/lib_box.c */ + +#undef wborder +int wborder( + WINDOW *win, + chtype ls, + chtype rs, + chtype ts, + chtype bs, + chtype tl, + chtype tr, + chtype bl, + chtype br) + { return(*(int *)0); } + +/* ./base/lib_chgat.c */ + +#undef wchgat +int wchgat( + WINDOW *win, + int n, + attr_t attr, + short color, + const void *opts) + { return(*(int *)0); } + +/* ./base/lib_clear.c */ + +#undef wclear +int wclear( + WINDOW *win) + { return(*(int *)0); } + +/* ./base/lib_clearok.c */ + +#undef clearok +int clearok( + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + +/* ./base/lib_clrbot.c */ + +#undef wclrtobot +int wclrtobot( + WINDOW *win) + { return(*(int *)0); } + +/* ./base/lib_clreol.c */ + +#undef wclrtoeol +int wclrtoeol( + WINDOW *win) + { return(*(int *)0); } + +/* ./base/lib_color.c */ + +#include +#include + +#undef _nc_COLOR_PAIRS +int _nc_COLOR_PAIRS(void) + { return(*(int *)0); } + +#undef _nc_COLORS +int _nc_COLORS(void) + { return(*(int *)0); } + +#undef _nc_reset_colors_sp +NCURSES_BOOL _nc_reset_colors_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef _nc_reset_colors +NCURSES_BOOL _nc_reset_colors(void) + { return(*(NCURSES_BOOL *)0); } + +#undef start_color_sp +int start_color_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef start_color +int start_color(void) + { return(*(int *)0); } + +#undef init_pair_sp +int init_pair_sp( + SCREEN *sp, + short pair, + short f, + short b) + { return(*(int *)0); } + +#undef init_pair +int init_pair( + short pair, + short f, + short b) + { return(*(int *)0); } + +#undef init_color_sp +int init_color_sp( + SCREEN *sp, + short color, + short r, + short g, + short b) + { return(*(int *)0); } + +#undef init_color +int init_color( + short color, + short r, + short g, + short b) + { return(*(int *)0); } + +#undef can_change_color_sp +NCURSES_BOOL can_change_color_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef can_change_color +NCURSES_BOOL can_change_color(void) + { return(*(NCURSES_BOOL *)0); } + +#undef has_colors_sp +NCURSES_BOOL has_colors_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_colors +NCURSES_BOOL has_colors(void) + { return(*(NCURSES_BOOL *)0); } + +#undef color_content_sp +int color_content_sp( + SCREEN *sp, + short color, + short *r, + short *g, + short *b) + { return(*(int *)0); } + +#undef color_content +int color_content( + short color, + short *r, + short *g, + short *b) + { return(*(int *)0); } + +#undef pair_content_sp +int pair_content_sp( + SCREEN *sp, + short pair, + short *f, + short *b) + { return(*(int *)0); } + +#undef pair_content +int pair_content( + short pair, + short *f, + short *b) + { return(*(int *)0); } + +#undef _nc_do_color_sp +void _nc_do_color_sp( + SCREEN *sp, + short old_pair, + short pair, + NCURSES_BOOL reverse, + NCURSES_OUTC_sp outc) + { /* void */ } + +#undef _nc_do_color +void _nc_do_color( + short old_pair, + short pair, + NCURSES_BOOL reverse, + NCURSES_OUTC outc) + { /* void */ } + +/* ./base/lib_colorset.c */ + +#undef wcolor_set +int wcolor_set( + WINDOW *win, + short color_pair_number, + void *opts) + { return(*(int *)0); } + +/* ./base/lib_delch.c */ + +#undef wdelch +int wdelch( + WINDOW *win) + { return(*(int *)0); } + +/* ./base/lib_delwin.c */ + +#undef delwin +int delwin( + WINDOW *win) + { return(*(int *)0); } + +/* ./base/lib_echo.c */ + +#undef echo_sp +int echo_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef echo +int echo(void) + { return(*(int *)0); } + +#undef noecho_sp +int noecho_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef noecho +int noecho(void) + { return(*(int *)0); } + +/* ./base/lib_endwin.c */ + +#undef endwin_sp +int endwin_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef endwin +int endwin(void) + { return(*(int *)0); } + +/* ./base/lib_erase.c */ + +#undef werase +int werase( + WINDOW *win) + { return(*(int *)0); } + +/* ./base/lib_flash.c */ + +#undef flash_sp +int flash_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef flash +int flash(void) + { return(*(int *)0); } + +/* ./lib_gen.c */ + +#undef addch +int addch( + const chtype z) + { return(*(int *)0); } + +#undef addchnstr +int addchnstr( + const chtype *a1, + int z) + { return(*(int *)0); } + +#undef addchstr +int addchstr( + const chtype *z) + { return(*(int *)0); } + +#undef addnstr +int addnstr( + const char *a1, + int z) + { return(*(int *)0); } + +#undef addstr +int addstr( + const char *z) + { return(*(int *)0); } + +#undef attroff +int attroff( + NCURSES_ATTR_T z) + { return(*(int *)0); } + +#undef attron +int attron( + NCURSES_ATTR_T z) + { return(*(int *)0); } + +#undef attrset +int attrset( + NCURSES_ATTR_T z) + { return(*(int *)0); } + +#undef attr_get +int attr_get( + attr_t *a1, + short *a2, + void *z) + { return(*(int *)0); } + +#undef attr_off +int attr_off( + attr_t a1, + void *z) + { return(*(int *)0); } + +#undef attr_on +int attr_on( + attr_t a1, + void *z) + { return(*(int *)0); } + +#undef attr_set +int attr_set( + attr_t a1, + short a2, + void *z) + { return(*(int *)0); } + +#undef bkgd +int bkgd( + chtype z) + { return(*(int *)0); } + +#undef bkgdset +void bkgdset( + chtype z) + { /* void */ } + +#undef border +int border( + chtype a1, + chtype a2, + chtype a3, + chtype a4, + chtype a5, + chtype a6, + chtype a7, + chtype z) + { return(*(int *)0); } + +#undef box +int box( + WINDOW *a1, + chtype a2, + chtype z) + { return(*(int *)0); } + +#undef chgat +int chgat( + int a1, + attr_t a2, + short a3, + const void *z) + { return(*(int *)0); } + +#undef clear +int clear(void) + { return(*(int *)0); } + +#undef clrtobot +int clrtobot(void) + { return(*(int *)0); } + +#undef clrtoeol +int clrtoeol(void) + { return(*(int *)0); } + +#undef color_set +int color_set( + short a1, + void *z) + { return(*(int *)0); } + +#undef COLOR_PAIR +int COLOR_PAIR( + int z) + { return(*(int *)0); } + +#undef delch +int delch(void) + { return(*(int *)0); } + +#undef deleteln +int deleteln(void) + { return(*(int *)0); } + +#undef echochar +int echochar( + const chtype z) + { return(*(int *)0); } + +#undef erase +int erase(void) + { return(*(int *)0); } + +#undef getbkgd +chtype getbkgd( + WINDOW *z) + { return(*(chtype *)0); } + +#undef getch +int getch(void) + { return(*(int *)0); } + +#undef getnstr +int getnstr( + char *a1, + int z) + { return(*(int *)0); } + +#undef getstr +int getstr( + char *z) + { return(*(int *)0); } + +#undef hline +int hline( + chtype a1, + int z) + { return(*(int *)0); } + +#undef inch +chtype inch(void) + { return(*(chtype *)0); } + +#undef inchnstr +int inchnstr( + chtype *a1, + int z) + { return(*(int *)0); } + +#undef inchstr +int inchstr( + chtype *z) + { return(*(int *)0); } + +#undef innstr +int innstr( + char *a1, + int z) + { return(*(int *)0); } + +#undef insch +int insch( + chtype z) + { return(*(int *)0); } + +#undef insdelln +int insdelln( + int z) + { return(*(int *)0); } + +#undef insertln +int insertln(void) + { return(*(int *)0); } + +#undef insnstr +int insnstr( + const char *a1, + int z) + { return(*(int *)0); } + +#undef insstr +int insstr( + const char *z) + { return(*(int *)0); } + +#undef instr +int instr( + char *z) + { return(*(int *)0); } + +#undef move +int move( + int a1, + int z) + { return(*(int *)0); } + +#undef mvaddch +int mvaddch( + int a1, + int a2, + const chtype z) + { return(*(int *)0); } + +#undef mvaddchnstr +int mvaddchnstr( + int a1, + int a2, + const chtype *a3, + int z) + { return(*(int *)0); } + +#undef mvaddchstr +int mvaddchstr( + int a1, + int a2, + const chtype *z) + { return(*(int *)0); } + +#undef mvaddnstr +int mvaddnstr( + int a1, + int a2, + const char *a3, + int z) + { return(*(int *)0); } + +#undef mvaddstr +int mvaddstr( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + +#undef mvchgat +int mvchgat( + int a1, + int a2, + int a3, + attr_t a4, + short a5, + const void *z) + { return(*(int *)0); } + +#undef mvdelch +int mvdelch( + int a1, + int z) + { return(*(int *)0); } + +#undef mvgetch +int mvgetch( + int a1, + int z) + { return(*(int *)0); } + +#undef mvgetnstr +int mvgetnstr( + int a1, + int a2, + char *a3, + int z) + { return(*(int *)0); } + +#undef mvgetstr +int mvgetstr( + int a1, + int a2, + char *z) + { return(*(int *)0); } + +#undef mvhline +int mvhline( + int a1, + int a2, + chtype a3, + int z) + { return(*(int *)0); } + +#undef mvinch +chtype mvinch( + int a1, + int z) + { return(*(chtype *)0); } + +#undef mvinchnstr +int mvinchnstr( + int a1, + int a2, + chtype *a3, + int z) + { return(*(int *)0); } + +#undef mvinchstr +int mvinchstr( + int a1, + int a2, + chtype *z) + { return(*(int *)0); } + +#undef mvinnstr +int mvinnstr( + int a1, + int a2, + char *a3, + int z) + { return(*(int *)0); } + +#undef mvinsch +int mvinsch( + int a1, + int a2, + chtype z) + { return(*(int *)0); } + +#undef mvinsnstr +int mvinsnstr( + int a1, + int a2, + const char *a3, + int z) + { return(*(int *)0); } + +#undef mvinsstr +int mvinsstr( + int a1, + int a2, + const char *z) + { return(*(int *)0); } + +#undef mvinstr +int mvinstr( + int a1, + int a2, + char *z) + { return(*(int *)0); } + +#undef mvvline +int mvvline( + int a1, + int a2, + chtype a3, + int z) + { return(*(int *)0); } + +#undef mvwaddch +int mvwaddch( + WINDOW *a1, + int a2, + int a3, + const chtype z) + { return(*(int *)0); } + +#undef mvwaddchnstr +int mvwaddchnstr( + WINDOW *a1, + int a2, + int a3, + const chtype *a4, + int z) + { return(*(int *)0); } + +#undef mvwaddchstr +int mvwaddchstr( + WINDOW *a1, + int a2, + int a3, + const chtype *z) + { return(*(int *)0); } + +#undef mvwaddnstr +int mvwaddnstr( + WINDOW *a1, + int a2, + int a3, + const char *a4, + int z) + { return(*(int *)0); } + +#undef mvwaddstr +int mvwaddstr( + WINDOW *a1, + int a2, + int a3, + const char *z) + { return(*(int *)0); } + +#undef mvwchgat +int mvwchgat( + WINDOW *a1, + int a2, + int a3, + int a4, + attr_t a5, + short a6, + const void *z) + { return(*(int *)0); } + +#undef mvwdelch +int mvwdelch( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + +#undef mvwgetch +int mvwgetch( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + +#undef mvwgetnstr +int mvwgetnstr( + WINDOW *a1, + int a2, + int a3, + char *a4, + int z) + { return(*(int *)0); } + +#undef mvwgetstr +int mvwgetstr( + WINDOW *a1, + int a2, + int a3, + char *z) + { return(*(int *)0); } + +#undef mvwhline +int mvwhline( + WINDOW *a1, + int a2, + int a3, + chtype a4, + int z) + { return(*(int *)0); } + +#undef mvwinch +chtype mvwinch( + WINDOW *a1, + int a2, + int z) + { return(*(chtype *)0); } + +#undef mvwinchnstr +int mvwinchnstr( + WINDOW *a1, + int a2, + int a3, + chtype *a4, + int z) + { return(*(int *)0); } + +#undef mvwinchstr +int mvwinchstr( + WINDOW *a1, + int a2, + int a3, + chtype *z) + { return(*(int *)0); } + +#undef mvwinnstr +int mvwinnstr( + WINDOW *a1, + int a2, + int a3, + char *a4, + int z) + { return(*(int *)0); } + +#undef mvwinsch +int mvwinsch( + WINDOW *a1, + int a2, + int a3, + chtype z) + { return(*(int *)0); } + +#undef mvwinsnstr +int mvwinsnstr( + WINDOW *a1, + int a2, + int a3, + const char *a4, + int z) + { return(*(int *)0); } + +#undef mvwinsstr +int mvwinsstr( + WINDOW *a1, + int a2, + int a3, + const char *z) + { return(*(int *)0); } + +#undef mvwinstr +int mvwinstr( + WINDOW *a1, + int a2, + int a3, + char *z) + { return(*(int *)0); } + +#undef mvwvline +int mvwvline( + WINDOW *a1, + int a2, + int a3, + chtype a4, + int z) + { return(*(int *)0); } + +#undef PAIR_NUMBER +int PAIR_NUMBER( + int z) + { return(*(int *)0); } + +#undef redrawwin +int redrawwin( + WINDOW *z) + { return(*(int *)0); } + +#undef refresh +int refresh(void) + { return(*(int *)0); } + +#undef scrl +int scrl( + int z) + { return(*(int *)0); } + +#undef scroll +int scroll( + WINDOW *z) + { return(*(int *)0); } + +#undef setscrreg +int setscrreg( + int a1, + int z) + { return(*(int *)0); } + +#undef slk_attr_off +int slk_attr_off( + const attr_t a1, + void *z) + { return(*(int *)0); } + +#undef slk_attr_on +int slk_attr_on( + attr_t a1, + void *z) + { return(*(int *)0); } + +#undef standout +int standout(void) + { return(*(int *)0); } + +#undef standend +int standend(void) + { return(*(int *)0); } + +#undef timeout +void timeout( + int z) + { /* void */ } + +#undef touchline +int touchline( + WINDOW *a1, + int a2, + int z) + { return(*(int *)0); } + +#undef touchwin +int touchwin( + WINDOW *z) + { return(*(int *)0); } + +#undef untouchwin +int untouchwin( + WINDOW *z) + { return(*(int *)0); } + +#undef vline +int vline( + chtype a1, + int z) + { return(*(int *)0); } + +#undef vw_printw +int vw_printw( + WINDOW *a1, + const char *a2, + va_list z) + { return(*(int *)0); } + +#undef vw_scanw +int vw_scanw( + WINDOW *a1, + char *a2, + va_list z) + { return(*(int *)0); } + +#undef waddchstr +int waddchstr( + WINDOW *a1, + const chtype *z) + { return(*(int *)0); } + +#undef waddstr +int waddstr( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + +#undef wattron +int wattron( + WINDOW *a1, + int z) + { return(*(int *)0); } + +#undef wattroff +int wattroff( + WINDOW *a1, + int z) + { return(*(int *)0); } + +#undef wattrset +int wattrset( + WINDOW *a1, + int z) + { return(*(int *)0); } + +#undef wattr_get +int wattr_get( + WINDOW *a1, + attr_t *a2, + short *a3, + void *z) + { return(*(int *)0); } + +#undef wattr_set +int wattr_set( + WINDOW *a1, + attr_t a2, + short a3, + void *z) + { return(*(int *)0); } + +#undef wdeleteln +int wdeleteln( + WINDOW *z) + { return(*(int *)0); } + +#undef wgetstr +int wgetstr( + WINDOW *a1, + char *z) + { return(*(int *)0); } + +#undef winchstr +int winchstr( + WINDOW *a1, + chtype *z) + { return(*(int *)0); } + +#undef winsertln +int winsertln( + WINDOW *z) + { return(*(int *)0); } + +#undef winsstr +int winsstr( + WINDOW *a1, + const char *z) + { return(*(int *)0); } + +#undef winstr +int winstr( + WINDOW *a1, + char *z) + { return(*(int *)0); } + +#undef wstandout +int wstandout( + WINDOW *z) + { return(*(int *)0); } + +#undef wstandend +int wstandend( + WINDOW *z) + { return(*(int *)0); } + +#undef getattrs +int getattrs( + const WINDOW *z) + { return(*(int *)0); } + +#undef getcurx +int getcurx( + const WINDOW *z) + { return(*(int *)0); } + +#undef getcury +int getcury( + const WINDOW *z) + { return(*(int *)0); } + +#undef getbegx +int getbegx( + const WINDOW *z) + { return(*(int *)0); } + +#undef getbegy +int getbegy( + const WINDOW *z) + { return(*(int *)0); } + +#undef getmaxx +int getmaxx( + const WINDOW *z) + { return(*(int *)0); } + +#undef getmaxy +int getmaxy( + const WINDOW *z) + { return(*(int *)0); } + +#undef getparx +int getparx( + const WINDOW *z) + { return(*(int *)0); } + +#undef getpary +int getpary( + const WINDOW *z) + { return(*(int *)0); } + +#undef wgetparent +WINDOW *wgetparent( + const WINDOW *z) + { return(*(WINDOW **)0); } + +#undef is_cleared +NCURSES_BOOL is_cleared( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef is_idcok +NCURSES_BOOL is_idcok( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef is_idlok +NCURSES_BOOL is_idlok( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef is_immedok +NCURSES_BOOL is_immedok( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef is_keypad +NCURSES_BOOL is_keypad( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef is_leaveok +NCURSES_BOOL is_leaveok( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef is_nodelay +NCURSES_BOOL is_nodelay( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef is_notimeout +NCURSES_BOOL is_notimeout( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef is_scrollok +NCURSES_BOOL is_scrollok( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef is_syncok +NCURSES_BOOL is_syncok( + const WINDOW *z) + { return(*(NCURSES_BOOL *)0); } + +#undef wgetscrreg +int wgetscrreg( + const WINDOW *a1, + int *a2, + int *z) + { return(*(int *)0); } + +#undef add_wch +int add_wch( + const cchar_t *z) + { return(*(int *)0); } + +#undef add_wchnstr +int add_wchnstr( + const cchar_t *a1, + int z) + { return(*(int *)0); } + +#undef add_wchstr +int add_wchstr( + const cchar_t *z) + { return(*(int *)0); } + +#undef addnwstr +int addnwstr( + const wchar_t *a1, + int z) + { return(*(int *)0); } + +#undef addwstr +int addwstr( + const wchar_t *z) + { return(*(int *)0); } + +#undef bkgrnd +int bkgrnd( + const cchar_t *z) + { return(*(int *)0); } + +#undef bkgrndset +void bkgrndset( + const cchar_t *z) + { /* void */ } + +#undef border_set +int border_set( + const cchar_t *a1, + const cchar_t *a2, + const cchar_t *a3, + const cchar_t *a4, + const cchar_t *a5, + const cchar_t *a6, + const cchar_t *a7, + const cchar_t *z) + { return(*(int *)0); } + +#undef box_set +int box_set( + WINDOW *a1, + const cchar_t *a2, + const cchar_t *z) + { return(*(int *)0); } + +#undef echo_wchar +int echo_wchar( + const cchar_t *z) + { return(*(int *)0); } + +#undef get_wch +int get_wch( + wint_t *z) + { return(*(int *)0); } + +#undef get_wstr +int get_wstr( + wint_t *z) + { return(*(int *)0); } + +#undef getbkgrnd +int getbkgrnd( + cchar_t *z) + { return(*(int *)0); } + +#undef getn_wstr +int getn_wstr( + wint_t *a1, + int z) + { return(*(int *)0); } + +#undef hline_set +int hline_set( + const cchar_t *a1, + int z) + { return(*(int *)0); } + +#undef in_wch +int in_wch( + cchar_t *z) + { return(*(int *)0); } + +#undef in_wchnstr +int in_wchnstr( + cchar_t *a1, + int z) + { return(*(int *)0); } + +#undef in_wchstr +int in_wchstr( + cchar_t *z) + { return(*(int *)0); } + +#undef innwstr +int innwstr( + wchar_t *a1, + int z) + { return(*(int *)0); } + +#undef ins_nwstr +int ins_nwstr( + const wchar_t *a1, + int z) + { return(*(int *)0); } + +#undef ins_wch +int ins_wch( + const cchar_t *z) + { return(*(int *)0); } + +#undef ins_wstr +int ins_wstr( + const wchar_t *z) + { return(*(int *)0); } + +#undef inwstr +int inwstr( + wchar_t *z) + { return(*(int *)0); } + +#undef mvadd_wch +int mvadd_wch( + int a1, + int a2, + const cchar_t *z) + { return(*(int *)0); } + +#undef mvadd_wchnstr +int mvadd_wchnstr( + int a1, + int a2, + const cchar_t *a3, + int z) + { return(*(int *)0); } + +#undef mvadd_wchstr +int mvadd_wchstr( + int a1, + int a2, + const cchar_t *z) + { return(*(int *)0); } + +#undef mvaddnwstr +int mvaddnwstr( + int a1, + int a2, + const wchar_t *a3, + int z) + { return(*(int *)0); } + +#undef mvaddwstr +int mvaddwstr( + int a1, + int a2, + const wchar_t *z) + { return(*(int *)0); } + +#undef mvget_wch +int mvget_wch( + int a1, + int a2, + wint_t *z) + { return(*(int *)0); } + +#undef mvget_wstr +int mvget_wstr( + int a1, + int a2, + wint_t *z) + { return(*(int *)0); } + +#undef mvgetn_wstr +int mvgetn_wstr( + int a1, + int a2, + wint_t *a3, + int z) + { return(*(int *)0); } + +#undef mvhline_set +int mvhline_set( + int a1, + int a2, + const cchar_t *a3, + int z) + { return(*(int *)0); } + +#undef mvin_wch +int mvin_wch( + int a1, + int a2, + cchar_t *z) + { return(*(int *)0); } + +#undef mvin_wchnstr +int mvin_wchnstr( + int a1, + int a2, + cchar_t *a3, + int z) + { return(*(int *)0); } + +#undef mvin_wchstr +int mvin_wchstr( + int a1, + int a2, + cchar_t *z) + { return(*(int *)0); } + +#undef mvinnwstr +int mvinnwstr( + int a1, + int a2, + wchar_t *a3, + int z) + { return(*(int *)0); } + +#undef mvins_nwstr +int mvins_nwstr( + int a1, + int a2, + const wchar_t *a3, + int z) + { return(*(int *)0); } + +#undef mvins_wch +int mvins_wch( + int a1, + int a2, + const cchar_t *z) + { return(*(int *)0); } + +#undef mvins_wstr +int mvins_wstr( + int a1, + int a2, + const wchar_t *z) + { return(*(int *)0); } + +#undef mvinwstr +int mvinwstr( + int a1, + int a2, + wchar_t *z) + { return(*(int *)0); } + +#undef mvvline_set +int mvvline_set( + int a1, + int a2, + const cchar_t *a3, + int z) + { return(*(int *)0); } + +#undef mvwadd_wch +int mvwadd_wch( + WINDOW *a1, + int a2, + int a3, + const cchar_t *z) + { return(*(int *)0); } + +#undef mvwadd_wchnstr +int mvwadd_wchnstr( + WINDOW *a1, + int a2, + int a3, + const cchar_t *a4, + int z) + { return(*(int *)0); } + +#undef mvwadd_wchstr +int mvwadd_wchstr( + WINDOW *a1, + int a2, + int a3, + const cchar_t *z) + { return(*(int *)0); } + +#undef mvwaddnwstr +int mvwaddnwstr( + WINDOW *a1, + int a2, + int a3, + const wchar_t *a4, + int z) + { return(*(int *)0); } + +#undef mvwaddwstr +int mvwaddwstr( + WINDOW *a1, + int a2, + int a3, + const wchar_t *z) + { return(*(int *)0); } + +#undef mvwget_wch +int mvwget_wch( + WINDOW *a1, + int a2, + int a3, + wint_t *z) + { return(*(int *)0); } + +#undef mvwget_wstr +int mvwget_wstr( + WINDOW *a1, + int a2, + int a3, + wint_t *z) + { return(*(int *)0); } + +#undef mvwgetn_wstr +int mvwgetn_wstr( + WINDOW *a1, + int a2, + int a3, + wint_t *a4, + int z) + { return(*(int *)0); } + +#undef mvwhline_set +int mvwhline_set( + WINDOW *a1, + int a2, + int a3, + const cchar_t *a4, + int z) + { return(*(int *)0); } + +#undef mvwin_wch +int mvwin_wch( + WINDOW *a1, + int a2, + int a3, + cchar_t *z) + { return(*(int *)0); } + +#undef mvwin_wchnstr +int mvwin_wchnstr( + WINDOW *a1, + int a2, + int a3, + cchar_t *a4, + int z) + { return(*(int *)0); } + +#undef mvwin_wchstr +int mvwin_wchstr( + WINDOW *a1, + int a2, + int a3, + cchar_t *z) + { return(*(int *)0); } + +#undef mvwinnwstr +int mvwinnwstr( + WINDOW *a1, + int a2, + int a3, + wchar_t *a4, + int z) + { return(*(int *)0); } + +#undef mvwins_nwstr +int mvwins_nwstr( + WINDOW *a1, + int a2, + int a3, + const wchar_t *a4, + int z) + { return(*(int *)0); } + +#undef mvwins_wch +int mvwins_wch( + WINDOW *a1, + int a2, + int a3, + const cchar_t *z) + { return(*(int *)0); } + +#undef mvwins_wstr +int mvwins_wstr( + WINDOW *a1, + int a2, + int a3, + const wchar_t *z) + { return(*(int *)0); } + +#undef mvwinwstr +int mvwinwstr( + WINDOW *a1, + int a2, + int a3, + wchar_t *z) + { return(*(int *)0); } + +#undef mvwvline_set +int mvwvline_set( + WINDOW *a1, + int a2, + int a3, + const cchar_t *a4, + int z) + { return(*(int *)0); } + +#undef vline_set +int vline_set( + const cchar_t *a1, + int z) + { return(*(int *)0); } + +#undef wadd_wchstr +int wadd_wchstr( + WINDOW *a1, + const cchar_t *z) + { return(*(int *)0); } + +#undef waddwstr +int waddwstr( + WINDOW *a1, + const wchar_t *z) + { return(*(int *)0); } + +#undef wget_wstr +int wget_wstr( + WINDOW *a1, + wint_t *z) + { return(*(int *)0); } + +#undef wgetbkgrnd +int wgetbkgrnd( + WINDOW *a1, + cchar_t *z) + { return(*(int *)0); } + +#undef win_wchstr +int win_wchstr( + WINDOW *a1, + cchar_t *z) + { return(*(int *)0); } + +#undef wins_wstr +int wins_wstr( + WINDOW *a1, + const wchar_t *z) + { return(*(int *)0); } + +#undef mouse_trafo +NCURSES_BOOL mouse_trafo( + int *a1, + int *a2, + NCURSES_BOOL z) + { return(*(NCURSES_BOOL *)0); } + +/* ./base/lib_getch.c */ + +#include + +#undef _nc_ptr_Escdelay +int *_nc_ptr_Escdelay( + SCREEN *sp) + { return(*(int **)0); } + +#undef _nc_ESCDELAY +int _nc_ESCDELAY(void) + { return(*(int *)0); } + +#undef set_escdelay_sp +int set_escdelay_sp( + SCREEN *sp, + int value) + { return(*(int *)0); } + +#undef set_escdelay +int set_escdelay( + int value) + { return(*(int *)0); } + +#undef _nc_wgetch +int _nc_wgetch( + WINDOW *win, + unsigned long *result, + int use_meta) + { return(*(int *)0); } + +#undef wgetch +int wgetch( + WINDOW *win) + { return(*(int *)0); } + +/* ./base/lib_getstr.c */ + +#undef wgetnstr +int wgetnstr( + WINDOW *win, + char *str, + int maxlen) + { return(*(int *)0); } + +/* ./base/lib_hline.c */ + +#undef whline +int whline( + WINDOW *win, + chtype ch, + int n) + { return(*(int *)0); } + +/* ./base/lib_immedok.c */ + +#undef immedok +void immedok( + WINDOW *win, + NCURSES_BOOL flag) + { /* void */ } + +/* ./base/lib_inchstr.c */ + +#undef winchnstr +int winchnstr( + WINDOW *win, + chtype *str, + int n) + { return(*(int *)0); } + +/* ./base/lib_initscr.c */ + +#undef initscr +WINDOW *initscr(void) + { return(*(WINDOW **)0); } + +/* ./base/lib_insch.c */ + +#undef _nc_insert_ch +int _nc_insert_ch( + SCREEN *sp, + WINDOW *win, + chtype ch) + { return(*(int *)0); } + +#undef winsch +int winsch( + WINDOW *win, + chtype c) + { return(*(int *)0); } + +/* ./base/lib_insdel.c */ + +#undef winsdelln +int winsdelln( + WINDOW *win, + int n) + { return(*(int *)0); } + +/* ./base/lib_insnstr.c */ + +#undef winsnstr +int winsnstr( + WINDOW *win, + const char *s, + int n) + { return(*(int *)0); } + +/* ./base/lib_instr.c */ + +#undef winnstr +int winnstr( + WINDOW *win, + char *str, + int n) + { return(*(int *)0); } + +/* ./base/lib_isendwin.c */ + +#undef isendwin_sp +NCURSES_BOOL isendwin_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef isendwin +NCURSES_BOOL isendwin(void) + { return(*(NCURSES_BOOL *)0); } + +/* ./base/lib_leaveok.c */ + +#undef leaveok +int leaveok( + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + +/* ./base/lib_mouse.c */ + +#undef getmouse_sp +int getmouse_sp( + SCREEN *sp, + MEVENT *aevent) + { return(*(int *)0); } + +#undef getmouse +int getmouse( + MEVENT *aevent) + { return(*(int *)0); } + +#undef ungetmouse_sp +int ungetmouse_sp( + SCREEN *sp, + MEVENT *aevent) + { return(*(int *)0); } + +#undef ungetmouse +int ungetmouse( + MEVENT *aevent) + { return(*(int *)0); } + +#undef mousemask_sp +mmask_t mousemask_sp( + SCREEN *sp, + mmask_t newmask, + mmask_t *oldmask) + { return(*(mmask_t *)0); } + +#undef mousemask +mmask_t mousemask( + mmask_t newmask, + mmask_t *oldmask) + { return(*(mmask_t *)0); } + +#undef wenclose +NCURSES_BOOL wenclose( + const WINDOW *win, + int y, + int x) + { return(*(NCURSES_BOOL *)0); } + +#undef mouseinterval_sp +int mouseinterval_sp( + SCREEN *sp, + int maxclick) + { return(*(int *)0); } + +#undef mouseinterval +int mouseinterval( + int maxclick) + { return(*(int *)0); } + +#undef _nc_has_mouse +NCURSES_BOOL _nc_has_mouse( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_mouse_sp +NCURSES_BOOL has_mouse_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_mouse +NCURSES_BOOL has_mouse(void) + { return(*(NCURSES_BOOL *)0); } + +#undef wmouse_trafo +NCURSES_BOOL wmouse_trafo( + const WINDOW *win, + int *pY, + int *pX, + NCURSES_BOOL to_screen) + { return(*(NCURSES_BOOL *)0); } + +/* ./base/lib_move.c */ + +#undef wmove +int wmove( + WINDOW *win, + int y, + int x) + { return(*(int *)0); } + +/* ./tty/lib_mvcur.c */ + +#undef _nc_msec_cost_sp +int _nc_msec_cost_sp( + SCREEN *sp, + const char *const cap, + int affcnt) + { return(*(int *)0); } + +#undef _nc_msec_cost +int _nc_msec_cost( + const char *const cap, + int affcnt) + { return(*(int *)0); } + +#undef _nc_mvcur_resume_sp +void _nc_mvcur_resume_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_mvcur_resume +void _nc_mvcur_resume(void) + { /* void */ } + +#undef _nc_mvcur_init_sp +void _nc_mvcur_init_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_mvcur_init +void _nc_mvcur_init(void) + { /* void */ } + +#undef _nc_mvcur_wrap_sp +void _nc_mvcur_wrap_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_mvcur_wrap +void _nc_mvcur_wrap(void) + { /* void */ } + +#undef mvcur_sp +int mvcur_sp( + SCREEN *sp, + int yold, + int xold, + int ynew, + int xnew) + { return(*(int *)0); } + +#undef mvcur +int mvcur( + int yold, + int xold, + int ynew, + int xnew) + { return(*(int *)0); } + +#undef _nc_optimize_enable +int _nc_optimize_enable; + +/* ./base/lib_mvwin.c */ + +#undef mvwin +int mvwin( + WINDOW *win, + int by, + int bx) + { return(*(int *)0); } + +/* ./base/lib_newterm.c */ + +#undef filter_sp +void filter_sp( + SCREEN *sp) + { /* void */ } + +#undef filter +void filter(void) + { /* void */ } + +#undef nofilter_sp +void nofilter_sp( + SCREEN *sp) + { /* void */ } + +#undef nofilter +void nofilter(void) + { /* void */ } + +#undef newterm_sp +SCREEN *newterm_sp( + SCREEN *sp, + char *name, + FILE *ofp, + FILE *ifp) + { return(*(SCREEN **)0); } + +#undef newterm +SCREEN *newterm( + char *name, + FILE *ofp, + FILE *ifp) + { return(*(SCREEN **)0); } + +/* ./base/lib_newwin.c */ + +#undef _nc_freewin +int _nc_freewin( + WINDOW *win) + { return(*(int *)0); } + +#undef newwin_sp +WINDOW *newwin_sp( + SCREEN *sp, + int num_lines, + int num_columns, + int begy, + int begx) + { return(*(WINDOW **)0); } + +#undef newwin +WINDOW *newwin( + int num_lines, + int num_columns, + int begy, + int begx) + { return(*(WINDOW **)0); } + +#undef derwin +WINDOW *derwin( + WINDOW *orig, + int num_lines, + int num_columns, + int begy, + int begx) + { return(*(WINDOW **)0); } + +#undef subwin +WINDOW *subwin( + WINDOW *w, + int l, + int c, + int y, + int x) + { return(*(WINDOW **)0); } + +#undef _nc_makenew_sp +WINDOW *_nc_makenew_sp( + SCREEN *sp, + int num_lines, + int num_columns, + int begy, + int begx, + int flags) + { return(*(WINDOW **)0); } + +#undef _nc_makenew +WINDOW *_nc_makenew( + int num_lines, + int num_columns, + int begy, + int begx, + int flags) + { return(*(WINDOW **)0); } + +#undef _nc_curscr_of +WINDOW *_nc_curscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } + +#undef _nc_newscr_of +WINDOW *_nc_newscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } + +#undef _nc_stdscr_of +WINDOW *_nc_stdscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } + +/* ./base/lib_nl.c */ + +#undef nl_sp +int nl_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef nl +int nl(void) + { return(*(int *)0); } + +#undef nonl_sp +int nonl_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef nonl +int nonl(void) + { return(*(int *)0); } + +/* ./base/lib_overlay.c */ + +#undef overlay +int overlay( + const WINDOW *win1, + WINDOW *win2) + { return(*(int *)0); } + +#undef overwrite +int overwrite( + const WINDOW *win1, + WINDOW *win2) + { return(*(int *)0); } + +#undef copywin +int copywin( + const WINDOW *src, + WINDOW *dst, + int sminrow, + int smincol, + int dminrow, + int dmincol, + int dmaxrow, + int dmaxcol, + int over) + { return(*(int *)0); } + +/* ./base/lib_pad.c */ + +#undef newpad_sp +WINDOW *newpad_sp( + SCREEN *sp, + int l, + int c) + { return(*(WINDOW **)0); } + +#undef newpad +WINDOW *newpad( + int l, + int c) + { return(*(WINDOW **)0); } + +#undef subpad +WINDOW *subpad( + WINDOW *orig, + int l, + int c, + int begy, + int begx) + { return(*(WINDOW **)0); } + +#undef prefresh +int prefresh( + WINDOW *win, + int pminrow, + int pmincol, + int sminrow, + int smincol, + int smaxrow, + int smaxcol) + { return(*(int *)0); } + +#undef pnoutrefresh +int pnoutrefresh( + WINDOW *win, + int pminrow, + int pmincol, + int sminrow, + int smincol, + int smaxrow, + int smaxcol) + { return(*(int *)0); } + +#undef pechochar +int pechochar( + WINDOW *pad, + const chtype ch) + { return(*(int *)0); } + +/* ./base/lib_printw.c */ + +#undef printw +int printw( + const char *fmt, + ...) + { return(*(int *)0); } + +#undef wprintw +int wprintw( + WINDOW *win, + const char *fmt, + ...) + { return(*(int *)0); } + +#undef mvprintw +int mvprintw( + int y, + int x, + const char *fmt, + ...) + { return(*(int *)0); } + +#undef mvwprintw +int mvwprintw( + WINDOW *win, + int y, + int x, + const char *fmt, + ...) + { return(*(int *)0); } + +#undef vwprintw +int vwprintw( + WINDOW *win, + const char *fmt, + va_list argp) + { return(*(int *)0); } + +/* ./base/lib_redrawln.c */ + +#undef wredrawln +int wredrawln( + WINDOW *win, + int beg, + int num) + { return(*(int *)0); } + +/* ./base/lib_refresh.c */ + +#undef wrefresh +int wrefresh( + WINDOW *win) + { return(*(int *)0); } + +#undef wnoutrefresh +int wnoutrefresh( + WINDOW *win) + { return(*(int *)0); } + +/* ./base/lib_restart.c */ + +#undef restartterm_sp +int restartterm_sp( + SCREEN *sp, + char *termp, + int filenum, + int *errret) + { return(*(int *)0); } + +#undef restartterm +int restartterm( + char *termp, + int filenum, + int *errret) + { return(*(int *)0); } + +/* ./base/lib_scanw.c */ + +#undef vwscanw +int vwscanw( + WINDOW *win, + char *fmt, + va_list argp) + { return(*(int *)0); } + +#undef scanw +int scanw( + char *fmt, + ...) + { return(*(int *)0); } + +#undef wscanw +int wscanw( + WINDOW *win, + char *fmt, + ...) + { return(*(int *)0); } + +#undef mvscanw +int mvscanw( + int y, + int x, + char *fmt, + ...) + { return(*(int *)0); } + +#undef mvwscanw +int mvwscanw( + WINDOW *win, + int y, + int x, + char *fmt, + ...) + { return(*(int *)0); } + +/* ./base/lib_screen.c */ + +#undef getwin_sp +WINDOW *getwin_sp( + SCREEN *sp, + FILE *filep) + { return(*(WINDOW **)0); } + +#undef getwin +WINDOW *getwin( + FILE *filep) + { return(*(WINDOW **)0); } + +#undef putwin +int putwin( + WINDOW *win, + FILE *filep) + { return(*(int *)0); } + +#undef scr_restore_sp +int scr_restore_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + +#undef scr_restore +int scr_restore( + const char *file) + { return(*(int *)0); } + +#undef scr_dump +int scr_dump( + const char *file) + { return(*(int *)0); } + +#undef scr_init_sp +int scr_init_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + +#undef scr_init +int scr_init( + const char *file) + { return(*(int *)0); } + +#undef scr_set_sp +int scr_set_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + +#undef scr_set +int scr_set( + const char *file) + { return(*(int *)0); } + +/* ./base/lib_scroll.c */ + +#undef _nc_scroll_window +void _nc_scroll_window( + WINDOW *win, + int const n, + int const top, + int const bottom, + cchar_t blank) + { /* void */ } + +#undef wscrl +int wscrl( + WINDOW *win, + int n) + { return(*(int *)0); } + +/* ./base/lib_scrollok.c */ + +#undef scrollok +int scrollok( + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + +/* ./base/lib_scrreg.c */ + +#undef wsetscrreg +int wsetscrreg( + WINDOW *win, + int top, + int bottom) + { return(*(int *)0); } + +/* ./base/lib_set_term.c */ + +#undef set_term +SCREEN *set_term( + SCREEN *screenp) + { return(*(SCREEN **)0); } + +#undef delscreen +void delscreen( + SCREEN *sp) + { /* void */ } + +#undef _nc_setupscreen +int _nc_setupscreen( + int slines, + int scolumns, + FILE *output, + NCURSES_BOOL filtered, + int slk_format) + { return(*(int *)0); } + +#undef _nc_ripoffline_sp +int _nc_ripoffline_sp( + SCREEN *sp, + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + +#undef _nc_ripoffline +int _nc_ripoffline( + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + +#undef ripoffline_sp +int ripoffline_sp( + SCREEN *sp, + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + +#undef ripoffline +int ripoffline( + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + +/* ./base/lib_slk.c */ + +#undef _nc_slk_initialize +int _nc_slk_initialize( + WINDOW *stwin, + int cols) + { return(*(int *)0); } + +#undef slk_restore_sp +int slk_restore_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef slk_restore +int slk_restore(void) + { return(*(int *)0); } + +/* ./base/lib_slkatr_set.c */ + +#undef slk_attr_set_sp +int slk_attr_set_sp( + SCREEN *sp, + const attr_t attr, + short color_pair_number, + void *opts) + { return(*(int *)0); } + +#undef slk_attr_set +int slk_attr_set( + const attr_t attr, + short color_pair_number, + void *opts) + { return(*(int *)0); } + +/* ./base/lib_slkatrof.c */ + +#undef slk_attroff_sp +int slk_attroff_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + +#undef slk_attroff +int slk_attroff( + const chtype attr) + { return(*(int *)0); } + +/* ./base/lib_slkatron.c */ + +#undef slk_attron_sp +int slk_attron_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + +#undef slk_attron +int slk_attron( + const chtype attr) + { return(*(int *)0); } + +/* ./base/lib_slkatrset.c */ + +#undef slk_attrset_sp +int slk_attrset_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + +#undef slk_attrset +int slk_attrset( + const chtype attr) + { return(*(int *)0); } + +/* ./base/lib_slkattr.c */ + +#undef slk_attr_sp +attr_t slk_attr_sp( + SCREEN *sp) + { return(*(attr_t *)0); } + +#undef slk_attr +attr_t slk_attr(void) + { return(*(attr_t *)0); } + +/* ./base/lib_slkclear.c */ + +#undef slk_clear_sp +int slk_clear_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef slk_clear +int slk_clear(void) + { return(*(int *)0); } + +/* ./base/lib_slkcolor.c */ + +#undef slk_color_sp +int slk_color_sp( + SCREEN *sp, + short color_pair_number) + { return(*(int *)0); } + +#undef slk_color +int slk_color( + short color_pair_number) + { return(*(int *)0); } + +/* ./base/lib_slkinit.c */ + +#undef slk_init_sp +int slk_init_sp( + SCREEN *sp, + int format) + { return(*(int *)0); } + +#undef slk_init +int slk_init( + int format) + { return(*(int *)0); } + +/* ./base/lib_slklab.c */ + +#undef slk_label_sp +char *slk_label_sp( + SCREEN *sp, + int n) + { return(*(char **)0); } + +#undef slk_label +char *slk_label( + int n) + { return(*(char **)0); } + +/* ./base/lib_slkrefr.c */ + +#undef slk_noutrefresh_sp +int slk_noutrefresh_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef slk_noutrefresh +int slk_noutrefresh(void) + { return(*(int *)0); } + +#undef slk_refresh_sp +int slk_refresh_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef slk_refresh +int slk_refresh(void) + { return(*(int *)0); } + +/* ./base/lib_slkset.c */ + +#include + +#undef slk_set_sp +int slk_set_sp( + SCREEN *sp, + int i, + const char *astr, + int format) + { return(*(int *)0); } + +#undef slk_set +int slk_set( + int i, + const char *astr, + int format) + { return(*(int *)0); } + +/* ./base/lib_slktouch.c */ + +#undef slk_touch_sp +int slk_touch_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef slk_touch +int slk_touch(void) + { return(*(int *)0); } + +/* ./base/lib_touch.c */ + +#undef is_linetouched +NCURSES_BOOL is_linetouched( + WINDOW *win, + int line) + { return(*(NCURSES_BOOL *)0); } + +#undef is_wintouched +NCURSES_BOOL is_wintouched( + WINDOW *win) + { return(*(NCURSES_BOOL *)0); } + +#undef wtouchln +int wtouchln( + WINDOW *win, + int y, + int n, + int changed) + { return(*(int *)0); } + +/* ./trace/lib_tracedmp.c */ + +#undef _tracedump +void _tracedump( + const char *name, + WINDOW *win) + { /* void */ } + +/* ./trace/lib_tracemse.c */ + +#undef _nc_tracemouse +char *_nc_tracemouse( + SCREEN *sp, + MEVENT const *ep) + { return(*(char **)0); } + +#undef _tracemouse +char *_tracemouse( + MEVENT const *ep) + { return(*(char **)0); } + +/* ./tty/lib_tstp.c */ + +#include + +#undef _nc_signal_handler +void _nc_signal_handler( + NCURSES_BOOL enable) + { /* void */ } + +/* ./base/lib_ungetch.c */ + +#undef _nc_fifo_dump +void _nc_fifo_dump( + SCREEN *sp) + { /* void */ } + +#undef ungetch_sp +int ungetch_sp( + SCREEN *sp, + int ch) + { return(*(int *)0); } + +#undef ungetch +int ungetch( + int ch) + { return(*(int *)0); } + +/* ./tty/lib_vidattr.c */ + +#undef vidputs_sp +int vidputs_sp( + SCREEN *sp, + chtype newmode, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + +#undef vidputs +int vidputs( + chtype newmode, + NCURSES_OUTC outc) + { return(*(int *)0); } + +#undef vidattr_sp +int vidattr_sp( + SCREEN *sp, + chtype newmode) + { return(*(int *)0); } + +#undef vidattr +int vidattr( + chtype newmode) + { return(*(int *)0); } + +#undef termattrs_sp +chtype termattrs_sp( + SCREEN *sp) + { return(*(chtype *)0); } + +#undef termattrs +chtype termattrs(void) + { return(*(chtype *)0); } + +/* ./base/lib_vline.c */ + +#undef wvline +int wvline( + WINDOW *win, + chtype ch, + int n) + { return(*(int *)0); } + +/* ./base/lib_wattroff.c */ + +#undef wattr_off +int wattr_off( + WINDOW *win, + attr_t at, + void *opts) + { return(*(int *)0); } + +/* ./base/lib_wattron.c */ + +#undef wattr_on +int wattr_on( + WINDOW *win, + attr_t at, + void *opts) + { return(*(int *)0); } + +/* ./base/lib_winch.c */ + +#undef winch +chtype winch( + WINDOW *win) + { return(*(chtype *)0); } + +/* ./base/lib_window.c */ + +#undef _nc_synchook +void _nc_synchook( + WINDOW *win) + { /* void */ } + +#undef mvderwin +int mvderwin( + WINDOW *win, + int y, + int x) + { return(*(int *)0); } + +#undef syncok +int syncok( + WINDOW *win, + NCURSES_BOOL bf) + { return(*(int *)0); } + +#undef wsyncup +void wsyncup( + WINDOW *win) + { /* void */ } + +#undef wsyncdown +void wsyncdown( + WINDOW *win) + { /* void */ } + +#undef wcursyncup +void wcursyncup( + WINDOW *win) + { /* void */ } + +#undef dupwin +WINDOW *dupwin( + WINDOW *win) + { return(*(WINDOW **)0); } + +/* ./base/nc_panel.c */ + +#undef _nc_panelhook_sp +struct panelhook *_nc_panelhook_sp( + SCREEN *sp) + { return(*(struct panelhook **)0); } + +#undef _nc_panelhook +struct panelhook *_nc_panelhook(void) + { return(*(struct panelhook **)0); } + +/* ./base/safe_sprintf.c */ + +#undef _nc_printf_string_sp +char *_nc_printf_string_sp( + SCREEN *sp, + const char *fmt, + va_list ap) + { return(*(char **)0); } + +#undef _nc_printf_string +char *_nc_printf_string( + const char *fmt, + va_list ap) + { return(*(char **)0); } + +/* ./tty/tty_update.c */ + +#include +#include + +#undef doupdate_sp +int doupdate_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef doupdate +int doupdate(void) + { return(*(int *)0); } + +#undef _nc_scrolln_sp +int _nc_scrolln_sp( + SCREEN *sp, + int n, + int top, + int bot, + int maxy) + { return(*(int *)0); } + +#undef _nc_scrolln +int _nc_scrolln( + int n, + int top, + int bot, + int maxy) + { return(*(int *)0); } + +#undef _nc_screen_resume_sp +void _nc_screen_resume_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_screen_resume +void _nc_screen_resume(void) + { /* void */ } + +#undef _nc_screen_init_sp +void _nc_screen_init_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_screen_init +void _nc_screen_init(void) + { /* void */ } + +#undef _nc_screen_wrap_sp +void _nc_screen_wrap_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_screen_wrap +void _nc_screen_wrap(void) + { /* void */ } + +#undef _nc_do_xmc_glitch_sp +void _nc_do_xmc_glitch_sp( + SCREEN *sp, + attr_t previous) + { /* void */ } + +#undef _nc_do_xmc_glitch +void _nc_do_xmc_glitch( + attr_t previous) + { /* void */ } + +/* ./trace/varargs.c */ + +typedef enum { + atUnknown = 0, atInteger, atFloat, atPoint, atString +} ARGTYPE; + +#undef _nc_varargs +char *_nc_varargs( + const char *fmt, + va_list ap) + { return(*(char **)0); } + +/* ./base/memmove.c */ + +#undef _nc_memmove +void _nc_memmove(void) + { /* void */ } + +/* ./base/vsscanf.c */ + +#undef _nc_vsscanf +void _nc_vsscanf(void) + { /* void */ } + +/* ./base/lib_freeall.c */ + +#include + +#undef _nc_freeall +void _nc_freeall(void) + { /* void */ } + +#undef _nc_free_and_exit_sp +void _nc_free_and_exit_sp( + SCREEN *sp, + int code) + { /* void */ } + +#undef _nc_free_and_exit +void _nc_free_and_exit( + int code) + { /* void */ } + +/* ./widechar/charable.c */ + +#undef _nc_is_charable +NCURSES_BOOL _nc_is_charable( + wchar_t ch) + { return(*(NCURSES_BOOL *)0); } + +#undef _nc_to_char +int _nc_to_char( + wint_t ch) + { return(*(int *)0); } + +#undef _nc_to_widechar +wint_t _nc_to_widechar( + int ch) + { return(*(wint_t *)0); } + +/* ./widechar/lib_add_wch.c */ + +#undef wadd_wch +int wadd_wch( + WINDOW *win, + const cchar_t *wch) + { return(*(int *)0); } + +#undef wecho_wchar +int wecho_wchar( + WINDOW *win, + const cchar_t *wch) + { return(*(int *)0); } + +/* ./widechar/lib_box_set.c */ + +#undef wborder_set +int wborder_set( + WINDOW *win, + const cchar_t *ls, + const cchar_t *rs, + const cchar_t *ts, + const cchar_t *bs, + const cchar_t *tl, + const cchar_t *tr, + const cchar_t *bl, + const cchar_t *br) + { return(*(int *)0); } + +/* ./widechar/lib_cchar.c */ + +#undef setcchar +int setcchar( + cchar_t *wcval, + const wchar_t *wch, + const attr_t attrs, + short color_pair, + const void *opts) + { return(*(int *)0); } + +#undef getcchar +int getcchar( + const cchar_t *wcval, + wchar_t *wch, + attr_t *attrs, + short *color_pair, + void *opts) + { return(*(int *)0); } + +/* ./widechar/lib_erasewchar.c */ + +#undef erasewchar +int erasewchar( + wchar_t *wch) + { return(*(int *)0); } + +#undef killwchar +int killwchar( + wchar_t *wch) + { return(*(int *)0); } + +/* ./widechar/lib_get_wch.c */ + +#undef wget_wch +int wget_wch( + WINDOW *win, + wint_t *result) + { return(*(int *)0); } + +/* ./widechar/lib_get_wstr.c */ + +#undef wgetn_wstr +int wgetn_wstr( + WINDOW *win, + wint_t *str, + int maxlen) + { return(*(int *)0); } + +/* ./widechar/lib_hline_set.c */ + +#undef whline_set +int whline_set( + WINDOW *win, + const cchar_t *ch, + int n) + { return(*(int *)0); } + +/* ./widechar/lib_in_wch.c */ + +#undef win_wch +int win_wch( + WINDOW *win, + cchar_t *wcval) + { return(*(int *)0); } + +/* ./widechar/lib_in_wchnstr.c */ + +#undef win_wchnstr +int win_wchnstr( + WINDOW *win, + cchar_t *wchstr, + int n) + { return(*(int *)0); } + +/* ./widechar/lib_ins_wch.c */ + +#undef wins_wch +int wins_wch( + WINDOW *win, + const cchar_t *wch) + { return(*(int *)0); } + +#undef wins_nwstr +int wins_nwstr( + WINDOW *win, + const wchar_t *wstr, + int n) + { return(*(int *)0); } + +/* ./widechar/lib_inwstr.c */ + +#undef winnwstr +int winnwstr( + WINDOW *win, + wchar_t *wstr, + int n) + { return(*(int *)0); } + +#undef winwstr +int winwstr( + WINDOW *win, + wchar_t *wstr) + { return(*(int *)0); } + +/* ./widechar/lib_key_name.c */ + +#undef key_name +char *key_name( + wchar_t c) + { return(*(char **)0); } + +/* ./widechar/lib_pecho_wchar.c */ + +#undef pecho_wchar +int pecho_wchar( + WINDOW *pad, + const cchar_t *wch) + { return(*(int *)0); } + +/* ./widechar/lib_slk_wset.c */ + +#undef slk_wset +int slk_wset( + int i, + const wchar_t *astr, + int format) + { return(*(int *)0); } + +/* ./widechar/lib_unget_wch.c */ + +#undef _nc_wcrtomb +size_t _nc_wcrtomb( + char *target, + wchar_t source, + mbstate_t *state) + { return(*(size_t *)0); } + +#undef unget_wch_sp +int unget_wch_sp( + SCREEN *sp, + const wchar_t wch) + { return(*(int *)0); } + +#undef unget_wch +int unget_wch( + const wchar_t wch) + { return(*(int *)0); } + +/* ./widechar/lib_vid_attr.c */ + +#undef vid_puts_sp +int vid_puts_sp( + SCREEN *sp, + attr_t newmode, + short pair, + void *opts, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + +#undef vid_puts +int vid_puts( + attr_t newmode, + short pair, + void *opts, + NCURSES_OUTC outc) + { return(*(int *)0); } + +#undef vid_attr_sp +int vid_attr_sp( + SCREEN *sp, + attr_t newmode, + short pair, + void *opts) + { return(*(int *)0); } + +#undef vid_attr +int vid_attr( + attr_t newmode, + short pair, + void *opts) + { return(*(int *)0); } + +#undef term_attrs_sp +attr_t term_attrs_sp( + SCREEN *sp) + { return(*(attr_t *)0); } + +#undef term_attrs +attr_t term_attrs(void) + { return(*(attr_t *)0); } + +/* ./widechar/lib_vline_set.c */ + +#undef wvline_set +int wvline_set( + WINDOW *win, + const cchar_t *ch, + int n) + { return(*(int *)0); } + +/* ./widechar/lib_wacs.c */ + +#undef _nc_wacs +cchar_t *_nc_wacs; + +#undef _nc_init_wacs +void _nc_init_wacs(void) + { /* void */ } + +/* ./widechar/lib_wunctrl.c */ + +#undef wunctrl_sp +wchar_t *wunctrl_sp( + SCREEN *sp, + cchar_t *wc) + { return(*(wchar_t **)0); } + +#undef wunctrl +wchar_t *wunctrl( + cchar_t *wc) + { return(*(wchar_t **)0); } + +/* ./expanded.c */ + +#undef _nc_toggle_attr_on +void _nc_toggle_attr_on( + attr_t *S, + attr_t at) + { /* void */ } + +#undef _nc_toggle_attr_off +void _nc_toggle_attr_off( + attr_t *S, + attr_t at) + { /* void */ } + +#undef _nc_DelCharCost_sp +int _nc_DelCharCost_sp( + SCREEN *sp, + int count) + { return(*(int *)0); } + +#undef _nc_InsCharCost_sp +int _nc_InsCharCost_sp( + SCREEN *sp, + int count) + { return(*(int *)0); } + +#undef _nc_UpdateAttrs_sp +void _nc_UpdateAttrs_sp( + SCREEN *sp, + const cchar_t *c) + { /* void */ } + +#undef _nc_DelCharCost +int _nc_DelCharCost( + int count) + { return(*(int *)0); } + +#undef _nc_InsCharCost +int _nc_InsCharCost( + int count) + { return(*(int *)0); } + +#undef _nc_UpdateAttrs +void _nc_UpdateAttrs( + const cchar_t *c) + { /* void */ } + +/* ./base/legacy_coding.c */ + +#undef use_legacy_coding_sp +int use_legacy_coding_sp( + SCREEN *sp, + int level) + { return(*(int *)0); } + +#undef use_legacy_coding +int use_legacy_coding( + int level) + { return(*(int *)0); } + +/* ./base/lib_dft_fgbg.c */ + +#undef use_default_colors_sp +int use_default_colors_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef use_default_colors +int use_default_colors(void) + { return(*(int *)0); } + +#undef assume_default_colors_sp +int assume_default_colors_sp( + SCREEN *sp, + int fg, + int bg) + { return(*(int *)0); } + +#undef assume_default_colors +int assume_default_colors( + int fg, + int bg) + { return(*(int *)0); } + +/* ./tinfo/lib_print.c */ + +#undef mcprint_sp +int mcprint_sp( + SCREEN *sp, + char *data, + int len) + { return(*(int *)0); } + +#undef mcprint +int mcprint( + char *data, + int len) + { return(*(int *)0); } + +/* ./base/resizeterm.c */ + +#undef is_term_resized_sp +NCURSES_BOOL is_term_resized_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(NCURSES_BOOL *)0); } + +#undef is_term_resized +NCURSES_BOOL is_term_resized( + int ToLines, + int ToCols) + { return(*(NCURSES_BOOL *)0); } + +#undef resize_term_sp +int resize_term_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(int *)0); } + +#undef resize_term +int resize_term( + int ToLines, + int ToCols) + { return(*(int *)0); } + +#undef resizeterm_sp +int resizeterm_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(int *)0); } + +#undef resizeterm +int resizeterm( + int ToLines, + int ToCols) + { return(*(int *)0); } + +/* ./trace/trace_xnames.c */ + +#undef _nc_trace_xnames +void _nc_trace_xnames( + TERMTYPE *tp) + { /* void */ } + +/* ./tinfo/use_screen.c */ + +#undef use_screen +int use_screen( + SCREEN *screen, + NCURSES_SCREEN_CB func, + void *data) + { return(*(int *)0); } + +/* ./base/use_window.c */ + +#undef use_window +int use_window( + WINDOW *win, + NCURSES_WINDOW_CB func, + void *data) + { return(*(int *)0); } + +/* ./base/wresize.c */ + +#undef wresize +int wresize( + WINDOW *win, + int ToLines, + int ToCols) + { return(*(int *)0); } + +/* ./tinfo/access.c */ + +#include +#include + +#undef _nc_rootname +char *_nc_rootname( + char *path) + { return(*(char **)0); } + +#undef _nc_is_abs_path +NCURSES_BOOL _nc_is_abs_path( + const char *path) + { return(*(NCURSES_BOOL *)0); } + +#undef _nc_pathlast +unsigned _nc_pathlast( + const char *path) + { return(*(unsigned *)0); } + +#undef _nc_basename +char *_nc_basename( + char *path) + { return(*(char **)0); } + +#undef _nc_access +int _nc_access( + const char *path, + int mode) + { return(*(int *)0); } + +#undef _nc_is_dir_path +NCURSES_BOOL _nc_is_dir_path( + const char *path) + { return(*(NCURSES_BOOL *)0); } + +#undef _nc_is_file_path +NCURSES_BOOL _nc_is_file_path( + const char *path) + { return(*(NCURSES_BOOL *)0); } + +#undef _nc_env_access +int _nc_env_access(void) + { return(*(int *)0); } + +/* ./tinfo/add_tries.c */ + +#undef _nc_add_to_try +int _nc_add_to_try( + TRIES **tree, + const char *str, + unsigned code) + { return(*(int *)0); } + +/* ./tinfo/alloc_ttype.c */ + +#undef _nc_align_termtype +void _nc_align_termtype( + TERMTYPE *to, + TERMTYPE *from) + { /* void */ } + +#undef _nc_copy_termtype +void _nc_copy_termtype( + TERMTYPE *dst, + TERMTYPE *src) + { /* void */ } + +/* ./codes.c */ + +#undef _nc_boolcodes +char *const *_nc_boolcodes(void) + { return(*(char **)0); } + +#undef _nc_numcodes +char *const *_nc_numcodes(void) + { return(*(char **)0); } + +#undef _nc_strcodes +char *const *_nc_strcodes(void) + { return(*(char **)0); } + +/* ./tinfo/comp_error.c */ + +#undef _nc_suppress_warnings +NCURSES_BOOL _nc_suppress_warnings; +#undef _nc_curr_line +int _nc_curr_line; +#undef _nc_curr_col +int _nc_curr_col; + +#undef _nc_get_source +const char *_nc_get_source(void) + { return(*(const char **)0); } + +#undef _nc_set_source +void _nc_set_source( + const char *const name) + { /* void */ } + +#undef _nc_set_type +void _nc_set_type( + const char *const name) + { /* void */ } + +#undef _nc_get_type +void _nc_get_type( + char *name) + { /* void */ } + +#undef _nc_warning +void _nc_warning( + const char *const fmt, + ...) + { /* void */ } + +#undef _nc_err_abort +void _nc_err_abort( + const char *const fmt, + ...) + { /* void */ } + +#undef _nc_syserr_abort +void _nc_syserr_abort( + const char *const fmt, + ...) + { /* void */ } + +/* ./tinfo/db_iterator.c */ + +#undef _nc_tic_dir +const char *_nc_tic_dir( + const char *path) + { return(*(const char **)0); } + +#undef _nc_keep_tic_dir +void _nc_keep_tic_dir( + const char *path) + { /* void */ } + +#undef _nc_last_db +void _nc_last_db(void) + { /* void */ } + +#undef _nc_next_db +const char *_nc_next_db( + DBDIRS *state, + int *offset) + { return(*(const char **)0); } + +#undef _nc_first_db +void _nc_first_db( + DBDIRS *state, + int *offset) + { /* void */ } + +/* ./tinfo/doalloc.c */ + +#undef _nc_doalloc +void *_nc_doalloc( + void *oldp, + size_t amount) + { return(*(void **)0); } + +/* ./tinfo/entries.c */ + +#undef _nc_head +ENTRY *_nc_head; +#undef _nc_tail +ENTRY *_nc_tail; + +#undef _nc_free_entry +void _nc_free_entry( + ENTRY *headp, + TERMTYPE *tterm) + { /* void */ } + +#undef _nc_free_entries +void _nc_free_entries( + ENTRY *headp) + { /* void */ } + +#undef _nc_delink_entry +ENTRY *_nc_delink_entry( + ENTRY *headp, + TERMTYPE *tterm) + { return(*(ENTRY **)0); } + +#undef _nc_leaks_tinfo +void _nc_leaks_tinfo(void) + { /* void */ } + +/* ./fallback.c */ + +#undef _nc_fallback +const TERMTYPE *_nc_fallback( + const char *name) + { return(*(const TERMTYPE **)0); } + +/* ./tinfo/free_ttype.c */ + +#undef _nc_free_termtype +void _nc_free_termtype( + TERMTYPE *ptr) + { /* void */ } + +#undef _nc_user_definable +NCURSES_BOOL _nc_user_definable; + +#undef use_extended_names +int use_extended_names( + NCURSES_BOOL flag) + { return(*(int *)0); } + +/* ./tinfo/getenv_num.c */ + +#undef _nc_getenv_num +int _nc_getenv_num( + const char *name) + { return(*(int *)0); } + +/* ./tinfo/home_terminfo.c */ + +#undef _nc_home_terminfo +char *_nc_home_terminfo(void) + { return(*(char **)0); } + +/* ./tinfo/init_keytry.c */ + +#if 0 + +#include + +#undef _nc_tinfo_fkeys +const struct tinfo_fkeys _nc_tinfo_fkeys[] = {0}; + +#endif + +#undef _nc_init_keytry +void _nc_init_keytry( + SCREEN *sp) + { /* void */ } + +/* ./tinfo/lib_acs.c */ + +#undef _nc_acs_map +chtype *_nc_acs_map(void) + { return(*(chtype **)0); } + +#undef _nc_init_acs_sp +void _nc_init_acs_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_init_acs +void _nc_init_acs(void) + { /* void */ } + +/* ./tinfo/lib_baudrate.c */ + +#include + +struct speed { + int s; + int sp; +}; + +#undef _nc_baudrate +int _nc_baudrate( + int OSpeed) + { return(*(int *)0); } + +#undef _nc_ospeed +int _nc_ospeed( + int BaudRate) + { return(*(int *)0); } + +#undef baudrate_sp +int baudrate_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef baudrate +int baudrate(void) + { return(*(int *)0); } + +/* ./tinfo/lib_cur_term.c */ + +#undef _nc_cur_term +TERMINAL *_nc_cur_term(void) + { return(*(TERMINAL **)0); } + +#undef set_curterm +TERMINAL *set_curterm( + TERMINAL *termp) + { return(*(TERMINAL **)0); } + +#undef del_curterm_sp +int del_curterm_sp( + SCREEN *sp, + TERMINAL *termp) + { return(*(int *)0); } + +#undef del_curterm +int del_curterm( + TERMINAL *termp) + { return(*(int *)0); } + +/* ./tinfo/lib_data.c */ + +#undef _nc_stdscr +WINDOW *_nc_stdscr(void) + { return(*(WINDOW **)0); } + +#undef _nc_curscr +WINDOW *_nc_curscr(void) + { return(*(WINDOW **)0); } + +#undef _nc_newscr +WINDOW *_nc_newscr(void) + { return(*(WINDOW **)0); } + +#undef _nc_screen_chain +SCREEN *_nc_screen_chain; +#undef SP +SCREEN *SP; +#undef _nc_globals +NCURSES_GLOBALS _nc_globals; +#undef _nc_prescreen +NCURSES_PRESCREEN _nc_prescreen; + +#undef _nc_screen_of +SCREEN *_nc_screen_of( + WINDOW *win) + { return(*(SCREEN **)0); } + +#undef _nc_init_pthreads +void _nc_init_pthreads(void) + { /* void */ } + +#undef _nc_mutex_init +void _nc_mutex_init( + pthread_mutex_t *obj) + { /* void */ } + +#undef _nc_mutex_lock +int _nc_mutex_lock( + pthread_mutex_t *obj) + { return(*(int *)0); } + +#undef _nc_mutex_trylock +int _nc_mutex_trylock( + pthread_mutex_t *obj) + { return(*(int *)0); } + +#undef _nc_mutex_unlock +int _nc_mutex_unlock( + pthread_mutex_t *obj) + { return(*(int *)0); } + +/* ./tinfo/lib_has_cap.c */ + +#undef has_ic_sp +NCURSES_BOOL has_ic_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_ic +NCURSES_BOOL has_ic(void) + { return(*(NCURSES_BOOL *)0); } + +#undef has_il_sp +NCURSES_BOOL has_il_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_il +NCURSES_BOOL has_il(void) + { return(*(NCURSES_BOOL *)0); } + +/* ./tinfo/lib_kernel.c */ + +#undef erasechar_sp +char erasechar_sp( + SCREEN *sp) + { return(*(char *)0); } + +#undef erasechar +char erasechar(void) + { return(*(char *)0); } + +#undef killchar_sp +char killchar_sp( + SCREEN *sp) + { return(*(char *)0); } + +#undef killchar +char killchar(void) + { return(*(char *)0); } + +#undef flushinp_sp +int flushinp_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef flushinp +int flushinp(void) + { return(*(int *)0); } + +/* ./lib_keyname.c */ + +struct kn { short offset; int code; }; + +#undef keyname_sp +char *keyname_sp( + SCREEN *sp, + int c) + { return(*(char **)0); } + +#undef keyname +char *keyname( + int c) + { return(*(char **)0); } + +/* ./tinfo/lib_longname.c */ + +#undef longname_sp +char *longname_sp( + SCREEN *sp) + { return(*(char **)0); } + +#undef longname +char *longname(void) + { return(*(char **)0); } + +/* ./tinfo/lib_napms.c */ + +#undef napms_sp +int napms_sp( + SCREEN *sp, + int ms) + { return(*(int *)0); } + +#undef napms +int napms( + int ms) + { return(*(int *)0); } + +/* ./tinfo/lib_options.c */ + +#undef idlok +int idlok( + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + +#undef idcok +void idcok( + WINDOW *win, + NCURSES_BOOL flag) + { /* void */ } + +#undef halfdelay_sp +int halfdelay_sp( + SCREEN *sp, + int t) + { return(*(int *)0); } + +#undef halfdelay +int halfdelay( + int t) + { return(*(int *)0); } + +#undef nodelay +int nodelay( + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + +#undef notimeout +int notimeout( + WINDOW *win, + NCURSES_BOOL f) + { return(*(int *)0); } + +#undef wtimeout +void wtimeout( + WINDOW *win, + int delay) + { /* void */ } + +#undef keypad +int keypad( + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + +#undef meta +int meta( + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + +#undef curs_set_sp +int curs_set_sp( + SCREEN *sp, + int vis) + { return(*(int *)0); } + +#undef curs_set +int curs_set( + int vis) + { return(*(int *)0); } + +#undef typeahead_sp +int typeahead_sp( + SCREEN *sp, + int fd) + { return(*(int *)0); } + +#undef typeahead +int typeahead( + int fd) + { return(*(int *)0); } + +#undef has_key_sp +int has_key_sp( + SCREEN *sp, + int keycode) + { return(*(int *)0); } + +#undef has_key +int has_key( + int keycode) + { return(*(int *)0); } + +#undef _nc_putp_flush_sp +int _nc_putp_flush_sp( + SCREEN *sp, + const char *name, + const char *value) + { return(*(int *)0); } + +#undef _nc_putp_flush +int _nc_putp_flush( + const char *name, + const char *value) + { return(*(int *)0); } + +#undef _nc_keypad +int _nc_keypad( + SCREEN *sp, + NCURSES_BOOL flag) + { return(*(int *)0); } + +/* ./tinfo/lib_raw.c */ + +#undef raw_sp +int raw_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef raw +int raw(void) + { return(*(int *)0); } + +#undef cbreak_sp +int cbreak_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef cbreak +int cbreak(void) + { return(*(int *)0); } + +#undef qiflush_sp +void qiflush_sp( + SCREEN *sp) + { /* void */ } + +#undef qiflush +void qiflush(void) + { /* void */ } + +#undef noraw_sp +int noraw_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef noraw +int noraw(void) + { return(*(int *)0); } + +#undef nocbreak_sp +int nocbreak_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef nocbreak +int nocbreak(void) + { return(*(int *)0); } + +#undef noqiflush_sp +void noqiflush_sp( + SCREEN *sp) + { /* void */ } + +#undef noqiflush +void noqiflush(void) + { /* void */ } + +#undef intrflush_sp +int intrflush_sp( + SCREEN *sp, + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + +#undef intrflush +int intrflush( + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + +/* ./tinfo/lib_setup.c */ + +#include +#include +#include + +#undef _nc_ttytype +char *_nc_ttytype(void) + { return(*(char **)0); } + +#undef _nc_ptr_Lines +int *_nc_ptr_Lines( + SCREEN *sp) + { return(*(int **)0); } + +#undef _nc_LINES +int _nc_LINES(void) + { return(*(int *)0); } + +#undef _nc_ptr_Cols +int *_nc_ptr_Cols( + SCREEN *sp) + { return(*(int **)0); } + +#undef _nc_COLS +int _nc_COLS(void) + { return(*(int *)0); } + +#undef _nc_ptr_Tabsize +int *_nc_ptr_Tabsize( + SCREEN *sp) + { return(*(int **)0); } + +#undef _nc_TABSIZE +int _nc_TABSIZE(void) + { return(*(int *)0); } + +#undef set_tabsize_sp +int set_tabsize_sp( + SCREEN *sp, + int value) + { return(*(int *)0); } + +#undef set_tabsize +int set_tabsize( + int value) + { return(*(int *)0); } + +#undef _nc_handle_sigwinch +int _nc_handle_sigwinch( + SCREEN *sp) + { return(*(int *)0); } + +#undef use_env_sp +void use_env_sp( + SCREEN *sp, + NCURSES_BOOL f) + { /* void */ } + +#undef use_env +void use_env( + NCURSES_BOOL f) + { /* void */ } + +#undef _nc_get_screensize +void _nc_get_screensize( + SCREEN *sp, + int *linep, + int *colp) + { /* void */ } + +#undef _nc_update_screensize +void _nc_update_screensize( + SCREEN *sp) + { /* void */ } + +#undef _nc_get_locale +char *_nc_get_locale(void) + { return(*(char **)0); } + +#undef _nc_unicode_locale +int _nc_unicode_locale(void) + { return(*(int *)0); } + +#undef _nc_locale_breaks_acs +int _nc_locale_breaks_acs( + TERMINAL *termp) + { return(*(int *)0); } + +#undef _nc_setupterm +int _nc_setupterm( + char *tname, + int Filedes, + int *errret, + NCURSES_BOOL reuse) + { return(*(int *)0); } + +#undef setupterm +int setupterm( + char *tname, + int Filedes, + int *errret) + { return(*(int *)0); } + +/* ./tinfo/lib_termcap.c */ + +#undef UP +char *UP; +#undef BC +char *BC; + +#undef tgetent_sp +int tgetent_sp( + SCREEN *sp, + char *bufp, + const char *name) + { return(*(int *)0); } + +#if 0 + +#include + +#endif + +#undef tgetent +int tgetent( + char *bufp, + const char *name) + { return(*(int *)0); } + +#undef tgetflag_sp +int tgetflag_sp( + SCREEN *sp, + char *id) + { return(*(int *)0); } + +#undef tgetflag +int tgetflag( + char *id) + { return(*(int *)0); } + +#undef tgetnum_sp +int tgetnum_sp( + SCREEN *sp, + char *id) + { return(*(int *)0); } + +#undef tgetnum +int tgetnum( + char *id) + { return(*(int *)0); } + +#undef tgetstr_sp +char *tgetstr_sp( + SCREEN *sp, + char *id, + char **area) + { return(*(char **)0); } + +#undef tgetstr +char *tgetstr( + char *id, + char **area) + { return(*(char **)0); } + +/* ./tinfo/lib_termname.c */ + +#undef termname_sp +char *termname_sp( + SCREEN *sp) + { return(*(char **)0); } + +#undef termname +char *termname(void) + { return(*(char **)0); } + +/* ./tinfo/lib_tgoto.c */ + +#undef tgoto +char *tgoto( + const char *string, + int x, + int y) + { return(*(char **)0); } + +/* ./tinfo/lib_ti.c */ + +#undef tigetflag_sp +int tigetflag_sp( + SCREEN *sp, + char *str) + { return(*(int *)0); } + +#undef tigetflag +int tigetflag( + char *str) + { return(*(int *)0); } + +#undef tigetnum_sp +int tigetnum_sp( + SCREEN *sp, + char *str) + { return(*(int *)0); } + +#undef tigetnum +int tigetnum( + char *str) + { return(*(int *)0); } + +#undef tigetstr_sp +char *tigetstr_sp( + SCREEN *sp, + char *str) + { return(*(char **)0); } + +#undef tigetstr +char *tigetstr( + char *str) + { return(*(char **)0); } + +/* ./tinfo/lib_tparm.c */ + +#undef _nc_tparm_err +int _nc_tparm_err; + +#undef _nc_tparm_analyze +int _nc_tparm_analyze( + const char *string, + char *p_is_s[9], + int *popcount) + { return(*(int *)0); } + +#undef tparm +char *tparm( + char *string, + ...) + { return(*(char **)0); } + +/* ./tinfo/lib_tputs.c */ + +#undef PC +char PC; +#undef ospeed +NCURSES_OSPEED ospeed; +#undef _nc_nulls_sent +int _nc_nulls_sent; + +#undef _nc_set_no_padding +void _nc_set_no_padding( + SCREEN *sp) + { /* void */ } + +#undef delay_output_sp +int delay_output_sp( + SCREEN *sp, + int ms) + { return(*(int *)0); } + +#undef delay_output +int delay_output( + int ms) + { return(*(int *)0); } + +#undef _nc_flush_sp +void _nc_flush_sp( + SCREEN *sp) + { /* void */ } + +#undef _nc_flush +void _nc_flush(void) + { /* void */ } + +#undef _nc_outch_sp +int _nc_outch_sp( + SCREEN *sp, + int ch) + { return(*(int *)0); } + +#undef _nc_outch +int _nc_outch( + int ch) + { return(*(int *)0); } + +#undef putp_sp +int putp_sp( + SCREEN *sp, + const char *string) + { return(*(int *)0); } + +#undef _nc_putp_sp +int _nc_putp_sp( + SCREEN *sp, + const char *name, + const char *string) + { return(*(int *)0); } + +#undef putp +int putp( + const char *string) + { return(*(int *)0); } + +#undef _nc_putp +int _nc_putp( + const char *name, + const char *string) + { return(*(int *)0); } + +#undef tputs_sp +int tputs_sp( + SCREEN *sp, + const char *string, + int affcnt, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + +#undef _nc_outc_wrapper +int _nc_outc_wrapper( + SCREEN *sp, + int c) + { return(*(int *)0); } + +#undef tputs +int tputs( + const char *string, + int affcnt, + int (*outc)( + int p1)) + { return(*(int *)0); } + +/* ./trace/lib_trace.c */ + +#undef _nc_tracing +unsigned _nc_tracing; + +#undef _nc__nc_tputs_trace +const char *_nc__nc_tputs_trace(void) + { return(*(const char **)0); } + +#undef _nc__nc_outchars +long _nc__nc_outchars(void) + { return(*(long *)0); } + +#undef _nc_set_tputs_trace +void _nc_set_tputs_trace( + const char *s) + { /* void */ } + +#undef _nc_count_outchars +void _nc_count_outchars( + long increment) + { /* void */ } + +#undef trace +void trace( + const unsigned int tracelevel) + { /* void */ } + +#undef _tracef +void _tracef( + const char *fmt, + ...) + { /* void */ } + +#undef _nc_retrace_bool +NCURSES_BOOL _nc_retrace_bool( + NCURSES_BOOL code) + { return(*(NCURSES_BOOL *)0); } + +#undef _nc_retrace_int +int _nc_retrace_int( + int code) + { return(*(int *)0); } + +#undef _nc_retrace_unsigned +unsigned _nc_retrace_unsigned( + unsigned code) + { return(*(unsigned *)0); } + +#undef _nc_retrace_ptr +char *_nc_retrace_ptr( + char *code) + { return(*(char **)0); } + +#undef _nc_retrace_cptr +const char *_nc_retrace_cptr( + const char *code) + { return(*(const char **)0); } + +#undef _nc_retrace_cvoid_ptr +void *_nc_retrace_cvoid_ptr( + void *code) + { return(*(void **)0); } + +#undef _nc_retrace_void_ptr +void *_nc_retrace_void_ptr( + void *code) + { return(*(void **)0); } + +#undef _nc_retrace_sp +SCREEN *_nc_retrace_sp( + SCREEN *code) + { return(*(SCREEN **)0); } + +#undef _nc_retrace_win +WINDOW *_nc_retrace_win( + WINDOW *code) + { return(*(WINDOW **)0); } + +#undef _nc_use_tracef +int _nc_use_tracef( + unsigned mask) + { return(*(int *)0); } + +#undef _nc_locked_tracef +void _nc_locked_tracef( + const char *fmt, + ...) + { /* void */ } + +/* ./trace/lib_traceatr.c */ + +#undef _traceattr2 +char *_traceattr2( + int bufnum, + chtype newmode) + { return(*(char **)0); } + +#undef _traceattr +char *_traceattr( + attr_t newmode) + { return(*(char **)0); } + +#undef _nc_retrace_attr_t +attr_t _nc_retrace_attr_t( + attr_t code) + { return(*(attr_t *)0); } + +#undef _nc_altcharset_name +const char *_nc_altcharset_name( + attr_t attr, + chtype ch) + { return(*(const char **)0); } + +#undef _tracechtype2 +char *_tracechtype2( + int bufnum, + chtype ch) + { return(*(char **)0); } + +#undef _tracechtype +char *_tracechtype( + chtype ch) + { return(*(char **)0); } + +#undef _nc_retrace_chtype +chtype _nc_retrace_chtype( + chtype code) + { return(*(chtype *)0); } + +#undef _tracecchar_t2 +char *_tracecchar_t2( + int bufnum, + const cchar_t *ch) + { return(*(char **)0); } + +#undef _tracecchar_t +char *_tracecchar_t( + const cchar_t *ch) + { return(*(char **)0); } + +/* ./trace/lib_tracebits.c */ + +typedef struct { + unsigned int val; + const char *name; +} BITNAMES; + +#undef _nc_trace_ttymode +char *_nc_trace_ttymode( + struct termios *tty) + { return(*(char **)0); } + +#undef _nc_tracebits +char *_nc_tracebits(void) + { return(*(char **)0); } + +/* ./trace/lib_tracechr.c */ + +#undef _nc_tracechar +char *_nc_tracechar( + SCREEN *sp, + int ch) + { return(*(char **)0); } + +#undef _tracechar +char *_tracechar( + int ch) + { return(*(char **)0); } + +/* ./tinfo/lib_ttyflags.c */ + +#undef _nc_get_tty_mode_sp +int _nc_get_tty_mode_sp( + SCREEN *sp, + struct termios *buf) + { return(*(int *)0); } + +#undef _nc_get_tty_mode +int _nc_get_tty_mode( + struct termios *buf) + { return(*(int *)0); } + +#undef _nc_set_tty_mode_sp +int _nc_set_tty_mode_sp( + SCREEN *sp, + struct termios *buf) + { return(*(int *)0); } + +#undef _nc_set_tty_mode +int _nc_set_tty_mode( + struct termios *buf) + { return(*(int *)0); } + +#undef def_shell_mode_sp +int def_shell_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef def_shell_mode +int def_shell_mode(void) + { return(*(int *)0); } + +#undef def_prog_mode_sp +int def_prog_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef def_prog_mode +int def_prog_mode(void) + { return(*(int *)0); } + +#undef reset_prog_mode_sp +int reset_prog_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef reset_prog_mode +int reset_prog_mode(void) + { return(*(int *)0); } + +#undef reset_shell_mode_sp +int reset_shell_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef reset_shell_mode +int reset_shell_mode(void) + { return(*(int *)0); } + +#undef savetty_sp +int savetty_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef savetty +int savetty(void) + { return(*(int *)0); } + +#undef resetty_sp +int resetty_sp( + SCREEN *sp) + { return(*(int *)0); } + +#undef resetty +int resetty(void) + { return(*(int *)0); } + +/* ./tty/lib_twait.c */ + +#undef _nc_timed_wait +int _nc_timed_wait( + SCREEN *sp, + int mode, + int milliseconds, + int *timeleft) + { return(*(int *)0); } + +/* ./tinfo/name_match.c */ + +#undef _nc_first_name +char *_nc_first_name( + const char *const sp) + { return(*(char **)0); } + +#undef _nc_name_match +int _nc_name_match( + const char *const namelst, + const char *const name, + const char *const delim) + { return(*(int *)0); } + +/* ./names.c */ + +#undef _nc_boolnames +char *const *_nc_boolnames(void) + { return(*(char **)0); } + +#undef _nc_boolfnames +char *const *_nc_boolfnames(void) + { return(*(char **)0); } + +#undef _nc_numnames +char *const *_nc_numnames(void) + { return(*(char **)0); } + +#undef _nc_numfnames +char *const *_nc_numfnames(void) + { return(*(char **)0); } + +#undef _nc_strnames +char *const *_nc_strnames(void) + { return(*(char **)0); } + +#undef _nc_strfnames +char *const *_nc_strfnames(void) + { return(*(char **)0); } + +/* ./tinfo/read_entry.c */ + +#include + +#undef _nc_read_termtype +int _nc_read_termtype( + TERMTYPE *ptr, + char *buffer, + int limit) + { return(*(int *)0); } + +#undef _nc_read_file_entry +int _nc_read_file_entry( + const char *const filename, + TERMTYPE *ptr) + { return(*(int *)0); } + +#undef _nc_read_entry +int _nc_read_entry( + const char *const name, + char *const filename, + TERMTYPE *const tp) + { return(*(int *)0); } + +/* ./tinfo/read_termcap.c */ + +#include + +#undef _nc_read_termcap_entry +int _nc_read_termcap_entry( + const char *const tn, + TERMTYPE *const tp) + { return(*(int *)0); } + +/* ./tinfo/setbuf.c */ + +#undef _nc_set_buffer_sp +void _nc_set_buffer_sp( + SCREEN *sp, + FILE *ofp, + NCURSES_BOOL buffered) + { /* void */ } + +#undef _nc_set_buffer +void _nc_set_buffer( + FILE *ofp, + NCURSES_BOOL buffered) + { /* void */ } + +/* ./tinfo/strings.c */ + +#undef _nc_str_init +string_desc *_nc_str_init( + string_desc *dst, + char *src, + size_t len) + { return(*(string_desc **)0); } + +#undef _nc_str_null +string_desc *_nc_str_null( + string_desc *dst, + size_t len) + { return(*(string_desc **)0); } + +#undef _nc_str_copy +string_desc *_nc_str_copy( + string_desc *dst, + string_desc *src) + { return(*(string_desc **)0); } + +#undef _nc_safe_strcat +NCURSES_BOOL _nc_safe_strcat( + string_desc *dst, + const char *src) + { return(*(NCURSES_BOOL *)0); } + +#undef _nc_safe_strcpy +NCURSES_BOOL _nc_safe_strcpy( + string_desc *dst, + const char *src) + { return(*(NCURSES_BOOL *)0); } + +/* ./trace/trace_buf.c */ + +#undef _nc_trace_buf +char *_nc_trace_buf( + int bufnum, + size_t want) + { return(*(char **)0); } + +#undef _nc_trace_bufcat +char *_nc_trace_bufcat( + int bufnum, + const char *value) + { return(*(char **)0); } + +/* ./trace/trace_tries.c */ + +#undef _nc_trace_tries +void _nc_trace_tries( + TRIES *tree) + { /* void */ } + +/* ./base/tries.c */ + +#undef _nc_expand_try +char *_nc_expand_try( + TRIES *tree, + unsigned code, + int *count, + size_t len) + { return(*(char **)0); } + +#undef _nc_remove_key +int _nc_remove_key( + TRIES **tree, + unsigned code) + { return(*(int *)0); } + +#undef _nc_remove_string +int _nc_remove_string( + TRIES **tree, + const char *string) + { return(*(int *)0); } + +/* ./tinfo/trim_sgr0.c */ + +#undef _nc_trim_sgr0 +char *_nc_trim_sgr0( + TERMTYPE *tp) + { return(*(char **)0); } + +/* ./unctrl.c */ + +#undef unctrl_sp +char *unctrl_sp( + SCREEN *sp, + chtype ch) + { return(*(char **)0); } + +#undef unctrl +char *unctrl( + chtype ch) + { return(*(char **)0); } + +/* ./trace/visbuf.c */ + +#undef _nc_visbuf2 +const char *_nc_visbuf2( + int bufnum, + const char *buf) + { return(*(const char **)0); } + +#undef _nc_visbuf +const char *_nc_visbuf( + const char *buf) + { return(*(const char **)0); } + +#undef _nc_visbufn +const char *_nc_visbufn( + const char *buf, + int len) + { return(*(const char **)0); } + +#undef _nc_viswbuf2 +const char *_nc_viswbuf2( + int bufnum, + const wchar_t *buf) + { return(*(const char **)0); } + +#undef _nc_viswbuf +const char *_nc_viswbuf( + const wchar_t *buf) + { return(*(const char **)0); } + +#undef _nc_viswbufn +const char *_nc_viswbufn( + const wchar_t *buf, + int len) + { return(*(const char **)0); } + +#undef _nc_viswibuf +const char *_nc_viswibuf( + const wint_t *buf) + { return(*(const char **)0); } + +#undef _nc_viscbuf2 +const char *_nc_viscbuf2( + int bufnum, + const cchar_t *buf, + int len) + { return(*(const char **)0); } + +#undef _nc_viscbuf +const char *_nc_viscbuf( + const cchar_t *buf, + int len) + { return(*(const char **)0); } + +/* ./tinfo/alloc_entry.c */ + +#undef _nc_init_entry +void _nc_init_entry( + TERMTYPE *const tp) + { /* void */ } + +#undef _nc_copy_entry +ENTRY *_nc_copy_entry( + ENTRY *oldp) + { return(*(ENTRY **)0); } + +#undef _nc_save_str +char *_nc_save_str( + const char *const string) + { return(*(char **)0); } + +#undef _nc_wrap_entry +void _nc_wrap_entry( + ENTRY *const ep, + NCURSES_BOOL copy_strings) + { /* void */ } + +#undef _nc_merge_entry +void _nc_merge_entry( + TERMTYPE *const to, + TERMTYPE *const from) + { /* void */ } + +/* ./tinfo/captoinfo.c */ + +#undef _nc_captoinfo +char *_nc_captoinfo( + const char *cap, + const char *s, + int const parameterized) + { return(*(char **)0); } + +#undef _nc_infotocap +char *_nc_infotocap( + const char *cap, + const char *str, + int const parameterized) + { return(*(char **)0); } + +/* ./comp_captab.c */ + +#include + +#undef _nc_get_table +const struct name_table_entry *_nc_get_table( + NCURSES_BOOL termcap) + { return(*(const struct name_table_entry **)0); } + +#undef _nc_get_hash_table +const short *_nc_get_hash_table( + NCURSES_BOOL termcap) + { return(*(const short **)0); } + +#undef _nc_get_alias_table +const struct alias *_nc_get_alias_table( + NCURSES_BOOL termcap) + { return(*(const struct alias **)0); } + +/* ./tinfo/comp_expand.c */ + +#undef _nc_tic_expand +char *_nc_tic_expand( + const char *srcp, + NCURSES_BOOL tic_format, + int numbers) + { return(*(char **)0); } + +/* ./tinfo/comp_hash.c */ + +#undef _nc_find_entry +struct name_table_entry const *_nc_find_entry( + const char *string, + const short *hash_table) + { return(*(struct name_table_entry const **)0); } + +#undef _nc_find_type_entry +struct name_table_entry const *_nc_find_type_entry( + const char *string, + int type, + const struct name_table_entry *table) + { return(*(struct name_table_entry const **)0); } + +/* ./tinfo/comp_parse.c */ + +#undef _nc_check_termtype2 +void (*_nc_check_termtype2)( + TERMTYPE *p1, + NCURSES_BOOL p2); +#undef _nc_check_termtype +void (*_nc_check_termtype)( + TERMTYPE *p1); + +#undef _nc_entry_match +NCURSES_BOOL _nc_entry_match( + char *n1, + char *n2) + { return(*(NCURSES_BOOL *)0); } + +#undef _nc_read_entry_source +void _nc_read_entry_source( + FILE *fp, + char *buf, + int literal, + NCURSES_BOOL silent, + NCURSES_BOOL (*hook)( + ENTRY *p1)) + { /* void */ } + +#undef _nc_resolve_uses2 +int _nc_resolve_uses2( + NCURSES_BOOL fullresolve, + NCURSES_BOOL literal) + { return(*(int *)0); } + +#undef _nc_resolve_uses +int _nc_resolve_uses( + NCURSES_BOOL fullresolve) + { return(*(int *)0); } + +/* ./tinfo/comp_scan.c */ + +#undef _nc_syntax +int _nc_syntax; +#undef _nc_curr_file_pos +long _nc_curr_file_pos; +#undef _nc_comment_start +long _nc_comment_start; +#undef _nc_comment_end +long _nc_comment_end; +#undef _nc_start_line +long _nc_start_line; +#undef _nc_curr_token +struct token _nc_curr_token; +#undef _nc_disable_period +NCURSES_BOOL _nc_disable_period; + +#undef _nc_reset_input +void _nc_reset_input( + FILE *fp, + char *buf) + { /* void */ } + +#undef _nc_get_token +int _nc_get_token( + NCURSES_BOOL silent) + { return(*(int *)0); } + +#undef _nc_trans_string +int _nc_trans_string( + char *ptr, + char *last) + { return(*(int *)0); } + +#undef _nc_push_token +void _nc_push_token( + int tokclass) + { /* void */ } + +#undef _nc_panic_mode +void _nc_panic_mode( + char ch) + { /* void */ } + +/* ./tinfo/parse_entry.c */ + +#undef _nc_parse_entry +int _nc_parse_entry( + struct entry *entryp, + int literal, + NCURSES_BOOL silent) + { return(*(int *)0); } + +#undef _nc_capcmp +int _nc_capcmp( + const char *s, + const char *t) + { return(*(int *)0); } + +typedef struct { + const char *from; + const char *to; +} assoc; + +/* ./tinfo/write_entry.c */ + +#undef _nc_set_writedir +void _nc_set_writedir( + char *dir) + { /* void */ } + +#undef _nc_write_entry +void _nc_write_entry( + TERMTYPE *const tp) + { /* void */ } + +#undef _nc_tic_written +int _nc_tic_written(void) + { return(*(int *)0); } + +/* ./base/define_key.c */ + +#undef define_key_sp +int define_key_sp( + SCREEN *sp, + const char *str, + int keycode) + { return(*(int *)0); } + +#undef define_key +int define_key( + const char *str, + int keycode) + { return(*(int *)0); } + +/* ./tinfo/hashed_db.c */ + +#undef _nc_hashed_db +void _nc_hashed_db(void) + { /* void */ } + +/* ./base/key_defined.c */ + +#undef key_defined_sp +int key_defined_sp( + SCREEN *sp, + const char *str) + { return(*(int *)0); } + +#undef key_defined +int key_defined( + const char *str) + { return(*(int *)0); } + +/* ./base/keybound.c */ + +#undef keybound_sp +char *keybound_sp( + SCREEN *sp, + int code, + int count) + { return(*(char **)0); } + +#undef keybound +char *keybound( + int code, + int count) + { return(*(char **)0); } + +/* ./base/keyok.c */ + +#undef keyok_sp +int keyok_sp( + SCREEN *sp, + int c, + NCURSES_BOOL flag) + { return(*(int *)0); } + +#undef keyok +int keyok( + int c, + NCURSES_BOOL flag) + { return(*(int *)0); } + +/* ./base/version.c */ + +#undef curses_version +const char *curses_version(void) + { return(*(const char **)0); } diff -Naur ncurses-5.7.orig/ncurses/llib-lncursesw ncurses-5.7/ncurses/llib-lncursesw --- ncurses-5.7.orig/ncurses/llib-lncursesw 2008-10-11 14:03:02.000000000 -0700 +++ ncurses-5.7/ncurses/llib-lncursesw 2009-09-12 08:51:49.000000000 -0700 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2001-2007,2008 Free Software Foundation, Inc. * + * Copyright (c) 2001-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,7 +27,7 @@ ****************************************************************************/ /**************************************************************************** - * Author: Thomas E. Dickey 2001-2008 * + * Author: Thomas E. Dickey 2001-2009 * ****************************************************************************/ /* LINTLIBRARY */ @@ -38,27 +38,54 @@ #undef _nc_oldnums int *_nc_oldnums; +#undef _nc_scroll_optimize_sp +void _nc_scroll_optimize_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_scroll_optimize void _nc_scroll_optimize(void) { /* void */ } +#undef _nc_linedump_sp +void _nc_linedump_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_linedump void _nc_linedump(void) { /* void */ } /* ./tty/hashmap.c */ -#include +#undef _nc_hash_map_sp +void _nc_hash_map_sp( + SCREEN *sp) + { /* void */ } #undef _nc_hash_map void _nc_hash_map(void) { /* void */ } +#undef _nc_make_oldhash_sp +void _nc_make_oldhash_sp( + SCREEN *sp, + int i) + { /* void */ } + #undef _nc_make_oldhash void _nc_make_oldhash( int i) { /* void */ } +#undef _nc_scroll_oldhash_sp +void _nc_scroll_oldhash_sp( + SCREEN *sp, + int n, + int top, + int bot) + { /* void */ } + #undef _nc_scroll_oldhash void _nc_scroll_oldhash( int n, @@ -137,6 +164,11 @@ /* ./base/lib_beep.c */ +#undef beep_sp +int beep_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef beep int beep(void) { return(*(int *)0); } @@ -224,6 +256,7 @@ /* ./base/lib_color.c */ +#include #include #undef COLOR_PAIRS @@ -231,14 +264,32 @@ #undef COLORS int COLORS; +#undef _nc_reset_colors_sp +NCURSES_BOOL _nc_reset_colors_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef _nc_reset_colors NCURSES_BOOL _nc_reset_colors(void) { return(*(NCURSES_BOOL *)0); } +#undef start_color_sp +int start_color_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef start_color int start_color(void) { return(*(int *)0); } +#undef init_pair_sp +int init_pair_sp( + SCREEN *sp, + short pair, + short f, + short b) + { return(*(int *)0); } + #undef init_pair int init_pair( short pair, @@ -246,6 +297,15 @@ short b) { return(*(int *)0); } +#undef init_color_sp +int init_color_sp( + SCREEN *sp, + short color, + short r, + short g, + short b) + { return(*(int *)0); } + #undef init_color int init_color( short color, @@ -254,14 +314,33 @@ short b) { return(*(int *)0); } +#undef can_change_color_sp +NCURSES_BOOL can_change_color_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef can_change_color NCURSES_BOOL can_change_color(void) { return(*(NCURSES_BOOL *)0); } +#undef has_colors_sp +NCURSES_BOOL has_colors_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef has_colors NCURSES_BOOL has_colors(void) { return(*(NCURSES_BOOL *)0); } +#undef color_content_sp +int color_content_sp( + SCREEN *sp, + short color, + short *r, + short *g, + short *b) + { return(*(int *)0); } + #undef color_content int color_content( short color, @@ -270,6 +349,14 @@ short *b) { return(*(int *)0); } +#undef pair_content_sp +int pair_content_sp( + SCREEN *sp, + short pair, + short *f, + short *b) + { return(*(int *)0); } + #undef pair_content int pair_content( short pair, @@ -277,13 +364,21 @@ short *b) { return(*(int *)0); } +#undef _nc_do_color_sp +void _nc_do_color_sp( + SCREEN *sp, + short old_pair, + short pair, + NCURSES_BOOL reverse, + NCURSES_OUTC_sp outc) + { /* void */ } + #undef _nc_do_color void _nc_do_color( short old_pair, short pair, NCURSES_BOOL reverse, - int (*outc)( - int p1)) + NCURSES_OUTC outc) { /* void */ } /* ./base/lib_colorset.c */ @@ -311,16 +406,31 @@ /* ./base/lib_echo.c */ +#undef echo_sp +int echo_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef echo int echo(void) { return(*(int *)0); } +#undef noecho_sp +int noecho_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef noecho int noecho(void) { return(*(int *)0); } /* ./base/lib_endwin.c */ +#undef endwin_sp +int endwin_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef endwin int endwin(void) { return(*(int *)0); } @@ -334,6 +444,11 @@ /* ./base/lib_flash.c */ +#undef flash_sp +int flash_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef flash int flash(void) { return(*(int *)0); } @@ -1646,6 +1761,12 @@ #undef ESCDELAY int ESCDELAY; +#undef set_escdelay_sp +int set_escdelay_sp( + SCREEN *sp, + int value) + { return(*(int *)0); } + #undef set_escdelay int set_escdelay( int value) @@ -1708,6 +1829,7 @@ #undef _nc_insert_ch int _nc_insert_ch( + SCREEN *sp, WINDOW *win, chtype ch) { return(*(int *)0); } @@ -1746,6 +1868,11 @@ /* ./base/lib_isendwin.c */ +#undef isendwin_sp +NCURSES_BOOL isendwin_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef isendwin NCURSES_BOOL isendwin(void) { return(*(NCURSES_BOOL *)0); } @@ -1760,16 +1887,35 @@ /* ./base/lib_mouse.c */ +#undef getmouse_sp +int getmouse_sp( + SCREEN *sp, + MEVENT *aevent) + { return(*(int *)0); } + #undef getmouse int getmouse( MEVENT *aevent) { return(*(int *)0); } +#undef ungetmouse_sp +int ungetmouse_sp( + SCREEN *sp, + MEVENT *aevent) + { return(*(int *)0); } + #undef ungetmouse int ungetmouse( MEVENT *aevent) { return(*(int *)0); } +#undef mousemask_sp +mmask_t mousemask_sp( + SCREEN *sp, + mmask_t newmask, + mmask_t *oldmask) + { return(*(mmask_t *)0); } + #undef mousemask mmask_t mousemask( mmask_t newmask, @@ -1783,14 +1929,30 @@ int x) { return(*(NCURSES_BOOL *)0); } +#undef mouseinterval_sp +int mouseinterval_sp( + SCREEN *sp, + int maxclick) + { return(*(int *)0); } + #undef mouseinterval int mouseinterval( int maxclick) { return(*(int *)0); } #undef _nc_has_mouse -int _nc_has_mouse(void) - { return(*(int *)0); } +NCURSES_BOOL _nc_has_mouse( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_mouse_sp +NCURSES_BOOL has_mouse_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + +#undef has_mouse +NCURSES_BOOL has_mouse(void) + { return(*(NCURSES_BOOL *)0); } #undef wmouse_trafo NCURSES_BOOL wmouse_trafo( @@ -1811,24 +1973,55 @@ /* ./tty/lib_mvcur.c */ +#undef _nc_msec_cost_sp +int _nc_msec_cost_sp( + SCREEN *sp, + const char *const cap, + int affcnt) + { return(*(int *)0); } + #undef _nc_msec_cost int _nc_msec_cost( const char *const cap, int affcnt) { return(*(int *)0); } +#undef _nc_mvcur_resume_sp +void _nc_mvcur_resume_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_mvcur_resume void _nc_mvcur_resume(void) { /* void */ } +#undef _nc_mvcur_init_sp +void _nc_mvcur_init_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_mvcur_init void _nc_mvcur_init(void) { /* void */ } +#undef _nc_mvcur_wrap_sp +void _nc_mvcur_wrap_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_mvcur_wrap void _nc_mvcur_wrap(void) { /* void */ } +#undef mvcur_sp +int mvcur_sp( + SCREEN *sp, + int yold, + int xold, + int ynew, + int xnew) + { return(*(int *)0); } + #undef mvcur int mvcur( int yold, @@ -1851,14 +2044,32 @@ /* ./base/lib_newterm.c */ +#undef filter_sp +void filter_sp( + SCREEN *sp) + { /* void */ } + #undef filter void filter(void) { /* void */ } +#undef nofilter_sp +void nofilter_sp( + SCREEN *sp) + { /* void */ } + #undef nofilter void nofilter(void) { /* void */ } +#undef newterm_sp +SCREEN *newterm_sp( + SCREEN *sp, + char *name, + FILE *ofp, + FILE *ifp) + { return(*(SCREEN **)0); } + #undef newterm SCREEN *newterm( char *name, @@ -1873,6 +2084,15 @@ WINDOW *win) { return(*(int *)0); } +#undef newwin_sp +WINDOW *newwin_sp( + SCREEN *sp, + int num_lines, + int num_columns, + int begy, + int begx) + { return(*(WINDOW **)0); } + #undef newwin WINDOW *newwin( int num_lines, @@ -1899,6 +2119,16 @@ int x) { return(*(WINDOW **)0); } +#undef _nc_makenew_sp +WINDOW *_nc_makenew_sp( + SCREEN *sp, + int num_lines, + int num_columns, + int begy, + int begx, + int flags) + { return(*(WINDOW **)0); } + #undef _nc_makenew WINDOW *_nc_makenew( int num_lines, @@ -1908,17 +2138,37 @@ int flags) { return(*(WINDOW **)0); } -#undef _nc_screen_of -SCREEN *_nc_screen_of( - WINDOW *win) - { return(*(SCREEN **)0); } +#undef _nc_curscr_of +WINDOW *_nc_curscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } + +#undef _nc_newscr_of +WINDOW *_nc_newscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } + +#undef _nc_stdscr_of +WINDOW *_nc_stdscr_of( + SCREEN *sp) + { return(*(WINDOW **)0); } /* ./base/lib_nl.c */ +#undef nl_sp +int nl_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef nl int nl(void) { return(*(int *)0); } +#undef nonl_sp +int nonl_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef nonl int nonl(void) { return(*(int *)0); } @@ -1952,6 +2202,13 @@ /* ./base/lib_pad.c */ +#undef newpad_sp +WINDOW *newpad_sp( + SCREEN *sp, + int l, + int c) + { return(*(WINDOW **)0); } + #undef newpad WINDOW *newpad( int l, @@ -2057,6 +2314,14 @@ /* ./base/lib_restart.c */ +#undef restartterm_sp +int restartterm_sp( + SCREEN *sp, + char *termp, + int filenum, + int *errret) + { return(*(int *)0); } + #undef restartterm int restartterm( char *termp, @@ -2105,6 +2370,12 @@ /* ./base/lib_screen.c */ +#undef getwin_sp +WINDOW *getwin_sp( + SCREEN *sp, + FILE *filep) + { return(*(WINDOW **)0); } + #undef getwin WINDOW *getwin( FILE *filep) @@ -2116,6 +2387,12 @@ FILE *filep) { return(*(int *)0); } +#undef scr_restore_sp +int scr_restore_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + #undef scr_restore int scr_restore( const char *file) @@ -2126,11 +2403,23 @@ const char *file) { return(*(int *)0); } +#undef scr_init_sp +int scr_init_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + #undef scr_init int scr_init( const char *file) { return(*(int *)0); } +#undef scr_set_sp +int scr_set_sp( + SCREEN *sp, + const char *file) + { return(*(int *)0); } + #undef scr_set int scr_set( const char *file) @@ -2191,6 +2480,15 @@ int slk_format) { return(*(int *)0); } +#undef _nc_ripoffline_sp +int _nc_ripoffline_sp( + SCREEN *sp, + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + #undef _nc_ripoffline int _nc_ripoffline( int line, @@ -2199,6 +2497,15 @@ int p2)) { return(*(int *)0); } +#undef ripoffline_sp +int ripoffline_sp( + SCREEN *sp, + int line, + int (*init)( + WINDOW *p1, + int p2)) + { return(*(int *)0); } + #undef ripoffline int ripoffline( int line, @@ -2215,12 +2522,25 @@ int cols) { return(*(int *)0); } +#undef slk_restore_sp +int slk_restore_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_restore int slk_restore(void) { return(*(int *)0); } /* ./base/lib_slkatr_set.c */ +#undef slk_attr_set_sp +int slk_attr_set_sp( + SCREEN *sp, + const attr_t attr, + short color_pair_number, + void *opts) + { return(*(int *)0); } + #undef slk_attr_set int slk_attr_set( const attr_t attr, @@ -2230,6 +2550,12 @@ /* ./base/lib_slkatrof.c */ +#undef slk_attroff_sp +int slk_attroff_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + #undef slk_attroff int slk_attroff( const chtype attr) @@ -2237,6 +2563,12 @@ /* ./base/lib_slkatron.c */ +#undef slk_attron_sp +int slk_attron_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + #undef slk_attron int slk_attron( const chtype attr) @@ -2244,6 +2576,12 @@ /* ./base/lib_slkatrset.c */ +#undef slk_attrset_sp +int slk_attrset_sp( + SCREEN *sp, + const chtype attr) + { return(*(int *)0); } + #undef slk_attrset int slk_attrset( const chtype attr) @@ -2251,18 +2589,34 @@ /* ./base/lib_slkattr.c */ +#undef slk_attr_sp +attr_t slk_attr_sp( + SCREEN *sp) + { return(*(attr_t *)0); } + #undef slk_attr attr_t slk_attr(void) { return(*(attr_t *)0); } /* ./base/lib_slkclear.c */ +#undef slk_clear_sp +int slk_clear_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_clear int slk_clear(void) { return(*(int *)0); } /* ./base/lib_slkcolor.c */ +#undef slk_color_sp +int slk_color_sp( + SCREEN *sp, + short color_pair_number) + { return(*(int *)0); } + #undef slk_color int slk_color( short color_pair_number) @@ -2270,6 +2624,12 @@ /* ./base/lib_slkinit.c */ +#undef slk_init_sp +int slk_init_sp( + SCREEN *sp, + int format) + { return(*(int *)0); } + #undef slk_init int slk_init( int format) @@ -2277,6 +2637,12 @@ /* ./base/lib_slklab.c */ +#undef slk_label_sp +char *slk_label_sp( + SCREEN *sp, + int n) + { return(*(char **)0); } + #undef slk_label char *slk_label( int n) @@ -2284,10 +2650,20 @@ /* ./base/lib_slkrefr.c */ +#undef slk_noutrefresh_sp +int slk_noutrefresh_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_noutrefresh int slk_noutrefresh(void) { return(*(int *)0); } +#undef slk_refresh_sp +int slk_refresh_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_refresh int slk_refresh(void) { return(*(int *)0); } @@ -2296,6 +2672,14 @@ #include +#undef slk_set_sp +int slk_set_sp( + SCREEN *sp, + int i, + const char *astr, + int format) + { return(*(int *)0); } + #undef slk_set int slk_set( int i, @@ -2305,6 +2689,11 @@ /* ./base/lib_slktouch.c */ +#undef slk_touch_sp +int slk_touch_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef slk_touch int slk_touch(void) { return(*(int *)0); } @@ -2367,8 +2756,8 @@ SCREEN *sp) { /* void */ } -#undef _nc_ungetch -int _nc_ungetch( +#undef ungetch_sp +int ungetch_sp( SCREEN *sp, int ch) { return(*(int *)0); } @@ -2380,11 +2769,23 @@ /* ./tty/lib_vidattr.c */ +#undef vidputs_sp +int vidputs_sp( + SCREEN *sp, + chtype newmode, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + #undef vidputs int vidputs( chtype newmode, - int (*outc)( - int p1)) + NCURSES_OUTC outc) + { return(*(int *)0); } + +#undef vidattr_sp +int vidattr_sp( + SCREEN *sp, + chtype newmode) { return(*(int *)0); } #undef vidattr @@ -2392,6 +2793,11 @@ chtype newmode) { return(*(int *)0); } +#undef termattrs_sp +chtype termattrs_sp( + SCREEN *sp) + { return(*(chtype *)0); } + #undef termattrs chtype termattrs(void) { return(*(chtype *)0); } @@ -2472,12 +2878,24 @@ /* ./base/nc_panel.c */ +#undef _nc_panelhook_sp +struct panelhook *_nc_panelhook_sp( + SCREEN *sp) + { return(*(struct panelhook **)0); } + #undef _nc_panelhook struct panelhook *_nc_panelhook(void) { return(*(struct panelhook **)0); } /* ./base/safe_sprintf.c */ +#undef _nc_printf_string_sp +char *_nc_printf_string_sp( + SCREEN *sp, + const char *fmt, + va_list ap) + { return(*(char **)0); } + #undef _nc_printf_string char *_nc_printf_string( const char *fmt, @@ -2489,10 +2907,24 @@ #include #include +#undef doupdate_sp +int doupdate_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef doupdate int doupdate(void) { return(*(int *)0); } +#undef _nc_scrolln_sp +int _nc_scrolln_sp( + SCREEN *sp, + int n, + int top, + int bot, + int maxy) + { return(*(int *)0); } + #undef _nc_scrolln int _nc_scrolln( int n, @@ -2501,18 +2933,39 @@ int maxy) { return(*(int *)0); } +#undef _nc_screen_resume_sp +void _nc_screen_resume_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_screen_resume void _nc_screen_resume(void) { /* void */ } +#undef _nc_screen_init_sp +void _nc_screen_init_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_screen_init void _nc_screen_init(void) { /* void */ } +#undef _nc_screen_wrap_sp +void _nc_screen_wrap_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_screen_wrap void _nc_screen_wrap(void) { /* void */ } +#undef _nc_do_xmc_glitch_sp +void _nc_do_xmc_glitch_sp( + SCREEN *sp, + attr_t previous) + { /* void */ } + #undef _nc_do_xmc_glitch void _nc_do_xmc_glitch( attr_t previous) @@ -2550,6 +3003,12 @@ void _nc_freeall(void) { /* void */ } +#undef _nc_free_and_exit_sp +void _nc_free_and_exit_sp( + SCREEN *sp, + int code) + { /* void */ } + #undef _nc_free_and_exit void _nc_free_and_exit( int code) @@ -2739,6 +3198,12 @@ mbstate_t *state) { return(*(size_t *)0); } +#undef unget_wch_sp +int unget_wch_sp( + SCREEN *sp, + const wchar_t wch) + { return(*(int *)0); } + #undef unget_wch int unget_wch( const wchar_t wch) @@ -2746,13 +3211,29 @@ /* ./widechar/lib_vid_attr.c */ +#undef vid_puts_sp +int vid_puts_sp( + SCREEN *sp, + attr_t newmode, + short pair, + void *opts, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + #undef vid_puts int vid_puts( attr_t newmode, short pair, void *opts, - int (*outc)( - int p1)) + NCURSES_OUTC outc) + { return(*(int *)0); } + +#undef vid_attr_sp +int vid_attr_sp( + SCREEN *sp, + attr_t newmode, + short pair, + void *opts) { return(*(int *)0); } #undef vid_attr @@ -2762,6 +3243,11 @@ void *opts) { return(*(int *)0); } +#undef term_attrs_sp +attr_t term_attrs_sp( + SCREEN *sp) + { return(*(attr_t *)0); } + #undef term_attrs attr_t term_attrs(void) { return(*(attr_t *)0); } @@ -2786,6 +3272,12 @@ /* ./widechar/lib_wunctrl.c */ +#undef wunctrl_sp +wchar_t *wunctrl_sp( + SCREEN *sp, + cchar_t *wc) + { return(*(wchar_t **)0); } + #undef wunctrl wchar_t *wunctrl( cchar_t *wc) @@ -2805,6 +3297,24 @@ attr_t at) { /* void */ } +#undef _nc_DelCharCost_sp +int _nc_DelCharCost_sp( + SCREEN *sp, + int count) + { return(*(int *)0); } + +#undef _nc_InsCharCost_sp +int _nc_InsCharCost_sp( + SCREEN *sp, + int count) + { return(*(int *)0); } + +#undef _nc_UpdateAttrs_sp +void _nc_UpdateAttrs_sp( + SCREEN *sp, + const cchar_t *c) + { /* void */ } + #undef _nc_DelCharCost int _nc_DelCharCost( int count) @@ -2817,11 +3327,17 @@ #undef _nc_UpdateAttrs void _nc_UpdateAttrs( - cchar_t c) + const cchar_t *c) { /* void */ } /* ./base/legacy_coding.c */ +#undef use_legacy_coding_sp +int use_legacy_coding_sp( + SCREEN *sp, + int level) + { return(*(int *)0); } + #undef use_legacy_coding int use_legacy_coding( int level) @@ -2829,10 +3345,22 @@ /* ./base/lib_dft_fgbg.c */ +#undef use_default_colors_sp +int use_default_colors_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef use_default_colors int use_default_colors(void) { return(*(int *)0); } +#undef assume_default_colors_sp +int assume_default_colors_sp( + SCREEN *sp, + int fg, + int bg) + { return(*(int *)0); } + #undef assume_default_colors int assume_default_colors( int fg, @@ -2841,6 +3369,13 @@ /* ./tinfo/lib_print.c */ +#undef mcprint_sp +int mcprint_sp( + SCREEN *sp, + char *data, + int len) + { return(*(int *)0); } + #undef mcprint int mcprint( char *data, @@ -2849,18 +3384,39 @@ /* ./base/resizeterm.c */ +#undef is_term_resized_sp +NCURSES_BOOL is_term_resized_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(NCURSES_BOOL *)0); } + #undef is_term_resized NCURSES_BOOL is_term_resized( int ToLines, int ToCols) { return(*(NCURSES_BOOL *)0); } +#undef resize_term_sp +int resize_term_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(int *)0); } + #undef resize_term int resize_term( int ToLines, int ToCols) { return(*(int *)0); } +#undef resizeterm_sp +int resizeterm_sp( + SCREEN *sp, + int ToLines, + int ToCols) + { return(*(int *)0); } + #undef resizeterm int resizeterm( int ToLines, @@ -3143,6 +3699,11 @@ #undef acs_map chtype acs_map[128]; +#undef _nc_init_acs_sp +void _nc_init_acs_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_init_acs void _nc_init_acs(void) { /* void */ } @@ -3166,6 +3727,11 @@ int BaudRate) { return(*(int *)0); } +#undef baudrate_sp +int baudrate_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef baudrate int baudrate(void) { return(*(int *)0); } @@ -3180,6 +3746,12 @@ TERMINAL *termp) { return(*(TERMINAL **)0); } +#undef del_curterm_sp +int del_curterm_sp( + SCREEN *sp, + TERMINAL *termp) + { return(*(int *)0); } + #undef del_curterm int del_curterm( TERMINAL *termp) @@ -3202,26 +3774,56 @@ #undef _nc_prescreen NCURSES_PRESCREEN _nc_prescreen; +#undef _nc_screen_of +SCREEN *_nc_screen_of( + WINDOW *win) + { return(*(SCREEN **)0); } + /* ./tinfo/lib_has_cap.c */ +#undef has_ic_sp +NCURSES_BOOL has_ic_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef has_ic NCURSES_BOOL has_ic(void) { return(*(NCURSES_BOOL *)0); } +#undef has_il_sp +NCURSES_BOOL has_il_sp( + SCREEN *sp) + { return(*(NCURSES_BOOL *)0); } + #undef has_il NCURSES_BOOL has_il(void) { return(*(NCURSES_BOOL *)0); } /* ./tinfo/lib_kernel.c */ +#undef erasechar_sp +char erasechar_sp( + SCREEN *sp) + { return(*(char *)0); } + #undef erasechar char erasechar(void) { return(*(char *)0); } +#undef killchar_sp +char killchar_sp( + SCREEN *sp) + { return(*(char *)0); } + #undef killchar char killchar(void) { return(*(char *)0); } +#undef flushinp_sp +int flushinp_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef flushinp int flushinp(void) { return(*(int *)0); } @@ -3230,8 +3832,8 @@ struct kn { short offset; int code; }; -#undef _nc_keyname -char *_nc_keyname( +#undef keyname_sp +char *keyname_sp( SCREEN *sp, int c) { return(*(char **)0); } @@ -3251,6 +3853,12 @@ #include +#undef napms_sp +int napms_sp( + SCREEN *sp, + int ms) + { return(*(int *)0); } + #undef napms int napms( int ms) @@ -3270,6 +3878,12 @@ NCURSES_BOOL flag) { /* void */ } +#undef halfdelay_sp +int halfdelay_sp( + SCREEN *sp, + int t) + { return(*(int *)0); } + #undef halfdelay int halfdelay( int t) @@ -3305,21 +3919,52 @@ NCURSES_BOOL flag) { return(*(int *)0); } +#undef curs_set_sp +int curs_set_sp( + SCREEN *sp, + int vis) + { return(*(int *)0); } + #undef curs_set int curs_set( int vis) { return(*(int *)0); } +#undef typeahead_sp +int typeahead_sp( + SCREEN *sp, + int fd) + { return(*(int *)0); } + #undef typeahead int typeahead( int fd) { return(*(int *)0); } +#undef has_key_sp +int has_key_sp( + SCREEN *sp, + int keycode) + { return(*(int *)0); } + #undef has_key int has_key( int keycode) { return(*(int *)0); } +#undef _nc_putp_flush_sp +int _nc_putp_flush_sp( + SCREEN *sp, + const char *name, + const char *value) + { return(*(int *)0); } + +#undef _nc_putp_flush +int _nc_putp_flush( + const char *name, + const char *value) + { return(*(int *)0); } + #undef _nc_keypad int _nc_keypad( SCREEN *sp, @@ -3328,30 +3973,67 @@ /* ./tinfo/lib_raw.c */ +#undef raw_sp +int raw_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef raw int raw(void) { return(*(int *)0); } +#undef cbreak_sp +int cbreak_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef cbreak int cbreak(void) { return(*(int *)0); } +#undef qiflush_sp +void qiflush_sp( + SCREEN *sp) + { /* void */ } + #undef qiflush void qiflush(void) { /* void */ } +#undef noraw_sp +int noraw_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef noraw int noraw(void) { return(*(int *)0); } +#undef nocbreak_sp +int nocbreak_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef nocbreak int nocbreak(void) { return(*(int *)0); } +#undef noqiflush_sp +void noqiflush_sp( + SCREEN *sp) + { /* void */ } + #undef noqiflush void noqiflush(void) { /* void */ } +#undef intrflush_sp +int intrflush_sp( + SCREEN *sp, + WINDOW *win, + NCURSES_BOOL flag) + { return(*(int *)0); } + #undef intrflush int intrflush( WINDOW *win, @@ -3373,6 +4055,12 @@ #undef TABSIZE int TABSIZE; +#undef set_tabsize_sp +int set_tabsize_sp( + SCREEN *sp, + int value) + { return(*(int *)0); } + #undef set_tabsize int set_tabsize( int value) @@ -3383,6 +4071,12 @@ SCREEN *sp) { return(*(int *)0); } +#undef use_env_sp +void use_env_sp( + SCREEN *sp, + NCURSES_BOOL f) + { /* void */ } + #undef use_env void use_env( NCURSES_BOOL f) @@ -3435,8 +4129,9 @@ #undef BC char *BC; -#undef tgetent -int tgetent( +#undef tgetent_sp +int tgetent_sp( + SCREEN *sp, char *bufp, const char *name) { return(*(int *)0); } @@ -3447,16 +4142,41 @@ #endif +#undef tgetent +int tgetent( + char *bufp, + const char *name) + { return(*(int *)0); } + +#undef tgetflag_sp +int tgetflag_sp( + SCREEN *sp, + char *id) + { return(*(int *)0); } + #undef tgetflag int tgetflag( char *id) { return(*(int *)0); } +#undef tgetnum_sp +int tgetnum_sp( + SCREEN *sp, + char *id) + { return(*(int *)0); } + #undef tgetnum int tgetnum( char *id) { return(*(int *)0); } +#undef tgetstr_sp +char *tgetstr_sp( + SCREEN *sp, + char *id, + char **area) + { return(*(char **)0); } + #undef tgetstr char *tgetstr( char *id, @@ -3465,6 +4185,11 @@ /* ./tinfo/lib_termname.c */ +#undef termname_sp +char *termname_sp( + SCREEN *sp) + { return(*(char **)0); } + #undef termname char *termname(void) { return(*(char **)0); } @@ -3480,16 +4205,34 @@ /* ./tinfo/lib_ti.c */ +#undef tigetflag_sp +int tigetflag_sp( + SCREEN *sp, + char *str) + { return(*(int *)0); } + #undef tigetflag int tigetflag( char *str) { return(*(int *)0); } +#undef tigetnum_sp +int tigetnum_sp( + SCREEN *sp, + char *str) + { return(*(int *)0); } + #undef tigetnum int tigetnum( char *str) { return(*(int *)0); } +#undef tigetstr_sp +char *tigetstr_sp( + SCREEN *sp, + char *str) + { return(*(char **)0); } + #undef tigetstr char *tigetstr( char *str) @@ -3527,25 +4270,75 @@ SCREEN *sp) { /* void */ } +#undef delay_output_sp +int delay_output_sp( + SCREEN *sp, + int ms) + { return(*(int *)0); } + #undef delay_output int delay_output( int ms) { return(*(int *)0); } +#undef _nc_flush_sp +void _nc_flush_sp( + SCREEN *sp) + { /* void */ } + #undef _nc_flush void _nc_flush(void) { /* void */ } +#undef _nc_outch_sp +int _nc_outch_sp( + SCREEN *sp, + int ch) + { return(*(int *)0); } + #undef _nc_outch int _nc_outch( int ch) { return(*(int *)0); } +#undef putp_sp +int putp_sp( + SCREEN *sp, + const char *string) + { return(*(int *)0); } + +#undef _nc_putp_sp +int _nc_putp_sp( + SCREEN *sp, + const char *name, + const char *string) + { return(*(int *)0); } + #undef putp int putp( const char *string) { return(*(int *)0); } +#undef _nc_putp +int _nc_putp( + const char *name, + const char *string) + { return(*(int *)0); } + +#undef tputs_sp +int tputs_sp( + SCREEN *sp, + const char *string, + int affcnt, + NCURSES_OUTC_sp outc) + { return(*(int *)0); } + +#undef _nc_outc_wrapper +int _nc_outc_wrapper( + SCREEN *sp, + int c) + { return(*(int *)0); } + #undef tputs int tputs( const char *string, @@ -3701,36 +4494,78 @@ /* ./tinfo/lib_ttyflags.c */ +#undef _nc_get_tty_mode_sp +int _nc_get_tty_mode_sp( + SCREEN *sp, + struct termios *buf) + { return(*(int *)0); } + #undef _nc_get_tty_mode int _nc_get_tty_mode( struct termios *buf) { return(*(int *)0); } +#undef _nc_set_tty_mode_sp +int _nc_set_tty_mode_sp( + SCREEN *sp, + struct termios *buf) + { return(*(int *)0); } + #undef _nc_set_tty_mode int _nc_set_tty_mode( struct termios *buf) { return(*(int *)0); } +#undef def_shell_mode_sp +int def_shell_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef def_shell_mode int def_shell_mode(void) { return(*(int *)0); } +#undef def_prog_mode_sp +int def_prog_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef def_prog_mode int def_prog_mode(void) { return(*(int *)0); } +#undef reset_prog_mode_sp +int reset_prog_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef reset_prog_mode int reset_prog_mode(void) { return(*(int *)0); } +#undef reset_shell_mode_sp +int reset_shell_mode_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef reset_shell_mode int reset_shell_mode(void) { return(*(int *)0); } +#undef savetty_sp +int savetty_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef savetty int savetty(void) { return(*(int *)0); } +#undef resetty_sp +int resetty_sp( + SCREEN *sp) + { return(*(int *)0); } + #undef resetty int resetty(void) { return(*(int *)0); } @@ -3810,6 +4645,13 @@ /* ./tinfo/setbuf.c */ +#undef _nc_set_buffer_sp +void _nc_set_buffer_sp( + SCREEN *sp, + FILE *ofp, + NCURSES_BOOL buffered) + { /* void */ } + #undef _nc_set_buffer void _nc_set_buffer( FILE *ofp, @@ -3901,8 +4743,8 @@ /* ./unctrl.c */ -#undef _nc_unctrl -char *_nc_unctrl( +#undef unctrl_sp +char *unctrl_sp( SCREEN *sp, chtype ch) { return(*(char **)0); } @@ -4173,6 +5015,13 @@ /* ./base/define_key.c */ +#undef define_key_sp +int define_key_sp( + SCREEN *sp, + const char *str, + int keycode) + { return(*(int *)0); } + #undef define_key int define_key( const char *str, @@ -4187,6 +5036,12 @@ /* ./base/key_defined.c */ +#undef key_defined_sp +int key_defined_sp( + SCREEN *sp, + const char *str) + { return(*(int *)0); } + #undef key_defined int key_defined( const char *str) @@ -4194,6 +5049,13 @@ /* ./base/keybound.c */ +#undef keybound_sp +char *keybound_sp( + SCREEN *sp, + int code, + int count) + { return(*(char **)0); } + #undef keybound char *keybound( int code, @@ -4202,6 +5064,13 @@ /* ./base/keyok.c */ +#undef keyok_sp +int keyok_sp( + SCREEN *sp, + int c, + NCURSES_BOOL flag) + { return(*(int *)0); } + #undef keyok int keyok( int c, 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-09-12 08:52:04.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.119 2009/08/10 09:06:37 tom 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@ @@ -164,11 +165,12 @@ hashmap$x \ lib_mvcur$x -base = $(srcdir)/base -serial = $(srcdir)/tty -tinfo = $(srcdir)/tinfo -trace = $(srcdir)/trace -wide = $(srcdir)/widechar +base = $(srcdir)/base +serial = $(srcdir)/tty +tinfo = $(srcdir)/tinfo +trace = $(srcdir)/trace +wide = $(srcdir)/widechar +win32con = $(srcdir)/win32con ################################################################################ all \ @@ -200,11 +202,11 @@ $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS) make_hash$(BUILD_EXEEXT) : \ - $(tinfo)/comp_hash.c \ + $(tinfo)/make_hash.c \ ../include/hashsize.h - $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS) + $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS) -./expanded.c : $(serial)/MKexpanded.sh +./expanded.c : $(srcdir)/curses.priv.h $(serial)/MKexpanded.sh sh -e $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@ ./comp_captab.c: \ diff -Naur ncurses-5.7.orig/ncurses/modules ncurses-5.7/ncurses/modules --- ncurses-5.7.orig/ncurses/modules 2007-09-08 15:03:34.000000000 -0700 +++ ncurses-5.7/ncurses/modules 2009-09-12 08:51:52.000000000 -0700 @@ -1,6 +1,6 @@ -# $Id: modules,v 1.112 2007/09/08 22:03:34 tom Exp $ +# $Id: modules,v 1.113 2009/07/11 17:45:32 tom 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"), # @@ -162,7 +162,9 @@ add_tries lib $(tinfo) alloc_ttype lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h codes lib . +comp_captab lib . $(INCDIR)/tic.h ../include/term.h ../include/hashsize.h comp_error lib $(tinfo) $(INCDIR)/tic.h +comp_hash lib $(tinfo) ../include/term.h $(INCDIR)/tic.h ../include/hashsize.h db_iterator lib $(tinfo) $(INCDIR)/tic.h doalloc lib $(tinfo) entries lib $(tinfo) ../include/term.h $(INCDIR)/tic.h @@ -212,9 +214,7 @@ @ ticlib alloc_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h captoinfo lib $(tinfo) $(INCDIR)/tic.h -comp_captab lib . $(INCDIR)/tic.h ../include/term.h ../include/hashsize.h comp_expand lib $(tinfo) $(INCDIR)/tic.h -comp_hash lib $(tinfo) ../include/term.h $(INCDIR)/tic.h ../include/hashsize.h comp_parse lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h comp_scan lib $(tinfo) $(INCDIR)/tic.h parse_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c diff -Naur ncurses-5.7.orig/ncurses/README ncurses-5.7/ncurses/README --- ncurses-5.7.orig/ncurses/README 2006-04-22 15:19:37.000000000 -0700 +++ ncurses-5.7/ncurses/README 2009-09-12 08:51:49.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 -- @@ -25,7 +25,26 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: README,v 1.9 2006/04/22 22:19:37 tom Exp $ +-- $Id: README,v 1.10 2009/06/27 14:44:30 tom Exp $ ------------------------------------------------------------------------------- For discussion of the package internals, see hackguide.html in the doc/html directory. + +------------------------------------------------------------------------------- +The llib-lXXXX files could be used as lint-library sources (and were, at one +time). However, they are actually used as a documentation aid to keep track +of changes to the public/private interfaces in ncurses. Most of the text in +these files is generated using cproto; some manual cleanup and adjustment of +types (to reflect #define's in curses.h) is needed. The functions listed in +the llib-lXXXX files do not correspond to the default configure options; some +additional ones are added to include "all" of the entrypoints for each of the +major configurations (normal, wide-character, threaded): + + --disable-macros + --disable-root-environ + --enable-expanded + --enable-getcap + --enable-getcap-cache + --enable-sp-funcs + --enable-termcap + --with-develop 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-09-12 08:51:28.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 #include -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-09-12 08:51:30.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 #include -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-09-12 08:51:25.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 #include -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_hash.c ncurses-5.7/ncurses/tinfo/comp_hash.c --- ncurses-5.7.orig/ncurses/tinfo/comp_hash.c 2008-08-16 10:06:53.000000000 -0700 +++ ncurses-5.7/ncurses/tinfo/comp_hash.c 2009-09-12 08:52:02.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,110 +44,36 @@ #include #include -#ifdef MAIN_PROGRAM -#include -#undef DEBUG -#define DEBUG(level, params) /*nothing */ -#endif - -MODULE_ID("$Id: comp_hash.c,v 1.36 2008/08/16 17:06:53 tom Exp $") - -static int hash_function(const char *); - -/* - * _nc_make_hash_table() - * - * Takes the entries in table[] and hashes them into hash_table[] - * by name. There are CAPTABSIZE entries in table[] and HASHTABSIZE - * slots in hash_table[]. - * - */ - -#ifdef MAIN_PROGRAM - -#undef MODULE_ID -#define MODULE_ID(id) /*nothing */ -#include - -static void -_nc_make_hash_table(struct name_table_entry *table, - short *hash_table) -{ - short i; - int hashvalue; - int collisions = 0; - - for (i = 0; i < HASHTABSIZE; i++) { - hash_table[i] = -1; - } - for (i = 0; i < CAPTABSIZE; i++) { - hashvalue = hash_function(table[i].nte_name); - - if (hash_table[hashvalue] >= 0) - collisions++; - - if (hash_table[hashvalue] != 0) - table[i].nte_link = hash_table[hashvalue]; - hash_table[hashvalue] = i; - } - - DEBUG(4, ("Hash table complete: %d collisions out of %d entries", - collisions, CAPTABSIZE)); -} -#endif +MODULE_ID("$Id: comp_hash.c,v 1.48 2009/08/08 17:36:21 tom Exp $") /* - * int hash_function(string) - * - * Computes the hashing function on the given string. - * - * The current hash function is the sum of each consectutive pair - * of characters, taken as two-byte integers, mod HASHTABSIZE. - * + * Finds the entry for the given string in the hash table if present. + * Returns a pointer to the entry in the table or 0 if not found. */ - -static int -hash_function(const char *string) -{ - long sum = 0; - - DEBUG(9, ("hashing %s", string)); - while (*string) { - sum += (long) (*string + (*(string + 1) << 8)); - string++; - } - - DEBUG(9, ("sum is %ld", sum)); - return (int) (sum % HASHTABSIZE); -} - -/* - * struct name_table_entry * - * find_entry(string) - * - * Finds the entry for the given string in the hash table if present. - * Returns a pointer to the entry in the table or 0 if not found. - * - */ - -#ifndef MAIN_PROGRAM +/* entrypoint used by tack (do not alter) */ NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry(const char *string, - const short *hash_table) + const HashValue * hash_table) { + bool termcap = (hash_table != _nc_get_hash_table(FALSE)); + const HashData *data = _nc_get_hash_info(termcap); int hashvalue; struct name_table_entry const *ptr = 0; struct name_table_entry const *real_table; - hashvalue = hash_function(string); + hashvalue = data->hash_of(string); + + if (data->table_data[hashvalue] >= 0) { - if (hash_table[hashvalue] >= 0) { - real_table = _nc_get_table(hash_table != _nc_get_hash_table(FALSE)); - ptr = real_table + hash_table[hashvalue]; - while (strcmp(ptr->nte_name, string) != 0) { - if (ptr->nte_link < 0) - return 0; - ptr = real_table + (ptr->nte_link + hash_table[HASHTABSIZE]); + real_table = _nc_get_table(termcap); + ptr = real_table + data->table_data[hashvalue]; + while (!data->compare_names(ptr->nte_name, string)) { + if (ptr->nte_link < 0) { + ptr = 0; + break; + } + ptr = real_table + (ptr->nte_link + + data->table_data[data->table_size]); } } @@ -155,216 +81,34 @@ } /* - * struct name_table_entry * - * find_type_entry(string, type, table) + * Finds the entry for the given name with the given type in the given table if + * present (as distinct from _nc_find_entry, which finds the last entry + * regardless of type). * - * Finds the first entry for the given name with the given type in the - * given table if present (as distinct from find_entry, which finds the - * the last entry regardless of type). You can use this if you detect - * a name clash. It's slower, though. Returns a pointer to the entry - * in the table or 0 if not found. + * Returns a pointer to the entry in the table or 0 if not found. */ - NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry(const char *string, int type, - const struct name_table_entry *table) + bool termcap) { - struct name_table_entry const *ptr; - - for (ptr = table; ptr < table + CAPTABSIZE; ptr++) { - if (ptr->nte_type == type && strcmp(string, ptr->nte_name) == 0) - return (ptr); - } - - return ((struct name_table_entry *) NULL); -} -#endif - -#ifdef MAIN_PROGRAM -/* - * This filter reads from standard input a list of tab-delimited columns, - * (e.g., from Caps.filtered) computes the hash-value of a specified column and - * writes the hashed tables to standard output. - * - * By compiling the hash table at build time, we're able to make the entire - * set of terminfo and termcap tables readonly (and also provide some runtime - * performance enhancement). - */ - -#define MAX_COLUMNS BUFSIZ /* this _has_ to be worst-case */ - -static char ** -parse_columns(char *buffer) -{ - static char **list; - - int col = 0; - - if (list == 0 && (list = typeCalloc(char *, MAX_COLUMNS)) == 0) - return (0); - - if (*buffer != '#') { - while (*buffer != '\0') { - char *s; - for (s = buffer; (*s != '\0') && !isspace(UChar(*s)); s++) - /*EMPTY */ ; - if (s != buffer) { - char mark = *s; - *s = '\0'; - if ((s - buffer) > 1 - && (*buffer == '"') - && (s[-1] == '"')) { /* strip the quotes */ - assert(s > buffer + 1); - s[-1] = '\0'; - buffer++; - } - list[col] = buffer; - col++; - if (mark == '\0') - break; - while (*++s && isspace(UChar(*s))) - /*EMPTY */ ; - buffer = s; - } else + struct name_table_entry const *ptr = NULL; + const HashData *data = _nc_get_hash_info(termcap); + int hashvalue = data->hash_of(string); + + if (data->table_data[hashvalue] >= 0) { + const struct name_table_entry *const table = _nc_get_table(termcap); + + ptr = table + data->table_data[hashvalue]; + while (ptr->nte_type != type + || !data->compare_names(ptr->nte_name, string)) { + if (ptr->nte_link < 0) { + ptr = 0; break; - } - } - return col ? list : 0; -} - -int -main(int argc, char **argv) -{ - struct name_table_entry *name_table = typeCalloc(struct - name_table_entry, CAPTABSIZE); - short *hash_table = typeCalloc(short, HASHTABSIZE); - const char *root_name = ""; - int column = 0; - int bigstring = 0; - int n; - char buffer[BUFSIZ]; - - static const char *typenames[] = - {"BOOLEAN", "NUMBER", "STRING"}; - - short BoolCount = 0; - short NumCount = 0; - short StrCount = 0; - - /* The first argument is the column-number (starting with 0). - * The second is the root name of the tables to generate. - */ - if (argc <= 3 - || (column = atoi(argv[1])) <= 0 - || (column >= MAX_COLUMNS) - || *(root_name = argv[2]) == 0 - || (bigstring = atoi(argv[3])) < 0 - || name_table == 0 - || hash_table == 0) { - fprintf(stderr, "usage: make_hash column root_name bigstring\n"); - exit(EXIT_FAILURE); - } - - /* - * Read the table into our arrays. - */ - for (n = 0; (n < CAPTABSIZE) && fgets(buffer, BUFSIZ, stdin);) { - char **list, *nlp = strchr(buffer, '\n'); - if (nlp) - *nlp = '\0'; - list = parse_columns(buffer); - if (list == 0) /* blank or comment */ - continue; - name_table[n].nte_link = -1; /* end-of-hash */ - name_table[n].nte_name = strdup(list[column]); - if (!strcmp(list[2], "bool")) { - name_table[n].nte_type = BOOLEAN; - name_table[n].nte_index = BoolCount++; - } else if (!strcmp(list[2], "num")) { - name_table[n].nte_type = NUMBER; - name_table[n].nte_index = NumCount++; - } else if (!strcmp(list[2], "str")) { - name_table[n].nte_type = STRING; - name_table[n].nte_index = StrCount++; - } else { - fprintf(stderr, "Unknown type: %s\n", list[2]); - exit(EXIT_FAILURE); - } - n++; - } - _nc_make_hash_table(name_table, hash_table); - - /* - * Write the compiled tables to standard output - */ - if (bigstring) { - int len = 0; - int nxt; - - printf("static const char %s_names_text[] = \\\n", root_name); - for (n = 0; n < CAPTABSIZE; n++) { - nxt = (int) strlen(name_table[n].nte_name) + 5; - if (nxt + len > 72) { - printf("\\\n"); - len = 0; } - printf("\"%s\\0\" ", name_table[n].nte_name); - len += nxt; - } - printf(";\n\n"); - - len = 0; - printf("static name_table_data const %s_names_data[] =\n", - root_name); - printf("{\n"); - for (n = 0; n < CAPTABSIZE; n++) { - printf("\t{ %15d,\t%10s,\t%3d, %3d }%c\n", - len, - typenames[name_table[n].nte_type], - name_table[n].nte_index, - name_table[n].nte_link, - n < CAPTABSIZE - 1 ? ',' : ' '); - len += (int) strlen(name_table[n].nte_name) + 1; + ptr = table + (ptr->nte_link + data->table_data[data->table_size]); } - printf("};\n\n"); - printf("static struct name_table_entry *_nc_%s_table = 0;\n\n", root_name); - } else { - - printf("static struct name_table_entry %s _nc_%s_table[] =\n", - bigstring ? "" : "const", - root_name); - printf("{\n"); - for (n = 0; n < CAPTABSIZE; n++) { - sprintf(buffer, "\"%s\"", - name_table[n].nte_name); - printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n", - buffer, - typenames[name_table[n].nte_type], - name_table[n].nte_index, - name_table[n].nte_link, - n < CAPTABSIZE - 1 ? ',' : ' '); - } - printf("};\n\n"); - } - - printf("static const short _nc_%s_hash_table[%d] =\n", - root_name, - HASHTABSIZE + 1); - printf("{\n"); - for (n = 0; n < HASHTABSIZE; n++) { - printf("\t%3d,\n", hash_table[n]); } - printf("\t0\t/* base-of-table */\n"); - printf("};\n\n"); - - printf("#if (BOOLCOUNT!=%d)||(NUMCOUNT!=%d)||(STRCOUNT!=%d)\n", - BoolCount, NumCount, StrCount); - printf("#error\t--> term.h and comp_captab.c disagree about the <--\n"); - printf("#error\t--> numbers of booleans, numbers and/or strings <--\n"); - printf("#endif\n\n"); - free(hash_table); - return EXIT_SUCCESS; + return ptr; } -#endif diff -Naur ncurses-5.7.orig/ncurses/tinfo/comp_parse.c ncurses-5.7/ncurses/tinfo/comp_parse.c --- ncurses-5.7.orig/ncurses/tinfo/comp_parse.c 2008-08-16 14:58:16.000000000 -0700 +++ ncurses-5.7/ncurses/tinfo/comp_parse.c 2009-09-12 08:51: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 * @@ -53,7 +53,7 @@ #include #include -MODULE_ID("$Id: comp_parse.c,v 1.69 2008/08/16 21:58:16 tom Exp $") +MODULE_ID("$Id: comp_parse.c,v 1.70 2009/07/18 20:38:52 tom Exp $") static void sanity_check2(TERMTYPE *, bool); NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2; @@ -92,16 +92,18 @@ } return src; } +#define ForceBar(dst, src) ((strchr(src, '|') == 0) ? force_bar(dst, src) : src) NCURSES_EXPORT(bool) _nc_entry_match(char *n1, char *n2) /* do any of the aliases in a pair of terminal names match? */ { char *pstart, *qstart, *pend, *qend; - char nc1[MAX_NAME_SIZE + 2], nc2[MAX_NAME_SIZE + 2]; + char nc1[MAX_NAME_SIZE + 2]; + char nc2[MAX_NAME_SIZE + 2]; - n1 = force_bar(nc1, n1); - n2 = force_bar(nc2, n2); + n1 = ForceBar(nc1, n1); + n2 = ForceBar(nc2, n2); for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1) for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1) 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-09-12 08:51:37.000000000 -0700 @@ -51,7 +51,7 @@ #include #include -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-09-12 08:51:52.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 * @@ -28,6 +28,7 @@ /**************************************************************************** * Author: Thomas E. Dickey * + * and: Juergen Pfeifer * ****************************************************************************/ #include @@ -37,7 +38,7 @@ #include #include -MODULE_ID("$Id: entries.c,v 1.8 2008/09/27 13:11:10 tom Exp $") +MODULE_ID("$Id: entries.c,v 1.15 2009/07/11 14:42:42 tom Exp $") /**************************************************************************** * @@ -119,6 +120,11 @@ #if NO_LEAKS _nc_free_tparm(); _nc_tgetent_leaks(); + + if (TerminalOf(CURRENT_SCREEN) != 0) { + del_curterm(TerminalOf(CURRENT_SCREEN)); + } + _nc_free_entries(_nc_head); _nc_get_type(0); _nc_first_name(0); @@ -131,6 +137,12 @@ if ((s = _nc_home_terminfo()) != 0) free(s); + +#ifdef TRACE + trace(0); + _nc_trace_buf(-1, 0); +#endif + #endif /* NO_LEAKS */ returnVoid; } 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-09-12 08:50: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 @@ -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-09-12 08:51:37.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 - -#include -/* keypad_xmit, keypad_local, meta_on, meta_off */ -/* cursor_visible,cursor_normal,cursor_invisible */ - #include /* struct tinfo_fkeys */ #include -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-09-12 08:51:43.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,17 +30,21 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * ****************************************************************************/ #include -#include /* 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.40 2009/06/06 18:08:04 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,17 +52,35 @@ } #undef MyBuffer #else -NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] = +NCURSES_EXPORT_VAR (chtype) acs_map[ACS_LEN] = { 0 }; #endif +#ifdef USE_TERM_DRIVER +NCURSES_EXPORT(chtype) +NCURSES_SP_NAME(_nc_acs_char) (NCURSES_SP_DCLx int c) +{ + chtype *map; + if (c < 0 || c >= ACS_LEN) + return (chtype) 0; + map = (SP_PARM != 0) ? SP_PARM->_acs_map : +#if BROKEN_LINKER || USE_REENTRANT + _nc_prescreen.real_acs_map +#else + acs_map +#endif + ; + return map[c]; +} +#endif /* USE_TERM_DRIVER */ + NCURSES_EXPORT(void) -_nc_init_acs(void) +NCURSES_SP_NAME(_nc_init_acs) (NCURSES_SP_DCL0) { chtype *fake_map = acs_map; - chtype *real_map = SP != 0 ? SP->_acs_map : fake_map; + chtype *real_map = SP_PARM != 0 ? SP_PARM->_acs_map : fake_map; int j; T(("initializing ACS map")); @@ -72,8 +94,8 @@ for (j = 1; j < ACS_LEN; ++j) { real_map[j] = 0; fake_map[j] = A_ALTCHARSET | j; - if (SP) - SP->_screen_acs_map[j] = FALSE; + if (SP_PARM) + SP_PARM->_screen_acs_map[j] = FALSE; } } else { for (j = 1; j < ACS_LEN; ++j) { @@ -119,6 +141,9 @@ real_map['|'] = '!'; /* should be not-equal */ real_map['}'] = 'f'; /* should be pound-sterling symbol */ +#ifdef USE_TERM_DRIVER + CallDriver_2(SP_PARM, initacs, real_map, fake_map); +#else if (ena_acs != NULL) { TPUTS_TRACE("ena_acs"); putp(ena_acs); @@ -191,4 +216,13 @@ _nc_unlock_global(tracef); } #endif /* TRACE */ +#endif +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) +_nc_init_acs(void) +{ + NCURSES_SP_NAME(_nc_init_acs) (CURRENT_SCREEN); } +#endif 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-09-12 08:51:37.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 -#include /* cur_term, pad_char */ #include /* ospeed */ #if defined(__FreeBSD__) #include @@ -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-09-12 08:52:09.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,23 +40,41 @@ #include /* TTY, cur_term */ #include /* 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.26 2009/09/05 18:05:27 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_SP_NAME(_nc_get_cur_term) (NCURSES_SP_DCL0) +{ + return ((0 != TerminalOf(SP_PARM)) ? TerminalOf(SP_PARM) : CurTerm); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(TERMINAL *) +_nc_get_cur_term(void) +{ + return NCURSES_SP_NAME(_nc_get_cur_term) (CURRENT_SCREEN); +} +#endif + NCURSES_EXPORT(TERMINAL *) NCURSES_PUBLIC_VAR(cur_term) (void) { - return (SP != 0 && SP->_term != 0) ? SP->_term : _nc_prescreen._cur_term; + return NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_ARG); } + #else NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0; #endif NCURSES_EXPORT(TERMINAL *) -set_curterm(TERMINAL * termp) +NCURSES_SP_NAME(set_curterm) (NCURSES_SP_DCLx TERMINAL * termp) { TERMINAL *oldterm; @@ -64,18 +82,27 @@ _nc_lock_global(curses); oldterm = cur_term; - if (SP) - SP->_term = termp; -#if BROKEN_LINKER || USE_REENTRANT - _nc_prescreen._cur_term = termp; -#else + if (SP_PARM) + SP_PARM->_term = termp; +#if BROKEN_LINKER && !USE_REENTRANT cur_term = termp; +#else + CurTerm = termp; #endif if (termp != 0) { +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp; + ospeed = _nc_ospeed(termp->_baudrate); + if (TCB->drv->isTerminfo && termp->type.Strings) { + PC = (char) ((pad_char != NULL) ? pad_char[0] : 0); + } + TCB->csp = SP_PARM; +#else ospeed = _nc_ospeed(termp->_baudrate); if (termp->type.Strings) { PC = (char) ((pad_char != NULL) ? pad_char[0] : 0); } +#endif } _nc_unlock_global(curses); @@ -83,23 +110,65 @@ return (oldterm); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(TERMINAL *) +set_curterm(TERMINAL * termp) +{ + return NCURSES_SP_NAME(set_curterm) (CURRENT_SCREEN, termp); +} +#endif + NCURSES_EXPORT(int) -del_curterm(TERMINAL * termp) +NCURSES_SP_NAME(del_curterm) (NCURSES_SP_DCLx TERMINAL * termp) { int rc = ERR; - T((T_CALLED("del_curterm(%p)"), termp)); + T((T_CALLED("del_curterm(%p, %p)"), SP_PARM, termp)); - _nc_lock_global(curses); if (termp != 0) { +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp; +#endif + TERMINAL *cur = ( +#if BROKEN_LINKER && !USE_REENTRANT + cur_term +#elif BROKEN_LINKER || USE_REENTRANT + NCURSES_SP_NAME(_nc_get_cur_term) (NCURSES_SP_ARG) +#else + cur_term +#endif + ); + _nc_free_termtype(&(termp->type)); + if (termp == cur) + NCURSES_SP_NAME(set_curterm) (NCURSES_SP_ARGx 0); + FreeIfNeeded(termp->_termname); +#if USE_HOME_TERMINFO + if (_nc_globals.home_terminfo != 0) + FreeAndNull(_nc_globals.home_terminfo); +#endif +#ifdef USE_TERM_DRIVER + if (TCB->drv) + TCB->drv->release(TCB); +#endif free(termp); - if (termp == cur_term) - set_curterm(0); + rc = OK; } + returnCode(rc); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +del_curterm(TERMINAL * termp) +{ + int rc = ERR; + + _nc_lock_global(curses); + rc = NCURSES_SP_NAME(del_curterm) (CURRENT_SCREEN, termp); _nc_unlock_global(curses); - returnCode(rc); + 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-09-12 08:51:47.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * ****************************************************************************/ /* @@ -41,7 +42,7 @@ #include -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.55 2009/06/07 14:48:25 tom Exp $") /* * OS/2's native linker complains if we don't initialize public data when @@ -51,17 +52,17 @@ NCURSES_EXPORT(WINDOW *) NCURSES_PUBLIC_VAR(stdscr) (void) { - return SP ? SP->_stdscr : 0; + return CURRENT_SCREEN ? StdScreen(CURRENT_SCREEN) : 0; } NCURSES_EXPORT(WINDOW *) NCURSES_PUBLIC_VAR(curscr) (void) { - return SP ? SP->_curscr : 0; + return CURRENT_SCREEN ? CurScreen(CURRENT_SCREEN) : 0; } NCURSES_EXPORT(WINDOW *) NCURSES_PUBLIC_VAR(newscr) (void) { - return SP ? SP->_newscr : 0; + return CURRENT_SCREEN ? NewScreen(CURRENT_SCREEN) : 0; } #else NCURSES_EXPORT_VAR(WINDOW *) stdscr = 0; @@ -93,7 +94,7 @@ NCURSES_EXPORT(int) _nc_alloc_screen(void) { - return ((my_screen = typeCalloc(SCREEN, 1)) != 0); + return ((my_screen = _nc_alloc_screen_sp()) != 0); } NCURSES_EXPORT(void) @@ -103,6 +104,7 @@ } #else + NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */ #endif /* *INDENT-OFF* */ @@ -140,7 +142,9 @@ 0, /* tgetent_index */ 0, /* tgetent_sequence */ +#ifndef USE_SP_WINDOWLIST 0, /* _nc_windowlist */ +#endif #if USE_HOME_TERMINFO NULL, /* home_terminfo */ @@ -174,7 +178,9 @@ { CHARS_0s, CHARS_0s }, /* traceatr_color_buf */ 0, /* traceatr_color_sel */ -1, /* traceatr_color_last */ - +#if !defined(USE_PTHREADS) && USE_REENTRANT + 0, /* nested_tracef */ +#endif #endif /* TRACE */ #ifdef USE_PTHREADS PTHREAD_MUTEX_INITIALIZER, /* mutex_curses */ @@ -196,8 +202,10 @@ TRUE, /* use_env */ FALSE, /* filter_mode */ A_NORMAL, /* previous_attr */ +#ifndef USE_SP_RIPOFF RIPOFF_0s, /* ripoff */ NULL, /* rsp */ +#endif { /* tparm_state */ #ifdef TRACE NULL, /* tname */ @@ -225,6 +233,8 @@ NULL, /* real_acs_map */ 0, /* LINES */ 0, /* COLS */ + 8, /* TABSIZE */ + 1000, /* ESCDELAY */ 0, /* cur_term */ #ifdef TRACE 0L, /* _outchars */ @@ -234,6 +244,23 @@ }; /* *INDENT-ON* */ +/* + * 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 + * SCREEN's, e.g., for multi-threaded applications. + */ +NCURSES_EXPORT(SCREEN *) +_nc_screen_of(WINDOW *win) +{ + SCREEN *sp = 0; + + if (win != 0) { + WINDOWLIST *wp = (WINDOWLIST *) win; + sp = wp->screen; + } + return (sp); +} + /******************************************************************************/ #ifdef USE_PTHREADS static void 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-09-12 08:51:37.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-2003 * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,25 +42,53 @@ #include -#include +#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-09-12 08:51:43.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 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 2002 * + * and: Thomas E. Dickey 2002 * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -46,9 +47,8 @@ */ #include -#include /* 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.27 2009/06/06 21:25:50 tom Exp $") static int _nc_vdisable(void) @@ -79,23 +79,33 @@ */ NCURSES_EXPORT(char) -erasechar(void) +NCURSES_SP_NAME(erasechar) (NCURSES_SP_DCL0) { int result = ERR; - T((T_CALLED("erasechar()"))); + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("erasechar(%p)"), SP_PARM)); - if (cur_term != 0) { + if (termp != 0) { #ifdef TERMIOS - result = cur_term->Ottyb.c_cc[VERASE]; + result = termp->Ottyb.c_cc[VERASE]; if (result == _nc_vdisable()) result = ERR; #else - result = cur_term->Ottyb.sg_erase; + result = termp->Ottyb.sg_erase; #endif } returnCode(result); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char) +erasechar(void) +{ + return NCURSES_SP_NAME(erasechar) (CURRENT_SCREEN); +} +#endif + /* * killchar() * @@ -104,23 +114,33 @@ */ NCURSES_EXPORT(char) -killchar(void) +NCURSES_SP_NAME(killchar) (NCURSES_SP_DCL0) { int result = ERR; - T((T_CALLED("killchar()"))); + TERMINAL *termp = TerminalOf(SP_PARM); - if (cur_term != 0) { + T((T_CALLED("killchar(%p)"), SP_PARM)); + + if (termp != 0) { #ifdef TERMIOS - result = cur_term->Ottyb.c_cc[VKILL]; + result = termp->Ottyb.c_cc[VKILL]; if (result == _nc_vdisable()) result = ERR; #else - result = cur_term->Ottyb.sg_kill; + result = termp->Ottyb.sg_kill; #endif } returnCode(result); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(char) +killchar(void) +{ + return NCURSES_SP_NAME(killchar) (CURRENT_SCREEN); +} +#endif + /* * flushinp() * @@ -129,26 +149,36 @@ */ NCURSES_EXPORT(int) -flushinp(void) +NCURSES_SP_NAME(flushinp) (NCURSES_SP_DCL0) { - T((T_CALLED("flushinp()"))); + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("flushinp(%p)"), SP_PARM)); - if (cur_term != 0) { + if (termp != 0) { #ifdef TERMIOS - tcflush(cur_term->Filedes, TCIFLUSH); + tcflush(termp->Filedes, TCIFLUSH); #else errno = 0; do { - ioctl(cur_term->Filedes, TIOCFLUSH, 0); + ioctl(termp->Filedes, TIOCFLUSH, 0); } 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-09-12 08:51:37.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 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -40,8 +42,38 @@ #include -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-09-12 08:51:43.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 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -49,13 +51,16 @@ #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.19 2009/06/06 18:50:30 tom Exp $") NCURSES_EXPORT(int) -napms(int ms) +NCURSES_SP_NAME(napms) (NCURSES_SP_DCLx int ms) { T((T_CALLED("napms(%d)"), ms)); +#ifdef USE_TERM_DRIVER + CallDriver_1(sp, nap, ms); +#else /* !USE_TERM_DRIVER */ #if HAVE_NANOSLEEP { struct timespec request, remaining; @@ -69,6 +74,15 @@ #else _nc_timed_wait(0, 0, ms, (int *) 0 EVENTLIST_2nd(0)); #endif +#endif /* !USE_TERM_DRIVER */ 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-09-12 08:52:05.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,23 +42,28 @@ #include -#include - -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 -static int _nc_curs_set(SCREEN *, int); -static int _nc_meta(SCREEN *, bool); +MODULE_ID("$Id: lib_options.c,v 1.70 2009/08/16 14:16:38 tom Exp $") NCURSES_EXPORT(int) idlok(WINDOW *win, bool flag) { + int res = ERR; T((T_CALLED("idlok(%p,%d)"), win, flag)); if (win) { - _nc_idlok = win->_idlok = (flag && (has_il() || change_scroll_region)); - returnCode(OK); - } else - returnCode(ERR); + SCREEN *sp = _nc_screen_of(win); + if (sp && IsTermInfo(sp)) { + sp->_nc_sp_idlok = + win->_idlok = (flag && (NCURSES_SP_NAME(has_il) (NCURSES_SP_ARG) + || change_scroll_region)); + res = OK; + } + } + returnCode(res); } NCURSES_EXPORT(void) @@ -65,25 +71,34 @@ { T((T_CALLED("idcok(%p,%d)"), win, flag)); - if (win) - _nc_idcok = win->_idcok = (flag && has_ic()); - + if (win) { + SCREEN *sp = _nc_screen_of(win); + sp->_nc_sp_idcok = win->_idcok = (flag && NCURSES_SP_NAME(has_ic) (NCURSES_SP_ARG)); + } returnVoid; } NCURSES_EXPORT(int) -halfdelay(int t) +NCURSES_SP_NAME(halfdelay) (NCURSES_SP_DCLx int t) { - T((T_CALLED("halfdelay(%d)"), t)); + T((T_CALLED("halfdelay(%p,%d)"), SP_PARM, t)); - if (t < 1 || t > 255 || SP == 0) + if (t < 1 || t > 255 || !IsValidTIScreen(SP_PARM)) returnCode(ERR); - cbreak(); - SP->_cbreak = t + 1; + NCURSES_SP_NAME(cbreak) (NCURSES_SP_ARG); + 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) { @@ -129,7 +144,7 @@ if (win) { win->_use_keypad = flag; - returnCode(_nc_keypad(SP, flag)); + returnCode(_nc_keypad(_nc_screen_of(win), flag)); } else returnCode(ERR); } @@ -137,38 +152,106 @@ NCURSES_EXPORT(int) meta(WINDOW *win GCC_UNUSED, bool flag) { - int result; + int result = ERR; + SCREEN *sp = (win == 0) ? CURRENT_SCREEN : _nc_screen_of(win); /* Ok, we stay relaxed and don't signal an error if win is NULL */ T((T_CALLED("meta(%p,%d)"), win, flag)); - result = _nc_meta(SP, flag); + + /* Ok, we stay relaxed and don't signal an error if win is NULL */ + + if (sp != 0) { + sp->_use_meta = flag; +#ifdef USE_TERM_DRIVER + if (IsTermInfo(sp)) { + if (flag) { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_on", meta_on); + } else { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_off", meta_off); + } + } +#else + if (flag) { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_on", meta_on); + } else { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "meta_off", meta_off); + } +#endif + result = OK; + } returnCode(result); } /* 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 code = ERR; + T((T_CALLED("curs_set(%p,%d)"), SP_PARM, vis)); - T((T_CALLED("curs_set(%d)"), vis)); - result = _nc_curs_set(SP, vis); - returnCode(result); + if (SP_PARM != 0 && vis >= 0 && vis <= 2) { + int cursor = SP_PARM->_cursor; + bool bBuiltIn = !IsTermInfo(SP_PARM); + if (vis == cursor) { + code = cursor; + } else { + if (!bBuiltIn) { + switch (vis) { + case 2: + code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx + "cursor_visible", + cursor_visible); + break; + case 1: + code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx + "cursor_normal", + cursor_normal); + break; + case 0: + code = NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx + "cursor_invisible", + cursor_invisible); + break; + } + } else + code = ERR; + if (code != ERR) + code = (cursor == -1 ? 1 : cursor); + SP_PARM->_cursor = vis; + } + } + returnCode(code); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -typeahead(int fd) +curs_set(int vis) { - T((T_CALLED("typeahead(%d)"), fd)); - if (SP != 0) { - SP->_checkfd = fd; + 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(%p, %d)"), SP_PARM, fd)); + if (IsValidTIScreen(SP_PARM)) { + 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() ** @@ -189,42 +272,49 @@ || has_key_internal(keycode, tp->sibling)); } +#ifdef USE_TERM_DRIVER +NCURSES_EXPORT(int) +TINFO_HAS_KEY(SCREEN *sp, int keycode) +{ + return IsValidTIScreen(sp) ? + has_key_internal(keycode, sp->_keytry) : 0; +} +#else +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 #endif /* NCURSES_EXT_FUNCS */ -/* - * Internal entrypoints use SCREEN* parameter to obtain capabilities rather - * than cur_term. - */ -#undef CUR -#define CUR (sp->_term)->type. - -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 = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx name, value); + if (rc != ERR) { + _nc_flush(); } return rc; } -static int +#if 0 && 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 +335,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); @@ -258,10 +348,19 @@ } else #endif { +#ifdef USE_TERM_DRIVER + rc = CallDriver_1(sp, kpad, flag); + if (rc == OK) + sp->_keypad_on = flag; +#else if (flag) { - (void) _nc_putp_flush("keypad_xmit", keypad_xmit); + (void) NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx + "keypad_xmit", + keypad_xmit); } else if (!flag && keypad_local) { - (void) _nc_putp_flush("keypad_local", keypad_local); + (void) NCURSES_SP_NAME(_nc_putp_flush) (NCURSES_SP_ARGx + "keypad_local", + keypad_local); } if (flag && !sp->_tried) { @@ -270,58 +369,8 @@ } sp->_keypad_on = flag; rc = OK; +#endif } } return (rc); } - -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 (flag) { - _nc_putp("meta_on", meta_on); - } else { - _nc_putp("meta_off", meta_off); - } - result = OK; - } - return result; -} 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-09-12 08:51:43.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 * @@ -29,23 +29,27 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * ****************************************************************************/ #include -#include +#ifndef CUR +#define CUR SP_TERMTYPE +#endif -MODULE_ID("$Id: lib_print.c,v 1.16 2006/11/26 00:26:34 tom Exp $") +MODULE_ID("$Id: lib_print.c,v 1.19 2009/06/06 20:26:17 tom Exp $") NCURSES_EXPORT(int) -mcprint(char *data, int len) +NCURSES_SP_NAME(mcprint) (NCURSES_SP_DCLx char *data, int len) /* ship binary character data to the printer via mc4/mc5/mc5p */ { char *mybuf, *switchon; size_t onsize, offsize, res; errno = 0; - if (!cur_term || (!prtr_non && (!prtr_on || !prtr_off))) { + if (!HasTInfoTerminal(SP_PARM) || (!prtr_non && (!prtr_on || !prtr_off))) { errno = ENODEV; return (ERR); } @@ -78,15 +82,24 @@ * data has actually been shipped to the terminal. If the write(2) * operation is truly atomic we're protected from this. */ - res = write(cur_term->Filedes, mybuf, onsize + len + offsize); + res = write(TerminalOf(SP_PARM)->Filedes, mybuf, onsize + len + offsize); /* * By giving up our scheduler slot here we increase the odds that the * kernel will ship the contiguous clist items from the last write * immediately. */ +#ifndef __MINGW32__ (void) sleep(0); - +#endif free(mybuf); return (res); } + +#if NCURSES_SP_FUNCS && !defined(USE_TERM_DRIVER) +NCURSES_EXPORT(int) +mcprint(char *data, int len) +{ + return NCURSES_SP_NAME(mcprint) (CURRENT_SCREEN, data, len); +} +#endif 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-09-12 08:51:59.000000000 -0700 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2002,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 * @@ -29,7 +29,8 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1998 on * + * and: Thomas E. Dickey 1998-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -47,9 +48,8 @@ */ #include -#include /* 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.17 2009/08/01 23:11:02 tom Exp $") #if SVR4_TERMIO && !defined(_POSIX_SOURCE) #define _POSIX_SOURCE @@ -61,7 +61,7 @@ #ifdef __EMX__ #include -#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,19 +77,19 @@ #endif /* TRACE */ NCURSES_EXPORT(int) -raw(void) +NCURSES_SP_NAME(raw) (NCURSES_SP_DCL0) { int result = ERR; + TERMINAL *termp; - T((T_CALLED("raw()"))); - - if (SP != 0 && cur_term != 0) { + T((T_CALLED("raw(%p)"), SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { TTY buf; BEFORE("raw"); _nc_setmode(O_BINARY); - buf = cur_term->Nttyb; + buf = termp->Nttyb; #ifdef TERMIOS buf.c_lflag &= ~(ICANON | ISIG | IEXTEN); buf.c_iflag &= ~(COOKED_INPUT); @@ -98,30 +98,39 @@ #else buf.sg_flags |= RAW; #endif - if ((result = _nc_set_tty_mode(&buf)) == OK) { - SP->_raw = TRUE; - SP->_cbreak = 1; - cur_term->Nttyb = buf; + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { + SP_PARM->_raw = TRUE; + SP_PARM->_cbreak = 1; + termp->Nttyb = buf; } AFTER("raw"); } returnCode(result); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -cbreak(void) +raw(void) { - int result = ERR; + return NCURSES_SP_NAME(raw) (CURRENT_SCREEN); +} +#endif - T((T_CALLED("cbreak()"))); +NCURSES_EXPORT(int) +NCURSES_SP_NAME(cbreak) (NCURSES_SP_DCL0) +{ + int result = ERR; + TERMINAL *termp; - if (SP != 0 && cur_term != 0) { + T((T_CALLED("cbreak(%p)"), SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { TTY buf; BEFORE("cbreak"); _nc_setmode(O_BINARY); - buf = cur_term->Nttyb; + buf = termp->Nttyb; #ifdef TERMIOS buf.c_lflag &= ~ICANON; buf.c_iflag &= ~ICRNL; @@ -131,134 +140,172 @@ #else buf.sg_flags |= CBREAK; #endif - if ((result = _nc_set_tty_mode(&buf)) == OK) { - SP->_cbreak = 1; - cur_term->Nttyb = buf; + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { + SP_PARM->_cbreak = 1; + termp->Nttyb = buf; } AFTER("cbreak"); } 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; + TERMINAL *termp; - T((T_CALLED("qiflush()"))); - - if (cur_term != 0) { + T((T_CALLED("qiflush(%p)"), SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { TTY buf; BEFORE("qiflush"); - buf = cur_term->Nttyb; + buf = termp->Nttyb; #ifdef TERMIOS buf.c_lflag &= ~(NOFLSH); - result = _nc_set_tty_mode(&buf); + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); #else /* FIXME */ #endif if (result == OK) - cur_term->Nttyb = buf; + termp->Nttyb = buf; AFTER("qiflush"); } 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; + TERMINAL *termp; - T((T_CALLED("noraw()"))); - - if (SP != 0 && cur_term != 0) { + T((T_CALLED("noraw(%p)"), SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { TTY buf; BEFORE("noraw"); _nc_setmode(O_TEXT); - buf = cur_term->Nttyb; + buf = termp->Nttyb; #ifdef TERMIOS buf.c_lflag |= ISIG | ICANON | - (cur_term->Ottyb.c_lflag & IEXTEN); + (termp->Ottyb.c_lflag & IEXTEN); buf.c_iflag |= COOKED_INPUT; #else buf.sg_flags &= ~(RAW | CBREAK); #endif - if ((result = _nc_set_tty_mode(&buf)) == OK) { - SP->_raw = FALSE; - SP->_cbreak = 0; - cur_term->Nttyb = buf; + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { + SP_PARM->_raw = FALSE; + SP_PARM->_cbreak = 0; + termp->Nttyb = buf; } AFTER("noraw"); } returnCode(result); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -nocbreak(void) +noraw(void) { - int result = ERR; + return NCURSES_SP_NAME(noraw) (CURRENT_SCREEN); +} +#endif - T((T_CALLED("nocbreak()"))); +NCURSES_EXPORT(int) +NCURSES_SP_NAME(nocbreak) (NCURSES_SP_DCL0) +{ + int result = ERR; + TERMINAL *termp; - if (SP != 0 && cur_term != 0) { + T((T_CALLED("nocbreak(%p)"), SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { TTY buf; BEFORE("nocbreak"); _nc_setmode(O_TEXT); - buf = cur_term->Nttyb; + buf = termp->Nttyb; #ifdef TERMIOS buf.c_lflag |= ICANON; buf.c_iflag |= ICRNL; #else buf.sg_flags &= ~CBREAK; #endif - if ((result = _nc_set_tty_mode(&buf)) == OK) { - SP->_cbreak = 0; - cur_term->Nttyb = buf; + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); + if (result == OK) { + SP_PARM->_cbreak = 0; + termp->Nttyb = buf; } AFTER("nocbreak"); } returnCode(result); } -/* - * Note: - * this implementation may be wrong. See the comment under intrflush(). - */ +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +nocbreak(void) +{ + return NCURSES_SP_NAME(nocbreak) (CURRENT_SCREEN); +} +#endif + NCURSES_EXPORT(void) -noqiflush(void) +NCURSES_SP_NAME(noqiflush) (NCURSES_SP_DCL0) { int result = ERR; + TERMINAL *termp; - T((T_CALLED("noqiflush()"))); - - if (cur_term != 0) { + T((T_CALLED("noqiflush(%p)"), SP_PARM)); + if ((termp = TerminalOf(SP_PARM)) != 0) { TTY buf; BEFORE("noqiflush"); - buf = cur_term->Nttyb; + buf = termp->Nttyb; #ifdef TERMIOS buf.c_lflag |= NOFLSH; - result = _nc_set_tty_mode(&buf); + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); #else /* FIXME */ #endif - if (result == OK) { - cur_term->Nttyb = buf; - } + if (result == OK) + termp->Nttyb = buf; AFTER("noqiflush"); } 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,30 +314,41 @@ * 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; + TERMINAL *termp; - T((T_CALLED("intrflush(%d)"), flag)); + T((T_CALLED("intrflush(%p,%d)"), SP_PARM, flag)); + if (SP_PARM == 0) + returnCode(ERR); - if (cur_term != 0) { + if ((termp = TerminalOf(SP_PARM)) != 0) { TTY buf; BEFORE("intrflush"); - buf = cur_term->Nttyb; + buf = termp->Nttyb; #ifdef TERMIOS if (flag) buf.c_lflag &= ~(NOFLSH); else buf.c_lflag |= (NOFLSH); - result = _nc_set_tty_mode(&buf); + result = NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx &buf); #else /* FIXME */ #endif if (result == OK) { - cur_term->Nttyb = buf; + termp->Nttyb = buf; } AFTER("intrflush"); } 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-09-12 08:52:09.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -51,9 +52,7 @@ #include #endif -#include /* 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.119 2009/09/05 20:10:02 tom Exp $") /**************************************************************************** * @@ -109,61 +108,96 @@ * Wrap global variables in this module. */ #if USE_REENTRANT + NCURSES_EXPORT(char *) NCURSES_PUBLIC_VAR(ttytype) (void) { static char empty[] = ""; - return cur_term ? cur_term->type.term_names : empty; + char *result = empty; + +#if NCURSES_SP_FUNCS + if (CURRENT_SCREEN) { + TERMINAL *termp = TerminalOf(CURRENT_SCREEN); + if (termp != 0) { + result = termp->type.term_names; + } + } +#else + if (cur_term != 0) { + result = cur_term->type.term_names; + } +#endif + return result; } + 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,17 +222,56 @@ #endif NCURSES_EXPORT(void) +NCURSES_SP_NAME(use_env) (NCURSES_SP_DCLx bool f) +{ + T((T_CALLED("use_env(%p,%d)"), SP_PARM, (int) f)); +#if NCURSES_SP_FUNCS + if (IsPreScreen(SP_PARM)) { + SP_PARM->_use_env = f; + } +#else + _nc_prescreen.use_env = f; +#endif + returnVoid; +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(void) use_env(bool f) { - T((T_CALLED("use_env()"))); + T((T_CALLED("use_env(%d)"), (int) f)); _nc_prescreen.use_env = f; returnVoid; } +#endif NCURSES_EXPORT(void) -_nc_get_screensize(SCREEN *sp, int *linep, int *colp) +_nc_get_screensize(SCREEN *sp, +#ifdef USE_TERM_DRIVER + TERMINAL * termp, +#endif + int *linep, int *colp) /* Obtain lines/columns values from the environment and/or terminfo entry */ { +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB; + int my_tabsize; + + assert(termp != 0 && linep != 0 && colp != 0); + TCB = (TERMINAL_CONTROL_BLOCK *) termp; + + my_tabsize = TCB->info.tabsize; + TCB->drv->size(TCB, linep, colp); + +#if USE_REENTRANT + if (sp != 0) { + sp->_TABSIZE = my_tabsize; + } +#else + TABSIZE = my_tabsize; +#endif + T(("TABSIZE = %d", my_tabsize)); +#else /* !USE_TERM_DRIVER */ TERMINAL *termp = cur_term; int my_tabsize; @@ -298,19 +371,31 @@ TABSIZE = my_tabsize; #endif T(("TABSIZE = %d", TABSIZE)); +#endif /* USE_TERM_DRIVER */ } #if USE_SIZECHANGE NCURSES_EXPORT(void) _nc_update_screensize(SCREEN *sp) { + int new_lines; + int new_cols; + +#ifdef USE_TERM_DRIVER + int old_lines; + int old_cols; + + assert(sp != 0); + + CallDriver_2(sp, getsize, &old_lines, &old_cols); + +#else TERMINAL *termp = cur_term; int old_lines = lines; - int new_lines; int old_cols = columns; - int new_cols; +#endif - _nc_get_screensize(sp, &new_lines, &new_cols); + TINFO_GET_SIZE(sp, sp->_term, &new_lines, &new_cols); /* * See is_term_resized() and resizeterm(). @@ -320,7 +405,7 @@ if (sp != 0 && sp->_resize != 0) { if ((new_lines != old_lines) || (new_cols != old_cols)) - sp->_resize(new_lines, new_cols); + sp->_resize(NCURSES_SP_ARGx new_lines, new_cols); sp->_sig_winch = FALSE; } } @@ -348,6 +433,7 @@ exit(EXIT_FAILURE);\ } +#ifndef USE_TERM_DRIVER #if USE_DATABASE || USE_TERMCAP /* * Return 1 if entry found, 0 if not found, -1 if database not accessible, @@ -407,6 +493,7 @@ } } } +#endif /* !USE_TERM_DRIVER */ /* * Find the locale which is in effect. @@ -486,18 +573,37 @@ return 0; } -/* - * This entrypoint is called from tgetent() to allow a special case of reusing - * the same TERMINAL data (see comment). - */ NCURSES_EXPORT(int) -_nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse) +TINFO_SETUP_TERM(TERMINAL ** tp, + NCURSES_CONST char *tname, + int Filedes, + int *errret, + bool reuse) { - TERMINAL *termp; +#ifdef USE_TERM_DRIVER + TERMINAL_CONTROL_BLOCK *TCB = 0; +#else int status; +#endif + TERMINAL *termp; + SCREEN *sp = 0; + int code = ERR; START_TRACE(); + +#ifdef USE_TERM_DRIVER + T((T_CALLED("_nc_setupterm_ex(%p,%s,%d,%p)"), + tp, _nc_visbuf(tname), Filedes, errret)); + + if (tp == 0) { + ret_error0(TGETENT_ERR, + "Invalid parameter, internal error.\n"); + } else + termp = *tp; +#else + termp = cur_term; T((T_CALLED("setupterm(%s,%d,%p)"), _nc_visbuf(tname), Filedes, errret)); +#endif if (tname == 0) { tname = getenv("TERM"); @@ -538,20 +644,34 @@ * properly with this feature). */ if (reuse - && (termp = cur_term) != 0 + && (termp != 0) && termp->Filedes == Filedes && termp->_termname != 0 && !strcmp(termp->_termname, tname) && _nc_name_match(termp->type.term_names, tname, "|")) { T(("reusing existing terminal information and mode-settings")); + code = OK; } else { - +#ifdef USE_TERM_DRIVER + termp = (TERMINAL *) typeCalloc(TERMINAL_CONTROL_BLOCK, 1); +#else termp = typeCalloc(TERMINAL, 1); - +#endif if (termp == 0) { ret_error0(TGETENT_ERR, "Not enough memory to create terminal structure.\n"); } +#ifdef USE_TERM_DRIVER + TCB = (TERMINAL_CONTROL_BLOCK *) termp; + code = _nc_get_driver(TCB, tname, errret); + if (code == OK) { + termp->Filedes = Filedes; + termp->_termname = strdup(tname); + } else { + ret_error0(TGETENT_ERR, + "Could not find any driver to handle this terminal.\n"); + } +#else #if USE_DATABASE || USE_TERMCAP status = grab_entry(tname, &termp->type); #else @@ -599,25 +719,57 @@ def_prog_mode(); baudrate(); } + code = OK; +#endif } +#ifdef USE_TERM_DRIVER + *tp = termp; + NCURSES_SP_NAME(set_curterm) (sp, termp); + TCB->drv->init(TCB); +#else + sp = SP; +#endif + /* * We should always check the screensize, just in case. */ - _nc_get_screensize(SP, ptrLines(), ptrCols()); + TINFO_GET_SIZE(sp, termp, ptrLines(sp), ptrCols(sp)); if (errret) *errret = TGETENT_YES; +#ifndef USE_TERM_DRIVER if (generic_type) { ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname); } if (hard_copy) { ret_error(TGETENT_YES, "'%s': I can't handle hardcopy terminals.\n", tname); } - returnCode(OK); +#endif + returnCode(code); } +#ifdef USE_TERM_DRIVER +/* + * This entrypoint is called from tgetent() to allow a special case of reusing + * the same TERMINAL data (see comment). + */ +NCURSES_EXPORT(int) +_nc_setupterm(NCURSES_CONST char *tname, + int Filedes, + int *errret, + bool reuse) +{ + int res; + TERMINAL *termp; + res = TINFO_SETUP_TERM(&termp, tname, Filedes, errret, reuse); + if (ERR != res) + NCURSES_SP_NAME(set_curterm) (CURRENT_SCREEN_PRE, termp); + return res; +} +#endif + /* * setupterm(termname, Filedes, errret) * 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-09-12 08:52:09.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 1992,1995 * * and: Eric S. Raymond * * 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 -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.70 2009/08/30 17:16:00 tom Exp $") NCURSES_EXPORT_VAR(char *) UP = 0; NCURSES_EXPORT_VAR(char *) BC = 0; @@ -76,16 +81,26 @@ ***************************************************************************/ NCURSES_EXPORT(int) -tgetent(char *bufp, const char *name) +NCURSES_SP_NAME(tgetent) (NCURSES_SP_DCLx char *bufp, const char *name) { - int errcode; + int errcode = ERR; int n; bool found_cache = FALSE; +#ifdef USE_TERM_DRIVER + TERMINAL *termp = 0; +#endif START_TRACE(); T((T_CALLED("tgetent()"))); - _nc_setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode, TRUE); + TINFO_SETUP_TERM(&termp, (NCURSES_CONST char *) name, + STDOUT_FILENO, &errcode, TRUE); + +#ifdef USE_TERM_DRIVER + if (termp == 0 || + !((TERMINAL_CONTROL_BLOCK *) termp)->drv->isTerminfo) + return (errcode); +#endif /* * In general we cannot tell if the fixed sgr0 is still used by the @@ -109,9 +124,9 @@ /* * Also free the terminfo data that we loaded (much bigger leak). */ - if (LAST_TRM != 0 && LAST_TRM != cur_term) { + if (LAST_TRM != 0 && LAST_TRM != TerminalOf(SP_PARM)) { 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; @@ -131,7 +146,7 @@ } CacheInx = best; } - LAST_TRM = cur_term; + LAST_TRM = TerminalOf(SP_PARM); LAST_SEQ = ++CacheSeq; PC = 0; @@ -153,7 +168,7 @@ if (backspace_if_not_bs != NULL) BC = backspace_if_not_bs; - if ((FIX_SGR0 = _nc_trim_sgr0(&(cur_term->type))) != 0) { + if ((FIX_SGR0 = _nc_trim_sgr0(&(TerminalOf(SP_PARM)->type))) != 0) { if (!strcmp(FIX_SGR0, exit_attribute_mode)) { if (FIX_SGR0 != exit_attribute_mode) { free(FIX_SGR0); @@ -164,8 +179,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 +192,25 @@ 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 + +#if 0 +static bool +same_tcname(const char *a, const char *b) +{ + fprintf(stderr, "compare(%s,%s)\n", a, b); + return !strncmp(a, b, 2); +} +#else +#define same_tcname(a,b) !strncmp(a,b,2) +#endif + /*************************************************************************** * * tgetflag(str) @@ -187,24 +221,48 @@ ***************************************************************************/ NCURSES_EXPORT(int) -tgetflag(NCURSES_CONST char *id) +NCURSES_SP_NAME(tgetflag) (NCURSES_SP_DCLx NCURSES_CONST char *id) { - unsigned i; + int result = 0; /* Solaris returns zero for missing flag */ + int i, j; - T((T_CALLED("tgetflag(%s)"), id)); - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_boolean(i, tp) { - const char *capname = ExtBoolname(tp, i, boolcodes); - if (!strncmp(id, capname, 2)) { - /* setupterm forces invalid booleans to false */ - returnCode(tp->Booleans[i]); + T((T_CALLED("tgetflag(%p, %s)"), SP_PARM, id)); + if (HasTInfoTerminal(SP_PARM)) { + TERMTYPE *tp = &(TerminalOf(SP_PARM)->type); + struct name_table_entry const *entry_ptr; + + entry_ptr = _nc_find_type_entry(id, BOOLEAN, TRUE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + j = -1; + for_each_ext_boolean(i, tp) { + const char *capname = ExtBoolname(tp, i, boolcodes); + if (same_tcname(id, capname)) { + j = i; + break; + } } } +#endif + if (j >= 0) { + /* note: setupterm forces invalid booleans to false */ + result = tp->Booleans[j]; + } } - returnCode(0); /* Solaris does this */ + returnCode(result); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +tgetflag(NCURSES_CONST char *id) +{ + return NCURSES_SP_NAME(tgetflag) (CURRENT_SCREEN, id); +} +#endif + /*************************************************************************** * * tgetnum(str) @@ -215,25 +273,48 @@ ***************************************************************************/ NCURSES_EXPORT(int) -tgetnum(NCURSES_CONST char *id) +NCURSES_SP_NAME(tgetnum) (NCURSES_SP_DCLx NCURSES_CONST char *id) { - unsigned i; + int result = ABSENT_NUMERIC; + int i, j; - T((T_CALLED("tgetnum(%s)"), id)); - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_number(i, tp) { - const char *capname = ExtNumname(tp, i, numcodes); - if (!strncmp(id, capname, 2)) { - if (!VALID_NUMERIC(tp->Numbers[i])) - returnCode(ABSENT_NUMERIC); - returnCode(tp->Numbers[i]); + T((T_CALLED("tgetnum(%p, %s)"), SP_PARM, id)); + if (HasTInfoTerminal(SP_PARM)) { + TERMTYPE *tp = &(TerminalOf(SP_PARM)->type); + struct name_table_entry const *entry_ptr; + + entry_ptr = _nc_find_type_entry(id, NUMBER, TRUE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + j = -1; + for_each_ext_number(i, tp) { + const char *capname = ExtNumname(tp, i, numcodes); + if (same_tcname(id, capname)) { + j = i; + break; + } } } +#endif + if (j >= 0) { + if (VALID_NUMERIC(tp->Numbers[j])) + result = tp->Numbers[j]; + } } - returnCode(ABSENT_NUMERIC); + returnCode(result); } +#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,40 +325,62 @@ ***************************************************************************/ 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; + int i, j; T((T_CALLED("tgetstr(%s,%p)"), id, area)); - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_string(i, tp) { - const char *capname = ExtStrname(tp, i, strcodes); - if (!strncmp(id, capname, 2)) { - result = tp->Strings[i]; - TR(TRACE_DATABASE, ("found match : %s", _nc_visbuf(result))); - /* setupterm forces canceled strings to null */ - if (VALID_STRING(result)) { - if (result == exit_attribute_mode - && FIX_SGR0 != 0) { - result = FIX_SGR0; - TR(TRACE_DATABASE, ("altered to : %s", _nc_visbuf(result))); - } - if (area != 0 - && *area != 0) { - (void) strcpy(*area, result); - result = *area; - *area += strlen(*area) + 1; - } + if (HasTInfoTerminal(SP_PARM)) { + TERMTYPE *tp = &(TerminalOf(SP_PARM)->type); + struct name_table_entry const *entry_ptr; + + entry_ptr = _nc_find_type_entry(id, STRING, TRUE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + j = -1; + for_each_ext_string(i, tp) { + const char *capname = ExtStrname(tp, i, strcodes); + if (same_tcname(id, capname)) { + j = i; + break; + } + } + } +#endif + if (j >= 0) { + result = tp->Strings[j]; + TR(TRACE_DATABASE, ("found match : %s", _nc_visbuf(result))); + /* setupterm forces canceled strings to null */ + if (VALID_STRING(result)) { + if (result == exit_attribute_mode + && FIX_SGR0 != 0) { + result = FIX_SGR0; + TR(TRACE_DATABASE, ("altered to : %s", _nc_visbuf(result))); + } + if (area != 0 + && *area != 0) { + (void) strcpy(*area, result); + result = *area; + *area += strlen(*area) + 1; } - break; } } } 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-09-12 08:51:17.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 -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-09-12 08:51:57.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,7 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * ****************************************************************************/ #include @@ -36,68 +37,152 @@ #include #include -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.27 2009/07/28 22:03:36 tom Exp $") + +#if 0 +static bool +same_name(const char *a, const char *b) +{ + fprintf(stderr, "compare(%s,%s)\n", a, b); + return !strcmp(a, b); +} +#else +#define same_name(a,b) !strcmp(a,b) +#endif NCURSES_EXPORT(int) -tigetflag(NCURSES_CONST char *str) +NCURSES_SP_NAME(tigetflag) (NCURSES_SP_DCLx NCURSES_CONST char *str) { - unsigned i; + int result = ABSENT_BOOLEAN; + int i, j; - T((T_CALLED("tigetflag(%s)"), str)); + T((T_CALLED("tigetflag(%p, %s)"), SP_PARM, str)); - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_boolean(i, tp) { - const char *capname = ExtBoolname(tp, i, boolnames); - if (!strcmp(str, capname)) { - /* setupterm forces invalid booleans to false */ - returnCode(tp->Booleans[i]); + if (HasTInfoTerminal(SP_PARM)) { + TERMTYPE *tp = &(TerminalOf(SP_PARM)->type); + struct name_table_entry const *entry_ptr; + + entry_ptr = _nc_find_type_entry(str, BOOLEAN, FALSE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + j = -1; + for_each_ext_boolean(i, tp) { + const char *capname = ExtBoolname(tp, i, boolnames); + if (same_name(str, capname)) { + j = i; + break; + } } } +#endif + if (j >= 0) { + /* note: setupterm forces invalid booleans to false */ + result = tp->Booleans[j]; + } } - returnCode(ABSENT_BOOLEAN); + returnCode(result); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -tigetnum(NCURSES_CONST char *str) +tigetflag(NCURSES_CONST char *str) { - unsigned i; + return NCURSES_SP_NAME(tigetflag) (CURRENT_SCREEN, str); +} +#endif - T((T_CALLED("tigetnum(%s)"), str)); +NCURSES_EXPORT(int) +NCURSES_SP_NAME(tigetnum) (NCURSES_SP_DCLx NCURSES_CONST char *str) +{ + int i, j; + int result = CANCELLED_NUMERIC; /* Solaris returns a -1 on error */ - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_number(i, tp) { - const char *capname = ExtNumname(tp, i, numnames); - if (!strcmp(str, capname)) { - if (!VALID_NUMERIC(tp->Numbers[i])) - returnCode(ABSENT_NUMERIC); - returnCode(tp->Numbers[i]); + T((T_CALLED("tigetnum(%p, %s)"), SP_PARM, str)); + + if (HasTInfoTerminal(SP_PARM)) { + TERMTYPE *tp = &(TerminalOf(SP_PARM)->type); + struct name_table_entry const *entry_ptr; + + entry_ptr = _nc_find_type_entry(str, NUMBER, FALSE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + j = -1; + for_each_ext_number(i, tp) { + const char *capname = ExtNumname(tp, i, numnames); + if (same_name(str, capname)) { + j = i; + break; + } } } +#endif + if (j >= 0) { + if (VALID_NUMERIC(tp->Numbers[j])) + result = tp->Numbers[j]; + else + result = ABSENT_NUMERIC; + } } - returnCode(CANCELLED_NUMERIC); /* Solaris returns a -1 instead */ + returnCode(result); } +#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; + char *result = CANCELLED_STRING; + int i, j; - T((T_CALLED("tigetstr(%s)"), str)); + T((T_CALLED("tigetstr(%p, %s)"), SP_PARM, str)); - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_string(i, tp) { - const char *capname = ExtStrname(tp, i, strnames); - if (!strcmp(str, capname)) { - /* setupterm forces cancelled strings to null */ - returnPtr(tp->Strings[i]); + if (HasTInfoTerminal(SP_PARM)) { + TERMTYPE *tp = &(TerminalOf(SP_PARM)->type); + struct name_table_entry const *entry_ptr; + + entry_ptr = _nc_find_type_entry(str, STRING, FALSE); + if (entry_ptr != 0) { + j = entry_ptr->nte_index; + } +#if NCURSES_XNAMES + else { + j = -1; + for_each_ext_string(i, tp) { + const char *capname = ExtStrname(tp, i, strnames); + if (same_name(str, capname)) { + j = i; + break; + } } } +#endif + if (j >= 0) { + /* note: setupterm forces cancelled strings to null */ + result = tp->Strings[j]; + } } - returnPtr(CANCELLED_STRING); + returnPtr(result); +} + +#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-09-12 08:51:17.000000000 -0700 @@ -40,10 +40,9 @@ #include #include -#include #include -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-09-12 08:51:45.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -41,12 +42,16 @@ */ #include + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + #include -#include /* padding_baud_rate, xon_xoff */ #include /* ospeed */ #include -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.77 2009/06/07 13:59:11 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,126 @@ } #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 (!HasTInfoTerminal(SP_PARM)) + returnCode(ERR); 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 (HasTInfoTerminal(SP_PARM) + && 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 +206,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); @@ -152,10 +221,19 @@ } #endif /* TRACE */ + if (SP_PARM != 0 && !HasTInfoTerminal(SP_PARM)) + return ERR; + if (!VALID_STRING(string)) return ERR; - if (cur_term == 0) { + if ( +#if NCURSES_SP_FUNCS + (SP_PARM != 0 && SP_PARM->_term == 0) +#else + cur_term == 0 +#endif + ) { always_delay = FALSE; normal_delay = TRUE; } else { @@ -164,7 +242,7 @@ !xon_xoff && padding_baud_rate #if NCURSES_NO_PADDING - && !GetNoPadding(SP) + && !GetNoPadding(SP_PARM) #endif && (_nc_baudrate(ospeed) >= padding_baud_rate); } @@ -201,21 +279,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 +328,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 +348,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-09-12 08:51:43.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 * @@ -36,159 +36,246 @@ */ #include -#include /* 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.25 2009/06/06 19:10:05 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; - if (buf == 0) { + if (buf == 0 || SP_PARM == 0) { result = ERR; } else { - if (cur_term == 0) { + TERMINAL *termp = TerminalOf(SP_PARM); + + if (0 == termp) { result = ERR; } else { +#ifdef USE_TERM_DRIVER + result = CallDriver_2(SP_PARM, sgmode, FALSE, buf); +#else for (;;) { - if (GET_TTY(cur_term->Filedes, buf) != 0) { + if (GET_TTY(termp->Filedes, buf) != 0) { if (errno == EINTR) continue; result = ERR; } break; } +#endif } if (result == ERR) memset(buf, 0, sizeof(*buf)); TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s", - cur_term ? cur_term->Filedes : -1, + termp ? termp->Filedes : -1, _nc_trace_ttymode(buf))); } 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; - if (buf == 0) { + if (buf == 0 || SP_PARM == 0) { result = ERR; } else { - if (cur_term == 0) { + TERMINAL *termp = TerminalOf(SP_PARM); + + if (0 == termp) { result = ERR; } else { +#ifdef USE_TERM_DRIVER + result = CallDriver_2(SP_PARM, sgmode, TRUE, buf); +#else for (;;) { - if (SET_TTY(cur_term->Filedes, buf) != 0) { + if (SET_TTY(termp->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; } +#endif } TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s", - cur_term ? cur_term->Filedes : -1, + termp ? termp->Filedes : -1, _nc_trace_ttymode(buf))); } 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; + TERMINAL *termp = TerminalOf(SP_PARM); - T((T_CALLED("def_shell_mode()"))); + T((T_CALLED("def_shell_mode(%p)"), SP_PARM)); - if (cur_term != 0) { + if (termp != 0) { +#ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, mode, FALSE, TRUE); +#else /* * If XTABS was on, remove the tab and backtab capabilities. */ - if (_nc_get_tty_mode(&cur_term->Ottyb) == OK) { + if (_nc_get_tty_mode(&termp->Ottyb) == OK) { #ifdef TERMIOS - if (cur_term->Ottyb.c_oflag & OFLAGS_TABS) + if (termp->Ottyb.c_oflag & OFLAGS_TABS) tab = back_tab = NULL; #else - if (cur_term->Ottyb.sg_flags & XTABS) + if (termp->Ottyb.sg_flags & XTABS) tab = back_tab = NULL; #endif rc = OK; } +#endif } 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; + TERMINAL *termp = TerminalOf(SP_PARM); - T((T_CALLED("def_prog_mode()"))); + T((T_CALLED("def_prog_mode(%p)"), SP_PARM)); - if (cur_term != 0) { + if (termp != 0) { +#ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, mode, TRUE, TRUE); +#else /* * Turn off the XTABS bit in the tty structure if it was on. */ - if (_nc_get_tty_mode(&cur_term->Nttyb) == OK) { + if (_nc_get_tty_mode(&termp->Nttyb) == OK) { #ifdef TERMIOS - cur_term->Nttyb.c_oflag &= ~OFLAGS_TABS; + termp->Nttyb.c_oflag &= ~OFLAGS_TABS; #else - cur_term->Nttyb.sg_flags &= ~XTABS; + termp->Nttyb.sg_flags &= ~XTABS; #endif rc = OK; } +#endif } returnCode(rc); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -reset_prog_mode(void) +def_prog_mode(void) { - T((T_CALLED("reset_prog_mode()"))); + return NCURSES_SP_NAME(def_prog_mode) (CURRENT_SCREEN); +} +#endif - 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); +NCURSES_EXPORT(int) +NCURSES_SP_NAME(reset_prog_mode) (NCURSES_SP_DCL0) +{ + int rc = ERR; + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("reset_prog_mode(%p)"), SP_PARM)); + + if (termp != 0) { +#ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, mode, TRUE, FALSE); +#else + if (_nc_set_tty_mode(&termp->Nttyb) == OK) { + if (SP_PARM) { + if (SP_PARM->_keypad_on) + _nc_keypad(SP_PARM, TRUE); + NC_BUFFERED(SP_PARM, TRUE); } - returnCode(OK); + rc = OK; } +#endif } - returnCode(ERR); + returnCode(rc); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -reset_shell_mode(void) +reset_prog_mode(void) { - T((T_CALLED("reset_shell_mode()"))); + return NCURSES_SP_NAME(reset_prog_mode) (CURRENT_SCREEN); +} +#endif - if (cur_term != 0) { - if (SP) { - _nc_keypad(SP, FALSE); +NCURSES_EXPORT(int) +NCURSES_SP_NAME(reset_shell_mode) (NCURSES_SP_DCL0) +{ + int rc = ERR; + TERMINAL *termp = TerminalOf(SP_PARM); + + T((T_CALLED("reset_shell_mode(%p)"), SP_PARM)); + + if (termp != 0) { +#ifdef USE_TERM_DRIVER + rc = CallDriver_2(SP_PARM, mode, FALSE, FALSE); +#else + 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)); + rc = _nc_set_tty_mode(&termp->Ottyb); +#endif } - returnCode(ERR); + returnCode(rc); } +#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) +saved_tty(NCURSES_SP_DCL0) { TTY *result = 0; - if (SP != 0) { - result = &(SP->_saved_tty); + if (SP_PARM != 0) { + result = (TTY *) & (SP_PARM->_saved_tty); } else { if (_nc_prescreen.saved_tty == 0) { _nc_prescreen.saved_tty = typeCalloc(TTY, 1); @@ -204,17 +291,31 @@ */ NCURSES_EXPORT(int) +NCURSES_SP_NAME(savetty) (NCURSES_SP_DCL0) +{ + T((T_CALLED("savetty(%p)"), SP_PARM)); + returnCode(NCURSES_SP_NAME(_nc_get_tty_mode) (NCURSES_SP_ARGx saved_tty(NCURSES_SP_ARG))); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) savetty(void) { - T((T_CALLED("savetty()"))); + return NCURSES_SP_NAME(savetty) (CURRENT_SCREEN); +} +#endif - returnCode(_nc_get_tty_mode(saved_tty())); +NCURSES_EXPORT(int) +NCURSES_SP_NAME(resetty) (NCURSES_SP_DCL0) +{ + T((T_CALLED("resetty(%p)"), SP_PARM)); + returnCode(NCURSES_SP_NAME(_nc_set_tty_mode) (NCURSES_SP_ARGx saved_tty(NCURSES_SP_ARG))); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) resetty(void) { - T((T_CALLED("resetty()"))); - - returnCode(_nc_set_tty_mode(saved_tty())); + return NCURSES_SP_NAME(resetty) (CURRENT_SCREEN); } +#endif diff -Naur ncurses-5.7.orig/ncurses/tinfo/make_hash.c ncurses-5.7/ncurses/tinfo/make_hash.c --- ncurses-5.7.orig/ncurses/tinfo/make_hash.c 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/ncurses/tinfo/make_hash.c 2009-09-12 08:52:02.000000000 -0700 @@ -0,0 +1,294 @@ +/**************************************************************************** + * 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"), 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: Zeyd M. Ben-Halim 1992,1995 * + * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + ****************************************************************************/ + +/* + * make_hash.c --- build-time program for constructing comp_captab.c + * + */ + +#include + +#include +#include + +#include + +MODULE_ID("$Id: make_hash.c,v 1.2 2009/08/08 17:42:41 tom Exp $") + +/* + * _nc_make_hash_table() + * + * Takes the entries in table[] and hashes them into hash_table[] + * by name. There are CAPTABSIZE entries in table[] and HASHTABSIZE + * slots in hash_table[]. + * + */ + +#undef MODULE_ID +#define MODULE_ID(id) /*nothing */ +#include + +/* + * int hash_function(string) + * + * Computes the hashing function on the given string. + * + * The current hash function is the sum of each consectutive pair + * of characters, taken as two-byte integers, mod HASHTABSIZE. + * + */ + +static int +hash_function(const char *string) +{ + long sum = 0; + + while (*string) { + sum += (long) (*string + (*(string + 1) << 8)); + string++; + } + + return (int) (sum % HASHTABSIZE); +} + +static void +_nc_make_hash_table(struct name_table_entry *table, + HashValue * hash_table) +{ + short i; + int hashvalue; + int collisions = 0; + + for (i = 0; i < HASHTABSIZE; i++) { + hash_table[i] = -1; + } + for (i = 0; i < CAPTABSIZE; i++) { + hashvalue = hash_function(table[i].nte_name); + + if (hash_table[hashvalue] >= 0) + collisions++; + + if (hash_table[hashvalue] != 0) + table[i].nte_link = hash_table[hashvalue]; + hash_table[hashvalue] = i; + } + + printf("/* %d collisions out of %d entries */\n", collisions, CAPTABSIZE); +} + +/* + * This filter reads from standard input a list of tab-delimited columns, + * (e.g., from Caps.filtered) computes the hash-value of a specified column and + * writes the hashed tables to standard output. + * + * By compiling the hash table at build time, we're able to make the entire + * set of terminfo and termcap tables readonly (and also provide some runtime + * performance enhancement). + */ + +#define MAX_COLUMNS BUFSIZ /* this _has_ to be worst-case */ + +static char ** +parse_columns(char *buffer) +{ + static char **list; + + int col = 0; + + if (list == 0 && (list = typeCalloc(char *, MAX_COLUMNS)) == 0) + return (0); + + if (*buffer != '#') { + while (*buffer != '\0') { + char *s; + for (s = buffer; (*s != '\0') && !isspace(UChar(*s)); s++) + /*EMPTY */ ; + if (s != buffer) { + char mark = *s; + *s = '\0'; + if ((s - buffer) > 1 + && (*buffer == '"') + && (s[-1] == '"')) { /* strip the quotes */ + assert(s > buffer + 1); + s[-1] = '\0'; + buffer++; + } + list[col] = buffer; + col++; + if (mark == '\0') + break; + while (*++s && isspace(UChar(*s))) + /*EMPTY */ ; + buffer = s; + } else + break; + } + } + return col ? list : 0; +} + +int +main(int argc, char **argv) +{ + struct name_table_entry *name_table = typeCalloc(struct + name_table_entry, CAPTABSIZE); + HashValue *hash_table = typeCalloc(HashValue, HASHTABSIZE); + const char *root_name = ""; + int column = 0; + int bigstring = 0; + int n; + char buffer[BUFSIZ]; + + static const char *typenames[] = + {"BOOLEAN", "NUMBER", "STRING"}; + + short BoolCount = 0; + short NumCount = 0; + short StrCount = 0; + + /* The first argument is the column-number (starting with 0). + * The second is the root name of the tables to generate. + */ + if (argc <= 3 + || (column = atoi(argv[1])) <= 0 + || (column >= MAX_COLUMNS) + || *(root_name = argv[2]) == 0 + || (bigstring = atoi(argv[3])) < 0 + || name_table == 0 + || hash_table == 0) { + fprintf(stderr, "usage: make_hash column root_name bigstring\n"); + exit(EXIT_FAILURE); + } + + /* + * Read the table into our arrays. + */ + for (n = 0; (n < CAPTABSIZE) && fgets(buffer, BUFSIZ, stdin);) { + char **list, *nlp = strchr(buffer, '\n'); + if (nlp) + *nlp = '\0'; + list = parse_columns(buffer); + if (list == 0) /* blank or comment */ + continue; + name_table[n].nte_link = -1; /* end-of-hash */ + name_table[n].nte_name = strdup(list[column]); + if (!strcmp(list[2], "bool")) { + name_table[n].nte_type = BOOLEAN; + name_table[n].nte_index = BoolCount++; + } else if (!strcmp(list[2], "num")) { + name_table[n].nte_type = NUMBER; + name_table[n].nte_index = NumCount++; + } else if (!strcmp(list[2], "str")) { + name_table[n].nte_type = STRING; + name_table[n].nte_index = StrCount++; + } else { + fprintf(stderr, "Unknown type: %s\n", list[2]); + exit(EXIT_FAILURE); + } + n++; + } + _nc_make_hash_table(name_table, hash_table); + + /* + * Write the compiled tables to standard output + */ + if (bigstring) { + int len = 0; + int nxt; + + printf("static const char %s_names_text[] = \\\n", root_name); + for (n = 0; n < CAPTABSIZE; n++) { + nxt = (int) strlen(name_table[n].nte_name) + 5; + if (nxt + len > 72) { + printf("\\\n"); + len = 0; + } + printf("\"%s\\0\" ", name_table[n].nte_name); + len += nxt; + } + printf(";\n\n"); + + len = 0; + printf("static name_table_data const %s_names_data[] =\n", + root_name); + printf("{\n"); + for (n = 0; n < CAPTABSIZE; n++) { + printf("\t{ %15d,\t%10s,\t%3d, %3d }%c\n", + len, + typenames[name_table[n].nte_type], + name_table[n].nte_index, + name_table[n].nte_link, + n < CAPTABSIZE - 1 ? ',' : ' '); + len += (int) strlen(name_table[n].nte_name) + 1; + } + printf("};\n\n"); + printf("static struct name_table_entry *_nc_%s_table = 0;\n\n", root_name); + } else { + + printf("static struct name_table_entry %s _nc_%s_table[] =\n", + bigstring ? "" : "const", + root_name); + printf("{\n"); + for (n = 0; n < CAPTABSIZE; n++) { + sprintf(buffer, "\"%s\"", + name_table[n].nte_name); + printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n", + buffer, + typenames[name_table[n].nte_type], + name_table[n].nte_index, + name_table[n].nte_link, + n < CAPTABSIZE - 1 ? ',' : ' '); + } + printf("};\n\n"); + } + + printf("static const HashValue _nc_%s_hash_table[%d] =\n", + root_name, + HASHTABSIZE + 1); + printf("{\n"); + for (n = 0; n < HASHTABSIZE; n++) { + printf("\t%3d,\n", hash_table[n]); + } + printf("\t0\t/* base-of-table */\n"); + printf("};\n\n"); + + printf("#if (BOOLCOUNT!=%d)||(NUMCOUNT!=%d)||(STRCOUNT!=%d)\n", + BoolCount, NumCount, StrCount); + printf("#error\t--> term.h and comp_captab.c disagree about the <--\n"); + printf("#error\t--> numbers of booleans, numbers and/or strings <--\n"); + printf("#endif\n\n"); + + free(hash_table); + return EXIT_SUCCESS; +} 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-09-12 08:51:17.000000000 -0700 @@ -39,16 +39,16 @@ #define USE_TERMLIB 1 #include -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 #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/MKcaptab.sh ncurses-5.7/ncurses/tinfo/MKcaptab.sh --- ncurses-5.7.orig/ncurses/tinfo/MKcaptab.sh 2007-08-12 06:13:51.000000000 -0700 +++ ncurses-5.7/ncurses/tinfo/MKcaptab.sh 2009-09-12 08:52:02.000000000 -0700 @@ -1,6 +1,6 @@ #!/bin/sh ############################################################################## -# Copyright (c) 2007 Free Software Foundation, Inc. # +# 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"), # @@ -26,12 +26,19 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: MKcaptab.sh,v 1.8 2007/08/12 13:13:51 tom Exp $ +# $Id: MKcaptab.sh,v 1.10 2009/08/08 17:19:25 tom Exp $ AWK=${1-awk} OPT1=${2-0} OPT2=${3-tinfo/MKcaptab.awk} DATA=${4-../include/Caps} +cat < -#include 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-09-12 08:51:23.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 " - 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-09-12 08:51:17.000000000 -0700 @@ -31,10 +31,9 @@ ****************************************************************************/ #include -#include #include -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-09-12 08:51: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 * @@ -48,7 +48,7 @@ #include #include -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.71 2009/07/11 18:14:21 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; @@ -379,16 +383,14 @@ && !strcmp("ma", _nc_curr_token.tk_name)) { /* tell max_attributes from arrow_key_map */ entry_ptr = _nc_find_type_entry("ma", NUMBER, - _nc_get_table(_nc_syntax - != 0)); + _nc_syntax != 0); assert(entry_ptr != 0); } else if (token_type == STRING && !strcmp("MT", _nc_curr_token.tk_name)) { /* map terminfo's string MT to MT */ entry_ptr = _nc_find_type_entry("MT", STRING, - _nc_get_table(_nc_syntax - != 0)); + _nc_syntax != 0); assert(entry_ptr != 0); } else if (token_type == BOOLEAN @@ -444,7 +446,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 +790,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-09-12 08:51:56.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 1992,1995 * * and: Eric S. Raymond * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2008 * ****************************************************************************/ /* @@ -40,7 +42,7 @@ #include -MODULE_ID("$Id: setbuf.c,v 1.13 2007/05/12 19:04:02 tom Exp $") +MODULE_ID("$Id: setbuf.c,v 1.15 2009/05/23 22:13:44 tom Exp $") /* * If the output file descriptor is connected to a tty (the typical case) it @@ -98,11 +100,20 @@ * 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) { + int Cols; + int Lines; + + if (0 == SP_PARM) + return; + + Cols = *(ptrCols(SP_PARM)); + Lines = *(ptrLines(SP_PARM)); + /* 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; @@ -114,11 +125,11 @@ setmode(ofp, O_BINARY); #endif if (buffered != 0) { - buf_len = min(LINES * (COLS + 6), 2800); - if ((buf_ptr = SP->_setbuf) == 0) { + buf_len = min(Lines * (Cols + 6), 2800); + 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 +155,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) +{ + NCURSES_SP_NAME(_nc_set_buffer) (CURRENT_SCREEN, ofp, buffered); +} +#endif diff -Naur ncurses-5.7.orig/ncurses/tinfo/tinfo_driver.c ncurses-5.7/ncurses/tinfo/tinfo_driver.c --- ncurses-5.7.orig/ncurses/tinfo/tinfo_driver.c 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/ncurses/tinfo/tinfo_driver.c 2009-09-12 08:52:05.000000000 -0700 @@ -0,0 +1,1389 @@ +/**************************************************************************** + * Copyright (c) 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"), 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: Juergen Pfeifer * + * * + ****************************************************************************/ + +#include +#define CUR ((TERMINAL*)TCB)->type. +#include + +#if HAVE_NANOSLEEP +#include +#if HAVE_SYS_TIME_H +#include /* needed for MacOS X DP3 */ +#endif +#endif + +MODULE_ID("$Id: tinfo_driver.c,v 1.2 2009/08/16 14:17:08 tom Exp $") + +/* + * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS, + * Solaris, IRIX) define TIOCGWINSZ and struct winsize. + */ +#ifdef TIOCGSIZE +# define IOCTL_WINSIZE TIOCGSIZE +# define STRUCT_WINSIZE struct ttysize +# define WINSIZE_ROWS(n) (int)n.ts_lines +# define WINSIZE_COLS(n) (int)n.ts_cols +#else +# ifdef TIOCGWINSZ +# define IOCTL_WINSIZE TIOCGWINSZ +# define STRUCT_WINSIZE struct winsize +# define WINSIZE_ROWS(n) (int)n.ws_row +# define WINSIZE_COLS(n) (int)n.ws_col +# endif +#endif + +/* + * These should be screen structure members. They need to be globals for + * historical reasons. So we assign them in start_color() and also in + * set_term()'s screen-switching logic. + */ +#if USE_REENTRANT +NCURSES_EXPORT(int) +NCURSES_PUBLIC_VAR(COLOR_PAIRS) (void) +{ + return CURRENT_SCREEN ? CURRENT_SCREEN->_pair_count : -1; +} +NCURSES_EXPORT(int) +NCURSES_PUBLIC_VAR(COLORS) (void) +{ + return CURRENT_SCREEN ? CURRENT_SCREEN->_color_count : -1; +} +#else +NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0; +NCURSES_EXPORT_VAR(int) COLORS = 0; +#endif + +static bool drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *); +static void drv_init(TERMINAL_CONTROL_BLOCK *); +static void drv_release(TERMINAL_CONTROL_BLOCK *); +static int drv_size(TERMINAL_CONTROL_BLOCK *, int *, int *); +static int drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, bool setFlag, TTY * buf); +static chtype drv_conattr(TERMINAL_CONTROL_BLOCK * TCB); +static int drv_mvcur(TERMINAL_CONTROL_BLOCK * TCB, int yold, int xold, int + ynew, int xnew); +static int drv_mode(TERMINAL_CONTROL_BLOCK * TCB, bool progFlag, bool defFlag); +static bool drv_rescol(TERMINAL_CONTROL_BLOCK * TCB); +static bool drv_rescolors(TERMINAL_CONTROL_BLOCK * TCB); +static void drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB, bool fore, int color, int + (*outc) (SCREEN *, int)); +static int drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, bool beepFlag); +static void drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, short pair, short f, short b); +static void drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB, short color, short + r, short g, short b); +static void drv_do_color(TERMINAL_CONTROL_BLOCK * TCB, short old_pair, short + pair, bool reverse, + int (*outc) (SCREEN *, int)); +static void drv_initmouse(TERMINAL_CONTROL_BLOCK * TCB); +static void drv_setfilter(TERMINAL_CONTROL_BLOCK * TCB); +static void drv_hwlabel(TERMINAL_CONTROL_BLOCK * TCB, int labnum, char *text); +static void drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, bool OnFlag); +static int drv_doupdate(TERMINAL_CONTROL_BLOCK * TCB); +static int drv_defaultcolors(TERMINAL_CONTROL_BLOCK * TCB, int fg, int bg); +static int drv_print(TERMINAL_CONTROL_BLOCK * TCB, char *data, int len); +static int drv_getsize(TERMINAL_CONTROL_BLOCK *, int *, int *); +static int drv_setsize(TERMINAL_CONTROL_BLOCK * TCB, int l, int c); +static void drv_initacs(TERMINAL_CONTROL_BLOCK * TCB, chtype *, chtype *); +static void drv_wrap(SCREEN *); +static void drv_screen_init(SCREEN *); +static int drv_twait(TERMINAL_CONTROL_BLOCK *, int, int, int + *EVENTLIST_2nd(_nc_eventlist + *)); +static int drv_read(TERMINAL_CONTROL_BLOCK * TCB, int *buf); +static int drv_nap(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int ms); +static int drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool); +static int drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int, bool); +static bool drv_kyExist(TERMINAL_CONTROL_BLOCK * TCB, int); + +NCURSES_EXPORT_VAR (TERM_DRIVER) _nc_TINFO_DRIVER = { + TRUE, + drv_CanHandle, /* CanHandle */ + drv_init, /* init */ + drv_release, /* release */ + drv_size, /* size */ + drv_sgmode, /* sgmode */ + drv_conattr, /* conattr */ + drv_mvcur, /* hwcur */ + drv_mode, /* mode */ + drv_rescol, /* rescol */ + drv_rescolors, /* rescolors */ + drv_setcolor, /* color */ + drv_dobeepflash, /* doBeepOrFlash */ + drv_initpair, /* initpair */ + drv_initcolor, /* initcolor */ + drv_do_color, /* docolor */ + drv_initmouse, /* initmouse */ + drv_setfilter, /* setfilter */ + drv_hwlabel, /* hwlabel */ + drv_hwlabelOnOff, /* hwlabelOnOff */ + drv_doupdate, /* update */ + drv_defaultcolors, /* defaultcolors */ + drv_print, /* print */ + drv_getsize, /* getsize */ + drv_setsize, /* setsize */ + drv_initacs, /* initacs */ + drv_screen_init, /* scinit */ + drv_wrap, /* scexit */ + drv_twait, /* twait */ + drv_read, /* read */ + drv_nap, /* nap */ + drv_kpad, /* kpad */ + drv_keyok, /* kyOk */ + drv_kyExist /* kyExist */ +}; + +#define TCBMAGIC NCDRV_MAGIC(NCDRV_TINFO) +#define AssertTCB() assert(TCB!=0 && TCB->magic==TCBMAGIC) +#define SetSP() assert(TCB->csp!=0); sp = TCB->csp + +/* + * This routine needs to do all the work to make curscr look + * like newscr. + */ +static int +drv_doupdate(TERMINAL_CONTROL_BLOCK * TCB) +{ + AssertTCB(); + return TINFO_DOUPDATE(TCB->csp); +} + +/* +** do_prototype() +** +** Take the real command character out of the CC environment variable +** and substitute it in for the prototype given in 'command_character'. +*/ +static void +do_prototype(TERMINAL * termp) +{ + unsigned i; + char CC; + char proto; + char *tmp; + TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) termp; + + if ((tmp = getenv("CC")) != 0) { + if ((CC = *tmp) != 0) { + proto = *command_character; + + for_each_string(i, &(termp->type)) { + for (tmp = termp->type.Strings[i]; *tmp; tmp++) { + if (*tmp == proto) + *tmp = CC; + } + } + } + } +} + +#define ret_error(code, fmt, arg) if (errret) {\ + *errret = code;\ + return(FALSE); \ + } else {\ + fprintf(stderr, fmt, arg);\ + exit(EXIT_FAILURE);\ + } + +#define ret_error0(code, msg) if (errret) {\ + *errret = code;\ + return(FALSE);\ + } else {\ + fprintf(stderr, msg);\ + exit(EXIT_FAILURE);\ + } + +#if USE_DATABASE || USE_TERMCAP +/* + * Return 1 if entry found, 0 if not found, -1 if database not accessible, + * just like tgetent(). + */ +static int +grab_entry(const char *const tn, TERMTYPE *const tp) +{ + char filename[PATH_MAX]; + int status = _nc_read_entry(tn, filename, tp); + + /* + * If we have an entry, force all of the cancelled strings to null + * pointers so we don't have to test them in the rest of the library. + * (The terminfo compiler bypasses this logic, since it must know if + * a string is cancelled, for merging entries). + */ + if (status == TGETENT_YES) { + unsigned n; + for_each_boolean(n, tp) { + if (!VALID_BOOLEAN(tp->Booleans[n])) + tp->Booleans[n] = FALSE; + } + for_each_string(n, tp) { + if (tp->Strings[n] == CANCELLED_STRING) + tp->Strings[n] = ABSENT_STRING; + } + } + return (status); +} +#endif + +static bool +drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *errret) +{ + bool result = FALSE; + int status; + TERMINAL *termp; + SCREEN *sp; + + assert(TCB != 0 && tname != 0); + termp = (TERMINAL *) TCB; + sp = TCB->csp; + TCB->magic = TCBMAGIC; + +#if (USE_DATABASE || USE_TERMCAP) + status = grab_entry(tname, &termp->type); +#else + status = TGETENT_NO; +#endif + + /* try fallback list if entry on disk */ + if (status != TGETENT_YES) { + const TERMTYPE *fallback = _nc_fallback(tname); + + if (fallback) { + termp->type = *fallback; + status = TGETENT_YES; + } + } + + if (status != TGETENT_YES) { + NCURSES_SP_NAME(del_curterm) (NCURSES_SP_ARGx termp); + if (status == TGETENT_ERR) { + ret_error0(status, "terminals database is inaccessible\n"); + } else if (status == TGETENT_NO) { + ret_error(status, "'%s': unknown terminal type.\n", tname); + } + } + result = TRUE; +#if !USE_REENTRANT + strncpy(ttytype, termp->type.term_names, NAMESIZE - 1); + ttytype[NAMESIZE - 1] = '\0'; +#endif + + if (command_character && getenv("CC")) + do_prototype(termp); + + if (generic_type) { + ret_error(TGETENT_NO, "'%s': I need something more specific.\n", tname); + } + if (hard_copy) { + ret_error(TGETENT_YES, "'%s': I can't handle hardcopy terminals.\n", tname); + } + + return result; +} + +static int +drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, bool beepFlag) +{ + SCREEN *sp; + int res = ERR; + + AssertTCB(); + SetSP(); + + /* FIXME: should make sure that we are not in altchar mode */ + if (beepFlag) { + if (bell) { + res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "bell", bell); + NCURSES_SP_NAME(_nc_flush) (sp); + } else if (flash_screen) { + res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx + "flash_screen", + flash_screen); + NCURSES_SP_NAME(_nc_flush) (sp); + } + } else { + if (flash_screen) { + res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx + "flash_screen", + flash_screen); + NCURSES_SP_NAME(_nc_flush) (sp); + } else if (bell) { + res = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "bell", bell); + NCURSES_SP_NAME(_nc_flush) (sp); + } + } + return res; +} + +/* + * SVr4 curses is known to interchange color codes (1,4) and (3,6), possibly + * to maintain compatibility with a pre-ANSI scheme. The same scheme is + * also used in the FreeBSD syscons. + */ +static int +toggled_colors(int c) +{ + if (c < 16) { + static const int table[] = + {0, 4, 2, 6, 1, 5, 3, 7, + 8, 12, 10, 14, 9, 13, 11, 15}; + c = table[c]; + } + return c; +} + +static int +drv_print(TERMINAL_CONTROL_BLOCK * TCB, char *data, int len) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); +#if NCURSES_EXT_FUNCS + return NCURSES_SP_NAME(mcprint) (TCB->csp, data, len); +#else + return ERR; +#endif +} + +static int +drv_defaultcolors(TERMINAL_CONTROL_BLOCK * TCB, int fg, int bg) +{ + SCREEN *sp; + int code = ERR; + + AssertTCB(); + SetSP(); + + if (sp != 0 && orig_pair && orig_colors && (initialize_pair != 0)) { +#if NCURSES_EXT_FUNCS + sp->_default_color = isDefaultColor(fg) || isDefaultColor(bg); + sp->_has_sgr_39_49 = (NCURSES_SP_NAME(tigetflag) (NCURSES_SP_ARGx + "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; + NCURSES_SP_NAME(init_pair) (NCURSES_SP_ARGx + 0, + (short)fg, + (short)bg); + sp->_default_color = save; + } +#endif + code = OK; + } + return (code); +} + +static void +drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB, bool fore, int color, int (*outc) + (SCREEN *, int)) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); + + if (fore) { + if (set_a_foreground) { + TPUTS_TRACE("set_a_foreground"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TPARM_1(set_a_foreground, color), 1, outc); + } else { + TPUTS_TRACE("set_foreground"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TPARM_1(set_foreground, + toggled_colors(color)), 1, outc); + } + } else { + if (set_a_background) { + TPUTS_TRACE("set_a_background"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TPARM_1(set_a_background, color), 1, outc); + } else { + TPUTS_TRACE("set_background"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TPARM_1(set_background, + toggled_colors(color)), 1, outc); + } + } +} + +static bool +drv_rescol(TERMINAL_CONTROL_BLOCK * TCB) +{ + bool result = FALSE; + SCREEN *sp; + + AssertTCB(); + SetSP(); + + if (orig_pair != 0) { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "orig_pair", orig_pair); + result = TRUE; + } + return result; +} + +static bool +drv_rescolors(TERMINAL_CONTROL_BLOCK * TCB) +{ + int result = FALSE; + SCREEN *sp; + + AssertTCB(); + SetSP(); + + if (orig_colors != 0) { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "orig_colors", orig_colors); + result = TRUE; + } + return result; +} + +static int +drv_size(TERMINAL_CONTROL_BLOCK * TCB, int *linep, int *colp) +{ + SCREEN *sp; + bool useEnv = TRUE; + + AssertTCB(); + sp = TCB->csp; /* can be null here */ + + if (sp) { + useEnv = sp->_use_env; + } else + useEnv = _nc_prescreen.use_env; + + /* figure out the size of the screen */ + T(("screen size: terminfo lines = %d columns = %d", lines, columns)); + + if (!useEnv) { + *linep = (int) lines; + *colp = (int) columns; + } else { /* usually want to query LINES and COLUMNS from environment */ + int value; + + *linep = *colp = 0; + + /* first, look for environment variables */ + if ((value = _nc_getenv_num("LINES")) > 0) { + *linep = value; + } + if ((value = _nc_getenv_num("COLUMNS")) > 0) { + *colp = value; + } + T(("screen size: environment LINES = %d COLUMNS = %d", *linep, *colp)); + +#ifdef __EMX__ + if (*linep <= 0 || *colp <= 0) { + int screendata[2]; + _scrsize(screendata); + *colp = screendata[0]; + *linep = screendata[1]; + T(("EMX screen size: environment LINES = %d COLUMNS = %d", + *linep, *colp)); + } +#endif +#if HAVE_SIZECHANGE + /* if that didn't work, maybe we can try asking the OS */ + if (*linep <= 0 || *colp <= 0) { + TERMINAL *termp = (TERMINAL *) TCB; + if (isatty(termp->Filedes)) { + STRUCT_WINSIZE size; + + errno = 0; + do { + if (ioctl(termp->Filedes, IOCTL_WINSIZE, &size) < 0 + && errno != EINTR) + goto failure; + } while + (errno == EINTR); + + /* + * Solaris lets users override either dimension with an + * environment variable. + */ + if (*linep <= 0) + *linep = (sp != 0 && sp->_filtered) ? 1 : WINSIZE_ROWS(size); + if (*colp <= 0) + *colp = WINSIZE_COLS(size); + } + /* FALLTHRU */ + failure:; + } +#endif /* HAVE_SIZECHANGE */ + + /* if we can't get dynamic info about the size, use static */ + if (*linep <= 0) { + *linep = (int) lines; + } + if (*colp <= 0) { + *colp = (int) columns; + } + + /* the ultimate fallback, assume fixed 24x80 size */ + if (*linep <= 0) { + *linep = 24; + } + if (*colp <= 0) { + *colp = 80; + } + + /* + * Put the derived values back in the screen-size caps, so + * tigetnum() and tgetnum() will do the right thing. + */ + lines = (short) (*linep); + columns = (short) (*colp); + } + + T(("screen size is %dx%d", *linep, *colp)); + return OK; +} + +static int +drv_getsize(TERMINAL_CONTROL_BLOCK * TCB, int *l, int *c) +{ + AssertTCB(); + assert(l != 0 && c != 0); + *l = lines; + *c = columns; + return OK; +} + +static int +drv_setsize(TERMINAL_CONTROL_BLOCK * TCB, int l, int c) +{ + AssertTCB(); + lines = l; + columns = c; + return OK; +} + +static int +drv_mode(TERMINAL_CONTROL_BLOCK * TCB, bool progFlag, bool defFlag) +{ + SCREEN *sp; + TERMINAL *_term = (TERMINAL *) TCB; + int code = ERR; + + AssertTCB(); + sp = TCB->csp; + + if (progFlag) /* prog mode */ + { + if (defFlag) { + /* def_prog_mode */ + /* + * Turn off the XTABS bit in the tty structure if it was on. + */ + if ((drv_sgmode(TCB, FALSE, &(_term->Nttyb)) == OK)) { +#ifdef TERMIOS + _term->Nttyb.c_oflag &= ~OFLAGS_TABS; +#else + _term->Nttyb.sg_flags &= ~XTABS; +#endif + code = OK; + } + } else { + /* reset_prog_mode */ + if (drv_sgmode(TCB, TRUE, &(_term->Nttyb)) == OK) { + if (sp) { + if (sp->_keypad_on) + _nc_keypad(sp, TRUE); + NC_BUFFERED(sp, TRUE); + } + code = OK; + } + } + } else { /* shell mode */ + if (defFlag) { + /* def_shell_mode */ + /* + * If XTABS was on, remove the tab and backtab capabilities. + */ + if (drv_sgmode(TCB, FALSE, &(_term->Ottyb)) == OK) { +#ifdef TERMIOS + if (_term->Ottyb.c_oflag & OFLAGS_TABS) + tab = back_tab = NULL; +#else + if (_term->Ottyb.sg_flags & XTABS) + tab = back_tab = NULL; +#endif + code = OK; + } + } else { + /* reset_shell_mode */ + if (sp) { + _nc_keypad(sp, FALSE); + NCURSES_SP_NAME(_nc_flush) (sp); + NC_BUFFERED(sp, FALSE); + } + code = drv_sgmode(TCB, TRUE, &(_term->Ottyb)); + } + } + return (code); +} + +static void +drv_wrap(SCREEN *sp) +{ + if (sp) { + sp->_mouse_wrap(sp); + NCURSES_SP_NAME(_nc_screen_wrap) (sp); + NCURSES_SP_NAME(_nc_mvcur_wrap) (sp); /* wrap up cursor addressing */ + } +} + +static void +drv_release(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED) +{ +} + +# define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode)) + +void +drv_screen_init(SCREEN *sp) +{ + TERMINAL_CONTROL_BLOCK *TCB = TCBOf(sp); + + AssertTCB(); + + /* + * Check for mismatched graphic-rendition capabilities. Most SVr4 + * terminfo trees contain entries that have rmul or rmso equated to + * sgr0 (Solaris curses copes with those entries). We do this only + * for curses, since many termcap applications assume that + * smso/rmso and smul/rmul are paired, and will not function + * properly if we remove rmso or rmul. Curses applications + * shouldn't be looking at this detail. + */ + sp->_use_rmso = SGR0_TEST(exit_standout_mode); + sp->_use_rmul = SGR0_TEST(exit_underline_mode); + + /* + * Check whether we can optimize scrolling under dumb terminals in + * case we do not have any of these capabilities, scrolling + * optimization will be useless. + */ + sp->_scrolling = ((scroll_forward && scroll_reverse) || + ((parm_rindex || + parm_insert_line || + insert_line) && + (parm_index || + parm_delete_line || + delete_line))); + + NCURSES_SP_NAME(baudrate) (sp); + + NCURSES_SP_NAME(_nc_mvcur_init) (sp); + /* initialize terminal to a sane state */ + NCURSES_SP_NAME(_nc_screen_init) (sp); +} + +static void +drv_init(TERMINAL_CONTROL_BLOCK * TCB) +{ + SCREEN *sp; + TERMINAL *trm; + + AssertTCB(); + + trm = (TERMINAL *) TCB; + sp = TCB->csp; + + TCB->info.initcolor = initialize_color; + TCB->info.canchange = can_change; + TCB->info.hascolor = ((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs) + && (((set_foreground != NULL) + && (set_background != NULL)) + || ((set_a_foreground != NULL) + && (set_a_background != NULL)) + || set_color_pair)) ? TRUE : FALSE); + + TCB->info.caninit = !(exit_ca_mode && non_rev_rmcup); + + TCB->info.maxpairs = VALID_NUMERIC(max_pairs) ? max_pairs : 0; + TCB->info.maxcolors = VALID_NUMERIC(max_colors) ? max_colors : 0; + TCB->info.numlabels = VALID_NUMERIC(num_labels) ? num_labels : 0; + TCB->info.labelwidth = VALID_NUMERIC(label_width) ? label_width : 0; + TCB->info.labelheight = VALID_NUMERIC(label_height) ? label_height : 0; + TCB->info.nocolorvideo = VALID_NUMERIC(no_color_video) ? no_color_video + : 0; + TCB->info.tabsize = VALID_NUMERIC(init_tabs) ? (int) init_tabs : 8; + + TCB->info.defaultPalette = hue_lightness_saturation ? _nc_hls_palette : _nc_cga_palette; + + /* + * If an application calls setupterm() rather than initscr() or + * newterm(), we will not have the def_prog_mode() call in + * _nc_setupscreen(). Do it now anyway, so we can initialize the + * baudrate. + */ + if (isatty(trm->Filedes)) { + TCB->drv->mode(TCB, TRUE, TRUE); + } +} + +#define MAX_PALETTE 8 +#define InPalette(n) ((n) >= 0 && (n) < MAX_PALETTE) + +static void +drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, short pair, short f, short b) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); + + if ((initialize_pair != NULL) && InPalette(f) && InPalette(b)) { + const color_t *tp = InfoOf(sp).defaultPalette; + + TR(TRACE_ATTRS, + ("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)", + pair, + tp[f].red, tp[f].green, tp[f].blue, + tp[b].red, tp[b].green, tp[b].blue)); + + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx + "initialize_pair", + TPARM_7(initialize_pair, + pair, + tp[f].red, tp[f].green, tp[f].blue, + tp[b].red, tp[b].green, tp[b].blue)); + } +} + +static int +default_fg(SCREEN *sp) +{ +#if NCURSES_EXT_FUNCS + return (sp != 0) ? sp->_default_fg : COLOR_WHITE; +#else + return COLOR_WHITE; +#endif +} + +static int +default_bg(SCREEN *sp) +{ +#if NCURSES_EXT_FUNCS + return sp != 0 ? sp->_default_bg : COLOR_BLACK; +#else + return COLOR_BLACK; +#endif +} + +static void +drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB, + short color, short r, short g, short b) +{ + SCREEN *sp = TCB->csp; + + AssertTCB(); + if (initialize_color != NULL) { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx + "initialize_color", + TPARM_4(initialize_color, color, r, g, b)); + } +} + +static void +drv_do_color(TERMINAL_CONTROL_BLOCK * TCB, + short old_pair, + short pair, + bool reverse, + NCURSES_SP_OUTC outc) +{ + SCREEN *sp = TCB->csp; + NCURSES_COLOR_T fg = COLOR_DEFAULT; + NCURSES_COLOR_T bg = COLOR_DEFAULT; + NCURSES_COLOR_T old_fg, old_bg; + + AssertTCB(); + if (sp == 0) + return; + + if (pair < 0 || pair >= COLOR_PAIRS) { + return; + } else if (pair != 0) { + if (set_color_pair) { + TPUTS_TRACE("set_color_pair"); + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx + TPARM_1(set_color_pair, pair), 1, outc); + return; + } else if (sp != 0) { + NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx + (short) pair, + &fg, + &bg); + } + } + + if (old_pair >= 0 + && sp != 0 + && NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx + old_pair, + &old_fg, + &old_bg) !=ERR) { + if ((isDefaultColor(fg) && !isDefaultColor(old_fg)) + || (isDefaultColor(bg) && !isDefaultColor(old_bg))) { +#if NCURSES_EXT_FUNCS + /* + * A minor optimization - but extension. If "AX" is specified in + * the terminal description, treat it as screen's indicator of ECMA + * SGR 39 and SGR 49, and assume the two sequences are independent. + */ + if (sp->_has_sgr_39_49 + && isDefaultColor(old_bg) + && !isDefaultColor(old_fg)) { + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx "\033[39m", 1, outc); + } else if (sp->_has_sgr_39_49 + && isDefaultColor(old_fg) + && !isDefaultColor(old_bg)) { + NCURSES_SP_NAME(tputs) (NCURSES_SP_ARGx "\033[49m", 1, outc); + } else +#endif + drv_rescol(TCB); + } + } else { + drv_rescol(TCB); + if (old_pair < 0) + return; + } + +#if NCURSES_EXT_FUNCS + if (isDefaultColor(fg)) + fg = default_fg(sp); + if (isDefaultColor(bg)) + bg = default_bg(sp); +#endif + + if (reverse) { + NCURSES_COLOR_T xx = fg; + fg = bg; + bg = xx; + } + + TR(TRACE_ATTRS, ("setting colors: pair = %d, fg = %d, bg = %d", pair, + fg, bg)); + + if (!isDefaultColor(fg)) { + drv_setcolor(TCB, TRUE, fg, outc); + } + if (!isDefaultColor(bg)) { + drv_setcolor(TCB, FALSE, bg, outc); + } +} + +#define xterm_kmous "\033[M" +static void +init_xterm_mouse(SCREEN *sp) +{ + sp->_mouse_type = M_XTERM; + sp->_mouse_xtermcap = NCURSES_SP_NAME(tigetstr) (NCURSES_SP_ARGx "XM"); + if (!VALID_STRING(sp->_mouse_xtermcap)) + sp->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;"; +} + +static void +drv_initmouse(TERMINAL_CONTROL_BLOCK * TCB) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); + + /* we know how to recognize mouse events under "xterm" */ + if (sp != 0) { + if (key_mouse != 0) { + if (!strcmp(key_mouse, xterm_kmous) + || strstr(TerminalOf(sp)->type.term_names, "xterm") != 0) { + init_xterm_mouse(sp); + } + } else if (strstr(TerminalOf(sp)->type.term_names, "xterm") != 0) { + if (_nc_add_to_try(&(sp->_keytry), xterm_kmous, KEY_MOUSE) == OK) + init_xterm_mouse(sp); + } + } +} + +static int +drv_mvcur(TERMINAL_CONTROL_BLOCK * TCB, int yold, int xold, int ynew, int xnew) +{ + SCREEN *sp = TCB->csp; + AssertTCB(); + return TINFO_MVCUR(sp, yold, xold, ynew, xnew); +} + +static void +drv_hwlabel(TERMINAL_CONTROL_BLOCK * TCB, int labnum, char *text) +{ + SCREEN *sp = TCB->csp; + + AssertTCB(); + if (labnum > 0 && labnum <= num_labels) { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx + "plab_norm", + TPARM_2(plab_norm, labnum, text)); + } +} + +static void +drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, bool OnFlag) +{ + SCREEN *sp = TCB->csp; + + AssertTCB(); + if (OnFlag) { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "label_on", label_on); + } else { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "label_off", label_off); + } +} + +static chtype +drv_conattr(TERMINAL_CONTROL_BLOCK * TCB) +{ + SCREEN *sp = TCB->csp; + chtype attrs = A_NORMAL; + + AssertTCB(); + if (enter_alt_charset_mode) + attrs |= A_ALTCHARSET; + + if (enter_blink_mode) + attrs |= A_BLINK; + + if (enter_bold_mode) + attrs |= A_BOLD; + + if (enter_dim_mode) + attrs |= A_DIM; + + if (enter_reverse_mode) + attrs |= A_REVERSE; + + if (enter_standout_mode) + attrs |= A_STANDOUT; + + if (enter_protected_mode) + attrs |= A_PROTECT; + + if (enter_secure_mode) + attrs |= A_INVIS; + + if (enter_underline_mode) + attrs |= A_UNDERLINE; + + if (sp && sp->_coloron) + attrs |= A_COLOR; + + return (attrs); +} + +static void +drv_setfilter(TERMINAL_CONTROL_BLOCK * TCB) +{ + AssertTCB(); + + clear_screen = 0; + cursor_down = parm_down_cursor = 0; + cursor_address = 0; + cursor_up = parm_up_cursor = 0; + row_address = 0; + cursor_home = carriage_return; +} + +static int +drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, bool setFlag, TTY * buf) +{ + SCREEN *sp = TCB->csp; + TERMINAL *_term = (TERMINAL *) TCB; + int result = OK; + + AssertTCB(); + if (setFlag) { + for (;;) { + if (SET_TTY(_term->Filedes, buf) != 0) { + if (errno == EINTR) + continue; + if (errno == ENOTTY) { + if (sp) + sp->_notty = TRUE; + } + result = ERR; + } + break; + } + } else { + for (;;) { + if (GET_TTY(_term->Filedes, buf) != 0) { + if (errno == EINTR) + continue; + result = ERR; + } + break; + } + } + return result; +} + +static void +drv_initacs(TERMINAL_CONTROL_BLOCK * TCB, chtype *real_map, chtype *fake_map) +{ + SCREEN *sp = TCB->csp; + + AssertTCB(); + assert(sp != 0); + if (ena_acs != NULL) { + NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx "ena_acs", ena_acs); + } +#if NCURSES_EXT_FUNCS + /* + * Linux console "supports" the "PC ROM" character set by the coincidence + * that smpch/rmpch and smacs/rmacs have the same values. ncurses has + * no codepage support (see SCO Merge for an example). Outside of the + * values defined in acsc, there are no definitions for the "PC ROM" + * character set (assumed by some applications to be codepage 437), but we + * allow those applications to use those codepoints. + * + * test/blue.c uses this feature. + */ +#define PCH_KLUDGE(a,b) (a != 0 && b != 0 && !strcmp(a,b)) + if (PCH_KLUDGE(enter_pc_charset_mode, enter_alt_charset_mode) && + PCH_KLUDGE(exit_pc_charset_mode, exit_alt_charset_mode)) { + size_t i; + for (i = 1; i < ACS_LEN; ++i) { + if (real_map[i] == 0) { + real_map[i] = i; + if (real_map != fake_map) { + if (sp != 0) + sp->_screen_acs_map[i] = TRUE; + } + } + } + } +#endif + + if (acs_chars != NULL) { + size_t i = 0; + size_t length = strlen(acs_chars); + + while (i + 1 < length) { + if (acs_chars[i] != 0 && UChar(acs_chars[i]) < ACS_LEN) { + real_map[UChar(acs_chars[i])] = UChar(acs_chars[i + 1]) | A_ALTCHARSET; + if (sp != 0) + sp->_screen_acs_map[UChar(acs_chars[i])] = TRUE; + } + i += 2; + } + } +#ifdef TRACE + /* Show the equivalent mapping, noting if it does not match the + * given attribute, whether by re-ordering or duplication. + */ + if (USE_TRACEF(TRACE_CALLS)) { + size_t n, m; + char show[ACS_LEN * 2 + 1]; + for (n = 1, m = 0; n < ACS_LEN; n++) { + if (real_map[n] != 0) { + show[m++] = (char) n; + show[m++] = (char) ChCharOf(real_map[n]); + } + } + show[m] = 0; + if (acs_chars == NULL || strcmp(acs_chars, show)) + _tracef("%s acs_chars %s", + (acs_chars == NULL) ? "NULL" : "READ", + _nc_visbuf(acs_chars)); + _tracef("%s acs_chars %s", + (acs_chars == NULL) + ? "NULL" + : (strcmp(acs_chars, show) + ? "DIFF" + : "SAME"), + _nc_visbuf(show)); + + _nc_unlock_global(tracef); + } +#endif /* TRACE */ +} + +#define ENSURE_TINFO(sp) (TCBOf(sp)->drv->isTerminfo) + +NCURSES_EXPORT(void) +_nc_cookie_init(SCREEN *sp) +{ + bool support_cookies = USE_XMC_SUPPORT; + TERMINAL_CONTROL_BLOCK *TCB = (TERMINAL_CONTROL_BLOCK *) (sp->_term); + + if (sp == 0 || !ENSURE_TINFO(sp)) + return; + +#if USE_XMC_SUPPORT + /* + * If we have no magic-cookie support compiled-in, or if it is suppressed + * in the environment, reset the support-flag. + */ + if (magic_cookie_glitch >= 0) { + if (getenv("NCURSES_NO_MAGIC_COOKIE") != 0) { + support_cookies = FALSE; + } + } +#endif + + if (!support_cookies && magic_cookie_glitch >= 0) { + T(("will disable attributes to work w/o magic cookies")); + } + + if (magic_cookie_glitch > 0) { /* tvi, wyse */ + + sp->_xmc_triggers = sp->_ok_attributes & ( + A_STANDOUT | + A_UNDERLINE | + A_REVERSE | + A_BLINK | + A_DIM | + A_BOLD | + A_INVIS | + A_PROTECT + ); +#if 0 + /* + * We "should" treat colors as an attribute. The wyse350 (and its + * clones) appear to be the only ones that have both colors and magic + * cookies. + */ + if (has_colors()) { + sp->_xmc_triggers |= A_COLOR; + } +#endif + sp->_xmc_suppress = sp->_xmc_triggers & (chtype) ~(A_BOLD); + + T(("magic cookie attributes %s", _traceattr(sp->_xmc_suppress))); + /* + * Supporting line-drawing may be possible. But make the regular + * video attributes work first. + */ + acs_chars = ABSENT_STRING; + ena_acs = ABSENT_STRING; + enter_alt_charset_mode = ABSENT_STRING; + exit_alt_charset_mode = ABSENT_STRING; +#if USE_XMC_SUPPORT + /* + * To keep the cookie support simple, suppress all of the optimization + * hooks except for clear_screen and the cursor addressing. + */ + if (support_cookies) { + clr_eol = ABSENT_STRING; + clr_eos = ABSENT_STRING; + set_attributes = ABSENT_STRING; + } +#endif + } else if (magic_cookie_glitch == 0) { /* hpterm */ + } + + /* + * If magic cookies are not supported, cancel the strings that set + * video attributes. + */ + if (!support_cookies && magic_cookie_glitch >= 0) { + magic_cookie_glitch = ABSENT_NUMERIC; + set_attributes = ABSENT_STRING; + enter_blink_mode = ABSENT_STRING; + enter_bold_mode = ABSENT_STRING; + enter_dim_mode = ABSENT_STRING; + enter_reverse_mode = ABSENT_STRING; + enter_standout_mode = ABSENT_STRING; + enter_underline_mode = ABSENT_STRING; + } + + /* initialize normal acs before wide, since we use mapping in the latter */ +#if !USE_WIDEC_SUPPORT + if (_nc_unicode_locale() && _nc_locale_breaks_acs(sp->_term)) { + acs_chars = NULL; + ena_acs = NULL; + enter_alt_charset_mode = NULL; + exit_alt_charset_mode = NULL; + set_attributes = NULL; + } +#endif +} + +static int +drv_twait(TERMINAL_CONTROL_BLOCK * TCB, + int mode, + int milliseconds, + int *timeleft + EVENTLIST_2nd(_nc_eventlist * evl)) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); + + return _nc_timed_wait(sp, mode, milliseconds, timeleft EVENTLIST_2nd(evl)); +} + +static int +drv_read(TERMINAL_CONTROL_BLOCK * TCB, int *buf) +{ + SCREEN *sp; + unsigned char c2 = 0; + int n; + + AssertTCB(); + assert(buf); + SetSP(); + + n = read(sp->_ifd, &c2, 1); + *buf = (int) c2; + return n; +} + +static int +drv_nap(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int ms) +{ +#if HAVE_NANOSLEEP + { + struct timespec request, remaining; + request.tv_sec = ms / 1000; + request.tv_nsec = (ms % 1000) * 1000000; + while (nanosleep(&request, &remaining) == -1 + && errno == EINTR) { + request = remaining; + } + } +#else + _nc_timed_wait(0, 0, ms, (int *) 0 EVENTLIST_2nd(0)); +#endif + return OK; +} + +static int +__nc_putp(SCREEN *sp, const char *name GCC_UNUSED, const char *value) +{ + int rc = ERR; + + if (value) { + rc = NCURSES_SP_NAME(_nc_putp) (NCURSES_SP_ARGx name, value); + } + return rc; +} + +static int +__nc_putp_flush(SCREEN *sp, const char *name, const char *value) +{ + int rc = __nc_putp(sp, name, value); + if (rc != ERR) { + NCURSES_SP_NAME(_nc_flush) (sp); + } + return rc; +} + +static int +drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool flag) +{ + int ret = ERR; + SCREEN *sp; + + AssertTCB(); + + sp = TCB->csp; + + if (sp) { + if (flag) { + (void) __nc_putp_flush(sp, "keypad_xmit", keypad_xmit); + } else if (!flag && keypad_local) { + (void) __nc_putp_flush(sp, "keypad_local", keypad_local); + } + if (flag && !sp->_tried) { + _nc_init_keytry(sp); + sp->_tried = TRUE; + } + ret = OK; + } + + return ret; +} + +static int +drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int c, bool flag) +{ + SCREEN *sp; + int code = ERR; + int count = 0; + char *s; + + AssertTCB(); + SetSP(); + + 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); + 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); + free(s); + count = 0; + if (code != OK) + break; + } + } + } + return (code); +} + +static bool +drv_kyExist(TERMINAL_CONTROL_BLOCK * TCB, int key) +{ + bool res = FALSE; + + AssertTCB(); + if (TCB->csp) + res = TINFO_HAS_KEY(TCB->csp, key) == 0 ? FALSE : TRUE; + + return res; +} 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-09-12 08:51:17.000000000 -0700 @@ -32,7 +32,7 @@ #include -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-09-12 08:51:30.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-09-12 08:51:37.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 1992,1995 * * and: Eric S. Raymond * + * and: Juergen Pfeifer * ****************************************************************************/ /* @@ -37,9 +38,12 @@ */ #include -#include /* 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-09-12 08:51:17.000000000 -0700 @@ -33,9 +33,8 @@ ****************************************************************************/ #include -#include /* 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-09-12 08:51:19.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 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer * ****************************************************************************/ /* @@ -46,7 +47,7 @@ #include -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-09-12 08:51:30.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 -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-09-12 08:51:30.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 #include -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-09-12 08:51:17.000000000 -0700 @@ -38,7 +38,7 @@ #include -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-09-12 08:51:25.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 -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-09-12 08:51:17.000000000 -0700 @@ -34,7 +34,7 @@ #include -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/trace/visbuf.c ncurses-5.7/ncurses/trace/visbuf.c --- ncurses-5.7.orig/ncurses/trace/visbuf.c 2008-08-04 16:07:39.000000000 -0700 +++ ncurses-5.7/ncurses/trace/visbuf.c 2009-09-12 08:51:52.000000000 -0700 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2001-2007,2008 Free Software Foundation, Inc. * + * Copyright (c) 2001-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,9 @@ #include #include -MODULE_ID("$Id: visbuf.c,v 1.32 2008/08/04 23:07:39 tom Exp $") +MODULE_ID("$Id: visbuf.c,v 1.33 2009/07/11 14:44:20 tom Exp $") + +#define NUM_VISBUFS 4 #define NormalLen(len) (size_t) (((size_t)(len) + 1) * 4) #define WideLen(len) (size_t) (((size_t)(len) + 1) * 4 * MB_CUR_MAX) @@ -108,9 +110,16 @@ vbuf = tp = _nc_trace_buf(bufnum, NormalLen(len)); #else { - static char *mybuf[4]; - mybuf[bufnum] = typeRealloc(char, NormalLen(len), mybuf[bufnum]); - vbuf = tp = mybuf[bufnum]; + static char *mybuf[NUM_VISBUFS]; + if (bufnum < 0) { + for (c = 0; c < NUM_VISBUFS; ++c) { + FreeAndNull(mybuf[c]); + } + tp = 0; + } else { + mybuf[bufnum] = typeRealloc(char, NormalLen(len), mybuf[bufnum]); + vbuf = tp = mybuf[bufnum]; + } } #endif if (tp != 0) { @@ -177,7 +186,7 @@ vbuf = tp = _nc_trace_buf(bufnum, WideLen(len)); #else { - static char *mybuf[2]; + static char *mybuf[NUM_VISBUFS]; mybuf[bufnum] = typeRealloc(char, WideLen(len), mybuf[bufnum]); vbuf = tp = mybuf[bufnum]; } @@ -293,7 +302,8 @@ PUTC_ch = buf[j].chars[PUTC_i]; if (PUTC_ch == L'\0') break; - PUTC_n = (int) wcrtomb(PUTC_buf, buf[j].chars[PUTC_i], &PUT_st); + PUTC_n = (int) wcrtomb(PUTC_buf, + buf[j].chars[PUTC_i], &PUT_st); if (PUTC_n <= 0) break; for (k = 0; k < PUTC_n; k++) { 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-09-12 08:51:30.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 -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-09-12 08:51:37.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 -#include /* 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-09-12 08:52:09.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 1992,1995 * * and: Eric S. Raymond * * 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,21 @@ */ #include -#include #include -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.121 2009/08/30 16:52:00 tom Exp $") + +#define WANT_CHAR(sp, y, x) (sp)->_newscr->_line[y].text[x] /* desired state */ -#define WANT_CHAR(y, x) SP->_newscr->_line[y].text[x] /* desired state */ -#define BAUDRATE cur_term->_baudrate /* bits per second */ +#if NCURSES_SP_FUNCS +#define BAUDRATE(sp) sp->_term->_baudrate /* bits per second */ +#else +#define BAUDRATE(sp) cur_term->_baudrate /* bits per second */ +#endif #if defined(MAIN) || defined(NCURSES_TEST) #include @@ -169,7 +178,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 +188,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 +239,59 @@ } #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 */ { + if (SP_PARM && !IsTermInfo(SP_PARM)) + return; + /* 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 +303,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 +368,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 +394,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 +447,42 @@ } /* - * 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. */ - _nc_mvcur_resume(); + NCURSES_SP_NAME(_nc_mvcur_resume) (NCURSES_SP_ARG); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(void) -_nc_mvcur_wrap(void) +_nc_mvcur_init(void) +{ + NCURSES_SP_NAME(_nc_mvcur_init) (CURRENT_SCREEN); +} +#endif + +NCURSES_EXPORT(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); + TINFO_MVCUR(NCURSES_SP_ARGx -1, -1, screen_lines(SP_PARM) - 1, 0); + + if (SP_PARM && !IsTermInfo(SP_PARM)) + return; /* 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,9 +492,17 @@ * 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 + /**************************************************************************** * * Optimized cursor movement @@ -486,8 +542,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 +561,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 +611,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 +636,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 +660,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 +677,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 +692,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 +711,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 +728,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 +738,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 +769,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 +787,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 +804,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 +818,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 +829,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 +883,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,25 +933,26 @@ 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) +TINFO_MVCUR(NCURSES_SP_DCLx int yold, int xold, int ynew, int xnew) /* optimized cursor move from (yold, xold) to (ynew, xnew) */ { NCURSES_CH_T oldattr; int code; - TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%d,%d,%d,%d)"), - yold, xold, ynew, xnew)); + TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("_nc_tinfo_mvcur(%p,%d,%d,%d,%d)"), + SP_PARM, yold, xold, ynew, xnew)); - if (SP == 0) { + if (SP_PARM == 0) { code = ERR; } else if (yold == ynew && xold == xnew) { code = OK; @@ -874,9 +963,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 +973,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 +1020,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 && !defined(USE_TERM_DRIVER) +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 +1311,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-09-12 08:51:37.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-09-12 08:51:30.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 # endif #endif - +#ifdef __MINGW32__ +# include +#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-09-12 08:52:04.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 1992,1995 * * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996 on * + * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -63,11 +64,16 @@ */ #include -#include -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.58 2009/08/15 22:12:01 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,35 +89,42 @@ 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 newmode &= A_ATTRIBUTES; - T((T_CALLED("vidputs(%s)"), _traceattr(newmode))); + + T((T_CALLED("vidputs(%p,%s)"), SP_PARM, _traceattr(newmode))); + + if (!IsTermInfo(SP_PARM)) + returnCode(ERR); /* 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 +148,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 +161,7 @@ } } #else - newmode &= ~(SP->_xmc_suppress); + newmode &= ~(SP_PARM->_xmc_suppress); #endif TR(TRACE_ATTRS, ("suppressed attribute is %s", _traceattr(newmode))); } @@ -208,10 +221,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 +235,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 +256,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,28 +297,53 @@ if (reverse) newmode |= A_REVERSE; - if (SP) - SetAttr(SCREEN_ATTRS(SP), newmode); + if (SP_PARM) + SetAttr(SCREEN_ATTRS(SP_PARM), newmode); else PreviousAttr = newmode; returnCode(OK); } +#if NCURSES_SP_FUNCS NCURSES_EXPORT(int) -vidattr(chtype newmode) +vidputs(chtype newmode, NCURSES_OUTC outc) { - T((T_CALLED("vidattr(%s)"), _traceattr(newmode))); + SetSafeOutcWrapper(outc); + return NCURSES_SP_NAME(vidputs) (CURRENT_SCREEN, + newmode, + _nc_outc_wrapper); +} +#endif - returnCode(vidputs(newmode, _nc_outch)); +NCURSES_EXPORT(int) +NCURSES_SP_NAME(vidattr) (NCURSES_SP_DCLx chtype newmode) +{ + T((T_CALLED("vidattr(%p,%s)"), SP_PARM, _traceattr(newmode))); + returnCode(NCURSES_SP_NAME(vidputs) (NCURSES_SP_ARGx + newmode, + NCURSES_SP_NAME(_nc_outch))); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +vidattr(chtype newmode) +{ + return NCURSES_SP_NAME(vidattr) (CURRENT_SCREEN, newmode); +} +#endif + NCURSES_EXPORT(chtype) -termattrs(void) +NCURSES_SP_NAME(termattrs) (NCURSES_SP_DCL0) { chtype attrs = A_NORMAL; - T((T_CALLED("termattrs()"))); + T((T_CALLED("termattrs(%p)"), SP_PARM)); +#ifdef USE_TERM_DRIVER + if (HasTerminal(SP_PARM)) + attrs = CallDriver(SP_PARM, conattr); +#else + if (enter_alt_charset_mode) attrs |= A_ALTCHARSET; @@ -331,8 +371,17 @@ if (enter_underline_mode) attrs |= A_UNDERLINE; - if (SP->_coloron) + if (SP_PARM->_coloron) attrs |= A_COLOR; - returnChar(attrs); +#endif + 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/MKexpanded.sh ncurses-5.7/ncurses/tty/MKexpanded.sh --- ncurses-5.7.orig/ncurses/tty/MKexpanded.sh 2005-01-01 17:06:40.000000000 -0800 +++ ncurses-5.7/ncurses/tty/MKexpanded.sh 2009-09-12 08:51:50.000000000 -0700 @@ -1,6 +1,6 @@ #! /bin/sh ############################################################################## -# 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 "Software"), # @@ -27,9 +27,9 @@ # authorization. # ############################################################################## # -# Author: Thomas E. Dickey 1997 +# Author: Thomas E. Dickey, 1997-on # -# $Id: MKexpanded.sh,v 1.11 2005/01/02 01:06:40 tom Exp $ +# $Id: MKexpanded.sh,v 1.16 2009/07/04 16:45:03 tom Exp $ # # Script to generate 'expanded.c', a dummy source that contains functions # corresponding to complex macros used in this library. By making functions, @@ -52,8 +52,14 @@ cat < #include + +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + #if NCURSES_EXPANDED EOF @@ -68,29 +74,59 @@ #undef FALSE /* this is a marker */ IGNORE -NCURSES_EXPORT(void) _nc_toggle_attr_on (attr_t *S, attr_t at) +NCURSES_EXPORT(void) +_nc_toggle_attr_on (attr_t *S, attr_t at) { toggle_attr_on(*S,at); } -NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *S, attr_t at) + +NCURSES_EXPORT(void) +_nc_toggle_attr_off (attr_t *S, attr_t at) { toggle_attr_off(*S,at); } -NCURSES_EXPORT(int) _nc_DelCharCost (int count) + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_DelCharCost) (NCURSES_SP_DCLx int count) +{ + return DelCharCost(SP_PARM, count); +} + +NCURSES_EXPORT(int) +NCURSES_SP_NAME(_nc_InsCharCost) (NCURSES_SP_DCLx int count) { - return DelCharCost(count); + return InsCharCost(SP_PARM, count); } -NCURSES_EXPORT(int) _nc_InsCharCost (int count) + +NCURSES_EXPORT(void) +NCURSES_SP_NAME(_nc_UpdateAttrs) (NCURSES_SP_DCLx CARG_CH_T c) { - return InsCharCost(count); + UpdateAttrs(SP_PARM, CHDEREF(c)); } -NCURSES_EXPORT(void) _nc_UpdateAttrs (NCURSES_CH_T c) + +@if_NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_DelCharCost (int count) +{ + return NCURSES_SP_NAME(_nc_DelCharCost) (CURRENT_SCREEN, count); +} + +NCURSES_EXPORT(int) +_nc_InsCharCost (int count) +{ + return NCURSES_SP_NAME(_nc_InsCharCost)(CURRENT_SCREEN, count); +} + +NCURSES_EXPORT(void) +_nc_UpdateAttrs (CARG_CH_T c) { - UpdateAttrs(c); + NCURSES_SP_NAME(_nc_UpdateAttrs)(CURRENT_SCREEN,c); } +@endif EOF -$preprocessor $TMP 2>/dev/null | sed -e '1,/^IGNORE$/d' +$preprocessor $TMP 2>/dev/null | \ + sed -e '1,/^IGNORE$/d' -e 's/^@/#/' -e 's/^#if_/#if /' cat < 1992,1995 * * and: Eric S. Raymond * * 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 +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + #if defined __HAIKU__ && defined __BEOS__ #undef __BEOS__ #endif @@ -76,9 +81,8 @@ #endif #include -#include -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.258.1.2 2009/08/16 14:20:30 tom Exp tom $") /* * 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,22 @@ ****************************************************************************/ 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)); + TR(TRACE_MOVE, ("GoTo(%p, %d, %d) from (%d, %d)", + SP_PARM, 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"); + TINFO_MVCUR(NCURSES_SP_ARGx + 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 +215,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 +245,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 +262,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 +272,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 +286,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 +303,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 +334,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 +368,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 +421,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 +437,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 +485,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 +523,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 +535,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 +558,11 @@ * 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 +570,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 +606,7 @@ } for (i = 0; i < num; i++) - PutChar(CHREF(ntext[i])); + PutChar(NCURSES_SP_ARGx CHREF(ntext[i])); return 0; } @@ -576,39 +619,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 +662,7 @@ if_USE_SCROLL_HINTS(win->_line[row].oldindex = row) NCURSES_EXPORT(int) -doupdate(void) +TINFO_DOUPDATE(NCURSES_SP_DCL0) { int i; int nonempty; @@ -626,30 +670,49 @@ struct tms before, after; #endif /* USE_TRACE_TIMES */ - T((T_CALLED("doupdate()"))); + T((T_CALLED("_nc_tinfo:doupdate(%p)"), SP_PARM)); + +#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 (curscr == 0 - || newscr == 0) + 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 +721,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 +758,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 +780,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 +790,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 +808,11 @@ 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 +828,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 +838,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 +854,7 @@ (ISBLANK(lastline[n + k]) ? "" : ":nonblank"), - (SAFE(AttrOf(lastline[n + k])) + (SAFE(SP_PARM, AttrOf(lastline[n + k])) ? "" : ":unsafe"))); break; @@ -806,12 +871,12 @@ _traceattr(turnon), i, j)); /* turn off new attributes over span */ - for (p = i; p < screen_lines; p++) { - for (; q < screen_columns; q++) { + for (p = i; p < screen_lines(SP_PARM); p++) { + for (; q < screen_columns(SP_PARM); q++) { attr_t testattr = AttrOf(newscr->_line[p].text[q]); - if ((testattr & SP->_xmc_triggers) == rattr) + 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 +902,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 +910,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) { - _nc_scroll_optimize(); + if (SP_PARM->_scrolling) { + NCURSES_SP_NAME(_nc_scroll_optimize) (NCURSES_SP_ARG); } - nonempty = ClrBottom(nonempty); + nonempty = ClrBottom(NCURSES_SP_ARGx nonempty); TR(TRACE_UPDATE, ("Transforming lines, nonempty %d", nonempty)); for (i = 0; i < nonempty; i++) { @@ -869,7 +934,7 @@ * Here is our line-breakout optimization. */ if (changedlines == CHECK_INTERVAL) { - if (check_pending()) + if (check_pending(NCURSES_SP_ARG)) goto cleanup; changedlines = 0; } @@ -880,35 +945,35 @@ * 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 +986,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 +1005,14 @@ returnCode(OK); } +#if NCURSES_SP_FUNCS && !defined(USE_TERM_DRIVER) +NCURSES_EXPORT(int) +doupdate(void) +{ + return TINFO_DOUPDATE(CURRENT_SCREEN); +} +#endif + /* * ClrBlank(win) * @@ -951,14 +1024,14 @@ * 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(sp,win) (((win) == CurScreen(sp) ? StdScreen(sp) : (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) - AddAttr(blank, (AttrOf(BCE_BKGD(win)) & BCE_ATTRS)); + AddAttr(blank, (AttrOf(BCE_BKGD(SP_PARM, win)) & BCE_ATTRS)); return blank; } @@ -970,23 +1043,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); - - TR(TRACE_UPDATE, ("updating screen from scratch")); + ClearScreen(NCURSES_SP_ARGx blank); - nonempty = ClrBottom(nonempty); + TR(TRACE_UPDATE, ("updating screen from scratch")); - 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 +1071,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 (SP_PARM != 0 && 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 +1093,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 +1112,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 +1146,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 +1173,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 +1186,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)->_line[r].text[c] +#define xmc_turn_off(sp,a,b) xmc_turn_on(sp,b,a) #endif /* USE_XMC_SUPPORT */ /* @@ -1135,19 +1216,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 +1236,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 +1259,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 +1271,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 +1292,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 +1302,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 +1336,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 +1380,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 +1417,44 @@ } /* 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); + || !(SP_PARM->_nc_sp_idcok + && NCURSES_SP_NAME(has_ic) (NCURSES_SP_ARG)))) { + 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 +1475,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 +1492,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 +1521,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 +1545,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 +1553,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 +1568,46 @@ 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); - - UpdateAttrs(blank); + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + GoTo(NCURSES_SP_ARGx 0, 0); + 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; - - UpdateAttrs(blank); - for (i = 0; i < screen_lines; i++) { - GoTo(i, 0); + SP_PARM->_cursrow = SP_PARM->_curscol = -1; + 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 +1621,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 +1677,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 +1734,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 +1803,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 +1872,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,15 +1927,24 @@ * 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; int i; bool cursor_saved = FALSE; int res; - TR(TRACE_MOVE, ("mvcur_scrolln(%d, %d, %d, %d)", n, top, bot, maxy)); + TR(TRACE_MOVE, ("_nc_scrolln(%p, %d, %d, %d, %d)", SP_PARM, n, top, bot, maxy)); + + if (!IsValidScreen(SP_PARM)) + return (ERR); + + blank = ClrBlank(NCURSES_SP_ARGx StdScreen(SP_PARM)); #if USE_XMC_SUPPORT /* @@ -1787,34 +1960,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); + if (res == ERR && SP_PARM->_nc_sp_idlok) + res = scroll_idl(NCURSES_SP_ARGx n, top, bot - n + 1, blank); /* * Clear the newly shifted-in text. @@ -1823,44 +1998,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); + if (res == ERR && SP_PARM->_nc_sp_idlok) + res = scroll_idl(NCURSES_SP_ARGx -n, bot + n + 1, top, blank); /* * Clear the newly shifted-in text. @@ -1869,8 +2049,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 +2058,159 @@ 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) - _nc_reset_colors(); + if (SP_PARM->_coloron || SP_PARM->_color_defs) + NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG); /* 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); + TINFO_MVCUR(NCURSES_SP_ARGx + 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) { - _nc_reset_colors(); + if (SP_PARM->_color_defs) { + NCURSES_SP_NAME(_nc_reset_colors) (NCURSES_SP_ARG); } } +#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_add_wch.c ncurses-5.7/ncurses/widechar/lib_add_wch.c --- ncurses-5.7.orig/ncurses/widechar/lib_add_wch.c 2006-12-02 13:19:17.000000000 -0800 +++ ncurses-5.7/ncurses/widechar/lib_add_wch.c 2009-09-12 08:51:56.000000000 -0700 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2004,2006 Free Software Foundation, Inc. * + * Copyright (c) 2004-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,39 +35,392 @@ #include -MODULE_ID("$Id: lib_add_wch.c,v 1.6 2006/12/02 21:19:17 tom Exp $") +#if HAVE_WCTYPE_H +#include +#endif -NCURSES_EXPORT(int) -wadd_wch(WINDOW *win, const cchar_t *wch) +MODULE_ID("$Id: lib_add_wch.c,v 1.8 2009/07/25 14:38:01 tom Exp $") + +/* clone/adapt lib_addch.c */ +static const cchar_t blankchar = NewChar(BLANK_TEXT); + +/* + * Ugly microtweaking alert. Everything from here to end of module is + * likely to be speed-critical -- profiling data sure says it is! + * Most of the important screen-painting functions are shells around + * wadd_wch(). So we make every effort to reduce function-call overhead + * by inlining stuff, even at the cost of making wrapped copies for + * export. Also we supply some internal versions that don't call the + * window sync hook, for use by string-put functions. + */ + +/* Return bit mask for clearing color pair number if given ch has color */ +#define COLOR_MASK(ch) (~(attr_t)((ch) & A_COLOR ? A_COLOR : 0)) + +static NCURSES_INLINE cchar_t +render_char(WINDOW *win, cchar_t ch) +/* compute a rendition of the given char correct for the current context */ { - PUTC_DATA; - int n; - int code = ERR; + attr_t a = WINDOW_ATTRS(win); + int pair = GetPair(ch); - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wadd_wch(%p, %s)"), win, - _tracech_t(wch))); + if (ISBLANK(ch) + && AttrOf(ch) == A_NORMAL + && pair == 0) { + /* color/pair in attrs has precedence over bkgrnd */ + ch = win->_nc_bkgd; + SetAttr(ch, a | AttrOf(win->_nc_bkgd)); + if ((pair = GET_WINDOW_PAIR(win)) == 0) + pair = GetPair(win->_nc_bkgd); + SetPair(ch, pair); + } else { + /* color in attrs has precedence over bkgrnd */ + a |= AttrOf(win->_nc_bkgd) & COLOR_MASK(a); + /* color in ch has precedence */ + if (pair == 0) { + if ((pair = GET_WINDOW_PAIR(win)) == 0) + pair = GetPair(win->_nc_bkgd); + } +#if 0 + if (pair > 255) { + cchar_t fixme = ch; + SetPair(fixme, pair); + } +#endif + AddAttr(ch, (a & COLOR_MASK(AttrOf(ch)))); + SetPair(ch, pair); + } + + TR(TRACE_VIRTPUT, + ("render_char bkg %s (%d), attrs %s (%d) -> ch %s (%d)", + _tracech_t2(1, CHREF(win->_nc_bkgd)), + GetPair(win->_nc_bkgd), + _traceattr(WINDOW_ATTRS(win)), + GET_WINDOW_PAIR(win), + _tracech_t2(3, CHREF(ch)), + GetPair(ch))); - if (win != 0) { - PUTC_INIT; - for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) { - attr_t attrs = (wch->attr & A_ATTRIBUTES); - - if ((PUTC_ch = wch->chars[PUTC_i]) == L'\0') - break; - if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) { - code = ERR; - if (is8bits(PUTC_ch)) - code = waddch(win, UChar(PUTC_ch) | attrs); - break; + return (ch); +} + +/* check if position is legal; if not, return error */ +#ifndef NDEBUG /* treat this like an assertion */ +#define CHECK_POSITION(win, x, y) \ + if (y > win->_maxy \ + || x > win->_maxx \ + || y < 0 \ + || x < 0) { \ + TR(TRACE_VIRTPUT, ("Alert! Win=%p _curx = %d, _cury = %d " \ + "(_maxx = %d, _maxy = %d)", win, x, y, \ + win->_maxx, win->_maxy)); \ + return(ERR); \ + } +#else +#define CHECK_POSITION(win, x, y) /* nothing */ +#endif + +static bool +newline_forces_scroll(WINDOW *win, NCURSES_SIZE_T * ypos) +{ + bool result = FALSE; + + if (*ypos >= win->_regtop && *ypos == win->_regbottom) { + *ypos = win->_regbottom; + result = TRUE; + } else { + *ypos += 1; + } + return result; +} + +/* + * The _WRAPPED flag is useful only for telling an application that we've just + * wrapped the cursor. We don't do anything with this flag except set it when + * wrapping, and clear it whenever we move the cursor. If we try to wrap at + * the lower-right corner of a window, we cannot move the cursor (since that + * wouldn't be legal). So we return an error (which is what SVr4 does). + * Unlike SVr4, we can successfully add a character to the lower-right corner + * (Solaris 2.6 does this also, however). + */ +static int +wrap_to_next_line(WINDOW *win) +{ + win->_flags |= _WRAPPED; + if (newline_forces_scroll(win, &(win->_cury))) { + win->_curx = win->_maxx; + if (!win->_scroll) + return (ERR); + scroll(win); + } + win->_curx = 0; + return (OK); +} + +static int wadd_wch_literal(WINDOW *, cchar_t); +/* + * Fill the given number of cells with blanks using the current background + * rendition. This saves/restores the current x-position. + */ +static void +fill_cells(WINDOW *win, int count) +{ + cchar_t blank = blankchar; + int save_x = win->_curx; + int save_y = win->_cury; + + while (count-- > 0) { + if (wadd_wch_literal(win, blank) == ERR) + break; + } + win->_curx = save_x; + win->_cury = save_y; +} + +static int +wadd_wch_literal(WINDOW *win, cchar_t ch) +{ + int x; + int y; + struct ldat *line; + + x = win->_curx; + y = win->_cury; + + CHECK_POSITION(win, x, y); + + ch = render_char(win, ch); + + line = win->_line + y; + + CHANGED_CELL(line, x); + + /* + * Non-spacing characters are added to the current cell. + * + * Spacing characters that are wider than one column require some display + * adjustments. + */ + { + int len = wcwidth(CharOf(ch)); + int i; + int j; + wchar_t *chars; + + if (len == 0) { /* non-spacing */ + if ((x > 0 && y >= 0) + || (win->_maxx >= 0 && win->_cury >= 1)) { + if (x > 0 && y >= 0) + chars = (win->_line[y].text[x - 1].chars); + else + chars = (win->_line[y - 1].text[win->_maxx].chars); + for (i = 0; i < CCHARW_MAX; ++i) { + if (chars[i] == 0) { + TR(TRACE_VIRTPUT, + ("added non-spacing %d: %x", + x, (int) CharOf(ch))); + chars[i] = CharOf(ch); + break; + } + } + } + goto testwrapping; + } else if (len > 1) { /* multi-column characters */ + /* + * Check if the character will fit on the current line. If it does + * not fit, fill in the remainder of the line with blanks. and + * move to the next line. + */ + if (len > win->_maxx + 1) { + TR(TRACE_VIRTPUT, ("character will not fit")); + return ERR; + } else if (x + len > win->_maxx + 1) { + int count = win->_maxx + 1 - x; + TR(TRACE_VIRTPUT, ("fill %d remaining cells", count)); + fill_cells(win, count); + if (wrap_to_next_line(win) == ERR) + return ERR; + x = win->_curx; + y = win->_cury; + line = win->_line + y; } - for (n = 0; n < PUTC_n; n++) { - if ((code = waddch(win, UChar(PUTC_buf[n]) | attrs)) == ERR) { + /* + * Check for cells which are orphaned by adding this character, set + * those to blanks. + * + * FIXME: this actually could fill j-i cells, more complicated to + * setup though. + */ + for (i = 0; i < len; ++i) { + if (isWidecBase(win->_line[y].text[x + i])) { break; + } else if (isWidecExt(win->_line[y].text[x + i])) { + for (j = i; x + j <= win->_maxx; ++j) { + if (!isWidecExt(win->_line[y].text[x + j])) { + TR(TRACE_VIRTPUT, ("fill %d orphan cells", j)); + fill_cells(win, j); + break; + } + } + break; + } + } + /* + * Finally, add the cells for this character. + */ + for (i = 0; i < len; ++i) { + cchar_t value = ch; + SetWidecExt(value, i); + TR(TRACE_VIRTPUT, ("multicolumn %d:%d (%d,%d)", + i + 1, len, + win->_begy + y, win->_begx + x)); + line->text[x] = value; + CHANGED_CELL(line, x); + ++x; + } + goto testwrapping; + } + } + + /* + * Single-column characters. + */ + line->text[x++] = ch; + /* + * This label is used only for wide-characters. + */ + testwrapping: + + TR(TRACE_VIRTPUT, ("cell (%ld, %ld..%d) = %s", + (long) win->_cury, (long) win->_curx, x - 1, + _tracech_t(CHREF(ch)))); + + if (x > win->_maxx) { + return wrap_to_next_line(win); + } + win->_curx = x; + return OK; +} + +static NCURSES_INLINE int +wadd_wch_nosync(WINDOW *win, cchar_t ch) +/* the workhorse function -- add a character to the given window */ +{ + NCURSES_SIZE_T x, y; + wchar_t *s; + int tabsize = 8; +#if USE_REENTRANT + SCREEN *sp = _nc_screen_of(win); +#endif + + /* + * If we are using the alternate character set, forget about locale. + * Otherwise, if the locale * claims the code is printable, treat it that + * way. + */ + if ((AttrOf(ch) & A_ALTCHARSET) + || iswprint(CharOf(ch))) + return wadd_wch_literal(win, ch); + + /* + * Handle carriage control and other codes that are not printable, or are + * known to expand to more than one character according to unctrl(). + */ + x = win->_curx; + y = win->_cury; + + switch (CharOf(ch)) { + case '\t': +#if USE_REENTRANT + tabsize = *ptrTabsize(sp); +#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. + */ + if ((!win->_scroll && (y == win->_regbottom)) + || (x <= win->_maxx)) { + cchar_t blank = blankchar; + AddAttr(blank, AttrOf(ch)); + while (win->_curx < x) { + if (wadd_wch_literal(win, blank) == ERR) + return (ERR); + } + break; + } else { + wclrtoeol(win); + win->_flags |= _WRAPPED; + if (newline_forces_scroll(win, &y)) { + x = win->_maxx; + if (win->_scroll) { + scroll(win); + x = 0; } + } else { + x = 0; + } + } + break; + case '\n': + wclrtoeol(win); + if (newline_forces_scroll(win, &y)) { + if (win->_scroll) + scroll(win); + else + return (ERR); + } + /* FALLTHRU */ + case '\r': + x = 0; + win->_flags &= ~_WRAPPED; + break; + case '\b': + if (x == 0) + return (OK); + x--; + win->_flags &= ~_WRAPPED; + break; + default: + if ((s = wunctrl(&ch)) != 0) { + while (*s) { + cchar_t sch; + SetChar(sch, *s++, AttrOf(ch)); + if_EXT_COLORS(SetPair(sch, GetPair(ch))); + if (wadd_wch_literal(win, sch) == ERR) + return ERR; } - if (code == ERR) - break; + return OK; } + return ERR; + } + + win->_curx = x; + win->_cury = y; + + return OK; +} + +/* + * The versions below call _nc_synchook(). We wanted to avoid this in the + * version exported for string puts; they'll call _nc_synchook once at end + * of run. + */ + +/* These are actual entry points */ + +NCURSES_EXPORT(int) +wadd_wch(WINDOW *win, const cchar_t *wch) +{ + int code = ERR; + + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wadd_wch(%p, %s)"), win, + _tracecchar_t(wch))); + + if (win && (wadd_wch_nosync(win, *wch) != ERR)) { + _nc_synchook(win); + code = OK; } TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); @@ -77,37 +430,18 @@ NCURSES_EXPORT(int) wecho_wchar(WINDOW *win, const cchar_t *wch) { - PUTC_DATA; - int n; int code = ERR; - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wecho_wchar(%p, %s)"), win, - _tracech_t(wch))); + TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wechochar(%p, %s)"), win, + _tracecchar_t(wch))); - if (win != 0) { - PUTC_INIT; - for (PUTC_i = 0; PUTC_i < CCHARW_MAX; ++PUTC_i) { - attr_t attrs = (wch->attr & A_ATTRIBUTES); - - if ((PUTC_ch = wch->chars[PUTC_i]) == L'\0') - break; - if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) { - code = ERR; - if (is8bits(PUTC_ch)) - code = waddch(win, UChar(PUTC_ch) | attrs); - break; - } - for (n = 0; n < PUTC_n; n++) { - if ((code = waddch(win, UChar(PUTC_buf[n]) | attrs)) == ERR) { - break; - } - } - if (code == ERR) - break; - } - wrefresh(win); + if (win && (wadd_wch_nosync(win, *wch) != ERR)) { + bool save_immed = win->_immed; + win->_immed = TRUE; + _nc_synchook(win); + win->_immed = save_immed; + code = OK; } - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); return (code); } 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-09-12 08:51:54.000000000 -0700 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2001-2005,2007 Free Software Foundation, Inc. * + * Copyright (c) 2001-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 -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.14 2009/07/18 15:20:42 tom 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)"), @@ -112,7 +112,11 @@ : CCHARW_MAX; if (wch == NULL) { - code = len; + /* + * If the value is a null, set the length to 1. + * If the value is not a null, return the length plus 1 for null. + */ + code = (len < CCHARW_MAX) ? (len + 1) : CCHARW_MAX; } else if (attrs == 0 || color_pair == 0) { code = ERR; } else if (len >= 0) { 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-09-12 08:51:30.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 #include -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-09-12 08:51:17.000000000 -0700 @@ -38,9 +38,8 @@ */ #include -#include -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-09-12 08:51:42.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 -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-09-12 08:51:30.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 -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-09-12 08:51:37.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 #include -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-09-12 08:51:17.000000000 -0700 @@ -31,9 +31,8 @@ ****************************************************************************/ #include -#include -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-09-12 08:51:30.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 -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/ncurses/win32con/gettimeofday.c ncurses-5.7/ncurses/win32con/gettimeofday.c --- ncurses-5.7.orig/ncurses/win32con/gettimeofday.c 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/ncurses/win32con/gettimeofday.c 2009-09-12 08:51:49.000000000 -0700 @@ -0,0 +1,51 @@ +/**************************************************************************** + * 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. * + ****************************************************************************/ + +#define WINVER 0x0501 + +#include + +#include + +MODULE_ID("$Id: gettimeofday.c,v 1.1 2008/12/07 02:07:39 juergen Exp $") + +#define JAN1970 116444736000000000LL /* the value for 01/01/1970 00:00 */ + +int +gettimeofday(struct timeval *tv, void *tz) +{ + union { + FILETIME ft; + long long since1601; /* time since 1 Jan 1601 in 100ns units */ + } data; + + GetSystemTimeAsFileTime(&data.ft); + tv->tv_usec = (long) ((data.since1601 / 10LL) % 1000000LL); + tv->tv_sec = (long) ((data.since1601 - JAN1970) / 10000000LL); + return (0); +} diff -Naur ncurses-5.7.orig/ncurses/win32con/win_driver.c ncurses-5.7/ncurses/win32con/win_driver.c --- ncurses-5.7.orig/ncurses/win32con/win_driver.c 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/ncurses/win32con/win_driver.c 2009-09-12 08:51:49.000000000 -0700 @@ -0,0 +1,1085 @@ +/**************************************************************************** + * 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"), 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: Juergen Pfeifer * + * * + ****************************************************************************/ + +#include + +MODULE_ID("$Id: win_driver.c,v 1.1 2009/02/21 15:11:29 juergen Exp $") + +static bool drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *); +static void drv_init(TERMINAL_CONTROL_BLOCK *); +static void drv_release(TERMINAL_CONTROL_BLOCK *); +static int drv_size(TERMINAL_CONTROL_BLOCK *, int *, int *); +static int drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, + bool setFlag, + TTY * buf); +static chtype drv_conattr(TERMINAL_CONTROL_BLOCK * TCB); + +static int drv_mvcur(TERMINAL_CONTROL_BLOCK * TCB, + int yold, int xold, int ynew, int xnew); +static int drv_mode(TERMINAL_CONTROL_BLOCK * TCB, + bool progFlag, bool defFlag); +static bool drv_rescol(TERMINAL_CONTROL_BLOCK * TCB); +static bool drv_rescolors(TERMINAL_CONTROL_BLOCK * TCB); +static void drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB, + bool fore, + int color, + int (*outc) (SCREEN *, int)); +static int drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, bool); +static void drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, + short pair, + short f, + short b); +static void drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB, + short color, + short r, + short g, + short b); +static void drv_do_color(TERMINAL_CONTROL_BLOCK * TCB, + short old_pair, + short pair, + bool reverse, + int (*outc) (SCREEN *, int)); +static void drv_initmouse(TERMINAL_CONTROL_BLOCK * TCB); +static void drv_setfilter(TERMINAL_CONTROL_BLOCK * TCB); +static void drv_hwlabel(TERMINAL_CONTROL_BLOCK * TCB, + int labnum, + char *text); +static void drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, + bool OnFlag); +static int drv_doupdate(TERMINAL_CONTROL_BLOCK * TCB); + +static int drv_defaultcolors(TERMINAL_CONTROL_BLOCK * TCB, + int fg, + int bg); +static int drv_print(TERMINAL_CONTROL_BLOCK * TCB, + char *data, + int len); +/*static int _getsize(TERMINAL_CONTROL_BLOCK*,int *, int *);*/ +static int drv_setsize(TERMINAL_CONTROL_BLOCK * TCB, int l, int c); +static void drv_initacs(TERMINAL_CONTROL_BLOCK * TCB, chtype *, chtype *); +static void drv_wrap(SCREEN *); +static void drv_screen_init(SCREEN *); +static int drv_twait(TERMINAL_CONTROL_BLOCK *, + int, + int, + int *EVENTLIST_2nd(_nc_eventlist *)); +static int drv_read(TERMINAL_CONTROL_BLOCK * TCB, int *buf); +static int drv_nap(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int ms); +static int drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool); +static int drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int, bool); +static bool drv_kyExist(TERMINAL_CONTROL_BLOCK * TCB, int); + +NCURSES_EXPORT_VAR (TERM_DRIVER) _nc_WIN_DRIVER = { + FALSE, + drv_CanHandle, /* CanHandle */ + drv_init, /* init */ + drv_release, /* release */ + drv_size, /* size */ + drv_sgmode, /* sgmode */ + drv_conattr, /* conattr */ + drv_mvcur, /* hwcur */ + drv_mode, /* mode */ + drv_rescol, /* rescol */ + drv_rescolors, /* rescolors */ + drv_setcolor, /* color */ + drv_dobeepflash, /* DoBeepFlash */ + drv_initpair, /* initpair */ + drv_initcolor, /* initcolor */ + drv_do_color, /* docolor */ + drv_initmouse, /* initmouse */ + drv_setfilter, /* setfilter */ + drv_hwlabel, /* hwlabel */ + drv_hwlabelOnOff, /* hwlabelOnOff */ + drv_doupdate, /* update */ + drv_defaultcolors, /* defaultcolors */ + drv_print, /* print */ + drv_size, /* getsize */ + drv_setsize, /* setsize */ + drv_initacs, /* initacs */ + drv_screen_init, /* scinit */ + drv_wrap, /* scexit */ + drv_twait, /* twait */ + drv_read, /* read */ + drv_nap, /* nap */ + drv_kpad, /* kpad */ + drv_keyok, /* kyOk */ + drv_kyExist /* kyExist */ +}; + +#define WINMAGIC NCDRV_MAGIC(NCDRV_WINCONSOLE) + +#define AssertTCB() assert(TCB!=0 && TCB->magic==WINMAGIC) +#define SetSP() assert(TCB->csp!=0); sp = TCB->csp + +#define GenMap(vKey,key) MAKELONG(key, vKey) + +static const LONG keylist[] = +{ + GenMap(VK_PRIOR, KEY_PPAGE), + GenMap(VK_NEXT, KEY_NPAGE), + GenMap(VK_END, KEY_END), + GenMap(VK_HOME, KEY_HOME), + GenMap(VK_LEFT, KEY_LEFT), + GenMap(VK_UP, KEY_UP), + GenMap(VK_RIGHT, KEY_RIGHT), + GenMap(VK_DOWN, KEY_DOWN), + GenMap(VK_DELETE, KEY_DC), + GenMap(VK_INSERT, KEY_IC) +}; +#define N_INI ((int)(sizeof(keylist)/sizeof(keylist[0]))) +#define FKEYS 24 +#define MAPSIZE (FKEYS + N_INI) +#define NUMPAIRS 64 + +typedef struct props { + CONSOLE_SCREEN_BUFFER_INFO SBI; + bool progMode; + DWORD map[MAPSIZE]; + DWORD rmap[MAPSIZE]; + WORD pairs[NUMPAIRS]; +} Properties; + +#define PropOf(TCB) ((Properties*)TCB->prop) + +int +_nc_mingw_ioctl(int fd GCC_UNUSED, + long int request GCC_UNUSED, + struct termios *arg GCC_UNUSED) +{ + return 0; + endwin(); + fprintf(stderr, "TERMINFO currently not supported on Windows.\n"); + exit(1); +} + +static WORD +MapColor(bool fore, int color) +{ + static const int _cmap[] = + {0, 4, 2, 6, 1, 5, 3, 7}; + int a; + if (color < 0 || color > 7) + a = fore ? 7 : 0; + else + a = _cmap[color]; + if (!fore) + a = a << 4; + return (WORD) a; +} + +static WORD +MapAttr(TERMINAL_CONTROL_BLOCK * TCB, WORD res, chtype ch) +{ + if (ch & A_COLOR) { + int p; + SCREEN *sp; + + AssertTCB(); + SetSP(); + p = PAIR_NUMBER(ch); + if (p > 0 && p < NUMPAIRS && TCB != 0 && sp != 0) { + WORD a; + a = PropOf(TCB)->pairs[p]; + res = (res & 0xff00) | a; + } + } + + if (ch & A_REVERSE) + res = ((res & 0xff00) | (((res & 0x07) << 4) | ((res & 0x70) >> 4))); + + if (ch & A_STANDOUT) + res = ((res & 0xff00) | (((res & 0x07) << 4) | ((res & 0x70) >> 4)) + | BACKGROUND_INTENSITY); + + if (ch & A_BOLD) + res |= FOREGROUND_INTENSITY; + + if (ch & A_DIM) + res |= BACKGROUND_INTENSITY; + + return res; +} + +static BOOL +con_write(TERMINAL_CONTROL_BLOCK * TCB, int y, int x, chtype *str, int n) +{ + CHAR_INFO ci[n]; + COORD loc, siz; + SMALL_RECT rec; + int i; + chtype ch; + SCREEN *sp; + + AssertTCB(); + + if (TCB == 0 || InvalidConsoleHandle(TCB->hdl)) + return FALSE; + + SetSP(); + + for (i = 0; i < n; i++) { + ch = str[i]; + ci[i].Char.AsciiChar = ChCharOf(ch); + ci[i].Attributes = MapAttr(TCB, + PropOf(TCB)->SBI.wAttributes, + ChAttrOf(ch)); + if (ChAttrOf(ch) & A_ALTCHARSET) { + if (sp->_acs_map) + ci[i].Char.AsciiChar = + ChCharOf(NCURSES_SP_NAME(_nc_acs_char) (sp, ChCharOf(ch))); + } + } + + loc.X = (short) 0; + loc.Y = (short) 0; + siz.X = (short) n; + siz.Y = 1; + + rec.Left = (short) x; + rec.Top = (short) y; + rec.Right = (short) (x + n - 1); + rec.Bottom = rec.Top; + + return WriteConsoleOutput(TCB->hdl, ci, siz, loc, &rec); +} + +#define MARK_NOCHANGE(win,row) \ + win->_line[row].firstchar = _NOCHANGE; \ + win->_line[row].lastchar = _NOCHANGE + +static int +drv_doupdate(TERMINAL_CONTROL_BLOCK * TCB) +{ + int y, nonempty, n, x0, x1, Width, Height; + SCREEN *sp; + + AssertTCB(); + SetSP(); + + Width = screen_columns(sp); + Height = screen_lines(sp); + nonempty = min(Height, sp->_newscr->_maxy + 1); + + if ((sp->_curscr->_clear || sp->_newscr->_clear)) { + int x; + chtype empty[Width]; + + for (x = 0; x < Width; x++) + empty[x] = ' '; + + for (y = 0; y < nonempty; y++) { + con_write(TCB, y, 0, empty, Width); + memcpy(empty, + sp->_curscr->_line[y].text, + Width * sizeof(chtype)); + } + sp->_curscr->_clear = FALSE; + sp->_newscr->_clear = FALSE; + touchwin(sp->_newscr); + } + + for (y = 0; y < nonempty; y++) { + x0 = sp->_newscr->_line[y].firstchar; + if (x0 != _NOCHANGE) { + x1 = sp->_newscr->_line[y].lastchar; + n = x1 - x0 + 1; + if (n > 0) { + memcpy(sp->_curscr->_line[y].text + x0, + sp->_newscr->_line[y].text + x0, + n * sizeof(chtype)); + con_write(TCB, + y, + x0, + ((chtype *) sp->_curscr->_line[y].text) + x0, n); + + /* mark line changed successfully */ + if (y <= sp->_newscr->_maxy) { + MARK_NOCHANGE(sp->_newscr, y); + } + if (y <= sp->_curscr->_maxy) { + MARK_NOCHANGE(sp->_curscr, y); + } + } + } + } + + /* put everything back in sync */ + for (y = nonempty; y <= sp->_newscr->_maxy; y++) { + MARK_NOCHANGE(sp->_newscr, y); + } + for (y = nonempty; y <= sp->_curscr->_maxy; y++) { + MARK_NOCHANGE(sp->_curscr, y); + } + + if (!sp->_newscr->_leaveok) { + sp->_curscr->_curx = sp->_newscr->_curx; + sp->_curscr->_cury = sp->_newscr->_cury; + + TCB->drv->hwcur(TCB, 0, 0, sp->_curscr->_cury, sp->_curscr->_curx); + } + SetConsoleActiveScreenBuffer(TCB->hdl); + return OK; +} + +static bool +drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, + const char *tname, + int *errret GCC_UNUSED) +{ + assert(TCB != 0); + assert(tname != 0); + TCB->magic = WINMAGIC; + if (*tname == 0 || *tname == 0 || strcmp(tname, "unknown") == 0) { + return TRUE; + } else + return FALSE; +} + +static int +drv_dobeepflash(TERMINAL_CONTROL_BLOCK * TCB, + bool beepFlag GCC_UNUSED) +{ + SCREEN *sp; + int res = ERR; + + AssertTCB(); + SetSP(); + + return res; +} + +static int +drv_print(TERMINAL_CONTROL_BLOCK * TCB, + char *data GCC_UNUSED, + int len GCC_UNUSED) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); + + return ERR; +} + +static int +drv_defaultcolors(TERMINAL_CONTROL_BLOCK * TCB, + int fg GCC_UNUSED, + int bg GCC_UNUSED) +{ + SCREEN *sp; + int code = ERR; + + AssertTCB(); + SetSP(); + + return (code); +} + +static void +drv_setcolor(TERMINAL_CONTROL_BLOCK * TCB, + bool fore, + int color, + int (*outc) (SCREEN *, int) GCC_UNUSED) +{ + AssertTCB(); + + if (TCB && !InvalidConsoleHandle(TCB->hdl)) { + WORD a = MapColor(fore, color); + a = ((PropOf(TCB)->SBI.wAttributes) & (fore ? 0xfff8 : 0xff8f)) | a; + SetConsoleTextAttribute(TCB->hdl, a); + GetConsoleScreenBufferInfo(TCB->hdl, &(PropOf(TCB)->SBI)); + } +} + +static bool +drv_rescol(TERMINAL_CONTROL_BLOCK * TCB) +{ + bool res = FALSE; + + AssertTCB(); + if (TCB && !InvalidConsoleHandle(TCB->hdl)) { + WORD a = FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_GREEN; + SetConsoleTextAttribute(TCB->hdl, a); + GetConsoleScreenBufferInfo(TCB->hdl, &(PropOf(TCB)->SBI)); + res = TRUE; + } + return res; +} + +static bool +drv_rescolors(TERMINAL_CONTROL_BLOCK * TCB) +{ + int result = FALSE; + SCREEN *sp; + + AssertTCB(); + SetSP(); + + return result; +} + +static int +drv_size(TERMINAL_CONTROL_BLOCK * TCB, int *Lines, int *Cols) +{ + AssertTCB(); + + if (TCB == NULL || Lines == NULL || Cols == NULL || InvalidConsoleHandle(TCB->hdl)) + return ERR; + + *Lines = (int) (PropOf(TCB)->SBI.dwSize.Y); + *Cols = (int) (PropOf(TCB)->SBI.dwSize.X); + return OK; +} + +static int +drv_setsize(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, + int l GCC_UNUSED, + int c GCC_UNUSED) +{ + AssertTCB(); + return ERR; +} + +static int +drv_mode(TERMINAL_CONTROL_BLOCK * TCB, bool progFlag, bool defFlag) +{ + SCREEN *sp; + TERMINAL *_term = (TERMINAL *) TCB; + int code = ERR; + + AssertTCB(); + sp = TCB->csp; + + PropOf(TCB)->progMode = progFlag; + SetConsoleActiveScreenBuffer(progFlag ? TCB->hdl : TCB->out); + + if (progFlag) /* prog mode */ { + if (defFlag) { + if ((drv_sgmode(TCB, FALSE, &(_term->Nttyb)) == OK)) { + _term->Nttyb.c_oflag &= ~OFLAGS_TABS; + code = OK; + } + } else { + /* reset_prog_mode */ + if (drv_sgmode(TCB, TRUE, &(_term->Nttyb)) == OK) { + if (sp) { + if (sp->_keypad_on) + _nc_keypad(sp, TRUE); + NC_BUFFERED(sp, TRUE); + } + code = OK; + } + } + } else { /* shell mode */ + if (defFlag) { + /* def_shell_mode */ + if (drv_sgmode(TCB, FALSE, &(_term->Ottyb)) == OK) { + code = OK; + } + } else { + /* reset_shell_mode */ + if (sp) { + _nc_keypad(sp, FALSE); + NCURSES_SP_NAME(_nc_flush) (sp); + NC_BUFFERED(sp, FALSE); + } + code = drv_sgmode(TCB, TRUE, &(_term->Ottyb)); + } + } + + return (code); +} + +static void +drv_screen_init(SCREEN *sp GCC_UNUSED) +{ +} + +static void +drv_wrap(SCREEN *sp GCC_UNUSED) +{ +} + +static int +rkeycompare(const void *el1, const void *el2) +{ + WORD key1 = (LOWORD((*((const LONG *) el1)))) & 0x7fff; + WORD key2 = (LOWORD((*((const LONG *) el2)))) & 0x7fff; + + return ((key1 < key2) ? -1 : ((key1 == key2) ? 0 : 1)); +} + +static int +keycompare(const void *el1, const void *el2) +{ + WORD key1 = HIWORD((*((const LONG *) el1))); + WORD key2 = HIWORD((*((const LONG *) el2))); + + return ((key1 < key2) ? -1 : ((key1 == key2) ? 0 : 1)); +} + +static int +MapKey(TERMINAL_CONTROL_BLOCK * TCB, WORD vKey) +{ + WORD nKey = 0; + void *res; + LONG key = GenMap(vKey, 0); + int code = -1; + + AssertTCB(); + + res = bsearch(&key, + PropOf(TCB)->map, + (size_t) (N_INI + FKEYS), + sizeof(keylist[0]), + keycompare); + if (res) { + key = *((LONG *) res); + nKey = LOWORD(key); + code = (int) (nKey & 0x7fff); + if (nKey & 0x8000) + code = -code; + } + return code; +} + +static void +drv_release(TERMINAL_CONTROL_BLOCK * TCB) +{ + AssertTCB(); + if (TCB->prop) + free(TCB->prop); +} + +static void +drv_init(TERMINAL_CONTROL_BLOCK * TCB) +{ + AssertTCB(); + + if (TCB) { + BOOL b = AllocConsole(); + WORD a; + int i; + + if (!b) + b = AttachConsole(ATTACH_PARENT_PROCESS); + + TCB->inp = GetStdHandle(STD_INPUT_HANDLE); + TCB->out = GetStdHandle(STD_OUTPUT_HANDLE); + + if (getenv("NCGDB")) + TCB->hdl = TCB->out; + else + TCB->hdl = CreateConsoleScreenBuffer(GENERIC_READ | GENERIC_WRITE, + 0, + NULL, + CONSOLE_TEXTMODE_BUFFER, + NULL); + + if (!InvalidConsoleHandle(TCB->hdl)) { + TCB->prop = typeCalloc(Properties, 1); + GetConsoleScreenBufferInfo(TCB->hdl, &(PropOf(TCB)->SBI)); + } + + TCB->info.initcolor = TRUE; + TCB->info.canchange = FALSE; + TCB->info.hascolor = TRUE; + TCB->info.caninit = TRUE; + + TCB->info.maxpairs = NUMPAIRS; + TCB->info.maxcolors = 8; + TCB->info.numlabels = 0; + TCB->info.labelwidth = 0; + TCB->info.labelheight = 0; + TCB->info.nocolorvideo = 1; + TCB->info.tabsize = 8; + + TCB->info.defaultPalette = _nc_cga_palette; + + for (i = 0; i < (N_INI + FKEYS); i++) { + if (i < N_INI) + PropOf(TCB)->rmap[i] = PropOf(TCB)->map[i] = keylist[i]; + else + PropOf(TCB)->rmap[i] = PropOf(TCB)->map[i] = + GenMap((VK_F1 + (i - N_INI)), (KEY_F(1) + (i - N_INI))); + } + qsort(PropOf(TCB)->map, + (size_t) (MAPSIZE), + sizeof(keylist[0]), + keycompare); + qsort(PropOf(TCB)->rmap, + (size_t) (MAPSIZE), + sizeof(keylist[0]), + rkeycompare); + + a = MapColor(true, COLOR_WHITE) | MapColor(false, COLOR_BLACK); + for (i = 0; i < NUMPAIRS; i++) + PropOf(TCB)->pairs[i] = a; + } +} + +static void +drv_initpair(TERMINAL_CONTROL_BLOCK * TCB, + short pair, + short f, + short b) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); + + if ((pair > 0) && (pair < NUMPAIRS) && (f >= 0) && (f < 8) + && (b >= 0) && (b < 8)) { + PropOf(TCB)->pairs[pair] = MapColor(true, f) | MapColor(false, b); + } +} + +static void +drv_initcolor(TERMINAL_CONTROL_BLOCK * TCB, + short color GCC_UNUSED, + short r GCC_UNUSED, + short g GCC_UNUSED, + short b GCC_UNUSED) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); +} + +static void +drv_do_color(TERMINAL_CONTROL_BLOCK * TCB, + short old_pair GCC_UNUSED, + short pair GCC_UNUSED, + bool reverse GCC_UNUSED, + int (*outc) (SCREEN *, int) GCC_UNUSED +) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); +} + +static void +drv_initmouse(TERMINAL_CONTROL_BLOCK * TCB) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); +} + +static int +drv_mvcur(TERMINAL_CONTROL_BLOCK * TCB, + int yold GCC_UNUSED, int xold GCC_UNUSED, + int y, int x) +{ + int ret = ERR; + if (TCB && !InvalidConsoleHandle(TCB->hdl)) { + COORD loc; + loc.X = (short) x; + loc.Y = (short) y; + SetConsoleCursorPosition(TCB->hdl, loc); + ret = OK; + } + return ret; +} + +static void +drv_hwlabel(TERMINAL_CONTROL_BLOCK * TCB, + int labnum GCC_UNUSED, + char *text GCC_UNUSED) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); +} + +static void +drv_hwlabelOnOff(TERMINAL_CONTROL_BLOCK * TCB, + bool OnFlag GCC_UNUSED) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); +} + +static chtype +drv_conattr(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED) +{ + chtype res = A_NORMAL; + res |= (A_BOLD | A_DIM | A_REVERSE | A_STANDOUT | A_COLOR); + return res; +} + +static void +drv_setfilter(TERMINAL_CONTROL_BLOCK * TCB) +{ + SCREEN *sp; + + AssertTCB(); + SetSP(); +} + +static int +drv_sgmode(TERMINAL_CONTROL_BLOCK * TCB, bool setFlag, TTY * buf) +{ + DWORD dwFlag = 0; + tcflag_t iflag; + tcflag_t lflag; + + AssertTCB(); + + if (TCB == 0 || buf == NULL) + return ERR; + + if (setFlag) { + iflag = buf->c_iflag; + lflag = buf->c_lflag; + + GetConsoleMode(TCB->inp, &dwFlag); + + if (lflag & ICANON) + dwFlag |= ENABLE_LINE_INPUT; + else + dwFlag &= ~ENABLE_LINE_INPUT; + + if (lflag & ECHO) + dwFlag |= ENABLE_ECHO_INPUT; + else + dwFlag &= ~ENABLE_ECHO_INPUT; + + if (iflag & BRKINT) + dwFlag |= ENABLE_PROCESSED_INPUT; + else + dwFlag &= ~ENABLE_PROCESSED_INPUT; + + /* we disable that for now to focus on keyboard. */ + dwFlag &= ~ENABLE_MOUSE_INPUT; + + buf->c_iflag = iflag; + buf->c_lflag = lflag; + SetConsoleMode(TCB->inp, dwFlag); + TCB->term.Nttyb = *buf; + } else { + iflag = TCB->term.Nttyb.c_iflag; + lflag = TCB->term.Nttyb.c_lflag; + GetConsoleMode(TCB->inp, &dwFlag); + + if (dwFlag & ENABLE_LINE_INPUT) + lflag |= ICANON; + else + lflag &= ~ICANON; + + if (dwFlag & ENABLE_ECHO_INPUT) + lflag |= ECHO; + else + lflag &= ~ECHO; + + if (dwFlag & ENABLE_PROCESSED_INPUT) + iflag |= BRKINT; + else + iflag &= ~BRKINT; + + TCB->term.Nttyb.c_iflag = iflag; + TCB->term.Nttyb.c_lflag = lflag; + + *buf = TCB->term.Nttyb; + } + return OK; +} + +static void +drv_initacs(TERMINAL_CONTROL_BLOCK * TCB, + chtype *real_map GCC_UNUSED, + chtype *fake_map GCC_UNUSED) +{ + SCREEN *sp; + AssertTCB(); + SetSP(); +} + +static ULONGLONG +tdiff(FILETIME fstart, FILETIME fend) +{ + ULARGE_INTEGER ustart; + ULARGE_INTEGER uend; + ULONGLONG diff; + + ustart.LowPart = fstart.dwLowDateTime; + ustart.HighPart = fstart.dwHighDateTime; + uend.LowPart = fend.dwLowDateTime; + uend.HighPart = fend.dwHighDateTime; + + diff = (uend.QuadPart - ustart.QuadPart) / 10000; + return diff; +} + +static int +Adjust(int milliseconds, int diff) +{ + if (milliseconds == INFINITY) + return milliseconds; + milliseconds -= diff; + if (milliseconds < 0) + milliseconds = 0; + return milliseconds; +} + +static int +drv_twait(TERMINAL_CONTROL_BLOCK * TCB, + int mode, + int milliseconds, + int *timeleft + EVENTLIST_2nd(_nc_eventlist * evl)) +{ + SCREEN *sp; + INPUT_RECORD inp; + BOOL b; + DWORD nRead = 0, rc = -1; + int code = 0; + FILETIME fstart; + FILETIME fend; + int diff; + bool isImmed = (milliseconds == 0); + +#define CONSUME() ReadConsoleInput(TCB->inp,&inp,1,&nRead) + + AssertTCB(); + SetSP(); + + if (milliseconds < 0) + milliseconds = INFINITY; + + memset(&inp, 0, sizeof(inp)); + + while (true) { + GetSystemTimeAsFileTime(&fstart); + rc = WaitForSingleObject(TCB->inp, milliseconds); + GetSystemTimeAsFileTime(&fend); + diff = (int) tdiff(fstart, fend); + milliseconds = Adjust(milliseconds, diff); + + if (!isImmed && milliseconds == 0) + break; + + if (rc == WAIT_OBJECT_0) { + if (mode) { + b = GetNumberOfConsoleInputEvents(TCB->inp, &nRead); + if (b && nRead > 0) { + b = PeekConsoleInput(TCB->inp, &inp, 1, &nRead); + if (b && nRead > 0) { + switch (inp.EventType) { + case KEY_EVENT: + if (mode & TW_INPUT) { + WORD vk = inp.Event.KeyEvent.wVirtualKeyCode; + char ch = inp.Event.KeyEvent.uChar.AsciiChar; + + if (inp.Event.KeyEvent.bKeyDown) { + if (0 == ch) { + int nKey = MapKey(TCB, vk); + if ((nKey < 0) || FALSE == sp->_keypad_on) { + CONSUME(); + continue; + } + } + code = TW_INPUT; + goto end; + } else { + CONSUME(); + } + } + continue; + case MOUSE_EVENT: + if (0 && mode & TW_MOUSE) { + code = TW_MOUSE; + goto end; + } else + continue; + default: + SetConsoleActiveScreenBuffer(!PropOf(TCB)->progMode ? + TCB->hdl : TCB->out); + continue; + } + } + } + } + continue; + } else { + if (rc != WAIT_TIMEOUT) { + code = -1; + break; + } else { + code = 0; + break; + } + } + } + end: + if (timeleft) + *timeleft = milliseconds; + + return code; +} + +static int +drv_read(TERMINAL_CONTROL_BLOCK * TCB, int *buf) +{ + SCREEN *sp; + int n = 1; + INPUT_RECORD inp; + BOOL b; + DWORD nRead; + WORD vk; + WORD sc; + + AssertTCB(); + assert(buf); + SetSP(); + + memset(&inp, 0, sizeof(inp)); + + while ((b = ReadConsoleInput(TCB->inp, &inp, 1, &nRead))) { + if (b && nRead > 0) { + if (inp.EventType == KEY_EVENT) { + if (!inp.Event.KeyEvent.bKeyDown) + continue; + *buf = (int) inp.Event.KeyEvent.uChar.AsciiChar; + vk = inp.Event.KeyEvent.wVirtualKeyCode; + sc = inp.Event.KeyEvent.wVirtualScanCode; + if (*buf == 0) { + if (sp->_keypad_on) { + *buf = MapKey(TCB, vk); + if (0 > (*buf)) + continue; + else + break; + } else + continue; + } else { /* *buf != 0 */ + break; + } + } else if (0 && inp.EventType == MOUSE_EVENT) { + *buf = KEY_MOUSE; + break; + } + continue; + } + } + return n; +} + +static int +drv_nap(TERMINAL_CONTROL_BLOCK * TCB GCC_UNUSED, int ms) +{ + Sleep(ms); + return OK; +} + +static bool +drv_kyExist(TERMINAL_CONTROL_BLOCK * TCB, int keycode) +{ + SCREEN *sp; + WORD nKey; + void *res; + bool found = FALSE; + LONG key = GenMap(0, (WORD) keycode); + + AssertTCB(); + SetSP(); + + AssertTCB(); + + res = bsearch(&key, + PropOf(TCB)->rmap, + (size_t) (N_INI + FKEYS), + sizeof(keylist[0]), + rkeycompare); + if (res) { + key = *((LONG *) res); + nKey = LOWORD(key); + if (!(nKey & 0x8000)) + found = TRUE; + } + return found; +} + +static int +drv_kpad(TERMINAL_CONTROL_BLOCK * TCB, bool flag GCC_UNUSED) +{ + SCREEN *sp; + int code = ERR; + + AssertTCB(); + sp = TCB->csp; + + if (sp) { + code = OK; + } + return code; +} + +static int +drv_keyok(TERMINAL_CONTROL_BLOCK * TCB, int keycode, bool flag) +{ + int code = ERR; + SCREEN *sp; + WORD nKey; + WORD vKey; + void *res; + LONG key = GenMap(0, (WORD) keycode); + + AssertTCB(); + SetSP(); + + if (sp) { + res = bsearch(&key, + PropOf(TCB)->rmap, + (size_t) (N_INI + FKEYS), + sizeof(keylist[0]), + rkeycompare); + if (res) { + key = *((LONG *) res); + vKey = HIWORD(key); + nKey = (LOWORD(key)) & 0x7fff; + if (!flag) + nKey |= 0x8000; + *(LONG *) res = GenMap(vKey, nKey); + } + } + return code; +} 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-09-12 08:52:10.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.1430 2009/09/06 16:03:13 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -45,6 +45,362 @@ Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20090906 + + fix typo s/is_timeout/is_notimeout/ which made "man is_notimeout" not + work. + + add null-pointer checks to other opaque-functions. + + add is_pad() and is_subwin() functions for opaque access to WINDOW + (discussion with Mark Dickinson). + + correct merge to lib_newterm.c, which broke when sp-funcs was + enabled. + +20090905 + + build-fix for building outside source-tree (report by Sven Joachim). + + fix Debian lintian warning for man/tabs.1 by making section number + agree with file-suffix (report by Sven Joachim). + + continue integrating "sp-funcs" by Juergen Pfeifer (incomplete). + +20090829 + + workaround for bug in g++ 4.1-4.4 warnings for wattrset() macro on + amd64 (Debian #542031). + + fix typo in curs_mouse.3x (Debian #429198). + +20090822 + + continue integrating "sp-funcs" by Juergen Pfeifer (incomplete). + +20090815 + + correct use of terminfo capabilities for initializing soft-keys, + broken in 20090509 merging. + + modify wgetch() to ensure it checks SIGWINCH when it gets an error + in non-blocking mode (patch by Clemens Ladisch). + + use PATH_SEPARATOR symbol when substituting into run_tic.sh, to + help with builds on non-Unix platforms such as OS/2 EMX. + + modify scripting for misc/run_tic.sh to test configure script's + $cross_compiling variable directly rather than comparing host/build + compiler names (prompted by comment in GenToo #249363). + + fix configure script option --with-database, which was coded as an + enable-type switch. + + build-fixes for --srcdir (report by Frederic L W Meunier). + +20090808 + + separate _nc_find_entry() and _nc_find_type_entry() from + implementation details of hash function. + +20090803 + + add tabs.1 to man/man_db.renames + + modify lib_addch.c to compensate for removal of wide-character test + from unctrl() in 20090704 (Debian #539735). + +20090801 + + improve discussion in INSTALL for use of system's tic/infocmp for + cross-compiling and building fallbacks. + + modify test/demo_termcap.c to correspond better to options in + test/demo_terminfo.c + + continue integrating "sp-funcs" by Juergen Pfeifer (incomplete). + + fix logic for 'V' in test/ncurses.c tests f/F. + +20090728 + + correct logic in tigetnum(), which caused tput program to treat all + string capabilities as numeric (report by Rajeev V Pillai, + cf: 20090711). + +20090725 + + continue integrating "sp-funcs" by Juergen Pfeifer (incomplete). + +20090718 + + fix a null-pointer check in _nc_format_slks() in lib_slk.c, from + 20070704 changes. + + modify _nc_find_type_entry() to use hashing. + + make CCHARW_MAX value configurable, noting that changing this would + change the size of cchar_t, and would be ABI-incompatible. + + modify test-programs, e.g,. test/view.c, to address subtle + differences between Tru64/Solaris and HPUX/AIX getcchar() return + values. + + modify length returned by getcchar() to count the trailing null + which is documented in X/Open (cf: 20020427). + + fixes for test programs to build/work on HPUX and AIX, etc. + +20090711 + + improve performance of tigetstr, etc., by using hashing code from tic. + + minor fixes for memory-leak checking. + + add test/demo_terminfo, for comparison with demo_termcap + +20090704 + + remove wide-character checks from unctrl() (patch by Clemens Ladisch). + + revise wadd_wch() and wecho_wchar() to eliminate dependency on + unctrl(). + + continue integrating "sp-funcs" by Juergen Pfeifer (incomplete). + +20090627 + + update llib-lncurses[wt] to use sp-funcs. + + various code-fixes to build/work with --disable-macros configure + option. + + add several new files from Juergen Pfeifer which will be used when + integration of "sp-funcs" is complete. This includes a port to + MinGW. + +20090613 + + move definition for NCURSES_WRAPPED_VAR back to ncurses_dll.h, to + make includes of term.h without curses.h work (report by "Nix"). + + continue integrating "sp-funcs" by Juergen Pfeifer (incomplete). + +20090607 + + fix a regression in lib_tputs.c, from ongoing merges. + +20090606 + + continue integrating "sp-funcs" by Juergen Pfeifer (incomplete). + +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-09-12 08:51:25.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-09-12 08:51:28.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 1995 * * and: Eric S. Raymond * + * 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-09-12 08:51:28.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 1995 * * and: Eric S. Raymond * + * 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-09-12 08:51:28.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 1995 * * and: Eric S. Raymond * + * 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-09-12 08:51:28.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 #include -#include "curses.priv.h" +struct screen; /* forward declaration */ + +#include "curses.priv.h" /* includes nc_panel.h */ #include "panel.h" -#include + #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-09-12 08:51:28.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 1995 * * and: Eric S. Raymond * + * 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-09-12 08:51:28.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 1995 * * and: Eric S. Raymond * + * 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-09-12 08:51:28.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 1995 * * and: Eric S. Raymond * + * 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-09-12 08:51:28.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 1995 * * and: Eric S. Raymond * + * 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-09-12 08:51:28.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("", 1, pan); + if (pan) + { + GetHook(pan); - HIDE_PANEL(pan, err, ERR); + dBug(("--> hide_panel %s", USER_PTR(pan->user))); + dStack("", 1, pan); - dStack("", 9, pan); + HIDE_PANEL(pan, err, ERR); + err = OK; + + dStack("", 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-09-12 08:51:28.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 1995 * * and: Eric S. Raymond * + * 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-09-12 08:51:28.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-09-12 08:51:28.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-09-12 08:51:28.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("", 1, pan); - assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel); + dStack("", 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("", 9, pan); + err = OK; - returnCode(OK); + dStack("", 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-09-12 08:51:28.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 1995 * * and: Eric S. Raymond * + * 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-09-12 08:51:25.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 " >>$@ + 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-09-12 08:51: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-09-12 08:50: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 + +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-09-12 08:51: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 #include -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-09-12 08:51: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 -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-09-12 08:51: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 +#include + +#include + +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-09-12 08:51: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 #include -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/README.MinGW ncurses-5.7/README.MinGW --- ncurses-5.7.orig/README.MinGW 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/README.MinGW 2009-09-12 08:51:49.000000000 -0700 @@ -0,0 +1,79 @@ +------------------------------------------------------------------------------- +-- 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: README.MinGW,v 1.1 2008/12/14 19:22:16 juergen Exp $ +-- Author: Juergen Pfeifer +------------------------------------------------------------------------------- + +This is work in progress, but it's in an state where one can see it +works at least on the Windows Console. + +To build ncurses for native Windows, you need the MinGW toolchain from +http://www.mingw.org + +You should install also the MSYS package, so that you've a shell environment +that allows you to run the scripts, especially configure etc. + +Using MinGW is a pragmatic decision, it's the easiest way to port this +heavily UNIX based sourcebase to native Windows. The goal is of course +to provide the includes, libraries and DLLs to be used with the more +common traditional development environments on Windows, mainly with +Microsoft Visual Studio. + +If you start a bash from the MSYS environment, please make sure that the +Microsoft Development tools are in your PATH right after the MinGW +tools. The LIB.EXE tool is the only one needed. You need this only if +you want to build DLLs that work with native Windows programs. If you +don't have any Microsoft Development tools on your machine, consider +at least to get the free "Visual C++ 2008 Express Edition". +It contains the LIB.EXE tool. You may also use this compiler to test +writing native Windows programs using the ncurses DLLs without using +MinGW then for writing apps. + +Please unset the TERM environment variable, so that the Console driver +gets activated. + +This code requires WindowsNT 5.1 or better, which means on the client +Windows XP or better, on the server Windows Server 2003 or better. + +In order to build the DLLs, you must call + + make dlls + +A lot is still TODO, e.g.: + + - Mouse support for the Console + - Wide Character support + The Win32Con driver should actually only use Unicode in the + future. + - Thread support (locking) + - A GUI console driver + - Support for Terminals attached via a serial port (via terminfo) + - Support for networked Terminal connections (via terminfo) + +To support terminfo, we need to have an ioctl() simulation for the +serial and networked Terminals. 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-09-12 08:51:54.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.29 2009/07/17 01:07:50 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}> @@ -419,6 +420,37 @@ test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map) ]) dnl --------------------------------------------------------------------------- +dnl CF_CURSES_CHECK_DATA version: 2 updated: 2009/07/16 21:03:10 +dnl -------------------- +dnl Check if curses.h defines the given data/variable. +dnl Use this after CF_NCURSES_CONFIG or CF_CURSES_CONFIG. +AC_DEFUN([CF_CURSES_CHECK_DATA], +[ +AC_MSG_CHECKING(for data $1 declaration in ${cf_cv_ncurses_header-curses.h}) +AC_TRY_COMPILE(CF__CURSES_HEAD,[ +void *foo = &($1) +],cf_result=yes,cf_result=no) +AC_MSG_RESULT($cf_result) +if test $cf_result = yes ; then + CF_UPPER(cf_result,have_curses_data_$1) + AC_DEFINE_UNQUOTED($cf_result) +else + AC_MSG_CHECKING(for data $1 in library) + AC_TRY_LINK(CF__CURSES_HEAD +[extern char $1;],[ + do { + void *foo = &($1); + ${cf_cv_main_return-return}(foo == 0); + } while (0) +],[cf_result=yes],[cf_result=no]) + AC_MSG_RESULT($cf_result) + if test $cf_result = yes ; then + CF_UPPER(cf_result,decl_curses_data_$1) + AC_DEFINE_UNQUOTED($cf_result) + fi +fi +])dnl +dnl --------------------------------------------------------------------------- dnl CF_CURSES_CHECK_TYPE version: 2 updated: 2003/03/01 23:40:33 dnl -------------------- dnl Check if curses.h defines the given type @@ -441,7 +473,19 @@ fi ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CURSES_CPPFLAGS version: 9 updated: 2006/02/04 19:44:43 +dnl CF_CURSES_CONFIG version: 2 updated: 2006/10/29 11:06:27 +dnl ---------------- +dnl Tie together the configure-script macros for curses. It may be ncurses, +dnl but unless asked, we do not make a special search for ncurses. However, +dnl still check for the ncurses version number, for use in other macros. +AC_DEFUN([CF_CURSES_CONFIG], +[ +CF_CURSES_CPPFLAGS +CF_NCURSES_VERSION +CF_CURSES_LIBS +])dnl +dnl --------------------------------------------------------------------------- +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,13 +504,13 @@ ;; 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 ])dnl dnl --------------------------------------------------------------------------- -dnl CF_CURSES_FUNCS version: 13 updated: 2007/04/28 09:15:55 +dnl CF_CURSES_FUNCS version: 14 updated: 2009/07/16 19:34:55 dnl --------------- dnl Curses-functions are a little complicated, since a lot of them are macros. AC_DEFUN([CF_CURSES_FUNCS], @@ -482,24 +526,7 @@ AC_CACHE_VAL(cf_cv_func_$cf_func,[ eval cf_result='$ac_cv_func_'$cf_func if test ".$cf_result" != ".no"; then - AC_TRY_LINK([ -#ifdef HAVE_XCURSES -#include -char * XCursesProgramName = "test"; -#else -#include <${cf_cv_ncurses_header-curses.h}> -#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) -#include -#else -#if defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) -#include -#else -#ifdef HAVE_TERM_H -#include -#endif -#endif -#endif -#endif], + AC_TRY_LINK(CF__CURSES_HEAD, [ #ifndef ${cf_func} long foo = (long)(&${cf_func}); @@ -549,7 +576,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 +603,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 +642,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 +656,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 +799,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 +844,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 +1073,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 +1106,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 +1113,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 +1166,7 @@ ;; Winline) #(vi case $GCC_VERSION in - 3.3*) + [[34]].*) CF_VERBOSE(feature is broken in gcc $GCC_VERSION) continue;; esac @@ -1074,11 +1212,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 +1251,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 +1299,64 @@ 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_MIN_GETCCHAR version: 2 updated: 2009/07/16 21:03:10 +dnl --------------- +dnl CF_MIN_GETCCHAR +dnl Check whether getcchar's return value counts the trailing null in a wchar_t +dnl string, or not. X/Open says it does, but Tru64 and Solaris do not do this. +AC_DEFUN([CF_MIN_GETCCHAR],[ +AC_CACHE_CHECK(if getcchar counts trailing null,cf_cv_min_getcchar,[ +AC_TRY_RUN([ +#include +#include +#include <${cf_cv_ncurses_header-curses.h}> + +int main() +{ + wchar_t data[2]; + cchar_t temp[2]; + int count; + data[0] = L'\0'; + setcchar(temp, data, 0, 0, (void *)0); + count = getcchar(temp, (wchar_t *)0, (attr_t *)0, (short *)0, (void *)0); + ${cf_cv_main_return-return}(count != 0); +}], + [cf_cv_min_getcchar=no], + [cf_cv_min_getcchar=yes], + [cf_cv_min_getcchar=yes]) +]) +if test "$cf_cv_min_getcchar" = yes ; then + AC_DEFINE(MIN_GETCCHAR,1) +fi +])dnl dnl --------------------------------------------------------------------------- dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12 dnl ---------- @@ -1187,6 +1399,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 +1489,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 +1524,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 +1686,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 +1734,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 +1749,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 +1778,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 +2057,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 +2067,18 @@ AC_TRY_LINK([ #include ],[putwc(0,0);], [cf_cv_utf8_lib=yes], - [LIBS="-lutf8 $LIBS" - AC_TRY_LINK([ -#include ],[putwc(0,0);], + [CF_FIND_LINKAGE([ +#include ],[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 @@ -1824,6 +2091,56 @@ CF_MSG_LOG([$1]) ])dnl dnl --------------------------------------------------------------------------- +dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20 +dnl ------------- +dnl Check if type wide-character type $1 is declared, and if so, which header +dnl file is needed. The second parameter is used to set a shell variable when +dnl the type is not found. The first parameter sets a shell variable for the +dnl opposite sense. +AC_DEFUN([CF_WCHAR_TYPE], +[ +# This is needed on Tru64 5.0 to declare $1 +AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[ +AC_TRY_COMPILE([ +#include +#include +#include +#ifdef HAVE_LIBUTF8_H +#include +#endif], + [$1 state], + [cf_cv_$1=no], + [AC_TRY_COMPILE([ +#include +#include +#include +#include +#ifdef HAVE_LIBUTF8_H +#include +#endif], + [$1 value], + [cf_cv_$1=yes], + [cf_cv_$1=unknown])])]) + +if test "$cf_cv_$1" = yes ; then + AC_DEFINE(NEED_WCHAR_H) + NEED_WCHAR_H=1 +fi + +ifelse($2,,,[ +# if we do not find $1 in either place, use substitution to provide a fallback. +if test "$cf_cv_$1" = unknown ; then + $2=1 +fi +]) +ifelse($3,,,[ +# if we find $1 in either place, use substitution to provide a fallback. +if test "$cf_cv_$1" != unknown ; then + $3=1 +fi +]) +])dnl +dnl --------------------------------------------------------------------------- dnl CF_WITH_CURSES_DIR version: 2 updated: 2002/11/10 14:46:59 dnl ------------------ dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses @@ -1866,7 +2183,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: 29 updated: 2009/07/16 21:07:04 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 +2200,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 @@ -1894,13 +2211,16 @@ cf_XOPEN_SOURCE=600 CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ;; +hpux11*) #(vi + CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE=500" + ;; hpux*) #(vi CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE" ;; 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 +2325,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 +2344,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 +2372,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 +2416,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 +2424,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,9 +2453,29 @@ [$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.]) fi ])dnl +dnl --------------------------------------------------------------------------- +dnl CF__CURSES_HEAD version: 1 updated: 2009/07/16 19:32:31 +dnl --------------- +dnl Define a reusable chunk which includes and when they +dnl are both available. +define([CF__CURSES_HEAD],[ +#ifdef HAVE_XCURSES +#include +char * XCursesProgramName = "test"; +#else +#include <${cf_cv_ncurses_header-curses.h}> +#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +#include +#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +#include +#elif defined(HAVE_TERM_H) +#include +#endif +#endif +]) diff -Naur ncurses-5.7.orig/test/blue.c ncurses-5.7/test/blue.c --- ncurses-5.7.orig/test/blue.c 2008-08-03 11:20:27.000000000 -0700 +++ ncurses-5.7/test/blue.c 2009-09-12 08:52:07.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,7 @@ * results, use the ncurses(3) library. On non-Intel machines, SVr4 curses is * just as good. * - * $Id: blue.c,v 1.30 2008/08/03 18:20:27 tom Exp $ + * $Id: blue.c,v 1.31 2009/08/29 19:02:25 tom Exp $ */ #include @@ -353,9 +353,9 @@ } move(PROMPTROW, 0); - standout(); + (void) standout(); (void) printw("Finished deal %d - type any character to continue...", deal_number); - standend(); + (void) standend(); (void) getch(); } @@ -386,7 +386,7 @@ { clear(); (void) printw("You finished the game in %d deals. This is ", deal); - standout(); + (void) standout(); if (deal < 2) (void) addstr("excellent"); else if (deal < 4) @@ -395,7 +395,7 @@ (void) addstr("average"); else (void) addstr("poor"); - standend(); + (void) standend(); (void) addstr(". "); refresh(); } diff -Naur ncurses-5.7.orig/test/bs.c ncurses-5.7/test/bs.c --- ncurses-5.7.orig/test/bs.c 2008-08-03 11:30:28.000000000 -0700 +++ ncurses-5.7/test/bs.c 2009-09-12 08:52: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 * @@ -34,7 +34,7 @@ * v2.0 featuring strict ANSI/POSIX conformance, November 1993. * v2.1 with ncurses mouse support, September 1995 * - * $Id: bs.c,v 1.47 2008/08/03 18:30:28 tom Exp $ + * $Id: bs.c,v 1.48 2009/08/29 19:02:25 tom Exp $ */ #include @@ -374,7 +374,7 @@ for (j = 0; j < BWIDTH; j++) (void) addstr(" . "); #ifdef A_COLOR - attrset(0); + (void) attrset(0); #endif /* A_COLOR */ (void) addch(' '); (void) addch((chtype) (i + 'A')); @@ -392,7 +392,7 @@ for (j = 0; j < BWIDTH; j++) (void) addstr(" . "); #ifdef A_COLOR - attrset(0); + (void) attrset(0); #endif /* A_COLOR */ (void) addch(' '); (void) addch((chtype) (i + 'A')); @@ -773,7 +773,7 @@ #endif /* A_COLOR */ (void) addch(MARK_MISS); #ifdef A_COLOR - attrset(0); + (void) attrset(0); #endif /* A_COLOR */ } else { pgoto(y1, x1); @@ -799,7 +799,7 @@ #endif /* A_COLOR */ (void) addch(SHOWHIT); #ifdef A_COLOR - attrset(0); + (void) attrset(0); #endif /* A_COLOR */ } } @@ -841,7 +841,7 @@ #endif /* A_COLOR */ (void) addch((chtype) hits[PLAYER][curx][cury]); #ifdef A_COLOR - attrset(0); + (void) attrset(0); #endif /* A_COLOR */ prompt(1, "You %s.", hit ? "scored a hit" : "missed"); @@ -971,7 +971,7 @@ #endif /* A_COLOR */ (void) addch((chtype) (hit ? SHOWHIT : SHOWSPLASH)); #ifdef A_COLOR - attrset(0); + (void) attrset(0); #endif /* A_COLOR */ return hit ? (sunk ? S_SUNK : S_HIT) : S_MISS; diff -Naur ncurses-5.7.orig/test/chgat.c ncurses-5.7/test/chgat.c --- ncurses-5.7.orig/test/chgat.c 2008-02-09 15:19:13.000000000 -0800 +++ ncurses-5.7/test/chgat.c 2009-09-12 08:51:54.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 * @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: chgat.c,v 1.8 2008/02/09 23:19:13 tom Exp $ + * $Id: chgat.c,v 1.9 2009/07/15 23:21:04 tom Exp $ * * test-driver for chgat/wchgat/mvchgat/mvwchgat */ @@ -124,10 +124,17 @@ fill_window(WINDOW *win) { int y, x; + int y0 = -1, x0 = -1; getyx(win, y, x); wmove(win, 0, 0); while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) { + int y1, x1; + getyx(win, y1, x1); + if (y1 == y0 && x1 == x0) + break; + x0 = x1; + y0 = y1; } wmove(win, y, x); } 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-09-12 08:52:07.000000000 -0700 @@ -0,0 +1,378 @@ +/**************************************************************************** + * Copyright (c) 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"), 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.4 2009/08/29 19:00:44 tom Exp $ + * + * demonstrate how to use printw without wrapping. + */ + +#include + +#ifdef HAVE_VW_PRINTW + +#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, NCURSES_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; + int y0 = -1, x0 = -1; + + getyx(win, y, x); + wmove(win, 0, 0); + while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) { + int y1, x1; + getyx(win, y1, x1); + if (y1 == y0 && x1 == x0) + break; + x0 = x1; + y0 = y1; + } + 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 */ + (void) 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); +} + +#else +int +main(void) +{ + printf("This program requires the curses vw_printw function\n"); + ExitProgram(EXIT_FAILURE); +} +#endif 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-09-12 08:51:54.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 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 <&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 < 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 < 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 < 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 <&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 <&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 <&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 <&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 <&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 @@ -1718,22 +1719,25 @@ cf_XOPEN_SOURCE=600 CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" ;; +hpux11*) #(vi + CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_XOPEN_SOURCE=500" + ;; hpux*) #(vi CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE" ;; 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:1735: 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 < int main() { @@ -1743,7 +1747,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:1747: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1751: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_gnu_source=no else @@ -1753,7 +1757,7 @@ cf_save="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" cat > conftest.$ac_ext < int main() { @@ -1763,7 +1767,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:1767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_gnu_source=no else @@ -1807,13 +1811,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:1815: 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 < int main() { @@ -1823,7 +1827,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:1827: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1831: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_xopen_source=no else @@ -1833,7 +1837,7 @@ cf_save="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" cat > conftest.$ac_ext < int main() { @@ -1843,7 +1847,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:1847: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1851: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_xopen_source=no else @@ -1898,16 +1902,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:1906: 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}:1912: testing if the symbol is already defined go no further ..." 1>&5 cat > conftest.$ac_ext < int main() { @@ -1917,7 +1921,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:1921: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1925: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_posix_c_source=no else @@ -1939,7 +1943,7 @@ esac if test "$cf_want_posix_source" = yes ; then cat > conftest.$ac_ext < int main() { @@ -1949,7 +1953,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:1953: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -1960,15 +1964,15 @@ rm -f conftest* fi -echo "${as_me-configure}:1964: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5 +echo "${as_me-configure}:1968: 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}:1973: testing if the second compile does not leave our definition intact error ..." 1>&5 cat > conftest.$ac_ext < int main() { @@ -1978,7 +1982,7 @@ #endif ; return 0; } EOF -if { (eval echo configure:1982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:1986: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -2013,12 +2017,12 @@ esac echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:2017: checking for working const" >&5 +echo "configure:2021: 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 <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2075: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -2089,7 +2093,7 @@ echo $ac_n "checking for signal global datatype""... $ac_c" 1>&6 -echo "configure:2093: checking for signal global datatype" >&5 +echo "configure:2097: 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 +2104,7 @@ "int" do cat > conftest.$ac_ext < @@ -2118,7 +2122,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:2126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_sig_atomic_t=$cf_type else @@ -2142,7 +2146,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:2150: 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 +2193,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:2197: 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 +2203,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:2207: 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 +2232,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:2236: checking if this is really Intel C compiler" >&5 cf_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -no-gcc" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2252: \"$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 +2266,7 @@ cat > conftest.$ac_ext <&6 -echo "configure:2285: checking for $CC warning options" >&5 +echo "configure:2288: checking for $CC warning options" >&5 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 configure:2301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:2303: \"$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 +2309,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:2313: checking for $CC warning options" >&5 cf_save_CFLAGS="$CFLAGS" EXTRA_CFLAGS="-W -Wall" cf_warn_CONST="" @@ -2326,7 +2328,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:2332: \"$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 +2336,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}:2343: testing feature is broken in gcc $GCC_VERSION ..." 1>&5 continue;; @@ -2440,8 +2442,9 @@ curses) + echo $ac_n "checking for extra include directories""... $ac_c" 1>&6 -echo "configure:2445: checking for extra include directories" >&5 +echo "configure:2448: 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 +2465,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:2473: 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 +2482,14 @@ ncurses/ncurses.h do cat > conftest.$ac_ext < 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:2493: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_header=$cf_header; break else @@ -2509,17 +2512,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:2516: 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 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:2526: \"$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 +2551,7 @@ echo $ac_n "checking for terminfo header""... $ac_c" 1>&6 -echo "configure:2552: checking for terminfo header" >&5 +echo "configure:2555: 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 +2568,7 @@ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" do cat > conftest.$ac_ext < #include <${cf_cv_ncurses_header-curses.h}> @@ -2575,7 +2578,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:2582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_term_header="$cf_test" @@ -2622,9 +2625,9 @@ esac - + echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 -echo "configure:2628: checking for ncurses version" >&5 +echo "configure:2631: 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 +2653,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:2657: \"$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 +2662,7 @@ else cat > conftest.$ac_ext < @@ -2683,7 +2686,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:2690: \"$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` @@ -2704,19 +2707,19 @@ EOF - + 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:2714: checking if we have identified curses libraries" >&5 cat > conftest.$ac_ext < 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:2723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=yes else @@ -2732,7 +2735,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:2739: 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 +2743,7 @@ ac_save_LIBS="$LIBS" LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2758: \"$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 +2777,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:2781: 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 +2785,7 @@ ac_save_LIBS="$LIBS" LIBS="-lcur_colr $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2800: \"$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 +2819,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:2823: 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 +2827,7 @@ ac_save_LIBS="$LIBS" LIBS="-lHcurses $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2842: \"$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 +2856,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 +2887,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}:2891: testing adding $cf_add_libdir to library-path ..." 1>&5 LDFLAGS="-L$cf_add_libdir $LDFLAGS" @@ -2916,7 +2919,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}:2923: testing adding $cf_add_libdir to library-path ..." 1>&5 LDFLAGS="-L$cf_add_libdir $LDFLAGS" @@ -2946,12 +2949,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:2953: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2981: \"$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 +2998,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:3002: 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 +3006,7 @@ ac_save_LIBS="$LIBS" LIBS="-l$cf_term_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3021: \"$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 +3044,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:3051: 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 +3055,7 @@ ac_save_LIBS="$LIBS" LIBS="-l$cf_curs_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3070: \"$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 +3092,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:3096: checking if we can link with $cf_curs_lib library" >&5 cat > conftest.$ac_ext < 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:3105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=yes else @@ -3114,16 +3117,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:3121: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5 cat > conftest.$ac_ext < 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:3130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=no else @@ -3133,14 +3136,14 @@ LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS" cat > conftest.$ac_ext < 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:3147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=yes else @@ -3159,9 +3162,80 @@ fi + ;; 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:3178: 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 < conftest.$ac_ext < 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:3277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3216,14 +3290,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}:3294: 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 +3309,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:3313: 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 +3320,7 @@ do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_h=$cf_header @@ -3293,13 +3367,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:3371: 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 +3462,7 @@ } + test "$includedir" != NONE && \ test "$includedir" != "/usr/include" && \ test -d "$includedir" && { @@ -3376,6 +3477,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 +3502,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 < 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:3519: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3430,14 +3532,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}:3536: 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 +3554,7 @@ do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_ncurses_h2=$cf_header @@ -3525,20 +3627,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 < 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:3644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -3555,14 +3657,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}:3661: 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 +3705,7 @@ echo $ac_n "checking for terminfo header""... $ac_c" 1>&6 -echo "configure:3607: checking for terminfo header" >&5 +echo "configure:3709: 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 +3722,7 @@ for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" do cat > conftest.$ac_ext < #include <${cf_cv_ncurses_header-curses.h}> @@ -3630,7 +3732,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:3736: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_cv_term_header="$cf_test" @@ -3685,7 +3787,7 @@ echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 -echo "configure:3689: checking for ncurses version" >&5 +echo "configure:3791: 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 +3813,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:3817: \"$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 +3822,7 @@ else cat > conftest.$ac_ext < @@ -3744,7 +3846,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:3850: \"$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 +3868,7 @@ - + cf_nculib_root=ncurses # This works, except for the special case where we find gpm, but @@ -3775,7 +3877,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:3881: 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 +3885,7 @@ ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3900: \"$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 +3912,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:3916: 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 +3920,7 @@ ac_save_LIBS="$LIBS" LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3935: \"$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 +3963,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:3967: 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 +3971,7 @@ ac_save_LIBS="$LIBS" LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3986: \"$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 +4030,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}:4034: testing adding $cf_add_libdir to library-path ..." 1>&5 LDFLAGS="-L$cf_add_libdir $LDFLAGS" @@ -3943,12 +4045,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:4049: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4077: \"$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 +4093,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:4097: checking for initscr in -l$cf_nculib_root" >&5 LIBS="-l$cf_nculib_root $LIBS" cat > conftest.$ac_ext < 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:4107: \"$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 +4113,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 +4202,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:4212: 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 < 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:4222: \"$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 +4249,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:4253: 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 +4258,14 @@ fi done cat > conftest.$ac_ext < 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:4269: \"$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 +4286,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:4298: 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 < @@ -4175,198 +4309,82 @@ 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:4313: \"$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 < -int main() { -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 - rm -rf conftest* - cf_cv_utf8_lib=add-on -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - cf_cv_utf8_lib=no -fi -rm -f conftest* - LIBS="$cf_save_LIBS" - -fi -rm -f conftest* -fi - -echo "$ac_t""$cf_cv_utf8_lib" 1>&6 - -# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between -# ncurses/ncursesw: -if test "$cf_cv_utf8_lib" = "add-on" ; then - cat >> confdefs.h <<\EOF -#define HAVE_LIBUTF8_H 1 -EOF + - LIBS="-lutf8 $LIBS" -fi +# 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= - -cf_ncuhdr_root=ncursesw +echo "${as_me-configure}:4328: testing Starting FIND_LINKAGE(utf8,) ..." 1>&5 -test -n "$cf_cv_curses_dir" && \ -test "$cf_cv_curses_dir" != "no" && { \ - -if test -n "$cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then - for cf_add_incdir in $cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root - 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 < conftest.$ac_ext < + +#include int main() { -printf("Hello") +putwc(0,0); ; return 0; } EOF -if { (eval echo configure:4262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - : +if { (eval echo configure:4340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + cf_cv_find_linkage_utf8=yes 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 + + cf_cv_find_linkage_utf8=no - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + test -n "$verbose" && echo " find linkage for utf8 library" 1>&6 -echo "${as_me-configure}:4279: testing adding $cf_add_incdir to include-path ..." 1>&5 +echo "${as_me-configure}:4352: testing find linkage for utf8 library ..." 1>&5 - CPPFLAGS="-I$cf_add_incdir $CPPFLAGS" + +echo "${as_me-configure}:4356: testing Searching for headers in FIND_LINKAGE(utf8,) ..." 1>&5 - 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 -} + cf_save_CPPFLAGS="$CPPFLAGS" + cf_test_CPPFLAGS="$CPPFLAGS" -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 -if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - - cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h" - ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h" - for cf_header in $cf_header_list + +cf_header_path_list="" +if test -n "${CFLAGS}${CPPFLAGS}" ; then + for cf_header_path in $CPPFLAGS $CFLAGS do - - cat > conftest.$ac_ext < -int main() { - -#ifdef NCURSES_VERSION - -#ifndef WACS_BSSB - make an error -#endif - -printf("%s\n", NCURSES_VERSION); -#else -#ifdef __NCURSES_H -printf("old\n"); -#else - make an error -#endif -#endif - - -; return 0; } -EOF -if { (eval echo configure:4338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - cf_cv_ncurses_h=$cf_header - -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - cf_cv_ncurses_h=no -fi -rm -f conftest* + 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" +} - test "$cf_cv_ncurses_h" != no && break + cf_header_path_list="$cf_header_path_list $cf_search" + ;; + esac done - fi -echo "$ac_t""$cf_cv_ncurses_h" 1>&6 - - - -if test "$cf_cv_ncurses_h" != no ; then - cf_cv_ncurses_header=$cf_cv_ncurses_h -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 -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_search="" test "/usr" != "$prefix" && \ @@ -4374,10 +4392,10 @@ (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/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root" - test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include" - test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include" - test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root" + 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" } @@ -4386,10 +4404,10 @@ { test -n "$verbose" && echo " ... testing for include-directories under $prefix" test -d $prefix/include && cf_search="$cf_search $prefix/include" - test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root" - test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include" - test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include" - test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" + 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" } @@ -4398,10 +4416,10 @@ (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/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root" - test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include" - test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include" - test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root" + 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" } @@ -4410,10 +4428,10 @@ (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/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root" - test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include" - test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include" - test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root" + 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" } @@ -4422,160 +4440,254 @@ (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/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root" - test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include" - test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include" - test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root" + 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/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root" + 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/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root" + test -d $oldincludedir/utf8 && cf_search="$cf_search $oldincludedir/utf8" } +cf_search="$cf_header_path_list $cf_search" - test -n "$verbose" && echo search path $cf_search - cf_save2_CPPFLAGS="$CPPFLAGS" - for cf_incdir in $cf_search - do - -if test -n "$cf_incdir" ; then - for cf_add_incdir in $cf_incdir - 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 + 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 - 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 <&5 + + + CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_utf8" + cat > conftest.$ac_ext < + +#include int main() { -printf("Hello") +putwc(0,0); ; return 0; } EOF -if { (eval echo configure:4484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - : +if { (eval echo configure:4486: \"$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}:4491: 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* - cf_have_incdir=yes + + CPPFLAGS="$cf_save_CPPFLAGS" + fi rm -f conftest* - CPPFLAGS=$cf_save_CPPFLAGS - fi - fi - fi + fi + done - if test "$cf_have_incdir" = no ; then - test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 + if test "$cf_cv_find_linkage_utf8" = maybe ; then -echo "${as_me-configure}:4501: testing adding $cf_add_incdir to include-path ..." 1>&5 + +echo "${as_me-configure}:4512: testing Searching for utf8 library in FIND_LINKAGE(utf8,) ..." 1>&5 - CPPFLAGS="-I$cf_add_incdir $CPPFLAGS" + cf_save_LIBS="$LIBS" + cf_save_LDFLAGS="$LDFLAGS" - 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 + + + 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 - done fi - for cf_header in \ - ncurses.h \ - curses.h - do - - cat > conftest.$ac_ext < -int main() { +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" +} -#ifdef NCURSES_VERSION -printf("%s\n", NCURSES_VERSION); -#else -#ifdef __NCURSES_H -printf("old\n"); -#else - make an error -#endif -#endif - - +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}:4618: 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 < +int main() { +putwc(0,0); ; return 0; } EOF -if { (eval echo configure:4544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - cf_cv_ncurses_h2=$cf_header - + + test -n "$verbose" && echo " ... found utf8 library in $cf_cv_library_path_utf8" 1>&6 + +echo "${as_me-configure}:4638: 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* - cf_cv_ncurses_h2=no + + 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_ncurses_h2" != no ; then - cf_cv_ncurses_h2=$cf_incdir/$cf_header - test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6 - break - fi - test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6 - done - CPPFLAGS="$cf_save2_CPPFLAGS" - test "$cf_cv_ncurses_h2" != no && break - done - test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; } - +if test "$cf_cv_find_linkage_utf8" = yes ; then +cf_cv_utf8_lib=add-on +else +cf_cv_utf8_lib=no fi -echo "$ac_t""$cf_cv_ncurses_h2" 1>&6 - cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'` - cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2` - if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then - cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header - fi +fi +rm -f conftest* +fi + +echo "$ac_t""$cf_cv_utf8_lib" 1>&6 + +# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between +# ncurses/ncursesw: +if test "$cf_cv_utf8_lib" = "add-on" ; then + cat >> confdefs.h <<\EOF +#define HAVE_LIBUTF8_H 1 +EOF + -if test -n "$cf_1st_incdir" ; then - for cf_add_incdir in $cf_1st_incdir +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 @@ -4592,20 +4704,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 < 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:4721: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then : else echo "configure: failed program was:" >&5 @@ -4622,14 +4734,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}:4738: 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 @@ -4638,738 +4750,778 @@ 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 -fi - -# Set definitions to allow ifdef'ing for ncurses.h - -case $cf_cv_ncurses_header in # (vi -*ncurses.h) - cat >> confdefs.h <<\EOF -#define HAVE_NCURSES_H 1 -EOF - - ;; -esac - -case $cf_cv_ncurses_header in # (vi -ncurses/curses.h|ncurses/ncurses.h) - cat >> confdefs.h <<\EOF -#define HAVE_NCURSES_NCURSES_H 1 -EOF +echo "${as_me-configure}:4774: testing adding $cf_add_libdir to library-path ..." 1>&5 - ;; -ncursesw/curses.h|ncursesw/ncurses.h) - cat >> confdefs.h <<\EOF -#define HAVE_NCURSESW_NCURSES_H 1 -EOF - ;; -esac + LDFLAGS="-L$cf_add_libdir $LDFLAGS" + fi + fi + done +fi + LIBS="-lutf8 $LIBS" +fi + +cf_ncuconfig_root=ncursesw -echo $ac_n "checking for terminfo header""... $ac_c" 1>&6 -echo "configure:4674: 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 - -case ${cf_cv_ncurses_header} in #(vi -*/ncurses.h|*/ncursesw.h) #(vi - cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` - ;; -*) - cf_term_header=term.h - ;; -esac - -for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" +echo "Looking for ${cf_ncuconfig_root}-config" +for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config do -cat > conftest.$ac_ext < -#include <${cf_cv_ncurses_header-curses.h}> -#include <$cf_test> - -int main() { -int x = auto_left_margin -; return 0; } -EOF -if { (eval echo configure:4701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - - cf_cv_term_header="$cf_test" +# 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:4795: 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 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - - cf_cv_term_header=unknown - + 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 -rm -f conftest* - test "$cf_cv_term_header" != unknown && break -done - +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 -echo "$ac_t""$cf_cv_term_header" 1>&6 +test -n "$NCURSES_CONFIG" && break +done +test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none" -# Set definitions to allow ifdef'ing to accommodate subdirectories -case $cf_cv_term_header in # (vi -*term.h) - cat >> confdefs.h <<\EOF -#define HAVE_TERM_H 1 -EOF +if test "$NCURSES_CONFIG" != none ; then - ;; -esac +cf_cv_ncurses_header=curses.h -case $cf_cv_term_header in # (vi -ncurses/term.h) #(vi - cat >> confdefs.h <<\EOF -#define HAVE_NCURSES_TERM_H 1 -EOF +CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`" +LIBS="`$NCURSES_CONFIG --libs` $LIBS" - ;; -ncursesw/term.h) - cat >> confdefs.h <<\EOF -#define HAVE_NCURSESW_TERM_H 1 +cat >> confdefs.h <<\EOF +#define NCURSES 1 EOF - ;; -esac -# some applications need this, but should check for NCURSES_VERSION -cat >> confdefs.h <<\EOF -#define NCURSES 1 +cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +cat >> confdefs.h <&6 -echo "configure:4756: 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 - - cf_cv_ncurses_version=no - cf_tempfile=out$$ - rm -f $cf_tempfile - if test "$cross_compiling" = yes; then - - # This will not work if the preprocessor splits the line after the - # Autoconf token. The 'unproto' program does that. - cat > conftest.$ac_ext < -#undef Autoconf -#ifdef NCURSES_VERSION -Autoconf NCURSES_VERSION -#else -#ifdef __NCURSES_H -Autoconf "old" -#endif -; -#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; } - 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" - rm -f conftest.out - fi -else - cat > conftest.$ac_ext < +cf_ncuhdr_root=ncursesw + +test -n "$cf_cv_curses_dir" && \ +test "$cf_cv_curses_dir" != "no" && { \ + +if test -n "$cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then + for cf_add_incdir in $cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root + 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 < -int main() -{ - FILE *fp = fopen("$cf_tempfile", "w"); -#ifdef NCURSES_VERSION -# ifdef NCURSES_VERSION_PATCH - fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH); -# else - fprintf(fp, "%s\n", NCURSES_VERSION); -# endif -#else -# ifdef __NCURSES_H - fprintf(fp, "old\n"); -# else - make an error -# endif -#endif - ${cf_cv_main_return-return}(0); -} +int main() { +printf("Hello") +; 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 -then - - cf_cv_ncurses_version=`cat $cf_tempfile` +if { (eval echo configure:4894: \"$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 -fr conftest* -fi +rm -f conftest* + CPPFLAGS=$cf_save_CPPFLAGS + fi + fi + fi - rm -f $cf_tempfile + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 -fi +echo "${as_me-configure}:4911: testing adding $cf_add_incdir to include-path ..." 1>&5 -echo "$ac_t""$cf_cv_ncurses_version" 1>&6 -test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF -#define NCURSES 1 -EOF + 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 - +} -cf_nculib_root=ncursesw - # This works, except for the special case where we find gpm, but - # ncurses is in a nonstandard location via $LIBS, and we really want - # to link gpm. -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 -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 "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6 +echo "configure:4930: 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 - ac_save_LIBS="$LIBS" -LIBS="-lgpm $LIBS" -cat > conftest.$ac_ext < conftest.$ac_ext < int main() { -Gpm_Open() + +#ifdef NCURSES_VERSION + +#ifndef WACS_BSSB + make an error +#endif + +printf("%s\n", NCURSES_VERSION); +#else +#ifdef __NCURSES_H +printf("old\n"); +#else + make an error +#endif +#endif + + ; 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:4970: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" + cf_cv_ncurses_h=$cf_header + else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" + cf_cv_ncurses_h=no fi rm -f conftest* -LIBS="$ac_save_LIBS" + + test "$cf_cv_ncurses_h" != no && break + done fi -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 -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 -else - ac_save_LIBS="$LIBS" -LIBS="-lgpm $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - LIBS="$cf_ncurses_SAVE" -else - echo "$ac_t""no" 1>&6 -cf_ncurses_LIBS="-lgpm" -fi - -else - echo "$ac_t""no" 1>&6 -fi +echo "$ac_t""$cf_cv_ncurses_h" 1>&6 -case $host_os in #(vi -freebsd*) - # This is only necessary if you are linking against an obsolete - # 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 -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 -else - ac_save_LIBS="$LIBS" -LIBS="-lmytinfo $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" +if test "$cf_cv_ncurses_h" != no ; then + cf_cv_ncurses_header=$cf_cv_ncurses_h else - echo "$ac_t""no" 1>&6 -fi - - fi - ;; -esac - -LIBS="$cf_ncurses_LIBS $LIBS" - -if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" ) -then - -if test -n "$cf_cv_curses_dir/lib" ; then - for cf_add_libdir in $cf_cv_curses_dir/lib - 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}:4999: testing adding $cf_add_libdir to library-path ..." 1>&5 - - - LDFLAGS="-L$cf_add_libdir $LDFLAGS" - fi - fi - done -fi - - LIBS="-l$cf_nculib_root $LIBS" -else - - 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 -if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then +echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6 +echo "configure:4996: 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 - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char initscr(); - -int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_initscr) || defined (__stub___initscr) -choke me -#else -initscr(); -#endif + + test -n "$verbose" && echo + +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" +} -; return 0; } -EOF -if { (eval echo configure:5042: \"$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 - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_initscr=no" -fi -rm -f conftest* + cf_header_path_list="$cf_header_path_list $cf_search" + ;; + esac + done fi -if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then - echo "$ac_t""yes" 1>&6 - eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' -else - echo "$ac_t""no" 1>&6 - - 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 - LIBS="-l$cf_nculib_root $LIBS" - cat > conftest.$ac_ext < -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 - rm -rf conftest* - echo "$ac_t""yes" 1>&6 - eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' - -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - echo "$ac_t""no" 1>&6 - cf_search="" +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/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root" - test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib" - test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib" - test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root" + test -n "$verbose" && echo " ... testing for include-directories under /usr" + test -d /usr/include && cf_search="$cf_search /usr/include" + test -d /usr/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root" + test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include" + test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include" + test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root" } 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/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root" - test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib" - test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib" - test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root" + test -n "$verbose" && echo " ... testing for include-directories under $prefix" + test -d $prefix/include && cf_search="$cf_search $prefix/include" + test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root" + test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include" + test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include" + test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root" } 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/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root" - test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib" - test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib" - test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root" + 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/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root" + test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include" + test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include" + test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root" } 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/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root" - test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib" - test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib" - test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root" + test -n "$verbose" && echo " ... testing for include-directories under /opt" + test -d /opt/include && cf_search="$cf_search /opt/include" + test -d /opt/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root" + test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include" + test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include" + test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root" } 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/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root" - test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib" - test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib" - test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root" + test -n "$verbose" && echo " ... testing for include-directories under $HOME" + test -d $HOME/include && cf_search="$cf_search $HOME/include" + test -d $HOME/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root" + test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include" + test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include" + test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root" } - 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 - LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS" - cat > conftest.$ac_ext < conftest.$ac_ext < +#include int main() { -initscr() +printf("Hello") ; return 0; } EOF -if { (eval echo configure:5158: \"$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' - break +if { (eval echo configure:5144: \"$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* - echo "$ac_t""no" 1>&6 - LIBS="$cf_save_LIBS" -fi -rm -f conftest* - done - + cf_have_incdir=yes fi rm -f conftest* - -fi + CPPFLAGS=$cf_save_CPPFLAGS + fi + fi + fi -eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root + if test "$cf_have_incdir" = no ; then + test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6 -if test $cf_found_library = no ; then - { echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; } -fi +echo "${as_me-configure}:5161: testing adding $cf_add_incdir to include-path ..." 1>&5 -fi + CPPFLAGS="$CPPFLAGS -I$cf_add_incdir" -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 - cf_ncurses_SAVE="$LIBS" - for p in $cf_ncurses_LIBS ; do - q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"` - if test "$q" != "$LIBS" ; then - LIBS="$q" + 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 + + for cf_header in \ + ncurses.h \ + curses.h + do + cat > conftest.$ac_ext < + + +#include <$cf_header> int main() { -initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); + +#ifdef NCURSES_VERSION + +printf("%s\n", NCURSES_VERSION); +#else +#ifdef __NCURSES_H +printf("old\n"); +#else + make an error +#endif +#endif + + ; 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:5204: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - echo "$ac_t""yes" 1>&6 + cf_cv_ncurses_h2=$cf_header + else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - echo "$ac_t""no" 1>&6 - LIBS="$cf_ncurses_SAVE" + cf_cv_ncurses_h2=no fi rm -f conftest* -fi - - -cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - -cat >> confdefs.h <&6 + break + fi + test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6 + done + CPPFLAGS="$cf_save2_CPPFLAGS" + test "$cf_cv_ncurses_h2" != no && break + done + test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; } + +fi - ;; -pdcurses) #(vi - if test "$no_x" = yes; then - # Not all programs may use this symbol, but it does not hurt to define it. - cat >> confdefs.h <<\EOF -#define X_DISPLAY_MISSING 1 -EOF +echo "$ac_t""$cf_cv_ncurses_h2" 1>&6 - X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= -else - if test -n "$x_includes"; then - X_CFLAGS="$X_CFLAGS -I$x_includes" - fi + cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'` + cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2` + if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then + cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header + fi + +if test -n "$cf_1st_incdir" ; then + for cf_add_incdir in $cf_1st_incdir + 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 - # It would also be nice to do this for all -L options, not just this one. - if test -n "$x_libraries"; then - X_LIBS="$X_LIBS -L$x_libraries" - # For Solaris; some versions of Sun CC require a space after -R and - # others require no space. Words are not sufficient . . . . - 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 - ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" - cat > conftest.$ac_ext < conftest.$ac_ext < int main() { - +printf("Hello") ; return 0; } EOF -if { (eval echo configure:5258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - ac_R_nospace=yes +if { (eval echo configure:5269: \"$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* - ac_R_nospace=no + cf_have_incdir=yes fi rm -f conftest* - if test $ac_R_nospace = yes; then - echo "$ac_t""no" 1>&6 - X_LIBS="$X_LIBS -R$x_libraries" - else - LIBS="$ac_xsave_LIBS -R $x_libraries" - cat > conftest.$ac_ext <&6 -; return 0; } -EOF -if { (eval echo configure:5281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - ac_R_space=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_R_space=no +echo "${as_me-configure}:5286: 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 -rm -f conftest* - if test $ac_R_space = yes; then - echo "$ac_t""yes" 1>&6 - X_LIBS="$X_LIBS -R $x_libraries" - else - echo "$ac_t""neither works" 1>&6 - fi - fi - LIBS="$ac_xsave_LIBS" - esac - fi - # Check for system-dependent libraries X programs must link with. - # Do this before checking for the system-independent R6 libraries - # (-lICE), since we may need -lsocket or whatever for X linking. - if test "$ISC" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" - else - # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X - # 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 -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 +fi + +# Set definitions to allow ifdef'ing for ncurses.h + +case $cf_cv_ncurses_header in # (vi +*ncurses.h) + cat >> confdefs.h <<\EOF +#define HAVE_NCURSES_H 1 +EOF + + ;; +esac + +case $cf_cv_ncurses_header in # (vi +ncurses/curses.h|ncurses/ncurses.h) + cat >> confdefs.h <<\EOF +#define HAVE_NCURSES_NCURSES_H 1 +EOF + + ;; +ncursesw/curses.h|ncursesw/ncurses.h) + cat >> confdefs.h <<\EOF +#define HAVE_NCURSESW_NCURSES_H 1 +EOF + + ;; +esac + + + +echo $ac_n "checking for terminfo header""... $ac_c" 1>&6 +echo "configure:5334: 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 - ac_save_LIBS="$LIBS" -LIBS="-ldnet $LIBS" + +case ${cf_cv_ncurses_header} in #(vi +*/ncurses.h|*/ncursesw.h) #(vi + cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'` + ;; +*) + cf_term_header=term.h + ;; +esac + +for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h" +do cat > conftest.$ac_ext < +#include <${cf_cv_ncurses_header-curses.h}> +#include <$cf_test> int main() { -dnet_ntoa() +int x = auto_left_margin ; 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:5361: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" + + cf_cv_term_header="$cf_test" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" + + cf_cv_term_header=unknown + fi rm -f conftest* -LIBS="$ac_save_LIBS" + test "$cf_cv_term_header" != unknown && break +done fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" + +echo "$ac_t""$cf_cv_term_header" 1>&6 + +# Set definitions to allow ifdef'ing to accommodate subdirectories + +case $cf_cv_term_header in # (vi +*term.h) + cat >> confdefs.h <<\EOF +#define HAVE_TERM_H 1 +EOF + + ;; +esac + +case $cf_cv_term_header in # (vi +ncurses/term.h) #(vi + cat >> confdefs.h <<\EOF +#define HAVE_NCURSES_TERM_H 1 +EOF + + ;; +ncursesw/term.h) + cat >> confdefs.h <<\EOF +#define HAVE_NCURSESW_TERM_H 1 +EOF + + ;; +esac + + +# some applications need this, but should check for NCURSES_VERSION +cat >> confdefs.h <<\EOF +#define NCURSES 1 +EOF + + + +echo $ac_n "checking for ncurses version""... $ac_c" 1>&6 +echo "configure:5416: 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 - echo "$ac_t""no" 1>&6 + + cf_cv_ncurses_version=no + cf_tempfile=out$$ + rm -f $cf_tempfile + if test "$cross_compiling" = yes; then + + + # This will not work if the preprocessor splits the line after the + # Autoconf token. The 'unproto' program does that. + cat > conftest.$ac_ext < +#undef Autoconf +#ifdef NCURSES_VERSION +Autoconf NCURSES_VERSION +#else +#ifdef __NCURSES_H +Autoconf "old" +#endif +; +#endif +EOF + cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out" + { (eval echo configure:5442: \"$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" + rm -f conftest.out + fi + +else + cat > conftest.$ac_ext < +#include +int main() +{ + FILE *fp = fopen("$cf_tempfile", "w"); +#ifdef NCURSES_VERSION +# ifdef NCURSES_VERSION_PATCH + fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH); +# else + fprintf(fp, "%s\n", NCURSES_VERSION); +# endif +#else +# ifdef __NCURSES_H + fprintf(fp, "old\n"); +# else + make an error +# endif +#endif + ${cf_cv_main_return-return}(0); +} +EOF +if { (eval echo configure:5475: \"$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` +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -fr conftest* fi - 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 -ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` + rm -f $cf_tempfile + +fi + +echo "$ac_t""$cf_cv_ncurses_version" 1>&6 +test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF +#define NCURSES 1 +EOF + + + + + +cf_nculib_root=ncursesw + # This works, except for the special case where we find gpm, but + # ncurses is in a nonstandard location via $LIBS, and we really want + # to link gpm. +cf_ncurses_LIBS="" +cf_ncurses_SAVE="$LIBS" +echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6 +echo "configure:5506: 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 else ac_save_LIBS="$LIBS" -LIBS="-ldnet_stub $LIBS" +LIBS="-lgpm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5525: \"$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 @@ -5384,89 +5536,78 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" -else - echo "$ac_t""no" 1>&6 -fi - - fi - - # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, - # to get the SysV transport functions. - # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4) - # needs -lnsl. - # 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 -if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then + echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6 +echo "configure:5541: 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 else - cat > conftest.$ac_ext < conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char gethostbyname(); +char initscr(); int main() { - -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) -choke me -#else -gethostbyname(); -#endif - +initscr() ; 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:5560: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_gethostbyname=yes" + eval "ac_cv_lib_$ac_lib_var=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_gethostbyname=no" + eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* -fi +LIBS="$ac_save_LIBS" -if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - : + LIBS="$cf_ncurses_SAVE" else echo "$ac_t""no" 1>&6 +cf_ncurses_LIBS="-lgpm" fi - 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 -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 +else + echo "$ac_t""no" 1>&6 +fi + + +case $host_os in #(vi +freebsd*) + # This is only necessary if you are linking against an obsolete + # 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:5592: 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 else ac_save_LIBS="$LIBS" -LIBS="-lnsl $LIBS" +LIBS="-lmytinfo $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5611: \"$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 @@ -5481,182 +5622,405 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" + cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS" else echo "$ac_t""no" 1>&6 fi + fi + ;; +esac + +LIBS="$cf_ncurses_LIBS $LIBS" + +if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" ) +then + +if test -n "$cf_cv_curses_dir/lib" ; then + for cf_add_libdir in $cf_cv_curses_dir/lib + 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}:5659: testing adding $cf_add_libdir to library-path ..." 1>&5 + + + LDFLAGS="-L$cf_add_libdir $LDFLAGS" + fi fi + done +fi - # lieder@skyler.mavd.honeywell.com says without -lsocket, - # socket/setsockopt and other routines are undefined under SCO ODT - # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary - # on later versions), says simon@lia.di.epfl.ch: it contains - # gethostby* variants that don't use the nameserver (or something). - # -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 -if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then + LIBS="-l$cf_nculib_root $LIBS" +else + + eval 'cf_cv_have_lib_'$cf_nculib_root'=no' + cf_libdir="" + echo $ac_n "checking for initscr""... $ac_c" 1>&6 +echo "configure:5674: 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 < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char connect(); +char initscr(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_connect) || defined (__stub___connect) +#if defined (__stub_initscr) || defined (__stub___initscr) choke me #else -connect(); +initscr(); #endif ; 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:5702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_connect=yes" + eval "ac_cv_func_initscr=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_connect=no" + eval "ac_cv_func_initscr=no" fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then +if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then echo "$ac_t""yes" 1>&6 - : + eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' else echo "$ac_t""no" 1>&6 -fi - 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 -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 -else - ac_save_LIBS="$LIBS" -LIBS="-lsocket $X_EXTRA_LIBS $LIBS" -cat > conftest.$ac_ext <&6 +echo "configure:5722: checking for initscr in -l$cf_nculib_root" >&5 + LIBS="-l$cf_nculib_root $LIBS" + cat > conftest.$ac_ext < int main() { -connect() +initscr() ; 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:5732: \"$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" + echo "$ac_t""yes" 1>&6 + eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" -else echo "$ac_t""no" 1>&6 + +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 - fi +cf_search="" - # 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 -if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char remove(); -int main() { +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/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root" + test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib" + test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib" + test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root" +} + + +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/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root" + test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib" + test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib" + test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root" +} + + +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/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root" + test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib" + test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib" + test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root" +} + + +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/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root" + test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib" + test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib" + test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root" +} + + +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/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root" + test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib" + test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib" + test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root" +} + -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_remove) || defined (__stub___remove) -choke me -#else -remove(); -#endif +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:5837: 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 < +int main() { +initscr() ; 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:5847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_remove=yes" + echo "$ac_t""yes" 1>&6 + eval 'cf_cv_have_lib_'$cf_nculib_root'=yes' + break else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_remove=no" + echo "$ac_t""no" 1>&6 + LIBS="$cf_save_LIBS" +fi +rm -f conftest* + done + fi rm -f conftest* + fi -if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then - echo "$ac_t""yes" 1>&6 - : -else - echo "$ac_t""no" 1>&6 +eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root + +if test $cf_found_library = no ; then + { echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; } fi - 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 -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 -else - ac_save_LIBS="$LIBS" -LIBS="-lposix $LIBS" -cat > conftest.$ac_ext <&6 +echo "configure:5878: 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$%%"` + if test "$q" != "$LIBS" ; then + LIBS="$q" + fi + done + cat > conftest.$ac_ext < +int main() { +initscr(); mousemask(0,0); tgoto((char *)0, 0, 0); +; return 0; } +EOF +if { (eval echo configure:5894: \"$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 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 + LIBS="$cf_ncurses_SAVE" +fi +rm -f conftest* +fi + + +cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +cat >> confdefs.h <> confdefs.h <<\EOF +#define X_DISPLAY_MISSING 1 +EOF + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + 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:5940: checking whether -R must be followed by a space" >&5 + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_nospace=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_nospace=no +fi +rm -f conftest* + if test $ac_R_nospace = yes; then + echo "$ac_t""no" 1>&6 + X_LIBS="$X_LIBS -R$x_libraries" + else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_space=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_space=no +fi +rm -f conftest* + if test $ac_R_space = yes; then + echo "$ac_t""yes" 1>&6 + X_LIBS="$X_LIBS -R $x_libraries" + else + echo "$ac_t""neither works" 1>&6 + fi + fi + LIBS="$ac_xsave_LIBS" + esac + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X + # 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:6005: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6024: \"$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 @@ -5671,84 +6035,130 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +else + echo "$ac_t""no" 1>&6 +fi + + 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:6046: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet_stub $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" else echo "$ac_t""no" 1>&6 fi fi - # 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 -if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # 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:6094: 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 < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char shmat(); +char gethostbyname(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_shmat) || defined (__stub___shmat) +#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) choke me #else -shmat(); +gethostbyname(); #endif ; 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:6122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_shmat=yes" + eval "ac_cv_func_gethostbyname=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_shmat=no" + eval "ac_cv_func_gethostbyname=no" fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then +if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then echo "$ac_t""yes" 1>&6 : else echo "$ac_t""no" 1>&6 fi - 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 -ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` + if test $ac_cv_func_gethostbyname = no; then + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +echo "configure:6143: 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 else ac_save_LIBS="$LIBS" -LIBS="-lipc $LIBS" +LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6162: \"$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 @@ -5763,269 +6173,182 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" else echo "$ac_t""no" 1>&6 fi fi - fi - # Check for libraries that X11R6 Xt/Xaw programs need. - ac_save_LDFLAGS="$LDFLAGS" - test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" - # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to - # check for ICE first), but we must link in the order -lSM -lICE or - # we get undefined symbols. So assume we have SM if we have ICE. - # These have to be linked with before -lX11, unlike the other - # 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 -ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says simon@lia.di.epfl.ch: it contains + # gethostby* variants that don't use the nameserver (or something). + # -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:6192: checking for connect" >&5 +if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - ac_save_LIBS="$LIBS" -LIBS="-lICE $X_EXTRA_LIBS $LIBS" -cat > conftest.$ac_ext < conftest.$ac_ext < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char IceConnectionNumber(); +char connect(); int main() { -IceConnectionNumber() + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_connect) || defined (__stub___connect) +choke me +#else +connect(); +#endif + ; 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:6220: \"$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" + eval "ac_cv_func_connect=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" + eval "ac_cv_func_connect=no" fi rm -f conftest* -LIBS="$ac_save_LIBS" - fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + +if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then echo "$ac_t""yes" 1>&6 - X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" + : else echo "$ac_t""no" 1>&6 fi - LDFLAGS="$ac_save_LDFLAGS" - -fi - - - - - -# SYSTEM_NAME=`echo "$cf_cv_system_name"|tr ' ' -` - -cf_have_X_LIBS=no - -LDFLAGS="$X_LIBS $LDFLAGS" - -test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6 - -echo "${as_me-configure}:5840: testing checking additions to CFLAGS ..." 1>&5 - - -cf_check_cflags="$CFLAGS" -cf_check_cppflags="$CPPFLAGS" - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $X_CFLAGS -do -case $cf_fix_cppflags in -no) - case $cf_add_cflags in #(vi - -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi - case $cf_add_cflags in - -D*) - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test $cf_fix_cppflags = yes ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - fi - ;; - esac - case "$CPPFLAGS" in - *$cf_add_cflags) #(vi - ;; - *) #(vi - cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" - ;; - esac - ;; - *) - cf_new_cflags="$cf_new_cflags $cf_add_cflags" - ;; - esac - ;; -yes) - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -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 - - - CFLAGS="$CFLAGS $cf_new_cflags" -fi - -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 - - - CPPFLAGS="$cf_new_cppflags $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 - - - EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" -fi - - - - -if test "$cf_check_cflags" != "$CFLAGS" ; then + if test $ac_cv_func_connect = no; then + echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 +echo "configure:6241: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char connect(); + int main() { -printf("Hello world"); +connect() ; 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:6260: \"$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 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 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 - - - 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 - - - fi - CFLAGS="$cf_check_flags" + eval "ac_cv_lib_$ac_lib_var=no" fi rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +else + echo "$ac_t""no" 1>&6 fi + fi -echo $ac_n "checking for XOpenDisplay""... $ac_c" 1>&6 -echo "configure:5963: checking for XOpenDisplay" >&5 -if eval "test \"`echo '$''{'ac_cv_func_XOpenDisplay'+set}'`\" = set"; then + # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. + echo $ac_n "checking for remove""... $ac_c" 1>&6 +echo "configure:6284: 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 < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char XOpenDisplay(); +char remove(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_XOpenDisplay) || defined (__stub___XOpenDisplay) +#if defined (__stub_remove) || defined (__stub___remove) choke me #else -XOpenDisplay(); +remove(); #endif ; 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:6312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_XOpenDisplay=yes" + eval "ac_cv_func_remove=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_XOpenDisplay=no" + eval "ac_cv_func_remove=no" fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'XOpenDisplay`\" = yes"; then +if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then echo "$ac_t""yes" 1>&6 : else echo "$ac_t""no" 1>&6 +fi -echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:6010: checking for XOpenDisplay in -lX11" >&5 -ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'` + if test $ac_cv_func_remove = no; then + echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 +echo "configure:6333: 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 else ac_save_LIBS="$LIBS" -LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" +LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6352: \"$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 @@ -6040,82 +6363,84 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIBS="-lX11 $LIBS" + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" else echo "$ac_t""no" 1>&6 fi -fi - + fi -echo $ac_n "checking for XtAppInitialize""... $ac_c" 1>&6 -echo "configure:6053: checking for XtAppInitialize" >&5 -if eval "test \"`echo '$''{'ac_cv_func_XtAppInitialize'+set}'`\" = set"; then + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + echo $ac_n "checking for shmat""... $ac_c" 1>&6 +echo "configure:6376: 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 < /* Override any gcc2 internal prototype to avoid an error. */ /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ -char XtAppInitialize(); +char shmat(); int main() { /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ -#if defined (__stub_XtAppInitialize) || defined (__stub___XtAppInitialize) +#if defined (__stub_shmat) || defined (__stub___shmat) choke me #else -XtAppInitialize(); +shmat(); #endif ; 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:6404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_func_XtAppInitialize=yes" + eval "ac_cv_func_shmat=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_XtAppInitialize=no" + eval "ac_cv_func_shmat=no" fi rm -f conftest* fi -if eval "test \"`echo '$ac_cv_func_'XtAppInitialize`\" = yes"; then +if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then echo "$ac_t""yes" 1>&6 : else echo "$ac_t""no" 1>&6 +fi -echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6 -echo "configure:6100: checking for XtAppInitialize in -lXt" >&5 -ac_lib_var=`echo Xt'_'XtAppInitialize | sed 'y%./+-%__p_%'` + if test $ac_cv_func_shmat = no; then + echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 +echo "configure:6425: 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 else ac_save_LIBS="$LIBS" -LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" +LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6444: \"$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 @@ -6130,100 +6455,44 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - cat >> confdefs.h <<\EOF -#define HAVE_LIBXT 1 -EOF - - cf_have_X_LIBS=Xt - LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS" + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" else echo "$ac_t""no" 1>&6 fi -fi + fi + fi - -if test $cf_have_X_LIBS = no ; then - echo "configure: warning: 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." 1>&2 -fi - - -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 -withval= - -# Check whether --with-Xaw3d or --without-Xaw3d was given. -if test "${with_Xaw3d+set}" = set; then - withval="$with_Xaw3d" - : -fi - -if test "$withval" = yes ; then - cf_x_athena=Xaw3d - echo "$ac_t""yes" 1>&6 -else - echo "$ac_t""no" 1>&6 -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 -withval= - -# Check whether --with-neXtaw or --without-neXtaw was given. -if test "${with_neXtaw+set}" = set; then - withval="$with_neXtaw" - : -fi - -if test "$withval" = yes ; then - cf_x_athena=neXtaw - echo "$ac_t""yes" 1>&6 -else - echo "$ac_t""no" 1>&6 -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 -withval= - -# Check whether --with-XawPlus or --without-XawPlus was given. -if test "${with_XawPlus+set}" = set; then - withval="$with_XawPlus" - : -fi - -if test "$withval" = yes ; then - cf_x_athena=XawPlus - echo "$ac_t""yes" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6 -echo "configure:6208: 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 -else - ac_save_LIBS="$LIBS" -LIBS="-lXext $LIBS" -cat > conftest.$ac_ext <&6 +echo "configure:6477: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6496: \"$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 @@ -6238,198 +6507,28 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIBS="-lXext $LIBS" + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" else echo "$ac_t""no" 1>&6 fi + LDFLAGS="$ac_save_LDFLAGS" -cf_x_athena_lib="" - - -cf_x_athena_root=$cf_x_athena -cf_x_athena_include="" - -for cf_path in default \ - /usr/contrib/X11R6 \ - /usr/contrib/X11R5 \ - /usr/lib/X11R5 \ - /usr/local -do - if test -z "$cf_x_athena_include" ; then - 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" - 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 - else - echo $ac_n "checking for $cf_test""... $ac_c" 1>&6 -echo "configure:6269: checking for $cf_test" >&5 - fi - cat > conftest.$ac_ext < -#include <$cf_test> -int main() { - -; return 0; } -EOF -if { (eval echo configure:6281: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then - rm -rf conftest* - cf_result=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - cf_result=no -fi -rm -f conftest* - echo "$ac_t""$cf_result" 1>&6 - if test "$cf_result" = yes ; then - cf_x_athena_include=$cf_path - break - else - CPPFLAGS="$cf_save" - fi - fi -done - -if test -z "$cf_x_athena_include" ; then - echo "configure: warning: Unable to successfully find Athena header files with test program" 1>&2 -elif test "$cf_x_athena_include" != default ; then - CPPFLAGS="$CPPFLAGS -I$cf_x_athena_include" -fi - - -cf_x_athena_root=$cf_x_athena -cf_x_athena_lib="" - -for cf_path in default \ - /usr/contrib/X11R6 \ - /usr/contrib/X11R5 \ - /usr/lib/X11R5 \ - /usr/local -do - for cf_lib in \ - "-l$cf_x_athena_root -lXmu" \ - "-l$cf_x_athena_root -lXpm -lXmu" \ - "-l${cf_x_athena_root}_s -lXmu_s" - do - if test -z "$cf_x_athena_lib" ; then - cf_save="$LIBS" - cf_test=XawSimpleMenuAddGlobalActions - 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 - 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 - fi - cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - cf_result=yes -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - cf_result=no -fi -rm -f conftest* - echo "$ac_t""$cf_result" 1>&6 - if test "$cf_result" = yes ; then - cf_x_athena_lib="$cf_lib" - break - fi - LIBS="$cf_save" - fi - done -done - -if test -z "$cf_x_athena_lib" ; then - { echo "configure: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" 1>&2; exit 1; } -fi - - -cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - -cat >> confdefs.h <&6 -echo "configure:6383: 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 - case "$XCURSES_CONFIG" in - /*) - ac_cv_path_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test with a path. - ;; - ?:/*) - ac_cv_path_XCURSES_CONFIG="$XCURSES_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_XCURSES_CONFIG="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" - ;; -esac -fi -XCURSES_CONFIG="$ac_cv_path_XCURSES_CONFIG" -if test -n "$XCURSES_CONFIG"; then - echo "$ac_t""$XCURSES_CONFIG" 1>&6 -else - echo "$ac_t""no" 1>&6 fi -test -n "$XCURSES_CONFIG" && break -done -test -n "$XCURSES_CONFIG" || XCURSES_CONFIG="none" -if test "$XCURSES_CONFIG" != none ; then -CPPFLAGS="`$XCURSES_CONFIG --cflags` $CPPFLAGS" -LIBS="`$XCURSES_CONFIG --libs` $LIBS" -cf_cv_lib_XCurses=yes +# SYSTEM_NAME=`echo "$cf_cv_system_name"|tr ' ' -` -else +cf_have_X_LIBS=no -LDFLAGS="$LDFLAGS $X_LIBS" +LDFLAGS="$X_LIBS $LDFLAGS" 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}:6532: testing checking additions to CFLAGS ..." 1>&5 cf_check_cflags="$CFLAGS" @@ -6491,7 +6590,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}:6594: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5 CFLAGS="$CFLAGS $cf_new_cflags" @@ -6500,1148 +6599,2291 @@ 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}:6603: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5 + + + 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}:6612: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5 + + + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +fi + + - CPPFLAGS="$cf_new_cppflags $CPPFLAGS" +if test "$cf_check_cflags" != "$CFLAGS" ; then +cat > conftest.$ac_ext < +int main() { +printf("Hello world"); +; return 0; } +EOF +if { (eval echo configure:6630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6 + +echo "${as_me-configure}:6638: 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}:6644: testing but keeping change to \$CPPFLAGS ..." 1>&5 + + + fi + CFLAGS="$cf_check_flags" +fi +rm -f conftest* +fi + + +echo $ac_n "checking for XOpenDisplay""... $ac_c" 1>&6 +echo "configure:6655: 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 < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char XOpenDisplay(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_XOpenDisplay) || defined (__stub___XOpenDisplay) +choke me +#else +XOpenDisplay(); +#endif + +; return 0; } +EOF +if { (eval echo configure:6683: \"$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 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_XOpenDisplay=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'XOpenDisplay`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 + +echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 +echo "configure:6702: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="-lX11 $LIBS" +else + echo "$ac_t""no" 1>&6 +fi + +fi + + +echo $ac_n "checking for XtAppInitialize""... $ac_c" 1>&6 +echo "configure:6745: 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 < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char XtAppInitialize(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_XtAppInitialize) || defined (__stub___XtAppInitialize) +choke me +#else +XtAppInitialize(); +#endif + +; return 0; } +EOF +if { (eval echo configure:6773: \"$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 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_XtAppInitialize=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'XtAppInitialize`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 + +echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6 +echo "configure:6792: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_LIBXT 1 +EOF + + cf_have_X_LIBS=Xt + LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS" +else + echo "$ac_t""no" 1>&6 +fi + +fi + + +if test $cf_have_X_LIBS = no ; then + echo "configure: warning: 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." 1>&2 +fi + + +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:6849: checking if you want to link with Xaw 3d library" >&5 +withval= + +# Check whether --with-Xaw3d or --without-Xaw3d was given. +if test "${with_Xaw3d+set}" = set; then + withval="$with_Xaw3d" + : +fi + +if test "$withval" = yes ; then + cf_x_athena=Xaw3d + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking if you want to link with neXT Athena library""... $ac_c" 1>&6 +echo "configure:6866: checking if you want to link with neXT Athena library" >&5 +withval= + +# Check whether --with-neXtaw or --without-neXtaw was given. +if test "${with_neXtaw+set}" = set; then + withval="$with_neXtaw" + : +fi + +if test "$withval" = yes ; then + cf_x_athena=neXtaw + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking if you want to link with Athena-Plus library""... $ac_c" 1>&6 +echo "configure:6883: checking if you want to link with Athena-Plus library" >&5 +withval= + +# Check whether --with-XawPlus or --without-XawPlus was given. +if test "${with_XawPlus+set}" = set; then + withval="$with_XawPlus" + : +fi + +if test "$withval" = yes ; then + cf_x_athena=XawPlus + echo "$ac_t""yes" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6 +echo "configure:6900: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-lXext $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="-lXext $LIBS" +else + echo "$ac_t""no" 1>&6 +fi + + +cf_x_athena_lib="" + + +cf_x_athena_root=$cf_x_athena +cf_x_athena_include="" + +for cf_path in default \ + /usr/contrib/X11R6 \ + /usr/contrib/X11R5 \ + /usr/lib/X11R5 \ + /usr/local +do + if test -z "$cf_x_athena_include" ; then + cf_save="$CPPFLAGS" + cf_test=X11/$cf_x_athena_root/SimpleMenu.h + if test $cf_path != default ; then + CPPFLAGS="$cf_save -I$cf_path/include" + echo $ac_n "checking for $cf_test in $cf_path""... $ac_c" 1>&6 +echo "configure:6958: checking for $cf_test in $cf_path" >&5 + else + echo $ac_n "checking for $cf_test""... $ac_c" 1>&6 +echo "configure:6961: checking for $cf_test" >&5 + fi + cat > conftest.$ac_ext < +#include <$cf_test> +int main() { + +; return 0; } +EOF +if { (eval echo configure:6973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + cf_result=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cf_result=no +fi +rm -f conftest* + echo "$ac_t""$cf_result" 1>&6 + if test "$cf_result" = yes ; then + cf_x_athena_include=$cf_path + break + else + CPPFLAGS="$cf_save" + fi + fi +done + +if test -z "$cf_x_athena_include" ; then + echo "configure: warning: Unable to successfully find Athena header files with test program" 1>&2 +elif test "$cf_x_athena_include" != default ; then + CPPFLAGS="$CPPFLAGS -I$cf_x_athena_include" +fi + + +cf_x_athena_root=$cf_x_athena +cf_x_athena_lib="" + +for cf_path in default \ + /usr/contrib/X11R6 \ + /usr/contrib/X11R5 \ + /usr/lib/X11R5 \ + /usr/local +do + for cf_lib in \ + "-l$cf_x_athena_root -lXmu" \ + "-l$cf_x_athena_root -lXpm -lXmu" \ + "-l${cf_x_athena_root}_s -lXmu_s" + do + if test -z "$cf_x_athena_lib" ; then + cf_save="$LIBS" + cf_test=XawSimpleMenuAddGlobalActions + 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:7020: 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:7024: checking for $cf_test in $cf_lib" >&5 + fi + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + cf_result=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cf_result=no +fi +rm -f conftest* + echo "$ac_t""$cf_result" 1>&6 + if test "$cf_result" = yes ; then + cf_x_athena_lib="$cf_lib" + break + fi + LIBS="$cf_save" + fi + done +done + +if test -z "$cf_x_athena_lib" ; then + { echo "configure: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" 1>&2; exit 1; } +fi + + +cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + +cat >> confdefs.h <&6 +echo "configure:7075: 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 + case "$XCURSES_CONFIG" in + /*) + ac_cv_path_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_XCURSES_CONFIG="$XCURSES_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_XCURSES_CONFIG="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +XCURSES_CONFIG="$ac_cv_path_XCURSES_CONFIG" +if test -n "$XCURSES_CONFIG"; then + echo "$ac_t""$XCURSES_CONFIG" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$XCURSES_CONFIG" && break +done +test -n "$XCURSES_CONFIG" || XCURSES_CONFIG="none" + + +if test "$XCURSES_CONFIG" != none ; then + +CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`" +LIBS="`$XCURSES_CONFIG --libs` $LIBS" + +cf_cv_lib_XCurses=yes + +else + +LDFLAGS="$LDFLAGS $X_LIBS" + +test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6 + +echo "${as_me-configure}:7125: testing checking additions to CFLAGS ..." 1>&5 + + +cf_check_cflags="$CFLAGS" +cf_check_cppflags="$CPPFLAGS" + +cf_fix_cppflags=no +cf_new_cflags= +cf_new_cppflags= +cf_new_extra_cppflags= + +for cf_add_cflags in $X_CFLAGS +do +case $cf_fix_cppflags in +no) + case $cf_add_cflags in #(vi + -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi + case $cf_add_cflags in + -D*) + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=yes + + if test $cf_fix_cppflags = yes ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + elif test "${cf_tst_cflags}" = "\"'" ; then + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + continue + fi + ;; + esac + case "$CPPFLAGS" in + *$cf_add_cflags) #(vi + ;; + *) #(vi + cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" + ;; + esac + ;; + *) + cf_new_cflags="$cf_new_cflags $cf_add_cflags" + ;; + esac + ;; +yes) + cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" + + cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` + + test "${cf_add_cflags}" != "${cf_tst_cflags}" \ + && test -z "${cf_tst_cflags}" \ + && cf_fix_cppflags=no + ;; +esac +done + +if test -n "$cf_new_cflags" ; then + test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6 + +echo "${as_me-configure}:7187: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5 + + + CFLAGS="$CFLAGS $cf_new_cflags" +fi + +if test -n "$cf_new_cppflags" ; then + test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6 + +echo "${as_me-configure}:7196: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5 + + + 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}:7205: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5 + + + EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +fi + + + + +if test "$cf_check_cflags" != "$CFLAGS" ; then +cat > conftest.$ac_ext < +int main() { +printf("Hello world"); +; return 0; } +EOF +if { (eval echo configure:7223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6 + +echo "${as_me-configure}:7231: 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}:7237: testing but keeping change to \$CPPFLAGS ..." 1>&5 + + + fi + CFLAGS="$cf_check_flags" +fi +rm -f conftest* +fi + +echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 +echo "configure:7247: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="-lX11 $LIBS" +else + echo "$ac_t""no" 1>&6 +fi + +echo $ac_n "checking for XCurses library""... $ac_c" 1>&6 +echo "configure:7287: 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 < +char *XCursesProgramName = "test"; + +int main() { +XCursesExit(); +; return 0; } +EOF +if { (eval echo configure:7304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + cf_cv_lib_XCurses=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cf_cv_lib_XCurses=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$cf_cv_lib_XCurses" 1>&6 + +fi + +if test $cf_cv_lib_XCurses = yes ; then + cat >> confdefs.h <<\EOF +#define UNIX 1 +EOF + + cat >> confdefs.h <<\EOF +#define XCURSES 1 +EOF + + cat >> confdefs.h <<\EOF +#define HAVE_XCURSES 1 +EOF + +else + { echo "configure: error: Cannot link with XCurses" 1>&2; exit 1; } +fi + + ;; +esac + + + +case $cf_cv_screen in #(vi +pdcurses) #(vi + ;; +*) + # look for curses-related libraries + echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6 +echo "configure:7349: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-lpanel$cf_cv_libtype $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo panel$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for menu_driver in -lmenu$cf_cv_libtype""... $ac_c" 1>&6 +echo "configure:7396: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-lmenu$cf_cv_libtype $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo menu$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6 +echo "configure:7443: 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 +else + ac_save_LIBS="$LIBS" +LIBS="-lform$cf_cv_libtype $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo form$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + + # look for curses-related headers + for ac_hdr in \ + nc_alloc.h \ + nomacros.h \ + form.h \ + menu.h \ + panel.h \ + +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:7501: 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 +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:7511: \"$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* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + ;; +esac + +echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +echo "configure:7541: 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 < +#include +#ifdef signal +#undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + +int main() { +int i; +; return 0; } +EOF +if { (eval echo configure:7563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_signal=void +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_type_signal=int +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_type_signal" 1>&6 +cat >> confdefs.h <&6 +echo "configure:7583: 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 < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:7596: \"$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* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +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 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +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 +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no fi +rm -f conftest* -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 +fi +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +if test "$cross_compiling" = yes; then + : +else + cat > conftest.$ac_ext < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int main () { int i; for (i = 0; i < 256; i++) +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); +exit (0); } - EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" +EOF +if { (eval echo configure:7663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* fi +fi +fi +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF +fi -if test "$cf_check_cflags" != "$CFLAGS" ; then -cat > conftest.$ac_ext <&6 +echo "configure:7687: 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 < +#include +#include +#include int main() { -printf("Hello world"); +struct tm *tp; ; 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:7701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_time=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 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 - - - 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 - - - fi - CFLAGS="$cf_check_flags" + ac_cv_header_time=no fi rm -f conftest* fi -echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6 -echo "configure:6555: 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_t""$ac_cv_header_time" 1>&6 +if test $ac_cv_header_time = yes; then + cat >> confdefs.h <<\EOF +#define TIME_WITH_SYS_TIME 1 +EOF + +fi + +for ac_hdr in \ +getopt.h \ +locale.h \ +stdarg.h \ +sys/ioctl.h \ +sys/select.h \ +sys/time.h \ +termios.h \ +unistd.h \ + +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:7734: 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 - ac_save_LIBS="$LIBS" -LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS" -cat > conftest.$ac_ext < conftest.$ac_ext < EOF -if { (eval echo configure:6574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:7744: \"$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* - eval "ac_cv_lib_$ac_lib_var=yes" + eval "ac_cv_header_$ac_safe=yes" else + echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" + eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* -LIBS="$ac_save_LIBS" - fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 - LIBS="-lX11 $LIBS" + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 fi +done -echo $ac_n "checking for XCurses library""... $ac_c" 1>&6 -echo "configure:6595: checking for XCurses library" >&5 -if eval "test \"`echo '$''{'cf_cv_lib_XCurses'+set}'`\" = set"; then + +for ac_func in \ +gettimeofday \ +mblen \ +mbrlen \ +mbrtowc \ +mbsrtowcs \ +mbstowcs \ +mbtowc \ +strdup \ +wcsrtombs \ +wcstombs \ + +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:7785: 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 - -LIBS="-lXCurses $LIBS" -cat > conftest.$ac_ext < conftest.$ac_ext < -char *XCursesProgramName = "test"; +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func(); below. */ +#include +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); int main() { -XCursesExit(); + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + ; 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:7813: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - cf_cv_lib_XCurses=yes + eval "ac_cv_func_$ac_func=yes" else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - cf_cv_lib_XCurses=no + eval "ac_cv_func_$ac_func=no" fi rm -f conftest* - -fi - -echo "$ac_t""$cf_cv_lib_XCurses" 1>&6 - fi -if test $cf_cv_lib_XCurses = yes ; then - cat >> confdefs.h <<\EOF -#define UNIX 1 -EOF - - cat >> confdefs.h <<\EOF -#define XCURSES 1 -EOF - - cat >> confdefs.h <<\EOF -#define HAVE_XCURSES 1 +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&2; exit 1; } + echo "$ac_t""no" 1>&6 fi - - ;; -esac +done -case $cf_cv_screen in #(vi -pdcurses) #(vi - ;; -*) - # 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 -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 "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6 +echo "configure:7840: 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 - ac_save_LIBS="$LIBS" -LIBS="-lpanel$cf_cv_libtype $LIBS" + cat > conftest.$ac_ext < +#include <${cf_cv_ncurses_header-curses.h}> int main() { -new_panel() + + long x = winnstr(stdscr, "", 0); + int x1, y1; + getbegyx(stdscr, y1, x1) ; 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:7858: \"$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" + cf_cv_need_xopen_extension=no else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" + cat > conftest.$ac_ext <&6 - ac_tr_lib=HAVE_LIB`echo panel$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h < +#include <${cf_cv_ncurses_header-curses.h}> +int main() { + + long x = winnstr(stdscr, "", 0); + int x1, y1; + getbegyx(stdscr, y1, x1) +; return 0; } EOF +if { (eval echo configure:7879: \"$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 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cf_cv_need_xopen_extension=unknown +fi +rm -f conftest* +fi +rm -f conftest* +fi - LIBS="-lpanel$cf_cv_libtype $LIBS" +echo "$ac_t""$cf_cv_need_xopen_extension" 1>&6 +test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" -else - echo "$ac_t""no" 1>&6 -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 -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 "checking for term.h""... $ac_c" 1>&6 +echo "configure:7898: 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 - ac_save_LIBS="$LIBS" -LIBS="-lmenu$cf_cv_libtype $LIBS" -cat > conftest.$ac_ext <, look for , but always look +# for if we do not find the variant. +for cf_header in \ + `echo ${cf_cv_ncurses_header-curses.h} | sed -e 's%/.*%/%'`term.h \ + term.h +do + cat > conftest.$ac_ext < +#include <${cf_header}> int main() { -menu_driver() +WINDOW *x ; 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:7920: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" + cf_cv_term_header=$cf_header + break else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" + cf_cv_term_header=no fi rm -f conftest* -LIBS="$ac_save_LIBS" +done fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo menu$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h <&6 + +case $cf_cv_term_header in #(vi +term.h) #(vi + cat >> confdefs.h <<\EOF +#define HAVE_TERM_H 1 EOF - LIBS="-lmenu$cf_cv_libtype $LIBS" + ;; +ncurses/term.h) + cat >> confdefs.h <<\EOF +#define HAVE_NCURSES_TERM_H 1 +EOF -else - echo "$ac_t""no" 1>&6 -fi + ;; +ncursesw/term.h) + cat >> confdefs.h <<\EOF +#define HAVE_NCURSESW_TERM_H 1 +EOF - 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 -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 + ;; +esac + + + + +for cf_func in \ +chgat \ +color_set \ +filter \ +getbegx \ +getcurx \ +getmaxx \ +getnstr \ +getparx \ +getwin \ +mvvline \ +mvwvline \ +napms \ +putwin \ +resize_term \ +resizeterm \ +ripoffline \ +setupterm \ +slk_color \ +slk_init \ +termattrs \ +tgetent \ +tigetnum \ +tigetstr \ +typeahead \ +use_default_colors \ +vw_printw \ +vsscanf \ +wchgat \ +winsstr \ +wresize \ + +do + +cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + + echo $ac_n "checking for ${cf_func}""... $ac_c" 1>&6 +echo "configure:7998: checking for ${cf_func}" >&5 + +echo "${as_me-configure}:8000: 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 else - ac_save_LIBS="$LIBS" -LIBS="-lform$cf_cv_libtype $LIBS" -cat > conftest.$ac_ext < conftest.$ac_ext < +char * XCursesProgramName = "test"; +#else +#include <${cf_cv_ncurses_header-curses.h}> +#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +#include +#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +#include +#elif defined(HAVE_TERM_H) +#include +#endif +#endif int main() { -form_driver() + +#ifndef ${cf_func} +long foo = (long)(&${cf_func}); +${cf_cv_main_return-return}(foo == 0); +#endif + ; 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:8035: \"$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" + cf_result=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" + cf_result=no fi rm -f conftest* -LIBS="$ac_save_LIBS" - + fi + eval 'cf_cv_func_'$cf_func'=$cf_result' + fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_lib=HAVE_LIB`echo form$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \ - -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` - cat >> confdefs.h <&6 + if test $cf_result != no; then + cat >> confdefs.h <&6 -fi + fi +done - # look for curses-related headers - for ac_hdr in \ - nc_alloc.h \ - nomacros.h \ - form.h \ - menu.h \ - panel.h \ - -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 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then +echo $ac_n "checking for ncurses extended functions""... $ac_c" 1>&6 +echo "configure:8063: 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 < conftest.$ac_ext < + +#include <${cf_cv_ncurses_header-curses.h}> +int main() { + + (void) assume_default_colors (0, 0); + (void) curses_version (); + (void) define_key (0, 0); + (void) is_term_resized (0, 0); + (void) key_defined (0); + (void) keybound (0, 0); + (void) keyok (0, 0); + (void) resize_term (0, 0); + (void) resizeterm (0, 0); + (void) use_default_colors (); + (void) use_extended_names (0); + (void) wresize (0, 0, 0); +; return 0; } 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; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then +if { (eval echo configure:8089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" + cf_cv_ncurses_ext_funcs=yes else - echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" + cf_cv_ncurses_ext_funcs=no fi rm -f conftest* + fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` - cat >> confdefs.h <&6 +test "$cf_cv_ncurses_ext_funcs" != no && cat >> confdefs.h <<\EOF +#define NCURSES_EXT_FUNCS 1 EOF - -else - echo "$ac_t""no" 1>&6 -fi -done - ;; -esac -echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:6849: checking return type of signal handlers" >&5 -if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then +echo $ac_n "checking for wide-character functions""... $ac_c" 1>&6 +echo "configure:8109: 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 < -#include -#ifdef signal -#undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif + +cat > conftest.$ac_ext < int main() { -int i; + + static wchar_t src_wchar[2]; + static cchar_t dst_cchar; + setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0); + ; return 0; } EOF -if { (eval echo configure:6871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8127: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - ac_cv_type_signal=void + cf_cv_widechar_funcs=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - ac_cv_type_signal=int + cf_cv_widechar_funcs=no fi rm -f conftest* + fi -echo "$ac_t""$ac_cv_type_signal" 1>&6 -cat >> confdefs.h <&6 +if test "$cf_cv_widechar_funcs" != no ; then + cat >> confdefs.h <<\EOF +#define USE_WIDEC_SUPPORT 1 +EOF + +else + cat >> confdefs.h <<\EOF +#define USE_WIDEC_SUPPORT 0 EOF +fi -echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:6891: checking for ANSI C header files" >&5 -if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then +echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6 +echo "configure:8155: 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 < conftest.$ac_ext < -#include -#include -#include + +#include +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_SYS_SELECT_H +#include +#endif + +int main() { + +; return 0; } 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; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then +if { (eval echo configure:8176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - ac_cv_header_stdc=yes + cf_cv_sys_time_select=yes else - echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* - -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 -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "memchr" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no + cf_cv_sys_time_select=no fi rm -f conftest* - + fi -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 < +echo "$ac_t""$cf_cv_sys_time_select" 1>&6 +test "$cf_cv_sys_time_select" = yes && cat >> confdefs.h <<\EOF +#define HAVE_SYS_TIME_SELECT 1 EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "free" >/dev/null 2>&1; then - : -else - rm -rf conftest* - ac_cv_header_stdc=no -fi -rm -f conftest* -fi -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + +echo $ac_n "checking for function curses_version""... $ac_c" 1>&6 +echo "configure:8197: 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 + if test "$cross_compiling" = yes; then - : + cf_cv_func_curses_version=unknown else cat > conftest.$ac_ext < -#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int main () { int i; for (i = 0; i < 256; i++) -if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); -exit (0); } + +#include <${cf_cv_ncurses_header-curses.h}> +int main() +{ + char temp[1024]; + sprintf(temp, "%s\n", curses_version()); + ${cf_cv_main_return-return}(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:8218: \"$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 + else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -fr conftest* - ac_cv_header_stdc=no + cf_cv_func_curses_version=no + fi rm -fr conftest* fi -fi +rm -f core fi -echo "$ac_t""$ac_cv_header_stdc" 1>&6 -if test $ac_cv_header_stdc = yes; then - cat >> confdefs.h <<\EOF -#define STDC_HEADERS 1 +echo "$ac_t""$cf_cv_func_curses_version" 1>&6 +test "$cf_cv_func_curses_version" = yes && cat >> confdefs.h <<\EOF +#define HAVE_CURSES_VERSION 1 EOF + + +echo $ac_n "checking for ncurses wrap-prefix""... $ac_c" 1>&6 +echo "configure:8243: 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_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 -if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then +echo "$ac_t""$NCURSES_WRAP_PREFIX" 1>&6 + + + + +echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6 +echo "configure:8259: 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 - cat > conftest.$ac_ext < conftest.$ac_ext < -#include -#include + +#include <${cf_cv_ncurses_header-curses.h}> + int main() { -struct tm *tp; + +$name['k'] = ACS_PLUS + ; return 0; } EOF -if { (eval echo configure:7009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - ac_cv_header_time=yes + cf_cv_curses_acs_map=$name; break else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - rm -rf conftest* - ac_cv_header_time=no fi rm -f conftest* +done + fi -echo "$ac_t""$ac_cv_header_time" 1>&6 -if test $ac_cv_header_time = yes; then - cat >> confdefs.h <<\EOF -#define TIME_WITH_SYS_TIME 1 +echo "$ac_t""$cf_cv_curses_acs_map" 1>&6 + +test "$cf_cv_curses_acs_map" != unknown && cat >> confdefs.h <&6 -echo "configure:7042: checking for $ac_hdr" >&5 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then +echo $ac_n "checking for wide alternate character set array""... $ac_c" 1>&6 +echo "configure:8300: 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 - cat > conftest.$ac_ext < conftest.$ac_ext < + +#ifndef _XOPEN_SOURCE_EXTENDED +#define _XOPEN_SOURCE_EXTENDED +#endif +#include <${cf_cv_ncurses_header-curses.h}> +int main() { +$name['k'] = *WACS_PLUS +; return 0; } 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; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then +if { (eval echo configure:8320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" + cf_cv_curses_wacs_map=$name + break else - echo "$ac_err" >&5 echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" fi rm -f conftest* + done fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` - cat >> confdefs.h <&6 -fi -done +echo "$ac_t""$cf_cv_curses_wacs_map" 1>&6 -for ac_func in \ -gettimeofday \ -mblen \ -mbrlen \ -mbrtowc \ -mbsrtowcs \ -mbstowcs \ -mbtowc \ -strdup \ -wcsrtombs \ -wcstombs \ -do -echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:7093: 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 <&6 +echo "configure:8337: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5 +cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char $ac_func(); +#ifndef _XOPEN_SOURCE_EXTENDED +#define _XOPEN_SOURCE_EXTENDED +#endif +#include <${cf_cv_ncurses_header-curses.h}> int main() { -/* The GNU C library defines this for functions which it implements - to always fail with ENOSYS. Some functions are actually named - something starting with __ and the normal name is an alias. */ -#if defined (__stub_$ac_func) || defined (__stub___$ac_func) -choke me -#else -$ac_func(); -#endif +attr_t foo ; 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:8352: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - eval "ac_cv_func_$ac_func=yes" + cf_result=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - eval "ac_cv_func_$ac_func=no" + cf_result=no fi rm -f conftest* -fi +echo "$ac_t""$cf_result" 1>&6 +if test $cf_result = yes ; then + +cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` -if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then - echo "$ac_t""yes" 1>&6 - ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - cat >> confdefs.h <> confdefs.h <&6 + cat >> confdefs.h <&6 -echo "configure:7148: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 -if eval "test \"`echo '$''{'cf_cv_need_xopen_extension'+set}'`\" = set"; then +# This is needed on Tru64 5.0 to declare mbstate_t +echo $ac_n "checking if we must include wchar.h to declare mbstate_t""... $ac_c" 1>&6 +echo "configure:8382: checking if we must include wchar.h to declare mbstate_t" >&5 +if eval "test \"`echo '$''{'cf_cv_mbstate_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < -#include <${cf_cv_ncurses_header-curses.h}> +#include +#include +#ifdef HAVE_LIBUTF8_H +#include +#endif int main() { - - long x = winnstr(stdscr, "", 0); - int x1, y1; - getbegyx(stdscr, y1, x1) +mbstate_t state ; 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:8401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - cf_cv_need_xopen_extension=no + cf_cv_mbstate_t=no else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* cat > conftest.$ac_ext < -#include <${cf_cv_ncurses_header-curses.h}> +#include +#include +#include +#ifdef HAVE_LIBUTF8_H +#include +#endif int main() { - - long x = winnstr(stdscr, "", 0); - int x1, y1; - getbegyx(stdscr, y1, x1) +mbstate_t value ; 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:8423: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - cf_cv_need_xopen_extension=yes + cf_cv_mbstate_t=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - cf_cv_need_xopen_extension=unknown + cf_cv_mbstate_t=unknown fi rm -f conftest* fi rm -f conftest* fi -echo "$ac_t""$cf_cv_need_xopen_extension" 1>&6 -test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" +echo "$ac_t""$cf_cv_mbstate_t" 1>&6 +if test "$cf_cv_mbstate_t" = yes ; then + cat >> confdefs.h <<\EOF +#define NEED_WCHAR_H 1 +EOF -echo $ac_n "checking for term.h""... $ac_c" 1>&6 -echo "configure:7206: checking for term.h" >&5 -if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then + NEED_WCHAR_H=1 +fi + + +# if we do not find mbstate_t in either place, use substitution to provide a fallback. +if test "$cf_cv_mbstate_t" = unknown ; then + NCURSES_MBSTATE_T=1 +fi + + +# if we find mbstate_t in either place, use substitution to provide a fallback. +if test "$cf_cv_mbstate_t" != unknown ; then + NCURSES_OK_MBSTATE_T=1 +fi + + + +# This is needed on Tru64 5.0 to declare wchar_t +echo $ac_n "checking if we must include wchar.h to declare wchar_t""... $ac_c" 1>&6 +echo "configure:8463: checking if we must include wchar.h to declare wchar_t" >&5 +if eval "test \"`echo '$''{'cf_cv_wchar_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else +cat > conftest.$ac_ext <, look for , but always look -# for if we do not find the variant. -for cf_header in \ - `echo ${cf_cv_ncurses_header-curses.h} | sed -e 's%/.*%/%'`term.h \ - term.h -do - cat > conftest.$ac_ext < +#include +#include +#ifdef HAVE_LIBUTF8_H +#include +#endif +int main() { +wchar_t state +; return 0; } +EOF +if { (eval echo configure:8482: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + cf_cv_wchar_t=no +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cat > conftest.$ac_ext < -#include <${cf_header}> +#include +#include +#include +#include +#ifdef HAVE_LIBUTF8_H +#include +#endif int main() { -WINDOW *x +wchar_t value ; return 0; } EOF -if { (eval echo configure:7228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8504: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - cf_cv_term_header=$cf_header - break + cf_cv_wchar_t=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - cf_cv_term_header=no + cf_cv_wchar_t=unknown +fi +rm -f conftest* fi rm -f conftest* -done - fi -echo "$ac_t""$cf_cv_term_header" 1>&6 - -case $cf_cv_term_header in #(vi -term.h) #(vi - cat >> confdefs.h <<\EOF -#define HAVE_TERM_H 1 -EOF - - ;; -ncurses/term.h) - cat >> confdefs.h <<\EOF -#define HAVE_NCURSES_TERM_H 1 -EOF +echo "$ac_t""$cf_cv_wchar_t" 1>&6 - ;; -ncursesw/term.h) +if test "$cf_cv_wchar_t" = yes ; then cat >> confdefs.h <<\EOF -#define HAVE_NCURSESW_TERM_H 1 +#define NEED_WCHAR_H 1 EOF - ;; -esac + NEED_WCHAR_H=1 +fi +# if we do not find wchar_t in either place, use substitution to provide a fallback. +if test "$cf_cv_wchar_t" = unknown ; then + NCURSES_WCHAR_T=1 +fi -for cf_func in \ -chgat \ -color_set \ -filter \ -getbegx \ -getcurx \ -getmaxx \ -getnstr \ -getparx \ -getwin \ -mvvline \ -mvwvline \ -napms \ -putwin \ -resize_term \ -resizeterm \ -ripoffline \ -setupterm \ -slk_color \ -slk_init \ -termattrs \ -tgetent \ -tigetnum \ -tigetstr \ -typeahead \ -use_default_colors \ -vsscanf \ -wchgat \ -winsstr \ -wresize \ +# if we find wchar_t in either place, use substitution to provide a fallback. +if test "$cf_cv_wchar_t" != unknown ; then + NCURSES_OK_WCHAR_T=1 +fi -do - -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 "${as_me-configure}:7307: testing ${cf_func} ..." 1>&5 - if eval "test \"`echo '$''{'cf_cv_func_$cf_func'+set}'`\" = set"; then +# This is needed on Tru64 5.0 to declare wint_t +echo $ac_n "checking if we must include wchar.h to declare wint_t""... $ac_c" 1>&6 +echo "configure:8544: checking if we must include wchar.h to declare wint_t" >&5 +if eval "test \"`echo '$''{'cf_cv_wint_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else - eval cf_result='$ac_cv_func_'$cf_func - if test ".$cf_result" != ".no"; then - cat > conftest.$ac_ext < conftest.$ac_ext < -char * XCursesProgramName = "test"; -#else -#include <${cf_cv_ncurses_header-curses.h}> -#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) -#include -#else -#if defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) -#include -#else -#ifdef HAVE_TERM_H -#include -#endif -#endif -#endif +#include +#include +#include +#ifdef HAVE_LIBUTF8_H +#include #endif int main() { +wint_t state +; return 0; } +EOF +if { (eval echo configure:8563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + cf_cv_wint_t=no +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + cat > conftest.$ac_ext < +#include +#include +#include +#ifdef HAVE_LIBUTF8_H +#include #endif - +int main() { +wint_t value ; 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:8585: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - cf_result=yes + cf_cv_wint_t=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - cf_result=no + cf_cv_wint_t=unknown +fi +rm -f conftest* fi rm -f conftest* - fi - eval 'cf_cv_func_'$cf_func'=$cf_result' - fi - # use the computed/retrieved cache-value: - eval 'cf_result=$cf_cv_func_'$cf_func - echo "$ac_t""$cf_result" 1>&6 - if test $cf_result != no; then - cat >> confdefs.h <&6 + +if test "$cf_cv_wint_t" = yes ; then + cat >> confdefs.h <<\EOF +#define NEED_WCHAR_H 1 EOF - fi -done + NEED_WCHAR_H=1 +fi -echo $ac_n "checking for ncurses extended functions""... $ac_c" 1>&6 -echo "configure:7373: 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 - +# if we do not find wint_t in either place, use substitution to provide a fallback. +if test "$cf_cv_wint_t" = unknown ; then + NCURSES_WINT_T=1 +fi + + +# if we find wint_t in either place, use substitution to provide a fallback. +if test "$cf_cv_wint_t" != unknown ; then + NCURSES_OK_WINT_T=1 +fi + + + +if test "$NCURSES_OK_MBSTATE_T" = 0 ; then + +echo $ac_n "checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6 +echo "configure:8626: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5 cat > conftest.$ac_ext < int main() { - (void) assume_default_colors (0, 0); - (void) curses_version (); - (void) define_key (0, 0); - (void) is_term_resized (0, 0); - (void) key_defined (0); - (void) keybound (0, 0); - (void) keyok (0, 0); - (void) resize_term (0, 0); - (void) resizeterm (0, 0); - (void) use_default_colors (); - (void) use_extended_names (0); - (void) wresize (0, 0, 0); +mbstate_t foo + ; 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:8641: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - cf_cv_ncurses_ext_funcs=yes + cf_result=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - cf_cv_ncurses_ext_funcs=no + cf_result=no fi rm -f conftest* +echo "$ac_t""$cf_result" 1>&6 +if test $cf_result = yes ; then + +cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` -fi + cat >> confdefs.h <&6 -test "$cf_cv_ncurses_ext_funcs" != no && cat >> confdefs.h <<\EOF -#define NCURSES_EXT_FUNCS 1 +else + cat >> confdefs.h <&6 -echo "configure:7419: 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 - +fi + +if test "$NCURSES_OK_WCHAR_T" = 0 ; then + +echo $ac_n "checking for type wchar_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6 +echo "configure:8672: checking for type wchar_t in ${cf_cv_ncurses_header-curses.h}" >&5 cat > conftest.$ac_ext < int main() { - static wchar_t src_wchar[2]; - static cchar_t dst_cchar; - setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0); - +wchar_t foo + ; 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:8687: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - cf_cv_widechar_funcs=yes + cf_result=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - cf_cv_widechar_funcs=no + cf_result=no fi rm -f conftest* +echo "$ac_t""$cf_result" 1>&6 +if test $cf_result = yes ; then + +cf_result=`echo "have_type_wchar_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` -fi - -echo "$ac_t""$cf_cv_widechar_funcs" 1>&6 -if test "$cf_cv_widechar_funcs" != no ; then - cat >> confdefs.h <<\EOF -#define USE_WIDEC_SUPPORT 1 + cat >> confdefs.h <> confdefs.h <<\EOF -#define USE_WIDEC_SUPPORT 0 + cat >> confdefs.h <&6 -echo "configure:7465: 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 - +if test "$NCURSES_OK_WINT_T" = 0 ; then + +echo $ac_n "checking for type wint_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6 +echo "configure:8718: checking for type wint_t in ${cf_cv_ncurses_header-curses.h}" >&5 cat > conftest.$ac_ext < -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_SELECT_H -#include +#ifndef _XOPEN_SOURCE_EXTENDED +#define _XOPEN_SOURCE_EXTENDED #endif - +#include <${cf_cv_ncurses_header-curses.h}> int main() { +wint_t foo + ; return 0; } EOF -if { (eval echo configure:7486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - cf_cv_sys_time_select=yes + cf_result=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 rm -rf conftest* - cf_cv_sys_time_select=no + cf_result=no fi rm -f conftest* - -fi +echo "$ac_t""$cf_result" 1>&6 +if test $cf_result = yes ; then + +cf_result=`echo "have_type_wint_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` -echo "$ac_t""$cf_cv_sys_time_select" 1>&6 -test "$cf_cv_sys_time_select" = yes && cat >> confdefs.h <<\EOF -#define HAVE_SYS_TIME_SELECT 1 + cat >> confdefs.h <&6 -echo "configure:7507: 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 - -if test "$cross_compiling" = yes; then - cf_cv_func_curses_version=unknown else - cat > conftest.$ac_ext < -int main() -{ - char temp[1024]; - sprintf(temp, "%s\n", curses_version()); - ${cf_cv_main_return-return}(0); -} - + cat >> confdefs.h <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null -then - cf_cv_func_curses_version=yes - -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - cf_cv_func_curses_version=no fi -rm -fr conftest* -fi -rm -f core fi -echo "$ac_t""$cf_cv_func_curses_version" 1>&6 -test "$cf_cv_func_curses_version" = yes && cat >> confdefs.h <<\EOF -#define HAVE_CURSES_VERSION 1 -EOF - - -echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6 -echo "configure:7553: 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 -do +echo $ac_n "checking for data boolnames declaration in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6 +echo "configure:8763: checking for data boolnames declaration in ${cf_cv_ncurses_header-curses.h}" >&5 cat > conftest.$ac_ext < +char * XCursesProgramName = "test"; +#else #include <${cf_cv_ncurses_header-curses.h}> +#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +#include +#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +#include +#elif defined(HAVE_TERM_H) +#include +#endif +#endif int main() { -$name['k'] = ACS_PLUS +void *foo = &(boolnames) ; 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:8788: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - cf_cv_curses_acs_map=$name; break + cf_result=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 + rm -rf conftest* + cf_result=no fi rm -f conftest* -done - -fi - -echo "$ac_t""$cf_cv_curses_acs_map" 1>&6 +echo "$ac_t""$cf_result" 1>&6 +if test $cf_result = yes ; then + +cf_result=`echo "have_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` -test "$cf_cv_curses_acs_map" != unknown && cat >> confdefs.h <> confdefs.h <&6 -echo "configure:7594: 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 - - cf_cv_curses_wacs_map=unknown - for name in wacs_map _wacs_map __wacs_map _nc_wacs - do + echo $ac_n "checking for data boolnames in library""... $ac_c" 1>&6 +echo "configure:8809: checking for data boolnames in library" >&5 cat > conftest.$ac_ext < +char * XCursesProgramName = "test"; +#else #include <${cf_cv_ncurses_header-curses.h}> +#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +#include +#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +#include +#elif defined(HAVE_TERM_H) +#include +#endif +#endif + +extern char boolnames; int main() { -$name['k'] = *WACS_PLUS + + do { + void *foo = &(boolnames); + ${cf_cv_main_return-return}(foo == 0); + } while (0) + ; 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:8838: \"$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 + cf_result=yes else echo "configure: failed program was:" >&5 cat conftest.$ac_ext >&5 + rm -rf conftest* + cf_result=no fi rm -f conftest* - done -fi + echo "$ac_t""$cf_result" 1>&6 + if test $cf_result = yes ; then + +cf_result=`echo "decl_curses_data_boolnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` -echo "$ac_t""$cf_cv_curses_wacs_map" 1>&6 + cat >> confdefs.h <&6 -echo "configure:7630: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5 + +echo $ac_n "checking for data boolfnames declaration in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6 +echo "configure:8862: checking for data boolfnames declaration in ${cf_cv_ncurses_header-curses.h}" >&5 cat > conftest.$ac_ext < +char * XCursesProgramName = "test"; +#else #include <${cf_cv_ncurses_header-curses.h}> +#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +#include +#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +#include +#elif defined(HAVE_TERM_H) +#include +#endif +#endif + int main() { -attr_t foo +void *foo = &(boolfnames) ; return 0; } EOF -if { (eval echo configure:7645: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8887: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cf_result=yes else @@ -7654,37 +8896,44 @@ echo "$ac_t""$cf_result" 1>&6 if test $cf_result = yes ; then -cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` +cf_result=`echo "have_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` cat >> confdefs.h <> confdefs.h <&6 -echo "configure:7673: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5 -cat > conftest.$ac_ext <&6 +echo "configure:8908: checking for data boolfnames in library" >&5 + cat > conftest.$ac_ext < +char * XCursesProgramName = "test"; +#else #include <${cf_cv_ncurses_header-curses.h}> +#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H) +#include +#elif defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H) +#include +#elif defined(HAVE_TERM_H) +#include +#endif +#endif + +extern char boolfnames; int main() { -mbstate_t foo + do { + void *foo = &(boolfnames); + ${cf_cv_main_return-return}(foo == 0); + } while (0) ; return 0; } EOF -if { (eval echo configure:7688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* cf_result=yes else @@ -7694,20 +8943,16 @@ cf_result=no fi rm -f conftest* -echo "$ac_t""$cf_result" 1>&6 -if test $cf_result = yes ; then - -cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` + echo "$ac_t""$cf_result" 1>&6 + if test $cf_result = yes ; then + +cf_result=`echo "decl_curses_data_boolfnames" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - cat >> confdefs.h <> confdefs.h <> confdefs.h <background = field_back(f); + } + set_field_userptr(f, (void *) ptr); if (t_value) set_field_buffer(f, 0, t_value); } @@ -300,13 +307,13 @@ } waddch(win, ' '); - wattrset(win, field_fore(field)); + (void) wattrset(win, field_fore(field)); waddstr(win, "fore"); wattroff(win, field_fore(field)); waddch(win, '/'); - wattrset(win, field_back(field)); + (void) wattrset(win, field_back(field)); waddstr(win, "back"); wattroff(win, field_back(field)); @@ -317,7 +324,7 @@ for (nbuf = 0; nbuf <= 2; ++nbuf) { if ((buffer = field_buffer(field, nbuf)) != 0) { wprintw(win, "buffer %d:", nbuf); - wattrset(win, A_REVERSE); + (void) wattrset(win, A_REVERSE); waddstr(win, buffer); wattroff(win, A_REVERSE); waddstr(win, "\n"); @@ -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/demo_termcap.c ncurses-5.7/test/demo_termcap.c --- ncurses-5.7.orig/test/demo_termcap.c 2008-02-09 10:08:36.000000000 -0800 +++ ncurses-5.7/test/demo_termcap.c 2009-09-12 08:51:59.000000000 -0700 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2005-2007,2008 Free Software Foundation, Inc. * + * Copyright (c) 2005-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 * - * $Id: demo_termcap.c,v 1.7 2008/02/09 18:08:36 tom Exp $ + * $Id: demo_termcap.c,v 1.11 2009/08/02 00:02:53 tom Exp $ * * A simple demo of the termcap interface. */ @@ -38,10 +38,25 @@ #if HAVE_TGETENT +#if defined(HAVE_CURSES_DATA_BOOLNAMES) || defined(DECL_CURSES_DATA_BOOLNAMES) +#define USE_CODE_LISTS 1 +#else +#define USE_CODE_LISTS 0 +#endif + +#define FCOLS 8 +#define FNAME(type) "%s %-*s = ", #type, FCOLS + +#if USE_CODE_LISTS +static bool b_opt = FALSE; +static bool n_opt = FALSE; +static bool s_opt = FALSE; +#endif + #define isCapName(c) (isgraph(c) && strchr("^#=:\\", c) == 0) static void -dumpit(char *cap) +dumpit(NCURSES_CONST char *cap) { /* * One of the limitations of the termcap interface is that the library @@ -59,7 +74,7 @@ * Note that the strings returned are mostly terminfo format, since * ncurses does not convert except for a handful of special cases. */ - printf("str %s = ", cap); + printf(FNAME(str), cap); while (*str != 0) { int ch = UChar(*str++); switch (ch) { @@ -108,15 +123,17 @@ } printf("\n"); } else if ((num = tgetnum(cap)) >= 0) { - printf("num %s = %d\n", cap, num); + printf(FNAME(num), cap); + printf(" %d\n", num); } else if ((num = tgetflag(cap)) > 0) { - printf("flg %s\n", cap); + printf(FNAME(flg), cap); + printf("%s\n", "true"); } fflush(stdout); } static void -demo_termcap(char *name) +brute_force(const char *name) { char buffer[1024]; @@ -140,23 +157,142 @@ } } +#if USE_CODE_LISTS +static void +demo_terminfo(NCURSES_CONST char *name) +{ + unsigned n; + NCURSES_CONST char *cap; + + printf("Terminal type \"%s\"\n", name); + setupterm(name, 1, (int *) 0); + + if (b_opt) { + for (n = 0;; ++n) { + cap = boolcodes[n]; + if (cap == 0) + break; + dumpit(cap); + } + } + + if (n_opt) { + for (n = 0;; ++n) { + cap = numcodes[n]; + if (cap == 0) + break; + dumpit(cap); + } + } + + if (s_opt) { + for (n = 0;; ++n) { + cap = strcodes[n]; + if (cap == 0) + break; + dumpit(cap); + } + } +} + +static void +usage(void) +{ + static const char *msg[] = + { + "Usage: demo_terminfo [options] [terminal]", + "", + "If no options are given, print all (boolean, numeric, string)", + "capabilities for the given terminal, using short names.", + "", + "Options:", + " -a try all names, print capabilities found", + " -b print boolean-capabilities", + " -n print numeric-capabilities", + " -r COUNT repeat for given count", + " -s print string-capabilities", + }; + unsigned n; + for (n = 0; n < SIZEOF(msg); ++n) { + fprintf(stderr, "%s\n", msg[n]); + } + ExitProgram(EXIT_FAILURE); +} +#endif + int main(int argc, char *argv[]) { int n; char *name; + bool a_opt = FALSE; - if (argc > 1) { - for (n = 1; n < argc; ++n) { - demo_termcap(argv[n]); - } - } else if ((name = getenv("TERM")) != 0) { - demo_termcap(name); - } else { - static char dumb[] = "dumb"; - demo_termcap(dumb); +#if USE_CODE_LISTS + int repeat; + int r_opt = 1; + + while ((n = getopt(argc, argv, "abnr:s")) != -1) { + switch (n) { + case 'a': + a_opt = TRUE; + break; + case 'b': + b_opt = TRUE; + break; + case 'n': + n_opt = TRUE; + break; + case 'r': + if ((r_opt = atoi(optarg)) <= 0) + usage(); + break; + case 's': + s_opt = TRUE; + break; + default: + usage(); + break; + } } + if (!(b_opt || n_opt || s_opt)) { + b_opt = TRUE; + n_opt = TRUE; + s_opt = TRUE; + } +#else + a_opt = TRUE; +#endif + + if (a_opt) { + if (optind < argc) { + for (n = optind; n < argc; ++n) { + brute_force(argv[n]); + } + } else if ((name = getenv("TERM")) != 0) { + brute_force(name); + } else { + static char dumb[] = "dumb"; + brute_force(dumb); + } + } +#if USE_CODE_LISTS + else { + for (repeat = 0; repeat < r_opt; ++repeat) { + if (optind < argc) { + for (n = optind; n < argc; ++n) { + demo_terminfo(argv[n]); + } + } else if ((name = getenv("TERM")) != 0) { + demo_terminfo(name); + } else { + static char dumb[] = "dumb"; + demo_terminfo(dumb); + } + } + } +#endif + ExitProgram(EXIT_SUCCESS); } diff -Naur ncurses-5.7.orig/test/demo_terminfo.c ncurses-5.7/test/demo_terminfo.c --- ncurses-5.7.orig/test/demo_terminfo.c 1969-12-31 16:00:00.000000000 -0800 +++ ncurses-5.7/test/demo_terminfo.c 2009-09-12 08:51:54.000000000 -0700 @@ -0,0 +1,304 @@ +/**************************************************************************** + * 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 + * + * $Id: demo_terminfo.c,v 1.6 2009/07/17 01:02:08 tom Exp $ + * + * A simple demo of the terminfo interface. + */ +#define USE_TINFO +#include + +#ifdef NCURSES_VERSION +#if NCURSES_XNAMES +#include +#endif +#endif + +#if defined(HAVE_CURSES_DATA_BOOLNAMES) || defined(DECL_CURSES_DATA_BOOLNAMES) + +static bool b_opt = FALSE; +static bool f_opt = FALSE; +static bool n_opt = FALSE; +static bool s_opt = FALSE; +static bool x_opt = FALSE; + +#define FCOLS 8 +#define FNAME(type) "%s %-*s = ", #type, FCOLS + +static void +dumpit(NCURSES_CONST char *cap) +{ + /* + * One of the limitations of the termcap interface is that the library + * cannot determine the size of the buffer passed via tgetstr(), nor the + * amount of space remaining. This demo simply reuses the whole buffer + * for each call; a normal termcap application would try to use the buffer + * to hold all of the strings extracted from the terminal entry. + */ + const char *str; + int num; + + if ((str = tigetstr(cap)) != 0 && (str != (char *) -1)) { + /* + * Note that the strings returned are mostly terminfo format, since + * ncurses does not convert except for a handful of special cases. + */ + printf(FNAME(str), cap); + while (*str != 0) { + int ch = UChar(*str++); + switch (ch) { + case '\177': + fputs("^?", stdout); + break; + case '\033': + fputs("\\E", stdout); + break; + case '\b': + fputs("\\b", stdout); + break; + case '\f': + fputs("\\f", stdout); + break; + case '\n': + fputs("\\n", stdout); + break; + case '\r': + fputs("\\r", stdout); + break; + case ' ': + fputs("\\s", stdout); + break; + case '\t': + fputs("\\t", stdout); + break; + case '^': + fputs("\\^", stdout); + break; + case ':': + fputs("\\072", stdout); + break; + case '\\': + fputs("\\\\", stdout); + break; + default: + if (isgraph(ch)) + fputc(ch, stdout); + else if (ch < 32) + printf("^%c", ch + '@'); + else + printf("\\%03o", ch); + break; + } + } + printf("\n"); + } else if ((num = tigetnum(cap)) >= 0) { + printf(FNAME(num), cap); + printf(" %d\n", num); + } else if ((num = tigetflag(cap)) >= 0) { + printf(FNAME(flg), cap); + printf("%s\n", num ? "true" : "false"); + } + fflush(stdout); +} + +static void +demo_terminfo(char *name) +{ + unsigned n; + NCURSES_CONST char *cap; + + printf("Terminal type \"%s\"\n", name); + setupterm(name, 1, (int *) 0); + + if (b_opt) { + for (n = 0;; ++n) { + cap = f_opt ? boolfnames[n] : boolnames[n]; + if (cap == 0) + break; + dumpit(cap); + } + } + + if (n_opt) { + for (n = 0;; ++n) { + cap = f_opt ? numfnames[n] : numnames[n]; + if (cap == 0) + break; + dumpit(cap); + } + } + + if (s_opt) { + for (n = 0;; ++n) { + cap = f_opt ? strfnames[n] : strnames[n]; + if (cap == 0) + break; + dumpit(cap); + } + } +#ifdef NCURSES_VERSION + if (x_opt) { + int mod; + if (f_opt) { +#if NCURSES_XNAMES + TERMTYPE *term = &(cur_term->type); + if (term != 0 + && ((NUM_BOOLEANS(term) != BOOLCOUNT) + || (NUM_NUMBERS(term) != NUMCOUNT) + || (NUM_STRINGS(term) != STRCOUNT))) { + for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) { + dumpit(ExtBoolname(term, n, boolnames)); + } + for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) { + dumpit(ExtNumname(term, n, numnames)); + } + for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) { + dumpit(ExtStrname(term, n, strnames)); + } + } +#endif + } else { + char temp[10]; + static const char *xterm_keys[] = + { + "kDC", "kDN", "kEND", "kHOM", "kIC", + "kLFT", "kNXT", "kPRV", "kRIT", "kUP", + }; + for (n = 0; n < SIZEOF(xterm_keys); ++n) { + for (mod = 0; mod < 8; ++mod) { + if (mod == 0) + strcpy(temp, xterm_keys[n]); + else + sprintf(temp, "%s%d", xterm_keys[n], mod); + dumpit(temp); + } + } + } + } +#endif + +} + +static void +usage(void) +{ + static const char *msg[] = + { + "Usage: demo_terminfo [options] [terminal]", + "", + "If no options are given, print all (boolean, numeric, string)", + "capabilities for the given terminal, using short names.", + "", + "Options:", + " -b print boolean-capabilities", + " -f print full names", + " -n print numeric-capabilities", + " -r COUNT repeat for given count", + " -s print string-capabilities", +#ifdef NCURSES_VERSION + " -x print extended capabilities", +#endif + }; + unsigned n; + for (n = 0; n < SIZEOF(msg); ++n) { + fprintf(stderr, "%s\n", msg[n]); + } + ExitProgram(EXIT_FAILURE); +} + +int +main(int argc, char *argv[]) +{ + int n; + int repeat; + char *name; + int r_opt = 1; + + while ((n = getopt(argc, argv, "bfnr:sx")) != -1) { + switch (n) { + case 'b': + b_opt = TRUE; + break; + case 'f': + f_opt = TRUE; + break; + case 'n': + n_opt = TRUE; + break; + case 'r': + if ((r_opt = atoi(optarg)) <= 0) + usage(); + break; + case 's': + s_opt = TRUE; + break; +#ifdef NCURSES_VERSION + case 'x': + x_opt = TRUE; + use_extended_names(TRUE); + break; +#endif + default: + usage(); + break; + } + } + + if (!(b_opt || n_opt || s_opt || x_opt)) { + b_opt = TRUE; + n_opt = TRUE; + s_opt = TRUE; + } + + for (repeat = 0; repeat < r_opt; ++repeat) { + if (optind < argc) { + for (n = optind; n < argc; ++n) { + demo_terminfo(argv[n]); + } + } else if ((name = getenv("TERM")) != 0) { + demo_terminfo(name); + } else { + static char dumb[] = "dumb"; + demo_terminfo(dumb); + } + } + + ExitProgram(EXIT_SUCCESS); +} + +#else +int +main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) +{ + printf("This program requires the terminfo arrays\n"); + ExitProgram(EXIT_FAILURE); +} +#endif 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-09-12 08:51:54.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.34 2009/07/17 00:07:25 tom 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,9 +253,15 @@ } 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) { +#if HAVE_USE_WINDOW (void) sp; +#endif (void) arg; return endwin(); } @@ -259,7 +270,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 +293,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 +379,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-09-12 08:50: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-09-12 08:50: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-09-12 08:50: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 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 @@ -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/firework.c ncurses-5.7/test/firework.c --- ncurses-5.7.orig/test/firework.c 2006-05-20 08:36:08.000000000 -0700 +++ ncurses-5.7/test/firework.c 2009-09-12 08:52:07.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 * @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: firework.c,v 1.24 2006/05/20 15:36:08 tom Exp $ + * $Id: firework.c,v 1.25 2009/08/29 19:02:25 tom Exp $ */ #include @@ -94,14 +94,14 @@ showit(); init_pair(1, get_colour(&bold), my_bg); - attrset(COLOR_PAIR(1) | bold); + (void) attrset(COLOR_PAIR(1) | bold); mvprintw(row - 1, col - 1, " - "); mvprintw(row + 0, col - 1, "-+-"); mvprintw(row + 1, col - 1, " - "); showit(); init_pair(1, get_colour(&bold), my_bg); - attrset(COLOR_PAIR(1) | bold); + (void) attrset(COLOR_PAIR(1) | bold); mvprintw(row - 2, col - 2, " --- "); mvprintw(row - 1, col - 2, "-+++-"); mvprintw(row + 0, col - 2, "-+#+-"); @@ -110,7 +110,7 @@ showit(); init_pair(1, get_colour(&bold), my_bg); - attrset(COLOR_PAIR(1) | bold); + (void) attrset(COLOR_PAIR(1) | bold); mvprintw(row - 2, col - 2, " +++ "); mvprintw(row - 1, col - 2, "++#++"); mvprintw(row + 0, col - 2, "+# #+"); @@ -119,7 +119,7 @@ showit(); init_pair(1, get_colour(&bold), my_bg); - attrset(COLOR_PAIR(1) | bold); + (void) attrset(COLOR_PAIR(1) | bold); mvprintw(row - 2, col - 2, " # "); mvprintw(row - 1, col - 2, "## ##"); mvprintw(row + 0, col - 2, "# #"); @@ -128,7 +128,7 @@ showit(); init_pair(1, get_colour(&bold), my_bg); - attrset(COLOR_PAIR(1) | bold); + (void) attrset(COLOR_PAIR(1) | bold); mvprintw(row - 2, col - 2, " # # "); mvprintw(row - 1, col - 2, "# #"); mvprintw(row + 0, col - 2, " "); @@ -173,7 +173,7 @@ direction = (start > end) ? -1 : 1; diff = abs(start - end); } while (diff < 2 || diff >= LINES - 2); - attrset(A_NORMAL); + (void) attrset(A_NORMAL); for (row = 0; row < diff; row++) { mvprintw(LINES - row, start + (row * direction), (direction < 0) ? "\\" : "/"); diff -Naur ncurses-5.7.orig/test/firstlast.c ncurses-5.7/test/firstlast.c --- ncurses-5.7.orig/test/firstlast.c 2006-04-01 11:03:18.000000000 -0800 +++ ncurses-5.7/test/firstlast.c 2009-09-12 08:51:54.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 * @@ -29,7 +29,7 @@ * This test was written by Alexander V. Lukyanov to demonstrate difference * between ncurses 4.1 and SVR4 curses * - * $Id: firstlast.c,v 1.5 2006/04/01 19:03:18 tom Exp $ + * $Id: firstlast.c,v 1.6 2009/07/15 23:29:46 tom Exp $ */ #include @@ -38,12 +38,19 @@ fill(WINDOW *w, const char *str) { const char *s; + int x0 = -1, y0 = -1; + int x1, y1; + for (;;) { for (s = str; *s; s++) { - if (waddch(w, UChar(*s)) == ERR) { + getyx(w, y1, x1); + if (waddch(w, UChar(*s)) == ERR + || (x1 == x0 && y1 == y0)) { wmove(w, 0, 0); return; } + x0 = x1; + y0 = y1; } } } diff -Naur ncurses-5.7.orig/test/gdc.c ncurses-5.7/test/gdc.c --- ncurses-5.7.orig/test/gdc.c 2008-08-03 16:58:42.000000000 -0700 +++ ncurses-5.7/test/gdc.c 2009-09-12 08:52: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 * @@ -33,7 +33,7 @@ * modified 10-18-89 for curses (jrl) * 10-18-89 added signal handling * - * $Id: gdc.c,v 1.31 2008/08/03 23:58:42 tom Exp $ + * $Id: gdc.c,v 1.32 2009/08/29 19:02:25 tom Exp $ */ #include @@ -78,7 +78,7 @@ int n; if (hascolor) - attrset(COLOR_PAIR(PAIR_FRAMES)); + (void) attrset(COLOR_PAIR(PAIR_FRAMES)); mvaddch(YBASE - 1, XBASE - 1, ACS_ULCORNER); hline(ACS_HLINE, XLENGTH); @@ -102,7 +102,7 @@ vline(ACS_VLINE, YDEPTH); if (hascolor) - attrset(COLOR_PAIR(PAIR_OTHERS)); + (void) attrset(COLOR_PAIR(PAIR_OTHERS)); } static void @@ -220,7 +220,7 @@ init_pair(PAIR_DIGITS, COLOR_BLACK, COLOR_RED); init_pair(PAIR_OTHERS, COLOR_RED, bg); init_pair(PAIR_FRAMES, COLOR_WHITE, bg); - attrset(COLOR_PAIR(PAIR_OTHERS)); + (void) attrset(COLOR_PAIR(PAIR_OTHERS)); } restart: @@ -335,7 +335,7 @@ goto restart; case ERR: if (sigtermed) { - standend(); + (void) standend(); endwin(); fprintf(stderr, "gdc terminated by signal %d\n", sigtermed); ExitProgram(EXIT_FAILURE); @@ -345,7 +345,7 @@ continue; } } while (--count); - standend(); + (void) standend(); endwin(); ExitProgram(EXIT_SUCCESS); } diff -Naur ncurses-5.7.orig/test/hanoi.c ncurses-5.7/test/hanoi.c --- ncurses-5.7.orig/test/hanoi.c 2008-08-04 03:57:59.000000000 -0700 +++ ncurses-5.7/test/hanoi.c 2009-09-12 08:52:07.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 * @@ -41,7 +41,7 @@ * * Date: 05.Nov.90 * - * $Id: hanoi.c,v 1.27 2008/08/04 10:57:59 tom Exp $ + * $Id: hanoi.c,v 1.28 2009/08/29 19:02:25 tom Exp $ */ #include @@ -229,7 +229,7 @@ mvaddstr(1, 24, "T O W E R S O F H A N O I"); mvaddstr(3, 34, "SJR 1990"); mvprintw(19, 5, "Moves : %d", NMoves); - attrset(A_REVERSE); + (void) attrset(A_REVERSE); mvaddstr(BASELINE, 8, " "); @@ -241,7 +241,7 @@ mvaddch(BASELINE, LEFTPEG, '1'); mvaddch(BASELINE, MIDPEG, '2'); mvaddch(BASELINE, RIGHTPEG, '3'); - attrset(A_NORMAL); + (void) attrset(A_NORMAL); /* Draw tiles */ for (peg = 0; peg < NPEGS; peg++) { @@ -251,16 +251,16 @@ memset(TileBuf, ' ', len); TileBuf[len] = '\0'; if (has_colors()) - attrset(COLOR_PAIR(LENTOIND(len))); + (void) attrset(COLOR_PAIR(LENTOIND(len))); else - attrset(A_REVERSE); + (void) attrset(A_REVERSE); mvaddstr(BASELINE - (SlotNo + 1), (int) (PegPos[peg] - len / 2), TileBuf); } } } - attrset(A_NORMAL); + (void) attrset(A_NORMAL); refresh(); } 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-09-12 08:52:07.000000000 -0700 @@ -0,0 +1,387 @@ +/**************************************************************************** + * Copyright (c) 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"), 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.3 2009/08/29 18:47:26 tom Exp $ + * + * test-driver for deleteln, wdeleteln, insdelln, winsdelln, insertln, winsertln + */ + +#include + +#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; + int y0 = -1, x0 = -1; + + getyx(win, y, x); + wmove(win, 0, 0); + while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) { + int y1, x1; + getyx(win, y1, x1); + if (y1 == y0 && x1 == x0) + break; + x0 = x1; + y0 = y1; + } + 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 { + (void) 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 { + (void) 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-09-12 08:51:52.000000000 -0700 @@ -1,6 +1,6 @@ -# $Id: modules,v 1.36 2007/08/18 17:57:08 tom Exp $ +# $Id: modules,v 1.38 2009/07/11 12:43:09 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"), # @@ -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) @@ -45,6 +46,7 @@ demo_menus progs $(srcdir) $(HEADER_DEPS) ../include/menu.h demo_panels progs $(srcdir) $(HEADER_DEPS) ../include/panel.h demo_termcap progs $(srcdir) $(HEADER_DEPS) +demo_terminfo progs $(srcdir) $(HEADER_DEPS) ditto progs $(srcdir) $(HEADER_DEPS) dots progs $(srcdir) $(HEADER_DEPS) dots_mvcur progs $(srcdir) $(HEADER_DEPS) @@ -60,6 +62,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-09-12 08:52: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 * @@ -40,7 +40,7 @@ Author: Eric S. Raymond 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.345 2009/08/29 20:24:57 tom Exp $ ***************************************************************************/ @@ -232,7 +232,7 @@ echo(); getyx(win, y0, x0); - wattrset(win, A_REVERSE); + (void) wattrset(win, A_REVERSE); x = (int) strlen(buffer); while (!done) { @@ -318,6 +318,7 @@ *target = 0; } +#if USE_LIBPANEL static void make_fullwidth_digit(cchar_t *target, int digit) { @@ -327,6 +328,7 @@ source[1] = 0; setcchar(target, source, A_NORMAL, 0, 0); } +#endif static int wGet_wchar(WINDOW *win, wint_t *result) @@ -363,7 +365,7 @@ echo(); getyx(win, y0, x0); - wattrset(win, A_REVERSE); + (void) wattrset(win, A_REVERSE); x = (int) wcslen(buffer); while (!done) { @@ -483,7 +485,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 +575,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 +590,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[] = { @@ -610,12 +629,12 @@ int flg = ((strstr(help[n], "toggle") != 0) && (flags[UChar(*help[n])] != FALSE)); if (flg) - standout(); + (void) standout(); mvprintw(row, col, "%s", help[n]); if (col == 0) clrtoeol(); if (flg) - standend(); + (void) standend(); } wrefresh(stdscr); wmove(win, y, x); @@ -657,7 +676,7 @@ { unsigned need = (level + 1) * 2; - assert(level < COLS); + assert(level < (unsigned) COLS); if (winstack == 0) { len_winstack = 20; @@ -731,13 +750,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 +851,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 +876,9 @@ } wtimeout(win, -1); + + if (!level) + init_getch(win, flags); } static int @@ -905,6 +930,7 @@ wgetch_test(0, stdscr, delay); forget_boxes(); finish_getch_test(); + slk_clear(); } #if USE_WIDEC_SUPPORT @@ -978,15 +1004,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 +1119,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 +1134,9 @@ } wtimeout(win, -1); + + if (!level) + init_getch(win, flags); } static void @@ -1122,6 +1148,7 @@ wget_wch_test(0, stdscr, delay); forget_boxes(); finish_getch_test(); + slk_clear(); } #endif @@ -1331,7 +1358,7 @@ addch(ch | attr); } } else { - attrset(attr); + (void) attrset(attr); addstr(attr_test_string); attroff(attr); } @@ -1840,6 +1867,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 +1903,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 +1937,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 +1964,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 +1982,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 +1990,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,16 +2002,18 @@ 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); hello = numbered; } printw("%-*.*s", width, width, hello); - attrset(A_NORMAL); + (void) 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 +2040,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 +2123,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 +2131,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 +2160,8 @@ hello = "Hello"; per_row = 8; } + per_row -= min_colors; + if (opt_xchr) { make_fullwidth_text(buffer, hello); width *= 2; @@ -2111,8 +2173,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 +2186,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 +2195,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 +2215,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 +2243,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; @@ -2324,9 +2395,9 @@ (i == current ? '>' : ' '), (i < (int) SIZEOF(the_color_names) ? the_color_names[i] : numeric)); - attrset(COLOR_PAIR(i)); + (void) attrset(COLOR_PAIR(i)); addstr(" "); - attrset(A_NORMAL); + (void) attrset(A_NORMAL); color_content((short) i, &red, &green, &blue); addstr(" R = "); @@ -2334,20 +2405,20 @@ attron(A_STANDOUT); printw("%04d", red); if (current == i && field == 0) - attrset(A_NORMAL); + (void) attrset(A_NORMAL); addstr(", G = "); if (current == i && field == 1) attron(A_STANDOUT); printw("%04d", green); if (current == i && field == 1) - attrset(A_NORMAL); + (void) attrset(A_NORMAL); addstr(", B = "); if (current == i && field == 2) attron(A_STANDOUT); printw("%04d", blue); if (current == i && field == 2) - attrset(A_NORMAL); - attrset(A_NORMAL); + (void) attrset(A_NORMAL); + (void) attrset(A_NORMAL); printw(" ( %3d %3d %3d )", scaled_rgb(red), scaled_rgb(green), @@ -2802,6 +2873,7 @@ } attrs_to_cycle[] = { { A_NORMAL, "normal" }, { A_BOLD, "bold" }, + { A_BLINK, "blink" }, { A_REVERSE, "reverse" }, { A_UNDERLINE, "underline" }, }; @@ -2818,7 +2890,7 @@ *at_code = 0; break; case 'V': - if (*at_code == 1) + if (*at_code == 0) *at_code = SIZEOF(attrs_to_cycle) - 1; else *at_code -= 1; @@ -2902,7 +2974,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 +3023,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 +3041,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 +3082,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); @@ -3161,21 +3241,18 @@ static cchar_t * merge_wide_attr(cchar_t *dst, const cchar_t *src, attr_t attr, short pair) { - int count = getcchar(src, NULL, NULL, NULL, 0); - wchar_t *wch = 0; - attr_t ignore_attr; - short ignore_pair; + int count; *dst = *src; - if (count > 0) { - if ((wch = typeMalloc(wchar_t, (unsigned) count + 1)) != 0) { - if (getcchar(src, wch, &ignore_attr, &ignore_pair, 0) != ERR) { - attr |= (ignore_attr & A_ALTCHARSET); - setcchar(dst, wch, attr, pair, 0); - } - free(wch); - } - } + do { + TEST_CCHAR(src, count, { + attr |= (test_attrs & A_ALTCHARSET); + setcchar(dst, test_wch, attr, pair, NULL); + } + , { + ; + }); + } while (0); return dst; } @@ -3212,7 +3289,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 +3315,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 +3384,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 +3398,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* */ } @@ -4954,7 +5037,7 @@ wbkgd(subWin, COLOR_PAIR(2) | ' '); } #endif - wattrset(subWin, A_BOLD); + (void) wattrset(subWin, A_BOLD); box(subWin, ACS_VLINE, ACS_HLINE); mvwaddstr(subWin, 2, 1, "This is a subwindow"); wrefresh(win); @@ -5774,18 +5857,18 @@ switch (flavor) { case 0: - wattrset(win, A_NORMAL); + (void) wattrset(win, A_NORMAL); break; case 1: - wattrset(win, A_BOLD); + (void) wattrset(win, A_BOLD); break; case 2: init_pair(cpair, COLOR_BLUE, COLOR_WHITE); - wattrset(win, COLOR_PAIR(cpair) | A_NORMAL); + (void) wattrset(win, COLOR_PAIR(cpair) | A_NORMAL); break; case 3: init_pair(cpair, COLOR_WHITE, COLOR_BLUE); - wattrset(win, COLOR_PAIR(cpair) | A_BOLD); + (void) wattrset(win, COLOR_PAIR(cpair) | A_BOLD); break; } } @@ -5804,7 +5887,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); @@ -5890,7 +5973,7 @@ break; } overlap_helpitem(state, item, msg); - wattrset(stdscr, A_NORMAL); + (void) wattrset(stdscr, A_NORMAL); wbkgdset(stdscr, ' ' | A_NORMAL); } move(LINES - 1, 0); @@ -5915,7 +5998,7 @@ { overlap_test_1_attr(a, flavor, col); fillwin(a, fill); - wattrset(a, A_NORMAL); + (void) wattrset(a, A_NORMAL); } static void @@ -6497,7 +6580,7 @@ min_colors = -1; } #if NCURSES_VERSION_PATCH >= 20000708 - else if (assumed_colors) + if (assumed_colors) assume_default_colors(default_fg, default_bg); #endif #endif diff -Naur ncurses-5.7.orig/test/newdemo.c ncurses-5.7/test/newdemo.c --- ncurses-5.7.orig/test/newdemo.c 2008-08-03 13:19:38.000000000 -0700 +++ ncurses-5.7/test/newdemo.c 2009-09-12 08:52:07.000000000 -0700 @@ -2,7 +2,7 @@ * newdemo.c - A demo program using PDCurses. The program illustrate * the use of colours for text output. * - * $Id: newdemo.c,v 1.31 2008/08/03 20:19:38 tom Exp $ + * $Id: newdemo.c,v 1.32 2009/08/29 18:47:26 tom Exp $ */ #include @@ -84,7 +84,7 @@ if (pair > COLOR_PAIRS) pair = COLOR_PAIRS; init_pair(pair, foreground, background); - wattrset(win, COLOR_PAIR(pair)); + (void) wattrset(win, COLOR_PAIR(pair)); } } @@ -96,7 +96,7 @@ pair = COLOR_PAIRS; attrs |= COLOR_PAIR(pair); } - wattrset(win, attrs); + (void) wattrset(win, attrs); return attrs; } 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-09-12 08:51:52.000000000 -0700 @@ -1,6 +1,6 @@ -# $Id: programs,v 1.14 2008/08/16 21:47:39 tom Exp $ +# $Id: programs,v 1.16 2009/07/11 12:47:15 tom Exp $ ############################################################################## -# 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 "Software"), # @@ -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 @@ -43,6 +44,7 @@ demo_menus $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) demo_menus demo_panels $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) demo_panels demo_termcap $(LDFLAGS_TINFO) $(LOCAL_LIBS) demo_termcap +demo_terminfo $(LDFLAGS_TINFO) $(LOCAL_LIBS) demo_terminfo ditto $(LDFLAGS_THREADS) $(LOCAL_LIBS) ditto dots $(LDFLAGS_TINFO) $(LOCAL_LIBS) dots dots_mvcur $(LDFLAGS_CURSES) $(LOCAL_LIBS) dots_mvcur @@ -57,6 +59,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-09-12 08:51:19.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/rain.c ncurses-5.7/test/rain.c --- ncurses-5.7.orig/test/rain.c 2008-05-24 16:34:34.000000000 -0700 +++ ncurses-5.7/test/rain.c 2009-09-12 08:52:07.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 * @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: rain.c,v 1.34 2008/05/24 23:34:34 tom Exp $ + * $Id: rain.c,v 1.35 2009/08/29 19:02:25 tom Exp $ */ #include @@ -105,7 +105,7 @@ chtype color = COLOR_PAIR(z); if (z) color |= A_BOLD; - attrset(color); + (void) attrset(color); } return j; } 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-09-12 08:51:52.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.40 2009/07/11 19:09:01 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,14 +211,14 @@ ---------- 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 LINES test: cardfile demo_defkey demo_keyok demo_menus demo_panels ditto echochar edit_field firework hanoi 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 xmas PAIR_NUMBER test: ncurses PC lib: ncurses -SP lib: ncurses +SP lib: menu TABSIZE test: test_opaque UP - acs_map test: gdc ins_wide inserts knight movewindow ncurses newdemo testcurs @@ -239,22 +239,22 @@ 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 bkgrndset test: ncurses boolcodes test: test_arrays progs: dump_entry -boolfnames test: test_arrays progs: dump_entry -boolnames test: test_arrays progs: dump_entry infocmp +boolfnames test: demo_terminfo test_arrays progs: dump_entry +boolnames test: demo_terminfo 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: demo_terminfo 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,35 +273,36 @@ 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 - filter test: filter flash test: cardfile lrtest ncurses tclock testcurs flushinp test: ncurses newdemo testcurs +get_escdelay - 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 +311,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 +328,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 +362,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 +452,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,19 +460,19 @@ 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 - noraw test: demo_forms demo_menus ncurses testcurs notimeout test: test_opaque numcodes test: test_arrays progs: dump_entry -numfnames test: test_arrays progs: dump_entry -numnames test: test_arrays progs: dump_entry infocmp +numfnames test: demo_terminfo test_arrays progs: dump_entry +numnames test: demo_terminfo test_arrays progs: dump_entry infocmp ospeed progs: tset overlay test: ncurses testcurs xmas overwrite test: ncurses savescreen @@ -501,14 +503,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: demo_terminfo dots progs: clear tabs tput tset slk_attr - slk_attr_off - slk_attr_on - @@ -528,11 +530,11 @@ 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 +strfnames test: demo_terminfo test_arrays progs: dump_entry +strnames test: demo_terminfo foldkeys test_arrays progs: dump_entry infocmp tic subpad test: testcurs subwin test: movewindow ncurses newdemo testcurs syncok test: test_opaque @@ -544,14 +546,14 @@ tgetnum test: demo_termcap railroad tgetstr test: demo_termcap railroad tgoto test: railroad -tigetflag progs: tput -tigetnum test: ncurses progs: tput -tigetstr test: blue demo_defkey foldkeys testcurs progs: tput +tigetflag test: demo_terminfo progs: tput +tigetnum test: demo_terminfo ncurses progs: tput +tigetstr test: blue demo_defkey demo_terminfo 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 @@ -562,7 +564,7 @@ untouchwin lib: form use_default_colors test: filter firework gdc hanoi knight ncurses rain tclock worm xmas use_env progs: tput -use_extended_names progs: infocmp tic +use_extended_names test: demo_terminfo progs: infocmp tic use_legacy_coding - use_screen test: ditto use_window test: rain worm @@ -572,7 +574,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 +586,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 +594,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 +616,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 +636,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/tclock.c ncurses-5.7/test/tclock.c --- ncurses-5.7.orig/test/tclock.c 2005-04-16 09:39:27.000000000 -0700 +++ ncurses-5.7/test/tclock.c 2009-09-12 08:52:07.000000000 -0700 @@ -1,4 +1,4 @@ -/* $Id: tclock.c,v 1.25 2005/04/16 16:39:27 tom Exp $ */ +/* $Id: tclock.c,v 1.26 2009/08/29 18:47:26 tom Exp $ */ #include @@ -67,7 +67,7 @@ int d; if (has_colors()) - attrset(COLOR_PAIR(pair)); + (void) attrset(COLOR_PAIR(pair)); dx = x2 - from_x; dy = y2 - from_y; @@ -209,17 +209,17 @@ dline(3, cx, cy, cx + mdx, cy - mdy, '#'); - attrset(A_REVERSE); + (void) attrset(A_REVERSE); dline(2, cx, cy, cx + hdx, cy - hdy, '.'); attroff(A_REVERSE); if (has_colors()) - attrset(COLOR_PAIR(1)); + (void) attrset(COLOR_PAIR(1)); dline(1, cx, cy, cx + sdx, cy - sdy, 'O'); if (has_colors()) - attrset(COLOR_PAIR(0)); + (void) attrset(COLOR_PAIR(0)); text = ctime(&tim); mvprintw(2, 0, "%.*s", (int) (strlen(text) - 1), text); diff -Naur ncurses-5.7.orig/test/testaddch.c ncurses-5.7/test/testaddch.c --- ncurses-5.7.orig/test/testaddch.c 2006-04-01 11:08:03.000000000 -0800 +++ ncurses-5.7/test/testaddch.c 2009-09-12 08:52:07.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 * @@ -29,7 +29,7 @@ * This is an example written by Alexander V. Lukyanov , * to demonstrate an inconsistency between ncurses and SVr4 curses. * - * $Id: testaddch.c,v 1.6 2006/04/01 19:08:03 tom Exp $ + * $Id: testaddch.c,v 1.7 2009/08/29 19:02:25 tom Exp $ */ #include @@ -66,7 +66,7 @@ attr = (i & 4) ? COLOR_PAIR(4) : 0; bkgdset(back); - attrset(set); + (void) attrset(set); attr_addstr("Test string with spaces -> <-\n", attr); } @@ -77,7 +77,7 @@ attr = (i & 4) ? COLOR_PAIR(4) : 0; bkgdset(back); - attrset(set); + (void) attrset(set); attr_addstr("Test string with spaces -> <-\n", attr); } diff -Naur ncurses-5.7.orig/test/test_arrays.c ncurses-5.7/test/test_arrays.c --- ncurses-5.7.orig/test/test_arrays.c 2008-02-09 10:09:43.000000000 -0800 +++ ncurses-5.7/test/test_arrays.c 2009-09-12 08:51:54.000000000 -0700 @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: test_arrays.c,v 1.3 2008/02/09 18:09:43 tom Exp $ + * $Id: test_arrays.c,v 1.4 2009/07/17 00:09:00 tom Exp $ * * Author: Thomas E Dickey * @@ -47,7 +47,7 @@ #define USE_TINFO #include -#if defined(NCURSES_VERSION) || !defined(_XOPEN_CURSES) +#if defined(HAVE_CURSES_DATA_BOOLNAMES) || defined(DECL_CURSES_DATA_BOOLNAMES) #define DUMP(name) dump_array(#name, name) diff -Naur ncurses-5.7.orig/test/testcurs.c ncurses-5.7/test/testcurs.c --- ncurses-5.7.orig/test/testcurs.c 2008-08-03 10:58:09.000000000 -0700 +++ ncurses-5.7/test/testcurs.c 2009-09-12 08:52:07.000000000 -0700 @@ -7,7 +7,7 @@ * wrs(5/28/93) -- modified to be consistent (perform identically) with either * PDCurses or under Unix System V, R4 * - * $Id: testcurs.c,v 1.39 2008/08/03 17:58:09 tom Exp $ + * $Id: testcurs.c,v 1.40 2009/08/29 18:47:26 tom Exp $ */ #include @@ -682,7 +682,7 @@ if ((pad = newpad(50, 100)) != 0) { wattron(pad, A_REVERSE); mvwaddstr(pad, 5, 2, "This is a new pad"); - wattrset(pad, A_NORMAL); + (void) wattrset(pad, A_NORMAL); mvwaddstr(pad, 8, 0, "The end of this line should be truncated here:except now"); mvwaddstr(pad, 11, 1, "This line should not appear.It will now"); @@ -720,7 +720,7 @@ assert((new_option >= 0) && (new_option < MAX_OPTIONS)); - attrset(A_NORMAL); + (void) attrset(A_NORMAL); mvaddstr(3, 20, "PDCurses Test Program"); for (i = 0; i < (int) MAX_OPTIONS; i++) @@ -729,9 +729,9 @@ if ((old_option >= 0) && (old_option < MAX_OPTIONS)) mvaddstr(5 + old_option, 25, command[old_option].text); - attrset(A_REVERSE); + (void) attrset(A_REVERSE); mvaddstr(5 + new_option, 25, command[new_option].text); - attrset(A_NORMAL); + (void) attrset(A_NORMAL); mvaddstr(13, 3, "Use Up and Down Arrows to select - Enter to run - Q to quit"); refresh(); diff -Naur ncurses-5.7.orig/test/test_getstr.c ncurses-5.7/test/test_getstr.c --- ncurses-5.7.orig/test/test_getstr.c 2008-02-09 10:09:35.000000000 -0800 +++ ncurses-5.7/test/test_getstr.c 2009-09-12 08:52:07.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 * @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: test_getstr.c,v 1.8 2008/02/09 18:09:35 tom Exp $ + * $Id: test_getstr.c,v 1.9 2009/08/29 19:02:25 tom Exp $ * * Author: Thomas E Dickey * @@ -271,7 +271,7 @@ *buffer = '\0'; rc = ERR; echo(); - wattrset(txtwin, A_REVERSE); + (void) wattrset(txtwin, A_REVERSE); switch (flavor) { case eGetStr: if (txtwin != stdscr) { @@ -309,7 +309,7 @@ break; } noecho(); - wattrset(txtwin, A_NORMAL); + (void) wattrset(txtwin, A_NORMAL); wprintw(strwin, "%d:%s", rc, buffer); wnoutrefresh(strwin); break; diff -Naur ncurses-5.7.orig/test/test_get_wstr.c ncurses-5.7/test/test_get_wstr.c --- ncurses-5.7.orig/test/test_get_wstr.c 2007-08-11 10:01:43.000000000 -0700 +++ ncurses-5.7/test/test_get_wstr.c 2009-09-12 08:52:07.000000000 -0700 @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2007 Free Software Foundation, Inc. * + * 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 * @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: test_get_wstr.c,v 1.5 2007/08/11 17:01:43 tom Exp $ + * $Id: test_get_wstr.c,v 1.6 2009/08/29 19:02:25 tom Exp $ * * Author: Thomas E Dickey * @@ -269,7 +269,7 @@ *buffer = '\0'; rc = ERR; echo(); - wattrset(txtwin, A_REVERSE); + (void) wattrset(txtwin, A_REVERSE); switch (flavor) { case eGetStr: if (txtwin != stdscr) { @@ -307,9 +307,9 @@ break; } noecho(); - wattrset(txtwin, A_NORMAL); + (void) wattrset(txtwin, A_NORMAL); wprintw(strwin, "%d", rc); - waddwstr(strwin, (wchar_t *) buffer); + (void) waddwstr(strwin, (wchar_t *) buffer); wnoutrefresh(strwin); break; default: diff -Naur ncurses-5.7.orig/test/test_opaque.c ncurses-5.7/test/test_opaque.c --- ncurses-5.7.orig/test/test_opaque.c 2008-07-05 16:18:40.000000000 -0700 +++ ncurses-5.7/test/test_opaque.c 2009-09-12 08:52:07.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 * @@ -26,7 +26,7 @@ * authorization. * ****************************************************************************/ /* - * $Id: test_opaque.c,v 1.7 2008/07/05 23:18:40 tom Exp $ + * $Id: test_opaque.c,v 1.8 2009/08/29 19:02:25 tom Exp $ * * Author: Thomas E Dickey * @@ -185,10 +185,10 @@ { to_keyword(stswin, cell); if (active == cell) - wstandout(stswin); + (void) wstandout(stswin); wprintw(stswin, "%s:", name); if (active == cell) - wstandend(stswin); + (void) wstandend(stswin); } /* *INDENT-OFF* */ static struct { 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-09-12 08:51: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,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.91 2009/07/18 12:19:23 tom Exp $ */ #ifndef __TEST_PRIV_H #define __TEST_PRIV_H 1 @@ -42,14 +42,17 @@ */ #ifdef HAVE_LIBFORMW #define HAVE_LIBFORMW 1 +#define HAVE_LIBFORM 1 #endif #ifdef HAVE_LIBMENUW #define HAVE_LIBMENUW 1 +#define HAVE_LIBMENU 1 #endif #ifdef HAVE_LIBPANELW #define HAVE_LIBPANELW 1 +#define HAVE_LIBPANEL 1 #endif /* @@ -207,11 +210,16 @@ #define NEED_PTEM_H 0 #endif +#ifndef NEED_WCHAR_H +#define NEED_WCHAR_H 0 +#endif + #ifndef NO_LEAKS #define NO_LEAKS 0 #endif #include +#include #include #include @@ -221,6 +229,13 @@ #include /* include before curses.h to work around glibc bug */ +#if NEED_WCHAR_H +#include +#ifdef HAVE_LIBUTF8_H +#include +#endif +#endif + #if defined(HAVE_XCURSES) #include #elif defined(HAVE_NCURSESW_NCURSES_H) @@ -359,6 +374,15 @@ #define KEY_MIN 256 /* not defined in Solaris 8 */ #endif +#ifdef DECL_CURSES_DATA_BOOLNAMES +extern char *boolnames[], *boolcodes[], *boolfnames[], + *numnames[], *numcodes[], *numfnames[], + *strnames[], *strcodes[], *strfnames[]; +#endif + +#define colored_chtype(ch, attr, pair) \ + ((ch) | (attr) | COLOR_PAIR(pair)) + /* * Workaround for HPUX */ @@ -374,6 +398,25 @@ #endif /* + * Workaround in case getcchar() returns a positive value when the source + * string produces only a L'\0'. + */ +#define TEST_CCHAR(s, count, then_stmt, else_stmt) \ + if ((count = getcchar(s, NULL, NULL, NULL, NULL)) > 0) { \ + wchar_t test_wch[CCHARW_MAX + 2]; \ + attr_t test_attrs; \ + short test_pair; \ + \ + if (getcchar( s, test_wch, &test_attrs, &test_pair, NULL) == OK \ + && test_wch[0] != L'\0') { \ + then_stmt \ + } else { \ + else_stmt \ + } \ + } else { \ + else_stmt \ + } +/* * These usually are implemented as macros, but may be functions. */ #if !defined(getcurx) && !HAVE_GETCURX @@ -464,6 +507,14 @@ #define EXIT_FAILURE 1 #endif +#ifdef __MINGW32__ +#include +/* 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. @@ -521,6 +572,26 @@ #endif /* + * Workaround to build with Sun's default SVr4 curses. + */ +#ifdef NCURSES_VERSION +#ifndef HAVE_VW_PRINTW +#define HAVE_VW_PRINTW 1 +#endif +#endif + +/* + * ncurses provides arrays of capability names; X/Open discarded these SVr4 + * features. Some implementations continue to provide them (see the test + * configure script). + */ +#ifdef NCURSES_VERSION +#ifndef HAVE_CURSES_DATA_BOOLNAMES +#define HAVE_CURSES_DATA_BOOLNAMES 1 +#endif +#endif + +/* * ncurses uses const in some places where X/Open does (or did) not allow. */ #ifdef NCURSES_VERSION @@ -560,7 +631,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-09-12 08:51: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 * @@ -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.75 2009/07/19 00:34:07 tom Exp $ */ #include @@ -62,8 +62,10 @@ #if HAVE_TERMIOS_H # include #else +#if !defined(__MINGW32__) # include #endif +#endif #if !defined(sun) || !HAVE_TERMIOS_H # if HAVE_SYS_IOCTL_H @@ -149,11 +151,19 @@ { int result = 0; #if USE_WIDEC_SUPPORT + int count; #endif #if USE_WIDEC_SUPPORT - while (getcchar(src++, NULL, NULL, NULL, NULL) > 0) - result++; + for (;;) { + TEST_CCHAR(src, count, { + ++result; + ++src; + } + , { + break; + }) + } #else while (*src++) result++; @@ -281,7 +291,7 @@ if (optind + 1 != argc) usage(); - if ((vec_lines = typeMalloc(NCURSES_CH_T *, MAXLINES + 2)) == 0) + if ((vec_lines = typeCalloc(NCURSES_CH_T *, MAXLINES + 2)) == 0) usage(); fname = argv[optind]; 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-09-12 08:51:35.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 @@ -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/test/xmas.c ncurses-5.7/test/xmas.c --- ncurses-5.7.orig/test/xmas.c 2008-08-03 04:08:59.000000000 -0700 +++ ncurses-5.7/test/xmas.c 2009-09-12 08:52:07.000000000 -0700 @@ -92,7 +92,7 @@ /******************************************************************************/ /* - * $Id: xmas.c,v 1.24 2008/08/03 11:08:59 tom Exp $ + * $Id: xmas.c,v 1.25 2009/08/29 18:47:26 tom Exp $ */ #include @@ -170,7 +170,7 @@ unset_color(WINDOW *win) { if (has_colors()) - wattrset(win, COLOR_PAIR(0)); + (void) wattrset(win, COLOR_PAIR(0)); } static void @@ -533,9 +533,9 @@ mvwaddch(treescrn4, 12, 23, ' '); /*star */ - wstandout(treescrn4); + (void) wstandout(treescrn4); mvwaddch(treescrn4, 0, 12, '*'); - wstandend(treescrn4); + (void) wstandend(treescrn4); /*strng1 */ mvwaddch(treescrn4, 3, 13, ' '); @@ -597,9 +597,9 @@ mvwaddch(treescrn6, 11, 23, ' '); /*star */ - wstandout(treescrn6); + (void) wstandout(treescrn6); mvwaddch(treescrn6, 0, 12, '*'); - wstandend(treescrn6); + (void) wstandend(treescrn6); /*strng1 */ @@ -816,11 +816,11 @@ static int star(void) { - wattrset(treescrn2, A_BOLD | A_BLINK); + (void) wattrset(treescrn2, A_BOLD | A_BLINK); set_color(treescrn2, COLOR_YELLOW); mvwaddch(treescrn2, 0, 12, (chtype) '*'); - wstandend(treescrn2); + (void) wstandend(treescrn2); unset_color(treescrn2); wrefresh(treescrn2); @@ -831,7 +831,7 @@ static int strng1(void) { - wattrset(treescrn2, A_BOLD | A_BLINK); + (void) wattrset(treescrn2, A_BOLD | A_BLINK); set_color(treescrn2, COLOR_WHITE); mvwaddch(treescrn2, 3, 13, (chtype) '\''); @@ -849,7 +849,7 @@ static int strng2(void) { - wattrset(treescrn2, A_BOLD | A_BLINK); + (void) wattrset(treescrn2, A_BOLD | A_BLINK); set_color(treescrn2, COLOR_WHITE); mvwaddch(treescrn2, 5, 14, (chtype) '\''); @@ -870,7 +870,7 @@ static int strng3(void) { - wattrset(treescrn2, A_BOLD | A_BLINK); + (void) wattrset(treescrn2, A_BOLD | A_BLINK); set_color(treescrn2, COLOR_WHITE); mvwaddch(treescrn2, 7, 16, (chtype) '\''); @@ -893,7 +893,7 @@ static int strng4(void) { - wattrset(treescrn2, A_BOLD | A_BLINK); + (void) wattrset(treescrn2, A_BOLD | A_BLINK); set_color(treescrn2, COLOR_WHITE); mvwaddch(treescrn2, 9, 17, (chtype) '\''); @@ -921,7 +921,7 @@ static int strng5(void) { - wattrset(treescrn2, A_BOLD | A_BLINK); + (void) wattrset(treescrn2, A_BOLD | A_BLINK); set_color(treescrn2, COLOR_WHITE); mvwaddch(treescrn2, 11, 19, (chtype) '\''); 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-09-12 08:50:54.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: